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:每本书的内容(书里实际写的啥)

计算流程:

  1. 用Q和每个K做点积 → 算相关度
  2. 除以√dₖ缩放 → 防止数值太大梯度消失
  3. Softmax归一化 → 变成权重(加起来=1)
  4. 用权重加权所有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狂飙的底层逻辑。

点赞(0)

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部