大模型推理与训练技术栈学习指南¶
基于多期 Sprint Planning 文档(2024.09-2025.09)提炼的核心技能、关键仓库及系统化学习路径。
一、核心技能点(按技术领域分类)¶
1. 模型推理与部署¶
| 技能点 | 说明 | 关联任务 |
|---|---|---|
| vLLM 推理框架 | 掌握 vLLM 架构、调度策略、KV Cache 管理、continuous batching | 版本升级、参数调优(chunked-prefill, prefix-caching)、多卡 TP/PP/EP |
| SGLang 推理 | 熟悉 SGLang 的 speculative decoding、融合算子、后端适配 | deepseek MTP、flash attention 后端适配 |
| Prefix Caching | 理解缓存命中率优化、cache hit 后跳过 forward 逻辑 | prefix-caching 优化(提升命中率 10%) |
| Paged Attention | 分页注意力机制、内存管理、性能分析(nsys) | paged_attn 占比优化、多卡场景分析 |
| Speculative Decoding | 草稿模型 + 目标模型验证、融合算子、accept rate 对齐 | deepseek MTP、EAGLE、Medusa |
| Chunked Prefill | 分块预填充策略,平衡吞吐与延迟 | 参数 enable-chunked-prefill 测试与性能分析 |
2. 模型训练与微调¶
| 技能点 | 说明 | 关联任务 |
|---|---|---|
| DeepSpeed | ZeRO 1/2/3 优化、混合精度、通信策略 | llama-factory + deepspeed 多卡训练 |
| Megatron-LM | 张量并行、流水线并行、序列并行、DP/TP/PP 组合 | llama2 训练、MFU/HFU 计算 |
| NeMo | NVIDIA 大模型框架,支持 LoRA、SFT、并行策略 | nemo-run、docker/slurm executor 调试 |
| llama-factory | 统一微调框架,支持多种模型和 PEFT 方法 | qwen/deepseek 模型微调 |
| Transformers 库 | Hugging Face 生态,模型加载、训练、推理 | rebase、版本适配 |
| 混合精度训练 | bf16/fp32 精度训练,精度毛刺问题定位 | long-running SFT 精度稳定性 |
3. 并行与分布式策略¶
| 技能点 | 说明 | 关联任务 |
|---|---|---|
| TP(张量并行) | 层内参数切分 | qwen2.5-72B TP4 优化 |
| DP(数据并行) | 数据批次切分 | TP+DP 组合(如 TP4+DP2) |
| PP(流水线并行) | 层间切分,1F1B 调度 | Megatron TP2+PP2/PP4 训练 |
| EP(专家并行) | MoE 模型专家切分 | deepseek-r1 671B TP+EP |
| 通信原语 | allreduce、gather、scatter、broadcast、reduce_scatter | DLCCL 调试、ring_exchange |
| MoE 优化 | 列优先 linear 计算、fused_moe、moe_align_block_size | deepseek 671B 性能优化 |
4. 量化与压缩¶
| 技能点 | 说明 | 关联任务 |
|---|---|---|
| AWQ(激活感知权重量化) | 4-bit 量化,精度与性能权衡 | DeepSeek-V2-Lite-Chat-AWQ 测试 |
| GPTQ | 训练后量化(PTQ) | gptq_gemm 算子插入与测试 |
| INT8 量化 | 8-bit 矩阵乘 | matmul int8 类型优化 |
5. 算子级优化¶
| 技能点 | 说明 | 关联任务 |
|---|---|---|
| 融合算子 | fused_rms_norm、fused_adamw、fused_rope、fused_moe | 替换 TransformerEngine 对应实现 |
| 内存优化 | pin_memory、异步拷贝(synmemcpyasync)、CMA 内存管理 | copy_stride_sr、pin_memory async copy |
| Kernel 优化 | matmul 分块大小、bank conflict 解决、列优先布局 | matmul_padding、列优先 linear |
| Attention 变体 | MLA(Multi-head Latent Attention)、duo-attention、sliding window | deepseek MLA、gemma3 sliding window |
| 自定义算子 | paged_attention_v2、reshape_and_cache、gptq_gemm、moe_align_block_size | 算子插入与测试、CI 集成 |
6. 性能分析与 Profiling¶
| 技能点 | 说明 | 关联任务 |
|---|---|---|
| Nsight Systems | GPU 耗时分析,CUDA kernel 占比 | paged_attn 占比分析、多卡 profiling |
| PyTorch Profiler | 算子级别耗时、内存占用 | vLLM 调度开销分析 |
| MFU / HFU | 模型浮点利用率、硬件浮点利用率 | Megatron 添加 MFU/HFU 指标 |
| Benchmark | throughput、latency、serving 测试 | benchmark_throughput、benchmark_serving 跑通 |
7. 编译器与图优化¶
| 技能点 | 说明 | 关联任务 |
|---|---|---|
| IREE | 机器学习编译器,图模式编译 | vLLM v1 接入 IREE bf16,graph 优化 |
| torch.compile | PyTorch 动态图编译 | vLLM v1 支持 torch.compile 和 dynamo |
| torch.dynamo | 图捕获与转换 | 接入 dynamo + iree 图模式框架 |
8. 模型适配与多模态¶
| 技能点 | 说明 | 关联任务 |
|---|---|---|
| 大语言模型 | Qwen、DeepSeek、Llama、Gemma、ChatGLM、Baichuan | 适配、推理、训练 |
| 多模态模型 | Qwen2.5-VL(视频输入)、GLM-4.5V、SAM、GroundingDINO | 视频输入优化、conv3d 融合 |
| 文生图/视频 | FLUX.1、Wan2.1、Stable Diffusion | FLUX 适配、Wan2 优化 |
| 语音模型 | CosyVoice、FunASR、Fish-Speech | 数字人适配、benchmark |
| 目标检测 | YOLO v8/v9/v11、D-FINE | 适配与性能优化 |
二、关键代码仓库与工具(需深入吃透)¶
推理框架¶
| 仓库 | 用途 | 学习重点 |
|---|---|---|
| vLLM | 高性能 LLM 推理 | 调度器、KV Cache 管理、Paged Attention、多卡并行、prefix-caching、chunked-prefill |
| SGLang | 结构化生成语言 | Speculative decoding、融合算子、flash attention 后端 |
| Hugging Face Transformers | 模型加载与基础推理 | 模型结构、tokenizer、generation 配置 |
训练框架¶
| 仓库 | 用途 | 学习重点 |
|---|---|---|
| DeepSpeed | 大规模分布式训练 | ZeRO 优化、混合精度、通信策略、MoE 支持 |
| Megatron-LM | 超大规模训练框架 | TP/PP/DP 组合、序列并行、1F1B 调度、MFU 计算 |
| NeMo | 端到端大模型开发 | 分布式训练、LoRA、SFT、docker/slurm executor |
| LLaMA-Factory | 统一微调平台 | 多模型支持、PEFT 方法、deepspeed 集成 |
编译与优化¶
| 仓库 | 用途 | 学习重点 |
|---|---|---|
| IREE | ML 编译器 | 图捕获、算子编译、bf16 支持、capture 调试 |
| PyTorch | 基础框架 | torch.compile、dynamo、分布式通信包、算子实现 |
通信库与底层¶
| 仓库 | 用途 | 学习重点 |
|---|---|---|
| DLCCL(内部) | 自研通信库 | allreduce、gather、scatter、ring 拓扑、超时调试 |
| Flash Attention | 高效注意力实现 | FlashInfer、paged_attn、sdpa 融合 |
基准测试与工具¶
- nsys(NVIDIA Nsight Systems):GPU 性能分析。
- PyTorch Profiler:算子耗时统计。
- Benchmark 脚本:throughput/latency/serving 测试。
三、学习指南规划(分阶段实施)¶
第一阶段:基础理论铺垫(2-3 周)¶
目标:建立大模型推理与训练的核心知识体系。
-
Transformer 深度理解 - 阅读《Attention Is All You Need》。 - 手写简易 Transformer(PyTorch)。 - 理解 Multi-Head Attention、FFN、LayerNorm、Positional Encoding。
-
分布式训练基础 - 数据并行、模型并行(张量/流水线)原理。 - DeepSpeed ZeRO 1/2/3 机制。 - 通信原语(allreduce、broadcast、gather/scatter)。
-
推理性能基础 - KV Cache 原理、Paged Attention 论文(vLLM 核心)。 - Continuous Batching 与静态 batching 对比。 - Speculative Decoding 论文(DeepMind 和 Google 相关工作)。
-
MoE 与量化基础 - MoE 架构(GShard、Switch Transformer)。 - AWQ/GPTQ 量化原理。
第二阶段:推理框架专项(3-4 周)¶
目标:精通 vLLM 和 SGLang,能独立完成模型适配和性能调优。
-
vLLM 源码剖析 - 核心模块:scheduler、kv_cache_manager、worker、model_runner。 - 并行策略:TP/PP 实现,
initialize_model_parallel流程。 - 新增模型适配流程(如 Qwen-Image、DeepSeek-R1)。 - 参数调优:--enable-chunked-prefill、--prefix-caching、--max-num-seqs。 - 性能分析:使用 nsys 定位 paged_attn 耗时瓶颈。 -
SGLang 实践 - 对比 vLLM 差异,理解其 speculative decoding 实现。 - 融合算子(如
fused_moe)的插入与测试。 -
实战任务(仿 Sprint) - 在 4 卡/8 卡上跑通 DeepSeek-R1-Distill-Llama-70B 并调优。 - 实现 prefix-caching 优化,命中率提升 10%。 - 对比 A100 vs 自研硬件(DLC)推理性能。
第三阶段:训练框架专项(3-4 周)¶
目标:掌握 DeepSpeed + Megatron + NeMo,能开展大模型预训练与微调。
-
DeepSpeed 深入 - 配置 ZeRO 1/2/3,理解 offload 机制。 - 与 llama-factory 集成,跑通 qwen2-7b、llama2-70b 微调。 - 调试 deepspeed + dlccl 通信问题(卡死、NaN)。
-
Megatron-LM 掌握 - 构建 GPT 模型,配置 TP/PP/DP 组合。 - 理解 pipeline 调度(1F1B)和 interleaved 调度。 - 添加 MFU/HFU 指标,分析训练效率。 - 调试常见问题:reshape_offset 卡死、allreduce 结果错误、NaN 定位。
-
NeMo 框架 - 跑通 nemo-run(docker/slurm executor)。 - 实现 NeMo + Megatron Core 的混合并行训练。 - 融合算子替换(fused_adamw、fused_rms_norm)。
-
实战任务 - 8 卡 llama2-70b 训练,与 A100 性能对比。 - qwen2.5-32b 微调,解决 loss 异常与精度毛刺。 - 多机多卡训练(如 4 机 32 卡 DeepSeek-R1)。
第四阶段:算子开发与优化(2-3 周)¶
目标:能独立开发/插入自定义算子,优化 kernel 性能。
-
PyTorch 算子扩展 - 实现 C++/CUDA 扩展,注册自定义算子。 - 处理连续内存(contiguous)和非连续 tensor 问题。 - 常用算子:matmul、sdpa、reshape_and_cache、gptq_gemm。
-
融合算子设计 - 融合 RMSNorm + Matmul 或 Attention 中的多个操作。 - 实现 fused_moe、fused_rope,参考 FlashAttention 思路。
-
性能调优 - 使用 nsys 和 nvprof 分析 kernel 耗时。 - 分块大小调优(避免 bank conflict)。 - 异步拷贝(
cudaMemcpyAsync)与 pin_memory 优化。 -
实战任务 - 为 vLLM 插入缺失算子(如
moe_align_block_size)。 - 优化copy_stride_sr提升多卡通信效率。 - 添加index_put算子支持 new 数据类型。
第五阶段:分布式通信与编译器(2 周)¶
目标:理解通信库内部机制,能利用编译器进行图优化。
-
DLCCL 调试 - 理解集合通信超时、卡死原因(如 send/recv rank 不匹配)。 - 测试 ring/tree/hypercube 拓扑性能。 - 修复 broadcast_object_list、all_gather_object 相关问题。
-
IREE + torch.compile - 配置 IREE 编译流程,捕获子图。 - 修复 capture stream 不一致、replay 卡死等问题。 - 对比 eager 模式与 compiled 模式性能收益。
-
实战任务 - 使 vLLM v1 支持 torch.compile + IREE 后端(bf16)。 - 为 dynamo 接入增加弱引用 tensor 支持。
第六阶段:模型适配与多模态拓展(2 周)¶
目标:快速适配新模型,包括多模态和文生图/视频。
-
多模态模型适配流程 - 理解视觉编码器(CLIP、SigLIP)与 LLM 拼接方式。 - 处理视频输入的 conv3d 和 reshape 操作。 - 常见适配模型:Qwen2.5-VL、GLM-4.5V、SAM。
-
文生图/视频模型 - FLUX.1、Wan2.1 的 diffusers 管道。 - 解决 matmul 形状不支持、batch size 限制问题。
-
语音模型 - CosyVoice、FunASR 的推理与 benchmark。
-
实战任务 - 将 GroundingDINO、SAM 添加到 ModelZoo。 - 适配 Qwen-Image 并加入 CI 用例。
第七阶段:CI 与自动化测试(1 周)¶
目标:建立完整的模型测试与回归体系。
-
CI 流水线搭建 - 集成模型推理/训练测试,自动检测算子缺失/精度问题。 - 多卡环境下的 benchmark 自动运行。
-
性能回归监控 - 对比每日性能数据(throughput/latency)。 - 通过 CI 触发 profiling,自动上传报告。
四、推荐学习资源¶
论文必读¶
- vLLM: Efficient Memory Management for Large Language Model Serving。
- FlashAttention: Fast and Memory-Efficient Exact Attention。
- GShard: Scaling Giant Models with Conditional Computation。
- AWQ: Activation-aware Weight Quantization。
- DeepSpeed ZeRO: Memory Optimization。
官方文档¶
- vLLM 官方文档与博客。
- PyTorch Distributed Tutorials。
- DeepSpeed 文档与 examples。
- Megatron-LM 用户指南。
源码阅读顺序建议¶
- vLLM 的
scheduler.py和worker.py。 - DeepSpeed 的
zero_stage相关代码。 - Megatron-LM 的
pretrain_gpt.py和pipeline_parallel。 - PyTorch
torch/distributed下的通信实现。
五、最终验证项目(综合实战)¶
完成以下任务作为结业考核,模拟真实 Sprint:
- 从零适配一个新模型:如 Qwen3-235B 到 vLLM 推理,支持 TP+EP,实现 benchmark throughput 不低于 A100 的 90%。
- 训练任务:用 Megatron 在 8 卡上训练 llama2-70b,完成 100 次迭代,loss 收敛,MFU 达到 45% 以上。
- 性能优化:将 prefix-caching 命中率从 60% 提升至 75%,并量化其对 latency 的改进。
- 算子贡献:为 vLLM 或 PyTorch 社区提交一个融合算子 PR(如
fused_moe)。
本指南涵盖从理论学习到实战落地的完整路径。建议按阶段推进,每个阶段完成后进行复盘总结。文档中的 Sprint 任务可作为练习题,直接对标工业界真实需求。