01 偏好学习与对齐
去年十月份左右开始写了一篇文章 Iterative Preference Learning from Human Feedback: Bridging Theory and Practice for RLHF under KL-Constraint,文章主要包括两个部分,一个是想要做整个 RLHF 的理论,另一个是想展现在 RLHF 中加入 online data 的好处,从而启发大家在这个方向进行探索(而不是不停的设计 offline 算法的变种)。
论文链接:
https://arxiv.org/pdf/2312.11456
最近正好刚刚写完一个关于奖励函数训练的文章,于是决定一起写一篇文章来介绍一下最近的这个工作。
文章中会有一些数学,我尽量把数学细节省略,而集中在解释理论带来的启示与实验结果验证上,如果对理论感兴趣的同学可以参看我们原始的论文,或者也可以私信我和我一起讨论。
我们在这里讨论最经典的 Bradley-Terry 模型下奖励函数优化的框架,最近有一些工作考虑 general preference oracle,例如 IPO,与 nash learning,这篇文章中的技术大部分也可以扩展过去,之后有机会再写一些文章来讨论。
1.1 偏好学习的定义
我们用
表示一个 prompt, 用
表示一个回复。我们假定我们有一个初始模型
, 它经过预训练和监督微调(instruction-following training), 我们的目标是更改它的输出分布, 使得它能被人类所喜欢。
偏好信号:
与 SFT 不同, 在 SFT 中我们从标记数据中学习, 而 RLHF 从相对反馈中学习。形式上, 对于每个比较对
, 偏好预言满足
, 表示在给定提示
的情况下,
优于
的概率。
偏好数据收集:
我们假设提示是从分布
中采样的, 并且我们有两个行为策略
用来采集回复, 那么一个比较对的采集方式可以表示为
其中随机偏好信号
表示
更好, 反之, 表示
更为人喜欢。我们总结大模型训练的不同阶段:
▲ LLM 训练不同阶段对比
Bradley-Terry model and Reward:
实践中最广泛使用的偏好模型是 Bradley Terry 模型:我们假设存在一个真实奖励函数
,使得偏好概率满足:
由此,优化 preference oracle 被转化到奖励函数的优化上。现实中,由于 BT model 不能完全刻画人类偏好,也出于防止过拟合有限偏好数据,训练稳定性等等考虑,我们一般优化下面的带正则的目标:
1.2 Offline/Online; Off-policy/On-policy
我们用 Offline 指代从一个给定的偏好数据集中学习,并且在学习中,我们无法进一步让 Human 给出偏好信号,而相应的 Online 指的是我们可以在训练过程中让 Human 为我们标数据。
换言之,区分 online/offline 最关键的在于 preference signal 采集的模式不同。
因此,下面的这些算法都是 offline 的:
DPO 直接在给定的数据集上进行偏好学习:offline
我们从一个给定的数据集训练得到一个奖励函数,并使用 PPO 优化这个奖励函数:offline
我们从一个给定的数据集训练得到一个奖励函数,并使用 rejection sampling finetuning 优化:offline
一个相关的概念是 on-policy 与 off-policy,我们用 on-policy 指代那些采集数据的策略与要改进的策略是同一个策略的情况,而 off-policy 指代那些使用某个行为策略采集数据,但是用以改进另一个策略的算法。
换言之,区分 on-policy/off-policy 最关键的在于 responses 采集的模型不同。
我们给出以下例子:
我们从一个给定的数据集训练得到一个奖励函数,并使用 PPO 优化这个奖励函数:on-policy
02 主要理论结论
这一节我们主要讨论理论结果,我们作如下的假设。
Computational Oracle:
对于任何给定的奖励函数
,KL-regularized 优化问题有如下闭式解:
其中
。这个闭式解没法直接利用, 因为归一化系数
需要遍历
一个至少是指数大小的空间。这里我们先假设我们可以近似
。
Linear Reward Space:
我们假设
, 其中
是一个特征抽取函数, 这里只是为了叙述简单, 分析可以用这篇论文里的技术直接推到一般函数情况。
2.1 Offline Learning
在 offline 的情况下,我们从偏好数据集
中学习,并且无法进一步让 human 打标签。这种情况下,如果我们采用一个比较保守的奖励函数,在每个点上对奖励增加一个不确定性的惩罚,也就是
其中,
是数据集上的协方差估计。直观理解是, 给定一个固定的数据集, 我们无法准确估计每个点的奖励函数, 因此, 对于不确定性大的估计, 我们要针对这一点进行惩罚, 这个惩罚就是这个点在协方差上的投影
, 之所以要减掉一项针对
期望的特征, 是因为在偏好学习中, 我们只能估计特征差的不确定性而不能处理单个回复的不确定性。我们有如下结论。
Theorem 1:
以高概率成立有,
为了进一步解释这个结果,我们一般会进一步作如下假设:
这里的
取决于采集 offline 数据集的策略对
与目标策略对
的分布偏移。很遗憾的是, 在 LLM 场景下, 由于输出长度很长, 这个偏移量通常非常大, 例如, 在 Claude paper 中, 我们可以看到训练过程中策略与起始点的 KL 能到接近 30。
▲Figure 13 of Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback.
这说明
. 一般来说, 我们很难预期 offline dataset 与我们目标的分布偏移是小的, 因此
通常是一个极大的数。
2.2 批量混合训练(Batch hybrid learning)
在 LLaMA2,Instruct-GPT,Claude 的 technical report 中(怀念大家还愿意分享技术细节的时代),事实上他们的 RLHF 都不是 offline 进行的,总结而言,他们都是进行一种批量混合训练
离线阶段:open-source dataset + 使用
及其变种(例如 best-of-n)采集初始数据集
在线阶段:在训练的过程中,将一些中间步骤得到的模型进行部署,让 human 对新模型的输出进行标签,这个步骤通常以周为单位迭代,更新相对比较稀疏,所以是 batch。
我们先提供一个直觉上,为什么在线探索对训练有帮助的解释。首先,由于奖励函数也是从预训练大模型训练而来,通常来说,他的泛化性能并不会特别好,因此,如果我们希望奖励函数能够准确的评估某个分布下的回复,那它必然在训练集中需要看见过这类样本,由于初始的模型
还没有被 align 过,它能采样得到的回复的奖励分布主要集中在比较低的区域,大概如下图所示:
▲ 回复的奖励分布图,主要集中在中低奖励上。
因此, 如果我们用
采集数据并训练奖励函数,因为数据集中高奖励的数据比较少,它很可能不太能准确判断两个高奖励的回复谁更好,这样就会出现所谓的 over-optimization 的现象。
▲ Figure 1 of Scaling Laws for Reward Model Overoptimization.
我们可以看到, 实线(ground truth
) 与虚线(训练得到的
)在前期分布偏移较小的时候, 增长趋势是一致的, 这说明训练得到的奖励函数能够比较好的区分在
附近的样本, 随着训练过程中, 策略奖励不断提升, 给出的回复与原始策略的偏移也逐渐增大, 最终我们从 offline 数据集训练出来的
彻底崩溃, 导致真实奖励反而下降。
因此,如果我们在训练的中间,用当前的策略收集一些数据,加入到奖励函数训练集中重新训练奖励函数,就能让奖励函数有能力在高奖励区域给出有效的信号,从而获得更好的模型。
这是一个朴素的在线学习带来好处的直觉。
为了分析这样的一个过程, 我们考虑下面的一个算法, iterative DPO:
这里的 DPO 是对于我们假设的 computational oracle 的一个自然近似,我们有如下结论。
Theorem 2
最多经历 d 次迭代,我们可以找到一个策略,其满足
这里的 m 是每轮的 batch size。
首先,和纯 offline 算法相比, 在第二项中,现在计算协方差的数据集有两部分
我们预期在线数据会很大程度改进
, 这是由于我们试图去 cover 的对象是
, 而我们采集数据的是
。随着训练进行,
, 我们 cover 的目标和采集数据的策略之间的分布偏移逐渐减小, 带来的就是一个更小的
。这也和我们刚才的直觉理解是一致的, 我们在算法训练中间得到的模型, 在采集一些高奖励回复(