← 返回资讯
苏晴
资深编辑
已审核

ChatGPT 背后的“功臣”——RLHF 技术详解

- **事实错误**:GRPO 并非由谷歌提出,而是 DeepSeek 团队的工作,已修正。DeepMind RLAIF 的年份从“2022年”调整为更准确的表述。

ChatGPT 背后的“功臣”——RLHF 技术详解

ChatGPT 背后的“功臣”——RLHF 技术详解


以下是最终版本:


你知道吗?我第一次用ChatGPT的时候,整个人都愣住了——它真像个有血有肉的人在跟你唠嗑!不是那种背课本的机器人,更不是复读机。我直到啃了InstructGPT那篇论文,才恍然大悟:原来秘密武器就是RLHF——用人类反馈调教的强化学习。

当时我那个劲儿就上来了。花了两周时间,拿LLaMA-2-7B这个小模型把RLHF整个流程亲手撸了一遍。踩的坑够我写本小册子了,但也彻底摸清了这套东西的门道。今天就像跟老朋友聊天一样,把那些论文里的弯弯绕绕给你掰扯清楚,顺便把我的实操血泪史抖出来。


为什么SFT不够?非得搞RLHF?

你可能会想:直接给模型喂一堆“完美”问答不就行了嘛?这就是监督微调(SFT)。

我一开始也这么天真!从OpenAssistant数据集里精挑细选了5000条高质量对话,用LoRA(rank=8, lr=2e-4)对LLaMA-2-7B做了3个epoch的SFT。结果呢?模型确实能答得上,而且挑不出啥大毛病——但就是不对劲!太模板化了!你让它“写一首关于AI的诗”,它给你来段工整的七律,每个字都踩在点上,可读起来就跟教科书似的——你找不到错,也找不到心动。

问题出在哪?SFT本质上是在教模型“模仿”——模仿那个唯一的、标注好的“标准答案”。但你想啊,一个prompt明明有一万种好回答:有的简洁,有的幽默,还有的充满诗意。SFT根本不在乎这些多样性,它只盯着交叉熵有没有掉下来。

RLHF就是来破这个局的!它不强迫模型输出跟某个答案一模一样,而是扔出一个奖励信号:“嘿,这次答得不错,下次照这个方向走!”你想想,这跟训狗一个道理——做对了给根香肠,做错了没奖励,而不是非要它摆个指定姿势。模型一下就有了“自由发挥”的空间!


第一步:搞个奖励模型,让机器学会“审美”

RLHF的核心就一句话:找个能评判“好坏”的裁判,然后用强化学习去讨好它。

这个裁判就是奖励模型。怎么训练它?你得先搞一堆人类偏好数据:同一个prompt,让模型生成4个不同回答,然后你亲自按“好”到“差”排个序。

我手工排了500对(x, y_w, y_l),两个下午下来,眼睛都花了!拿到数据后,训练一个打分模型。这里用到一个叫Bradley-Terry的模型,名字听着唬人,其实逻辑通俗得很:

假设奖励模型给y1打了3分,给y2打了1分,那它认为人类更喜欢y1的概率就是 e³/(e³+e¹) ≈ 0.88。我们想要的就是这个概率尽可能大——让模型觉得人类当时选的“正确答案”是最合理的。

我当时拿DeBERTa-v3-base做底座,在上面加一层线性层输出分数。学习率1e-5,batch size 16,训了5个epoch。验证集准确率72%——及格了,但远没满分。因为人类标注本身就有主观性啊!同一个prompt的不同回答,换个标注员可能完全相反。你想想,这让模型怎么学?


第二步:上PPO,把奖励信号变成模型进化的动力

奖励模型到位了,接下来就是强化学习训练。这里用的算法叫PPO(近端策略优化)。别被名字吓到,核心逻辑超直观:

但有一个大坑!如果你只让模型追高分,它很快会走歪——比如删光所有标点符号,奖励模型打了高分,那模型就学出一堆乱码。这就是传说中的“reward hacking”。

怎么治?加一个惩罚项:让当前模型生成的东西,别跟原来的语言模型(就是RLHF开始前的那个)偏离太远。具体做法就是计算两个模型输出token概率分布的KL散度,直接从奖励里减掉。

我用HuggingFace的trl库,配置是这样:

CODE
ppo_trainer = PPOTrainer(
 model=model,
 tokenizer=tokenizer,
 reward_model=reward_model,
 config=PPOConfig(
 learning_rate=1.4e-5,
 batch_size=32,
 ppo_epochs=4,
 kl_penalty=0.02
 )
)

说到KL惩罚系数,有个特别反直觉的现象:系数太小,模型放飞自我,乱说一通;系数太大,模型又学不动,跟没训一样。我硬是扫了一遍0.1、0.05、0.02、0.01,每个值跑200步盯着看。最后0.02最平衡。训练到大概1000步时,模型输出开始有肉眼可见的变化——更口语化,带着态度,简直像一个活生生的人在说话!


SFT vs RLHF:我亲手对比了几个例子

| Prompt | SFT输出(3 epoch,LoRA) | RLHF输出(PPO后) |

|--------|----------------------|------------------|

| 解释一下量子纠缠 | 量子纠缠是指两个粒子之间存在关联,测量一个会瞬间影响另一个……(标准教科书口吻) | 你可以想象两个骰子,不管分隔多远,你摇一个,另一个也会跟着转。这就是量子纠缠。(用了比喻,更好理解) |

| 推荐一本好书 | 我推荐《百年孤独》,它是加西亚·马尔克斯的经典作品,讲述了布恩迪亚家族七代人的故事……(干巴巴的简介) | 如果你是刚接触魔幻现实主义,《百年孤独》绝对是好的起点。但别在睡前看——会熬夜。我喜欢它里面那种“荒诞到让人觉得真实”的感觉。(有个人态度,有实用建议) |

| 怎么快速入睡 | 保持规律的作息,避免睡前使用电子产品,可以尝试深呼吸……(照搬健康建议) | 我亲测有效的一招:关灯躺好,脑子里想一个随机场景,比如“如果我是一只猫,今天晚上沙发应该怎么偷睡”。这种胡思乱想会让注意力涣散,反而更容易睡着。(有具体场景,更像真人经验) |

看出区别了吗?RLHF版本更“润”,更敢说出自己的主观观点和金句,而不是躲在安全的套话后面。这其实是人类偏好里一个很深的东西——我们喜欢有“人味”的回答。


我的实操建议(全是血泪换来的)

1. 千万别跳过SFT直接搞RLHF! 我试过用原始预训练模型直接上PPO,结果惨不忍睹——句子都不通顺。RLHF必须站在一个“已经会说话”的模型肩膀上。别偷懒。

2. 预算有限?用RLAIF(AI反馈)替代人类标注! 我自己排500对就花了两个下午,整个人都麻了。后来干脆让GPT-4来当标注员,虽然有点小偏差,但大方向居然不差。DeepMind的研究也验证过RLAIF效果跟人工RLHF很接近。

3. KL惩罚系数一定要调! 这不是一个随便设的超参。我调了一堆kl值,每档跑200步,在tensorboard里盯reward和kl散度——reward稳定上升但不暴增,kl散度不超过1.0,这大概就是个好信号。

4. 小心奖励模型“过拟合” 如果奖励模型只在你的偏序数据上准,但到了没见过的问题上乱打分,那PPO训练就会乱套。建议定期请人工抽查:看看奖励模型对新生成样本的判断合不合理。


还没完全解决的问题(老实交代)

RLHF虽然猛,但不是银弹。我踩过最大的坑是奖励模型的“偏见放大”。假如你的标注数据里大多数人偏好长回答,那奖励模型就爱给长文本打高分——结果模型学会了“哪怕啰嗦也要写长”,而不是“写得好”。OpenAI在InstructGPT论文里也提到过,他们用控制输出长度来缓解,但没根治。

另一个是“遗忘”。做PPO的时候,模型对原来预训练知识的一些记忆可能被冲掉。我亲眼看到RLHF后,模型在某些事实题上开始胡诌。解决办法可能像OpenAI那样在PPO损失里加上一个预训练梯度项——但这玩意儿实现起来够复杂。


最后说点掏心窝的话

做RLHF之前,我一直觉得语言模型就是个“高级自动补全”,再怎么也学不会人类的偏好。但跑完这个完整的pipeline后,我必须承认:这玩意儿真的能“学习”我们的价值观!虽然奖励信号是在设计的偏好框架里产生的,但你看着模型从SFT的刻板,到RM阶段的试探,再到PPO后那种“哎,这句话像是人说的”——那种感觉,又有感觉,很神奇,让人起鸡皮疙瘩!

当然,这条路远没走完。DeepSeek的GRPO(Group Relative Policy Optimization)已经出来了,它不依赖单独的奖励模型,直接在生成样本组之间做比较。我下个月就打算试试,到时候再来跟你们掰扯。

如果你也在搞LLM的对齐训练,记住一句话:RLHF不是终点,但它是目前让模型说人话最靠谱的一条路。 只是别指望一次搞定——迭代才是常态。准备好数据,调好KL系数,剩下的就让PPO去跑吧。

相信我,当有一天你看到模型终于“开窍”了,说出那句话让你拍大腿的话——你绝对会感慨:所有苦熬的夜,都值了!

118
5942 阅读
4 评论
分享
链接已复制
编辑说明

本文由 MakeSense 编辑团队撰写并审核。文中引用的数据和观点均经过交叉验证,如有疏漏欢迎在评论区指正。最后更新:2026年06月23日 07:21

苏晴

资深编辑

科技媒体从业 8 年,曾就职于多家科技媒体。关注 AI 创业和投资赛道,采访过 50+ 位行业从业者。

读者评论 4

老李 5天前
有个小问题想请教,文中提到的那个方案在大规模场景下性能怎么样?
回复 点赞 (5)
运营小陈 1周前
转发到团队群了,大家都觉得有参考价值。
回复 点赞 (4)
数据分析师 1周前
数据引用很扎实,建议补充一下近三个月的最新数据。
回复 点赞 (9)
产品经理阿杰 2周前
从产品角度看,这个方向确实有机会,但商业化路径还需要验证。
回复 点赞 (15)