LLM 是怎么炼成的:Pretrain → SFT → RLHF 全流程
"训练一个 ChatGPT" 不是一步,是三步。每一步用完全不同的数据和目标。看完你能跟工程师对话。
L0/L1/L3 你已经学完所有”前置知识”。这一篇打开 LLM 训练的黑盒——看 ChatGPT 是怎么从随机参数变成”无所不知的助手”的。
一个秘密:训练 LLM 是 3 个完全不同的阶段,每个阶段用不同的数据、不同的目标、不同的成本。
阶段 1:预训练(Pre-training)
目标
让模型学会”语言本身”——语法、事实、推理、世界常识。
数据
整个互联网。 字面意思。
- Common Crawl(互联网抓取,数十 TB)
- Wikipedia(高质量百科)
- 书籍(数百万本)
- 代码(GitHub)
- 学术论文(arXiv)
- ……
GPT-3 训练数据约 45TB 文本(去重后约 570GB)。GPT-4 估计是这个的几倍。
训练目标:预测下一个 token
就这一件事——给一段文本,让模型预测下一个 token 是什么。
"今天天气真" → 模型预测下一个 token 是 "好" / "不错" / ... 的概率
损失:交叉熵(L1-04 我们详讲过)。
这就是 自监督学习——数据本身就构造了标签(每个位置的”真实下一个 token”)。不需要任何人工标注——这是 LLM 能上规模的核心原因。
训练规模
- 计算量:以 FLOPs(浮点运算次数)计——GPT-3 约 FLOPs
- 时间:几周到几个月(数千张 GPU 并行)
- 成本:GPT-3 估约 1 亿
这是 LLM 最贵的阶段——绝大多数计算成本都在这里。
产物:基础模型(base model)
预训练完,你得到一个只会”续写”的模型。它能写出像样的句子,但不会按你的指令做事。
如果你问基础模型”写一首诗”——它可能会续写:“写一首诗,需要灵感和……”它把你的指令当成了”待续写文本的开头”。
所以还不能直接用。
阶段 2:监督微调(SFT, Supervised Fine-Tuning)
目标
让模型学会遵循指令。
数据
人工写的高质量”指令-回答”对:
指令:写一首关于春天的短诗。
回答:花开三月暖,
微风燕子翻,
青山何处有,
春色入诗篇。
指令:用 Python 写一个判断素数的函数。
回答:def is_prime(n):
if n < 2: return False
for i in range(2, int(n**0.5)+1):
if n % i == 0: return False
return True
通常 5 万-50 万条这种数据。
关键:这些数据要很高质量——通常雇专业写作者、领域专家撰写。OpenAI 雇过博士做 GPT-4 的 SFT 数据。
训练
仍然是”预测下一个 token”——但只在回答部分计算损失,不在指令部分(你不想让模型学会”模仿用户提问”)。
成本和规模:
- 数据量比预训练少 10000+ 倍
- 训练时间:几小时-几天
- 成本:几千-几万美元
产物:SFT 模型
到这一步,模型已经能按指令做事了——能写诗、写代码、回答问题。
但还有问题:
- 它仍然可能输出有毒/有害/无用的回答
- 它没”风格偏好”——可能给你一个对的答案,但说话方式很机械
所以还需要第三步。
阶段 3:RLHF(人类反馈强化学习)
这是 ChatGPT 之所以好用的核心步骤。
目标
让模型学会”什么样的回答让人喜欢”——不只是正确,还要有用、安全、礼貌、详尽得当。
流程(分三小步)
步骤 3.1:收集”哪个回答更好” 的偏好数据
给同一个指令,让模型生成 4-5 个候选回答,让人类标注员排序:
指令:解释一下为什么天空是蓝色的。
候选 A:天空是蓝色的因为光线和大气层散射有关。
候选 B:天空看起来是蓝色的,是因为阳光由各种颜色组成。短波长(蓝色)
的光更容易被大气分子散射……(详细,准确)
候选 C:因为水反射的颜色。(错误)
候选 D:天空一片蔚蓝,让人想到童年的夏天,那些无忧无虑的午后……(跑题)
人类标注:B > A > D > C
收集几万到几十万这样的偏好对。
步骤 3.2:训练奖励模型(Reward Model)
用偏好数据训一个小模型,输入”指令+回答”,输出”这个回答有多好”(一个数值):
RewardModel(指令, 回答) → 分数
这个奖励模型是用偏好数据训出来的——它学到了”什么样的回答会被人类喜欢”。
步骤 3.3:用 PPO 算法优化主模型
现在用强化学习(PPO 算法)——主模型生成回答,奖励模型给分,鼓励高分回答、惩罚低分回答。
LLM 生成回答 → RewardModel 评分 → 高分 → 增强这种行为
↓
低分 → 减弱这种行为
这一步技术上极其复杂——PPO 在 LLM 上的稳定性是个工程难题。
成本
RLHF 比 SFT 贵 10-100 倍——主要是人工标注成本。
GPT-4 据估算 RLHF 阶段花了几百万美元——其中大部分是给标注员的工资。
产物:你最终用到的 ChatGPT / Claude / Gemini
到这一步,模型变得:
- 听话(遵循指令)
- 有礼貌(不出粗话)
- 详尽(不偷懒只回答一行)
- 安全(拒绝有害请求)
- 风格统一(“我能怎么帮您?“这种)
一张图总结
原始 Transformer 架构
↓
[阶段 1 · Pretrain]
数据:互联网海量文本
目标:预测下一个 token
产物:基础模型(会续写但不听话)
成本:千万-亿美元
↓
[阶段 2 · SFT]
数据:5-50 万高质量指令-回答
目标:学会按指令做事
产物:SFT 模型(会做事但风格机械)
成本:万级
↓
[阶段 3 · RLHF]
数据:几万-几十万偏好对
目标:风格化、对齐人类偏好
产物:你用的 ChatGPT / Claude
成本:百万级
预训练学的是 99% 的能力,SFT + RLHF 改的是 1% 的”行为”。
这就是为什么 GPT-3 基础模型只要稍微 SFT 一下,就能变出 ChatGPT—— 它本来就什么都会了,只是不知道该怎么用。
现代变种:DPO / ORPO 等
RLHF 工程复杂、成本高。2023-2024 年出现了更简单的替代:
DPO(Direct Preference Optimization)
核心想法:跳过”奖励模型 + PPO”,直接从偏好数据用一个简化的损失函数训。
效果接近 RLHF,但工程简单 10 倍。Llama 3、Mistral 等很多开源模型用 DPO。
ORPO / KTO 等
更激进的简化——边 SFT 边对齐,一阶段搞定。
趋势:RLHF 仍然是”金标准”,但开源生态因为成本压力,越来越多用 DPO 等替代。
开源 vs 闭源训练
| 阶段 | 开源(Llama 3) | 闭源(GPT-4) |
|---|---|---|
| Pretrain 数据量 | 15T tokens | 估约 13T tokens |
| 模型参数 | 70B / 405B | 估约 1.7T (MoE) |
| SFT | 数十万人写 + 合成 | 几十万-上百万 |
| 偏好对齐 | DPO 为主 | RLHF + 多轮迭代 |
| 总成本 | ~$50M | $100M+ |
闭源模型的优势主要在 RLHF 的精细打磨——架构和预训练数据没那么神秘。
一些”奇怪的”事实
LLM 不知道自己被训过
你问 ChatGPT “你怎么训出来的”——它的回答都是它读过的关于 OpenAI 公开博客的内容,不是它实际的训练记忆。它没有”自传”。
训练数据决定一切
为什么 GPT 中文比 Claude 中文略好?为什么 Llama 中文不好?——完全取决于训练数据里中文占比。
模型架构都差不多,差距在数据。
微调比预训练便宜 10000 倍
这是为什么你也能”微调一个 LLM”(L4-05 详讲 LoRA)——不需要重新预训练,在现成基础模型上微调几小时就行。
大型公司开放基础模型(如 Llama 3),就是让全世界帮它做 SFT 和应用——它们提供”通用底座”,社区做”垂直化”。
一句话总结
LLM 训练 = 让模型先”读完互联网”,再”学会听话”,最后”被人调教得讨喜”。
每一步用完全不同的数据、目标、方法。 三步缺一不可。
下一篇:《RAG 从 0 到 1》 —— 你已经知道 LLM 是怎么炼成的,下一步是怎么用它做产品。
读到这里说明你认真在学 🎯
订阅每周精选 —— 下一篇新文章 / 新可视化第一时间送到邮箱。
讨论区
· 用 GitHub 账号登录评论src/components/Comments.astro 顶部填入
仓库 ID 和分类 ID(见组件注释里的配置步骤)。