跳到正文
ARCHITECTURE SYNTHESIS · ATTENTION

注意力不是一条升级路线,而是四笔账的不同取舍

这些缩写经常被排成“新架构排行榜”,其实它们未必在改同一件事:MQA/GQA 减少 K/V 头,MLA 改变缓存表示,SWA 改变每层可见范围,Linear Attention 改写聚合算子并维护递归状态。先分清训练、Prefill 与 Decode,再谈谁更省。

01 · 共同内核

先把标准 Softmax Attention 说准,再看谁改了哪一步

在因果 self-attention 中,每个位置都会投影出 Query(查询)、Key(键)与 Value(值);位置 t 的 query 只能读取 mask 允许的 j≤t 位置。训练和 Prefill 会并行产生整段 Q/K/V,自回归 Decode 才是“一个新 query 读取历史 KV”。MQA、GQA、MLA 与 SWA 仍可使用 Softmax;Linear Attention 则可能连相似度核和聚合顺序也一起改变。

BASE

单头缩放点积注意力

scaled dot-product attention
Attention(Q,K,V)=softmax ⁣(QKTdh+M)V\operatorname{Attention}(Q,K,V)=\operatorname{softmax}\!\left(\frac{QK^{\mathsf T}}{\sqrt{d_h}}+M\right)V

M 是因果、窗口或其他可见性 mask;多头注意力(Multi-Head Attention,MHA)对多组投影分别计算,再拼接并经过输出投影。MQA/GQA 改 K/V 头怎样共享,不自动改变 M,也不自动减少每个 query 需要评分的 token 位置数。

QUERY

当前位置怎样发起读取

同一个 token 在不同上下文层表示下会产生不同 Q。它不是字符串关键词,而是一组由模型学出的连续向量。

KEY

历史怎样被匹配

K 像每段历史的“可检索索引”。QKᵀ 得到的只是匹配分数,还没有真正把历史内容取回来。

VALUE

匹配后聚合什么

Softmax 权重乘 V,才形成该头传给当前位置的信息。K 参与决定权重,V 决定对应位置贡献的内容;两者都不是可单独解释的数据库字段。

手算 · 两段历史怎样分权重

q=(1,0),两把 key 分别是 k₁=(1,0)、k₂=(0,1)

两组点积是 [1,0]。若 head dim 为 2,除以 √2 后约为 [0.707,0],Softmax 约得到 [0.67,0.33]。它不是“只取最像的一段”,而是把两段 Value 按 67% 与 33% 混合。多头注意力会用多组不同投影重复这件事。

类比边界

可以把 Q 想成问题、K 想成目录卡、V 想成书页内容;MQA/GQA 像多位读者共享不同数量的目录卡,SWA 像每层只准翻附近页,Linear Attention 像维护持续更新的笔记。但真实模型是在连续向量上联合学习投影,目录卡与书页并没有稳定的人类语义,也不保证“最相关”位置一定得到最高权重。

02 · 横向机制地图

六种机制,分属四个维度

先问 K/V 头是否共享,再问缓存保存逐头 K/V、压缩 latent 还是递归状态;随后看 mask 允许直接读多远,最后看聚合仍是精确 Softmax 还是换成 kernel/state recurrence。一个模型可以同时在四个维度上做选择。

机制主要改变每层直接可见范围Decode 历史 carryPrefill 的长度主项
MHA每个 Q head 配独立 K/V head由 mask 决定;常见为全因果逐 token、多 KV heads全因果常见 O(T²)
MQA / GQA所有或成组 Q heads 共享 K/V heads不因共享而缩短逐 token、较少 KV headstoken 对仍常见 O(T²)
MLA联合压缩 KV,并为位置部分留专门路径DeepSeek MLA 仍是全因果 Softmax逐 token latent + RoPE key仍计算全局 token 对
SWAmask 限制到窗口 W单层仅窗口内;跨层间接传播可用 rolling KV,约 O(W)常见 O(TW)
Linear / State改核函数或状态更新与乘法顺序不是逐位置 Softmax 直连固定形状 recurrent stateT 常见线性扫描
六行注意力家族图:MHA 的每个查询头有独立 K/V,MQA 的查询头共享一组 K/V,GQA 分组共享 K/V,MLA 缓存低维 latent 和共享 RoPE key,SWA 只直接读取最近窗口,Linear Attention 用固定形状的解码状态递推历史。
MHA/MQA/GQA 改 KV head 共享,MLA 改逐 token 缓存表示,SWA 改 mask,Linear/State 改聚合与历史状态。图中的固定状态仅指 Decode carry;训练与 Prefill 仍要处理 T 个位置。 查看原图 ↗

MHA · Multi-Head Attention:每个 Q 头有自己的 K/V 头

在常见 decoder-only MHA 中,H_Q=H_KV。自回归生成要为每层、每个历史 token 保存所有 K 和 V;长上下文与高并发下,逻辑容量和逐步读取量都会增长。它是定义基线,不代表在所有任务上天然质量最高。

MQA · Multi-Query Attention:Q 仍多头,K/V 只有一组

MQA 不是“只剩一个注意力头”:多个 Q heads 仍产生各自输出,只共同读取一组 K/V。原论文针对增量解码的内存带宽瓶颈,报告相对 MHA 只有小幅质量下降;这是一组实验结果,不是所有模型的固定结论。

GQA · Grouped-Query Attention:若干 Q 头共享一组 K/V

例如 32 个 Q heads 配 8 个 KV heads,每 4 个 Q heads 共享一组 K/V。原始 GQA 论文中的 5% uptraining 结论来自 T5 XXL checkpoint 与其任务集合;从头训练或迁移 decoder-only 模型仍需单独验证。

MLA · Multi-Head Latent Attention:缓存联合压缩表示

DeepSeek-V2 缓存每个 token 的 cKV latent 与共享的解耦 RoPE key。推理时把 KV 上投影吸收到 query/output 投影,避免显式还原完整多头 K/V;因此它不是“更少 KV heads”,也不能只换一个配置字段得到。

SWA · Sliding Window Attention:每层只直看最近 W 个位置

窗口外位置不能在同一层直接被读取,但表示可逐层传播。Mistral 7B 论文给出的理论范围是经过 k 层最多传播约 kW;这不等于对远处原始 token 的一次直接内容寻址,也不保证信息无损。

Linear / State:历史被折进有限状态

典型目标是让自回归 Decode 的 carry 形状不随已解码长度增长,并让训练/Prefill 对序列长度采用线性扫描或 chunk 算法。固定的是历史状态形状,不是训练激活、总计算或信息容量;精确回看能力取决于状态与更新规则。

03 · KV CACHE 手算

GQA 省多少,直接数 KV 头就能得到第一数量级

对保存逐 token K/V 的 MHA、MQA 与 GQA,先按 batch、层数、序列长度、KV head 数、head dimension 与 dtype 复算模型级逻辑容量。这个公式不直接适用于 MLA latent、SWA rolling cache 或递归状态。

KV bytes=B×L×T×2K,V×HKV×dh×sbytes\mathrm{KV\ bytes}=B\times L\times T\times 2_{K,V}\times H_{KV}\times d_h\times s_{\mathrm{bytes}}

B 是并发序列 batch,L 是层数,T 是每条序列实际缓存长度,H_KV 是 KV heads,d_h 是每个 KV head 的维度。它算整个模型的逻辑张量,不等同于 Tensor Parallel 后的单 rank 驻留量或分页后的物理占用。

设定 · BF16 / batch 1

32 层、32K token、8 个 Q heads、head dim 128

MHA 有 8 个 KV 头:32×32768×8×128×2×2 bytes = 4 GiBGQA 若只有 2 个 KV 头,就是 1 GiBMQA 只有 1 个 KV 头,则约 512 MiB。在这些假设下,KV 容量正比于 KV 头数。

4 GiB

MHA · 8 KV heads

每个 Q 头独立缓存 K/V。这里还没有乘并发序列数。

1 GiB

GQA · 2 KV heads

容量是 MHA 的四分之一;8 个 Q 头仍然存在。

512 MiB

MQA · 1 KV head

容量是 MHA 的八分之一;是否值得要用质量和吞吐共同验证。

阶段MHA → GQA/MQAMLASWALinear / State
训练 / Prefill减少 K/V 投影与张量宽度,但全局 mask 下仍为每个 Q head 计算 级 token 对压缩缓存表示不等于消除全局 Softmax token 对窗口 mask 可把 token 对降到约 TW通常扫描全部 T 个位置;反向激活不自动变常数
自回归 Decode历史 KV 随 T 增长,容量与一阶读取量按 H_KV 缩放latent 与 RoPE key 仍随 T 增长,但每 token 更窄rolling cache 可在 W 后停止增长carry 形状可与已解码长度解耦
MLA

可手算:DeepSeek-V2 的 latent 缓存口径

joint KV compression + decoupled RoPE key
MLA elements/token=L(dc+dhR),MHA elements/token=2LHQdh\mathrm{MLA\ elements/token} = L(d_c+d_h^R),\qquad \mathrm{MHA\ elements/token}=2LH_Qd_h

论文配置为 60 层、128 attention heads、d_h=128d_c=512d_h^R=64。在 32K、BF16、batch 1 下,MLA 逻辑缓存是 60×32768×(512+64)×2 bytes = 2.109375 GiB;同维度 MHA 则是 60×32768×2×128×128×2 bytes = 120 GiB,元素数相差约 56.9×。这是论文参数的理论张量账,不是实际服务显存或吞吐承诺。

这笔账没算什么

上面都没有算权重、激活、attention 中间量、临时 workspace、页表、allocator 与对齐。Tensor Parallel 可能分片,KV 量化会改变每元素字节,Prefix Cache 会共享物理块;PagedAttention 主要改变块管理和碎片,不改变 checkpoint 定义的逻辑元素数。

04 · 真实模型不是单选题

看模型例子时,重点是它把哪些机制拼在了一起

下列数字来自对应论文或官方配置,只证明“该 checkpoint 怎样组合机制”。它们不是同一训练数据、模型规模、硬件与 runtime 下的横向实验,不能据此排质量或速度名次。

2017 · MHA

原始 Transformer

每个 attention head 使用各自的 Q/K/V 投影,输出拼接后再投影。论文同时包含 encoder self-attention、decoder masked self-attention 与 cross-attention;本页的 KV Cache 讨论专指自回归 decoder。

2023 · 32Q / 8KV + W4096

Mistral 7B

32 层、32 Q heads、8 KV heads,并在每层使用 4,096 的滑动窗口。按论文 rolling buffer,32K 序列只保留窗口可使缓存相对保留全部 32K 缩小 8×;跨层理论传播范围不等于单层全局直连。

2025 · GQA

Qwen3 家族

技术报告的 Dense 与 MoE 表都使用 GQA,但比例随型号变化:Qwen3-32B 是 64 Q / 8 KV heads,Qwen3-30B-A3B 是 32 / 4。FFN 是 Dense 还是 MoE,与 attention 的 KV 共享是两条独立轴。

2024 · cKV512 + kR64

DeepSeek-V2

60 层、128 attention heads,却为每层每 token 缓存 512 维 compressed KV latent 与 64 维共享 RoPE key。权重吸收后的执行图与朴素“先还原 K/V”不同,runtime 必须实现对应路径。

2025 · 3 KDA : 1 GLOBAL MLA

Kimi Linear

每 3 个 Kimi Delta Attention 状态层插入 1 个全局 MLA 层。对 48B total / 3B active 配置,论文报告 KV Cache 最多减少 75%;Figure 7 的 batch 1、1M context TPOT 实测约快 2.3×,§6.3 则把省下的显存用于更大 batch,给出最高 6.3× 的理论解码加速。两种口径都不能外推到所有 Linear Attention。

HYBRID BOUNDARY

全局层提供直接路径,不是自动纠错

全局 attention 层能直接读取它所接收表示对应的全部历史位置,并保存自己的增长型 KV;它不保证恢复早先状态层已经丢掉的细节。评估必须看层型比例、信息路径、缓存总和与任务结果。

05 · 选型决策树

先分清“训练新架构”还是“部署已有 checkpoint”

注意力投影、head 数、mask 与状态更新都写进权重和执行图,不能把 MHA checkpoint 的配置改成 MLA 或 Linear 就保持等价。只有在可重新训练、继续训练或已有兼容 checkpoint 时,才按 Decode KV 带宽、窗口 token 对与流式状态选择架构;部署现有模型应优先优化它实际支持的 kernel、量化、并行与调度。

注意力架构选型决策树:先确认 checkpoint 是否允许重新训练或结构迁移;若主要瓶颈是 Decode KV 带宽,再评估 MQA、GQA 或具备完整权重与 runtime 支持的 MLA;若主要瓶颈是 token 对数量,根据远处位置是否必须直达选择 SWA 或 Full/Hybrid;若需要持续流式历史,根据固定状态能否承受有损压缩选择 Linear/State 或外部检索分段。
这是训练/架构阶段的候选树,不是 Serving 配置菜单。GQA 论文证明过特定 T5 checkpoint 的 uptraining 配方;它没有证明任意 decoder-only 模型都能用 5% 计算无损迁移。 查看原图 ↗
06 · 适用边界

七个最常见误解,都来自把不同阶段与维度混在一起

“GQA 是稀疏注意力”——不是

标准 GQA 仍可让每个 Q 位置与全部历史位置计算注意力;它稀的是 K/V 头的数量,不是 token-to-token 的可见连接。

“GQA 把长 Prefill 从平方变线性”——不是

它缩窄 K/V 投影、缓存与 Decode 读取,但全局 Softmax 仍为每个 Q head 处理可见 token 对。是否物化 score 矩阵取决于 kernel,token 对数量并未因 KV 共享消失。

“FlashAttention 是一种新的可见范围”——不是

FlashAttention 用 tiling 与 online softmax 减少 HBM 往返,计算的是算法意义上的精确 attention,不是近似或新 mask;有限精度下也不承诺与任意朴素实现逐 bit 相同。

“Linear Attention 的所有成本都是 O(T)”——不完整

常见因果递推对序列长度是线性扫描,Decode carry 可固定形状;但状态维度、chunk 大小、门控与 kernel 决定常数,训练仍保存或重算 T 个位置的激活。渐近复杂度不是吞吐保证。

“MLA 就是更小的 GQA”——过度简化

DeepSeek MLA 联合压缩 K/V、单独缓存共享 RoPE key,并通过投影吸收改变执行路径;它仍做多头全局 Softmax。只把 latent 叫成“2.25 个 KV heads”会丢失结构契约。

“窗口层叠后就等于全注意力”——不等价

层叠会扩大理论感受野,但远处信息要经过多次有损变换才能传来;全注意力允许当前位置直接给任意历史位置分配权重。是否等效必须用目标任务验证。

“改一个 config 就能换注意力”——不成立

head 共享、latent 投影、mask 与 recurrent state 都参与训练。GQA 的 5% uptraining 是特定 T5 实验,不是任意 checkpoint 的通用无损转换证明;MLA/Linear 还需要匹配权重、kernel、缓存布局与服务接口。

RESEARCH LEDGER

一手来源与证据边界

优先使用论文、官方文档、官方模型卡和代码仓库。页面中的数字只代表来源所述设置,不自动外推到其他模型与数据。

R01
Attention Is All You NeedVaswani et al. · 2017

缩放点积注意力与 Multi-Head Attention 的原始定义。

R02
Fast Transformer Decoding: One Write-Head is All You NeedShazeer · 2019

Multi-Query Attention:共享 K/V 以降低增量解码的内存带宽。

R03
GQA: Training Generalized Multi-Query Transformer Models from Multi-Head CheckpointsAinslie et al. · 2023

Grouped-Query Attention 的定义,以及从 MHA checkpoint uptrain 的实证。

R04
Mistral 7BMistral AI · 2023

GQA 与 Sliding Window Attention 在真实开源模型中的组合实例。

R05
DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language ModelDeepSeek-AI · 2024

Multi-Head Latent Attention 的低维 KV 表示、解耦 RoPE 与推理设计。

R06
Qwen3 Technical ReportQwen Team · 2025

采用 GQA 的现代 Dense/MoE 模型家族实例。

R07
Kimi Linear: An Expressive, Efficient Attention ArchitectureKimi Team · 2025

Kimi Delta Attention 与 MLA 的 3:1 层间混合,以及 1M 上下文下 batch 1 TPOT 与理论吞吐上界的不同口径。

R08
Transformers are RNNs: Fast Autoregressive Transformers with Linear AttentionKatharopoulos et al. · 2020

因果 Kernel Linear Attention 的 feature map、归一化状态与递归边界。

R09
FlashAttention: Fast and Memory-Efficient Exact Attention with IO-AwarenessDao et al. · 2022

精确 Softmax Attention 的 IO-aware 算法,不改变可见范围与注意力定义。

R10
Qwen3-32B config.jsonQwen · 官方模型配置 · 核查于 2026-07-14

64 个 Q heads、8 个 KV heads、head dim 128 的当前配置实例。

R11
MoonshotAI/Kimi-LinearMoonshot AI · 官方仓库 · 核查于 2026-07-14

3:1 KDA/全局 MLA、模型配置、开放 kernel 与部署支持边界。