从机器学习到大语言模型

十个完整模块,带领掌握微积分、线性代数和基础概率的工程师,从第一个损失函数一路走到训练、对齐和部署一个语言模型。

AI · 深度学习 · 大语言模型10 个模块 · 100–150 小时EN / 中文

本系列如何组织

十个模块均已提供英文与简体中文版本。每个模块是独立单元,分为五次学习,计划活动约十小时。根据推导、重复实验和复习所需时间,每模块请预留 10–15 小时。每次学习都把阅读和动手结合在一起。

每个模块开头都有一份学习计划,列出各个学习单元及其用时。学完一项就勾选一项;你的进度保存在浏览器中。

模块

模块 01
机器学习基础
从数据中学习究竟是什么,把它写成可以计算的数学:一个模型,一个由噪声模型导出的损失,一个其行为可由特征值预测的优化器,以及区分“真正有效的模型”与“只是看起来有效的模型”的习惯,也就是诚实地评估它。
10–15 小时 · 5 个实验 · 15 道练习
模块 02
神经网络与反向传播
由线性映射与非线性函数堆叠而成的网络如何自己学出特征;反向模式微分如何只需至多两次额外的前向计算量就给出完整梯度;以及为什么训练在很大程度上就是让数值保持在合理范围内:参数初始化、优化器、归一化、正则化与数值稳定性,每一项都配有一项检查,用来判断它何时失效。
10–15 小时 · 5 个实验 · 15 道练习
模块 03
卷积神经网络
从运算本身搭建卷积神经网络:手算并用代码实现一次卷积,逐层计算每一层的代价,讲清让深度变得可训练的残差连接,再把同一套机制用于目标检测、把图像和体数据分割成可测量的表面,以及检查分类器究竟在看什么。
10–15 小时 · 6 个实验 · 15 道练习
模块 04
循环神经网络与序列
从方程出发搭建循环神经网络:状态,随时间反向传播及其梯度为何消失,解决这一问题的 LSTM 和 GRU,对工程传感器数据流做诚实的预测与监测,其瓶颈催生了注意力机制的编码器-解码器,以及 Transformer 为何取代了循环结构、线性循环和状态空间模型又为何让它卷土重来。
10–15 小时 · 5 个实验 · 15 道练习
模块 05
其他值得了解的网络
自编码器与变分自编码器、生成对抗网络、扩散模型、图神经网络、物理信息神经网络与神经算子、对比学习以及混合专家:每一种在优化什么,推导出它的方程,配一个用数字算出的例题和一个能在笔记本电脑上运行的实验,并说明它如何失效。
10–15 小时 · 5 个实验 · 15 道练习
模块 06
Transformer
本模块逐步拆解注意力,让你能够手算、求导、像 FlashAttention 那样分块计算,并用 RoPE 旋转位置;随后组装现代解码器块,对照公开模型统计参数与 FLOPs,再在笔记本 CPU 上训练小型 GPT,解读其损失曲线与注意力头。
10–15 小时 · 6 个实验 · 15 道练习
模块 07
大语言模型
大语言模型计算什么,如何用数字分析它:下一 token 目标及其单位、分词、缩放定律、提示与解码、上下文窗口、失败机制、模型能力声明的评估,以及运行成本。一个约 9.5B 参数的假想双语模型,用于起草和检查安全案例论证,贯穿本模块并延续到模块 08–10。
10–15 小时 · 6 个实验 · 15 道练习
模块 08
大语言模型预训练
从文本到基座模型的完整过程:计算预算、数据流程、适合大规模的架构与优化器设置,决定各部分如何容纳和运行的内存与并行核算,长期故障与恢复,以及两种较低成本的相关训练——中期训练和继续预训练。你将计算约 9.5B 参数案例基座模型的构建和继续预训练成本,再在自己的笔记本上实现去重流程,预训练小型 GPT,制造数值不稳定并诊断,最后做领域适配。
10–15 小时 · 5 个实验 · 15 道练习
模块 09
大语言模型后训练
将基座模型变为助手:监督微调及其机制、低秩适配器、奖励模型与 RLHF、完整推导的 DPO,以及使用可验证奖励的强化学习。最后通过评估判断这些训练是否真正有效。
10–15 小时 · 6 个实验 · 15 道练习
模块 10
推理与部署服务
从第一原理估算时延与容量:预填充、解码、屋顶线模型、KV cache、连续批处理与分页、量化和投机解码。通过可运行 CPU 实验检验机制,再为贯穿案例核算服务等级目标、成本与可靠性。
10–15 小时 · 6 个实验 · 15 道练习

学习路径

请按顺序阅读各模块。第 06 模块需要第 02 和第 04 模块;第 08 和第 09 模块需要第 06 和第 07 模块。第 10 模块建立在第 06–09 模块之上,包括数值格式、贯穿案例和合并后的后训练模型。

基础 网络结构 大语言模型 模块 01 机器学习基础 模块 02 神经网络 模块 03 卷积网络 模块 05 其他网络 模块 04 循环网络 模块 06 Transformer 模块 07 大语言模型 模块 08 预训练 模块 09 后训练 模块 10 推理与服务 箭头从一个模块指向以它为基础的模块。虚线:学完模块 07 后可随时阅读。
图 0.1

十个模块及其依赖关系。基础部分(01–02)通向网络结构(03–06);Transformer(06)通向大语言模型(07),再分为预训练(08)、后训练(09)和推理(10)三个方向。

建议的学习安排

本系列坚持的两条原则

每个数字都有出处。 当一个模块说某种方法达到了某个准确率、需要多少 FLOPs 或占用多少 GB 内存时,它会说明这个数字是怎么得到的,让你可以自己重算一遍。

每种方法都会失效,正文会说明如何失效。 只讲技术、不讲其失效方式,那就是广告。每个模块都有一节讲常见问题,因为那正是工程师在凌晨三点最需要的一节。

适合谁

熟悉微积分、线性代数和基础概率,但还没有做过机器学习的工程师和研究生。本系列的目标不是综述,而是让你读完之后能读懂一篇现代模型论文,理解一次训练究竟在对模型做什么,并凭判断而不是照搬配方来做与模型有关的工程决策。

环境准备

所有实验只需要 Python 3.11 或更高版本以及一个虚拟环境。GPU 是可选的;Google Colab 是本地安装之外的免费选择。

python -m venv .venv
source .venv/bin/activate          # on Windows: .venv\Scripts\activate
pip install torch numpy scipy scikit-learn matplotlib
pip install transformers datasets tokenizers tiktoken huggingface_hub pandas pyarrow   # Modules 07 to 10

第 07 至 10 模块会从 Hugging Face 下载小型开源模型,最大的约 1 GB;每个实验都会注明其下载大小。

记号

向量用粗体小写字母表示,\mathbf{x};矩阵用粗体大写字母表示,\mathbf{W};标量用斜体,y。数据集记为 \mathcal{D} = \{(\mathbf{x}_i, y_i)\}_{i=1}^{N}。模型参数统一记为 \theta。损失记为 \mathcal{L}(\theta),其梯度记为 \nabla_\theta \mathcal{L}。对数据的期望记为 \mathbb{E}_{(\mathbf{x},y)\sim\mathcal{D}}。除非写作 \log_2,对数均为自然对数。张量形状写作 (B, T, d),分别表示 batch 大小、序列长度和宽度。代码使用 Python 和 PyTorch,并保持短到可以手动敲出来。

每个模块的结尾都列出其关键术语的英文和中文,方便用英文读论文、用中文讨论的读者。

系列延伸阅读