LLM from Scratch
从一段原始文本出发,逐步实现 Tokenizer、Transformer、训练循环与推理程序。课程参考 Stanford CS336 的知识体系,但不假设读者已经熟悉完整的深度学习工程栈。
你会学到什么
完成课程后,你应该能够解释并实现一个小型语言模型的完整链路:
- 将文本转换为模型可以处理的 token;
- 从基本张量运算搭建 Transformer;
- 组织训练数据,计算损失并更新参数;
- 识别显存、吞吐量与数值稳定性问题;
- 加载模型并完成自回归生成。
学习路线
| 章节 | 内容 | 目标 |
|---|---|---|
| 0. 准备工作 | Python、PyTorch、环境配置 | 能运行并调试课程代码 |
| 1. BPE Tokenizer | 字节表示、预分词与 BPE 训练 | 将原始文本转换为 token |
| 2. Transformer | Attention、MLP、残差连接 | 理解模型内部的数据流 |
| 3. 训练语言模型 | 数据、优化器、训练循环 | 独立训练一个小型模型 |
阅读方式
正文负责解释思路,代码块给出最小实现。标为“动手”的部分建议亲自完成;只阅读代码,很容易错过张量形状、边界条件和数值误差这些真正重要的问题。
建议
第一次学习请从“准备工作”开始。若你已经熟悉 PyTorch,可以直接进入“文本与 Tokenizer”。
课程说明
本教程是独立编写的中文教学材料,并非 CS336 官方翻译。课程会引用公开资料,同时加入适合中文学习者的背景说明、实现拆解和练习设计。