LLM Training, Inference & Algorithms — Recommended Reading Path
这份路线面向已有 GPU kernel、编译器或体系结构经验,但希望系统补齐现代 LLM 算法、训练、推理与评测知识的工程师。完整论文索引见仓库根目录的 README;本文件解决的是“先读什么、依赖什么、读完要能做什么”。
优先级与使用方式
- P0 — 主干:不掌握就很难正确理解现代训练或推理系统。12 周计划以 P0 为主。
- P1 — 深化:帮助比较不同设计,适合在对应周追加一篇。
- P2 — 专题:面向具体工作再读,例如 MoE、极低比特量化、长上下文或安全。
不要以“看完 PDF”为完成标准。每篇至少回答下面五个问题:
- 优化目标、输入输出和张量形状是什么?
- forward、backward 或 decode 分别保存哪些状态?
- 计算量、显存量、通信量和关键同步点在哪里?
- 论文用什么指标证明有效,baseline 是否公平?
- 如果落到 GPU kernel/runtime,最可能改变哪个算子、layout、collective 或 scheduler?
推荐每周投入 6–8 小时:两篇精读、两到三篇结构化速读,以及一个可验证的小产出。
依赖关系
反向传播 / 优化器 / 数值精度
│
├── 自回归语言建模 ── Transformer ── 现代 LLM block
│ │
│ ├── Scaling law / 数据 / 预训练
│ └── LoRA / SFT / 偏好优化 / RL
│
├── activation 与 optimizer state
│ └── DP / TP / PP / ZeRO ── 3D 并行 ── MoE / 长上下文
│
└── prefill / decode / KV cache
├── batching / scheduling / P-D 分离
├── speculative decoding
└── weight / activation / KV-cache quantization
所有路线最终汇合到:质量评测、效率评测、安全评测与可复现实验。12 周主线
Week 1 — 从算子 backward 到“训练算法”
P0 论文
- Learning Representations by Back-Propagating Errors
- Adam: A Method for Stochastic Optimization
- Decoupled Weight Decay Regularization
- Layer Normalization
要回答:参数、activation、gradient、master weight、Adam m/v 分别在何时产生和释放?AdamW 为什么不是简单的 L2 loss?LayerNorm backward 需要哪些 reduction?
实践产出:画一张单个 Transformer block 训练步骤的数据流图,并按 dtype 列出参数、梯度、optimizer state 和 activation 的显存公式。
Week 2 — 自回归语言模型与现代 Transformer block
P0 论文
- Sequence to Sequence Learning with Neural Networks
- Neural Machine Translation of Rare Words with Subword Units
- Attention Is All You Need
- Root Mean Square Layer Normalization
- GLU Variants Improve Transformer
要回答:teacher forcing 和 autoregressive decode 的区别是什么?tokenizer 如何改变 sequence length 和词表 GEMM?Pre-Norm/Post-Norm、RMSNorm、SwiGLU 分别改变哪些算子和 activation?
实践产出:为一个 LLaMA-style block 写出逐算子的 shape table,覆盖 prefill、单 token decode 和 backward。
Week 3 — 位置编码、Scaling Law、数据与现代 LLM 配方
P0 论文
- RoFormer: Enhanced Transformer with Rotary Position Embedding
- Scaling Laws for Neural Language Models
- Training Compute-Optimal Large Language Models
- LLaMA: Open and Efficient Foundation Language Models
- Deduplicating Training Data Makes Language Models Better
要回答:RoPE 为什么只作用于 Q/K?固定训练 FLOPs 时参数和 token 如何分配?模型质量、训练成本和推理成本为什么不是同一个最优点?数据去重如何影响记忆和评测污染?
实践产出:选择一个 7B 模型,估算一次完整预训练所需 token、FLOPs、GPU-days,并写明所有假设。
Week 4 — 混合精度、activation 与训练显存
P0 论文
- Mixed Precision Training
- Training Deep Nets with Sublinear Memory Cost
- Reducing Activation Recomputation in Large Transformer Models
- GaLore: Memory-Efficient LLM Training by Gradient Low-Rank Projection
要回答:loss scaling 解决哪种数值问题?BF16 与 FP16 的风险有何不同?checkpoint boundary 如何改变峰值显存和额外 FLOPs?selective recomputation 为什么优于整层重算?
实践产出:用表格比较 baseline、full checkpoint、selective checkpoint 和低秩 optimizer 四种方案的显存与额外计算。
Week 5 — DP、TP、PP 与 ZeRO 的基本构件
P0 论文
- PyTorch Distributed: Experiences on Accelerating Data Parallel Training
- GPipe: Efficient Training of Giant Neural Networks using Pipeline Parallelism
- Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism
- ZeRO: Memory Optimizations Toward Training Trillion Parameter Models
要回答:DP 的 AllReduce、TP 的 AllReduce/AllGather、PP 的 send/recv 分别位于哪里?ZeRO-1/2/3 各切分什么?microbatch 数量如何影响 bubble 与 activation memory?
实践产出:为 DP=8, TP=4, PP=2 的模型画 rank topology,并标出一个 iteration 的所有 collective。
Week 6 — 3D 并行、自动切分与万卡训练
P0 论文
- Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM
- GSPMD: General and Scalable Parallelization for ML Computation Graphs
- Alpa: Automating Inter- and Intra-Operator Parallelism for Distributed Deep Learning
- MegaScale: Scaling Large Language Model Training to More Than 10,000 GPUs
要回答:并行维度应如何映射 NVLink 域和跨节点网络?sharding propagation 能自动解决什么、不能解决什么?MFU 下降究竟来自 kernel、通信、bubble、数据还是故障?
实践产出:写一份 64/512/4096 GPU 三种规模的并行配置建议,说明拓扑、batch 和容错假设。
Week 7 — MoE:算法路由到 block-sparse kernel
P0 论文
- Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer
- GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding
- Switch Transformers
- MegaBlocks: Efficient Sparse Training with Mixture-of-Experts
- DeepSeekMoE
要回答:capacity factor、token dropping、load-balancing loss 和 expert parallel 分别解决什么?dispatch/combine 为什么会变成 all-to-all?MegaBlocks 如何把不规则 token 数映射到 block-sparse GEMM?
实践产出:针对一个 top-2 MoE 层,写出 route → permute → all-to-all → grouped GEMM → combine 的 shape 与通信量。
Week 8 — SFT、参数高效微调与指令数据
P0 论文
- LoRA: Low-Rank Adaptation of Large Language Models
- Finetuned Language Models Are Zero-Shot Learners
- Training Language Models to Follow Instructions with Human Feedback
- QLoRA: Efficient Finetuning of Quantized LLMs
- Self-Instruct
要回答:预训练、SFT 与 preference tuning 的 loss 和数据分别是什么?LoRA rank 改变哪些矩阵乘?QLoRA 的 NF4、double quantization 与 paged optimizer 分别省什么?
实践产出:设计一个小规模 SFT 实验,列出数据 schema、packing、loss mask、LoRA target modules 和显存预算。
Week 9 — PPO、DPO 与 reasoning RL
P0 论文
要回答:policy、reference、reward、value/critic 和 rollout 各是什么模型?PPO clipping 与 KL penalty 各限制什么?DPO 为什么不需要在线 rollout?GRPO 如何移除独立 critic?
实践产出:画出 SFT、PPO-RLHF、DPO、GRPO 四条训练 pipeline,并比较模型副本数、显存和同步点。
Week 10 — 解码与量化
P0 论文
- The Curious Case of Neural Text Degeneration
- Fast Inference from Transformers via Speculative Decoding
- SmoothQuant
- AWQ
- KIVI
要回答:temperature、top-k、top-p 如何改变采样分布?speculative decoding 为何保持目标分布?W8A8、W4A16 与 KV2 分别受 compute、bandwidth 还是容量限制?
实践产出:为一个具体 batch/sequence/model 配置做 roofline 判断,给出 FP16、W8A8、W4A16、KV2 的预期瓶颈。
Week 11 — LLM Serving:从 continuous batching 到 P/D 分离
P0 论文
要回答:TTFT、TPOT、goodput、throughput 和 tail latency 如何冲突?continuous batching 的调度单位是什么?PagedAttention 管理的究竟是逻辑 block 还是物理 page?chunked prefill 与 P/D 分离分别处理什么干扰?
实践产出:写一个离散事件 scheduler 草图,至少模拟 arrival、prefill、decode、KV allocation、preemption 和 completion。
Week 12 — 评测、安全与可复现结题
P0 论文
- Holistic Evaluation of Language Models
- Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena
- RewardBench
- HarmBench
- Lessons from the Trenches on Reproducible Evaluation of Language Models
要回答:quality 和 system efficiency 应怎样联合报告?LLM judge 有哪些位置、长度和自我偏差?如何控制 contamination、prompt template、tokenizer 与随机性?安全评测为什么必须同时测 under-refusal 和 over-refusal?
实践产出:完成一份结题设计文档:选择一个模型和 workload,给出训练/后训练/Serving 方案、成本模型、指标、baseline、风险与复现实验清单。
P1:每条主线的下一步
| 主线 | 推荐论文 | 何时追加 |
|---|---|---|
| 优化与训练配方 | Adafactor、μP、Sophia | 需要研究 optimizer memory、超参迁移或收敛速度时 |
| 数据工程 | DoReMi、RefinedWeb、Dolma、DataComp-LM、FineWeb | 需要构建或比较预训练数据 pipeline 时 |
| 分布式训练 | ZeRO-Offload、ZeRO-Infinity、Oobleck、Ulysses | 研究 offload、容错或长序列训练时 |
| MoE 系统 | GLaM、DeepSpeed-MoE、FasterMoE、Tutel | 开始优化 expert parallel 和 all-to-all 时 |
| 后训练 | Constitutional AI、LIMA、IPO、KTO、SimPO | 比较数据质量、RLAIF 与 reference-free preference loss 时 |
| 解码 | SpecInfer、Medusa、EAGLE、Lookahead Decoding | 优化低 batch latency 或 speculative tree verification 时 |
| 量化 | LLM.int8()、GPTQ、SpQR、QuaRot | 需要比较 outlier、校准和 kernel 可实现性时 |
| Serving | FlexGen、AlpaServe、Punica、S-LoRA、Splitwise | 研究 offload、多模型、多 LoRA 或异构 P/D 集群时 |
| 评测与安全 | TruthfulQA、IFEval、Chatbot Arena、XSTest、WMDP | 建立特定产品或研究任务的评测矩阵时 |
P2:按工作专题选读
- 非 Transformer 架构:Hyena → RWKV → RetNet → Mamba → Mamba-2。
- 长上下文训练与推理:Ring Attention、README 中的 MQA/GQA/MLA、LoongTrain、LoongServe、Quest、NSA、MSA 与 DSA。
- 已读延伸:跨层索引复用:IndexCache / IndexShare(✅,2026-09-15):在 DSA 基础上理解多层 KL 蒸馏、Top-k 的梯度边界,以及 indexer 计算和 K cache 的节省;再与 HiSparse 的主 KV 分层驻留对照。
- 极低比特与新数值格式:AQLM、BitNet b1.58、QuaRot。
- 推理集群与 KV 基础设施:README 中的 Mooncake、NanoFlow、FlashInfer、SGLang、Preble 与 megakernel 系列。
- 安全攻防:GCG、Sleeper Agents、StrongREJECT、WMDP。
三个毕业项目
A. 训练闭环:从 tokenizer 到 checkpoint
训练一个 50M–300M 参数的 decoder-only 模型。自己确定 tokenizer、数据去重、sequence packing、AdamW、学习率、混合精度和 checkpoint 策略;至少比较一次是否重算、两种 batch size 和两种精度。最终报告 loss curve、tokens/s、峰值显存、MFU 估计、失败/恢复流程和评测污染检查。
B. 推理闭环:KV cache 与调度模拟器
实现一个离散事件模拟器或最小 runtime,支持 continuous batching、paged KV、chunked prefill、preemption 和 P/D worker。输入真实或合成 arrival trace,报告 TTFT、TPOT、P50/P99 latency、goodput、KV 利用率和调度公平性;再加入一种 speculative decoding 或 KV quantization 策略比较收益。
C. 系统设计:70B 模型从预训练到线上服务
在给定 GPU 型号、数量、网络拓扑和 SLO 下,完成一份可评审设计:数据/token 预算、DP/TP/PP/EP、ZeRO、checkpoint/容错、SFT/偏好优化、量化、Serving 架构、容量规划、质量/安全评测与总成本。所有数字必须能追溯到公式、profile 或论文实验,而不是经验口号。
算子工程师的论文笔记模板
# Paper Title
## 1. 一句话结论
- 它解决什么问题,核心机制是什么?
## 2. 前置与 baseline
- 前置论文/概念:
- 最强 baseline:
- 论文真正改变的变量:
## 3. 算法
- 目标函数:
- 输入/输出:
- 关键公式:
- 训练与推理差异:
## 4. Shape 与数据流
| 阶段 | Tensor | Shape | DType | 保存到 backward/KV? |
|------|--------|-------|-------|----------------------|
## 5. 成本模型
- FLOPs:
- HBM bytes:
- 峰值显存:
- 通信量与 collective:
- 同步点 / pipeline bubble:
## 6. Kernel / Runtime 映射
- 对应算子:
- layout / tiling:
- 可融合位置:
- scheduler / cache 影响:
- 预计瓶颈:compute / bandwidth / latency / communication:
## 7. 实验可信度
- 硬件、模型、batch/sequence:
- 指标与 SLO:
- baseline 是否同精度、同质量、同硬件:
- 缺失的 ablation:
## 8. 复现计划
- 最小实验:
- 预期结果:
- 失败判据:
## 9. 未解决问题
-进度 Checklist
- [ ] Week 1:能解释 AdamW、optimizer state 与 LayerNorm backward
- [ ] Week 2:能写出 LLaMA block 的训练/prefill/decode shape
- [ ] Week 3:能估算训练 FLOPs、token budget 和数据去重影响
- [ ] Week 4:能比较 loss scaling、checkpoint 和 selective recomputation
- [ ] Week 5:能画出 DP/TP/PP/ZeRO 的通信拓扑
- [ ] Week 6:能为给定集群选择 3D parallel 配置并解释 MFU
- [ ] Week 7:能推导 MoE dispatch、all-to-all 与 grouped GEMM
- [ ] Week 8:能设计 LoRA/QLoRA SFT 数据和显存预算
- [ ] Week 9:能比较 PPO、DPO 与 GRPO 的模型副本和同步点
- [ ] Week 10:能判断 speculative decoding 与量化方案的适用瓶颈
- [ ] Week 11:能解释 continuous batching、PagedAttention、chunked prefill 和 P/D 分离
- [ ] Week 12:能给出同时覆盖质量、效率、安全和复现性的实验设计
完成 P0 后,不必按顺序读完所有 P1/P2。应以实际项目的瓶颈为入口回到 README:遇到通信问题读训练系统,遇到 decode latency 读 speculative decoding,遇到容量问题读量化/KV cache,遇到质量问题先检查数据、训练目标和评测,而不是直接优化 kernel。