"Attention Is All You Need" — 改变了自然语言处理和人工智能的革命性架构
抛弃RNN顺序处理,所有位置同时计算,GPU利用率从30%提升至90%+,训练速度大幅提升
自注意力让每个位置直接关注序列任意位置,有效捕获长距离依赖,解决RNN梯度消失问题
架构简洁统一,易扩展到数十亿甚至万亿参数规模,GPT、BERT、LLaMA等模型的基础架构
从机器翻译扩展到文本生成、图像识别(ViT)、语音处理、蛋白质结构预测等多领域
输入序列 → 嵌入+位置 → [自注意力 → Add&Norm → FFN → Add&Norm] ×N → [掩码注意力 → Add&Norm → 交叉注意力 → Add&Norm → FFN → Add&Norm] ×N → Linear → Softmax → 输出Token
Transformer的核心创新
查询向量
「我想找什么?」
键向量
「我有什么特征?」
值向量
「我能提供什么?」
多头注意力:将Q、K、V分成多个头(如8个),各自独立计算注意力后拼接,
使模型能从不同子空间学习不同的注意力模式
理解Transformer的工作流程
将源序列和目标序列转换为token ID,添加特殊标记([BOS]、[EOS]、[PAD]),创建注意力掩码
编码器处理源序列生成上下文表示,解码器基于上下文和已生成的token预测下一个token(Teacher Forcing)
使用交叉熵损失计算预测分布与真实标签之间的差距
计算梯度,使用Adam优化器(配合warmup学习率调度)更新模型参数
将输入文本编码为向量表示,这一步只需执行一次
从[BOS]开始,逐个生成token,每次将已生成的序列作为解码器输入
选择合适的解码策略影响生成质量
缓存已计算的Key和Value,避免重复计算,将推理时间从O(n²)降到O(n)
以机器翻译为例理解Transformer工作流程
Step 1: 分词(Tokenization)
Step 2: 词嵌入 + 位置编码
词嵌入
位置编码
输入表示
Step 3: 自注意力计算
"cat" 在计算注意力时会给 "sits" 较高的权重(主谓关系),
"mat" 会给 "on" 和 "the" 较高的权重(介词短语)
↑ "cat" 的注意力分布(颜色越深权重越高)
Step 4: 自回归解码生成 — 详细流程
🔍 每个时间步t,解码器内部发生什么?
输入 [BOS, 猫, 坐] → 每个位置只能看到自己和之前的token(因果掩码防止"偷看"未来)
输出:融合了历史信息的向量表示
残差连接:output = input + attention_output(让梯度直接流过,训练更稳定)
层归一化:将数值标准化到均值0、方差1,加速收敛、防止数值爆炸
Q来自解码器("坐"的表示),K和V来自编码器("The cat sits..."的表示)
这是翻译的关键:让中文token"看到"对应的英文信息
再次残差连接 + 层归一化,稳定训练
两层线性变换 + ReLU/GELU激活:FFN(x) = W₂ · ReLU(W₁ · x + b₁) + b₂
将512维扩展到2048维再压回512维,增加模型的表达能力(存储知识)
第三次残差 + 归一化,输出送入下一个解码器层或最终输出层
线性层:将512维向量映射到词表大小(如30000维),每个维度是一个词的"得分"
Softmax:将得分转换为概率分布(所有概率和为1)
例如:P(在)=0.85, P(上)=0.08, P(里)=0.03... → 选择"在"作为下一个token
输入token → 掩码自注意力 → Add&Norm → 交叉注意力 → Add&Norm → FFN → Add&Norm → Linear+Softmax → 概率分布 → 采样 → 下一个token
从GPT-1到ChatGPT:参数规模、矩阵维度与设计原理
| 模型 | 参数量 | 层数 (L) | 隐藏维度 (d_model) | 注意力头数 (h) | FFN维度 | 上下文长度 |
|---|---|---|---|---|---|---|
| GPT-1 | 117M | 12 | 768 | 12 | 3072 | 512 |
| GPT-2 | 1.5B | 48 | 1600 | 25 | 6400 | 1024 |
| GPT-3 | 175B | 96 | 12288 | 96 | 49152 | 2048 |
| GPT-4 | ~1.8T (MoE) | 120 | ~16384 | 128 | ~65536 | 8K-128K |
vocab_size × d_model
将token ID映射为向量
6.17亿参数
每层3个矩阵(Q,K,V)
96层共288个
每层4.53亿参数
W1: d→4d, W2: 4d→d
96层共192个
每层12.08亿参数
多头注意力输出投影
合并多头结果
每层1.51亿参数
目标:学习语言的通用知识
数据:互联网文本 (~45TB,约3000亿token)
任务:下一个token预测 (Causal LM)
损失:交叉熵 L = -Σ log P(x_t | x_ 计算:数千GPU,数周至数月
目标:学习对话格式和指令遵循
数据:人工标注的对话数据 (~10万条)
任务:给定prompt生成高质量回复
方法:在预训练模型上继续训练
效果:模型学会按指令回答
目标:让模型输出符合人类偏好
步骤1:训练奖励模型(RM),学习人类偏好
步骤2:用PPO算法优化策略
损失:L = E[r(x,y)] - β·KL(π||π_ref)
效果:更有帮助、无害、诚实
更深的网络能学习更抽象的特征层次:浅层学词法、中层学句法、深层学语义和推理。研究表明模型能力随深度对数增长。
更大的隐藏维度提供更丰富的表示空间,能存储更多知识。Scaling Law显示:参数量翻倍,损失下降约0.05。
FFN是主要的知识存储层,4×扩展提供足够容量。研究表明FFN类似于键值记忆,存储事实知识。
多头让模型同时关注不同类型的依赖:语法关系、语义相似、位置模式等。每个头d_k=128维,总计=96×128=12288。
预训练只学"像人说话",不保证"说人话"。RLHF通过人类反馈校准,让模型学会有用、无害、诚实(HHH)。
Mixture of Experts让参数量增大但计算量不变。每次推理只激活部分专家(如8/16),实现"大而不贵"。
Transformer架构的演进与优化
Google发布"Attention Is All You Need",开创性地使用纯注意力机制
预训练+微调范式确立,NLP进入大模型时代
1750亿参数展示涌现能力,Transformer进入视觉领域
大语言模型爆发,开源生态繁荣,Flash Attention等优化成熟
GPT-4V、Gemini等多模态模型,Transformer成为AGI基础架构