zhaochenyang20/Awesome-ML-SYS-Tutorial

My learning notes for ML SYS.

这是什么

Awesome-ML-SYS-Tutorial 是一个持续更新的博客级工程笔记系列——由一个人在约一年的时间里撰写的,内容关于机器学习系统(ML SYS) 和 AI 基础设施(AI Infra):即让大型语言模型(LLM)和多模态模型真正快速、可靠、正确运行的软件。

作者于 2024 年 8 月开始撰写这些笔记,当时正在学习使用 SGLang(一个 LLM 推理引擎)。此后,该系列从几篇文章和约 30–50 个 GitHub 星标增长到 4,500+ 星标。内容主要集中在强化学习(RL)基础设施、在线/离线推理系统和 AI Infra 基础方面。

作者为什么写这个

核心动机是相信研究论文中关于强化学习的结论只有在其运行的基础设施可信时才可信。作者从事 RL 基础设施开发已超过一年,观察到开源和公司内部的 RL 基础设施常常存在严重缺陷。他们质疑基于这些有缺陷系统得出的高层研究结果是否能被认为是正确的——他们希望帮助构建一个正确的基础,从而使从中得出的结论值得信赖。这也是他们参与 SGLang RL 社区的原因(他们全职加入了 RadixArk,继续 RL 基础设施研究,并鼓励读者加入 SGLang 开源社区)。

作者是谁

作者(zhaochenyang20)在顾全全教授、应智博士和郑林敏博士的指导下学习 AI 基础设施。他曾在美国加州大学洛杉矶分校(UCLA)开始攻读博士学位,但因个人原因未能完成;现在他在 RadixArk 全职从事 RL 基础设施工作。他自称因为这个项目成为了“一个小型技术影响者”。

内容包含什么

README 将笔记按主题分成了几个部分。每篇文章通常有英文版、中文版,并且经常有知乎(中国问答平台)帖子链接。许多条目是深入的源代码解析、优化报告或论文分析。以下是 README 涵盖的内容:

1. Omni 模型推理笔记

关于“omni”模型(处理文本、音频、图像等多模态模型)的文章。主题包括:

  • 深入探讨 Qwen3-Omni(一个模型)如何进行推理,涵盖编解码器和“Dual AR”等组件。
  • 当 SGLang 推理引擎遇到 OOM(内存不足)错误时,实际是什么耗尽了内存。
  • 为什么 SGLang Omni 根据解码特性为多阶段生成模型重新设计。
  • 如何通过缓存、流式传输等工程技术,在 SGLang Omni 中将文本转语音(TTS)推理速度提升 1.9–3.4 倍。
  • 围绕共享契约重构六个架构不同的 TTS 后端(净删除约 2,840 行非测试代码)。
  • CPU 资源如何影响语音模型服务——包括一个有趣的案例:CI 中出现 4 倍性能波动,最终证明是主机 CPU 争用而非代码更改所致。
  • SGLang Omni 中批大小选择的权衡。

2. RLHF 系统开发笔记

这是最大的部分,涵盖 RLHF(基于人类反馈的强化学习)——一种使模型与人类偏好对齐的训练技术。它分为几个框架和主题:

  • slime 框架 —— 作者参与的一个特定 RL 框架。文章涵盖 LLM 和视觉语言模型(VLM)的多轮 RL、用于 RL 训练的 INT4 量化、添加 FSDP2 训练后端(对于 Qwen3-Next 和 gpt-oss 等模型架构比 Megatron 更灵活)、用于稳定 MoE RL 的 FP8 精度、投机解码(使用小“草稿”模型加速采样)、源代码解析,以及 GAE(一种 RL 优势估计算法)的分块并行计算,实现约 100–300 倍加速。
  • AReal 框架 —— 源代码解析。
  • 系统设计与优化 —— 深入探讨 DeepSeek 的专家混合架构与 FSDP、权重更新机制(总结半年工作)、FSDP 训练后端原理、Megatron 的基本特性、将 SGLang 集成到 OpenRLHF(被描述为“非常痛苦”,并且有一个未解决的 nccl hang 错误),以及使用 CUDA 的 CuTeDSL 实现的长上下文推理 DuoAttention。
  • verl 框架 —— 源代码分析(初始化、rollout、make experience、AgentLoop)、参数参考、通过 torch 内存快照进行内存泄漏分析、权重更新的延迟优化、多轮训练和工具调用、Search-R1 的集成,以及支撑 verl 的 HybridFlow 论文分析。
  • OpenRLHF 框架 —— PPO 原理与源代码解析(包括另一位作者“Ms. Mengyuan”的图解系列),以及后训练系统计算流程的简要分析。
  • 算法与理论 —— 关于 TEMPO 方法(用于具有长时程代理 RL 的竞争性数学 IMO)、Kimi K1.5 的长上下文 RL、基于规则的奖励、作为基准的 SWE-Bench(如何构建良好的评估任务),以及主流对齐算法和 NeMo-Aligner 综述的笔记。

3. SGLang 学习笔记

专注于 SGLang 推理引擎本身:

  • 扩散学习笔记 —— SGLang 如何支持扩散式 LLM(例如 LLaDA 2.0),以及扩散处理管道的代码解析。
  • 核心架构与优化 —— 从一篇关于 KV 缓存调度的文章(“从 KV 缓存到零开销调度”)开始,但 README 文本在此处被截断,因此本节完整内容未显示。

文章标签与状态

有些条目标记为 [待审核](尚未完全审查),有一条标记为 [未完成]。README 还提到作者是开源的强烈倡导者,明确邀请有兴趣的读者加入 SGLang 社区。


一个注意事项: README 本身在结尾(SGLang 学习笔记部分)句子中间被截断,因此本摘要涵盖了提供的 README 中可见的所有内容。

相关

  • 项目
  • 项目
  • 项目
  • 项目