注意力机制
让模型在处理某个位置时,动态决定该参考序列中哪些其他位置的信息。
又称:Attention · 自注意力 · Self-Attention
注意力机制回答一个问题:处理当前这个词时,应该看前面的哪些词、各看多重?
直觉
读「小明把书给了小红,因为她要考试」时,理解「她」必须回头找到「小红」。人类是扫一眼就建立了这个关联;注意力机制把这个动作变成了可计算的权重分配。
怎么算
每个 token 由输入向量投影出三个向量:
- Query(Q):我在找什么
- Key(K):我是什么
- Value(V):我能提供什么信息
用 Q 和所有 K 做点积得到相似度,除以 √d 防止数值过大,过 softmax 归一化成权重,最后对 V 加权求和:
Attention(Q,K,V) = softmax(QKᵀ / √d) V
这个输出就是「带着上下文信息的当前 token 表示」,然后送进前馈网络。
多头与因果掩码
- 多头:并行做多组独立的注意力,让模型同时捕捉语法、指代、语义等不同类型的关系。
- 因果掩码:生成式模型不能让第 3 个词看到第 4 个词,所以在打分矩阵右上角加上
-∞,保证只能往前看。这一步是 GPT 类模型能「逐字生成」的前提。
为什么重要
注意力是 Transformer 里唯一负责「信息交换」的部件。它的计算量随序列长度平方增长,这也是长上下文成本高的根本原因——后来的各种稀疏注意力、线性注意力,都是在削这个平方项。
进阶 #原理#架构
最后更新:2026/11/4