/ CS336
[CS336-01] 课程总览与 Tokenization
整理 CS336 第一讲:课程目标、效率视角、BPE tokenizer,以及从字符串到 token 序列的语言模型入口。
这篇是 Stanford CS336 Spring 2025 第 1 讲 Course Materials 的学习笔记。原始材料是 executable lecture,本文只整理主线和工程视角。
1. 这门课到底想解决什么#
CS336 的出发点不是介绍一个现成框架,而是把现代语言模型从底层重新拆开:tokenizer 怎么做、Transformer 怎么实现、训练循环怎么写、GPU 为什么快、数据怎么处理、模型怎么对齐。
这背后的动机很重要:研究者和工程师越来越依赖高层抽象。早期大家会自己实现模型;后来下载 BERT、GPT 这类模型做 fine-tuning;现在很多工作直接调用 GPT、Claude、Gemini 这样的闭源 API。抽象提高了效率,但也让人离底层越来越远。
课程强调的是:如果要做真正的系统优化或基础研究,只知道 prompt 一个模型是不够的。你需要理解模型能力背后的资源、数据、架构和训练机制。
2. 课程主线:accuracy = efficiency x resources#
第一讲反复强调一个观点:规模重要,但不是“只有规模重要”。更准确的说法是,能随规模扩展的算法和系统才重要。
语言模型的能力来自两部分:
- resources:数据、算力、显存、带宽、训练时间;
- efficiency:如何把这些资源更有效地转化成 loss 下降和能力提升。
这也是后续课程的组织方式:
- basics:BPE tokenizer、Transformer、loss、optimizer、training loop;
- systems:GPU、kernel、并行训练、推理;
- scaling laws:小规模实验预测大规模结果;
- data:从原始互联网数据到高质量训练语料;
- alignment:把 base model 变成可用的 assistant。
课程目标不是训练 frontier model,而是在小模型和开放材料上学习可迁移的 mechanics 和 mindset。
3. Tokenization 为什么是第一步#
语言模型不直接处理字符串,而是处理整数 token 序列。因此 tokenizer 是整个 pipeline 的第一层接口:
string -> token ids -> model -> token ids -> string第一讲比较了几种 tokenization 方案。
Character-based tokenization 很直接:一个 Unicode 字符对应一个 id。但 Unicode 字符空间很大,而且很多字符极其稀有,词表利用率很差。
Byte-based tokenization 词表很小,因为 byte 只有 256 种。但代价是序列会变长。Transformer attention 对序列长度很敏感,序列变长会带来显著计算和显存成本。
Word-based tokenization 接近传统 NLP 做法,但会遇到词表巨大、长尾词很多、未登录词需要 UNK token 等问题。
BPE 的折中方案是:从 byte 开始,逐步合并语料中最常见的相邻 token pair。常见片段会被压缩成一个 token,罕见片段仍然可以退回到更细粒度表示。
4. BPE 的工程含义#
BPE 的直觉很简单:让 tokenizer 学会语料里高频的局部字符串模式。比如常见单词、前导空格加单词、代码片段、标点组合,都可能成为 token。
它带来的工程收益是压缩率。token 数越少,模型看到同一段文本需要的 sequence length 越短,训练和推理成本越低。
但 tokenizer 也不是纯好事。它会引入一些不自然的边界:同一个词在句首和句中可能 token 不同,数字可能被切成几段,多语言和代码场景会产生不同偏差。课程把 tokenization 称为 necessary evil:它是当前架构下提高效率的必要折中。
5. 第一讲的 takeaway#
第一讲建立了后续所有内容的底层逻辑:语言模型不是一个黑盒 API,而是一套资源受限下的工程系统。
如果只记住三点:
- 现代 LM 的核心问题是如何在给定 compute、data、memory、bandwidth 下最大化效率;
- tokenizer 是字符串世界和模型 token 世界之间的压缩接口;
- BPE 不是语义理论,而是利用语料频次做压缩的工程启发式。
从这一讲开始,课程进入“理解 via building”的路线:不只是知道模型会生成文本,而是自己实现从 text 到 tokens、从 tokens 到 loss 的最小闭环。
参考#
- Stanford CS336 Spring 2025 Course Materials: lecture_01.py