网上讲大模型原理的文章,大多停在 Transformer 和注意力机制。但真正决定一个模型好不好的,是另外三件事:数据怎么洗、后训练怎么对齐、评测怎么做——这三块通常一句话带过。
我把 Yann Dubois 在斯坦福 CS229 的客座课《Building Large Language Models》(2024 夏,1 小时 44 分)整理成了一份带时间码的笔记,并做成了一个 agent 技能包。下面是干货部分。
一、五个部件,学界和工业界各卷各的
| 部件 | 决定什么 | 谁在卷 |
|---|---|---|
| 架构 | 容量与形态 | 学界 |
| 训练目标 | 训练时"好"的定义 | 学界 |
| 数据 | 模型见过什么 | 工业界 |
| 评测 | 你能否判断它变好了 | 工业界 |
| 系统 | 训练跑不跑得完 | 工业界 |
讲者的原话大意:学术界的注意力在架构上,但实践中最不缺的就是架构资料。
二、预训练:把互联网压成模型
"直接拿互联网训练"是句外行话。真实管线是这样的:
- 抓取:Common Crawl,约 2500 亿页、约 1 PB;
- 抽正文:HTML → 文本,公式和页眉页脚是难点;
- 过滤:NSFW、有害内容、PII,靠黑名单 + 小分类器;
- 去重:页眉页脚、同内容多个 URL、被复制上万次的段落;
- 规则过滤:token 分布异常、词长异常、过短过长;
- 模型过滤:拿"被维基百科引用的网站"当正样本训一个分类器,挑高质量;
- 领域配比:代码、书籍加权,娱乐降权——代码多确实有助于推理;
- 收尾:用高质量数据 + 降学习率,相当于在维基百科上"过拟合"。
规模定律:损失随参数/数据/算力幂律下降。Chinchilla 的结论是每参数约配 20 个 token,早期模型普遍"参数太多、数据不够"。
三、后训练:把续写机变成助手
SFT(监督微调):拿人写的问答继续做下一词预测。关键结论:它教的是格式和人格,不是知识。LIMA 把数据从 2000 条加到 32000 条,效果几乎没变。副作用是模型学会"编一个像样的答案"——幻觉有一部分来自这里。
RLHF:同一问题生成两个回答 → 人标哪个好 → 训奖励模型(Bradley-Terry,给连续分数)→ 用 PPO 优化,并加正则防止把奖励模型刷爆。二元奖励太稀疏,你不知道"好多少"。
DPO:不做强化学习,直接拉高偏好答案的概率、压低不偏好的。标准假设下最优解和 PPO 等价,工程上简单得多,现在是开源社区主流。
标注经济学(容易被忽略):人对自己的标注只有约 66% 一致率,论文作者自己标也只有 67–68%;人工标注约 $300 / 1000 条,用大模型当标注员便宜约 50 倍且与"人类多数意见"更一致。副作用是标注员偏爱长答案,模型越训越啰嗦——"ChatGPT 话多"是这么来的。
四、评测:大部分宣称死在这里
- 验证损失不可比:PPO 和 DPO 优化目标不同;
- 困惑度失效:经过 PPO 的模型是"策略",不再是对文本分布建模;
- Chatbot Arena:真人盲测,最可信,但慢、贵、用户偏技术圈;
- 模型当裁判:与 Arena 相关性约 98%,不到 3 分钟、不到 10 美元,但偏爱长答案和同族风格。
所以看到任何分数,先问三件事:用什么基准、和谁比、裁判是谁。
五、系统:没人发帖的部分
混合精度(权重 32 位存、16 位算、32 位更新)+ 算子融合(torch.compile 能让训练快约 2 倍)。不炫技,但决定训练能不能跑完。
完整笔记(含每条结论对应的时间码)我放在了 GitHub:**github.com/lizhao888/l… Claude Code / Hermes 当技能用)。
说明:非官方笔记,功劳归讲者和斯坦福;2024 年口径,长上下文、推理模型、合成数据管线这些没覆盖,欢迎指出错误。