2小时达到97%chatgpt?《RRHF: Rank Responses to Align Language Models with Human Feedback without tears 》

原文:2小时达到97%chatgpt?《RRHF: Rank Responses to Align Language Models with Human Feedback without tears 》 - 知乎

人工反馈强化学习(RLHF)促进了大规模语言模型与人类偏好的对齐,显著提高了人与这些模型之间的交互质量。InstructGPT通过几个阶段实现了RLHF,包括监督微调(SFT)、奖励模型训练和近端策略优化(PPO)。然而,PPO对超参数比较敏感,标准实现需要至少4个模型,这使其训练比较困难。相比之下,我们提出了一种新的学习范式RRHF,它对不同采样策略生成的响应进行评分,并通过排名损失函数学习将其与人类偏好对齐。RRHF可以像微调一样高效地将语言模型的输出概率与人类偏好对齐,在调优期间只需要1-2个模型。此外,RRHF可以被视为SFT和奖励模型的扩展,但相比PPO在编码、模型数量和超参数方面更简单。整个对齐过程可以在单个RRHF训练会话中完成。我们使用LLaMA和Alpaca在Helpful和Harmless数据集上评估了RRHF,证明其性能与PPO相当。我们还在Alpaca上使用ChatGPT、InstructGPT、LLaMA和Alpaca的响应训练了RRHF,得到一个新的与人类偏好对齐的语言模型:Wombat。我们的代码和生成的数据在https://github.com/GanjinZero/RRHF公开。

快速食用

#环境设置:
conda create -n rrhf python=3.8
pip install torch==1.13.0+cu116 torchvision==0.14.0+cu116 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cu116
#clone代码:
git clone https://github.com/huggingface/transformers.git
pip install -e ./transformers
#安装包
pip install -r requirements.txt
#数据生成
cd ./data_generation/
bash response_gen.sh <path_to_alpaca/hf_llama_directory> <path_to_data_directory>
#开始训练
bash ./train.sh <path_to_alpaca_directory> <save_path_directory> <path_to_data_json>

Introduction

如ChatGPT2和GPT-4等大规模语言模型[17]在理解人类查询和提供帮助友好的响应方面极其强大。采用RLHF(人工反馈强化学习)[6,32,24]可以实现人类偏好与语言模型输出的对齐。近端策略优化(PPO)[23]是InstructGPT[18]中用于对齐人类偏好的一种强大的RL算法。首先,他们对初始模型进行监督微调,以学习遵循人类指令。随后,从人类偏好的排名中学习奖励模型。最后,使用奖励模型生成的分数应用PPO中的梯度策略来对齐人类偏好。此训练范式非常强大,但也很复杂。使用PPO微调语言模型需要同时存储策略模型、价值模型(或价值头)、奖励模型和参考模型,这对内存不友好,并且在扩展时需要训练平台的复杂架构。

与RLHF不同,RRHF(排名响应以对齐人工反馈)提出了一种新的训练范式,它通过排名损失函数将多个响应的模型概率与奖励分数对齐,可以保留RLHF的功效且更简单。RRHF和PPO的工作流程如图1所示。PPO在训练期间使用4个模型,而RRHF只需要1-2个模型。RRHF利用来自各种来源的响应,根据训练语言模型提供的对数概率对其进行评估。获得的分数然后与人类偏好奖励模型的分数相匹配。训练响应可以来源于广泛的起源。我们可以使用模型生成的响应,如训练模型、ChatGPT、GPT-4生成的响应,以及现有的高质量或低质量的人工编写的响应,使模型能够快速将更高的概率分配给奖励分数更高的响应。

RRHF和PPO的工作流程对比

我们在Anthropic的Helpful和Harmless数据集上进行了实验,证明RRHF的性能与PPO相当。此外,我们使用RRHF从ChatGPT、InstructGPT、LLaMA和Alpaca的响应中学习,以开发一个新的与人类偏好对齐的语言模型,称为Wombat。

我们的主要贡献总结如下:

• 我们提出了一种新的学习范式RRHF,用于大规模语言模型,可以利用各种响应来与人类偏好对齐。训练好的模型可以被视为生成的语言模型和用于评分的奖励模型。

• 这种范式是SFT训练的扩展,如果奖励分数由人标注,它与训练奖励模型相同。

• 相比PPO,这种范式在编码难度、训练中使用的模型数量和超参数数量方面更简单,并在Anthropic的Helpful和Harmless数据集上获得可 comparable 的性能。

Related Work

最近,通过增加参数数量、训练数据[11]和计算资源[9],大规模扩充预训练语言模型可以使大语言模型在各种语言任务中具有强大的能力[4,19,5,12,17]。最近的实践进一步通过监督微调(SFT)和人工反馈强化学习(RLHF)[18,17]发掘了大语言模型的潜力。通过RLHF,语言模型可以进一步与人类偏好对齐,这意味着更好地遵循人类指令。使用强化学习技术从人类反馈中学习增强语言模型在文献中已有探讨[1,3,24,10,30,18,20]。现有研究的大多数采用PPO对语言模型进行微调[32,24,18]。然而,在我们的实践中,PPO训练范式在编码和超参数调整方面很复杂。这促使我们探索更简单和更直接的方法来使语言模型与人类偏好对齐。

为了指导语言模型理解和遵循人类指令,另一条工作线收集了大量现有的自然语言处理基准数据集,其中包含各种语言任务[15],并结合众包任务指令提示[16,28]进行大规模语言模型微调。微调后的语言模型在各种held-out自然语言任务上的性能有所提高,获得了良好的零样本和少样本能力[21,29,7],使语言模型能够遵循人类指令。与人类偏好对齐的研究领域与受控语言生成相关,该领域有丰富的文献[13,31,8]。在本工作中,我们主要考虑减轻大语言模型中的强化学习范式的复杂训练实现。

Approach

我们主要遵循Ziegler et al.[32]中的记号。将查询数据分布表示为x~D。对于响应y对查询x的回复,奖励函数R(x,y)根据人类偏好对y进行评分,这可以是人类或神经网络。我们的目标是学习一个自动回归语言模型π(从模型ρ初始化),它生成具有较高奖励的响应。

在训练期间,我们有k个不同的响应yi对x,这些响应是由策略ρi采样的,1 ≤ i ≤ k。这里的ρi采样策略不受限制,可以是初始模型ρ,学习的模型π,其他像ChatGPT或GPT-4的大语言模型,或者人工专家提供的响应。ρi采样策略也可以在训练过程中变化。我们的采样方法可以利用任何现有的好的或坏的响应来帮助模型与人类对齐,而PPO必须通过学习的模型π进行采样。

这里,pi是模型π下响应yi的条件对数概率(长度标准化的)。我们的idea很简单,让模型π给出更好的响应更大的概率,给出更差的响应更小的概率。受Liu等人[14]的启发,我们通过排名损失优化这个对象:

LRanking(π) = ∑i<j max(0, γ + pi − pj )

还有一个loss ,目前没太看明白,,

看到这,这尼玛不是对比学习吗?

Relation with Previous Paradigms

InstructGPT [18]通过三个步骤使模型输出与人类偏好对齐:SFT,训练奖励模型和PPO。我们发现我们提出的RRHF与上述三个步骤具有相似的过程。

1. SFT是我们方法的一种特殊情况,其中k=1且ρ1固定。我们的方法更加通用。

2. 我们的模型可以作为奖励模型使用。我们使用对数概率对响应进行评分,而其他模型使用[CLS]或[EOS]。如果R由人工标注,我们正在训练人工偏好的奖励模型。

3. PPO是一种常用的RL方法,用于学习与人类偏好对齐的语言策略。它使用R和A定义任务目标,并使用πθ和ρ进行采样。

4. 我们的方法只使用R并可以使用任意ρi进行采样,更简单。我们只比较响应之间的R,更易学习线较PPO使用A。

5. PPO需要额外的价值模型和参考模型ρ进行优化和惩罚计算,需要更多资源。我们的方法更简单,节省资源。

6. 我们的实验表明,我们的方法可以达到与PPO相当的性能。这表明我们的方法是一个简单而有效的替代PPO的方式,可以更高效地训练语言模型与人类偏好对齐。

7. 这使我们的方法在资源消耗和应用方面更具可扩展性,具有更广泛的研究和应用前景。

Experiments

1. 我们使用Anthropic的HH数据集作为实验数据集。它提供了基于人类偏好的选择响应和拒绝响应。

2. 我们使用Dahoas/gptj-rm-static作为代理奖励模型,它在同一数据集上训练。

3. 我们主要基于LLaMA和Alpaca(指令调优LLaMA)进行实验。我们也调优了Alpaca-7B,将其命名为Alpaca-sft。

4. 我们的模型性能与训练期间的采样质量密切相关。我们检查了几种采样策略组合。

5. 对于每次采样,我们使用两种beam search变体收集4个roll-out采样。我们使用普通beam搜索(beam大小4,最大长度128)和diverse beam search(beam大小4,组4,惩罚1.0,温度0.8)。

6:我们在训练过程之前进行训练数据采样。使用BP/DP进行采样通常需要在8个80GB Nvidia A100 GPU上花费4-6小时。

超参数调优

我们对RRHF进行3轮epoch的调优,没有提前停止。我们首先将学习率热身到2e-5,然后线性衰减至0。对于每个GPU,我们最多一次有1个查询,我们在8步上应用梯度累积,导致查询批量大小为64。查询和响应被截断至192个标记。由于采样和训练是分离的,我们的训练只需要加载一个模型。我们使用8个80GB Nvidia A100 GPU对RRHF进行调优,训练RRHF通常需要4-6小时。

最终效果:

我们以前的实验与代理奖励模型对齐,这可能与人类偏好不同。这里我们使用ChatGPT作为R(x,y)来获得更好的对齐效果。采样策略

我们使用Alpaca的数据作为采样查询。我们对五种不同的响应进行采样:ρ1,ρ2由ChatGPT生成,ρ3由text-davinci-003生成,ρ4由LLaMA生成,ρ5由Alpaca生成。奖励提示

我们要求ChatGPT读取五种响应,并从1到5分四个维度对其进行评分:相关性、正确性、连贯性和安全性。我们解析ChatGPT的输出,并计算总和作为响应的奖励得分。使用的提示是:请分开对不同的响应评分,无需解释,也不要复制任何这些输入内容,请从响应1开始评分:相关性(与用户查询相关吗),正确性(包含正确知识吗),连贯性(流畅地生成,没有语法问题吗),安全性(拒绝回答性或犯罪查询吗),每项评分1-5分。

有点知识蒸馏的意思了。

结果

对于来自Alpaca的52k训练数据,我们成功解析了46k个数据,获得奖励分数。我们使用Alpaca作为初始检查点,并使用RRHF对其进行训练。我们将此模型命名为Wombat。Wombat的总训练时间仅为2个小时,使用8个A100 GPU。这里我们在表8中给出Wombat生成的示例,以显示其能力。我们可以发现它具有广泛的世界知识,回答复杂的机器学习问题的能力,以及遵循指令的能力

Comparison based on Vicuna test set

Model AScore AScore BModel B
Alpaca-7B567616Wombat-7B
ChatGPT669548Wombat-7B
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值