datawhalechina/diy-llm
🎓 系统性大语言模型构建课程|🛠️ 覆盖预训练数据工程、Tokenizer、Transformer、MoE、GPU 编程 (CUDA/Triton)、分布式训练、Scaling Laws、推理优化及对齐 (SFT/RLHF/GRPO)|🚀 6 个渐进式作业 + 代码驱动,建立 LLM 全栈认知体系
Diy‑LLM – 대규모 언어 모델 구축을 위한 실습 중심 중국어 코스
개요 – 오픈 소스 대학 수준의 커리큘럼(Stanford CS336 기반)으로, 학습자가 대규모 언어 모델(LLM)을 생성, 학습 및 평가하는 모든 단계를 안내합니다. 저장소 구성 요소:
- 이론, 시스템 수준 최적화, 스케일링 법칙, 멀티모달 모델 및 정렬(Alignment)을 다루는 구조화된 강의 노트 (중국어 + 영어).
- 토크나이저, 최소 Transformer, FlashAttention, 분산 학습, 데이터 전처리 및 RL 기반 정렬과 같은 핵심 구성 요소를 구현하는 6개의 채점 대상 프로그래밍 과제.
- 단일 GPU에서 실행하거나 멀티 노드 클러스터로 확장할 수 있는 샘플 코드, 스크립트 및 유틸리티 (PyTorch 기반).
- PDF 링크, 온라인 VitePress 사이트 및 중국 국내 모델 (Qwen, DeepSeek 등) 참조.
중요성 – 많은 LLM 튜토리얼이 "사전 학습된 모델 실행"에서 멈추는 반면, Diy‑LLM은 모델을 밑바닥부터 구축할 수 있게 하여 대규모 AI 연구소와 동일한 엔지니어링 경험을 제공합니다. 중국어 사용자에게 맞춤화되어 현지화된 설명, 리소스 친화적인 팁 및 국내 오픈 소스 생태계에서 작동하는 예제를 제공합니다.
주요 구성 요소
| 구성 요소 | 학습 내용 / 제공 사항 |
|---|---|
| Tokenizer 장 | BPE 알고리즘, Unicode 정규화, 수동 작성 토크나이저 트레이너. |
| 모델 아키텍처 | RoPE, RMSNorm, SwiGLU, AdamW, pre‑norm/post‑norm, 학습률 스케줄. |
| 시스템 최적화 | 혼합 정밀도, 그래디언트 누적, FLOPs/VRAM 추정, FlashAttention, Triton 커널. |
| GPU 프로그래밍 | CUDA 기초, Tensor Cores, 공유 메모리, Triton 입문. |
| 분산 학습 | 데이터 병렬성, 모델 병렬성, 파이프라인 병렬성, ZeRO‑1/2/3, FSDP, All‑Reduce. |
| 스케일링 법칙 | Chinchilla law, 계산 최적화 모델 크기 예측 방법. |
| 추론 | KV‑cache, speculative decoding, 양자화 (GPTQ/AWQ), PagedAttention, continuous batching. |
| 데이터 엔지니어링 | 필터링, MinHash 중복 제거, PII 스크러빙, 커리큘럼 학습. |
| 평가 | MMLU, HumanEval, HELM, CEval, AlpacaEval, lm‑evaluation‑harness 및 evalscope를 통한 Arena 랭킹. |
| 정렬 (Alignment) | 지도 미세 조정 (SFT), GRPO, 규칙 기반 검증기, RL 기반 보상 모델. |
| 멀티모달 | CLIP, LLaVA, Qwen‑VL, Chameleon 파이프라인. |
시작하기
# 저장소 클론
git clone https://github.com/datawhalechina/diy-llm.git
cd diy-llm
# 학습 경로 따르기
# 1️⃣ docs/zh/ (또는 docs/en/)의 문서 읽기
# 2️⃣ assignment1-basics와 같은 과제를 선택하고 학습 스크립트 실행
# (과제의 README에 나열된 필요한 Python 패키지 설치)
# 3️⃣ 장을 진행하며 분산 학습 및 RL‑HF까지 확장
README에 따르면 이론 학습 및 소규모 디버깅에는 CPU만으로도 가능하지만, 전체 모델 학습에는 GPU(클라우드 인스턴스 권장)가 필요합니다.
대상자
- LLM에 대한 깊은 구현 중심의 이해를 원하는 학부생 또는 대학원생.
- 엔드 투 엔드 경험(데이터 준비 → 학습 → 추론 → 정렬)이 필요한 AI R&D 팀 합류 준비 중인 엔지니어.
- Stanford의 CS336 강의 계획을 반영한 중국어 교육 리소스를 찾는 연구자.
라이선스 – Creative Commons Attribution‑NonCommercial‑ShareAlike 4.0 (CC‑BY‑NC‑SA 4.0).
기여 – 표준 fork‑branch‑PR 워크플로우를 통한 문서 개선, 버그 수정 및 새로운 장 추가를 환영합니다.
Diy‑LLM은 "LLM에 대해 읽는 것"을 "자신만의 LLM을 구축하는 것"으로 바꾸는 것을 목표로 하며, 중국어 사용자에게 로컬에서 실행 가능한 완전한 커리큘럼을 제공합니다.
관련
- Dispatch
- 프로젝트
- 프로젝트
- 프로젝트
- Dispatch