知识全景图/ 软件工程与系统/ 人工智能全景图/ QKV、Multi-Head Attention 与注意力头机制

QKV、Multi-Head Attention 与注意力头机制底层图谱

从 Q / K / V 投影、attention score、mask、softmax、head 拼接、GQA / MQA 到 KV Cache,理解 Transformer 内部“谁看谁、看多少、拿什么信息”

阅读定位: Token / Attention / Transformer 解释整体结构,本页只把 Attention 子层拆细。 它不替代 位置编码 / RoPE,后者解释顺序和距离如何进入 Q/K;不替代 推理计算 / KV Cache,后者解释推理成本;也不替代 可解释性 / 模型内部表征,后者讨论注意力头和电路能解释什么。本页专注 QKV 计算链路、head 分工、mask 边界、KV Cache 复用和常见排查。
一、Attention 子层的最小链路
Hidden States
每个位置的向量
Q / K / V
三组线性投影
QK Score
匹配强度
Mask + Softmax
可见性 / 权重
Weighted V
读取内容
Output Projection
写回残差流
步骤做什么抓住的直觉常见失败
输入 hidden state每个 token 位置都有一个当前层表示Attention 处理的是上下文化向量,不是原始文字把注意力图误读成词典关系
Q / K / V 投影用三组权重把同一 hidden state 投成 Query、Key、ValueQ 负责找,K 负责被匹配,V 负责被读取把 Q/K/V 当成三份不同文本
QK 打分用点积计算当前位置和历史位置的匹配强度分数越高,越可能从那个位置读取信息忽略缩放、位置编码和 mask 的影响
Mask + Softmax屏蔽不可见位置,再把分数转成权重模型只能看允许看的 tokenmask 错导致偷看未来、看见 padding 或漏看上下文
混合 V按权重加权求和 Value 向量Attention 的输出是从可见位置搬来的信息混合以为 attention 只是在“标重点”
输出投影把多头结果拼接并投影回模型维度多个信息通道汇总后写回残差流忽略 output projection 和后续层的再加工
一句话:

Q/K 决定“看哪里”,V 决定“拿什么”,mask 决定“能不能看”,softmax 决定“看多少”。

二、Q、K、V 到底是什么
对象来自哪里它负责什么可以怎么想
Query当前位置 hidden state 乘以 Wq表达当前位置正在寻找什么信息问题、检索意图、当前槽位需求
Key各位置 hidden state 乘以 Wk表达每个历史位置有什么可被匹配的特征索引、标签、可匹配线索
Value各位置 hidden state 乘以 Wv表达命中该位置后可以读取的内容实际搬运的信息包
QK^TQuery 与所有 Key 做点积生成 attention score当前位置对每个可见位置的匹配强度
softmax(score)归一化后的权重决定各位置 Value 混合比例一个可学习的信息路由分布

为什么要除以 sqrt(d_k)

Q/K 维度越大,点积分数的尺度越容易变大。除以 sqrt(d_k) 是为了让 softmax 不至于过早变得极端,帮助训练稳定。

为什么 Q/K 会和 RoPE 强相关

RoPE 通常作用在 Q/K 上,让两个位置的 attention score 自然携带相对距离信息。位置机制不只是输入前贴标签,而是进入了“谁看谁”的匹配过程。

三、Mask:注意力里的边界和权限
Mask 类型限制什么典型场景错误症状
Causal mask当前位置不能看未来 tokendecoder-only LLM 训练和生成训练泄漏、评测虚高、生成行为异常
Padding mask不让模型看 padding 位置batch 推理、不同长度样本混合batch 后输出和单条输出不一致
Attention mask控制哪些 token 可见prefix、特殊模板、分段输入模型漏看系统指令或看见不该看的片段
Sliding window mask只允许看局部窗口长上下文降成本远距离依赖丢失、跨段推理变弱
Block / sparse mask按块或稀疏规则可见长序列、结构化文档、特殊架构局部正常,长距离证据不稳定
排查直觉:

很多看起来像“模型玄学变笨”的问题,其实是 mask、padding side、position ids 或 KV Cache offset 错了。先排输入可见性,再谈模型能力。

四、Multi-Head Attention:不是一个头看所有关系
为什么要多头
不同 head 在不同投影子空间里计算 attention。一个 head 可能偏局部搭配,一个偏括号匹配,一个偏指代,一个偏格式边界。它们并行提供多种信息通道。
头不是固定功能模块
head 的功能是训练中形成的,不是人工预先指定。某些头可能有可解释模式,但不能把一个头粗暴命名为“事实头”或“语法头”。
拼接后还要投影
所有 head 的输出会 concat,再经过 output projection 写回模型维度。后续层、MLP、残差流会继续加工,单个 head 不是最终答案。
机制直觉收益边界
Multi-Head Attention多个独立 head 并行读上下文能同时捕捉不同关系显存和计算更重
Multi-Query Attention多个 Q head 共享一组 K/V显著降低 KV Cache 占用可能牺牲部分表达灵活性,需要任务评测
Grouped-Query Attention多个 Q head 分组共享 K/V在质量和推理成本之间折中不同模型实现细节不同
Head pruning裁掉低贡献 head压缩模型或解释结构贡献依赖任务和层,不能只看注意力强弱
五、Attention Head 和可解释性
观察对象能告诉你什么不能直接证明什么继续深入
Attention pattern某个 head 在某层偏向看哪些位置不能直接证明输出因果由它决定可解释性 / 模型内部表征
Induction-like pattern模型可能在复制、续写、模板匹配中利用历史模式不能说明模型真的“理解规则”Prompt / 上下文工程
Attention ablation去掉或替换某些头后输出是否变化单次样本不能代表全局功能模型评测
Activation patching某个中间状态是否参与特定行为不能替代真实生产评测和安全审计模型内部机制
实用边界:

Attention 可视化适合找线索,不适合直接当审计证据。要证明某个 head 真有作用,需要干预实验、消融、跨样本稳定性和外部行为评测。

六、和 KV Cache、长上下文、推理性能的关系
主题Attention 层发生什么工程后果回读页面
Prefill一次性为整个输入序列计算 Q/K/V 和 attention输入越长,首 token 等待越明显推理计算 / KV Cache
Decode每个新 token 只新增当前 Q,并读取历史 K/V输出越长,总耗时越长解码 / 采样
KV Cache缓存每层每个历史 token 的 K/V省重复计算,但消耗显存推理计算 / KV Cache
RoPE / position idsQ/K 携带位置旋转或位置关系位置错位会导致长上下文质量异常位置编码 / RoPE
GQA / MQA减少 K/V head 数量降低 KV Cache 和带宽压力模型服务 / 网关
FlashAttention优化 attention 中间结果和显存读写提升长上下文 prefill 效率AI Infra / GPU
七、常见排查清单
症状优先怀疑检查动作
单条输入正常,batch 后异常padding mask、position ids、left/right padding对比 batch 与 single 的 token、mask、position ids
长上下文越长越漏证据attention 稀释、位置偏差、Top-K 片段过多做位置扰动、needle retrieval、chunk 排序对照
续写重复或突然跑偏KV Cache offset、cache position、stop sequence检查 past length、cache reuse 边界和 position continuity
量化后代码或长文本能力掉Q/K/V 或 attention 输出精度敏感按任务切片比较 logits、attention 稳定性和最终评测
可解释图看起来合理但答案仍错Attention pattern 只是线索,后续层和 MLP 改写了表示做消融、activation patching 和外部行为评测
7.1 Attention 状态证据包:谁在看谁,以及边界是否正确
证据节点必须记录的字段用来排查什么
输入边界token_ids_hash、attention_mask_hash、position_ids_hash、padding_sidebatch 后异常、padding 错位、位置错位和不可见 token 泄漏
Q / K / V 投影layer_id、head_id、qkv_dtype、quantization_config、shape_summary量化、张量并行或模型转换是否破坏了注意力计算
注意力模式attention_pattern_summary、top_attended_positions、mask_violations、entropy长上下文漏证据、格式 token 过强、注意力过度集中或过度稀释
KV Cache 连续性cache_position、past_length、kv_block_id、reuse_boundary、eviction_count续写重复、跨请求污染、cache offset 错误和长任务恢复失败
行为连接trace_id、needle_test_id、ablation_result、downstream_metric观察到的 attention 变化是否真的解释了输出行为,而不是漂亮图像
八、常见误区
误区:QKV 是三份输入文本
Q、K、V 都是同一层 hidden state 经过不同权重投影得到的向量角色,不是三份不同材料。
误区:Attention 权重就是解释
注意力权重能显示信息路由倾向,但输出还受多头拼接、输出投影、残差流、MLP 和后续层影响。
误区:多头越多越强
head 数量会影响表达和成本,但能力还取决于深度、宽度、数据、训练目标和整体架构。更多 head 也意味着更多调度和缓存压力。
误区:KV Cache 不影响模型行为
正确的 KV Cache 只是复用历史状态;一旦 cache position、mask 或 prefix 复用边界错了,就会直接改变生成行为。
九、回到 AI 主干
AI 全景 Transformer 总览 QKV / Attention Heads Position / RoPE Norm / Residual MLP / FFN 推理计算 / KV Cache 可解释性 / 内部表征

这张图在主线里的位置

Transformer 总览让你知道 Attention 是核心子层;RoPE 页解释位置怎样进入 Q/K;推理计算页解释 KV Cache 为什么贵;可解释性页解释 head 和 circuit 怎么分析。本页把这四者之间的 QKV 机制补成一条可排查、可互链的底层理解线。