
如果你用过 ChatGPT、Claude、DeepSeek,其实你每天都在和 Transformer 打交道。
它不是什么黑魔法,核心就一句话:让每个词都能"看到"句子里的其他所有词,然后决定该把注意力放在谁身上。 这篇文章就用几张图,把 Transformer 的骨架拆开给你看。
Transformer整体架构

从读懂到理解到输出。
文本 → 切词 → Embedding → 加位置信息 → 编码器理解 → 解码器生成 → 输出下一个词。
自注意力Self-Attention是Transformer灵魂
Transformer 最反直觉的地方在于:它不是一个个词顺序读过去的,而是让每个词同时和整句话做比较。

每个词进来后,会被拆成三个角色:
- Query(查询):我想找什么?
- Key(索引):我有什么?
- Value(价值):我真正携带的信息是什么?
然后算一遍相似度,softmax 归一化,最后加权求和。
公式还是那个公式:
text
Attention(Q, K, V) = softmax(Q × Kᵀ / √dk) × V
别被吓到,它的意思其实就是:谁和我更相关,我就多听谁的。
一个例子
看这句话:
"The cat sat on the mat because it was tired."
it 指谁?是人,是猫,还是垫子?

自注意力算完之后,模型会发现 it 和 cat 的关联度最高。这就是 Transformer 处理指代、长距离依赖的方式------不需要从左到右慢慢猜,直接"看"全句找答案。
Multi-Head Attention多角度看问题
如果只有一个注意力头,模型看问题的视角就太单一了。于是 Transformer 搞了多个头,每个头关注不同的东西:

可以这么理解:
单头注意力 = 你一个人读文章
多头注意力 = 一群人同时读,有人看语法,有人看语义,有人找指代,最后大家开会汇总
这也是 Transformer 表达能力强的关键:同一个句子,不同头能捕获不同的语言规律。
位置编码给模型加上"顺序感"
Self-Attention 有个先天缺陷:它不看顺序。
也就是说,"我爱你"和"你爱我"对它来说 initially 是一样的。这显然不行。
所以 Transformer 在 Embedding 上加了一个位置编码:

每个位置对应一个独特的编码向量,和词向量相加后输入模型。原始论文用的是正弦/余弦函数:
text
PE(pos, 2i) = sin(pos / 10000^(2i/d))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d))
现在很多新模型已经改成了可学习的位置编码 或者直接改成旋转位置编码 RoPE,但核心目的没变:让模型知道"这个词排在第几位"。
Encoder 和 Decoder,到底啥区别?


| 特性 | Encoder | Decoder |
|---|---|---|
| 注意力 | 全局可见,双向看 | 掩码自注意力 + 交叉注意力 |
| 作用 | 理解输入 | 生成输出 |
| 方向 | 双向 | 单向,从左到右 |
Encoder 像是一个认真的读者 :把全文读完,提炼出关键信息。
Decoder 像是一个谨慎的作者:写下一个词时,只能看自己已经写好的内容,同时偷偷参考 Encoder 给的"读书笔记"。
Transformer 的三大流派
最早的 Transformer 是 Encoder + Decoder 的完整结构,但后来大家发现,其实拆开来也能用,于是演化出了三个流派:

- Encoder-Only:擅长理解,比如 BERT,做分类、填空、语义理解很猛。
- Decoder-Only:擅长生成,比如 GPT、LLaMA、Claude、DeepSeek,现在最火的大模型基本都是这一类。
- Encoder-Decoder:擅长翻译、摘要这种"输入一段,输出一段"的任务,比如 T5、BART。
你现在每天聊天的 AI,基本都属于 Decoder-Only 阵营。
大模型生成文字过程就是一个词一个词"蹦"出来
大模型生成文字,其实是一个自回归过程:

text
步骤1: 输入 [今天] → 预测 [天气]
步骤2: 输入 [今天, 天气] → 预测 [很]
步骤3: 输入 [今天, 天气, 很] → 预测 [好]
步骤4: 输入 [今天, 天气, 很, 好] → 预测 [<EOS>]
它不是一次性写出整段话,而是每次只预测下一个词,然后把预测结果拼回输入,继续预测。
所以你看到的"秒回",其实是它在背后疯狂重复这个过程。
一个 Transformer 层的内部长什么样?

每个 Transformer 层其实就干两件事:
- 自注意力:看看全句,决定关注谁。
- 前馈网络:对每个位置单独做非线性变换。
中间还夹着 残差连接(Add) 和 层归一化(Norm),这两个东西非常关键------没有它们,深层模型根本训不动。
前馈网络的细节:
text
FFN(x) = max(0, x·W1 + b1) · W2 + b2
输入 [d_model]
↓
线性层 [d_model → d_ff] (通常升维 4 倍)
↓
激活函数 [ReLU / GELU]
↓
线性层 [d_ff → d_model] (降维回来)
↓
输出 [d_model]
可以理解为:先升维扩展信息,再降维提炼信息。
常见的超参数长这样
text
┌──────────────────────────────────────────┐
│ Transformer 超参数 │
├──────────────────────────────────────────┤
│ d_model = 512 模型维度 │
│ d_ff = 2048 前馈网络维度 │
│ num_heads = 8 注意力头数 │
│ d_k = d_v = 64 每个头的维度 │
│ num_layers = 6 Encoder/Decoder层数│
│ vocab_size = 30000 词表大小 │
│ max_seq_len = 512 最大序列长度 │
│ dropout = 0.1 dropout 比率 │
└──────────────────────────────────────────┘
注意 d_k × num_heads = d_model,每个头的维度*注意力头数=模型维度。也就是说 8 个头,每个头 64 维,合起来就是 512 维。这是设计上的默契。
Transformer 和这些热词啥关系?

这张图把现在 AI 圈子里常听到的词串了起来:
- LLM = 很多个 Transformer 层堆起来的大模型
- Prompt = 你输入给模型的文本
- Context Window = 模型一次能看多少 token
- RAG = 把检索到的文档塞给模型,让它有据可依
- Tool / MCP = 让模型能调用外部工具,再把结果拿回来继续生成
详细阅读《图解LangChain:一张架构图理清大模型应用框架核心逻辑》
所以 Transformer 不只是 NLP 的底座,它是当下整个 AI 应用生态的地基。
为什么 Transformer 这么能打?

最后总结一下 Transformer 能火起来的四个原因:
- 并行度高:不像 RNN 必须一个个词算,Transformer 可以一整句一起算。
- 长距离依赖强:任意两个词直接相连,距离再远也不怕。
- 可扩展性好:堆更多层、更多头、更多参数,效果往往就更好。
- 通用性强:最早做 NLP,后来视觉(ViT)、语音、多模态都用上了。
总结
Transformer 的核心,说复杂也复杂,说简单也简单:
自注意力 让词与词直接对话,多头 让模型从多个角度理解,残差和层归一化让深层网络能稳定训练。
GPT、Claude、LLaMA、DeepSeek......这些名字背后,都是这套骨架。
看懂 Transformer,你就看懂了大模型的一半。