diy-llm:Datawhale 把斯坦福 CS336 搬成了中文炼丹工坊
diy-llm:Datawhale 把斯坦福 CS336 搬成了中文炼丹工坊
API 调得再多,也不如亲手训一次模型来得踏实。这门课就是干这个的。
用 API 拼应用的人越来越多,能说清一个 LLM 从原始网页数据到能对话之间发生了什么的人,依然稀缺。Datawhale 今年把斯坦福 CS336《Language Modeling from Scratch》做了中文共建,项目叫 diy-llm,官方给自己的定位是一句挺形象的话:一座为中文学习者打造的「LLM 炼丹工坊」。
它现在 1.6k star,16 章讲义全部主章完成,6 个作业全部开放。这篇文章把它拆开看看:改了原版的什么、作业怎么排、什么人值得花时间。
本文提纲
- 来路:CS336 是一门什么课
- 不只是汉化:五处本土化改造
- 16 章地图:从分词器到多模态
- 六个作业才是这门课的心脏
- 谁适合学,要准备什么
- 放进坐标系:和 nanoGPT、MiniMind 比一比
- 怎么开始
来路:CS336 是一门什么课
斯坦福 CS336 由 Percy Liang 和 Tatsunori Hashimoto 主讲,课名就叫 Language Modeling from Scratch,理念在名字里:不从库用起,从零把一个语言模型造出来。2025 年春季第一次开课时,作业代码在 GitHub 上引发过一波复现热潮,2026 春季版继续迭代。
它稀缺的地方在于完整的纵深:数据、分词、架构、系统、Scaling Laws、对齐、评估全链路,而且每个环节都落在作业里,是写代码不是看视频。市面上讲 LLM 的课很多,讲「怎么用」的多,讲「怎么造」的少,讲完还能让你亲手造一遍的,掰着指头数。
问题只有一个:原版是英文授课,作业文档全英文,对不少中文学习者是道额外的墙。diy-llm 拆的就是这道墙。
不只是汉化:五处本土化改造
Datawhale 这套共建版由三位负责人扛主线:徐虎(上海交通大学)、李盛康(西安邮电大学)、黎又榛,三人分工覆盖全部 16 章和 6 个作业。如果只是把讲义翻译过来,我不会专门写这篇文章。他们在原版骨架上动了几处外科手术。
前置知识单独补齐。线性代数、概率统计、PyTorch 基础这些原版默认你会的,中文版给了平滑的过渡,第 3 章专门讲 PyTorch 与资源核算——训练一个模型要多少 FLOPs、多少显存,先学会算账再开炼。
国产模型进了案例库。课程里多聊 Qwen、DeepSeek 这些国内模型的设计取舍,MoE 一章尤其明显,案例贴着你真正在用的模型讲。
MacBook 用户被照顾到了。作业 1 的 train.py 有社区贡献的 MPS 支持,没有 NVIDIA 显卡的 Mac 用户也能跑通第一个极简语言模型的训练,这一条对劝退率的影响是实打实的。
中文思维重构。不是逐句翻译,是按中文学习者的习惯重排知识体系,该补的数学和深度学习前置都铺了路。
版权也干净。全站内容 CC BY-NC-SA 4.0,非商业使用可以自由传播修改。
16 章地图:从分词器到多模态
16 章可以分成四段来看。
地基段(1-4 章):W&B 实验追踪、BPE 分词器实现、PyTorch 与算力显存核算、Transformer 架构与训练细节。这四章对应作业 1,学完你有一个自己写的、能训的迷你 GPT。
系统段(5-8 章):MoE 原理与路由、GPU 优化、CUDA 与 Triton 高性能编程、分布式训练。这段是原版 CS336 最硬核的部分,对应作业 2——用 Triton 手写 FlashAttention-2、搭分布式训练。
规模与数据段(9-12 章):Scaling Laws 与实验拟合、推理优化、数据工程(Common Crawl 原始数据到预训练集)、评估与基准测试。
对齐与前沿段(13-16 章):预训练、SFT 到 RL 的完整训练流程,可验证奖励的强化学习(RLVR),多模态(从 CLIP/SigLIP 到 LLaVA、Qwen-VL、Chameleon),最后一章是扩展内容,包含对 LeCun 那篇「LLM 的未来」的整理,还在更新中。
主线章节里只有第 1 章(工具使用)状态是待完善,第 16 章更新中,其余全部完成。最新版本 V0.2 是今年 8 月 17 日发的。
六个作业才是这门课的心脏
课的价值七成在作业里。六个作业是渐进设计,后一个踩在前一个的产出上:
graph LR
A["A1: Build a tiny LM"] --> B["A2: Triton and distributed"]
B --> C["A3: Scaling laws"]
C --> D["A4: Data pipeline"]
D --> E["A5: SFT and GRPO"]
E --> F["A6: Evaluation"]
style A fill:#FF6B6B,color:#000000
style B fill:#4ECDC4,color:#000000
style C fill:#45B7D1,color:#000000
style D fill:#96CEB4,color:#000000
style E fill:#FFEAA7,color:#000000
style F fill:#DDA0DD,color:#000000
linkStyle default stroke:#764ba2作业 1「手搓大模型」:实现 tokenizer、模型结构、optimizer,然后训练一个极简语言模型。名字朴素,工作量不含糊,BPE 和反向传播都要自己写。
作业 2「系统优化」:性能分析与基准测试,用 Triton 实现 FlashAttention-2,再构建分布式训练代码。做完这个,你会对「为什么训练慢」有体检报告级别的理解。
作业 3「扩展定律」:理解 Transformer 各组件的功能贡献,拟合 scaling law,用小模型的实验数据预测大模型的扩展效果——这是以前只有大厂研究员才碰的活。
作业 4「数据处理」:把 Common Crawl 的原始网页变成能用于预训练的数据集,过滤加去重。脏活,但预训练质量一半在这里。
作业 5「模型对齐」:SFT 加强化学习(GRPO)训练模型解决数学问题,对应第 13、14 章。
作业 6「模型评估」:用 lm-evaluation-harness 和 evalscope 做语言理解、常识推理、代码、数学的多维评测。这门课在原版五作业之外补的第六个,评估恰好是国内教程最缺的一环。
六个做完,简历上那句「了解大模型原理」就可以换成「从数据到对齐完整实现过一遍 LLM 训练流程」,面试官知道这两句话的分量差多少。
谁适合学,要准备什么
官方列的前置要求:熟练 Python 和软件工程能力、熟悉 PyTorch、数学有线性代数概率统计微积分的底子、机器学习基础扎实。CUDA 是可选项,不懂有入门教程。
GPU 的答案在 FAQ 里写得很实际:理论部分和部分作业能在 CPU 上调试,Mac 走 MPS,完整训练建议租云 GPU。这门课没有把人挡在「没卡」上,但要说完全不花钱学完全部作业,也不现实——作业 2 之后的训练量,租卡是合理预期。
适合的人三类:想从调 API 往模型层走的工程师、读研前想把工程底子打厚的学生、做 AI 基础设施想补全模型视角的系统工程师。不太适合的也直说:只想快速拿结果做应用的人,这门课的投入产出比不如直接用框架。
放进坐标系:和 nanoGPT、MiniMind 比一比
开源社区学 LLM 的路子不缺,diy-llm 的位置得放进坐标系里看。
nanoGPT(64k star)是 Karpathy 的极简实现,代码量最小、读起来最痛快,但它是一份代码不是一门课,没有讲义、没有梯度上升的作业设计。MiniMind(64k star)是中文社区的小模型全流程项目,2 小时训一个 64M 模型,胜在跑通快、国产生态贴合,但同样偏代码、轻系统知识。mlabonne 的 llm-course(84.6k star)是知识点路线图,覆盖广,动手环节弱。Datawhale 自家的 self-llm(32.6k star)是「食用指南」,教你怎么微调部署现成的开源模型,站在 diy-llm 的下游。
diy-llm 补的位置是「系统课程 + 作业驱动」:有 CS336 级别的讲义纵深,有六个从数据到评估的强制动手环节,还有中文讲解。想读代码看 nanoGPT,想快速跑通看 MiniMind,想系统学一遍「为什么」,看 diy-llm。四者不冲突,我自己的看法是先拿 MiniMind 跑通建立体感,再用 diy-llm 补纵深。
怎么开始
学习路径官方给了三步:按顺序读 docs/ 下的讲义,做 coursework/ 里的六个作业,然后回头读代码理解每个组件的设计取舍。仓库直接 clone:
git clone https://github.com/datawhalechina/diy-llm.git
cd diy-llm在线阅读地址在参考资料里,不用 clone 也能先翻讲义。作业文档独立托管在 Datawhale 的 coursework 站点,每个作业有明确的提交物。项目有读者交流群,三个负责人的微信都在官网上,卡住了能找到活人。
一句话收尾:这门课教的不是某个框架的用法,是大模型这栋楼的承重墙在哪。框架每年换一轮,承重墙的位置十年没动过。
参考文档与链接
以下 GitHub 数据截至 2026-10-23。
- datawhalechina/diy-llm — 1.6k star,本文主角,CS336 中文共建版仓库
- diy-llm 在线阅读 — 16 章讲义全文,免 clone 阅读
- Stanford CS336 课程主页 — 原版课程(Spring 2026)
- stanford-cs336/lectures — 4k star,原版课程资料
- 作业 1:手搓大模型 — tokenizer、架构、optimizer 与极简训练
- 作业 2:系统优化 — Triton 实现 FlashAttention-2 与分布式训练
- 作业 3:扩展定律 — 拟合 scaling law 预测扩展效果
- 作业 4:数据处理 — Common Crawl 到预训练数据集
- 作业 5:模型对齐 — SFT 与 GRPO 数学对齐
- 作业 6:模型评估 — lm-evaluation-harness 与 evalscope 多维评测
- diy-llm Releases — V0.1(2026-06-10)、V0.2(2026-08-17)版本记录
- karpathy/nanoGPT — 64k star,极简训练实现,代码阅读首选
- jingyaogong/minimind — 64.3k star,2 小时训 64M 小模型的中文全流程
- mlabonne/llm-course — 84.6k star,知识点路线图式课程
- datawhalechina/self-llm — 32.6k star,开源大模型微调部署食用指南
- Datawhale 组织主页 — 更多开源学习项目
你打算从哪个作业开始搓?卡在 BPE 还是分布式?评论区聊聊。觉得有用点个赞,让更多想造模型的人看到。
作者: itech001
来源: 公众号:AI人工智能时代(the-ai-era)
网站: https://www.theaiera.top/
关注每日最新AI新闻和技术博客,主页有更多的文章的AI 技术参考:https://www.theaiera.top
本文首发于 AI人工智能时代,转载请注明出处。