跳转至
大模型原理手册 融会贯通

学习资源

这份手册是一张"地图"。想在某个方向上走得更深,就需要读原始论文和源码。下面按章节列出最值得读的材料,每一项都说明为什么值得读、读的时候关注什么;最后给出学完本手册之后,走向推理优化的下一步。

读论文的方法

  • 先看图和表,再看公式,最后看正文。架构论文的核心往往就是一张结构图和一张消融表。
  • 带着问题读:这个设计解决了什么瓶颈?付出了什么代价?(对照一个 token 的完整旅程里的因果图。)
  • 能复现的就复现:本手册的每个概念都有一段可运行的代码,读论文时也可以写一个最小实现,和论文中的数字对一对。

按章节

基础与 Transformer

材料 为什么读
Attention Is All You Need(2017) Transformer 的原始论文。注意编码器-解码器结构、Post-Norm、正弦位置编码,这些都已被后来的模型改掉了,想想为什么
The Illustrated Transformer 图解,适合第一遍建立直觉
Neural Machine Translation of Rare Words with Subword Units(BPE) BPE 用于 NLP 的起点
karpathy/minbpe、karpathy/nanoGPT、karpathy/nanochat 最小可读的分词器、GPT 训练代码,以及从预训练到对话的完整小型流水线;配套视频也很值得看
RoFormer(RoPE) RoPE 的推导,读第 3 节即可
Root Mean Square Layer Normalization RMSNorm
GLU Variants Improve Transformer SwiGLU 的来源,只有 3 页
A Mathematical Framework for Transformer Circuits 从"残差流"的视角理解 Transformer,和本手册的残差流一节相呼应
transformers 的 modeling_llama.py 把它和本手册的 mini_llm.py 逐行对照,是读懂所有 LLaMA 类模型实现的捷径

架构演进

材料 为什么读
Fast Transformer Decoding: One Write-Head is All You Need(MQA) 最早从"decode 访存受限"出发设计模型结构的论文之一
GQA GQA,以及如何把 MHA 的检查点转换成 GQA
DeepSeek-V2 MLA 的出处,第 2.1 节详细讲了低秩压缩、权重吸收和解耦 RoPE
DeepSeek-V3 细粒度 MoE、无辅助损失的负载均衡、MTP、FP8 训练,以及推理部署方案(第 3.4 节)
Switch Transformers、Mixtral of Experts MoE 的路由、容量和负载均衡
LLaMA、Llama 2、The Llama 3 Herd of Models 标准模板的来源;Llama 3 的报告对数据、训练基础设施和推理(FP8、流水线并行)都有详细描述
Qwen2.5、Qwen3 技术报告 本手册所用模型的"家谱"
Gemma 2、Gemma 3 局部/全局注意力混合、软截断、QK-Norm
gpt-oss 模型卡 注意力汇聚、交替的滑动窗口、MXFP4
YaRN 长上下文扩展中最常用的 RoPE 缩放方法

训练与对齐

材料 为什么读
Scaling Laws for Neural Language Models、Chinchilla \(6ND\)、算力最优的参数与数据配比
InstructGPT SFT + RLHF 的经典流程
DPO 看懂损失函数的推导,就理解了偏好优化
DeepSeekMath(GRPO)、DeepSeek-R1 推理模型是怎样用强化学习训练出来的;RL 训练中大量的采样正是推理引擎的新战场
LoRA 低秩微调,以及多 LoRA 服务的基础

推理原理与推理服务

材料 为什么读
Transformer Inference Arithmetic 推理估算的经典博客,和本手册的估算一章互为补充
How to Scale Your Model Google DeepMind 的"屋顶线 + 并行"教程,推理一章尤其值得读,TPU 视角但原理通用
FlashAttention、FlashAttention-2、FlashAttention-3 IO 感知的注意力;配合 CUDA 手册的 FlashAttention 与推理算子
Efficient Memory Management for LLM Serving with PagedAttention(vLLM) PagedAttention 与 vLLM 的设计
SGLang RadixAttention 前缀缓存、结构化输出的压缩状态机
Sarathi-Serve 分块 prefill 与"无停顿"的调度
DistServe、Mooncake PD 分离;Mooncake 是以 KV Cache 为中心的生产架构
Fast Inference from Transformers via Speculative Decoding、Accelerating LLM Decoding with Speculative Sampling 投机解码与投机采样的正确性证明
Medusa、EAGLE 不需要独立草稿模型的投机解码
LLM.int8()、SmoothQuant、GPTQ、AWQ 离群值问题与主流量化方法
Efficient Streaming Language Models with Attention Sinks、Massive Activations in LLMs 本手册在 Qwen 上观察到的注意力汇聚与巨大激活值
Defeating Nondeterminism in LLM Inference 为什么温度为 0 结果也会变、如何实现 batch 不变的 kernel

学完之后:走向推理优化

本手册解决的是"模型在算什么"。接下来的两块:

1. 硬件怎么执行:CUDA。 见 CUDA 进阶手册。其中与本手册衔接最紧密的章节:

2. 系统怎么调度: 本系列的第四本 推理系统手册 专门讲这一部分:从零写一个推理引擎,再对照它读 vLLM 与 SGLang 的源码,之后是分布式推理、性能工程和面试准备。如果想直接读源码,建议的顺序:

  1. nano-vllm:用一千多行代码实现了 vLLM 的核心(分页 KV、连续批处理、前缀缓存、CUDA Graphs、张量并行),一两天就能读完,是理解完整引擎的最佳起点;
  2. vLLM:从一个请求的生命周期读起(API 服务 → 引擎 → 调度器 → 模型执行器 → 采样器),再看 model_executor/models/ 下你熟悉的模型实现,对照 mini_llm.py;
  3. SGLang:重点看调度器(前缀缓存、overlap 调度)和 DeepSeek 相关的优化(MLA、DP Attention、EP)。

读源码时,把本手册的"逐站解读"表(见一个 token 的完整旅程)当作索引:每遇到一个模块,就问它对应表中的哪一站、解决了哪个瓶颈。

3. 动手做项目。 几个由浅入深的方向:

  • 给 mini_llm.py 加上分页 KV Cache 与连续批处理,写一个几百行的"迷你推理引擎",测量吞吐随 batch 的变化;
  • 在 GPU 上用 Triton 写 RMSNorm、SwiGLU、RoPE 的融合 kernel,替换 mini_llm.py 中对应的部分,对比速度与精度;
  • 在 vLLM 或 SGLang 中实现(或复现)一个小特性:新的采样参数、一个新模型结构的支持、一个 kernel 的优化,并提交 PR。

小结

  • 读论文先看图表,带着"解决了什么瓶颈、代价是什么"的问题读。
  • 每一章都有对应的原始论文,推理部分的论文是后续深入的重点。
  • 下一步:CUDA 手册解决"硬件怎么执行",推理系统手册(以及 nano-vllm → vLLM → SGLang 的源码)解决"系统怎么调度"。

发现错误或有更好的写法?在 GitHub 上编辑此页提交问题