datawhalechina/zero-to-sglang

Official SGLang x Datawhale course on LLM inference: understand inference, build a mini-sglang from scratch, then read the real SGLang source and land your first PR. Available in English and Chinese.

zero‑to‑sglang

是什么 – 一个开源的双语(中文 & 英文)教程,带你逐步学习大语言模型(LLM)推理的基础知识,然后引导你从零开始实现一个极简版的 SGLang 推理引擎(称为 mini‑sglang)。当你拥有一个可运行的迷你引擎后,材料会展示真实 SGLang 代码库如何实现高级优化,并教你如何提交一个拉取请求(pull-request)。

为何重要 – 推理成本和延迟是部署 LLM 的最大瓶颈。现代推理引擎(如 SGLang)可以每 GPU 处理更多请求,但很少有动手资源能解释它们是如何工作的。本项目填补了这一空白,通过:

  • 解释核心概念,如 KV 缓存、预填充 vs. 解码、计算密集型 vs. 内存密集型性能。
  • 提供从代码出发的逐步构建,实现一个功能完整的迷你推理引擎。
  • 搭建通往生产级 SGLang 代码的桥梁,涵盖连续批处理、分页 KV 缓存、RadixAttention、量化、分布式注意力等主题。
  • 引导读者完成 SGLang 的性能分析、追踪以及完整的 PR 工作流。

适合谁使用

  • 具备基础 Python 和 PyTorch 知识的开发者或研究人员,希望从底层理解 LLM 服务。
  • 任何对构建或优化推理后端感兴趣的人,即使没有 GPU(前期部分可在 CPU 上运行)。
  • 希望帮助改进 SGLang 或其周边生态系统的贡献者。

前置条件

  • Python 编程技能和对 PyTorch 的熟悉。
  • 基础线性代数 / 概率背景,以理解注意力机制的推导过程。
  • (可选)CUDA 基础知识 – Part 0‑I 不需要,后续 GPU 重点章节有帮助。

如何开始

# 克隆仓库
git clone https://github.com/datawhalechina/zero-to-sglang.git
cd zero-to-sglang
# 按照“快速开始”部分操作 – 安装你正在阅读章节所需的依赖项。
# 推荐学习路径:
# 1️⃣ 阅读 Part I(仅概念)– 无需 GPU。
# 2️⃣ 跟随 Part II 实现 mini‑sglang(大部分代码在 CPU 上运行,GPU 可选用于性能测试)。
# 3️⃣ 深入 Part III,对比你的实现与真实 SGLang 源码。
# 4️⃣ 可选地完成 Part IV,学习性能分析并提交 PR。

仓库结构

  • course-material/ – 教科书,分为中文(ch/)和英文(eng/)目录,进一步划分为 Part 0‑IV。
  • community/ – 社区贡献空间,如实现笔记、错误报告、翻译等。
  • docs/.vitepress/ – 用于渲染教程的在线 VitePress 站点配置。
  • 标准项目文件(README.md.gitignore)。

当前状态

  • Part 0(设置与伦理)已完成。
  • Part I 大部分完成,少数章节仍在更新中。
  • Part II(构建 mini‑sglang)和 Part III(高级推理技术)正在积极开发中,大多数章节标记为“🚧”。
  • 仓库欢迎贡献:修复内容、添加翻译、分享实现经验,或帮助完成剩余章节。

许可证 – Creative Commons BY‑NC‑SA 4.0(非商业、相同方式共享)。


Zero‑to‑sglang 是 Datawhale 与 SGLang 背后的公司 RadixArk 共同协作的成果,旨在让更广泛的受众能够接触 LLM 推理工程。

相关

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