← 返回

什么是 Attention

Attention(注意力机制)让模型能够"关注"输入中重要的部分,是现代 LLM 的核心。

核心思想

理解句子时,不是所有词都同等重要。

"这只  吃了 "

理解"猫"时,需要关注"吃"、"鱼";理解"鱼"时,需要关注"猫"、"吃"。

Self-Attention 原理

Transformer 中的 Self-Attention 让每个词都能"看到"句子中的所有其他词:

Attention(Q, K, V) = softmax(QK^T / √d_k) × V

其中:

直观理解:Q 和 K 匹配(计算相似度),匹配结果决定从 V 中提取多少信息。

计算步骤

  1. 对每个位置生成 Q, K, V(线性变换)
  2. 计算 Q 和所有 K 的点积(相似度)
  3. 除以 √d_k 缩放(防止数值过大)
  4. Softmax 归一化(得到权重)
  5. 权重乘以 V(聚合信息)
例如:处理 "The cat sat on the mat"

步骤1: 每个词生成 Q, K, V
步骤2: 计算 "sat" 的 Q 与所有词的 K 的相似度
步骤3: 得到权重 ["cat": 0.3, "sat": 0.5, "mat": 0.2]
步骤4: 加权求和 V → "sat" 的新表示

为什么重要?

Multi-Head Attention

单次 Attention 只能捕捉一种关系,Multi-Head 用多组 Q,K,V 同时捕捉多种关系:

GPT-3: 96 heads
Llama-2-7B: 32 heads
Claude: 更多 heads

Attention vs RNN/LSTM

特性 RNN/LSTM Attention
计算方式 顺序(串行) 并行
长距离依赖 弱(梯度消失)
可解释性 好(权重可视化)
扩展性 好(适合大规模)

Encoder-Decoder vs Decoder-only

Encoder-Decoder (原始 Transformer)

Decoder-only (GPT 系列)

Encoder-only (BERT)

RoPE (Rotary Positional Embedding)

现代模型(Llama、PaLM、GLM)多用 RoPE 而非绝对位置编码:

Grouped Query Attention (GQA)

优化 Attention 计算,减少推理时内存:

可视化工具

推荐阅读