- 文集信息
- 目录大纲
- 最新文档
- 知识宇宙
文集详情
文集导读
Awesome-ML-SYS-Tutorial
English README | 简体中文
My learning notes for ML SYS.
断断续续写这个系列的博客一年多了,这个博客也几乎快要写成 RL Infra Learning Note 了
经常看到有朋友讨论 ML SYS 或者 AI Infra 值不值得入行,以及如何开始。每个人的选择各有不同,对我而言,我只是想追求算法上的真理:
非常多的 paper 得出的 RL 结论,都是建立在开源社区可能漏洞极其多的 RL infra 上。我自己参加 RL infra 开发一年多,见到众多社区的大佬都殚精竭虑辛勤付出,但是事实上无论是开源还是各大公司内部,RL infra 仍旧有着非常多问题,基于这些有问题的基建得到的上层结论是否正确,这事非常值得反馈的。我在今年 ICLR review 的时候,就经常问我分到的 paper,“如果你们采用的框架本身实现就有问题,你们的结论还能成立么?”尽管我从没为了这个理由扣他人的分,但是没有一个人能给出解决我心头疑惑的答案。
因此,我认识的一些大佬会乐于参加 infra 的开发,甚至绝大多数时间都在做基建上,为了严格确定自己接下来要做的算法具有正确的基础。我非常佩服他们,我也认同这样的严谨性,他们是我的榜样。我们 SGLang RL 社区也是如此,这么多人力,这么多时间,我们都希望提供尽可能正确且简洁的 RL 基础,无论是公司训练模型,还是研究者展开新的算法,希望能真正服务到社区每个人。感谢大家的认可,也期待感兴趣的朋友联系我,加入我们!
兜兜转转一年,这就是目前让我坚持继续做 Infra 的决心,为了做出正确的基础建设,为社区得到正确的结论做出自己的贡献。
言归正传,这一系列播客是我从 2024 年 8 月,在科研的契机下使用了 SGLang 后,逐渐开始学习 ML SYS 的笔记。大体上是我本人所写,内容主要是 RL infra,在线/离线推理系统,以及一些 AI Infra 的基本功。一年来,从最开始两三篇文章,三五十个 Github Star,到现在 Star 超过 4.5K,而我也成了技术圈小网红,真是承蒙厚爱,不甚荣幸。
感谢我的导师顾全全教授、盛颖博士和郑怜悯博士,他们在我对 AI Infra 的学习、职业选择与人生道路上中给予了我极大的帮助和指导。尽管由于个人原因,我已经不在 UCLA 继续攻读博士学位了,本科毕业后的这段旅程仍旧是无比宝贵的经历。目前我已经全职加入了 RadixArk 公司,继续做 RL Infra 相关的研究,我们会持续通过我的博客,在非官方渠道分享 AI Infra 相关的技术和思考。也希望大家联系我们,加入 SGLang 开源社区,一同打造改变世界,值得一生引以为傲的开源 AI Infra!
RLHF System 开发笔记
slime 框架
- 让速度与精度同在:全面解决 RL 中的训推不一致问题:介绍 slime 框架对训推不一致问题提供的两种解决方案:通过 kernel 层面对齐实现完美的 True On-Policy 训练,以及基于 TIS/MIS 等算法来缓解训推不一致的影响。同样刊载英文版本。
- Support FSDP2 as A Training Backend for slime:在 slime 中新增了 FSDP 作为训练后端,并与 Megatron 完成对齐。FSDP 能够更加灵活支持诸如 Qwen3-Next/gpt-oss 等架构创新的模型,并且有助于我们进一步支持 VLM RL。同样刊载英文版本和知乎。
- Unified FP8: Moving Beyond Mixed Precision for Stable and Accelerated MoE RL:在 RL 中完全使用 FP8 进行采样(Rollout)和训练(Training),同样刊载英文版本和知乎。
- Power Up Speculative Decoding In Reinforcement Learning:将 speculative decoding 引入到了 RL 的采样流程中,在 batch size 合适的情况下,采样速度得到了显著提升;并且,draft model 也会在训练过程中更新。相较于冻结 draft model 的做法,accepted length 持续维持在较高水平,产生长期稳定的正收益。同样刊载英文版本。
- 深入浅出 slime RL 框架的优雅设计与源码:slime 源码赏析,同样刊载于知乎和英文版本。
- [Pending Review] slime FSDP Setup Guide:记录如何在 slime 上测试 FSDP,包括 H 卡和 B 卡,以及 Colocate 和 Disaggregated 两种 placement 方式。
- [Pending Review] PPO 中 GAE 的分 chunk 并行计算(基于 slime 的实现):将标准 GAE 的后向递推改写为基于 chunk 的并行前缀扫描,在长序列场景下大幅缓解 GAE 计算瓶颈,在 slime 中实现约 100×–300× 加速。同样刊载于知乎。
AReal 框架
- AReal Code Walk Through AReal 源码赏析,同样刊载于知乎和英文版本。
verl 框架
- 通过 Torch Memory Snapshot 分析 VLM RL 训练中的显存泄露问题:分析 SGLang 的显存泄露问题,以及解决方案,同样刊载于知乎和英文版本。
- Latency optimization for weight updates:一次对效率的 debug 过程,同样刊载于记一次对 SGLang weight update latency 的优化。
- 深入浅出理解 verl 源码(初始化):同样刊载于知乎,还有英文版本。
- 深入浅出理解 verl 源码(Rollout):同样刊载于知乎,还有英文版本。
- [Pending Review] 深入浅出理解 verl 源码(Make Experience):分析 verl 中 make experience 部分的逻辑。
- AgentLoop 源码浅析: 分析 verl 中基于 AgentLoop 的 multi-turn RL 的实现。
- verl 参数速览:verl 参数速览,同样刊载于知乎,还有英文版本。
- 从 tokenizer 视角来分析 Agentic 多轮训练的复杂性:同样刊载于知乎和英文版本。
- [Pending Review] DAPO Dynamic Filtering 实现与 Batch Size 解析:探索通过将 prompt 补齐到更小的 batch size 实现更高的并行度。
- 系统性分析 verl multi-turn training 的时间消耗:verl 多轮交互与工具调用 profile 分析,还有英文版本和知乎。
- SGLang, verl, OpenBMB 与清华大学团队联合开源:在主流 RLHF 框架上首次支持多轮交互与工具调用:在主流 RLHF 框架上首次支持多轮交互与工具调用,同样刊载于知乎。
- Search-R1 & veRL-SGLang: Train LLMs with Multi-Turn RL to Reason and Call a Search Engine:整合 Search-R1 framework 到 verl-sglang 生态,同样刊载于知乎。
- SGLang-veRL Server:从 Engine 到 Server,我们需要更灵活的 RLHF rollout 接口:为了实现更复杂的 RLHF 系统,我们逐步将 veRL 当中的 rollout engine 替代为 rollout server,同样刊载于知乎:SGLang-veRL Server。
- HybridFlow veRL 原文浅析:SGLang 的 hybrid engine 的原理与实现,同样刊载于知乎:HybridFlow veRL 原文浅析。
OpenRLHF 框架
- 图解大模型RLHF系列之:人人都能看懂的PPO原理与源码解读以及图解OpenRLHF中基于Ray的分布式训练流程:猛猿小姐姐的非常好的 RLHF 入门资料,看了之后会对 RLHF 的计算流以及 OpenRLHF PPO 的框架有很好的理解,我自己也补充了写自己的理解在 RLHF 的计算流。
- 浅析以 OpenRLHF 为代表的 post-training 系统的计算流程:基于猛猿小姐姐的文章再做补充,Github native 渲染的巨烂,甚至看知乎好了。
系统设计与优化
- RL 系统深思:深入理解权重更新机制:半年工作的总结,深入理解权重更新机制,同样刊载于知乎和英文版本。
- RL 系统深思:FSDP 训练后端:讨论 FSDP 的原理和实现,以及分析 verl 的 FSDP 使用。同样刊载于知乎和英文版本。
- [Pending Review] RL 系统深思:Megatron:Megatron 的基本特性浅析,重点分析 Megatron 在 RL 框架中的使用。
- 扩展 OpenRLHF 的推理引擎:将 SGLang 接入到 OpenRLHF 的开发笔记,整个过程非常痛苦,而且目前还有 nccl hang error,已经直接联系了 deepspeed core contributor 在修复了。
- [Pending Review] SGLang as rollout engine of GRPO trainer:介绍如何将 SGLang 作为 TRL 中 GRPO Trainer 的推理后端,GRPO 是 PPO 的变体,在优化数学推理能力的同时优化 PPO 的内存使用。
算法与理论
- [Pending Review] Learning to Reason under Off-Policy Guidance:使用离线策略辅助在线学习的 LUFFY 框架,通过将 off-policy 推理轨迹与 on-policy rollout 结合,动态平衡模仿与探索。
- Kimi K1.5: Long Context RL 的成功实践:Long Context RLHF 的工业级实现,一直很喜欢 kimi 团队的技术报告,同样刊载于 Kimi K1.5: Long Context RL 的成功实践。
- Rule-based Reward:这篇只有知乎,浅浅写了写,老实说原文写的我并不太喜欢,但是 determined reward 确实 charming。
- SWE-Bench:如何构造 LLM 时代的优秀 Benchmark,基于 SWE-Bench 的论文阅读笔记,如何构造好的 benchmark 以为 post-training 提供细粒度 reward,是永恒且美妙的话题。
- 浅析主流 Alignment 算法与 NeMo-Aligner 框架
SGLang 学习笔记
SGLang Diffusion 学习笔记
- 基于 SGLang Chunked-Prefill 支持 Block-Wise Diffusion LLM:介绍 SGLang 中支持 LLaDA2.0-flash-CAP 的实现,同样刊载于知乎和英文版本。
- SGLang Diffusion Code Walk Through:diffusion model 的基础原理,以及一个请求被 SGLang-Diffusion 处理的全过程,同样刊载于知乎和英文版本。
核心架构与优化
- SGLang Code Walk Through:一个请求被 SGLang Engine 处理的全过程,还有一些 part 没有完成,但是大多地方已经 okay,也让很多 SGLang begginer 就此开始。这里还有中文版本。
- Walk Through SGLang / VLLM Worker:SGLang 的代码不完全解析,同样刊载于 Walk Through SGLang / VLLM Worker,这次我们还贴心提供了英文版本。更详细的解析应该参考 SGLang Code Walk Through,这个只是辅助看看。
- Walk Through SGLang Scheduler
- [Pending Review] SGLang Scheduler Evolution:详细介绍了 SGLang Scheduler 从串行到 CPU / GPU overlap 的技术演进及相关组件,对比前代 overlap Scheduler 和当前引入多 CUDA stream 与 FutureMap 的 overlap Scheduler。可到知乎查看文章
- [Pending Review] KV Cache Code Walkthrough:KV cache 管理实现的概览,从 Scheduler 组件开始,详细说明 prefill 和 decode 阶段中 KV cache 和内存池的更新过程。
- [Pending Review] SGLang 多模态请求生命周期:以 Qwen2.5-VL 为例的架构级深度解析:以 Qwen2.5-VL 为参考模型,提供对 SGLang 框架内多模态请求处理流程的详细剖析。
- [Pending Review] How A Model is Loaded in Hugging Face and SGLang:记录模型在 Hugging Face 和 SGLang 中的加载过程,帮助理解权重加载机制。
- [Pending Review] Speculative Decoding:介绍 speculative decoding 优化技术,利用较小的 draft model 预测下一个 K 个 token,实现最高 K 倍的加速。
- [Pending Review] Zero-Overhead Batch Scheduler:介绍零开销批处理调度器,解决传统推理系统中 CPU 调度和 GPU 计算串行执行导致的 GPU Bubble 问题。
- [Pending Review] Data Parallelism Attention:详细介绍 DP Attention 的原理与实现,针对 DeepSeek 等使用 MLA 且只有一个 KV head 的模型,避免 tensor parallelism 导致的 KV cache 重复。
- 浅析 SGLang 框架的量化设计与思路:同样刊载于知乎:浅析 SGLang 框架的量化设计与思路还有英文版本。
- Constraint Decoding 的概念、方法与优化:同样刊载于知乎:一文理解 Constraint Decoding 的概念、方法与优化。
- [Pending Review] Online Update Weights:介绍 SGLang 中
online_update_weights接口的实现,区别于从磁盘读取权重的update_weights,该接口从训练 engine 中直接通过 nccl 广播新的权重。 - [Pending Review] SGLang Verl Engine 优化解析:解析 SGLang 中 verl engine 的优化,包括
update_weights_from_tensor等接口的实现。 - Latency Accelerate For Weight Updates
- [相关调试] 通过 Torch Memory Snapshot 分析 VLM RL 训练中的显存泄露问题:分析 SGLang 的显存泄露问题,以及解决方案,同样刊载于知乎和英文版本。
使用与实践
- [Pending Review] Qwen3-Coder Usage:介绍如何在 SGLang 中使用 Qwen3-coder,包括 tool-parser 的使用。
- [Pending Review] NVIDIA Dynamo:介绍 NVIDIA Dynamo,一个为多节点分布式环境中的生成式 AI 和推理模型服务设计的高吞吐量低延迟推理框架。
- 查看 HuggingFace 模型结构
- SGLang 后端原文解析
- Reward / Embed Model Sever Engine 现状浅析
- 小白视角:vllm 迁移到 SGLang 的体验与收获
- 小白视角:利用 SGL 来 Serve Embedding Model
- 小白视角:利用 vllm serve 新的 Embedding Model
Scheduling and Routing
- Mooncake:将 P / D 分离进行到底
- prefill 和 decode 该分离到不同的卡上么?
- 基于 chunked prefill 理解 prefill 和 decode 的计算特性
- ModelServer:基于 SGLang 的前端分发系统
ML System 基本功
Transformers & Model Architecture
- [Pending Review] Transformer中的交叉注意力机制:介绍 Transformer 中的交叉注意力机制,允许解码器访问和使用编码器的相关信息,同样有英文版本。
- 一文理解 special tokens 和 chat template:同样记录于知乎 一文理解 special tokens 和 chat template。
CUDA & GPU
Distributed Training & Communication
- [Pending Review] 手搓 Tensor Parallelism:关于 Tensor Parallelism 的实现与实践。
- NCCL 与 NVIDIA TOPO:NCCL 的入门与 NVIDIA 显卡的检测,同样刊载于NCCL 与 NVIDIA TOPO。
- NCCL and SGLang:NCCL 在 SGLang 中的应用,其实和中文内容非常接近,但是额外刊载了一些并行策略的内容。我应该不会修缮完成这个笔记,而是单独写笔记来记录并行策略。
- PyTorch Distributed:
torch.distributed的通讯实践, GIL 和all_reduce的细节。这一部分同样刊载在 知乎:PyTorch 通讯实践。 - [原创][深度][PyTorch] DDP系列第一篇:入门教程:虽然我没学明白 DDP 的内容,我只是借此学习了下 GIL 和 ring all reduce,这一步刊载于 torch-distributed 的后记。
- nvidia-smi命令详解和一些高阶技巧介绍:主要是一些网络拓扑,在我本机的结果记录在 nccl 部分。
Quantization
开发指南
- How to use docker:如何使用 docker 来管理开发环境。请注意,为了共同塑造良好的科研环境,避免有人用 baseline "在我的机器上能跑"来恶心别人,学习 docker 对任何人都是必不可少的。同样我们也有英文版本和知乎。
- 配置清爽的开发环境:配置清爽的开发环境,同样刊载于知乎:配置清爽的开发环境。
- 在 CI 上编译 jupyter notebook 并部署为文档
目录大纲
最新文档
知识宇宙
正在加载知识图谱...