从零开始学 AI Infra:课程、论文与开源资源全景学习笔记
AI Infra(人工智能基础设施)是当下技术壁垒最高、人才缺口最大的方向之一。这篇笔记把”从零开始学 AI Infra”这件事拆成一张可执行的地图:先讲清楚全景架构,再按前置知识 → CUDA 算子 → 分布式训练 → 推理部署的顺序,把每个模块该看的课程、该读的论文、该用的开源项目、该达到的检验标准全部列出来。适合想入行 AI Infra / ML Systems、或者正在做 LLM 应用想补系统底层的人。
一、AI Infra 到底是什么:一张全景图
很多人把 AI Infra 理解成”装 GPU 服务器 + 调 vLLM”,那只是冰山一角。严格来说,AI Infra 是用系统工程的手段,把硬件算力”榨”出来的那一层技术栈——它位于芯片/GPU 之上、模型应用之下,负责让大规模训练跑得动、让推理服务又快又省。
1.1 四层架构总览
| 层级 | 名称 | 核心关注点 |
|---|---|---|
| 第零层 | 前置知识 | 编程语言、数学基础、Transformer 架构、PyTorch、GPU 硬件与通信拓扑 |
| 第一层 | CUDA 编程与算子优化 | GPU 架构、存储层次、Kernel 编写、FlashAttention、AI 编译器 |
| 第二层 | 分布式训练 | 数据并行、3D 并行、ZeRO、混合精度 |
| 第三层 | 推理与部署 | KV Cache、PagedAttention、量化、Speculative Decoding |
1.2 贯穿始终的”不可能三角”
学习 AI Infra 的过程中,你会发现所有优化本质上都是在 计算、通信、显存 这个三角里做取舍:
- ZeRO:用通信换显存;
- Activation Checkpointing(重计算):用计算换显存;
- 量化:用精度换显存和带宽;
- Speculative Decoding:用 Prefill 的额外计算换 Decode 的串行延迟。
所以看任何一篇论文、任何一个优化方案,先问自己两个问题:它牺牲了什么?换取了什么? 想通了这一点,AI Infra 就不再是一堆零散技巧,而是一张自洽的图。
二、学习路线总览(先看这张表)
| 阶段 | 主题 | 主要产出 / 检验标准 |
|---|---|---|
| 前置 | 编程、数学、Transformer、PyTorch、通信拓扑 | 能手画 Transformer Block、写出完整训练循环、看懂 nvidia-smi topo |
| 第一层 | CUDA / 算子优化 | 手写 Reduce / GEMM / Softmax / FlashAttention kernel,看懂 SOL 面板 |
| 第二层 | 分布式训练 | 能口算显存账本、改 DDP、解释 ZeRO-2/3 区别、设计 3D 并行拓扑 |
| 第三层 | 推理与部署 | 用 vLLM/SGLang 部署模型、跑出 TTFT/TPOT/吞吐对比、做量化选型 |
学习策略:需求驱动,别从底层死磕。先跑通一个完整的小项目(比如把 7B 模型部署起来),遇到哪一层卡住再回去补哪一层,比”从 CUDA 书开始啃三个月”有效得多。0–3 个月打地基、3–6 个月精读里程碑论文 + 啃源码、6 个月以上进开源项目实战,这是 AIInfraGuide 和多位从业者公认的节奏。
三、第零层:前置知识(地基)
这一层是后面所有层的地基:地基不牢,楼层越高越晃。好消息是,你不需要成为每个方向的专家,达到”够用”就能继续往上走。
3.1 编程语言
- Python:AI 生态的通用语言,不是”会写”而是”熟练”。重点:面向对象、装饰器、生成器、多进程/多线程、性能 profiling;
- **C/C++**:CUDA 的宿主语言。不用精通模板元编程,但要懂指针、内存管理、编译链接过程,能读懂简单 CUDA kernel 的 host 端代码(malloc / memcpy / kernel launch / free);
- Linux:命令行、Shell 脚本、进程管理、环境变量。AI Infra 的开发和部署几乎全在 Linux 上。
3.2 数学基础
- 线性代数:矩阵乘法、转置、分块矩阵、特征值分解。重点是维度直觉——看到
(B, S, H) x (H, V)能立刻想到结果是(B, S, V); - 概率论与统计:分布、期望、方差、Softmax 的概率解释、交叉熵。量化和 Speculative Decoding 的正确性证明都靠它;
- 微积分(了解即可):链式法则、梯度含义,理解反向传播和混合精度为什么溢出。
3.3 Transformer 架构(AI Infra 工程师的必修课)
这是大模型时代的”通用底座”,后面每一层都在围绕它做优化——CUDA 层优化它的算子、分布式层切分它的参数、推理层加速它的生成。必须能吃透:
- Self-Attention:Q、K、V 的含义与计算过程,为什么复杂度是 O(N²)(这是理解 FlashAttention 的前提);
- FFN:两层线性变换 + 激活函数,模型参数的大头所在;
- 位置编码:Sinusoidal / RoPE;
- LayerNorm:Pre-Norm vs Post-Norm,为什么大模型普遍用 Pre-Norm;
- 完整前向:能从 token embedding 开始,跟踪数据在一个 Transformer Block 里的流转(Attention → Add & Norm → FFN → Add & Norm),说清每一步的输入输出维度。
检验标准:白板默写。 不看资料能画出一个 Decoder Block 的完整结构并标注每一步的维度;给定 7B 模型配置能口算总参数量,误差不超过 20%。
3.4 PyTorch 框架
- Tensor 操作、autograd、Module / Parameter 组织方式;
- 标准训练循环:DataLoader → forward → loss → backward → optimizer.step;
- 模型保存加载:state_dict、checkpoint;
- 调试工具:
torch.cuda.memory_summary()看显存、torch.profiler做简单性能分析。
检验标准:能独立写一个不借助 Trainer 的完整训练脚本,并在 GPU 上跑通。
3.5 GPU 硬件与通信拓扑
- 单机内部:NVLink / NVSwitch 的带宽与拓扑。NVLink 是同一机箱内 GPU 之间的高速专用通道,带宽比 PCIe 高一个数量级;
- 多机之间:InfiniBand(IB)、RoCE 协议。IB 是跨节点的”高速铁路”;
- 集合通信原语:AllReduce / AllGather / ReduceScatter 的含义与通信量公式——这是分布式训练里最频繁的操作;
- NCCL:NVIDIA 集合通信库,多卡编程的事实标准。
检验标准:在一台 8 卡机器上跑 nvidia-smi topo -m,能看懂 NV12 / SYS / NODE 标记;能画出三种集合通信的数据流并说清通信量公式(如 Ring AllReduce ≈ 2(N-1)/N × 数据量);理解”为什么张量并行不能跨机”。
3.6 第零层推荐资料
| 类型 | 资料 | 说明 |
|---|---|---|
| 论文 | Attention Is All You Need | Transformer 原始论文,必读 |
| 教程 | The Illustrated Transformer (Jay Alammar) | 图文并茂的 Transformer 入门 |
| 视频 | 3Blue1Brown: 线性代数的本质 | 建立线性代数几何直觉 |
| 教程 | PyTorch 官方教程(60 Minute Blitz) | PyTorch 快速入门 |
| 视频 | Karpathy: Let’s build GPT from scratch | 从零手写 GPT,逐模块过一遍(我写过学习笔记) |
| 官方文档 | NVIDIA NCCL 文档 | 集合通信原语与多卡编程 |
| 官方文档 | NVIDIA Deep Learning Performance Guide | 硬件性能瓶颈分析方法论 |
四、第一层:CUDA 编程与算子优化(连接软硬件的桥梁)
这一层负责把高层的数学计算翻译成 GPU 能最高效执行的机器指令。动手是检验这一层的唯一标准,纸上谈兵不算数。
4.1 GPU 硬件架构
把 GPU 想象成一座拥有数千名简单工人的超级工厂——每个 CUDA Core 只会做加减乘除,但人多力量大,吞吐量远超 CPU 的小作坊。需要理解:
- SM(流多处理器)/ Tensor Core / CUDA Core 的区别与协作;
- 主流 GPU 规格:A100 / H100 / H200 的算力、显存带宽、HBM 容量;
- Memory Wall:为什么显存带宽瓶颈往往比算力更致命;
- 存储层次:寄存器 > 共享内存 > L1/L2 Cache > HBM > 主机内存。写 kernel 的核心就是在这个层次里最大化数据复用。
4.2 CUDA 编程模型
- 编程模型:Grid / Block / Thread 层级,线程索引计算;
- 内存模型:全局内存、共享内存、寄存器、常量内存的特性与用法;
- 关键概念:Warp(32 个线程的最小调度单位)、Bank Conflict、Coalesced Access、Occupancy;
- 核心直觉:**”内存访问模式决定运行速度”**。
4.3 经典算子的实现与优化(练手三件套)
- Reduce:并行归约的多种实现与优化(Warp Shuffle、多级归约)——从最朴素的原子加,到共享内存 + 树形归约,再到 Warp Shuffle;
- GEMM:矩阵乘法的分块、向量化、Shared Memory Tiling、利用 Tensor Core。实现一个基于 Tiling 的 GEMM 并与 cuBLAS 对比,达到 50%+ 性能即为合格;
- Softmax:Online normalizer calculation——一次遍历完成 softmax,避免两次读内存;
- 算子融合:把多个小算子合成一个 kernel,减少全局内存读写。
4.4 FlashAttention 系列(Attention 算子的里程碑)
- FlashAttention V1:Memory-aware 的精确 Attention,通过 tiling 把 HBM 读写从 O(N²) 降到 O(N)——好比把一大桌拼图分块,每次只搬一小块到手边;
- FlashAttention V2:更好的并行与分块策略;
- FlashAttention-3:在 Hopper 架构上进一步拉高利用率;
- **Flash-Decoding / Flash-Decoding++**:面向 Decode 阶段(memory-bound)的 Attention 加速;
- FlashInfer:可定制的 Attention 引擎,面向 Serving 的可组合格式与异构 KV 存储;
- PagedAttention CUDA Kernel:vLLM 的底层实现。
检验标准:能白板推导 FlashAttention 的 tiling 过程(外层遍历 KV block、内层遍历 Q block、online softmax 避免两次遍历),说清为什么 HBM 读写从 O(N²) 降到 O(N)。
4.5 AI 编译器
- Triton:OpenAI 开源的 GPU 编程语言,大幅降低高效算子编写门槛,值得作为主流上手;
- TVM / XLA:计算图优化与代码生成;
- torch.compile:PyTorch 2.x 的编译模式,理解 Graph Break 与性能收益。
4.6 性能分析工具链
- Nsight Systems:CPU–GPU 交互全链路分析,判断 host 端是否拖后腿(GPU idle gap 是来自数据预处理、通信等待还是 kernel launch 开销);
- Nsight Compute:Kernel 级下钻,读懂 SOL(Speed of Light)面板判断是 memory bound 还是 compute bound。
4.7 第一层推荐资料
| 类型 | 资料 | 说明 |
|---|---|---|
| 官方文档 | NVIDIA GPU 架构白皮书(Ampere / Hopper) | 理解 SM、Tensor Core、HBM 设计 |
| 教程 | 小小将:CUDA 编程入门极简教程 | CUDA 零基础入门 |
| 官方文档 | NVIDIA CUDA Programming Guide | CUDA 编程权威参考 |
| 论文 | FlashAttention V1 (Dao et al., 2022) | Memory-aware Attention 里程碑 |
| 论文 | FlashAttention V2 (Dao, 2023) | 更好的并行与分块 |
| 论文 | FlashAttention-3 (Shah et al., 2024) | Hopper 上的进一步优化 |
| 解读 | 猛猿:图解FlashAttention V1/V2 系列 | 适合新手的图文解读 |
| 教程 | Triton 官方教程 | GPU 编程新范式 |
| 工具 | Nsight Systems User Guide | CPU–GPU 交互分析 |
| 工具 | Nsight Compute Profiling Guide | Kernel 级下钻 |
五、第二层:分布式训练(当前最活跃的核心区)
当模型参数量超越单卡显存极限,分布式训练就是必经之路。**这一层的检验核心是”算得清账、跑得通代码”**。
5.1 优化器与显存开销(理解 ZeRO 的前提)
- SGD:最朴素,每参数一份梯度,无额外状态;
- Momentum SGD:加一阶动量;
- Adam / AdamW:大模型训练的事实标准,每参数维护两个状态(一阶动量 + 二阶动量)。AdamW 修正了权重衰减实现;
- 优化器状态的显存开销:以 AdamW + 混合精度为例,每参数需要 FP32 参数副本(4B)+ 一阶动量(4B)+ 二阶动量(4B)= 12 字节/参数。一个 7B 模型的优化器状态就要占约 84GB,远超 FP16 参数本身的 ~14GB——这就是为什么 ZeRO 首先拿优化器状态开刀;
- 大 Batch 优化器(LAMB / LARS):数据并行会线性放大有效 Batch Size,普通 Adam 在超大 batch 下难以调节,LAMB 通过对每层独立算信赖域让大 batch 训练稳定收敛。
5.2 数据并行:DP → DDP → FSDP
- DP(DataParallel):最基础,单进程多卡;
- DDP(DistributedDataParallel):多进程数据并行,理解 AllReduce 梯度同步;
- FSDP(Fully Sharded Data Parallel):PyTorch 原生的 ZeRO-3 实现。
5.3 ZeRO 显存优化(DeepSpeed 核心)
把训练状态拆开分摊到各张卡上,用通信换显存:
- ZeRO-1:优化器状态切分;
- ZeRO-2:优化器状态 + 梯度切分;
- ZeRO-3:优化器状态 + 梯度 + 参数全切分(通信量约翻倍,但每卡显存降到 1/N)。
5.4 模型并行:TP / PP / SP
- 张量并行(TP):将矩阵乘法沿特定维度切分到多卡,通信密集,通常限于单机(NVLink 带宽才够);
- 流水线并行(PP):将模型不同层切分到不同机器,像流水线一样传递数据;
- 序列并行(SP):沿序列维度切分,与 TP 配合减少激活显存。
5.5 混合精度与其他优化
- 混合精度训练:FP16 / BF16 / FP8。为什么大模型训练更偏爱 BF16?——BF16 指数位更宽(8 位 vs FP16 的 5 位),动态范围接近 FP32,不容易 overflow/underflow,多数场景不用 Loss Scaling;
- 梯度累积:在有限显存下模拟更大的有效 Batch Size;
- Activation Checkpointing(重计算):用计算换显存,只存部分激活、需要时重算;
- MoE 并行:专家并行(Expert Parallelism),DeepSeekMoE 等架构;
- 3D 并行与混合并行策略:DP + TP + PP 的组合设计。
5.6 训练框架
- Megatron-LM(NVIDIA):张量并行与流水线并行的标杆实现;
- DeepSpeed(Microsoft):ZeRO 系列的核心实现;
- PyTorch FSDP:原生分布式训练方案。
5.7 第二层推荐资料
| 类型 | 资料 | 说明 |
|---|---|---|
| 论文 | Megatron-LM (Shoeybi et al., 2019) | TP 与 PP 原理的里程碑论文 |
| 论文 | ZeRO: Memory Optimizations Toward Training Trillion Parameter Models | 显存优化的核心方法 |
| 文档 | DeepSpeed 官方文档 | ZeRO 配置与使用 |
| 教程 | PyTorch DDP 教程 | 原生分布式训练入门 |
| 教程 | PyTorch FSDP 教程 | 分片式数据并行 |
| 解读 | 苏剑林:从MHA、MQA、GQA到MLA | Attention 变种演进 |
| 论文 | DeepSeek V2 技术报告 | MLA 注意力机制 |
| 论文 | DeepSeekMoE | MoE 架构设计 |
检验标准:拿到 7B 模型能口算 FP16 参数 ~14GB、Adam 优化器状态 ~56GB(FP32 副本 + 两个动量各 14GB),判断单卡 80GB 能否放下完整训练状态;能用一句话讲清”ZeRO-2 和 ZeRO-3 到底差在哪”;30 分钟内把单卡训练脚本改成 DDP 多卡版本;给 64 卡集群能设计出 TP=8(机内)+ PP=4(跨机)+ DP=2 的并行方案。
六、第三层:推理与部署(工业界最关心的一层)
训练只是万里长征第一步,如何让模型快速、低成本地服务用户,才是工业界最关心的问题。
6.1 LLM 推理基础
- 两阶段:Prefill(处理输入,一次算完整个 prompt,compute-bound)与 Decode(逐 token 生成,每步只算一个 token,memory-bound);
- KV Cache:自回归生成中的”显存刺客”。把已算过的中间结果记下来,后续生成不用从头算起,但它会占满显存;
- 关键指标:TTFT(首 token 延迟)、TPOT(每 token 延迟)、吞吐量(token/s)、P50/P95 尾延迟。
检验标准:能算 KV Cache 账本——LLaMA-2-7B(32 层、32 头、head_dim=128),上下文 4096、batch=16、FP16:2 × 32 × 32 × 128 × 4096 × 16 × 2B ≈ 32GB。
6.2 推理引擎核心技术
- PagedAttention(vLLM):用虚拟内存分页思想管理 KV Cache,解决碎片化问题——像操作系统把内存切成固定大小页面管理,不再要求一整块连续空间;
- Continuous Batching(Orca 提出):动态组批,请求随到随处理。传统 static batching 像旅游大巴(人齐才发车),Continuous Batching 像网约车拼单(随到随拼、下车补新客),GPU 利用率可从 30% 拉到 80%+;
- Prefix Cache / RadixAttention(SGLang):复用已计算的 KV Cache,优化重复前缀场景(如系统 prompt);
- Chunked Prefill:将长 prompt 分块处理,减少 prefill 对 decode 的干扰。
6.3 主流推理框架对比
| 框架 | 核心特性 | 适用场景 |
|---|---|---|
| vLLM | PagedAttention、Continuous Batching、Prefix Cache | 通用推理服务,社区活跃 |
| SGLang | RadixAttention、cFSM 结构化输出加速 | 复杂 Agent、多轮生成、结构化输出 |
| TensorRT-LLM | Paged KV、Inflight Batching、深度硬件优化 | 追求极限性能、NVIDIA 生态 |
选型口诀:追求吞吐和社区生态选 vLLM;多轮对话 / Agent / 结构化输出选 SGLang;追求极限延迟且愿意投入适配工作选 TensorRT-LLM。
6.4 量化(看起来简单、调起来玄学的领域)
- W8A8(SmoothQuant):把 activation 的 outlier 难题转移到 weights,工程友好;
- Weight-only INT4(GPTQ / AWQ):只量化权重到 3/4-bit,省显存和带宽;
- KV Cache 量化(KIVI / Kitty):2-bit 量化 KV Cache,长上下文场景效果显著;
- FP8 量化:Hopper 架构原生支持,精度与性能的平衡点。
选型决策树:通用、工程友好 → W8A8;更省显存/带宽 → INT4 weight-only(AWQ/GPTQ);长上下文/大并发 → KV Cache 量化(KIVI)。
6.5 Speculative Decoding(用并行换串行)
- Speculative Sampling:小模型(Draft)批量”猜测”多个 token,大模型(Target)一次性验证,rejection sampling 保证分布无偏;
- Medusa:不用外部 Draft 模型,多个 Decoding Heads 预测多 token 再并行验证;
- EAGLE-2:动态 Draft Tree,靠校准置信度更激进地接受 token;
- Block Verification:token 级验证升级为 block 级联合验证。
关键理解:Speculative Decoding 不会改变模型的输出分布(rejection sampling 保证数学上等价于直接从 target 采样);但代码生成(高接受率)收益明显、开放对话(低接受率)收益有限甚至为负。
6.6 Prefill/Decode 解耦(系统架构级优化)
- 问题:Prefill 与 Decode 混合 batching 造成资源耦合与互扰,导致尾延迟爆炸——像让同一个厨师既做快速小炒又做慢炖大菜;
- DistServe(OSDI’24):系统化论证并实现 Prefill/Decode 解耦;
- Splitwise(ISCA):将 Prefill 和 Decode 分配到不同 GPU 池;
- Goodput:满足 SLO 的有效吞吐,区别于裸 QPS——raw QPS 高 ≠ 用户体验好。
6.7 性能分析与 Benchmark
- 指标全集:QPS、TTFT(P50/P95)、TPOT(P50/P95)、端到端吞吐、显存峰值、GPU 利用率,六缺一都可能漏掉瓶颈;
- 工具链:
torch.profiler、Nsight Systems、Nsight Compute; - 压测工具:GenAI-Perf(LLM 指标一站式输出)、Triton Perf Analyzer;
- 权威基准:MLPerf Inference(Datacenter)。
6.8 第三层推荐资料
| 类型 | 资料 | 说明 |
|---|---|---|
| 论文 | vLLM / PagedAttention (Kwon et al., 2023) | 推理引擎里程碑论文 |
| 论文 | Orca (Yu et al., OSDI’22) | Continuous Batching 原始论文 |
| 论文 | SGLang (Zheng et al., 2023) | RadixAttention + 前端语言 |
| 论文 | SmoothQuant (Xiao et al., 2022) | W8A8 量化的经典方案 |
| 论文 | GPTQ (Frantar et al., 2022) | Weight-only PTQ 3/4-bit |
| 论文 | AWQ (Lin et al., 2023) | 基于 activation 分布的 4-bit 量化 |
| 论文 | KIVI (Liu et al., 2024) | 2-bit KV Cache 量化 |
| 论文 | Speculative Sampling (2022/2023) | 经典 Speculative Decoding |
| 论文 | Medusa (Cai et al., 2024) | 多头解码,免 Draft 模型 |
| 论文 | EAGLE-2 (Li et al., 2024) | 动态 Draft Tree |
| 综述 | Towards Efficient Generative LLM Serving: A Survey | CMU 的 LLM 推理综述(算法 + 系统) |
| 解读 | 猛猿:vLLM 源码解析系列 | 深入理解 vLLM 内部机制 |
| 文档 | vLLM 官方文档 | 部署与配置 |
| 文档 | TensorRT-LLM 官方文档 | 工程落地导向 |
| 基准 | MLPerf Inference (Datacenter) | 权威 benchmark 入口 |
| 工具 | GenAI-Perf | TTFT/TPOT/token 吞吐一站式压测 |
七、必看名校课程清单(含链接)
| 课程 | 学校 / 老师 | 覆盖内容 | 链接 |
|---|---|---|---|
| 15-442/15-642: Machine Learning Systems | CMU / Tianqi Chen、Zhihao Jia | GPU 架构与 CUDA、ML 并行化(DP/PP/TP)、ML 编译器、LLM Serving、MoE | mlsyscourse.org |
| 11-868 / 11868: Large Language Model Systems | CMU / Lei Li | LLM 训练/服务/微调/评估的系统技术、通信高效算法、GPU 加速、模型压缩 | llmsystem.github.io |
| 6.5940: EfficientML.ai / TinyML and Efficient Deep Learning Computing | MIT / Song Han(韩松) | 剪枝、量化、蒸馏、高效推理、TinyML,含完整课件与视频 | hanlab.mit.edu |
| CS336: Language Modeling from Scratch | Stanford / Percy Liang、Tatsunori Hashimoto | 从零构建语言模型全流程:数据收集清洗、Transformer 构建、训练、评估、分布式 | cs336.stanford.edu |
| CS 267: Applications of Parallel Computers | UC Berkeley | 并行计算、分布式训练的系统基础(HPC 视角) | classes.berkeley.edu |
| Machine Learning Compilation(MLC) | CMU / Tianqi Chen(陈天奇) | 机器学习编译、计算图优化、TVM、代码生成,中英双语 | mlc.ai(学习笔记仓库) |
| Neural Networks: Zero to Hero | Andrej Karpathy | micrograd → makemore → GPT → Tokenizer → GPT-2,手写实现理解原理 | karpathy.ai/zero-to-hero.html |
| 动手学深度学习(Dive into Deep Learning) | 伯克利 / 李沐等 | 深度学习全栈入门,含多 GPU 训练、并行计算章节 | d2l.ai(中文版) |
| Hugging Face Course | Hugging Face | Transformers、训练器、分布式训练入门(英文/中文) | huggingface.co/learn |
| NVIDIA DLI(深度学习培训中心) | NVIDIA | GPU 加速、CUDA、推理部署的自定进度实操课程 | nvidia.cn/training |
课程怎么选:如果只想学一门”总纲”,选 CMU 15-442(覆盖 CUDA、并行、编译、Serving 全链路);如果专攻大模型系统,选 CMU 11-868;如果主攻”把模型做小做快”,选 MIT 6.5940;如果想从零手搓一个大模型来理解全流程,选 Stanford CS336。
八、必读论文清单(按学习顺序)
按”从原理到系统”的顺序精读,每篇都对照开源代码:
- Attention Is All You Need (2017) —— Transformer 原点;
- Megatron-LM (2019) —— 张量并行与流水线并行;
- ZeRO (2019) —— 显存优化核心;
- FlashAttention V1 (2022) —— Memory-aware 算子;
- Orca (OSDI’22) —— Continuous Batching;
- vLLM / PagedAttention (2023) —— KV Cache 内存管理;
- SGLang (2023) —— RadixAttention + 结构化输出;
- SmoothQuant (2022)、GPTQ (2022)、AWQ (2023) —— 量化三件套;
- Speculative Sampling (2023)、Medusa (2024) —— 投机解码;
- DistServe (OSDI’24)、Splitwise (ISCA 2024) —— Prefill/Decode 解耦。
九、开源项目清单(上手实操)
| 项目 | 定位 | 学什么 |
|---|---|---|
| vllm-project/vllm | LLM 推理引擎 | PagedAttention、调度器、BlockManager、Continuous Batching |
| sgl-project/sglang | 推理引擎(结构化输出) | RadixAttention、cFSM、前端语言 |
| NVIDIA/TensorRT-LLM | 极致推理引擎 | Paged KV、Inflight Batching、量化工具链 |
| NVIDIA/Megatron-LM | 训练框架 | TP/PP 实现、数据并行 |
| microsoft/DeepSpeed | 训练优化框架 | ZeRO 系列、梯度累积 |
| Dao-AILab/flash-attention | Attention 算子 | FlashAttention 系列实现 |
| flashinfer-ai/flashinfer | Attention 引擎 | 可组合格式、异构 KV 存储 |
| triton-lang/triton | GPU 编程语言 | 高效算子编写 |
| mlabonne/llm-course | LLM 课程/路线图 | 从 LLM 原理到微调、RAG、Agent 的整合路线 |
| caomaolufei/AIInfraGuide | AI Infra 中文学习资料 | 前置→CUDA→分布式→推理全栈路线 |
贡献姿势:别一上来就啃大仓库。从”修一个文档、补一个测试、优化一个小算子”开始,vLLM / DeepSpeed / SGLang 的 issue 里有很多 low-hanging fruit。参与开源既是简历亮点,也是检验学习效果最好的方式。
十、中文社区优质资料(含金量高)
| 来源 | 内容 |
|---|---|
| AIInfraGuide(草帽路飞) | 中文最系统的 AI Infra 学习路线,含”显存账本””检验标准””新人破局指南”,强烈推荐通读 |
| CSDiy(计算机自学指南) | 收录 CMU 15-442、MIT 6.5940 等课程的中文学习笔记与评价,配套自学路线 |
| 猛猿的知乎专栏 | vLLM 源码解析、图解 FlashAttention 系列,深度和可读性兼备 |
| 苏剑林(kexue.fm) | MHA/MQA/GQA/MLA 演进等理论深度解读 |
| 琳琅阿木 | 图文详解 LLM Inference 与 KV Cache,适合建立直觉 |
| Awesome-ML-SYS-Tutorial | ML Systems 学习资料聚合 |
| Awesome-System-for-Machine-Learning | ML Systems 论文带笔记聚合 |
| awesome-ai-infrastructure | AI Infra 工具/框架/平台聚合 |
十一、新人学习路径建议
基础阶段(0–3 个月)
- 完成第零层全部检验标准:编程、数学、Transformer、PyTorch 训练流程、通信拓扑;
- 学习 CUDA 基础,写出简单的 Reduce / GEMM kernel;
- 尝试用 PyTorch DDP 把训练分布到两张卡上,观察显存和通信变化。
专项深入(3–6 个月)
- 精读四篇里程碑论文并对照代码:Megatron-LM、ZeRO、FlashAttention、vLLM;
- 参与开源项目(vLLM / DeepSpeed / SGLang),贡献算子优化或功能模块;
- 掌握量化、Speculative Decoding 等推理优化技术。
工程实践(6 个月以上)
- 在 GPU 集群上部署百亿/千亿参数模型,优化端到端性能;
- 建立完整的性能分析与回归体系(benchmark 配置可复现、CI 性能门禁);
- 研究 Prefill/Decode 解耦等前沿系统架构;
- 持续跟踪 FP8、RDMA 网络优化、新硬件适配等技术迭代。
十二、核心思维模型:所有优化都是 trade-off
| 优化技术 | 牺牲了什么 | 换取了什么 |
|---|---|---|
| ZeRO | 通信带宽 | 显存空间 |
| Activation Checkpointing | 计算时间 | 显存空间 |
| 量化 | 精度 | 显存 + 带宽 + 吞吐 |
| Speculative Decoding | Prefill 开销 | Decode 速度 |
| Prefill/Decode 解耦 | 系统复杂度 + KV 迁移开销 | 尾延迟 + goodput |
| FlashAttention | 实现复杂度 | 显存 + 速度 |
学到最后你会发现,AI Infra 的所有”神操作”背后都是这张表。能把这张表内化成直觉,你就已经超过大多数人了。
十三、参考资料汇总
- AIInfraGuide:AI Infra 学习路线(本文核心框架参考)
- CMU 15-442/642: Machine Learning Systems
- CMU 11-868: LLM Systems
- MIT 6.5940: EfficientML.ai
- Stanford CS336: Language Modeling from Scratch
- CSDiy 计算机自学指南
- 动手学深度学习 D2L
- 我之前的笔记:Karpathy GPT from scratch 学习笔记、Karpathy Tokenizer 学习笔记
如果你正在学 AI Infra,欢迎留言交流你的学习路线和踩过的坑。下一篇打算写 vLLM 源码精读,或者 FlashAttention 的白板推导,看哪篇呼声高。