RLHF 三步各吃什么数据

建议用时:25 分钟(含练习)

学习目标

能够按数据形态拆开监督微调、奖励模型与策略优化三步,并说出 PPO 每一步在优化什么。

本节产出

一份三步数据流图与每步的输入清单

核心知识:三步吃的是三种数据,不是一批数据用三遍

"拿人工反馈调一下模型"这句话里藏着一个误解:好像标注者给的那批数据会被连着喂三遍。真实形状是三道工序,每道工序收的货形态不同,交出去的东西也不同。形态搞错,收益就会漏在最不容易被看见的地方。

InstructGPT 那篇论文的摘要把顺序写得相当直白(本节所有主张只核到 arXiv 摘要页,正文与图表未取):先从标注者写的提示出发,收集标注者写的示范(labeler demonstrations),用监督学习去微调一个基座模型;然后另外收集一批对模型输出的排序(rankings of model outputs),用这批排序把上面那个监督微调过的模型继续用强化学习微调下去。摘要开头还钉了一句判断依据:模型变大本身并不会让它更擅长跟随用户意图。这就是为什么这三步需要人工介入——不是算力不够,而是"什么算答得好"这件事没写在语料里。

三步各收什么、各交什么

工序进来的数据形态谁生产它出去的东西这一步实际在优化什么
监督微调一问一答,答案是人写的标注者写理想回答会按人想要的样子开口的初始策略让下一词的分布靠近人写的那段答案
奖励模型同一提示下的几条输出,被人从好排到差标注者只做比较一个能给单条输出打分的打分器把"谁比谁好"压成一个数
策略更新策略自己采出来的新输出,交给打分器要分模型采样、打分器评分更贴合偏好的新策略在旧策略附近把拿到的分数抬上去

这张表的读法只有一句:每一行的"进来"都不是上一行的"出去"。 第一步吃人写的回答,交出一个模型;第二步吃比较,交出另一个模型(打分器);第三步吃的是这两个模型配合着当场产生的新数据。三步之间是换料,不是重复加工。

为什么第二步不干脆让人多写几份答案

写一份理想回答,标注者要想内容、想格式、想边界;比较两份现成的输出,只需要指一下"这条比那条好"。后者便宜得多,而且它管的正是模型已经会生成、但生成得不好的那一片区域——人未必写得出更好的答案,却认得出哪个更差。(这是机制解释,属推断,摘要里没有这句话。)

代价也长在同一处:比较数据里不含"理想回答长什么样",它只含相对次序。把相对次序压成一个分数,一定要丢东西,丢掉的是"好多少"。这条代价在第 5 节会被单独拆开讨论,那里的一处近似就叫"成对偏好可以被逐点分数替代"。

第三步里的 PPO 到底在优化什么

PPO 的摘要(同样只核到摘要页)写了三件事。第一,它是一族策略梯度方法,在"与环境交互采样数据"和"用随机梯度上升优化一个代理(surrogate)目标函数"之间来回交替。第二,标准策略梯度每个数据样本只做一次梯度更新,而 PPO 换了一个目标函数,使同一批数据可以做多轮小批量更新。第三,作者把它的性质写成带有 TRPO 的一部分好处,但实现更简单、更通用,经验上样本复杂度更好。

"代理"这个词是理解第三步的钥匙。被优化的不是环境的真值,而是一个近似:这批样本是在旧策略下采出来的,估计只在离旧策略不远的地方才算得准。所以"同一批数据敢用好几轮"的前提,是每一步都别走太远。摘要说它带有 TRPO 的一部分好处,"更新被限制在旧策略附近"是这个思路的通常读法,本课把它标成推断;究竟靠什么形式把步子限制住、系数取多少,正文没取,本节一个数字都不写。

用大白话说清这三步各自在优化什么:第一步在优化"照着人写的答案说话",第二步在优化"能像人一样排出先后",第三步在优化"在自己新采出来的答案上拿到更高分"。第三句里的主语是模型自己,这也是它和前两句最不一样的地方。

最容易混的三处

看起来像

  • 三步就是把同一批标注数据训练三遍
  • 排序数据里也顺带带着"标准答案"
  • 打分器给出的分数就等于质量

其实是

  • 三步吃三种形态,第二步那批排序是另外收集的
  • 排序只有相对次序,没有一份可以抄写的理想回答
  • 打分器只在第二步那批数据的分布上拟合过,策略一变,它面对的就是没见过的输入

第三处是本节最要紧的一处隐患。第三步里模型会不断生成新分布的输出,而打分器只见过排它时那批旧输出。分数继续涨,可能只是模型找到了打分器的盲区。第 5 节里"拟合出的打分器能不能泛化到策略自己采出的数据"这一处近似,就是这么来的。

三步各吃什么数据:标注示范进监督微调,多个输出的排序进奖励模型,奖励再进策略更新

这张图承担的论证是三种进料互不替换。五个方框里只有两批数据(标注示范、输出排序)和三道工序(监督微调、奖励模型、策略更新)。箭头看着像一条流水线,要盯的却是数据方框的位置:喂监督微调的是人写的问答对,喂奖励模型的是同一题下几条输出排出的次序,这两批料形态不同,谁也不是谁的出料;最后那道策略更新吃的,是前两个方框合起来才能给的东西——新采的输出配一个分数。本图只画单程:第三步内部"采样、更新几轮、丢弃、重新采样"的那个回路没有画进来,它由练习 2 的伪代码承担。

案例:星湾社区服务中心手里的五份数据(虚构)

星湾社区服务中心给居民做政策咨询问答,回答通过 https://api.example.invalid/v1 调一个虚构模型 example-chat-mini 生成。2026 年 9 月起,张老师带两名工作人员收数据,李陌负责整理,周衡负责训练,许岚负责验收。下面这张表和后面三行读数都是课堂编的教学用虚构样例,机构、人名、接口、模型名和数字都不对应任何真实系统。

批次里面是什么(形态)数量(虚构)谁生产的
D1居民问句,加张老师团队手写的标准回答1200 组人写
D2同一问句下模型给的 4 条输出,李陌从好排到差800 组人比较
D3同一问句下 2 条输出,只标了"哪条更好",没人写过答案1500 对人比较
D4策略更新之后模型自己采的新回答,每条带打分器给的一个分数6000 条循环自己产生
D5一条回答配一个"合格 / 不合格"标签,没有同题的另一条做对照900 条人贴单条标签

10 月中旬第一次跑,周衡犯了两处最典型的错。

第一处:他把 D3 当成"少了点量的 D1",直接当示范喂进监督微调。D3 里没有任何人写的理想回答,只有"哪条更好"。监督微调不管谁更好,它对每一条都照抄,于是被判差的那条一样进了学习目标。他原本想省掉第二步,结果第一步也没走好。

第二处:他把 D5 塞进奖励模型那一步,理由是"这也是人对质量的判断"。形态不对:奖励模型学的是同一个问题下几条输出的次序,D5 是各题孤立的单条标签。打分器照样能训出来,但它学到的不是"这一条比那一条好",而是"这类回答值几分"——而"这类回答"里混着问题本身的难易。哪类问题更容易被工作人员判合格,这个分布特征被当成质量本身记了进去。

许岚在复盘会上把话说得很直:D5 在这三步里哪儿都不进,它缺的是同题对照。这种"逐条带标签"的形态有它自己的走法,第 5 节会用到。

三行虚构日志(读数为教学用虚构样例):

2026-10-12 03:41  stage=reward  batch=D5  一致率=0.53  备注:同题只有一条,比较无从建立
2026-10-12 03:44  stage=policy  kl=0.09   平均长度=214字  奖励=6.1   抽查合格率=持平
2026-10-12 04:02  stage=policy  kl=0.61   平均长度=688字  奖励=7.4   抽查合格率=下降

第三行是本节最该记住的一种形状:奖励在涨,抽查合格率在掉,同时长度和分数一起动、离初始模型越来越远。单看那条奖励曲线,这是一次"成功"的更新;把三个读数摆在一起,它是模型找到了打分器的盲区。这就是第 3 节说的"会撒谎的数字",落在本节第三步上的具体样子。

动手练习

  1. 五份数据归位。输入:案例里 D1 到 D5 的形态描述。任务:各判它进三步中的哪一步;判不进去的那份,写明它缺了哪一格;再从五份里挑出两份最容易被归错的,各写一句"归错之后会发生什么"。预期输出:五行判定,每行给"形态关键词、归入的工序、依据",外加两段后果说明。验收条件:至少两行点明进料的形态关键词与那道工序产出物的对应关系;不许用"更准""更好"当依据;判不进任何一步的那行必须写清缺的是同题对照还是理想回答。
  2. 写一次 PPO 外循环。输入:本节第三步的描述。任务:用不超过八行伪代码写出一次外循环里采样与更新的次序,并标出其中最容易失控的一步。预期输出:一段八行以内的伪代码,加一句"失控点在哪、为什么"。验收条件:代码里要能看出"同一批样本被更新多轮"和"用完就丢掉、重新采样"这两件事;失控点必须落在采样与更新的相对位置上,不许写成"学习率太大"这类跟本节无关的答案;不要求跑通,也不引入任何具体数值。
  3. 交三步数据流图与输入清单。输入:第 1 题的归位结果。任务:用表格、文字或手绘都行,给出三步各自的一张小图,每步写满三格——进来的数据形态、谁生产、出去的东西。预期输出:一份能让别人照着复述的清单。验收条件:三个方框里不许出现"数据一批""训练数据"这种不写形态的说法;清单上必须看得出第二步的进料不是第一步的出料。

参考答案与推演

完成检查

  • 不用"同一批数据训练三遍"这种说法,就能把三步各吃什么数据、各交出什么讲成三句互不引用的话。
  • 能解释 PPO 为什么敢在同一批样本上做几轮小批量更新,说清这件事的前提是什么、前提被越过之后先坏的是哪一格。
  • 能对 D1 到 D5 任一批数据说出它的形态关键词,以及它为什么进不了某一步。

参考与来源

附件

RLHF 三步各吃什么数据

3 道题 · 及格分 60 分

开始测验