小白也能看懂的大模型训练:预训练、微调、RLHF到底在干嘛
系列文章:AI大模型知识体系 | 第二篇
引言:大模型不是"训一次"就完事的
很多人第一次听说 ChatGPT、文心一言、通义千问这些大模型的时候,会以为它们是"一次性训练出来的"——把数据丢进去,训练完就能用了。
其实完全不是这样。
一个真正好用的大模型,至少要经历 三个阶段的"教育",就像一个人从学校走向职场一样:先上大学打基础,再接受职业培训学技能,最后去实习被师傅纠正做事方式。
这三个阶段分别是:
-
预训练(Pre-training)—— 通识教育,大量阅读,建立知识储备
-
监督微调(Supervised Fine-Tuning, SFT)—— 职业培训,学会按要求回答问题
-
RLHF(人类反馈强化学习)—— 实习打磨,根据人类反馈不断优化表现
今天我们就来逐一拆解这三个阶段,看看每个阶段到底在做什么,为什么缺一不可。即使你没有AI背景,只要会写代码,这篇文章也能让你看懂。
一个类比串起三个阶段
在深入技术细节之前,先把下面这张表记住,后面会反复用到:
|
训练阶段 |
类比 |
核心目标 |
|---|---|---|
|
预训练 |
上大学,博览群书 |
学到语言规律和世界知识 |
|
SFT |
入职培训,跟着模板学 |
学会"别人问什么,我怎么答" |
|
RLHF |
实习期,被师傅纠正 |
学会"怎么答得更好、更安全、更有用" |
你可以把最终的大模型想象成一个毕业生:大学读了海量书籍(预训练),入职后跟着培训手册学会了标准工作流程(SFT),实习时被师傅反复纠正,终于变成了一个靠谱的员工(RLHF)。
好,下面我们逐个展开。
一、预训练(Pre-training):读遍互联网的"通识教育"
训练目标:下一个词预测
预训练的核心任务,说出来你可能觉得太简单了——猜下一个词。
技术上叫 Next Token Prediction(下一个Token预测)。给模型一段文字,让它预测下一个最可能出现的词(Token),然后不断往后续写。
打个比方,这就像语文考试里的 完形填空:
"今天天气真好,我们去公园___。"
模型需要预测出"散步""玩""跑步"之类的答案。训练的时候,系统拿海量文本,不断遮住后面的内容让模型去猜,猜对了就奖励(更新参数让模型更准),猜错了就惩罚。
用稍微正式一点的写法:
$$P(x_t \mid x_1, x_2, \dots, x_{t-1})$$
别被公式吓到,它说的就是一句大白话:在已知前面所有词的情况下,下一个词出现的概率是多少。 模型的目标就是把这个概率学得越准越好。
你可能会问:就这么简单的任务,能学到什么?
答案是:学到非常多。为了准确预测下一个词,模型不得不学会语法、逻辑、事实知识、推理能力甚至代码编写。比如要预测"Python 中用 ___ 关键字定义函数",模型就必须知道答案是 def,这就倒逼它学会了编程知识。再比如要预测"中国的首都是___",模型就必须知道答案是"北京"。
完形填空做得多了,模型自然就"博学"了。
数据从哪来
预训练的数据量是惊人的,主要来源包括:
-
互联网网页:Common Crawl 等网页数据集,动辄数十万亿词
-
书籍和论文:维基百科、arXiv 论文、电子书
-
代码仓库:GitHub 上的公开代码
-
对话和问答数据:Reddit、StackOverflow 等
以 GPT-3 为例,它的预训练数据规模大约是 3000 亿个 Token(你可以粗略理解为 3000 亿个词),而更新的模型如 LLaMA 2 使用的数据量更是达到了 2 万亿 Token。这是什么概念呢?如果一个人每天读 10 万字,读完 2 万亿字需要大约 5 万年。
训练有多贵
预训练是最烧钱的阶段。训练一个 GPT-4 级别的模型,据业界估算:
-
需要数千张高端 GPU(如 A100/H100)
-
训练时间以 月 为单位
-
单次训练成本在 数千万到上亿美元
这也是为什么只有大公司才玩得起基座模型——光是电费就是一笔天文数字。不过好消息是,我们大多数人不需要从头预训练,可以直接在开源的基座模型(如 LLaMA、Qwen、Mistral 等)上做微调,成本会低很多。
二、监督微调(SFT):从"续写机器"变成"问答助手"
为什么需要SFT
预训练出来的模型有一个很大的问题:它只会续写,不会好好回答问题。
如果你对预训练模型说:"帮我写一个Python排序函数。"它可能不会直接给你代码,而是续写出类似"帮我写一个Python排序函数。好的,我来帮你。以下是另一个用户的问题:帮我写一个Java排序函数……"这样不断往下接龙的内容。
为什么?因为预训练的训练方式就是"续写下一个词",模型只学会了"接着往下写",根本不知道什么叫"回答用户的问题"。这就好像一个人读了一辈子书,但你问他一个问题,他只会继续念书上的内容,不会组织语言回答你。
SFT(Supervised Fine-Tuning,监督微调)就是来解决这个问题的。
指令数据集长什么样
SFT 的核心思想简单粗暴:给模型看大量的 "问-答"示范,让它学会"别人怎么问,我就怎么答"。
这些数据叫做 指令数据集(Instruction Dataset),每一条通常长这样:
{
"instruction": "将以下句子翻译成英文",
"input": "今天天气真好",
"output": "The weather is really nice today."
}
{
"instruction": "用Python写一个计算斐波那契数列的函数",
"input": "",
"output": "def fibonacci(n):\n if n <= 1:\n return n\n return fibonacci(n-1) + fibonacci(n-2)"
}
{
"instruction": "总结以下文章的核心观点",
"input": "(一段长文)",
"output": "文章主要讨论了……核心观点是……"
}
你看,本质上就是人工写了很多高质量的"问答模板",让模型照着学。一般需要几万到几十万条这样的数据,就能让模型的行为发生质的变化——从一个"只会续写的文本生成器"变成一个"能正常对话的AI助手"。
SFT 的训练成本比预训练低得多(数据量小、训练时间短),一张消费级显卡(如 RTX 4090)配合 LoRA 等高效微调方法,个人开发者也能跑起来。效果是立竿见影的。
三、RLHF:请个"人类家教"来打分
SFT还不够好
经过 SFT 之后,模型已经能正常回答问题了,但还有几个头疼的问题:
-
回答质量参差不齐:有时候一本正经地胡说八道(术语叫"幻觉")
-
安全性不够:可能会回答一些危险或有害的问题
-
不知道"好不好":模型只学会了"这样回答",但不知道"哪个回答更好"
RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习) 就是来解决这些问题的。
用"请家教打分"来理解
想象你在辅导一个学生写作文:
-
学生(模型)针对同一个题目写出好几篇作文
-
家教(人类标注员)看完后打分:"这篇8分,那篇6分,这篇只有3分"
-
根据打分反馈,学生不断调整自己的写作方式——往高分方向靠
RLHF 就是这个过程的自动化版本,只不过"学生"是AI模型,"家教"是一大群人类标注员。
奖励模型(Reward Model)
RLHF 的第一步是 训练一个奖励模型(Reward Model)。
怎么训呢?先让 SFT 后的模型对同一个问题生成多个不同回答,然后让人类标注员来比较哪个更好。比如:
问题:"如何学习编程?"
回答A:"建议从Python入门,先学基础语法,再多写项目练手,推荐从简单的计算器、待办事项应用做起……"(详细、有条理、积极正向)
回答B:"编程很难的,不建议学,学了也找不到工作。"(敷衍、消极、误导性)
人类标注员会标记:A 比 B 好。
收集大量这样的"谁比谁好"的偏好数据后,就能训练出一个 奖励模型。这个奖励模型就像一个自动化评分老师——你给它任何一段问答,它能自动打分,不再需要人类每次都来标注了。
PPO:让模型朝高分方向进化
有了奖励模型之后,就可以用强化学习来优化大模型了。最常用的算法叫 PPO(Proximal Policy Optimization,近端策略优化)。
你不需要理解 PPO 的数学细节,只要记住它的核心思路,用大白话说就是:
让模型生成回答 -> 奖励模型打分 -> 分数高的回答方式就加强,分数低的就削弱 -> 反复迭代
就像训练宠物一样:做对了给零食,做错了不给。经过成千上万次迭代,模型的回答质量就会稳步提升——变得更详细、更准确、更安全。
RLHF 是 ChatGPT 成功的关键因素之一,OpenAI 将其称为让模型做到"三个H"的核心技术:有用(Helpful)、无害(Harmless)、诚实(Honest)。
四、DPO:一种更简单的替代方案
RLHF 虽然效果好,但流程实在复杂:需要先训一个奖励模型,再跑 PPO 强化学习,中间涉及多个模型的协调训练,工程难度大,超参数多,调参令人头秃。
2023 年,斯坦福团队提出了 DPO(Direct Preference Optimization,直接偏好优化),核心思想非常优雅:跳过奖励模型的训练,直接用人类偏好数据来优化模型。
DPO 把 RLHF 的"训练奖励模型 + PPO 优化"两步合并成了一步。它直接利用"哪个回答好、哪个回答差"的对比数据来更新模型参数,让模型一步到位地学会"好的回答"。
用表格对比一下:
|
方案 |
流程 |
复杂度 |
模型数量 |
|---|---|---|---|
|
RLHF |
人类偏好 -> 训奖励模型 -> PPO优化 |
高 |
4个(策略、参考、奖励、评论) |
|
DPO |
人类偏好 -> 直接优化模型 |
低 |
2个(策略、参考) |
DPO 的优势很明显:实现简单、训练稳定、资源需求更低。目前很多开源模型的训练都已经开始采用 DPO 或其变体(如 IPO、KTO、ORPO)来替代传统的 RLHF。
当然,RLHF 在某些场景下效果上限可能更高,两者各有取舍。但对大多数个人开发者和中小团队来说,DPO 是更实际的选择。
总结:三阶段训练全景图
最后,我们用一张全景图来回顾整个训练流程:
┌─────────────────────────────────────────────────────────────────┐
│ 大模型训练三阶段全景图 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 第一阶段:预训练(Pre-training) │
│ ├─ 目标:学会预测下一个词(完形填空) │
│ ├─ 数据:万亿级Token(网页、书籍、代码) │
│ ├─ 成本:数千万美元,数千GPU │
│ └─ 产出:基座模型(能续写,但不会好好对话) │
│ │ │
│ ▼ │
│ 第二阶段:监督微调(SFT) │
│ ├─ 目标:学会按要求回答问题(问答培训) │
│ ├─ 数据:几万~几十万条问答示范 │
│ ├─ 成本:相对较低,单GPU+LoRA可完成 │
│ └─ 产出:对话模型(能正常聊天,但质量不稳定) │
│ │ │
│ ▼ │
│ 第三阶段:RLHF / DPO │
│ ├─ 目标:让回答更好、更安全、更符合人类偏好 │
│ ├─ 数据:人类偏好标注数据(哪个好、哪个差) │
│ ├─ 成本:中等 │
│ └─ 产出:对齐模型(靠谱、好用、安全的AI助手) │
│ │
└─────────────────────────────────────────────────────────────────┘
所以,下次有人问你"大模型是怎么训练出来的",你可以用一句话回答他:
先上大学读很多书(预训练),然后参加入职培训学会回答问题(SFT),最后在实习中被师傅不断纠正(RLHF/DPO),最终才能成为一个靠谱的AI助手。
这三个阶段,层层递进,缺一不可。
下一篇预告
在下一篇文章中,我们将深入大模型的"大脑"——Tokenizer(分词器),看看模型是怎么把人类的文字变成数字的。什么是 BPE?为什么中文和英文的 Token 数量差这么多?敬请期待。
如果这篇文章对你有帮助,欢迎点赞、收藏、关注三连!有问题欢迎评论区讨论~
更多推荐


所有评论(0)