datawhalechina/diy-llm

Covers pre-training data, Tokenizer, Transformer, MoE,distributed training, Scaling Laws, inference & alignment .6 progressive code assignments for full-stack LLM learning | 涵盖预训练数据、分词器、Transformer、MoE、分布式训练、缩放定律、推理与对齐,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