Transformer 架构全图
约 14 分钟
零件齐了,这一节把它们装成完整的架构,并讲清楚三种变体的分野——今天几乎所有大模型都是其中之一。
原始架构:编码器 + 解码器
2017 年的论文《Attention Is All You Need》是为机器翻译设计的,所以是两段式:
源语言 → 编码器(N 层)→ 语义表示
↓
目标语言 ← 解码器(N 层)← 交叉注意力
编码器:每层 = 多头自注意力 + 前馈网络(各带残差和层归一化)。能看到输入的全部词(双向)。
解码器:每层多一个交叉注意力(Q 来自解码器,K/V 来自编码器输出),而且自注意力是带掩码的。
掩码:为什么解码器不能「偷看」
生成第 个词时,模型只能看到前 个词——因为预测时未来还不存在。
但训练时整个目标句子都在,如果不加限制,模型会直接抄答案。
做法:在 softmax 之前,把「未来位置」的注意力分数设成 ,softmax 后就变成 0。
这叫因果掩码(causal mask),是所有生成式模型的基础。
三种变体,三条技术路线
| 架构 | 代表 | 能看到什么 | 擅长 |
|---|---|---|---|
| 仅编码器 | BERT 系 | 双向,能看全文 | 理解类:分类、抽取、检索 |
| 仅解码器 | GPT 系 | 单向,只能看左边 | 生成类:对话、写作、代码 |
| 编码器-解码器 | T5、翻译模型 | 编码器双向 + 解码器单向 | 序列到序列:翻译、摘要 |
今天的主流大语言模型绝大多数是「仅解码器」架构。
为什么解码器路线赢了(三个原因):
- 训练目标极其简单——预测下一个词,任何文本都能当训练数据,不需要标注
- 一个模型能统一所有任务——翻译、摘要、问答都可以写成「续写」
- 规模化效果最好——参数和数据一起放大时,能力提升最平滑
一个容易混淆的点:层归一化的位置
| 方式 | 结构 | 特点 |
|---|---|---|
| Post-LN(原论文) | 残差之后归一化 | 效果好但深层难训练,需要 warmup |
| Pre-LN(现代主流) | 归一化放进残差分支之前 | 训练稳定,能堆到上百层 |
现代大模型基本都用 Pre-LN。 这是个不起眼但影响巨大的工程改动——它让「把网络堆得很深」变得可行。
参数量都花在哪
一个 Transformer 层的参数主要是两块:
| 部分 | 占比 |
|---|---|
| 注意力的 | 约 1/3 |
| 前馈网络(FFN) | 约 2/3 |
FFN 通常把维度扩大 4 倍再压回来(),所以参数量大。
有一个流行的观点:注意力负责「在词之间搬运信息」,FFN 负责「存储知识」。 模型记住的事实性知识,很大程度在 FFN 的权重里。
为什么这个架构能一统天下
| 优势 | 说明 |
|---|---|
| 并行度高 | 训练时整句同时算,充分利用 GPU |
| 可扩展 | 层数、宽度、头数都能直接放大,效果稳定提升 |
| 通用 | 换成图像块就是 ViT,换成音频帧就能做语音 |
第三条最惊人:同一个架构,几乎不改动地迁移到了图像、音频、蛋白质序列、时间序列。这是深度学习史上罕见的通用性。
练习:为什么「仅解码器」架构能同时做翻译、摘要和问答?把这三个任务各写成一个「续写」的形式试试。
Transformer 的三种变体分别擅长什么?为什么「仅解码器」路线成为大模型主流?
登录 后可看答案