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‑harnessevalscope를 통한 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