3、RLHF基础回顾:强化学习与人类反馈的结合,PPO算法简介,奖励模型的作用

好,咱们进入第三章。说实话,RLHF(Reinforcement Learning from Human Feedback)这个概念,这两年已经被讲烂了。但真正上手调过的人,其实不多。

我刚开始接触RLHF的时候,也踩过不少坑。最典型的一个误区就是——以为RLHF能解决所有对齐问题。结果呢?模型训出来,要么太保守,要么直接崩掉。后来我才明白,RLHF不是万能药,它是一把需要精细操作的手术刀。

这一章,咱们就把它拆开来看。核心就三块:强化学习怎么跟人类反馈结合、PPO算法到底在干什么、奖励模型为什么是灵魂。

3.1 强化学习与人类反馈:为什么需要结合?

先问一个问题:SFT(监督微调)训出来的模型,够用吗?

答案是:不够。SFT本质上是在模仿人类写的数据。但人类写的答案,不一定是最优的。而且SFT只能学到「什么是对的」,学不到「什么是更好的」。

举个例子。你让模型写一段产品文案。SFT可能写出一个及格分60分的版本。但RLHF能帮它找到80分、甚至90分的版本。为什么?因为RLHF引入了「偏好」的概念。

人类反馈,说白了就是告诉模型:这两个回答,我更喜欢A,而不是B。这种偏好信号,比单纯的「对错」要丰富得多。

我在项目中遇到过一种情况:SFT模型在客服场景里,回答总是很生硬。用户问「我的快递怎么还没到?」,模型直接回复「您的快递正在运输中,请耐心等待」。这话没错,但用户不满意。后来我们用RLHF,让标注员给「更有人情味」的回答打高分。模型很快就学会了说:「我理解您着急的心情,我帮您查一下具体进度。」

你看,这就是人类反馈的价值——它能把模型的「知识」转化成「智慧」。

核心要点:

  • SFT负责「学会说话」,RLHF负责「说好话」
  • 人类反馈提供的是偏好信号,不是绝对正确信号
  • RLHF能让模型在多个「正确」答案中,选出「更优」的那个

3.2 PPO算法简介:RLHF的引擎

好,现在我们知道要用人类反馈来指导模型。但具体怎么指导?这就需要一个强化学习算法来干活。目前最主流的,就是PPO(Proximal Policy Optimization)。

PPO这个名字,听起来挺唬人。但说白了,它解决的是一个核心问题:怎么让模型在「探索」和「稳定」之间找到平衡

你想想看,如果让模型随便乱试,它可能会生成一些离谱的句子。但如果完全不让它试,它又学不到新东西。PPO的做法很聪明——它给模型加了一个「信任区域」。

什么意思呢?就是每次更新参数的时候,不要迈太大的步子。步子迈大了,容易扯着蛋。PPO通过一个裁剪(clip)机制,确保新旧策略的差异不会太大。

我习惯把PPO的核心逻辑总结成三步:

  1. 采样:用当前模型生成一批回答
  2. 评估:用奖励模型给这些回答打分
  3. 更新:根据分数调整模型参数,但限制更新幅度

这里有个细节,我曾经吃过亏。PPO的更新幅度控制,有一个超参数叫ε(epsilon)。默认值通常是0.2。但我在一个对话生成任务里,发现0.2太大了,模型训着训着就开始重复说同一句话。后来我把ε调到0.1,问题就解决了。

所以,不要迷信默认参数。每个任务都有自己的脾气。

个人经验:

PPO的KL惩罚系数也很关键。如果模型训出来变得「太油」,说话像销售,那多半是KL惩罚设得太小了。我一般从0.02开始调,效果不好再往上加。

下面这张图,是我自己画的一个PPO训练流程。你可以看到,整个循环其实很清晰:

PPO训练流程示意图 初始语言模型 采样生成回答 奖励模型打分 PPO策略更新 循环迭代 裁剪机制 限制更新幅度 KL惩罚 防止策略漂移

3.3 奖励模型的作用:RLHF的灵魂

聊完PPO,咱们得说说奖励模型。没有它,PPO就是个瞎子。

奖励模型(Reward Model,简称RM)的作用,说白了就是给人类偏好建模。它接收一个文本序列,输出一个标量分数。分数越高,代表人类越喜欢这个回答。

怎么训练奖励模型?流程是这样的:

  1. 让模型对同一个prompt生成多个回答
  2. 让标注员对这些回答进行排序(不是打分,是排序)
  3. 用排序数据训练一个二分类模型,让它学会预测「哪个回答更好」

这里有个关键点,我刚开始做的时候没注意——排序比打分更可靠。为什么?因为人类很难给一个抽象的回答打80分还是85分。但让人类在两个回答里选一个更好的,这个判断就稳定得多。

避坑指南:

我曾经在一个项目里,让标注员直接给回答打分(1-5分)。结果发现,不同标注员的打分标准差异巨大。有人觉得4分是「还行」,有人觉得4分是「非常好」。后来改成排序,一致性就高了很多。

所以,永远用排序,不要用打分。这是RLHF的铁律。

奖励模型训练好之后,它的输出就变成了PPO的「奖励信号」。模型生成一个回答,RM给一个分数,PPO根据这个分数去调整模型参数。

你可以把奖励模型理解成一个「品味过滤器」。它把人类的品味,编码成了一个可计算的函数。模型每生成一句话,RM就在旁边说:「嗯,这句话有品味,加1分。」或者:「这句话太俗了,扣2分。」

久而久之,模型就学会了什么是有品味的表达。

3.4 三者如何协同工作?

好,现在我们把三块拼起来:

  • 强化学习:提供训练框架,让模型学会在「探索」中优化
  • 人类反馈:提供偏好信号,告诉模型什么方向是对的
  • 奖励模型:把人类反馈编码成可计算的奖励函数

这三者缺一不可。没有强化学习,模型不知道怎么更新。没有人类反馈,模型不知道往哪更新。没有奖励模型,人类反馈没法规模化。

我个人的习惯是,在开始RLHF训练之前,先花大量时间打磨奖励模型。因为奖励模型的质量,直接决定了最终效果的上限。PPO再厉害,也救不了一个烂奖励模型。

一句话总结:

RLHF = 强化学习(PPO) + 人类偏好(排序数据) + 奖励模型(品味编码器)

三者协同,才能让模型从「会说话」进化到「说好话」。

嗯,这一章的内容就到这里。记住,RLHF不是一锤子买卖。它是一个迭代的过程。奖励模型要反复调,PPO参数要反复试。别指望一次就能跑通。

我见过太多人,RLHF跑了一轮,效果不好就放弃了。其实,多调几轮,效果会明显不一样。


公众号:蓝海资料掘金营,微信deep3321