今天正式进入大模型训练的第三阶段——这是让模型从“会做题”变成“会做事”的关键一步,也是鼎鼎大名的 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 里“分类”出“下一个最可能的字”;
  • 阿尔法狗:从棋盘所有可能的落子点里“分类”出“下一个最可能赢的位置”。

只是从“整体”看,两者都是“生成式任务”——语言模型生成一句话,阿尔法狗下完整盘棋。

第二步:再看“学习阶段”的对应关系

阿尔法狗的学习分两阶段,正好能对应语言模型的前两阶段和第三阶段:

  1. 阿尔法狗第一阶段:跟棋谱学
    看人类高手的棋谱,人类下哪里,它就跟着下哪里(比如棋谱里“这里下一步下33”,它就下33)。
    这对应语言模型的第一阶段(预训练)和第二阶段(指令微调)——人类老师说“下一个字接什么”,模型就接什么,本质是“模仿人类”。

  2. 阿尔法狗第二阶段:用 RL 学
    光跟棋谱学不够,想打败顶尖高手,还得自己跟自己下棋(或跟其他版本的自己下)。下完一局,如果赢了,就提高这局里“好棋”的出现几率;如果输了,就降低“坏棋”的几率。
    这对应语言模型的第三阶段(RLHF)——模型生成多个答案,人类判断“哪个好”(相当于“告诉模型赢了还是输了”),模型再优化参数,提高“好答案”的几率。

第三步:关键差异:“反馈信号”的来源不同

虽然逻辑像,但两者的“反馈信号”有个核心区别:

  • 阿尔法狗的反馈很明确:下完一局,按围棋规则就知道“赢还是输”,不用人类介入;
  • 语言模型的反馈不明确:一句话“好不好”没有标准答案(比如“台湾最高的山是玉山”,有人觉得“够了”,有人觉得“该补充海拔”),所以必须让人类“给排序”(比如“答案A比答案B好”),而不是直接说“好或坏”。

这就是为什么 RLHF 里,“让人类排序答案”比“让人类评好坏”更常用——因为“相对好坏”比“绝对好坏”更容易判断。

四、RLHF 的核心技术:用“回馈模型”代替人类

人类的时间和精力是有限的——总不能每次模型需要反馈,都找真人来判断吧?所以 RLHF 里有个关键技术:训练一个“回馈模型(Reward Model)”,让它模仿人类的喜好,代替真人给反馈

1. 怎么训练“回馈模型”?

训练过程很简单,就三步:

  1. 收集人类反馈数据:让人类对“模型生成的两个答案”排序(比如“答案1比答案2好”);
  2. 定义回馈模型的任务:给回馈模型输入“问题+答案”,让它输出一个“分数”——如果答案1比答案2好,那么“问题+答案1”的分数要比“问题+答案2”高;
  3. 训练模型:用收集到的人类排序数据,训练回馈模型,直到它能“准确模仿人类的判断”(比如人类觉得好的答案,它给高分;人类觉得差的,它给低分)。

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 还没解决的终极问题——也是未来大家可以研究的方向。

九、总结:大模型训练的完整流程

最后我们串一下大模型训练的三个阶段:

  1. 预训练(Pre-training):从网上爬数据,学文字接龙,得到“基础模型(Foundation Model)”——虽然现在没用,但却是后续训练的地基;
  2. 指令微调(Instruction Fine-tuning):人类给“问题-答案”对,教模型“按指令做事”;
  3. RLHF:人类给“答案排序”,训练回馈模型,让模型学“人类喜欢什么”——这一步让模型从“会做题”变成“会做事”。

其中第二、三阶段因为引入了人类反馈,让模型“对齐人类需求”,所以又统称为“对齐(Alignment)”。

接下来就请助教给大家讲作业6——我们会实际动手做 RLHF,亲身体验一下“怎么让模型学人类的喜好”。有问题的同学,课后可以再跟我讨论。谢谢大家!

Logo

更多推荐