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 推論工程。

相關

  • 專案
  • 專案
  • 專案
  • 專案