什么是 注意力机制?
注意力机制(Attention Mechanism)是一种可微计算:它对允许访问的 Query-Key 位置对打分并归一化,再用所得权重组合 Value,生成依赖上下文的输出表示。
快速了解
| 全称 | Attention Mechanism |
|---|---|
| 创建时间 | 2014 年由 Bahdanau 等人提出,2017 年由 Vaswani 等人推广 |
| 规范文档 | 官方规范 |
工作原理
自注意力、交叉注意力与可见性
自注意力从同一表示流生成 Q、K、V;交叉注意力的 Query 来自一个表示流,Key 与 Value 来自另一个表示流。Causal Mask 阻止生成位置读取未来 Token,Padding Mask 排除为 Batch 对齐而添加的填充。Mask 极性与广播方式属于 API 契约,必须显式测试。
多头设计与推理
Multi-Head Attention 使用多组学习投影并行计算,再拼接 Head 输出并执行 Output Projection。MQA 与 GQA 通过减少独立 KV Head 降低增量 Decode 的显存带宽和 KV Cache 容量,但它们是训练后的模型架构选择,不是无损运行时开关。
复杂度与解释边界
稠密 Attention 需要计算目标位置与来源位置的成对关系,因此 Score 工作量随目标长度乘来源长度增长。FlashAttention 等精确融合 Kernel 可减少中间结果和显存访问,但不会让稠密成对计算普遍变为线性。Attention Weight 只描述某层某个 Head 的路由系数,可用于诊断,却不能单独证明最终预测的因果来源。
主要特点
- 把 Query-Key 兼容性打分与 Value 内容聚合分离
- 为每个 Query 行在允许访问的 Key 上形成归一化分布
- 通过不同 Q/K/V 来源支持自注意力与交叉注意力
- 使用 Causal、Padding、Local 或架构专属 Mask 定义可见性
- 可扩展为 MHA、MQA 与 GQA 等 Head 布局
- 需要形状、Mask、数值、质量与性能测试
常见用途
- Transformer Encoder 与 Decoder-only 大模型中的上下文 Token 交互
- 在不暴露未来目标位置的前提下训练自回归预测
- 融合文本、图像、音频或结构化表示的跨模态系统
- 翻译、语音识别与条件生成中的 Encoder-Decoder 对齐
- 在实测权衡下组合精确 Kernel、稀疏模式或 KV Cache 的长序列系统
示例
Loading code...常见问题
注意力机制的作用是什么?
对每个 Query,注意力会为允许访问的 Key 打分并归一化,再按权重组合对应 Value,形成依赖上下文的表示。Weight 是大模型内部学习到的行为,不是符号数据库查询,也不保证能直接解释最终答案。
自注意力和交叉注意力有什么区别?
自注意力从同一表示流生成 Query、Key 和 Value,例如同一 Token 序列;交叉注意力的 Query 来自一个表示流,Key 和 Value 来自另一个表示流,例如 Decoder 读取 Encoder 输出,或文本位置读取图像特征。
为什么注意力需要 Query、Key 和 Value 三种投影?
独立学习投影让模型用一套表示空间匹配 Query 与 Key,再用另一套表示传递 Value 内容。投影参数由任务 Loss 优化。检索类比有助于理解,但架构不会为每个维度预先指定固定的人类语义。
Causal Mask 与 Padding Mask 有什么不同?
Causal Mask 通过屏蔽未来位置保证时间或生成顺序;Padding Mask 排除为了对齐 Batch 长度而添加的人工 Token。二者可以组合,但不同框架的布尔极性、Shape 和 Broadcasting 规则不同,必须编写明确的 Mask 测试。
注意力机制一定是二次复杂度吗?
稠密自注意力会计算每个允许的目标位置与来源位置对,目标和来源长度相同时产生二次 Score 项。FlashAttention 减少显存访问和中间矩阵物化,却不改变精确的成对计算;稀疏、局部或近似 Attention 则通过改变可见位置或近似方式减少 Pair。
注意力权重能解释模型输出吗?
它能显示特定输入、Layer 和 Head 的路由模式,却没有包含 Value、Output Projection、Residual Path、其他 Head 和后续层。应把 Heatmap 当作诊断证据,再用消融或受控反事实实验验证因果结论。