跳转到内容

Attention:让每个位置选择上下文

直觉版:一边生成,一边“看重点”

Section titled “直觉版:一边生成,一边“看重点””

注意力机制解决的问题是:当模型处理一个 token 时,应该重点参考哪些上下文?翻译“it”时可能要看前面的名词,回答问题时要看相关证据。注意力权重就是一组会随输入变化的分数,表示当前 token 对其他 token 的依赖强弱。

行表示正在更新的 token,列表示它关注的上下文 token;颜色越深,权重越高。

query \ key语言模型关注上下文生成答案
1.000.000.000.000.000.000.00
语言0.250.750.000.000.000.000.00
模型0.120.380.500.000.000.000.00
关注0.080.240.280.400.000.000.00
上下文0.050.180.220.250.300.000.00
生成0.040.120.200.180.260.200.00
答案0.030.100.220.120.230.180.12

Bahdanau 注意力先在序列到序列模型中证明了“动态查找上下文”的价值;Transformer 进一步把自注意力变成核心计算单元,让所有位置可以并行建立依赖关系。

实现上,每个 token 会投影成 Query、Key、Value。Query 和 Key 点积得到相似度,经过 softmax 变成权重,再对 Value 加权求和。多头注意力把这个过程复制多份,让不同头学习语法、指代、位置或任务相关模式。

自注意力的主要代价是序列长度平方级:长度翻倍,注意力矩阵大约变为四倍。因此推理系统会使用 KV cache 复用历史 Key/Value;长上下文模型会结合稀疏注意力、分块、滑窗或更高效 kernel。理解这个瓶颈有助于解释为什么上下文窗口很贵。

本文引用论文

  • Attention Is All You Need — Ashish Vaswani et al. (2017)

    Transformer 架构的奠基之作。作者完全用注意力机制替代了 RNN/CNN,提出多头自注意力与位置编码, 在机器翻译任务上大幅超越此前所有模型。今天所有主流 LLM 的底层架构都源于此论文。

  • Neural Machine Translation by Jointly Learning to Align and Translate — Dzmitry Bahdanau et al. (2014)

    注意力机制的开山之作(在 Transformer 之前)。作者发现 Seq2Seq 的固定长度瓶颈向量限制了翻译 质量,提出让解码器在生成每个词时都能"回顾"编码器的所有隐状态,动态分配注意力权重。 这个思想直接演化为 Transformer 的自注意力。