🎙️ LLM 训练讲座精读

跟随一位工业界研究者的视角,走进 LLM 训练的完整管线。保留讲者的原话、比喻和即兴问答,再加以逐段展开。适合已经看过系统篇、想换个角度深化理解的读者。

📑 讲座脉络(按讲者叙事顺序)

  1. 开场定调:五大组件 + 为什么不讲架构
  2. 语言建模:从概率分布到自回归
  3. Tokenization:彩色积木演示
  4. 评估:Perplexity 与 MMLU 的坑
  5. 数据管线:2500 亿网页的净化之路
  6. Scaling Laws:用数学预测未来
  7. 成本估算:$7,500 万的一堂课
  8. 后训练:从 GPT-3 到 ChatGPT 的跃迁
  9. SFT:2000 条数据就够了?
  10. RLHF:让人类只做擅长的事
  11. DPO:把三步变成一步

🎬 一、开场定调:五大组件,但今天不讲架构

🎙️
"So what matters when training LLMs? One is the architecture. Another component is the training loss and training algorithm. Then it's data. And evaluation. And then the system component. … I'm actually not going to talk about the architecture today. One, because I gave a whole lecture on transformers a few weeks ago. And two, because you can find so much information online. I think there's much less information about the other four topics."

讲者一上来就亮出底牌:训练 LLM 有五大支柱(架构、损失/算法、数据、评估、系统),但他故意跳过了架构

他的理由分两层。表层理由:网上关于 Transformer 的资料太多了,不需要再讲一遍。深层理由才是真正的 punchline——

💡 "Most of academia actually focuses on architecture and training algorithm… But in reality, what matters in practice is mostly the three other topics: data, evaluation, systems. That's what most of industry actually focuses on."

他自嘲道:"I was one of those researchers for a large part of my career."——他自己也是做了很多年架构创新的人,但现在回头看,小改激活函数、调调层数,在 Scaling Laws 面前只是"改变截距"

这是整场讲座的核心立场:工业界务实主义 vs 学术界创新偏好。他后来反复引用 Richard Sutton 的 "Bitter Lesson" 来支撑这个观点——算力持续指数增长,唯一重要的是能随算力扩展的方法,而不是精心设计的巧技。

🧠 二、"预测下一个词"——语言建模的极简哲学

🎙️
"Language models at a high level are simply models of a probability distribution of sequences of tokens. If you have a sentence like 'the mouse ate the cheese', the language model gives you a probability of this sentence being uttered by a human."

他用三个句子讲透了语言模型的本质:

  1. "The mouse ate the cheese." → 高概率(语法正确 + 语义合理)
  2. "The mouse ate cheese." → 低概率(语法错误:缺冠词)
  3. "The cheese ate the mouse." → 极低概率(语义荒谬:奶酪不吃老鼠)

这个例子精妙之处在于:一个简单的"下个词预测"任务,同时逼模型学会句法(冠词规则)和语义(奶酪是食物不是捕食者)

自回归分解:把一句话拆成 N 个小问题

P("the mouse ate the cheese")
= P(the) × P(mouse|the) × P(ate|the mouse) × P(the|the mouse ate) × P(cheese|the mouse ate the)

这是概率论的链式法则,没有任何近似。代价是——生成时只能一个词一个词地来:生成第 n 个词时,前面 n−1 个词都必须作为上下文输入。句子越长,生成越慢。

训练 vs 推理:同一个任务,两个模式

训练时推理时
做什么计算真实 Token 的概率,和 one-hot 标签做交叉熵从概率分布中采样下一个 Token,拼回去再跑一遍
并行?✅ 可以(所有位置的 Token 已知)❌ 不行(后一个依赖前一个)
目标最大化对数似然产生流畅文本
讲者特别强调了一个容易被忽略的点:"The last two steps only needed during inference. When you do training, you just need to predict the most likely token."——训练时不需要采样!这是一个纯分类任务,所有优化技巧(批量并行、Teacher Forcing)都建立在这个事实上。

🔤 三、Tokenization:"This is one thing people usually don't talk that much about"

🎙️
"Tokenizers are extremely important. It's really important that you kind of understand at least what they do at a high level. … Honestly, I think a lot of people think we should just get away from tokenizers."

三个层级,三种困境

方案优点致命缺陷
按词分割直观typo 没有对应 Token;泰语等无空格语言无法操作
按字符分割全覆盖,无 OOV序列长度爆炸 → Transformer 的 O(n²) 扛不住
BPE 子词在两者间取平衡英语特化;数字/代码的 Tokenization 不合理

BPE 的彩色积木演示

讲者用了一个极其直观的演示——假设你的语料库只有五个词,每个字符分配一种颜色:

初始状态:每个字符一个 Token

to ke | to o | ex

第 1 轮合并t + o 出现 3 次 → 合并为 to

to ke | to o | ex

最终结果(简化):

token | too | ex

讲者揭示的隐藏痛点

字节级模型(如 MegaByte、Byte Latent Transformer)是目前研究热点。如果未来有架构不再 O(n²),直接按字节建模就能彻底消灭 Tokenization 问题。但在此之前,Tokenizer 的选择直接影响模型的数学能力、多语言性能和代码生成质量——这是一个大多数人忽略的关键决策点。

📊 四、"你的评估方式不一样,结果差 15 个百分点"

🎙️
"For a long time, different companies and organizations were using different ways of evaluating MMLU. As a result, you get completely different results. For example, LLaMA 65B had 63.7 accuracy on HELM, but 48.8 on this other benchmark. So really, the way that you evaluate matters."

Perplexity 的直觉

❓ 学生问:Perplexity 为什么不常用了?
讲者答:因为它依赖于 Tokenizer。假设 ChatGPT 用 10K 词表的 Tokenizer,Gemini 用 100K 词表的——那 Gemini 的 Perplexity 上界天然更高,无法公平比较。

MMLU 评估的两种方式:同一个数据集,截然不同的分数

方式做法特点
只看概率不生成文本,直接比较 P(A)、P(B)、P(C)、P(D),选最高的无需采样,客观,但不反映真实使用场景
约束生成要求模型输出 "A" / "B" / "C" / "D",只看这四个 Token 的概率贴近使用,但受 Prompt 写法影响大
自由生成让模型完整回答,再想办法判断对错最难标准化,但最接近真实场景
❓ 学生问:怎么确保这些模型没在 benchmark 上训练过(数据污染)?
讲者答:"One trick is: most datasets online are not randomized. You look at the entire test set. If it's more likely to generate examples in order versus shuffled, then it was probably in the training set."——如果按原始顺序生成比打乱顺序更容易,说明模型"记得"这些数据。

🗄️ 五、"你下载一个随机网页看看,会震惊的"

🎙️
"People say 'train on all of internet'. What does that even mean? Internet is very dirty and really not representative of what we want. If I download a random website right now, you would be shocked at what is in there. It's definitely not your Wikipedia."

讲者随后展示了一个 Common Crawl 里的真实页面——HTML 源码混杂,正文被埋在一堆标签里,有些句子甚至没写完:"Testing World is your ultimate source for the System X high performance server…" 后面直接截断。

这就是 LLM 的"食物"。处理它需要整整七道工序:

1

文本提取(HTML → 纯文本)

难点:数学公式提取(LaTeX/HTML 混排)、"正文识别"(排除导航栏/页脚/广告/评论区)。每个网站结构不同。

2

过滤不良内容

"Every company has a blacklist of websites they don't want to train on."——NSFW、仇恨言论、PII(身份证号/电话号码/邮箱)。通常用一个小分类器做预筛。

3

去重

不止是精确去重——论坛模板(页眉页脚相同)、不同 URL 指向同一内容、经典段落被引用上万次。需要在 TB 级数据上做模糊匹配。

4

启发式过滤

Token 分布异常 → 乱码。单词平均长度异常 → 非自然语言。只有 3 个词 → 没信息。超过 1000 万词 → 可能是日志/自动生成。

5

模型过滤(巧妙技巧)

收集所有 Wikipedia 页面的外部链接 → "被 Wikipedia 引用 = 高质量"。训练一个分类器区分 "Wikipedia 引用页面" vs "随机网页",对高质量页面加权采样。

6

领域分类与加权

代码 ⬆️("If you train more on code, your model becomes better on reasoning"——经验法则)。书籍 ⬆️(高质量长文本)。娱乐 ⬇️。

7

退火(Annealing)

训练最后阶段用极高质量数据(Wikipedia + 人工标注),以极低学习率"过拟合"——相当于临考前只刷真题。

🎙️ 讲者:"Collecting data is a huge part of practical large language models. Some might say that's actually the key." — 这句话大概是他全场最强烈的表态。
关于数据量级:Llama 2 训练了 2T tokens,Llama 3 直接跳到 15T。但 Common Crawl 每个月新增 2500 亿页面(~1PB),过滤后只剩千分之一。真正的瓶颈不是"有没有数据",而是如何在 1000 份垃圾里高效找出 1 份可用的。另外,讲者提到数据方面存在严重的"竞争保密"——这些公司从不说他们用了什么数据、什么混合比例,一方面是商业壁垒,另一方面是版权法律责任。

📈 六、"It looks innocuous, but it's crazy"——Scaling Laws

🎙️
"It looks innocuous when you look at these type of plots, but that's crazy, because it means that you can predict how well we're going to perform in 2–3 years, depending on how much compute we will add."

讲者对一个核心矛盾做了精辟总结:在这门课里我们教你过拟合,但 LLM 不过拟合——模型越大,泛化越好,这完全反直觉。

从"30 天练 1 个模型"到"3 天探索 + 27 天冲刺"

❌ 旧范式

直接在大模型上做超参搜索
→ 30 天训练 1 个模型
→ 选最好的
→ 但这"最好的"只训了 1 天

✅ 新范式

① 3 天:训练多个小模型(不同规模)
② 拟合 Scaling Law → 外推性能
③ 27 天:用预测最优的配置训练最终大模型

讲者还展示了一个经典案例:用 Scaling Laws 比较 Transformer 和 LSTM。小规模实验时两者差距不大,但外推到 10× 算力后,Transformer 的优势变得不可逾越——而 LSTM 的曲线甚至开始弯曲,暗示它无法持续享受 Scaling 红利。

Chinchilla 最优:20 还是 150?

20:1
训练最优
Chinchilla (2022)
~150:1
推理最优
考虑推理成本
~40:1
Llama 3 405B
折中策略

差异的逻辑:Chinchilla 只问"给定训练预算,如何最低 loss"——于是 1 参数配 20 Token。但实际部署后,小模型的推理成本低得多(每个用户的每次查询都省钱),所以推理最优比例更偏向"小模型 + 更多数据"

❓ 学生问:这个 Scaling 还会持续下去吗?会 plateau 吗?
讲者答:"It is still holding, surprisingly. Will it happen? Probably. It doesn't need to—because it's on log scale. It could continue decreasing like this. Most people think they will probably plateau at some point. We all know when." ——目前还没有平台期的信号,但在 log 尺度上每进一步都需要指数级增加的算力。

💰 七、"假设我给你 10,000 张 GPU 一个月,你训练什么模型?"

🎙️
"Imagine I give you 10,000 GPUs for this month. What model will you train? How do you even go about answering that question? This is hypothetical, but that's exactly what these companies are faced with."

随后他用 Llama 3 405B 做了一次现场估算:

项目数值备注
参数量405B
训练 Token15.6T约 40 tokens/param
总算力~3.8×10²⁵ FLOPs公式:6 × params × tokens
GPU 数量16,000 × H100
训练时长~70 天
GPU 租金~$5,200 万$2/h × 2600 万 GPU 小时
人员~$2,500 万50 人 × $500K/年
总成本~$7,500 万Meta 官方报 3000 万 GPU 小时
🎙️ 讲者(一个微妙的细节):"They went 2× less than the Biden executive order threshold of 10²⁶ FLOPs—so they really went right below this to not have special scrutiny."——算力是故意控制在审查阈值以下的。

关于碳排放,他给了一个出乎意料的视角:"Only 2,000 return tickets from JFK to London. Right now, carbon emitted is not a meaningful issue yet. GPT-6, GPT-7, once you multiply by 100, that might become a real issue."

🎯 八、从 GPT-3 到 ChatGPT 的那一跃

🎙️
"If you ask GPT-3, which is a pure language model, 'Explain the moon landing to a 6-year-old,' the completion you get is something like 'Explain the theory of gravity to a 6-year-old.' Because what it learned is that on the internet, if you have one question, you usually have another bullet point of similar questions. This is not what you want from an AI assistant."

这是讲座中最生动的对比。GPT-3 不是不会——它只是学会了错误的格式。互联网上,"Explain X to a 6-year-old" 后面通常跟着 "Explain Y to a 6-year-old",而不是真正的解释。

后训练的核心任务就是纠正这个:让模型的输出分布,从"互联网的文本分布"变成"助手的行为分布"

这就解释了为什么后训练不是"教模型新知识"——模型在预训练阶段已经学完了所有语言和知识。后训练只是在选择哪种输出风格。用讲者的话说:"You're not teaching anything new in SFT. All you do is tell the model to optimize for one type of user."

📝 九、SFT 的震撼发现:2000 条就够了

🎙️
"What LIMA showed is that if you scale the amount of data for SFT from 2,000 to 32,000, it really doesn't help much. Scaling laws definitely don't help here. The intuition is that all you learn is how to format your desired answers."
SFT 数据量效果
2,000 条🟢 已经很好——学会了"格式"
32,000 条🟢 几乎没提升——格式已经学会了

讲者讲了 Alpaca(他自己参与的项目):175 条人工标注 → 让 text-davinci-003 扩写到 52,000 条 → Fine-tune LLaMA 7B → 得到接近 text-davinci-003 的 Alpaca 7B。这开启了整个"用 LLM 训练 LLM"的蒸馏时代。

SFT 可能正是幻觉的源头——全讲座最精妙的假说

💡 "What if the human gives an answer that the model didn't know was true? From the model's perspective, you the human are telling the model: generate this thing that seems plausible. But actually, I have no idea if it's true or not. Hallucination might be caused by this SFT."

讲者举了一个具体例子:人类标注者给"垄断"这个主题写了一篇回答,引用了一本参考书。如果这个引用是真实的,没问题。但如果模型在预训练中从未见过这本书——模型不知道它是真的——它从 SFT 中学到的是:"当人们问学术概念时,编造一个听起来像真的引用"。

这是对幻觉成因的一个非常原创的解释——不是模型"不知道",而是 SFT 教了它错误的策略。这也能解释为什么 RLHF 有助缓解幻觉:偏好数据(A 比 B 好)可以惩罚编造行为,而 SFT 的行为克隆做不到这一点。

🔄 十、RLHF:让人类只做擅长的事

🎙️
"Humans won't generate the best possible answer. If you ask me to write a book, I can definitely judge which book is better, but I'm not going to be as good at writing the book I want to read. You're bound by human ability to generate things, even though humans are better at distinguishing."

RLHF 的根本动机:人类鉴别能力 > 人类创作能力。SFT 用人类的创作来训练模型(行为克隆),天花板就是人类水平。RLHF 换了一个思路:只让人类比较哪个更好,让模型自己探索最优策略。

三步流程

1

SFT 初始化

预训练模型 → 标注数据微调 → 学会基本对话格式

2

训练奖励模型(Bradley-Terry)

对每条指令,SFT 模型生成 2 个回答 → 人类选更好的 → 训练分类器输出连续分数
P(A>B) = σ( R(A) - R(B) )

3

PPO 强化学习

奖励模型打分 + KL 惩罚(防止偏离 SFT 模型太远)+ PPO 更新策略

"Anyone who ever worked with RL knows it's such a mess"

讲者毫不掩饰 PPO 的工程噩梦:

RLHF 的一个副作用经常被忽略:讲者指出,经过 PPO 的模型不再给出有意义的文本概率。因为 PPO 优化的是一旦找到一条好回答就死死咬住,而不是维持一个"所有可能的回答"的分布。这意味着你不能再用这些模型的 likelihood 做分析或评估——open-source 社区常用的 log-prob 评估法对 RLHF 后的模型可能完全无效。

⚡ 十一、DPO——把三步变成一步的优雅简化

🎙️
"The key idea of DPO is that instead of using reinforcement learning, you can just maximize the probability of generating the stuff you like, and minimize the probability of the stuff you don't like. All the rest is chosen such that the global minima of PPO and DPO—under some assumptions—are essentially equivalent."

讲者承认他在讲座快结束时"加速",DPO 没有展开讲。但他给出了最核心的直觉:

维度PPODPO
流程SFT → 奖励模型 → RL偏好数据 → 直接优化
需要采样?✅ 需要❌ 不需要
需要奖励模型?✅ 需要❌ 不需要
训练方式强化学习监督学习
工程复杂度4 个模型,多阶段标准训练循环
底层数学Bradley-Terry + RL对数概率比(和 PPO 等价)

DPO 的本质就是一句话:"好回答的概率 ÷ 参考模型的概率" 要比 "坏回答的" 大。既然人类已经给了偏好数据(A > B),为什么不直接优化这个比值,而非要绕一圈训练奖励模型再 RL?

DPO 之后还有更多变体涌现:KTO(不需要配对的偏好数据,只要单条反馈)、ORPO(把 SFT 和偏好优化合并成一个损失)、SimPO(用生成长度做正则化替代参考模型)。这个领域发展极快,每 3-6 个月就有新方法。讲者在讲座结尾被截断的地方,很可能正要讨论 DPO 在实际工业部署中的取舍——很遗憾我们没有听到那部分。

🧭 讲座核心方法论总结

梳理整场讲座,讲者反复传递的核心信息其实就三条:

  1. 别在架构上浪费时间。做简单的事,把它做好,把它做大。Bitter Lesson 是整场讲座的精神纲领。
  2. 数据是第一位的。从 Common Crawl 的脏数据到 15T 训练语料,这条管线是工业界真正的护城河——不透明、不公开、不讨论。
  3. 对齐比预训练更微妙。SFT 只教格式不教知识(2000 条就够),RLHF 让人类做比较而非创作,DPO 把复杂的三步简化成一步——每一步都是对"如何让 AI 变得有用"这个问题的更深层回答。
讲座精读预训练Tokenization Scaling Laws数据处理SFT RLHFDPOBitter Lesson AlpacaLIMAChinchilla