LESSON · 03

Attention
is
All
You Need.

2017 年那篇改变世界的论文。

2017 · Google Brain

  • 8 人小队,被引用超 12 万次
  • 任务:机器翻译
  • 突破:完全抛弃 RNN/CNN
  • 代价:训练只用了 8 张 P100
  • → 7 年后,它驱动了整个 GenAI 时代

RNN vs Transformer

RNN

  • 顺序计算
  • 难并行
  • 长依赖梯度爆炸/消失
  • 慢
→

Transformer

  • 全 token 并行
  • GPU 友好
  • 任意距离直接 Attention
  • 快

"看
哪里"
的能力

读"它很可爱"时,"它"该看哪个名词?

self-attention


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

Q = X · W_Q   ← 我"想问什么"
K = X · W_K   ← 别人"能提供什么"
V = X · W_V   ← 别人"实际给什么"

三步拆解

  • ① 算相关性 · Q × K^T → 每个 token 对其他 token 的"关注度"
  • ② 缩放归一化 · ÷√d_k → softmax 得到注意力权重
  • ③ 加权求和 · × V → 得到上下文向量
  • 本质:每个 token 用所有 token 的加权信息更新自己

多头
×8 / ×16 / ×128

多个观察视角并行,再拼起来。

为什么要多头

  • 单头只能学一种"关系模式"
  • 多头 = 多个并行注意力子空间
  • 有的头看语法,有的看实体,有的看共指
  • 结果 concat → 线性变换 → 输出

位置编码

  • 问题:Attention 是无序的
  • "我打你" vs "你打我" → 注意力会一样
  • 解药:给 token 加上"位置向量"
  • 正弦位置编码(原论文)
  • RoPE 旋转位置编码(现代主流,Llama 等)

双塔结构(原始)

Encoder

  • 看见整个输入
  • 双向 Attention
  • BERT 的形态
+

Decoder

  • 只能看左边
  • 因果 Mask
  • GPT 的形态

最后
只用 Decoder
就赢了。

GPT-1, 2018 → ChatGPT, 2022

Decoder-only 为何称王

  • "预测下一个词"任务足够通用
  • 可同时做生成 + 理解
  • 规模化训练简单
  • In-context Learning 涌现

70B 参数都在哪

  • Embedding · ~5%
  • Attention 权重(Q/K/V/O)· ~25%
  • FFN(前馈层) · ~65%(最大头)
  • LayerNorm + 其他 · ~5%
  • FFN 才是知识的"主仓库",Attention 是"路由"

知道 Transformer 能帮你做什么决策

  • 选模型大小 → 参数量 ≈ 层数 × 隐藏维度²,越大推理越慢/越贵
  • 设 max_tokens → 生成成本 = context 长度 × 层数,长输出贵
  • 选 MoE 省钱 → 只激活部分参数,等效大模型能力但推理快
  • 理解 context window → 影响 RAG 设计(塞多少 chunk)
  • 调 temperature → 本质是 softmax 前除的那个数,越大越随机

本课收获

Self-Attention 公式 Q/K/V 拆解 多头 位置编码 Decoder-only

下一课 · Prompt 工程:好的 Prompt = 半个产品