Skip to content

专题讨论轴

topic_discussion 是跨 Part 00-04 的知识组织层。它不替代纵向 notebook 主线,只负责三件事:

  • Part 02 的主学习路线收成更清楚的入口
  • 给跨路线反复出现的方法轴补判断框架
  • 给基础机制补解释层,避免读者只记结论、不懂来源

主学习路线

如果你还没有明确的性能或系统问题,先从三条主路线中选一条;横向专题用于补方法和机制,不要求全部顺序完成。

路线主入口适合什么时候进入
训练微调方向监督微调专题当你要从结构前置、SFT、LoRA 一路走到项目交付时
推理优化方向推理优化专题当你要系统理解 prefill、decode、KV cache、服务和 benchmark 时
显存优化方向显存优化专题当你要把训练显存、推理 cache、量化预算和 trade-off 串起来时

LLM Infra 五层总览

横向专题统一放回下面这套从下到上的 Infra 结构理解:

层级主要内容核心问题边界判断
L1 硬件与基础设施GPU/NPU、CPU、HBM、PCIe、NVLink、InfiniBand、SSD物理资源提供了什么能力?改的是芯片、容量、带宽、拓扑或物理设备
L2 系统软件与加速库驱动、CUDA/ROCm、编译器、Triton、NCCL、cuBLAS、FlashAttention如何把硬件能力调用出来?改的是 kernel、算子、编译、通信原语或设备运行时
L3 框架与运行时PyTorch、JAX、FSDP、DeepSpeed、Megatron、训练运行时模型计算和状态如何组织?改的是计算图、自动求导、并行切分、状态管理或执行调度
L4 服务与模型优化vLLM、SGLang、TensorRT-LLM、量化、KV Cache、Serving 调度一个模型实例如何高效执行?改的是模型加载、请求处理、缓存、实例吞吐和延迟
L5 平台与 MLOps资源调度、模型仓库、灰度发布、监控、告警、工作流多个模型和用户如何稳定交付?改的是资源编排、版本生命周期、流量治理和服务可用性

模型、数据和 workload 不是独立的一层,而是运行在这五层之上的负载面:训练主要落在 L3,推理主要落在 L4,最终都受 L1/L2 的硬件与系统软件约束。

层间存在灰色地带。例如,FlashAttention 的算法思想属于方法层,kernel 实现属于 L2,服务集成属于 L4;FSDP / DeepSpeed 属于 L3,但底层会调用 L2 的 NCCL,集群资源又由 L5 管理;量化理论属于算法方法,低比特 kernel 属于 L2,推理部署属于 L4,模型版本和发布流程属于 L5。KV Cache 的数据结构和调度主要在 L3/L4,显存容量和带宽受 L1 约束,监控和扩缩容则属于 L5。

Profiling 不属于某一个固定层,而是贯穿 L1-L5 的证据工具。它把硬件利用率、kernel 时间、框架调度、服务请求和平台资源放到同一条证据链中;因此一个优化结论不能只说“某层变快了”,还要说明它对 Compute / Memory / Communication / Quality / End-to-End 的影响。

横向能力轴

五层结构回答“组件位于哪里”,还需要三条横向能力轴回答“代价如何产生”:

  • Compute:FLOPs、kernel 时间、利用率和计算重叠。
  • Memory:容量、带宽、数据驻留、缓存和访存次数。
  • Communication:GPU 间、CPU-GPU 间、节点间传输、同步和拓扑。

Profiling 与 Evaluation 横跨五层:前者负责采集证据,后者负责验证质量、性能、显存、通信和部署结果。每个优化结论至少要说明 Compute Δ / Memory Δ / Communication Δ / Quality Δ / End-to-End Δ

从算法到硬件:如何选择纵向方向

五个方向不是五个互相独立的层级,而是在同一套 Infra 栈上向下穿透的不同入口。可以把它理解为盖房子:训练微调负责“房间如何使用”,推理优化负责“请求如何调度”,显存优化负责“有限空间如何分配”,算子优化负责“单个施工环节如何贴合材料”,编译器图优化负责“如何把设计图自动变成施工方案”。这个比喻用于建立问题意识,不代表方向之间存在简单的难度或价值排序。

方向主要落点主要问题典型证据
训练微调L3,受 L1/L2 约束模型如何学习、数据如何进入训练、参数如何更新loss、质量、显存、step time、训练稳定性
推理优化L3-L4请求如何经过 prefill、decode、cache 和调度TTFT、TPOT、吞吐、并发、端到端延迟
显存优化横跨 L1-L4状态放在哪里,容量、带宽、重算和搬运如何取舍peak memory、带宽、吞吐、质量、OOM 边界
算子优化L2,受 L1 约束kernel、布局、访存和计算如何贴合硬件kernel time、occupancy、带宽利用率、端到端收益
编译器图优化L2-L3,连接 L1/L4如何进行图变换、融合、lowering 和执行调度编译日志、算子数、kernel 组合、端到端收益

选择方向时先问“问题发生在哪一层”,不要先问“哪个方向更热门”:训练问题优先看 L3,服务延迟优先看 L3/L4,OOM 优先看 Memory 轴,单 kernel 热点再下沉到 L2,图到硬件的映射问题则进入编译与图优化。

算子、异构并行与 MLSys 的专题占位

这三类内容不是额外堆出的新主线,而是连接五层结构的横向能力:

能力主要连接在专题中的展开位置当前项目入口
算子与编译优化L1-L3编译与图优化专题;推理专题解释 kernel 对 prefill/decode 的影响66 / 67 / 74
异构并行与通信L1-L5通信与并行专题;Profiling 负责定位计算、内存、通信等待79 / 80 / 81
MLSys 方法L2-L5作为跨专题方法:约束建模、profiling、benchmark、资源调度和回归决策74 / 75 / 79

通信库、算子库和分布式并行库也按这个原则放置:NCCL 主要是 L2 的通信原语,cuBLAS、FlashAttention 等属于 L2 的算子/内核实现,PyTorch、FSDP、DeepSpeed、Megatron 等属于 L3 的框架与并行运行时;它们在 L4 的服务和 L5 的资源调度中被组合使用。专题不重复介绍同一个库,而是分别解释它在当前问题中的作用和代价。

多专题项目如何阅读

一个项目可以被多个专题复用,但只保留一个主叙事入口。主专题负责定义项目问题和最终结论,关联专题只复用其中的指标、机制或实验结果;例如 66 的主专题是推理优化,但量化、编译、显存和 Profiling 专题可以分别解释它的低比特、kernel、预算和证据视角。项目资产表中的“主专题 / 关联专题 / Infra 层”用于记录这种关系,避免把同一个项目误读成多个独立项目。

横切支撑专题

这些专题不替代主路线,而是把跨路线反复出现的方法轴单独拉出来:

专题主入口更适合什么时候进入
量化与压缩quantization当你同时要看精度、显存、带宽和部署取舍时
通信与并行communication_parallel当你开始进入多卡训练、并行切分和通信瓶颈时
Profilingprofiling当你需要拿证据,而不是只靠经验猜测时
后训练与对齐post_training_alignment当你完成 SFT 主线后,准备进入对齐与偏好优化时

基础支撑专题

这些专题更偏机制解释和背景支撑,常作为主路线的前置桥:

专题主入口更常服务哪条路线
反向传播与训练机制backpropagation_training_mechanism训练微调、显存优化
大模型架构model_architecture训练微调、推理优化
编译与图优化compiler_graph_optimization推理优化、系统优化

按问题进入专题

如果你已经在做项目,只是遇到瓶颈,再按问题进入横切支撑专题;如果需要补机制背景,再回看基础支撑专题。

常见跳转:

Released under the MIT License.