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 코드베이스가 어떻게 고급 최적화를 구현하는지 깊이 있게 탐구하며, 풀 리퀘스트(PR)를 제출하는 방법까지 배웁니다.
왜 중요한가요 – 추론 비용과 지연 시간은 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(미니-SGLang 구축)와 Part III(고급 추론 기법)는 활발히 개발 중이며, 대부분의 챕터에 "🚧" 표시됨.
- 기여를 환영합니다: 콘텐츠 수정, 번역 추가, 구현 경험 공유, 또는 남은 챕터 완성 도움.
라이선스 – Creative Commons BY‑NC‑SA 4.0 (비영리, 동일 조건 공유).
Zero‑to‑sglang는 SGLang의 개발사인 RadixArk와 Datawhale의 공동 노력으로, LLM 추론 엔지니어링을 더 넓은 대중에게 접근 가능하게 하려는 목표를 가지고 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트