深入理解 Transformer:把大模型拆成一堂数学课

板块:深度学资料 | 发布时间:2026-07-29 10:02:08

引言:为什么每个人都在谈 Transformer?

从 2017 年 Google 团队发表《Attention Is All You Need》至今,Transformer 已经从一篇论文变成了整个 AI 产业的底层基础设施。无论是 GPT、Claude、Gemini、DeepSeek,还是开源的 LLaMA、Qwen,它们的骨架都是 Transformer。

但很多初学者一听到这个名词就头大:Q、K、V 到底是什么?注意力机制为什么能"并行"?为什么 Transformer 能把 RNN 全部淘汰?本文用最朴素的语言,把这套架构拆给你看。

一、先搞清背景:Transformer 解决了什么问题

在 Transformer 出现之前,处理"序列"的主流方案是 RNN/LSTM。它们的核心公式是:

ht = f(ht-1, xt)

也就是每一步都依赖上一步的隐藏状态。这种结构有三个致命缺陷:

  • 无法并行:要算 h10,必须先算完 h1h9,GPU 大半时间在空转。
  • 长距离遗忘:一句话 200 个 token 之后,早期的信息几乎丢失。
  • 信息被压缩到固定向量:256 维的隐藏状态要塞下一整段语义,本质上是要求"用一句话记住一整本三国演义"。

Transformer 的解法很激进:把循环结构整个扔掉。让序列里任意两个 token 直接"对话",再也不需要中间的"状态接力"。

二、Self-Attention:让每个词互相"对眼"

Self-Attention 的本质就是一句话:每个 token 在更新自己时,都要回头看一遍整段句子,决定重点关注谁。典型的英文句子:

The animal didn't cross the street because it was too tired.

当模型处理 "it" 时,到底指代 "animal" 还是 "street"?Self-Attention 通过给所有位置算权重,让模型自动学会这种指代关系。

三、Q、K、V:理解注意力的钥匙

Q(Query)、K(Key)、V(Value)三个名字听起来很神秘,其实只是同一个输入向量经过三套不同的线性变换得到的。

  • Q(查询):当前 token 想找什么信息?
  • K(键):当前 token 身上有什么可被匹配的特征?
  • V(值):一旦被关注,我要提供什么具体内容?

类比成搜索引擎:Q 是搜索词,K 是网页标签,V 是网页正文。先用 Q 和 K 做相似度匹配决定谁更相关,再把 V 按权重汇总起来。整个 Scaled Dot-Product Attention 的公式就是:

Attention(Q, K, V) = softmax(Q · KT / √dk) · V

其中 √dk 是缩放因子,避免高维点积值太大让 softmax 梯度消失。

四、多头注意力:让模型"多位分析师同时看"

单头注意力只能从一个角度看语言关系,但语言关系是多维的:语法、语义、指代、局部位置……多头注意力(Multi-Head Attention)的解法是:把 Q、K、V 拆成多组(比如 32 头),每组独立算一遍 attention,最后拼起来再做一次线性映射。

你可以把它想成:多位分析师同时读同一份材料,最后合并意见。Llama-3-70B 这种规模,hidden_dim=8192,num_heads=64,head_dim=128,总参数规模几乎不变,但同时获得了多个观察视角。

五、位置编码:让 Transformer 知道"谁在前"

Self-Attention 最大的坑是它对位置毫无感知——把"我打你"和"你打我"输入进去,结果几乎一样。Transformer 没有像 RNN 那样天然时序结构,顺序必须靠"位置编码"显式注入

演进路线大致是:

  • Sinusoidal(2017,原始论文):用 sin/cos 表达绝对位置,已基本被淘汰。
  • Learned PE(2018):每个位置学习一个向量,BERT、早期 GPT 在用。
  • RoPE(2021 至今主流):用旋转矩阵编码相对位置,可外推到 32K、128K、1M 上下文,是 Llama/Qwen/DeepSeek 的标配。

六、Transformer Block:一个完整的"加工单元"

一个标准的 Transformer Block 由四个组件构成:

  1. Multi-Head Self-Attention:让 token 之间互相看。
  2. Add & LayerNorm:残差连接 + 归一化,让深层网络能稳定训练。
  3. FFN(前馈网络)FFN(x) = W2 · activation(W1 · x),把维度放大 4 倍再压回去,这是模型大部分参数的"住所"。Llama-3-70B 的 FFN 占总参数的 70% 左右。
  4. 再一层 Add & LayerNorm

把这套 block 堆叠 80 层(Llama-3-70B)就是最终的"大脑"。

七、Decoder-only 为什么"一统天下"

Transformer 原论文其实是 Encoder-Decoder 结构,给机器翻译用的。但实战中三种架构同台竞技后,Decoder-only(GPT/Llama/Claude)几乎一统天下。原因有三:

  • 统一性:所有 NLP 任务都能转成"给定前缀预测下一个 token"——分类、抽取、对话、翻译,一个范式打天下。
  • Scale 友好:训练目标简单(next-token prediction),数据随时可拿,完美适配 Scaling Law。
  • In-Context Learning 涌现:规模到一定程度后,仅凭 prompt 里的几个例子就能学会新任务。

八、KV Cache:让推理变快的关键技巧

Decoder-only 推理时,每生成一个新 token 都要重新算一遍 attention,这显然浪费。工程上有个关键技巧:把之前算过的 K、V 缓存起来,下次只算新的那一份。这就是 KV Cache。

但它也有代价——KV Cache 占显存。例如 70B 模型、长上下文场景里,KV Cache 显存占用反而比权重本身还多。这就是为什么 vLLM 的 PagedAttention、Flash Attention 这些优化都是围绕着 KV Cache 在做文章。

九、一句话总结

Transformer 不是某一个天才公式,而是把四件事做对了的统一:

  • 并行计算让 GPU 跑满;
  • 全局注意力让长程依赖直连;
  • 位置编码补上顺序信息;
  • Decoder-only 范式让所有任务统一。

理解这套骨架,再去看 BERT、GPT、LLaMA、DeepSeek 这些模型,你就能一眼看出它们的差异其实都是在"骨架上的取舍与扩展",而不是另起炉灶。

一句话回复别人"Transformer 是什么":它是一种基于注意力机制的神经网络架构,把"按顺序传播信息"换成了"按关系聚合信息",从而让 GPU 并行吃满、任意距离 token 直接对话,最终撑起整个大模型时代。