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コードベースがどのように高度な最適化を実現しているかを深く掘り下げ、プルリクエストを提出する方法も学べます。
なぜ重要か – 推論コストとレイテンシは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 は、SGLangの開発元であるRadixArkとDatawhaleによる共同プロジェクトで、LLM推論エンジニアリングをより広い層にアクセス可能にすることが目的です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト