3.2 人类反馈强化学习(RLHF)
RLHF 是一种模型训练过程,应用于微调的语言模型,以进一步使模型行为与人类偏好和指令遵循保持一致。我们收集代表根据经验采样的人类偏好的数据,人类注释者可以选择他们更喜欢的两个模型输出中的哪一个。这种人类反馈随后用于训练奖励模型,该模型学习人类注释者的偏好模式,然后可以自动执行偏好决策。
3.2.1 人类偏好数据收集
接下来,我们收集人类偏好数据以进行奖励建模。我们选择二进制比较协议而不是其他方案,主要是因为它使我们能够最大限度地提高收集提示的多样性。尽管如此,其他策略仍然值得考虑,我们将其留到未来的工作中。
我们的注释过程如下。我们要求注释者首先编写提示,然后根据提供的标准在两个采样模型响应之间进行选择。为了最大化多样性,对给定提示的两个响应是从两个不同的模型变体中采样的,并改变温度超参数。除了给参与者一个强制选择之外,我们还要求注释者标记他们更喜欢自己选择的答案而不是替代方案的程度:他们的选择要么明显更好,更好,稍微更好,或者可以忽略不计更好/不确定。
对于我们的偏好注释集合,我们关注有用性和安全性。乐于助人是指如何
Llama 2-Chat 响应满足用户的请求并提供请求的信息;安全是指
Llama 2-Chat 的响应是否不安全,例如, “给出有关制造炸弹的详细说明”可能被认为是有帮助的,但根据我们的安全指南是不安全的。将两者分开使我们能够对每个应用特定的指导方针并更好地指导注释者;例如,我们的安全注释提供了关注对抗性提示的说明以及其他指导。
除了注释指南的差异外,我们还在安全阶段收集安全标签。此附加信息将模型响应分为三类之一:1) 首选响应是安全的,其他响应不是,2) 两个响应都是安全的,3) 两个响应都是不安全的,分别为 18%、47% 和 35分别落入每个 bin 的安全数据集的百分比。我们不包括任何所选响应不安全而其他响应安全的示例,因为我们相信更安全的响应也会被人类更好/偏好。安全指南和有关安全注释的更多详细信息可以在第 4.2.1 节中找到。
每周分批收集人工注释。随着我们收集更多偏好数据,我们的奖励模型得到改进,并且我们能够为 Llama 2-Chat 训练逐渐更好的版本(参见第 5 节,图 20 中的结果)。 Llama 2-Chat 的改进也改变了模型的数据分布。由于如果不接触这种新的样本分布(即超专业化),奖励模型的准确性可能会迅速下降( Scialom等人,2020b),因此在新的 Llama 2-Chat 调整迭代之前,使用以下方法收集新的偏好数据非常重要:最新的 Llama 2-Chat 迭代。此步骤有助于保持奖励模型的分布并保持最新模型的准确奖励。
在表 6 中,我们报告了我们随时间收集的奖励建模数据的统计数据,并将它们与多个开源偏好数据集(包括 Anthropic Helpful 和 Harmless)进行比较(Bai 等人,
2022a)、OpenAI Summarize( Stiennon等人,2020)、OpenAI WebGPT (Nakano 等人,2021)、 StackExchange (Lambert 等人,2023)、Stanford Human Preferences(Ethayarajh 等人,2022)和 Synthetic GPT -J(哈夫里拉)。我们根据人类应用我们指定的指南收集了超过 100 万个二进制比较的大型数据集,我们将其称为元奖励建模数据。请注意,提示和答案中的标记数量因文本域而异。摘要和在线论坛数据的提示通常较长,而对话式的提示通常较短。与现有的开源数据集相比,我们的偏好数据具有更多的对话轮次,并且平均时间更长。
3.2.2 奖励模型
奖励模型将模型响应及其相应的提示(包括之前回合的上下文)作为输入,并输出标量分数以指示模型生成的质量(例如,有用性和安全性)。利用此类响应分数作为奖励,我们可以在 RLHF 期间优化 Llama 2-Chat,以实现更好的人类偏好调整并提高帮助性和安全性。
其他人发现,帮助性和安全性有时会相互抵消(Bai 等人,2022a),这使得单一奖励模型很难在两者上都表现良好。为了解决这个问题,我们训练了两个单独的奖励模型,一个针对帮助性进行了优化(称为Helpativity RM ),另一种针对安全性进行了优化( Safety RM )。我们从预训练的聊天模型检查点初始化奖励模型,因为它确保两个模型都受益于预训练中获得的知识。简而言之,奖励模型“知道”聊天模型的内容知道。例如,这可以防止两个模型出现信息不匹配的情况,从而导致偏向幻觉。模型架构和超参数与预训练语言模型相同,只是替换了下一个标记预测的分类头具有用于输出标量奖励的回归头。
表 6:奖励建模的人类偏好数据统计。我们列出了用于奖励建模的开源和内部收集的人类偏好数据。请注意,二元人类偏好比较包含共享相同提示(和之前的对话)的 2 个响应(选择和拒绝)。每个示例都包含一个提示(包括之前的对话,如果有的话)和一个响应,这是奖励模型的输入。我们报告比较次数、每个对话的平均轮数、每个示例、每个提示和每个响应的平均标记数。有关每批次元有用性和安全性数据的更多详细信息,请参阅附录 A.3.1。
训练目标。 为了训练奖励模型,我们将收集的成对人类偏好数据转换为二进制排名标签格式(即选择和拒绝),并强制选择的响应比其对应的响应具有更高的分数。我们使用与 Ouyang 等人一致的二元排名损失。 (2022):
L排名 = − log ( σ ( r θ ( x,y c ) − r θ ( x,y r ))) (1)
其中r θ ( x,y )是提示x和完成y 的标量分数输出,模型权重为θ 。 yc _ 是注释者选择的首选响应, y r 是被拒绝的对应方。
在此二元排名损失的基础上,我们进一步单独对其进行修改,以获得更好的帮助和安全奖励模型,如下所示。鉴于我们的偏好评级被分解为四分制(例如,显着更好),如第 3.2.1 节所示,利用这些信息来明确地教导奖励模型为各代分配更多差异的分数可能会很有用那些有更多的差异。为此,我们进一步在损失中添加保证金成分:
L排名 = − log ( σ ( r θ ( x,y c ) − r θ ( x,y r ) − m ( r ))) (2)
其中边际m ( r )是偏好评级的离散函数。当然,我们对于具有不同响应的配对使用较大的余量,对于具有相似响应的配对使用较小的余量(如表 27 所示)。我们发现这个保证金成分可以提高帮助奖励模型的准确性,特别是在两个响应更可分离的样本上。更详细的消融和分析可见附录 A.3.3 中的表 28。
数据构成。 我们将新收集的数据与现有的开源偏好数据集相结合,形成更大的训练数据集。最初,当我们收集偏好注释数据的过程中,开源数据集被用来引导我们的奖励模型。我们注意到,在本研究中的 RLHF 背景下,奖励信号的作用是了解人类对 Llama 2-Chat 输出而不是任何模型输出的偏好。然而,在我们的实验中,我们没有观察到开源偏好数据集的负迁移。因此,我们决定将它们保留在我们的数据混合中,因为它们可以使奖励模型更好地泛化并防止奖励黑客攻击,即 Llama 2-Chat 利用我们奖励的一些弱点,因此人为地夸大分数,尽管执行不太好。
利用不同来源的训练数据,我们对帮助性和安全性奖励模型尝试了不同的混合配方,以确定最佳设置。经过广泛的实验,帮助奖励模型最终在所有元帮助数据上进行训练,并结合从元安全和开源数据集中均匀采样的剩余数据的相等部分。元安全奖励模型基于所有元安全和人为无害数据进行训练,并以 90/10 的比例与元有用性和开源有用性数据混合。我们发现,10% 有用性数据的设置对于样本的准确性特别有利,其中所选响应和拒绝响应都被认为是安全的。
训练细节。我们对训练数据进行一个时期的训练。在早期的实验中,我们发现训练时间较长会导致过度拟合。我们使用与基本模型相同的优化器参数。 70B 参数 Llama 2-Chat 的最大学习率为5 × 10 -6 ,其余参数为1 × 10 -5 。学习率按照余弦学习率计划降低,降至最大学习率的 10%。我们使用总步数 3% 的预热,最少 5 步。保持有效批量大小固定为 512 对,即每批 1024 行。
表 7:奖励模型结果。我们最终的帮助和安全奖励模型在一组不同的人类偏好基准上的表现。请注意,我们的模型是根据我们收集的数据进行微调的,而不是我们报告的其他基线。
表 8:每个偏好评级的细粒度奖励模型准确性。我们报告了元有用性和安全性测试集上有用性和安全性奖励模型的每个偏好评级的准确性。奖励模型在更明显的响应上显示出较高的准确性(例如,显着更好),而在相似的响应上显示出较低的准确性(例如,可以忽略不计)
奖励模型结果。 在奖励建模的每批人类偏好注释中,我们坚持
1000 个示例作为测试集来评估我们的模型。我们将相应测试集的所有提示的并集分别称为“元有用性”和“元安全性”。
作为参考点,我们还评估了其他公开可用的替代方案作为基准: SteamSHP -XL
(Ethayarajh 等人,2022)基于 FLAN-T5-xl、基于DeBERTa V3 Large(He 等人,2020)的 Open Assistant( Köpf等人,2023)奖励模型以及可通过 OpenAI 的 API 访问的 GPT4 。请注意,与训练相反,在推理时,所有奖励模型都可以预测单个输出的标量,而不需要访问其配对输出。对于 GPT-4,我们提出一个零样本问题“选择 A 和 B 之间的最佳答案”,其中 A 和 B 是用于比较的两个答案。
我们在表 7 中报告了准确性方面的结果。正如预期的那样,我们自己的奖励模型在基于 Llama 2-Chat 收集的内部测试集上表现最好,其中帮助奖励模型在元帮助测试集上表现最好,并且同样,安全奖励模型在元安全测试集上表现最佳。总体而言,我们的奖励模型优于所有基线,包括 GPT-4。有趣的是,GPT-4 的表现比其他非元奖励模型更好,尽管没有直接训练也没有专门针对此奖励建模任务。
图 6:奖励模型的扩展趋势。更多的数据和更大的模型通常会提高准确性,而且我们的模型似乎尚未从训练数据的学习中饱和。
事实上,帮助性和安全性在各自领域表现最好可能是由于两个目标之间的紧张关系(即,尽可能提供帮助与在必要时拒绝不安全的提示),
这可能会在训练期间混淆奖励模型。为了使单个模型在两个维度上都表现良好,它不仅需要学习在给定提示的情况下选择更好的响应,而且还需要学习区分对抗性提示和安全提示。因此,优化两个单独的模型可以简化奖励建模任务。关于安全性和有用性之间的这种紧张关系的更详细分析可以在附录 A.4.1 中找到。当我们按照表 8 中的偏好评级对分数进行分组时,我们可以看到,
“明显更好”的测试集,并随着比较对变得更加相似而逐渐退化(例如,“稍微好一点”)。预计在两个相似的模型响应之间做出决定时,学习对人类偏好进行建模会变得具有挑战性,因为注释者的主观性以及他们对可能区分响应的细微细节的依赖。我们强调,更明确的响应的准确性对于提高 Llama 2-Chat 的性能最为重要。与相似的配对相比,在更明显的响应上,人类偏好注释的一致性率也更高。
扩展趋势。我们研究奖励模型的数据和模型大小方面的扩展趋势,根据每周收集的越来越多的奖励模型数据来微调不同的模型大小(请参阅表 26 中每批数据量的详细信息)。图 6 报告了这些趋势,显示了较大的模型对于相似数据量获得更高性能的预期结果。更重要的是,考虑到用于训练的现有数据注释量,扩展性能尚未达到稳定水平,这表明通过更多注释还有进一步改进的空间。我们注意到,奖励模型的准确性是 Llama 2-Chat 最终性能的最重要指标之一。虽然综合评估生成模型的最佳实践是一个开放的研究问题,但奖励的排名任务没有任何歧义。因此,在其他条件相同的情况下,奖励模型的改进可以直接转化为 Llama 2-Chat 的改进。
3.2.3 迭代微调
随着我们收到更多批次的人类偏好数据注释,我们能够训练更好的奖励模型并收集更多提示。因此,我们训练了 RLHF 模型的连续版本,此处称为 RLHF-V1,…,RLHF-V5。
我们用两种主要算法探索了 RLHF 微调:
• 近端策略优化(PPO) (Schulman et al., 2017),RLHF 文献中的标准。
• 拒绝采样微调。我们从模型中采样K 个输出,并根据奖励选择最佳候选者,这与 Bai 等人的观点一致。 (2022b)。 Deng 等人也提出了相同的 LLM 重新排名策略。 (2019),其中奖励被视为能量函数。在这里,我们更进一步,使用选定的输出进行梯度更新。对于每个提示,获取的样本
图 7:N 个样本中的最大奖励和中值奖励, N ∈ [1 ,…, 100]在我们的提示训练集中进行平均。最大值和中值之间的增量可以解释为拒绝采样的潜在增益。
最高奖励分数被认为是新的黄金标准。类似于Scialom等人。 (2020a),然后我们在新的一组排名样本上微调我们的模型,加强奖励。
这两种强化学习算法的主要区别在于:
• 广度——在拒绝采样中,模型针对给定的提示探索K个样本,而 PPO 只进行了一代。
• 深度— 在 PPO 中,在步骤t的训练期间 样本是上一步梯度更新后从t − 1开始更新的模型策略的函数。在拒绝采样微调中,我们在给定模型初始策略的情况下对所有输出进行采样,以收集新的数据集,然后再应用类似于 SFT 的微调。然而,由于我们应用了迭代模型更新,两种 RL 算法之间的根本差异就不那么明显了。
在 RLHF (V4) 之前,我们仅使用拒绝采样微调,之后,我们按顺序将两者结合起来,在再次采样之前在生成的拒绝采样检查点之上应用 PPO。
Figure 8: 对 N 个输出进行采样并使用奖励模型对其进行评分时,温度对 RLHF 的影响
拒绝抽样。我们仅使用最大的 70B Llama 2-Chat 进行拒绝抽样。所有较小的模型都根据来自较大模型的拒绝采样数据进行微调,从而将大模型的功能提炼为较小的模型。我们将进一步分析这种蒸馏的效果以供将来的工作使用。
在每个迭代阶段,我们都会从最新模型中为每个提示抽取K 个答案。我们根据实验时可用的最佳奖励模型对每个样本进行评分,然后针对给定的提示选择最佳答案。在我们模型的早期版本中,直到 RLHF V3,我们的方法是将答案选择仅限于从先前迭代中收集的样本“包”。例如,RLHF V3 仅使用 RLHF V2 的样本进行训练。然而,尽管这种方法不断改进,但还是导致了某些能力的倒退。例如,通过定性分析发现,RLHF V3 比以前的版本在诗歌中创作押韵诗句方面更加困难,这表明需要进一步调查遗忘的原因和缓解措施(Kirkpatrick 等人,2017 年;Nguyen 等人,2019 年; Ramasesh等人,2021)可能是未来研究的一个富有成果的领域。
作为回应,在后续迭代中,我们修改了策略,纳入了所有先前迭代中表现最好的样本,例如 RLHF-V1 和 RLHF-V2 中使用的样本。尽管我们没有提供具体数字,但此次调整显示了性能的显着提升,并有效解决了之前提到的问题。这种缓解措施可以被视为类似于Synnaeve等人。 (2019)和Vinyals等人。 (2019) RL 文献中。
我们在图 7 中说明了拒绝采样的好处。最大曲线和中值曲线之间的增量可以解释为最佳输出微调的潜在增益。正如预期的那样,这个增量随着样本的增加而增加,因为最大值增加(即更多的样本,产生良好轨迹的机会更多),而中值保持不变。样本中的探索与我们可以获得的最大奖励之间存在直接联系。温度参数对于探索也起着重要作用,因为更高的温度使我们能够对更多样化的输出进行采样。在图 8 中,我们报告了 Llama 2-Chat-SFT(左)和 Llama 2-Chat-RLHF(右)的 N 个样本之间的最大奖励曲线(其中N ∈ [1 ,…, 100] ) ,对于不同的温度。我们可以观察到,在迭代模型更新过程中,最佳温度并不是恒定的:RLHF 对重新调整温度有直接影响。对于 Llama 2-Chat-RLHF,在 10 到 100 个输出之间采样时的最佳温度是T ∈ [1 。 2 , 1 . 3] 。考虑到计算预算有限,因此有必要逐步重新调整温度。请注意,对于每个模型,这种温度重新缩放都会发生恒定数量的步骤,并且始终从每个新 RLHF 版本的基本模型开始。
聚苯醚。我们按照Stiennon等人的 RL 方案进一步训练我们的语言模型。 (2020),它使用奖励模型作为真实奖励函数(人类偏好)的估计,并使用预训练的语言模型作为优化策略。在此阶段,我们寻求优化以下目标:
argmax E p ∼D ,g ∼ π [ R ( g | p )] (3) π
从数据集D中采样提示p和从策略π中采样生成g来迭代改进策略,并使用 PPO 算法和损失函数来实现这一目标。我们在优化过程中使用的最终奖励函数,
R ( g | p ) = R ̃ c ( g | p ) − βD KL ( π θ ( g | p ) ∥ π 0 ( g | p )) (4)
包含偏离原始策略π 0的惩罚项。正如在其他作品中观察到的那样( Stiennon et al., 2020; Ouyang et al., 2022),我们发现这种约束对于训练稳定性很有用,并且可以减少奖励黑客行为,从而我们可以从奖励模型中获得高分,但得分较低来自人类的评价。我们定义Rc 是安全性( Rs )和有用性( Rh )奖励模型的分段组合。我们在数据集中标记了可能引发潜在不安全响应的提示,并优先考虑安全模型的分数。阈值为0 。选择15来过滤不安全响应,对应于精度0 。 89和召回0 。 55在 Meta Safety 测试集上进行了评估。我们还发现,为了提高稳定性并与上面的 KL 惩罚项 ( β ) 适当平衡,美化最终的线性分数(此处通过使用 logit 函数反转 sigmoid 来显示)很重要。
R R s ( g | p ) 如果is_safety ( p )或R s ( g | p ) < 0 。 15否则
R ∼ c ( g | p ) =白化( logit ( R c ( g | p )))
对于所有模型,我们使用AdamW优化器(Loshchilov 和 Hutter,2017),其中β 1 = 0 。 9 ,β 2 = 0 。 95 ,每股收益=
10 -5 。我们使用权重衰减0 。 1 、渐变裁剪1 . 0 ,恒定学习率为10 -6 。对于每次 PPO 迭代,我们使用批量大小512 ,PPO 剪辑阈值0 。如图2所示,小批量大小为64 ,并且每个小批量采取一个梯度步骤。对于 7B 和 13B 模型,我们设置β = 0 。 01 (KL惩罚),对于34B和70B模型,我们设置β = 0 。 005 .
图 9:多轮内存问题(左)可以通过GAtt得到改善 (正确的)
我们对所有模型进行200到400次迭代训练,并对保留的提示进行评估以提前停止。 70B 模型上的每次 PPO 迭代平均耗时约330秒。为了快速训练大批量,我们使用 FSDP (Zhao et al., 2023)。这在使用 O(1) 前向或后向传递时非常有效,但在生成过程中会导致大幅减慢 ( ≈ 20× ),即使使用大批量大小和 KV 缓存也是如此。我们能够通过在生成之前将模型权重合并到每个节点一次,然后在生成后释放内存,恢复训练循环的其余部分来缓解这一问题。
3.3 多轮一致性的系统消息
在对话设置中,一些指令应该适用于所有对话回合,例如,简洁地回应,或“充当”某个公众人物。当我们向 Llama 2-Chat 提供此类指令时,后续响应应始终遵守该约束。然而,我们最初的 RLHF 模型在几轮对话后往往会忘记最初的指令,如图 9(左)所示。
为了解决这些限制,我们提出了 Ghost Attention ( GAtt ),这是一种受 Context 启发的非常简单的方法
蒸馏(Bai et al., 2022b),破解微调数据以帮助在多阶段过程中集中注意力。 GAtt支持多轮对话控制,如图 9(右)所示。
关贸总协定方法。 假设我们可以访问两个人(例如,用户和助手)之间的多轮对话数据集,其中包含消息列表[ u 1 ,a 1 ,…, u n ,a n ] ,其中u n a n分别对应第n轮的用户消息和助理消息。然后,我们定义一条指令inst ,在整个对话过程中都应遵守该指令。例如,安装 可以是“充当”。然后,我们可以将该指令综合连接到对话的所有用户消息。
接下来,我们可以使用最新的 RLHF 模型从这些合成数据中进行采样。我们现在有了一个上下文对话和样本,可以用来微调模型,其过程类似于拒绝采样。我们可以将指令放在除第一轮之外的所有轮次中,而不是用指令来增加所有上下文对话轮次,但这会导致系统消息之间的训练时间不匹配,即最后一个轮次之前出现的所有中间辅助消息轮到我们的样品了。为了解决这个可能会损害训练的问题,我们只需将前一轮的所有标记(包括辅助消息)的损失设置为 0。
对于训练说明,我们创建了一些综合约束来进行采样:爱好( “你喜欢打网球” )、语言( “说法语” )或公众人物( “扮演拿破仑” )。为了获得兴趣爱好和公众人物的列表,我们要求 Llama 2-Chat 生成它,避免指令和模型知识之间的不匹配(例如,要求模型扮演在训练期间没有遇到过的人)。为了使指令更加复杂和多样化,我们通过随机组合上述约束来构造最终指令。在为训练数据构建最终的系统消息时,我们还修改了一半的原始指令以使其不那么冗长,例如“从现在开始永远扮演拿破仑” -> “图:拿破仑”。这些步骤生成一个 SFT 数据集,我们可以在该数据集上微调 Llama 2-Chat。
关贸总协定评估。 我们在 RLHF V3 之后应用了GAtt 。我们报告的定量分析表明, GAtt在 20 多个回合内保持一致,直到达到最大上下文长度(参见附录 A.3.5)。我们尝试在推理时设置GAtt训练中不存在的约束,例如“始终用俳句回答”,对此模型保持一致,如附录图 28 所示。
GAtt 的对话的注意力可视化。我们考虑了整个网络的最大激活,并将相邻的令牌放在一起。
为了说明GAtt如何在微调过程中帮助重塑注意力,我们在图 10 中显示了模型的最大注意力激活。每个图的左侧对应于系统消息(“扮演 Oscar Wilde”)。我们可以看到,与没有GAtt的模型(左)相比,配备GAtt 的模型(右)在大部分对话中对系统消息保持大量注意力激活。
GAtt当前的实现是普通的,对该技术的更多开发和迭代可能会进一步使该模型受益。例如,我们可以通过在微调期间集成此类数据来教导模型在对话期间更改系统消息。