清华、智谱团队:探索 RLHF 的 scaling laws

news2024/12/25 5:38:19

图片

基于人类反馈的强化学习(RLHF)是优化大语言模型(LLM)行为的关键技术,能够让模型更符合人类偏好和需求,提升生成质量。

然而,目前关于 RLHF 的 scaling(扩展)潜力研究仍然相对缺乏,尤其是在模型大小、数据组成和推理预算等关键因素上的影响尚未被系统性探索。

针对这一问题,来自清华大学与智谱的研究团队对 RLHF 在 LLM 中的 scaling 性能进行了全面研究,并提出了优化策略

图片

主要结论如下:

  • 数据的多样性和规模:增加训练数据的多样性和数量能够显著提升奖励模型(RM)的性能;

  • 策略训练的效率:初期增加响应样本能够提高策略训练效果,但收益会迅速趋于平稳;

  • RLHF 的 scaling 效率低于预训练:RLHF 的计算资源投入带来的回报递减,整体 scaling 效率低于模型预训练阶段。

这一研究为优化 RLHF 在 LLM 中的应用提供了重要指导,也揭示了其在 scaling 性能上的潜在瓶颈。

研究方法

研究团队首先描述了 RLHF 中的关键组件,然后遵循 RLHF 的一般框架进行了实证研究。

值得注意的是,研究团队采取的研究方法有几个特殊之处。首先,他们使用多任务目标训练一个统一模型,用于人类偏好和推理任务,而不是训练多个单独的奖励模型。其次,在策略训练期间,他们对每个提示采样多个响应,并应用额外的奖励剪切和归一化,从而得到更稳定的策略训练。

1.奖励模型训练

奖励模型的训练是生成式 AI 优化的重要环节,近期研究为这一领域带来了新启发,揭示了模型规模、数据扩展以及过程监督对性能提升的深远影响。

奖励模型的核心任务是基于用户偏好预测最优响应。在训练过程中,模型通过学习偏好数据集,判断用户对不同生成内容的偏好顺序,并以此优化生成结果。尤其是在需要推理能力的任务中(如数学解题、编程等),正确答案通常非常清晰,因此他们提出了更高效的二分类处理方法,同时结合偏好学习,使模型更精准地理解问题本质。

他们还重点探索了过程奖励模型(PRM),这是一种针对复杂推理任务的新型训练方式。过程奖励模型除了关注最终生成结果的优劣,还对生成过程中的每一步进行监督,从而提高模型在复杂推理任务中的表现。这一方式通过自动标注工具生成中间步骤的过程监督信号,为模型学习推理逻辑提供了支持。

研究的主要问题集中于模型规模和数据 scaling 的影响:

  • 随着训练数据量的增加及数据多样性的提高,奖励模型的效果是否会显著改善?

  • 增加过程监督的复杂度是否能够带来长期性能优势?

这些问题的答案将为生成式 AI 系统的优化提供重要参考。

2.策略模型训练

策略模型训练是生成式 AI 模型优化中的关键环节,其目标是通过最大化模型生成的响应质量,从而实现更高的奖励分数。在这一过程中,训练涉及多个核心模型,包括提供反馈的奖励模型、进行优化的策略模型、用于正则化的参考模型,以及用于训练稳定性的可选评论模型。

策略模型的训练采用实时生成的响应,而非预先生成的固定答案。每次针对提示生成多个响应,通过奖励模型对这些响应进行评分并归一化处理,使得奖励更加稳定可靠。这种多响应采样的方式提高了提示数据的利用率,同时为策略模型的优化提供了更多训练样本。

为了防止策略模型偏离初始 SFT 模型而导致性能退化,训练中引入了 KL 散度惩罚机制。这一方法通过限制策略模型与参考模型之间的偏差,确保优化过程的稳定性。此外,策略模型的优化通常使用强化学习的近端策略优化(PPO)方法及其变体,这种保守的训练方式能够避免不稳定的学习现象。

研究团队还提出了一种“非对称奖励收缩”技术,用于应对负奖励带来的训练不稳定问题。通过对负奖励进行非对称缩小,策略模型在训练过程中表现出更强的稳定性,并显著提高了训练效果。

研究的主要问题聚焦于策略模型的规模效应与优化策略

  • 较大的策略模型是否能够在现有的奖励模型和训练策略下获得更多收益?

  • 增加每个提示的响应数量或引入更多提示数据,是否对优化过程有帮助?

  • 更大的奖励模型或不同的强化学习算法对最终性能有多大影响?

这些探索将帮助研究者更好地理解策略模型训练中的关键因素,为进一步优化 AI 的生成质量提供有力支持。通过深入研究这些问题,生成式 AI 将向更高效、更精准的方向发展。

实验结果

为进一步优化奖励模型和策略模型,研究团队设计了一套全面的实验设置,涵盖数据构建、训练配置和性能评估等方面。

首先,研究团队通过实验探索了策略模型训练过程中响应采样数量对模型性能的影响,进一步明确如何优化生成式 AI 的训练过程。实验采用 PPO 方法,对每个提示分别采样 1、2、4、8 和 16 个响应,并确保训练过程中的梯度更新步数保持一致,以便不同采样设置的结果具有可比性。采样的响应用于计算奖励反馈,指导策略模型的优化。

实验结果显示,随着每个提示采样的响应数量增加,模型在大多数任务中的性能都有明显提升。研究指出,这一趋势表明,更多样化的响应为策略模型提供了更丰富的奖励信号,使其能够更全面地学习不同情况下的优化策略,从而在整体性能上获得提升。

在奖励模型规模上,实验发现较大的奖励模型(如 32B 参数)在推理相关任务(如 MATH、GPQA 和LiveCodeBench)中表现更优。然而,这种优势并非在所有任务中都存在。对于依赖于模型预训练的 MMLU 任务,大规模奖励模型在增加采样时反而可能引入更多对齐成本;在 AlignBench 中,小规模奖励模型甚至表现更佳,这可能与大模型对训练数据中的噪声更敏感有关。

训练数据量方面的实验显示,虽然强化学习可以通过优化奖励逐步提升策略模型的性能,但下游任务的性能改进在早期阶段表现较为显著,随后迅速趋于平稳。与预训练和监督微调相比,当前的 RLHF 方法在缩放提示数据量上未能带来显著的性能提升。

策略模型规模方面,实验显示,随着策略模型规模从 9B 增长至 200B,其从 RLHF 训练中获得的性能提升逐渐减小。例如,在使用 32B 奖励模型时,性能增益从 4.4% 下降到 1.9%。这一现象表明,在现有 RLHF 框架下,较大的策略模型受益更少,甚至可能出现逆向 scaling 的情况。

研究团队还比较了 PPO 和 GRPO 两种训练算法,发现它们在最终性能上差异较小,但表现出了不同的训练行为。例如,PPO 的奖励增加较为稳定,而 GRPO 在训练过程中显著增加了策略模型与初始模型的发散性,并导致响应长度的明显增长。

此外,研究团队针对奖励模型的训练,从数据多样性与规模、过程奖励与结果奖励两个角度展开了详细研究

在数据多样性与规模方面,研究团队在数学任务中设置了不同规模和多样性的训练数据进行实验。结果表明,增加训练提示的多样性比为单一提示生成更多响应更能提升奖励模型的表现。在固定响应数量的前提下,提升提示多样性带来的性能改进近乎线性增长,尤其是在资源有限的情况下,优先收集多样化的提示数据比单纯缩放响应数量更有效。因此,为了优化奖励模型的性能,研究建议将重点放在提高训练数据的多样性上。

在过程奖励与结果奖励方面,研究团队对比了针对数学推理任务设计的过程奖励模型和适用于广泛任务的结果奖励模型(ORM)。实验发现,在数学任务(如MATH-500)中,过程奖励模型的表现显著优于结果奖励模型,尤其是在复杂评估(如 Best-of-64)的条件下。

然而,对于缺乏过程监督训练数据的任务(如 GPQA 和 LiveCodeBench),过程奖励模型的表现不如结果奖励模型稳定。基于这些发现,研究团队在此前的策略训练实验中主要使用了结果奖励模型。

研究表明,奖励模型的性能可以通过多样化的提示数据和针对性优化的过程监督得到显著提升,但在不同任务间的泛化能力仍需进一步探索和优化。

未来展望

研究团队通过对 RLHF 训练过程的深入分析,总结出性能提升的关键因素,包括增加响应采样数量、更大规模的奖励模型、更丰富的提示数据以及引入过程监督。其中,更多的响应采样和更大规模的奖励模型在推理任务中表现尤为显著,而多样化的提示数据则提升了模型的任务适应性。

然而,研究也揭示了现有 RLHF 方法的局限性:性能提升随着计算资源的增加逐渐趋于饱和,大规模策略模型的提升效果有限,主要原因可能在于奖励模型精度不足,导致训练中引入了较大的噪声。此外,跨任务生成过程监督的有效方法仍未成熟,这限制了其在多任务场景中的应用。

研究团队指出,当前 RLHF 方法无法实现像预训练那样的 scaling 效率,未来的研究应集中于提升奖励建模的准确性、减少训练过程中的噪声干扰,并探索更具扩展性和通用性的训练方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2265111.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

八股(One Day one)

最近老是看到一些面试的视频,对于视频内部面试所提到的八股文,感觉是知道是什么,但是要说的话,却又不知道该怎么说(要不咋称之为八股文呢),所以就想到写一篇八股文总结的博客,以便进…

springboot创建web项目

一、创建项目 二、导入依赖&#xff08;pom.xml&#xff09; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schem…

LeetCode 343.整数拆分

1.题目要求: 2.题目代码: class Solution { public:int integerBreak(int n) {//先确定dp数组vector<int> dp;//1.确定dp数组的含义//2.确定dp的递推公式//3.初始化dp数组//4.遍历顺序dp.resize(n 1);dp[0] 0;dp[1] 0;dp[2] 1;for(int i 3;i < n;i){for(int j …

Postman最新详细安装及使用教程【附安装包】

一、Postman介绍 ‌Postman是一个功能强大的API测试工具&#xff0c;主要用于模拟和测试各种HTTP请求&#xff0c;支持GET、POST、PUT、DELETE等多种请求方法。‌通过Postman&#xff0c;用户可以发送请求并查看返回的响应&#xff0c;检查响应的内容和状态&#xff0c;从而验…

开源 JS PDF 库比较

原文查看&#xff1a;开源JavaScript PDF Library对比 对于需要高性能、复杂功能或强大支持处理复杂 PDF 的项目&#xff0c;建议选择商业​​ PDF 库, 如ComPDFKit for Web。但是&#xff0c;如果您的目标只是在 Web 应用程序中显示 PDF&#xff0c;则可以使用几个可靠的开源…

如何利用AWS监听存储桶并上传到tg bot

业务描述&#xff1a; 需要监听aws的存储中的最新消息&#xff0c;发送新的消息推送到指定tg的频道。 主要流程&#xff1a; 1.上传消息到s3存储桶&#xff08;不做具体描述&#xff09; 2.通过aws的lambda监听s3存储桶的最新消息&#xff08;txt文件&#xff09; 3.将txt文件…

数据结构:双向循坏链表

目录 1.1双向循环链表的结构 2.双向链表功能的实现 2.1初始化链表 2.2销毁链表 2.3创建结点 2.4打印链表 2.5链表查找 2.6链表在pos的前面进行插入 2.7链表删除pos位置的节点 2.8链表的头插&#xff0c;头删 &#xff0c;尾插&#xff0c;尾删 1.1双向循环链表的结构 …

大数据技术原理与应用期末复习-代码

RDD&#xff1a; // 导入SparkConf和SparkContext类&#xff0c;用于配置和创建Spark上下文 import org.apache.spark.{SparkConf, SparkContext}// 定义一个名为TopN的对象 object TopN {def main(args: Array[String]): Unit {// 创建一个新的SparkConf对象&#xff0c;并设…

CNN和Transfomer介绍

文章目录 CNN和Transfomer介绍CNN和Transfomer的区别1. **基本概念**2. **数据处理方式**3. **模型结构差异**4. **应用场景区别** 自注意力机制1. **自注意力机制的概念**2. **自注意力机制的实现步骤**3. **自注意力机制的优势** Transformer结构组成1. **多头注意力层&#…

ArcGIS Pro 3.4新功能3:空间统计新特性,基于森林和增强分类与回归,过滤空间自相关

目录 应用 1&#xff1a;它是相关性还是托布勒第一定律&#xff1f; 应用 2&#xff1a;将空间带入非空间模型 结论 在 ArcGIS Pro 3.4 中&#xff0c;我们在新的空间组件实用程序&#xff08;Moran 特征向量&#xff09;工具集中发布了一个新工具 - 从字段过滤空间自相关。…

webserver log日志系统的实现

参考博客&#xff1a;https://blog.csdn.net/weixin_51322383/article/details/130474753 https://zhuanlan.zhihu.com/p/721880618 阻塞队列blockqueue 1、阻塞队列的设计流程是什么样的 它的底层是用deque进行管理的 阻塞队列主要是围绕着生产者消费者模式进行多线程的同步和…

深度学习实战之超分辨率算法(tensorflow)——ESPCN

espcn原理算法请参考上一篇论文&#xff0c;这里主要给实现。 数据集如下&#xff1a;尺寸相等即可 针对数据集&#xff0c;生成样本代码preeate_data.py import imageio from scipy import misc, ndimage import numpy as np import imghdr import shutil import os import…

Unity3d 基于UGUI和VideoPlayer 实现一个多功能视频播放器功能(含源码)

前言 随着Unity3d引擎在数字沙盘、智慧工厂、数字孪生等场景的广泛应用&#xff0c;视频已成为系统程序中展示时&#xff0c;不可或缺的一部分。在 Unity3d 中&#xff0c;我们可以通过强大的 VideoPlayer 组件和灵活的 UGUI 系统&#xff0c;将视频播放功能无缝集成到用户界面…

WebGAL 项目下载及安装教程

WebGAL 项目下载及安装教程 WebGAL A brand new web Visual Novel engine | 全新的网页端视觉小说引擎 [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/web/WebGAL 1、项目介绍 WebGAL 是一个全新的网页端视觉小说引擎&#xff0c;旨在提供美观、功能强大且易于…

虚幻引擎是什么?

Unreal Engine&#xff0c;是一款由Epic Games开发的游戏引擎。该引擎主要是为了开发第一人称射击游戏而设计&#xff0c;但现在已经被成功地应用于开发模拟游戏、恐怖游戏、角色扮演游戏等多种不同类型的游戏。虚幻引擎除了被用于开发游戏&#xff0c;现在也用于电影的虚拟制片…

Kubernetes 架构图和组件

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;历代文学&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编程&#xff0c;高并发设计&#xf…

GESP2024年12月认证C++五级( 第三部分编程题(2))

参考程序&#xff1a; #include<bits/stdc.h> using namespace std; #define ll long long int n, m; int cnt[1010]; vector<int> cs[1010]; ll calc(int aim) {int cur_cnt cnt[1];ll res 0;vector<int> tmp;for (int i 2; i<n; i){int buy max((…

基于DockerCompose搭建Redis主从哨兵模式

linux目录结构 内网配置 哨兵配置文件如下&#xff0c;创建3个哨兵配置文件 # sentinel26379.conf sentinel26380.conf sentinel26381.conf 内容如下 protected-mode no sentinel monitor mymaster redis-master 6379 2 sentinel down-after-milliseconds mymaster 60000 s…

npm error code ETIMEDOUT

参考:https://blog.csdn.net/qq_38572963/article/details/142052986 二、解决办法 1、清空缓存 npm cache clean --force 2、查看当前的npm镜像设置 npm config get registry 3、切换新镜像源 npm config set registry https://registry.npmmirror.com 4、查看新源是否设置成功…

【终端工具】FinalShell v4.5.12 官方版

1.下载地址 【终端工具】FinalShell v4.5.12 官方版 2.简介 FinalShell是一款免费的跨平台远程管理工具&#xff0c;专为开发者和运维人员设计。它支持通过 SSH、SFTP 等方式连接到 Linux 和 Windows 服务器&#xff0c;提供类似于终端的操作界面。除了常规的远程登录功能&a…