上星期花时间翻译了一篇: https://github.com/raiyanyahya/how-to-train-your-gpt
写的非常好,用简单明了的方式讲解了GPT2是怎么训练出来的
https://github.com/zhangrr/how-to-train-your-gpt/
📖 这是什么?
这是一本 12 章、3,900+ 行的交互式教科书,手把手教你从零开始构建、训练和运行一个现代语言模型——和 ChatGPT、Claude、LLaMA、Mistral 背后的架构属于同一家族。
你不只是"读"关于 Transformer 的内容,而是 亲手写下每一行代码:分词器(Tokenizer)、嵌入(Embedding)、注意力、训练循环、推理引擎。每一行都有注释,解释它 做了什么 以及 为什么这么做。
🤔 为什么要做这个
大多数 ML 教程都逃不出两个坑:
| ❌ 太浅 | ❌ 太学术 | ✅ 本指南 |
|---|---|---|
model = GPT().fit(data) | 40 页论文,密密麻麻的数学符号 | 五岁小孩的类比 → 完整可运行代码 |
| 你只学会了调 API | 默认你有 ML 博士学位 | 零 ML 经验也能上手 |
| 完全不了解内部原理 | 没有实际示例 | 每一行都标注了"做什么"和"为什么" |
目标: 学完之后,你不只是知道注意力"有用"。你会理解 1/√d_k 背后的方差论证、RoPE 如何通过旋转捕获相对位置、为什么 pre-norm 在深层网络中优于 post-norm,以及反向传播时每个梯度的流向。
👥 适合谁?
| 🧑💻 你是…… | 📚 你需要…… |
|---|---|
| 一个好奇 ChatGPT 到底怎么工作的 Python 开发者 | 基础 Python(函数、类、列表)。不需要 ML 经验 |
| 一个想深入理解 Transformer 的学生 | 愿意阅读约 3,500 行带注释代码的耐心 |
| 一个在评估 LLM 架构的工程师 | 理解各种技术权衡(RoPE vs 学习式位置编码、RMSNorm vs LayerNorm) |
| 一个在其他教程里被"注意力"搞晕的人 | 派对类比 + 用真实数字走一遍的完整示例 |
🔧 前置要求: Python 基础(变量、函数、类、pip install)。就这些。不需要微积分、线性代数或 PyTorch 经验——我们边做边教。
🗺️ 章节目录
| 章节 | 你将学到什么 |
|---|---|
| 0: 概览 | 什么是 GPT?全局视角 |
| 1: 环境搭建 | 安装工具、GPU vs CPU、虚拟环境、PyTorch 基础 |
| 2: 分词 | BPE 详解:「unbelievably」如何变成 token |
| 3: 嵌入 | 数字如何变成语义。king − man + woman = queen |
| 4: 位置编码 | RoPE:为什么 LLaMA 旋转向量而不是加数字 |
| 5: 注意力 | ⭐ 核心中的核心。Q、K、V,缩放,因果掩码,8 步详解 |
| 6: Transformer 块 | RMSNorm、SwiGLU、残差连接、pre-norm vs post-norm |
| 7: 完整 GPT 模型 | 1.51 亿参数模型(含 SwiGLU)、权重绑定、logits 解释 |
| 8: 训练流水线 | 交叉熵、反向传播、AdamW、余弦预热、混合精度 |
| 9: 推理 | KV 缓存、温度、top-k/p、束搜索、重复惩罚 |
| 10: 完整脚本 | 可运行的 main_zh.py:所有代码合为一个文件 |
| 11: 术语表 | 架构溯源表、参数分解 |
⭐ 从 第 0 章 开始,按顺序阅读。 每一章都建立在前一章的基础上。
🏗️ 你将构建什么
| 🧩 组件 | 📝 代码行数 | 💡 你将理解什么 |
|---|---|---|
| BPE 分词器 | ~60 | GPT-4 如何把 “unbelievably” 拆成 “un” + “believ” + “ably” |
| 嵌入层 | ~30 | “cat” 和 “dog” 为什么在 768 维空间中彼此靠近 |
| RoPE | ~70 | 为什么 LLaMA 旋转向量而不是加位置数字 |
| 多头注意力 | ~120 | 每个现代 LLM 背后精确的 8 步计算过程 |
| Transformer 块 | ~50 | 为什么残差连接是"梯度高速公路" |
| 完整 GPT 模型 | ~200 | 1.51 亿参数模型,含 SwiGLU、权重绑定和 pre-norm |
| 训练流水线 | ~250 | AdamW、余弦预热、混合精度、梯度累积 |
| 推理引擎 | ~80 | KV 缓存、温度、top-k/p、束搜索(Beam Search) |
💎 约 860 行核心模型代码,约 2,600 行解释和图示
🏛️ 架构
本指南实现的是 最新公开文档记录的 纯解码器 Transformer:
| 🧬 技术 | 📦 来源模型 | ⚡ 为什么重要 |
|---|---|---|
| RoPE | LLaMA, Mistral, Qwen | 无需学习参数即可表达相对位置 |
| RMSNorm | LLaMA, Mistral, Gemma | 比 LayerNorm 快 15%,效果相当 |
| SwiGLU | PaLM, LLaMA, Gemini | 学习哪些信息该放行、哪些该拦截 |
| Pre-Norm | GPT-3, 所有现代模型 | 100+ 层也能稳定训练 |
| AdamW | GPT-3+ | 比原版 Adam 泛化更好 |
| BPE | GPT-2/3/4 | 能处理任何文本,包括没见过的词和 emoji |
| 权重绑定(Weight Tying) | GPT-2/3 | 节省 30% 参数,改善训练信号 |
| 混合精度(Mixed Precision) | 所有生产级 LLM | 速度翻倍、内存减半、质量不变 |
ℹ️ GPT-4 和 Claude 的架构是私有/未公开的。本指南教的是最佳公开确认架构:LLaMA 3、Mistral 和 Qwen 2.5 所使用的方案。