datawhalechina/diy-llm

🎓 系统性大语言模型构建课程|🛠️ 覆盖预训练数据工程、Tokenizer、Transformer、MoE、GPU 编程 (CUDA/Triton)、分布式训练、Scaling Laws、推理优化及对齐 (SFT/RLHF/GRPO)|🚀 6 个渐进式作业 + 代码驱动,建立 LLM 全栈认知体系

Diy‑LLM – 構建大語言模型的實戰中文課程

內容簡介 – 一個開源的大學程度課程(基於 Stanford CS336),引導學習者完成創建、訓練與評估大語言模型 (LLM) 的每一個階段。該儲存庫包含:

  • 結構化的講義(中英雙語),涵蓋理論、系統級優化、縮放法則 (Scaling Laws)、多模態模型與對齊 (Alignment)。
  • 六個評分程式設計作業,實現核心組件,如 tokenizer、最小化 Transformer、FlashAttention、分散式訓練、數據預處理與基於 RL 的對齊。
  • 可在單 GPU 上運行或擴展到多節點集群的範例程式碼、腳本與工具(基於 PyTorch)。
  • PDF 連結、線上 VitePress 網站以及對中國本土模型(Qwen, DeepSeek 等)的引用。

重要意義 – 雖然許多 LLM 教學止步於「運行預訓練模型」,但 Diy‑LLM 讓你從零開始構建模型,帶給你與大型 AI 實驗室相同的工程經驗。它專為中文母語學生定制,提供在地化解釋、資源友善型提示以及適用於國內開源生態系統的範例。

核心組件

組件 你將學習/獲得的內容
Tokenizer 章節 BPE 算法、Unicode 正規化、手寫 tokenizer 訓練器。
模型架構 RoPE, RMSNorm, SwiGLU, AdamW, pre‑norm/post‑norm, 學習率調度。
系統優化 混合精度、梯度累積、FLOPs/VRAM 估算、FlashAttention, Triton kernels。
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 清洗、課程學習 (Curriculum Learning)。
評估 MMLU, HumanEval, HELM, CEval, AlpacaEval, 透過 lm‑evaluation‑harnessevalscope 進行 Arena 排名。
對齊 有監督微調 (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 大綱的中文教學資源的科研人員。

授權 – 姓名標示-非商業性使用-相同方式分享 4.0 (CC‑BY‑NC‑SA 4.0)。

貢獻 – 我們歡迎透過標準的 fork‑branch‑PR 工作流進行文件改進、錯誤修復與新增章節。


Diy‑LLM 旨在將「閱讀關於 LLM 的內容」轉變為「構建你自己的 LLM」,為中文學習者提供完整且可在本地運行的課程。

相關

  • Dispatch
  • 專案
  • 專案
  • 專案
  • Dispatch