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》的结构图与公式;下游各模型的差异细节还需查文档 |
动手建议
- 每章代码都建议本地跑一遍,重点看输出里的形状和数字是否符合文中表格的解读
- 第 3、4 章是核心,多改几组随机种子看注意力分布怎么变
- 完成第 6 章后,可以对照微调栈真实训练一次模型(LLaMA-Factory)
前置建议先过 大语言模型 LLM——先认识整车,再来拆发动机 🐸