RLHF及其变体:进展和实际工程见解

大模型向量数据库云安全

Background

2022年底,OpenAI关于InstructGPT的论文b[1]引发了人们对人类反馈强化学习(RLHF)的广泛兴趣,现在通常被称为后训练。核心概念包括使用配对偏好数据集结合rank损失来训练奖励模型(RM)。然后将此RM与近端策略优化(PPO)算法一起用于微调GPT模型。目标是调整模型以增强安全性、数学推理和其他功能。虽然RM使用标记数据作为代理进行训练,并结合KL惩罚来约束策略距离,但整个过程并没有明显偏离传统的PPO方法。

picture.image

The objective function of RLHF

Infrastructure challange of RLHF

一个主要问题是PPO需要同时加载四个大型模型,使系统架构复杂化 。这种对模型推理加速(PPO样本生成)和模型训练加速的双重需求对人工智能基础设施优化构成了重大障碍,特别是对于像llama3.1这样的庞大模型(4050亿个参数)。

从2023年到2024年,出现了许多类似RLHF的新算法,包括直接偏好优化(DPO)[2]及其变体,如REINFORCE Leave One-Out(RLOO)[4]、群体相对策略优化(GRPO)[5]和REINFORCE。这些算法的主要目标是简化RLHF过程,同时降低训练成本和提高效率。

Non-RL methods

DPO

在这些算法中,DPO作为一项关键的创新而脱颖而出。它的基本前提是,由于RLHF中的RM是在标记数据上进行训练的,因此不需要将RM训练与RLHF训练分离为两个阶段。相反,它提出将两个训练步骤的损失合并到一个损失函数中。这导致的损失类似于在正样本上执行监督微调(SFT),而在负样本上应用反向SFT(假设没有KL惩罚约束)。

DPO Loss Function

DPO的损失显而易见;它只需要SFT和Reference模型,而不需要实现PPO的复杂性。如果我们通过传统的强化学习来解释DPO,它类似于 offline REINFORCE算法,其中正样本获得+1奖励,负样本获得-1奖励。KL罚款也可以纳入该奖励或作为额外的KL差异损失处理。

picture.image

The objective function of DPO

然而,DPO继承了传统 offline RL算法的一些缺点,例如缺乏用于梯度校正的重要采样, 以及与训练数据和模型之间的 out-of-distribution (OOD)样本相关的问题。这些因素会扭曲训练轨迹。此外,在训练期间,DPO可能会遇到选择逻辑和拒绝逻辑同时下降的情况;Llama3.1通过对所选样本应用负对数似然(NLL)损失来减轻这种情况。

Iterative DPO [3]

一个直接的改进包括训练一个类似于RLHF的RM——这个RM可以是一对RM,也可以是一个原始的行为迁移模型。语言模型为每个提示抽取N个回答,根据RM提供的分数对它们进行排序,以确定最佳选择和最差拒绝的样本。简单来说,这意味着将DPO训练中得分最高和最低的样本配对 。由于这些样本是由语言模型本身生成的,因此它缓解了 offline RL中普遍存在的一些OOD问题。

picture.image

在这里插入图片描述

通常,这种迭代的样本生成和训练过程发生在3到10个迭代中,每个迭代生成10K到20K个样本——明显少于PPO所需的50到100个策略迭代。因此,迭代DPO占据了online和offlineRL算法之间的中间地带。

迭代DPO的主要优点在于工程上的便捷性和收敛效果之间的平衡。由于它的训练发生在不同的阶段——样本推理和模型训练——通常不需要同时将所有模型加载到gpu上,从而避免了与RLHF相关的许多基础设施挑战。推理加速可以通过vLLM或TensorRT-LLM等框架轻松实现,用于离线部署。

有些人可能会想,RLHF是否也可以分阶段加载进行推理和训练,以避免这些问题;然而,由于耗时的模型重新加载和优化器状态管理,RLHF中所需的大量迭代使问题变得非常复杂。

例如,开发Llama3.1的工程师可能会在两周内完成405B迭代DPO的基础架构;相反,实施PPO可能需要三个月或更长时间。此外,在基本推理和训练加速策略下,迭代DPO的训练速度是PPO的3倍以上。

RL methods

RLOO

如前所述,DPO可以通过REINFORCE透镜来理解;接下来,我们基于这个概念分析了RLOO、GRPO和Off-policy REINFORCE。以RLOO为例,其核心思想是消除RLHF中的critic模型以节省GPU内存。没有ciritc模型,我们如何评估强化学习的advantages ?我们为每个提示抽取

个回答,并应用留一方法:**计算当前样本的奖励减去剩余

个样本的平均奖励** 。

RLOO Loss Function

picture.image

The objective function of RLOO

GRPO

GRPO采用了类似的方法,但用直接减去给定提示的所有样本的平均奖励,然后除以标准差,取代了“留一”

picture.image

How GRPO works.

Analysis of GRPO and RLOO

乍一看,RLOO和GRPO都不错;然而,那些熟悉RLHF基础设施的人会认识到一个重要的问题:如果所有模型(Actor, Critic, Reward and Reference models)共享相似的尺度(例如,都是70B),使用vLLM或TensorRT-LLM进行PPO样本生成,使用Megatron-core进行训练加速,结果在推理和训练之间几乎相等的计算资源消耗-大约为1:1的比例。因此,由于增加了推理成本,消除critic模型可能会无意中降低训练效率

此外,由于多个模型必须与推理和训练模块一起在一个人工智能系统中运行,因此整个系统的复杂性在很大程度上保持不变。这些方法适用于critic和reward模型明显大于actor的场景(“10倍”的数字被夸大了),但即使这样,PPO也可以使用actor权重来初始化critics。

理论上,GRPO和RLOO对PPO性能没有显著提高 ;有些人可能会争辩说,sampling-based baselines 产生的估计比critic学到的更准确。我们可以通过冻结actor在PPO训练中的权重更新来预训练critic模型 。RLOO和GRPO的目标是通过每个提示的多个响应来提高批量大小的稳定性,同时加强探索 ,这也是PPO中可以实现的策略。

此外,GRPO可能会出现某些极端情况 ;例如,如果两个抽样rewards略有不同 (例如,1.001 vs. 1.00),它们可能会在规范化 过程中放大为显著偏差


 
 
 
 
   
>>> a = torch.tensor([1, 1.001])  
>>> (a - a.mean()) / a.std()  
tensor([-0.7070,  0.7072])

用户提出的另一种观点认为,GRPO可能有利于模型在数学问题上收敛良好;如果对于一个提示的响应,所有的抽样奖励都是相等的,那么GRPO将不会产生有利于模型主动学习的advantage 。然而,在类似的ppo条件下——actor已经有效地收敛——由于通常更高的学习率和critic预训练,critic通常收敛得更快。

此外,在基于原始论文描述的数学RLHF过程中通常使用的过程奖励模型(PRM)设置下,GRPO 与 REINFORCE plus 平均基线密切相关,因为它直接利用全局样本统计量进行归一化。

picture.image

GRPO with PRM

Experiments for GRPO, RLOO, and REINFORCE

最后,我们比较了GRPO、RLOO和REINFORCE++ (REINFORCE++: A Simple and Efficient Approach for alignment Large Language Models )基于OpenRLHF的实验结果。

实验设置:


 
 
 
 
   
KL coef = 0.01 (For BT reward model) or 0.001 (For Math Test)  
max\_samples = 25000  
n\_samples\_per\_prompt = 4  
rollout\_batch\_size = 256  
train\_batch\_size = 128  
actor\_learning\_rate = 5e-7  
critic\_learning\_rate = 9e-6  
datasets: OpenRLHF default datasets / MetaMathQA with rule-based reward (for Math Test)

我们发现GRPO、RLOO和REINFORCE++在数学场景中的表现大致相当。然而,在Bradley-Terry Reward Model下,GRPO更容易奖励黑客行为。LLM开发人员的一些实际结果表明,带有critic预训练的PPO优于GRPO和REINFORCE。

picture.image

Experimental 1 for Bradley-Terry Reward Models and general scenarios (PPO / REINFORCE++ > GRPO)

picture.image

Experimental 2 for rule-based reward and mathmatical scenarios 1 (REINFORCE++ == GRPO)

picture.image

Experimental 3 for mathmatical scenarios 2 ( REINFORCE++ / RLOO > GRPO)

RLHF是否有尺度?从数据、模型和…中探索影响也验证了我们的结果。

Off-policy REINFORCE [6]

最后,我们讨论了来自INF技术报告的一种相对“未知的方法”。先前建立的DPO与offline REINFORCE之间的联系表明,INF直接使用REINFORCE实现了一个算法:

Off-policy REINFORCE Loss Function

picture.image

在这里插入图片描述

它的训练机制与迭代DPO的训练机制相似,但用REINFORCE损失代替了DPO的损失。这种损失函数相对于迭代DPO的优点包括:

    1. Introduction of importance sampling for gradient correction.
    1. Utilization of all sampled data points for increased batch size during training—DPO only considers best and worst signals.

然而,对于与KL约束相关的调优参数是否会导致与PPO类似的不稳定问题,存在一些担忧。最终,这种迭代训练方法还有助于规避RLHF系统面临的基础设施实施挑战。

参考文献

点个「赞」+「在看」❤️

让我们知道这份文字有温暖到你,也是 我们持续 创作的最大动力!

推荐

Qwen 的训练数据是怎么做的?

什么是置信度?置信度模型怎么做?

晦涩难懂的 Flow matching!图形化理解

中文指令微调数据,质量就是一切!

基于 LLM 的文本泛化

CosyVoice 2:基于大型语言模型的可扩展流式语音合成技术

Mini-Omni2: with Vision, Speech and Duplex Capabilities

FSQ的原理与VQ-VAE的区别和联系

大模型并行训练的一些知识——极简版

亲测有效!如何用 Address Sanitizer 精准定位内存漏洞?附保姆级操作指南

要用 AI 裁员 50% 的千亿独角兽,公开认错,重启招聘!

一些文档去重算法

single codebook和dual codebook在LLM中向量量化上有什么区别?

胖东来与京东联手了

一些文档去重算法

最佳的指令数据应当是什么样的?

Prefill-Decode分离

亲测有效!如何用 Address Sanitizer 精准定位内存漏洞?附保姆级操作指南

Telling gcc directly to link a library statically

Address Sanitizer in C++

Telling gcc directly to link a library statically

Simhash-文档去重算法简介

校园篇-北京信息科技大学2025

RLHF 入门,高手勿进!

最佳的指令数据应当是什么样的?

CosyVoice:一种基于监督式语义标记的可扩展多语言 Zero-Shot 语音合成器

Model Context Protocol (MCP)

MCP(模型上下文协议)是什么以及它是如何运作的

压力测试LLMs——大海捞针实现

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
大规模高性能计算集群优化实践
随着机器学习的发展,数据量和训练模型都有越来越大的趋势,这对基础设施有了更高的要求,包括硬件、网络架构等。本次分享主要介绍火山引擎支撑大规模高性能计算集群的架构和优化实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论