什么是 注意力机制?

注意力机制(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、数值、质量与性能测试

常见用途

  1. Transformer Encoder 与 Decoder-only 大模型中的上下文 Token 交互
  2. 在不暴露未来目标位置的前提下训练自回归预测
  3. 融合文本、图像、音频或结构化表示的跨模态系统
  4. 翻译、语音识别与条件生成中的 Encoder-Decoder 对齐
  5. 在实测权衡下组合精确 Kernel、稀疏模式或 KV Cache 的长序列系统

示例

loading...
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 当作诊断证据,再用消融或受控反事实实验验证因果结论。

相关术语

相关文章