zhaochenyang20/Awesome-ML-SYS-Tutorial
zhaochenyang20/Awesome-ML-SYS-Tutorial has 7,662 GitHub stars and 531 forks. GitHot measured +4 stars in 24 hours and +24 in 7 days. Last checked 2026-11-11 01:10 UTC. Last push 2026-10-21.
My learning notes for ML SYS.
实测星标增长
- 24小时
- +4
- 7天
- +24
- 15天
- 更新延迟
- 1个月
- 更新延迟
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README-cn.md
原文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!
Omni Model 推理札记
- Codec、RVQ、Dual AR、Thinker-Talker——深入 Qwen3-Omni 与 S2 Pro 的 Omni 模型推理流程:分析 Qwen3-Omni 与 S2 Pro 的 Omni 模型推理流程,同样刊载于知乎和英文版本。
- 当 SGLang OOM 的时候,究竟在 OOM 什么?:分析 SGLang Omni 在 OOM 的时候,究竟在 OOM 什么,同样刊载于知乎和英文版本。
- SGLang Omni:从 decode 计算特性出发,重新设计多 stage 生成模型的推理框架:为什么 multi-stage decoding 才是划分模型的正确视角、multi-stage decoding 模型有什么计算共性,以及 SGLang Omni 的调度解耦 / 通信分层 / 显存隔离三层设计。同样刊载于英文版本和知乎:SGLang Omni:从 decode 计算特性出发,重新设计多 stage 生成模型的推理框架。
- 深入浅出 SGLang Omni 对 TTS 模型的优化思路:我们如何把 Higgs 与 MOSS-TTS-Local 的 TTS serving 在 SGLang-Omni 上做到 1.9–3.4× 加速——encoder LRU caching、delay-pattern / backbone+inner 的 codec 调度、CUDA Graph + async CPU–GPU decode,以及 vocoder batching / windowed streaming。同样刊载英文版本和知乎:深入浅出 SGLang Omni 对 TTS 模型的优化思路。
- 生命周期与框架抽象:SGLang Omni TTS Serving 重构:我们如何为六个架构各异的 TTS 后端抽象出 engine 启动、状态传输、缓存、vocoder 生命周期和调度等公共机制;重构净删除 2840 行 non-test 实现代码,并降低了新模型接入生产级 Serving 的成本。同样刊载于英文版本。
- 重新审视 CPU 资源作为语音模型 Serving 过程的一等公民:CI 上跨轮 4 倍的吞吐波动最终查到主机 CPU 争用而非任何代码改动;用 PSI 与每请求 CPU 毫秒数区分 SMT sibling 导致的 cycle 膨胀与排队等核,并做了一个拓扑感知的 CPU allocator——重争用下能保住 92% 到 100% 的干净吞吐,但搬到没有争用的生产机器上收益几乎归零。同样刊载于英文版本。
- 从一次 Batch Size 争论,思考 SGLang Omni 的性能验证与调度取舍:通过 MiniCPM-o Code2Wav 的收集策略、batch 上限和提前返回实验,分析局部等待与端到端性能的取舍,以及如何用 CPU 资源控制、重复实验和质量验证决定默认配置。同样刊载于英文版本和知乎。
RLHF System 开发笔记
slime 框架
- 从第一性原理出发,统一 VLM 与 LLM 的 Multi-Turn Agentic RL:介绍 slime 与 Miles 框架对 VLM 与 LLM 的 Multi-Turn Agentic RL 的实现,同样刊载英文版本和Zhihu。
- 致敬 Kimi K2:基于 slime 的全流程 INT4 量化感知训练方案:介绍 slime 框架对 INT4 量化感知训练的实现,同样刊载英文版本和Zhihu。
- 【Not finished】让速度与精度同在:全面解决 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 源码赏析,同样刊载于知乎和英文版本。
系统设计与优化
- 深入浅出 DeepSeek MoE,EP 与 FSDP 经典二次开发:深入浅出 DeepSeek MoE,EP 与 FSDP 经典二次开发,同样刊载于知乎和英文版本。考虑到知乎的公式渲染更好,欢迎大家优先阅读知乎版本。
- 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] Light-DuoAttention:用 CuTeDSL 实现高效长上下文推理:介绍 DuoAttention,一种为了长上下文推理设计的解决方案,并使用 CuteDSL 实现 DuoAttention 并且在 SGLang 上支持并验证,同样刊载于 知乎。
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 渲染的巨烂,甚至看知乎好了。
算法与理论
- dots3-note Preview:为了挑战 IMO,LLM 选手做了什么:TEMPO 的 macro-step 与生成式 critic 如何重塑超长程 agentic RL,以及 40 到 50 小时、数千轮交互的 agent 给 inference 带来的新问题——512K 窗口下 MLA 与 hybrid SWA 的 KV 显存账、上下文裁剪导致的 cache 失效与周期性 re-prefill,以及 DSA indexer 在重算中的开销占比。同样刊载于英文版本和知乎。
- 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 处理的全过程,同样刊载于知乎和英文版本。
核心架构与优化
- 从 KV Cache 到 Zero Overhead Scheduling,一文读懂 SGLang 的调度巧思:同样刊载于知乎和英文版本。
- SGLang Code Walk Through:一个请求被 SGLang Engine 处理的全过程,还有一些 part 没有完成,但是大多地方已经 okay,也让很多 SGLang begginer 就此开始。这里还有中文版本。
- [Pending Review] Walk Through SGLang Scheduler:SGLang 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
使用与实践
- [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
- 再探 CUDA Graph:核心机制、多图复用以及 Dual AR 模型的统一覆盖优化:同样刊载于知乎和英文版。
- 基于 torch-memory-savor 浅析 CUDA Graph:同样刊载于知乎:基于 torch-memory-savor 浅析 CUDA Graph和英文版。
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 并部署为文档
探索相关项目
n8n-io/n8n
具备原生 AI 能力的 Fair-code 工作流自动化平台。可将可视化构建与自定义代码相结合,支持自行部署或使用云服务,并提供 400 多种集成。
210,224 星标langgenius/dify
在同一个协作工作区中构建智能体工作流和 RAG 流水线,并提供丰富的 AI 模型与工具支持。可部署到云端、VPC 或自行部署,团队无需重建技术栈即可从原型进入生产。
160,951 星标microsoft/PowerToys
Microsoft PowerToys 是一组提升 Windows 生产力和自定义能力的实用工具
140,833 星标stablyai/orca
Orca 是使用智能体集群开展工作的地方(例如 Grok Bot、Claude Code)。可使用你自己的订阅运行任意编程智能体。支持桌面端、移动端和远程运行时。
122,480 星标