基于人类反馈的强化学习 (RLHF) 使得大语言模型的输出能够更加符合人类的目标、期望与需求,是提升许多闭源语言模型 Chat-GPT, Claude, Gemini 表现的核心方法之一。在此之前,传统的开源解决方案是基于离线数据集的直接偏好优化 (DPO),并获得了一系列的明显超出 SFT 的开源模型。然而,在过去的几个月中,许多研究表现,在线迭代版本的 RLHF 算法通常要明显超过他们的离线版本。与此同时,开源社区在这个领域暂时还没有一个完整的、易于复现的全流程解决方案。
近日,来自 UIUC、Salesforce 的研究人员基于 ICML 2024 论文《Iterative Preference Learning from Human Feedback: Bridging Theory and Practice for RLHF under KL-ConstrAInt》与其他一些领域相关工作实现了完全基于开源数据、模型的在线迭代 RLHF 全流程: (1) 有监督学习;(2) 奖励函数与偏好函数的建模;(3) 以及基于 DPO 的迭代 RLHF,并基于 LLaMA3-8B 得到目前最先进水平的开源 RLHF 模型。此外,研究人员还将模型、代码、数据、和超参数选择全部开源到 GitHub 与 hugging face,以便社区人员能够复现和进一步在这个方向进行研究。
离线 RLHF 与在线迭代 RLHF
离线直接偏好优化 (offline DPO) 由于基于深度强化学习算法 PPO 的 RLHF 方案训练的不稳定性以及对 GPU 资源的不友好 (需要同时加载多个模型),开源社区通常使用直接偏好优化算法 (DPO), 在离线的偏好数据集上进行有监督学习,具体地说:
- 离线偏好数据集收集:首先随机采样一个 prompt,并使用 SFT 模型以及更加强大的语言模型 (GPT-4, Claude, LLaMA2-Chat-70B) 收集两个回复,最后让人类 / GPT-4 标注其更喜欢的回复;
- 在离线数据集上使用 DPO/Slic/IPO 等损失函数进行有监督学习。
由于离线偏好数据集的回复通常由更加强大的语言模型 (GPT-4, Claude, LLaMA2-Chat-70B) 收集,并用以训练 10B 以下的模型,所以可以看成是一种特殊的蒸馏方式。此外,研究人员在论文中证明了在这种情况下,需要离线数据集对全空间有较好的覆盖,此时才能保证 DPO 能学习到最优策略。
在线迭代 RLHF 相反,在线迭代 RLHF 并不完全依赖于外部专家模型的回复,而是通过当前模型自己生成的回复组成的偏好数据集进行学习,具体的说,此时既可以从一个离线数据集开始,也可以完全从零开始,在每一轮迭代中,
- 模型选择:首先依据历史数据对模型进行训练,从而得到两个模型;
- 数据收集:对每条 prompt, 用两个模型采样 2 条回复,并让外部偏好模型进行标注,总共收集 m 个偏好数据对加入历史数据集中。
可见为了实现在线迭代 RLHF,(1) 首先需要一个外部偏好模型,以及 (2) 需要明确每轮的模型选取策略。
基于开源数据集的偏好模型建模
理想情况下,在线迭代学习的外部偏好信号应当由一组有代表性的人类给出,用以模拟模型部署所面对的用户。由于人类标注价格昂贵,研究人员选择基于开源数据集,训练一个奖励函数或者成对偏好函数,根据 UW 与 Allen AI 提出的评估奖励函数质量的 rewardbench 结果,训练所得到的模型达到开源模型的最佳表现 (Cohere RM 并不开源):
同时,研究人员收集清洗了开源偏好数据集中的 prompt 集合,可视化结果如下
数据收集策略选择
在原始论文中,研究者推导出一般性的策略选取原则:
利用现有数据的信息选取主要模型:首先在历史收集到的所有数据集上运行 DPO (也可以替换为 Slic, IPO 等算法), 获得主要模型;
最大化差异进行探索帮助主要模型学习:由于主要模型仅仅利用历史数据,它能够收敛的前提是收集到的在线数据能够源源不断的提供新的信息,这启发研究人员在选择第二个模型时从下面的集合中选择相对于主要模型不确定性比较大的方向进行探索:
由于对于神经网络不确定性估计没有解析解,研究人员解释上述策略选择原则为:在保证辅助策略距离主要模型不要太远的情况下,尽可能最大化他们的差异,这启发研究人员通过调整采样参数来获得主要模型的变种,结合一些现有文献中流行的启发式方法拒绝采样进行探索,具体实现流程如下所示:
主要结果
研究人员基于 LLaMA3-8B 实现了全流程训练,如 Table 1 所示,所得到的最终模型在指令跟随测试中大幅度超出现有的 < 10B 开源模型水平,同时大幅度超出 offline DPO 基准,这验证了在线迭代 RLHF 的卓越效果。
为了理解在线迭代 RLHF 对模型推理、数学、代码等能力的影响,研究人员也在标准的学术测试集上进行测试:
经历在线迭代 RLHF 之后,模型在这些测试上并没有明显的性能下降,并在部分基准上获得了较为明显的提升。研究人员认为这是回答风格的变化使得模型能够更高效地使用在预训练与有监督学习阶段获得的知识。
与此同时,研究人员也进行了一系列的消融实验。首先,研究人员发现 RLHF 之后的模型通常会面临回复长度大幅度增加的问题,为此他们提出可以在奖励函数中加入长度惩罚,实验结果表明,这样一个简单的修改可以大幅度将最终模型的平均输出长度从 656 token 降低到 382 token。此外研究人员还使用了开源社区的 UltraRM-13B 作为基准 (在 reward bench 上大约排名第 30) 训练了一个模型,其在指令跟随测试与学术能力测试中都明显差于基于作者所训练的 SOTA 开源奖励函数得到的模型。
总结
该项目提供了在线迭代 RLHF 全流程的实现,并展示完全基于开源数据集与开源模型,可以得到达到当前最先进水平的 < 10B 语言模型。同时,作者将模型、代码、数据、以及超参数选择全部开源到 GitHub 与 hugging face,以使得开源社区可以复现技术报告中的结果。
尽管已经取得显著进展,这个项目仍然有许多潜在的方向亟待继续探索。首先,由于资源限制,研究人员采用了基于丰富开源偏好数据集训练的奖励奖励 / 偏好函数作为外部信号来源。未来,如何开发出一个更加准确和稳定的偏好函数,以提高模型的泛化和实用性,仍然需要进一步研究。
其次,虽然当前启发式的探索策略在一些实例研究中效果不错,考虑到语言模型回复的指数大小的空间,如何设计更高效的探索仍然值得进一步研究。
最后,在消融实验中,研究人员发现简单的长度惩罚可以缓解 RLHF 的长度偏见。虽然此方法有效,但仍有空间发现更多高效的技术手段,以进一步改善模型的输出质量和用户体验。
本文来自微信公众号“机器之心”
发评论,每天都得现金奖励!超多礼品等你来拿
登录 后,在评论区留言并审核通过后,即可获得现金奖励,奖励规则可见: 查看奖励规则