Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Project Guide: Stanford CS336

课程主页:

  • https://cs336.stanford.edu/spring2025/

这页为什么重要

CS336 不是单个仓库,而是一条真正系统化的 Language Modeling from Scratch 路线。

如果 MiniMind 给你的是“我第一次把小模型跑起来了”的直觉,那么 CS336 给你的应该是:

  • 知识结构
  • 实现边界
  • 工程脉络

也就是把“会跑一个项目”升级成“知道整个领域是怎么接起来的”。


你应该从它学到什么

不是“我看过一门课”。

你真正应该学到的是:

  1. 从 tokenizer 到 transformer 到训练系统的完整链路
  2. 哪些部分属于概念层,哪些部分属于实现层
  3. 为什么语言模型训练不只是模型代码,还包括数据、优化、系统和评估
  4. 学完整门课后,你该自己重写哪几个模块

最小知识链路

第一遍你至少要能自己复述这条链路:

raw text
-> tokenization
-> dataset / batching
-> transformer forward
-> loss
-> optimization
-> evaluation
-> systems / scaling considerations

如果你学完还只能说“这门课讲 transformer”,那说明你并没有真正建立体系。


为什么它适合放在 MiniMind 后面

因为这门课最适合在你已经有一点模型直觉之后再进入。

你先通过 MiniMind 知道:

  • 一个小模型如何被组织起来
  • 训练 loop 长什么样
  • token 到 logits 的链路是什么

然后再来 CS336,你才会知道课程里每一块知识落在系统的哪一层。

否则它很容易变成“收藏了一堆讲义和作业,但脑子里没有图”。


第一遍最该观察的四件事

1. 课程在分哪些层

第一遍不要急着细读每个 lecture。

先看课程结构到底把内容拆成了哪些大块,例如:

  • tokenization
  • model architecture
  • optimization / training
  • evaluation
  • systems / scaling

2. 每个模块是在回答什么问题

比如:

  • tokenizer 回答“文本怎么变成模型能吃的形式”
  • transformer 回答“模型如何建模上下文”
  • optimization 回答“参数如何被更新”
  • systems 回答“训练如何在现实资源上跑起来”

3. 哪些部分值得你自己重写

不是所有内容都要第一轮实现。

第一遍最值得重写的通常是:

  • tokenizer 的一个最小版本
  • transformer block 的最小实现
  • 一个最小训练循环

4. 课程和项目的关系

你要明确:

  • MiniMind 更像一个落地实现入口
  • CS336 更像全景地图

这门课的价值不是替代项目,而是给项目提供结构化坐标。


第一周不要做什么

做课程类内容最常见的错误有这些:

  • 一上来就想“学完整门课”
  • 每看到术语就开一堆额外资料
  • 不做知识图,只做零散摘录
  • 先做最难的作业或系统部分

第一周最重要的是先把地图搭起来。


第一周真正该做什么

Day 1

  • 浏览课程主页
  • 写出课程的 4 到 6 个核心模块

Day 2

  • 选 tokenizer / transformer / training 这三块
  • 每块各写一句“它在回答什么问题”

Day 3

  • 把课程结构和 MiniMind 对照
  • 标出哪些知识你已经碰过,哪些还没有

Day 4

  • 选一个最小模块准备自己实现
  • 推荐优先 tokenizer 或一个最小 transformer block

Day 5

  • 看实现相关材料
  • 记录输入、输出、关键中间量

Day 6

  • 写一张自己的知识图
  • 把整门课压缩成一页结构图

Day 7

  • 用自己的话复盘:
    • 这门课到底比单个项目多给了你什么
    • 你现在最该先补的 2 到 3 个模块是什么
    • 哪一个模块你准备自己动手重写

你最该产出的东西

1. 一张课程知识图

最少要包括:

  • tokenizer
  • model
  • training
  • evaluation
  • systems

2. 一个“先学什么”的决策表

你要写清:

  • 哪些内容你已经有直觉
  • 哪些内容你还完全空白
  • 哪些最值得现在补

3. 一个最小实现目标

例如:

  • 自己写一个最小 tokenizer
  • 自己写一个 transformer block
  • 自己写一个最小训练 loop

常见误区

误区 1:把课程当资源收藏页

不压成自己的结构图,学完很容易散。

误区 2:只读不做

这门课真正有价值的部分,是它能指导你自己实现。

误区 3:顺着网页一直看,但没有主线

第一轮先抓主干,不要先钻局部细节。


最小完成标准

你至少要做到下面三条中的两条:

  • 能画出这门课的核心知识图
  • 能说出自己最该先补的 2 到 3 个模块
  • 能把其中一个模块变成自己的最小实现任务

做完它以后该去哪

如果你完成得比较扎实,下一站建议去:

因为那时你已经有足够稳定的训练基础,能真正理解“预训练之后,为什么还要 alignment”。