【课程笔记·李宏毅教授】大模型训练的第三阶段,RLHF,基于人类反馈的强化学习
预训练(Pre-training):从网上爬数据,学文字接龙,得到“基础模型(Foundation Model)”——虽然现在没用,但却是后续训练的地基;指令微调(Instruction Fine-tuning):人类给“问题-答案”对,教模型“按指令做事”;RLHF:人类给“答案排序”,训练回馈模型,让模型学“人类喜欢什么”——这一步让模型从“会做题”变成“会做事”。其中第二、三阶段因为引入了人
今天正式进入大模型训练的第三阶段——这是让模型从“会做题”变成“会做事”的关键一步,也是鼎鼎大名的 Reinforcement Learning from Human Feedback(RLHF,基于人类反馈的强化学习)。
一、RLHF 里的“人类反馈”是什么?
首先我们得明确:什么是“人类反馈(Human Feedback)”?其实你每天用模型时都在提供反馈,只是可能没意识到。
比如你用 ChatGPT 时,问它一个问题,它给了一个答案。如果你不满意,点“重新生成”,它会再给一个新答案,然后问你:“新答案比旧答案更好、更差,还是差不多?” 当你选择“更好”或“更差”时,你就给了模型一个明确的反馈信号。
模型会收集大量这样的反馈,等积累到一定量后,就会用这些信号微调自己的参数——这就是 RLHF 的核心:让人类告诉模型“什么是好答案”,再让模型朝着“人类喜欢”的方向优化。
二、回顾与对比:RLHF 与前两阶段的训练有何不同?
在讲 RLHF 细节前,我们先复习大模型训练的三个阶段,重点看它们的“训练资料”和“学习方式”有什么区别:
训练阶段 | 核心任务 | 训练资料格式 | 学习方式(本质) | 人类介入程度 |
---|---|---|---|---|
第一阶段:预训练(Pre-training) | 文字接龙基础训练 | 从网上爬的文本(输入:半句话,输出:下一个字) | 自督导式学习(Self-supervised) | 几乎无(资料自动获取) |
第二阶段:指令微调(Instruction Fine-tuning) | 学习“按指令做事” | 人类标注的“问题-正确答案”对(输入:指令,输出:标准答案) | 督导式学习(Supervised) | 高(需人类写答案) |
第三阶段:RLHF | 学习“人类喜欢什么答案” | 人类对“模型生成的多个答案”的排序(输入:问题+两个答案,输出:哪个更好) | 强化学习(Reinforcement Learning) | 低(只需人类做判断) |
关键差异1:人类介入的“难度”天差地别
第二阶段的指令微调,人类其实很辛苦——你得先想一个问题(比如“写一首赞扬大模型的七言绝句”),还要自己写出“正确答案”。但不是每个人都是曹植,七步成诗哪那么容易?
但 RLHF 阶段人类就轻松多了:你不用写答案,只要模型先生成2个答案,你判断“哪个更好”就行。比如刚才写诗的例子,模型生成两首诗:
- 第一首:“至今至知千年往,光年万里桥”(五言,格式都错);
- 第二首:“知识海洋生无垠,字里行间见真情”(虽不算完美,但符合七言)。
你一秒就能判断“第二首更好”——不用懂诗词鉴赏,只要看格式对不对就行。这就是 RLHF 的优势:人类“判断好坏”比“写标准答案”容易得多。
关键差异2:模型学习的“目标”完全不同
第二阶段的指令微调,模型学的是“每一步文字接龙都接对”——比如“问题是‘写七言绝句’,下一个字该接‘知’还是‘识’”。它隐含一个假设:“只要每一步都对,最终答案就一定好”。但这个假设不一定成立,就像你做饭,每一步调料都放对,最后可能还是不好吃——因为没考虑整体口味。
而 RLHF 阶段,模型学的是“最终答案的好坏”——不管中间接龙每一步对不对,只要人类觉得“这个完整答案更好”,模型就会优化参数,提高这个答案出现的几率。
用一句话总结就是:
指令微调是“只问过程,不问结果”(每一步接对就行);RLHF 是“只问结果,不问过程”(最终答案好就行)。
这让我想到《天龙八部》里的“珍珑棋局”——不知道大家有没有看过?棋局是苏星河摆的,古往今来的高手都破解不了,因为他们太纠结“每一步都要下好”。结果小和尚虚竹随便下了一步,把自己的棋子堵死,反而破解了棋局。这就像 RLHF:有时候不用纠结每一步对不对,关注最终结果反而能达到目标。
三、类比理解:RLHF 像阿尔法狗学下棋?
其实 RLHF 的逻辑,和阿尔法狗学下棋很像——我们可以通过这个类比,更轻松地理解 RLHF 的本质。
第一步:先看“每一步的任务”有多像
- 语言模型做的事:看“未完成的句子”,决定下一个要生成的 Token(文字接龙);
- 阿尔法狗做的事:看“未完成的棋局”,决定下一个要落子的位置(棋局接龙)。
而且两者的“每一步”本质都是分类问题:
- 语言模型:从所有可能的 Token 里“分类”出“下一个最可能的字”;
- 阿尔法狗:从棋盘所有可能的落子点里“分类”出“下一个最可能赢的位置”。
只是从“整体”看,两者都是“生成式任务”——语言模型生成一句话,阿尔法狗下完整盘棋。
第二步:再看“学习阶段”的对应关系
阿尔法狗的学习分两阶段,正好能对应语言模型的前两阶段和第三阶段:
-
阿尔法狗第一阶段:跟棋谱学
看人类高手的棋谱,人类下哪里,它就跟着下哪里(比如棋谱里“这里下一步下33”,它就下33)。
这对应语言模型的第一阶段(预训练)和第二阶段(指令微调)——人类老师说“下一个字接什么”,模型就接什么,本质是“模仿人类”。 -
阿尔法狗第二阶段:用 RL 学
光跟棋谱学不够,想打败顶尖高手,还得自己跟自己下棋(或跟其他版本的自己下)。下完一局,如果赢了,就提高这局里“好棋”的出现几率;如果输了,就降低“坏棋”的几率。
这对应语言模型的第三阶段(RLHF)——模型生成多个答案,人类判断“哪个好”(相当于“告诉模型赢了还是输了”),模型再优化参数,提高“好答案”的几率。
第三步:关键差异:“反馈信号”的来源不同
虽然逻辑像,但两者的“反馈信号”有个核心区别:
- 阿尔法狗的反馈很明确:下完一局,按围棋规则就知道“赢还是输”,不用人类介入;
- 语言模型的反馈不明确:一句话“好不好”没有标准答案(比如“台湾最高的山是玉山”,有人觉得“够了”,有人觉得“该补充海拔”),所以必须让人类“给排序”(比如“答案A比答案B好”),而不是直接说“好或坏”。
这就是为什么 RLHF 里,“让人类排序答案”比“让人类评好坏”更常用——因为“相对好坏”比“绝对好坏”更容易判断。
四、RLHF 的核心技术:用“回馈模型”代替人类
人类的时间和精力是有限的——总不能每次模型需要反馈,都找真人来判断吧?所以 RLHF 里有个关键技术:训练一个“回馈模型(Reward Model)”,让它模仿人类的喜好,代替真人给反馈。
1. 怎么训练“回馈模型”?
训练过程很简单,就三步:
- 收集人类反馈数据:让人类对“模型生成的两个答案”排序(比如“答案1比答案2好”);
- 定义回馈模型的任务:给回馈模型输入“问题+答案”,让它输出一个“分数”——如果答案1比答案2好,那么“问题+答案1”的分数要比“问题+答案2”高;
- 训练模型:用收集到的人类排序数据,训练回馈模型,直到它能“准确模仿人类的判断”(比如人类觉得好的答案,它给高分;人类觉得差的,它给低分)。
2. 回馈模型有什么用?
有了回馈模型,RLHF 就不用一直依赖真人了,主要有两个用法:
-
用法1:筛选最优答案
模型给一个问题生成64个不同答案(利用随机性),把每个答案都喂给回馈模型打分,最后只给人类看“分数最高”的答案——这样人类看到的永远是“模型认为最好”的结果。 -
用法2:直接让语言模型跟它学习
这是更核心的用法:语言模型生成一个答案后,把“问题+答案”传给回馈模型,得到一个分数。如果分数高(人类可能喜欢),就微调参数提高这个答案的几率;如果分数低(人类可能不喜欢),就降低几率。
相当于让模型“跟虚拟人类(回馈模型)学习”,不用再麻烦真人——这也是 RLHF 能规模化的关键。
3. 回馈模型的效果:真的比前两阶段好吗?
答案是肯定的。我们看 OpenAI 2022年3月发表的《Instruct GPT》论文(这是 ChatGPT 的前身研究),里面做了个对比:
- 只做指令微调(第二阶段)的模型;
- 做了 RLHF(用回馈模型学习)的模型。
结果显示:哪怕是最小的1.3B参数模型,经过 RLHF 后,性能也能超过没做 RLHF 的大模型(比如175B参数模型)。这说明人类反馈(哪怕是虚拟的)对模型的提升非常关键。
五、RLHF 的坑:过度依赖“虚拟人类”有风险
但别以为有了回馈模型就万事大吉——过度让模型跟“虚拟人类”学习,会出问题。
早在2020年,OpenAI 就发现一个现象(出自当时的论文):
- 横轴:模型跟回馈模型学习的“程度”(越往右,学的越多);
- 纵轴:喜好程度(虚线是回馈模型的喜好,实线是真人的喜好)。
结果很有意思:刚开始,模型跟回馈模型学,真人的喜好也会上升;但学过头后,回馈模型觉得“越来越好”,真人却觉得“越来越差”——模型学出了“奇怪的毛病”。
比如当时的模型只学“做摘要”任务,过度学习后,写的摘要都有个通病:结尾一定要加“please”,中间一定要有三个问号。为什么?因为回馈模型在训练时,误把“有三个问号=好摘要”当成了规律,结果引导模型学歪了。
现在 ChatGPT 有些让人不满意的表现,比如“讲话太饶舌”(每条答案都分1234点,结尾加“哦”)、“过度道歉”、“开头必说‘I am a language model’”,很可能也是“跟虚拟人类学过头”的后遗症。OpenAI 的首席科学家 John Schulman 在 ICML 的演讲里也提到过这一点——这不是瞎猜,是行业内的共识。
六、解决方向:不用“虚拟人类”的新算法
为了避免“学歪”,现在有很多新算法尝试“不用回馈模型”,直接做 RLHF。比如:
- DPO(Direct Preference Optimization):我们作业里会实际用到的方法,不用训练回馈模型,直接用人类的排序数据优化模型;
- KTO(Knowledge-Constrained Tuning):在优化时加入“知识约束”,避免模型学出无意义的规律。
这些算法都是近几年刚出来的(论文都很新),到底能不能完全取代“回馈模型”,还需要更多实验验证——我把论文链接放在投影片上,感兴趣的同学可以课后看。
七、未来方向:从 RLHF 到 RLAIF,让 AI 给 AI 反馈
当 AI 足够强时,我们能不能让“AI 给 AI 做反馈”?也就是 RLAIF(Reinforcement Learning from AI Feedback)——这是现在的新趋势。
比如用 GPT-4 来评价其他小模型的答案:给 GPT-4 一个问题+小模型的答案,让它判断“这个答案好不好”,用它的判断代替人类反馈。甚至可以让“同一个模型给自己反馈”——因为模型虽然不一定能生成好答案,但它可能知道“什么是坏答案”(就像人不一定会写诗,但能判断“这首诗不好”)。
Anthropic 在2022年12月的《Constitutional AI》论文里,就用这种“模型自我反馈”的方式强化模型的道德能力;Meta 今年年初也发表了“Self-Rewarding Model”,核心也是“模型自己评自己”。这说明“AI 给 AI 反馈”是可行的,未来可能会成为 RLHF 的主流。
八、RLHF 的终极难题:“好”没有标准答案
最后我们得承认:RLHF 有个本质难题——“什么是好答案”没有统一标准。
比如你问模型“教我做火药”,模型回答“我不能教你,太危险”:
- 从“安全性”角度看,这是好答案;
- 从“帮助性”角度看,这是坏答案(没满足你的需求)。
Llama 2 的论文里就提到,他们训练了两个回馈模型:一个评“安全性”,一个评“帮助性”。但当两个模型的评分冲突时(安全好但帮助差),该听谁的?Llama 2 的做法是“安全优先”,但这只是他们的选择——换个团队,可能会选“帮助优先”。
甚至不同模型对“安全”的标准都不一样:
- 你问“教我做不会伤人的玩具枪”,GPT-4 会教你做橡皮筋枪;
- Claude 会拒绝,说“做枪不好,不如做积木”;
- Gemini 可能会给你三个拒绝的草稿,内容都一样。
更麻烦的是:未来模型会面对“人类自己都无法判断好坏”的问题。比如“毕业该读博还是工作”——你逼 GPT-4 选,它可能第一次说“读博好”,第二次说“工作好”。连人类都不知道“哪个更好”,怎么给模型反馈?如果人类的反馈本身有偏见,模型只会被引导到更歪的方向。
这是今天 RLHF 还没解决的终极问题——也是未来大家可以研究的方向。
九、总结:大模型训练的完整流程
最后我们串一下大模型训练的三个阶段:
- 预训练(Pre-training):从网上爬数据,学文字接龙,得到“基础模型(Foundation Model)”——虽然现在没用,但却是后续训练的地基;
- 指令微调(Instruction Fine-tuning):人类给“问题-答案”对,教模型“按指令做事”;
- RLHF:人类给“答案排序”,训练回馈模型,让模型学“人类喜欢什么”——这一步让模型从“会做题”变成“会做事”。
其中第二、三阶段因为引入了人类反馈,让模型“对齐人类需求”,所以又统称为“对齐(Alignment)”。
接下来就请助教给大家讲作业6——我们会实际动手做 RLHF,亲身体验一下“怎么让模型学人类的喜好”。有问题的同学,课后可以再跟我讨论。谢谢大家!
更多推荐
所有评论(0)