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 研发团队的工程师。
  • 正在寻找反映 Stanford CS336 大纲的中文教学资源的科研人员。

许可证 – 知识共享署名-非商业性使用-相同方式共享 4.0 (CC‑BY‑NC‑SA 4.0)。

贡献 – 我们欢迎通过标准的 fork‑branch‑PR 工作流进行文档改进、错误修复和新增章节。


Diy‑LLM 旨在将“阅读关于 LLM 的内容”转变为“构建你自己的 LLM”,为中文学习者提供完整且可在本地运行的课程。

相关

  • Dispatch
  • 项目
  • 项目
  • 项目
  • Dispatch