深色模式
深度学习与大模型
分三个阶段。做 AI 系统研究不要求你成为算法专家,但必须理解模型在算什么、哪里耗时、哪里耗内存。
| 阶段 | 内容 | 用时参考 | 谁需要 |
|---|---|---|---|
| 第一阶段 | 神经网络与 PyTorch | 3~4 周 | 所有人 |
| 第二阶段 | Transformer 与大语言模型 | 3~4 周 | 所有人 |
| 第三阶段 | 推理系统与高效 AI | 持续学习 | AI Infra 方向(方向一、二、四) |
| 扩散模型 | 扩散模型原理与推理 | 2 周 | 方向三 |
第一阶段:神经网络与 PyTorch
要掌握的内容
| 主题 | 要掌握的内容 | 动手练习 |
|---|---|---|
| 前馈神经网络 | 全连接层、激活函数的作用、参数量怎么算、反向传播 | 只用 NumPy 实现一个两层全连接网络 |
| 卷积神经网络(CNN) | 卷积、池化、感受野 | 用 PyTorch 训练 CNN 做 MNIST 分类 |
| 循环神经网络(RNN) | RNN/LSTM 的 cell 结构、序列预测 | 用 LSTM 做一个简单的时间序列预测 |
| 网络优化 | 局部最优与全局最优、梯度下降与 SGD、小批量、动量法、Adam、学习率调度、残差连接、归一化 | 对比 SGD 和 Adam 的收敛曲线 |
| 注意力机制 | 注意力的计算过程(Q、K、V)、多头注意力 | 手写一个缩放点积注意力 |
| Transformer | 编码器与解码器结构、位置编码、因果掩码 | 读懂并运行一个最小的 Transformer |
| 生成模型 | 自编码器、VAE、序列到序列模型、扩散模型的基本思想 | 跑通一个 VAE 的 MNIST 示例 |
学习资料
| 资料 | 说明 |
|---|---|
| PyTorch 官方入门(Learn the Basics) | 张量、数据加载、建模、训练循环,第一个要看的 |
| 《动手学深度学习》(d2l-zh) | 中文、可运行,从线性回归讲到 Transformer,作为主教材 |
| Karpathy: Neural Networks: Zero to Hero | 从手写自动求导(micrograd)开始,一步步写到 GPT。理解反向传播最好的材料之一 |
| 李宏毅机器学习课程 | 中文讲解,通俗易懂,课程里有 PyTorch 教学 |
| Stanford CS231n | 计算机视觉与深度学习,2025 年春季版已更新到 Transformer、生成模型 |
| 组内例程 deep-learning-code-practice | 各主题的配套代码练习 |
第一个训练程序
装好 PyTorch(见 GPU 与 CUDA)后,运行下面的程序训练一个 MNIST 手写数字分类器,弄懂每一行在做什么:
python
import torch
from torch import nn
from torch.utils.data import DataLoader
from torchvision import datasets, transforms
device = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_available() else "cpu"
train = datasets.MNIST("data", train=True, download=True, transform=transforms.ToTensor())
test = datasets.MNIST("data", train=False, download=True, transform=transforms.ToTensor())
train_loader = DataLoader(train, batch_size=128, shuffle=True)
test_loader = DataLoader(test, batch_size=1000)
model = nn.Sequential(
nn.Flatten(),
nn.Linear(28 * 28, 256),
nn.ReLU(),
nn.Linear(256, 10),
).to(device)
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
loss_fn = nn.CrossEntropyLoss()
for epoch in range(3):
model.train()
for x, y in train_loader:
x, y = x.to(device), y.to(device)
loss = loss_fn(model(x), y) # 前向计算,得到损失
optimizer.zero_grad() # 清空上一步的梯度
loss.backward() # 反向传播,计算梯度
optimizer.step() # 用梯度更新参数
model.eval()
correct = 0
with torch.no_grad():
for x, y in test_loader:
correct += (model(x.to(device)).argmax(1) == y.to(device)).sum().item()
print(f"第 {epoch + 1} 轮:测试准确率 {correct / len(test):.3f}")练习:把全连接网络换成两层卷积网络,看准确率提高多少;统计两个模型的参数量(sum(p.numel() for p in model.parameters()))。
第二阶段:Transformer 与大语言模型
目标:从零理解一个 GPT 类模型是怎么构建、训练和生成文本的。
| 资料 | 说明 |
|---|---|
| Happy-LLM(Datawhale) | 中文首选。从 NLP 基础、Transformer 讲到从零搭建 LLaMA2、训练分词器、LoRA 微调、RAG 与智能体,最新版增加了大模型强化学习(GRPO)。有免费 PDF |
| LLMs-from-scratch(中文版) | 从分词、注意力到预训练、微调,一步步实现 GPT,强烈推荐跟着敲一遍 |
| Stanford CS224n | 自然语言处理与深度学习,2026 年冬季版讲到预训练、后训练、智能体和推理 |
| Stanford CS336:Language Modeling from Scratch | 从零构建大模型的完整课程,2026 年春季版覆盖分词、架构、GPU、Triton 算子、并行训练、推理、数据、强化学习后训练。作业量大,适合学完前面的材料后进阶,和 AI Infra 方向高度相关 |
| nanochat | Karpathy 2025 年发布,约 8000 行代码实现从分词、预训练、微调到对话界面的完整流程 |
| minimind | 用很少的算力从零训练一个小语言模型,中文文档 |
| Hugging Face LLM Course | Transformers 库的官方课程,学会用现成的模型和工具 |
| Hello-Agents(Datawhale) | 从零构建智能体,覆盖主流框架、记忆与检索、上下文工程、MCP 等协议 |
学完要能回答
- 一次前向计算中,注意力和前馈层各占多少计算量?参数量和模型大小(GB)怎么换算?
- 生成文本时为什么需要 KV Cache?它占多少显存?(数学基础里有估算方法)
- 预填充(prefill)和解码(decode)阶段的计算特点有什么不同?
交互演示:KV Cache 与分页管理
大模型逐个生成 token 时,要把之前所有 token 的 Key 和 Value 缓存起来(KV Cache)。它占多少显存、为什么 vLLM 要像操作系统一样“分页”管理它,在下面动手试一试:
第三阶段:推理系统与高效 AI
做 AI Infra 方向必学,和课题组的研究直接相关。
| 资料 | 说明 |
|---|---|
| MIT 6.5940:TinyML and Efficient Deep Learning Computing | 韩松主讲:剪枝、量化、蒸馏、神经架构搜索、大模型的高效部署与端侧推理。和边缘智能方向最相关的课程。2023、2024 年秋季的录像在 YouTube 和 B 站上可以找到;2026 年秋季更名为 TinyML and Efficient AI Computing 重新开课 |
| CMU 10-414/714:Deep Learning Systems | 陈天奇等主讲,从零实现一个深度学习框架 Needle:自动微分、GPU 加速、各种网络结构。理解 PyTorch 内部原理 |
| CMU 15-442/642:Machine Learning Systems | 陈天奇、贾志豪主讲,从硬件到分布式框架:并行训练、连续批处理、PagedAttention、推测解码 |
| nano-vllm | 约一千多行 Python 实现 vLLM 的核心思想:PagedAttention、连续批处理、前缀缓存 |
| mini-sglang | SGLang 团队出的精简版,约五千行,包含 Radix 前缀缓存、分块预填充、OpenAI 兼容接口 |
| vLLM 论文 | Efficient Memory Management for Large Language Model Serving with PagedAttention(SOSP 2023) |
建议读 nano-vllm 源码时画出一个请求从进入到返回经历了哪些模块。
CUDA 与 GPU 编程(进阶,做算子优化时再系统学):教材 Programming Massively Parallel Processors(PMPP);GPU MODE 社区的系列讲座;Stanford CS336 中关于 GPU 和 Triton 的几讲。
扩散模型
做生成式 AI 加速方向需要额外补:
- 去噪扩散的基本原理:前向加噪、反向去噪、采样步数与调度器(scheduler)
- 条件生成:文本编码器、Classifier-Free Guidance(CFG)
- 主干网络从 UNet 到 DiT(Diffusion Transformer)的演变
- 视频扩散:时空注意力、3D VAE
资料
- Hugging Face Diffusion Course 和 Diffusers 文档:用 Diffusers 库生成图像、从零训练和微调扩散模型。
- 李宏毅 2025 年秋季课程中关于影像生成(VAE、GAN、Flow、Diffusion)的一讲。
- 综述性教程 Understanding Diffusion Models: A Unified Perspective(arXiv:2208.11970)。
- 动手:L5 扩散模型推理与加速。