Transformer:现代 AI 的基石与意义矩阵的编解码艺术
TL;DR
- 核心地位:Transformer 取代 RNN/CNN 成为 NLP 及多模态领域的统一架构,是现代大模型 (LLM) 的物理地基。
- 架构精髓:基于自注意力机制 (Self-Attention) 的 Encoder-Decoder 结构,实现并行计算与长距离依赖捕捉。
- 演进分野:分化为 Encoder-only (BERT)、Decoder-only (GPT) 与 Encoder-Decoder (T5) 三大流派,分别专攻理解、生成与翻译。
- 哲学隐喻:人生即编解码——前半生 Encoder 压缩世界为含义矩阵,后半生 Decoder 向世界输出价值。
概念与痛点
它是什么
Transformer 是 Google 团队在 2017 年论文《Attention Is All You Need》中提出的深度学习架构。它完全抛弃了循环与卷积,纯粹依赖注意力机制来处理序列数据。
解决什么问题
- 串行计算瓶颈:RNN/LSTM 必须按时间步顺序计算,无法利用 GPU 并行加速,训练极慢。
- 长距离遗忘:序列过长时,早期信息在传递中衰减,无法捕捉“上下文”。
- 信息瓶颈:Seq2Seq 模型将整句压缩为一个定长向量,信息有损。
发展历史与演进
- RNN/LSTM 时代:序列建模的统治者,但受限于串行与梯度消失。
- Attention 引入:Bahdanau Attention 让模型能“聚焦”原文不同部分,但仍挂载于 RNN 上。
- Transformer 诞生 (2017):彻底移除 RNN,提出 Multi-Head Attention,开启并行训练新纪元。
- 百花齐放 (2018-2020):
- BERT (Encoder-only):双向理解,横扫 NLP 榜单。
- GPT (Decoder-only):单向生成,暴力美学初现。
- T5/BART (Encoder-Decoder):统一文本到文本任务。
- 大模型时代 (2020+):Decoder-only 架构因其训练稳定性与涌现能力,成为 ChatGPT 等 LLM 的首选。
核心模块

- Encoder (编码器):
- 作用:负责“理解”。将输入序列转化为富含语义的上下文向量 (Context Vector)。
- 结构:Self-Attention + Feed Forward Network (FFN),层层堆叠,双向可见。
- Decoder (解码器):
- 作用:负责“生成”。根据上下文向量与已生成的 Token,预测下一个 Token。
- 结构:Masked Self-Attention (防剧透) + Cross-Attention (看 Encoder) + FFN。
- Self-Attention (自注意力):
- 核心公式:$Attention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d_k}})V$
- 让每个词都能关注句中其他所有词,计算相关性权重。
运行机制与工程实践
独立工作模式
Transformer 的 Encoder 和 Decoder 既可合体 (如机器翻译),亦可独立门户:
- Encoder-only (理解流):
- 代表:BERT, RoBERTa。
- 训练:Masked Language Modeling (完形填空)。随机遮盖词,让模型猜。
- 应用:情感分析、文本分类、命名实体识别。

- Decoder-only (生成流):
- 代表:GPT 系列, LLaMA。
- 训练:Causal Language Modeling (文本接龙)。根据上文预测下文。
- 应用:对话生成、代码补全、创意写作。

- Encoder-Decoder (互译流):
- 代表:T5, BART。
- 应用:机器翻译、文本摘要。
运算流程与数学本质
一切计算的尽头都是加法和乘法,Transformer 也不例外。它的核心模块,无论是 Self-Attention、Feed-Forward Network (FFN) 还是最后的线性输出层,其本质都是线性变换 (Linear Transformation),即一系列精心设计的矩阵乘法和加法。
线性变换:世界的通用语
线性变换是连接两个向量空间的桥梁。它的作用是对信息进行旋转、缩放、投影和整合。如果世间万物(比如食物)都可以用一组数字(向量)来表示,那么对这些事物的操作和推导(比如“评价一道菜”)就可以通过一个线性变换(一个参数矩阵)来完成。
Transformer 正是利用这个思想来处理信息的:
- Embedding:将离散的单词(Token)映射为高维向量,赋予其在数学空间的初始坐标。
- Positional Encoding:通过加入正弦/余弦函数,为每个向量注入位置信息,弥补纯注意力机制对顺序的不敏感。
- Attention 中的线性变换:
- 输入向量 $X$ 分别乘以三个权重矩阵 $W_Q, W_K, W_V$ 得到 $Q, K, V$。这本身就是三次线性变换,将原始信息投影到三个不同的“功能”子空间。
- $Q \times K^T$:通过点积计算向量间的相似度。
- $\times V$:根据相似度权重,对 $V$ 向量进行加权求和,聚合信息。
- Multi-Head Attention 则更进一步,将这个过程重复多次(多个“头”),每个头关注不同的信息模式,再将结果拼接并再次进行线性变换,整合所有头的发现。
非线性激活:从线性到万能
如果模型只包含线性变换,那么无论叠加多少层,其最终效果等同于一次性的线性变换,无法捕捉现实世界中普遍存在的非线性关系(例如,“好吃”和“非常咸”之间的关系就不是简单的线性叠加)。
为了让模型能够表示非线性关系,我们在线性层之间插入了激活函数 (Activation Function)。
- 目的:为模型引入非线性,使其能够拟合任意复杂的函数。
- 常见激活函数:ReLU (Rectified Linear Unit), GeLU (Gaussian Error Linear Unit), Sigmoid, Tanh 等。
- 组合结构:正是“线性层 -> 激活函数 -> 线性层 -> 激活函数 …”这种重复结构,构成了所谓的前馈神经网络 (Feed-Forward Network, FFN) 或多层感知机 (MLP)。这对应于 Transformer 架构图中的
Feed Forward模块,它在每个 Attention 层之后对信息进行深度加工和提炼。
监督 vs 自监督
- 监督学习:有标签数据 (Input: “猫”, Label: “Cat”)。成本高,数据难得。
- 自监督学习 (Self-Supervised):无标签,自己挖坑自己填。
- 无论是 BERT 的挖词填空,还是 GPT 的预测下一个词,本质都是利用海量文本本身作为监督信号。这是 AI 爆发的核动力。
参数训练:从“是什么”到“为了什么”
无论是监督还是自监督,模型训练的逻辑是相通的:我们知道输入,也知道期望的正确输出,但中间的转换过程(即模型的参数)是未知的。
- 初始化:我们先把所有参数(即那些巨大的权重矩阵 $W_Q, W_K, W_V$ 等)设置为随机的、无意义的数字。
- 前向传播:让模型根据当前参数处理输入,得到一个初始的、几乎肯定是错误的输出。
- 计算差距:比较模型的输出与期望的正确输出之间的差别(即 损失 Loss)。
- 反向传播与调优:如果差距很大,就使用梯度下降 (Gradient Descent) 算法,像一位雕塑家一样,微调每一个参数,让下一次的输出能离正确答案更近一点点。
这个过程会重复亿万次。在这个过程中,我们并不知道训练出的某一个具体参数的物理含义是什么,只知道由数亿个这样的参数组成的整体,能够达成我们的目的(比如准确地翻译、流畅地对话)。
这就是理解现代 AI 模型的思维转变:我们应该更关注模型的目的是什么 ,而非纠结于每个参数是什么。例如,GPT 在最后一步会用一个巨大的 Linear 线性层,将模型内部复杂的表示(一个高维向量),直接映射为词汇表中每个 Token 的匹配度(Logits)。我们不需要理解这个 Linear 层内部具体数字的含义,只需要知道它的作用是“将思想翻译为语言”。只要我们认为 A 和 B 之间存在某种(哪怕是极其复杂的)映射关系,就可以引入一个或多个线性层,让模型自己去学习这个变换矩阵。
损失函数与梯度下降:如何「雕刻」参数
为了让「差距」可计算,我们定义了损失函数 Loss,它把「预期值与模型实际输出之差」量化成一个标量。常见形式:
| 任务 | 常用损失函数 | 公式 | 图像特征 |
|---|---|---|---|
| 回归 | 均方误差 MSE | $\frac{1}{N}\sum (y-\hat{y})^2$ | 开口向上抛物线 |
| 二分类 | 交叉熵 BCE | $-\bigl[y\log\hat{y}+(1-y)\log(1-\hat{y})\bigr]$ | 在 $0/1$ 附近陡峭 |
| 多分类 | 交叉熵 CE | $-\sum y_i\log \hat{y}_i$ | 类 BCE,多峰 |
训练目标只有一个:把损失压到最低。观察损失曲面,任一点处的斜率即梯度 $\nabla L$:
- 若斜率为负,说明继续沿横轴向右移动可使损失下降;
- 若斜率为正,则需向左移动。
因此,每个参数 $w$ 的更新规则永远是:
其中 $\eta$ 为学习率。由于每一步都沿着梯度相反方向(下坡)走,该算法得名梯度下降——让损失一路向「谷底」逼近,直至趋于 $0$ 或无法继续下降为止。
高级特性:生成与创造性
输入输出成本差异
为何 Output Token 比 Input Token 贵/慢?
- Input (Prefill):一次性并行计算所有 Token 的 KV Cache。GPU 利用率高。
- Output (Decoding):自回归 (Auto-regressive) 生成。每生成一个词,都要将其加入输入再次前向传播。串行过程,受限于内存带宽 (Memory Bandwidth Bound)。
创造性的调节
模型输出本质是概率分布采样。
- Temperature (温度):
- $T < 1$ (低温):概率分布变尖锐,只选大概率词。输出保守、准确、逻辑严密。
- $T > 1$ (高温):概率分布变平缓,低概率词也有机会被选中。输出多样、发散、有创意。
- Top-k / Top-p:
- Top-k:仅在概率最高的 k 个词中采样,截断长尾垃圾词。
- Top-p (Nucleus):按概率累加直到 p (如 0.9),动态调整候选池大小。