2017年,Google那篇《Attention Is All You Need》扔出一句话,把统治NLP十年的RNN掀下王座。
七年过去,从ChatGPT到Sora,从AlphaFold到自动驾驶,几乎所有AI突破都长在Transformer这棵树上。
它到底牛在哪?今天这篇,从Attention机制到完整流程到变体家族,一次性讲透。看完你会明白:Transformer的真正革命,不是Attention多巧妙,而是它把"必须挨个算"的顺序计算,换成了"一起算"的并行计算。
一、Attention机制:让模型学会"分配注意力"
先说人话:Attention在干什么?
读一句话:"那只猫坐在垫子上,它看起来很舒服。"
问"它"指谁?人一眼就知道指猫。但机器怎么知道?Attention机制就是让模型在处理"它"这个词时,回头看一眼句子里的每个词,给"猫"打个高分,给"垫子"打个低分,然后重点参考"猫"的信息。
【一句话本质】Attention = 当前词对其他每个词的"关注权重"加权求和。谁相关,谁权重高,谁的信息就多流过来。
硬核拆解:Q、K、V三件套
Attention的核心是三个矩阵:Query(查询)、Key(键)、Value(值)。
类比图书馆找书:
- Q:你想找什么("我要一本讲猫的书")
- K:每本书的标签("这本是猫的、那本是狗的")
- V:每本书的内容(书里实际写的啥)
计算流程:
- 用Q和每个K做点积 → 算相关度
- 除以√dₖ缩放 → 防止数值太大梯度消失
- Softmax归一化 → 变成权重(加起来=1)
- 用权重加权所有V → 得到最终输出
公式一行: Attention(Q,K,V) = softmax(QKᵀ/√dₖ)V
【关键结论】Q、K、V都是从输入向量经线性变换得来,本质是同一个向量在三个不同视角下的投影。模型通过学习这三组权重,自己学会"该看哪里"。
多头注意力:别只盯一个角度
一个Attention头只能学一种关注模式。但语言关系是多元的——语法关系、语义关系、指代关系……一个头看不过来。
解决方案:开多个头,各看各的,最后拼接。
比如8个头:头1盯语法、头2盯指代、头3盯语义……并行算完,concat到一起再过一层线性映射。
【核心数据】原论文用8头,GPT-3用96头,LLaMA-2 70B用64头。头越多表达力越强,但显存和计算也线性涨。
二、Transformer整体工作流程:一座数据的"加工厂"
Attention只是车间之一,整座工厂还有好几道工序。以原版Transformer(编码器+解码器)为例,走一遍完整流程。
工序1:输入嵌入 + 位置编码
Transformer没有RNN的顺序结构,天生不知道词的先后顺序。把"猫追老鼠"和"老鼠追猫"喂进去,不加处理的话,在它眼里是一样的。
怎么治?给每个位置加一个独特的"位置身份证"——位置编码(Positional Encoding)。
原版用sin/cos不同频率生成,让模型能区分位置。后来的RoPE(旋转位置编码)更优,LLaMA、Qwen都在用。
【避坑要点】位置编码选错,模型分不清语序,效果直接崩。长上下文场景务必用RoPE或ALiBi,别用原版绝对位置编码。
工序2:编码器——理解输入
一层编码器 = 多头自注意力 + 残差连接 + LayerNorm + 前馈网络(FFN),原版堆了6层。
- 自注意力:每个词和句子里所有词交互,建立全局理解
- 残差连接:输出 = 输入 + 注意力输出,防止深层网络梯度消失
- LayerNorm:归一化,稳定训练
- FFN:两层全连接+激活,对每个位置独立做非线性变换,增加表达力
【关键结论】编码器的输出是每个词都融合了全局上下文的新表示,这就是"理解"的数学形态。
工序3:解码器——生成输出
解码器比编码器多一个掩码多头注意力层。
为什么要掩码?生成第5个词时,不能偷看第6个词,否则就是作弊。掩码把未来位置的注意力权重强制清零,保证自回归生成的合法性。
解码器还有第二层注意力——交叉注意力,Q来自解码端,K/V来自编码端,让生成时能"参考原文"。
工序4:输出层
过一层线性映射 + Softmax,得到词表上的概率分布,取概率最高的词输出。
一张图看全流程:
输入 → 嵌入+位置编码 → [编码器×6] → 上下文向量
↓
输出 ← Softmax ← 线性层 ← [解码器×6] ← 交叉注意力
↑
掩码自注意力 → FFN
【一句话总结】Transformer = 位置编码 + 多层(自注意力 + FFN + 残差 + 归一化),编码端建理解,解码端做生成。
三、为什么是Transformer赢了?三个致命优势
优势1:全并行,训练快到飞起
RNN必须等第1个词算完才能算第2个,GPU大量闲置。Transformer所有词同时算,训练效率差出10倍以上,这才是它碾压RNN的根本——不是效果多好,是能堆的规模多大。
优势2:任意距离直连,长依赖不衰减
RNN传到第100个词,早期信息几乎稀释殆尽。Transformer第1个词和第1000个词一步直达,长程依赖天然友好。
优势3:万能架构,模态无关
文本、图像、音频、视频、蛋白质序列……只要能切成token序列,都能塞进Transformer。一套架构打所有模态,这是它统治AI的深层原因。
四、Transformer变体家族:三大流派一张表
七年演化,Transformer分出三大流派,各自称霸一方。
流派1:编码器派——理解型任务之王
只保留编码器,双向注意力,每个词能看全文。擅长理解、分类、嵌入表示。
|
模型 |
特点 |
用途 |
|
BERT |
掩码语言模型预训练 |
文本分类、NER、问答 |
|
RoBERTa |
BERT调优版,去NSP任务 |
同上,效果更强 |
|
Sentence-BERT |
优化句子级嵌入 |
语义相似度、RAG检索 |
|
DeBERTa |
解耦注意力 |
长期SOTA |
流派2:解码器派——生成型霸主
只保留解码器,单向掩码注意力,自回归生成。今天大模型几乎全是这一派。
|
模型 |
规模 |
特点 |
|
GPT系列 |
GPT-3 175B |
开启大模型时代 |
|
LLaMA系列 |
7B-405B |
开源王者,RoPE+RMSNorm |
|
Qwen/DeepSeek |
国产顶流 |
MoE架构,性价比极高 |
|
PaLM/Gemini |
谷歌旗舰 |
多模态融合 |
【关键洞察】为什么解码器派赢了?因为生成是更通用的能力——理解、翻译、推理、对话都能统一成"续写下一个token"。GPT路线本质是用生成统一所有任务。
流派3:编码器-解码器派——转换型专家
保留完整结构,擅长输入序列→输出序列的转换任务。
|
模型 |
特点 |
用途 |
|
T5 |
把所有任务统一成text-to-text |
通用NLP |
|
BART |
去噪自编码预训练 |
摘要、翻译 |
|
mT5/Whisper |
多语言/语音 |
跨语言、语音识别 |
跨界变体:Transformer杀向其他模态
|
模型 |
模态 |
创新 |
|
ViT |
图像 |
把图切成patch当token |
|
Swin Transformer |
图像 |
层次化窗口注意力,降算力 |
|
Whisper |
语音 |
多语言语音识别 |
|
Sora/DiT |
视频 |
时空patch + 扩散 |
|
AlphaFold2 |
蛋白质 |
Evoformer,结构预测革命 |
【一句话总结】Transformer已不是NLP专属,它成了AI的"通用CPU"——任何能序列化的数据,都能跑在这套架构上。
五、我的判断:Transformer的命门在哪
别只看风光,Transformer有三个硬伤,下一代架构的突破口就在这:
命门1:注意力是O(n⊃2;)复杂度,长序列算力爆炸
序列翻倍,计算量变4倍。这就是为啥128K上下文比4K贵几十倍。线性注意力、FlashAttention、Mamba等都在攻这个点。
命门2:缺乏显式推理,靠模式匹配硬猜
Transformer本质是"高级插值",没有真正的推理链。这就是为啥要靠Chain-of-Thought、o1这类外挂推理来补。
命门3:记忆全在参数,无法增量更新
学新知识得重训,烧钱烧卡。RAG、MoE、持续学习都是在绕开这个限制。
【终局判断】短期Transformer仍统治,但Mamba/SSM、线性注意力、混合架构正在蚕食长序列高地。下一代霸主,大概率是"Transformer + 状态空间模型"的混血。
Transformer的伟大,不在于Attention多精妙,而在于它用并行计算解开了序列建模的算力枷锁,让"暴力美学+大数据"第一次在NLP跑通。 理解了这一点,你就理解了这七年AI狂飙的底层逻辑。
发表评论 取消回复