🐸 青蛙编程网

Transformer 原理教程

Transformer 是 ChatGPT、DeepSeek 这些大模型内部真正在跑的结构,出自 2017 年的著名论文《Attention Is All You Need》。七章手把手拆开大模型看内部:分词嵌入 → 注意力机制 → 多头与残差 → 位置编码 → BERT 编码器 → 亲手拼出一个迷你 Transformer。

全章代码只用 NumPy 手搓,不装 PyTorch 等重型框架——延续 RAG 教程「先手搓再上框架」的路子,每个示例复制粘贴就能跑,跑一遍比读十遍论文好懂。

章节规划

章节 内容 你会学到 状态
1. Transformer 是什么 拆开大模型看发动机 RNN 的问题、注意力、编码器/解码器、GPT 与 BERT ✅ 已上线
2. 从文字到向量 把"猫吃鱼了"变成数字 词表、分词、id 编码、嵌入矩阵 ✅ 已上线
3. 注意力机制 每个词该"看"谁多少眼 Q/K/V、缩放点积、softmax 加权 ✅ 已上线
4. 多头注意力与残差 完整模型的"一层" 多头切分与拼接、残差连接、LayerNorm ✅ 已上线
5. 位置编码 谁在前谁在后 三角函数位置编码、加在词向量上、RoPE 现状 ✅ 已上线
6. BERT:看懂句子的编码器 同一张图纸的另一半玩法 双向注意力、[CLS]/[SEP]、MLM 输入与挖空预测、NSP 现状、后训练微调分类头 ✅ 已上线
7. 综合练习 手搓一个迷你 Transformer 串起前面各章组件,跑通一个最小前向传播 ✅ 已上线

适合谁看

  • 读完 大语言模型(LLM),知道大模型会"文字接龙",想看接龙背后是谁在转
  • 会基础 Python 和 NumPy 数组操作(@ 矩阵乘法、广播),不需要任何 PyTorch 功底
  • 零基础可入门:每个公式都配一段能复制粘贴的 NumPy 代码

前置知识清单

在开始本板块前,确认你会:

  • Python 的 import 与字典操作
  • NumPy 数组:np.array、arr[ids] 按行取出、X @ W 矩阵乘法
  • (不强制)读过 LLM 教程 的"文字接龙"——概念来源,不读也能学

常见问题速查

问题 简短回答
代码里的权重可以训练吗? 不能。本教程的权重全是随机数,只演示"数据怎么流";真实模型就是同样算式 + 海量数据训练出的权重
为什么不用 PyTorch? 先手搓才懂上层框架在干什么;且注意力核心公式用 NumPy 几行就能写出来
GPT 和 BERT 是竞争关系吗? 不是,同一张图纸的两种装法:解码器擅长"写",编码器擅长"读"(见第 6 章)
学完能读懂论文吗? 能读懂《Attention Is All You Need》的结构图与公式;下游各模型的差异细节还需查文档

动手建议

  1. 每章代码都建议本地跑一遍,重点看输出里的形状和数字是否符合文中表格的解读
  2. 第 3、4 章是核心,多改几组随机种子看注意力分布怎么变
  3. 完成第 6 章后,可以对照微调栈真实训练一次模型(LLaMA-Factory)

前置建议先过 大语言模型 LLM——先认识整车,再来拆发动机 🐸