한눈에 보기
저장소 datawhalechina/diy-llm
개발 datawhalechina (조직)
GitHub 스타 1,790 (오늘 +66)
GitHub 트렌딩 일간 Jupyter 9위
포크 186
주 언어 Jupyter Notebook
공개일 2025-11-24
최신 릴리스 V0.2 (2026-08-17)

datawhalechina/diy-llm은 대규모 언어모델(LLM)을 직접 만들어 보며 배우려는 학습자를 위한 오픈소스 강의 저장소다. 중국 오픈소스 학습 커뮤니티 데이터웨일(Datawhale) 소속 기여자들이 스탠퍼드대 CS336 강의를 바탕으로 만들었고, 최근 GitHub 트렌딩 Jupyter 부문 일간 9위에 오르며 스타가 빠르게 늘고 있다. 단순 번역이 아니라 중국어권 학습 환경에 맞춰 내용을 재구성한 것이 특징이다.

무엇을 하나: LLM 전주기를 다루는 강의와 과제

diy-llm은 LLM 개발에 필요한 지식을 16개 장으로 나눠 설명한다. 주요 내용은 다음과 같다.

  • 분词기(토크나이저): BPE 알고리즘, 유니코드 정규화, 직접 구현
  • 모델 구조: RoPE, RMSNorm, SwiGLU, AdamW, 혼합전문가(MoE)
  • 시스템: GPU 최적화, FlashAttention, CUDA·Triton, 데이터·모델·파이프라인 병렬과 ZeRO·FSDP
  • 스케일링 법칙, 추론 최적화(KV 캐시, 투기적 디코딩, 양자화), 데이터 엔지니어링, 평가
  • 정렬: SFT, DPO, RLHF, 검증 가능한 보상 기반 강화학습(GRPO)
  • 멀티모달 모델(CLIP부터 Qwen-VL까지)

이론을 읽는 데서 그치지 않도록 6개의 코딩 과제가 붙어 있다. 저장소는 코드뿐 아니라 각 줄을 쓸 때의 사고 과정도 함께 설명하는 것을 목표로 한다고 밝혔다. 큐웬(Qwen), 딥시크(DeepSeek) 같은 중국산 모델 사례를 많이 다룬다는 점도 차별점으로 내세운다.

작동 방식·구조

저장소는 docs/와 coursework/로 나뉜다. docs/zh/에 장별 중국어 문서가 있고 docs/en/에는 영어판이 일부 마련돼 있으며, 온라인 문서 사이트와 PDF 강의 노트도 제공된다. 과제는 난이도가 단계적으로 올라가도록 설계됐다.

  1. 과제1: 토크나이저·모델 구조·옵티마이저를 구현해 소형 언어모델 학습
  2. 과제2: 성능 분석, Triton으로 FlashAttention-2 구현, 분산 학습 코드 작성
  3. 과제3: 스케일링 법칙을 피팅해 모델 확장 효과 예측
  4. 과제4: Common Crawl 원본 데이터를 필터링·중복 제거해 사전학습 데이터셋으로 변환
  5. 과제5: SFT와 GRPO로 수학 문제를 푸는 모델 학습
  6. 과제6: lm-evaluation-harness와 evalscope로 언어 이해·상식·코드·수학 평가

써보면

설치는 저장소를 내려받은 뒤 과제별 요구 사항에 맞춰 의존성을 설치하는 방식이다. 별도 통합 패키지는 없다.

git clone https://github.com/datawhalechina/diy-llm.git
cd diy-llm
# 과제 폴더(coursework/)의 안내에 따라 의존성 설치

학습 경로는 docs/zh/ 문서를 순서대로 읽고, coursework/의 6개 과제를 푼 뒤, 구현 코드를 읽으며 각 구성 요소의 설계를 이해하는 순서다. README는 이론 학습과 일부 CPU 디버깅은 GPU 없이 가능하지만, 완전한 학습에는 GPU가 필요하다며 클라우드 서비스를 권한다. 애플 맥북용 MPS 지원은 외부 기여자가 과제1 train.py에 추가했다.

최근 업데이트

최신 릴리스 V0.2(2026년 8월 17일)는 CS336 2026년 봄 학기 내용을 반영했다. 릴리스 노트에 따르면 변경 내용은 다음과 같다.

  • 멀티모달, 모델 아키텍처, MoE, 에이전트 등 최신 주제 추가
  • 16장 확장 챕터 보강(LLM 추론이란 무엇인가, 르쿤의 LLM 미래론 등)

누구에게 유용한가

파이토치를 다룰 줄 알고 LLM 내부를 직접 구현해 보고 싶은 학습자나 연구자에게 맞다. 사전학습 데이터 처리, FlashAttention, 분산 학습, GRPO 정렬까지 한 흐름으로 볼 수 있어 LLM 인프라·학습 팀에 들어가려는 개발자의 실습 교재로 쓸 수 있다. 스탠퍼드 원강의를 따라가다 막히는 부분의 보충 자료로도 활용할 만하다. 다만 본문은 중국어가 중심이다.

의의와 한계

문서와 PDF는 CC BY-NC-SA 4.0(저작자 표시·비영리·동일 조건 변경 허락) 라이선스로 공개돼 있어 상업적 활용에는 제약이 있다. 저장소는 2025년 11월에 만들어졌고 릴리스는 V0.2까지 나온 초기 단계다. 1장(도구 사용)은 아직 보완 중으로 표시돼 있고 16장은 갱신이 진행 중이며, 영어판도 일부만 번역됐다. 과제 완주에는 GPU 자원이 필요하다. 국내 학습자는 한국어 자료가 없다는 점을 감안해야 하지만, LLM 전 과정을 한 번에 훑는 로드맵으로는 참고할 가치가 있다.