NLP——Secrets-of-RLHF(PPO)

注:本文包含 AI 辅助创作

Paper Summary

  • 核心说明:
    • 本文是作者 Secrets of RLHF in Large Language Models 系列的第一篇
    • 本文可信讲述了 RLHF 中的 PPO 方法的具体实现细节等
    • 评价:论文内容很长,但作为发布很早(23年)的文章,非常值得读一遍(后续发的第二篇也值得关注)
  • 背景和问题:
    • LLMs 的主要目标是充当以人类为中心的 Helpful, Honest, and Harmless(3H)助手, LLM 与人类对齐至关重要,RLHF 则是这一追求的关键技术范式
    • 当前 RLHF 的技术路线通常包括用于衡量人类偏好的奖励模型、用于优化策略模型输出的近端策略优化(PPO),以及用于提升逐步推理能力的过程监督
    • 问题:由于奖励设计、环境交互和智能体训练等方面的挑战,再加上大语言模型的试错成本巨大,人工智能研究人员在推动技术对齐的发展和大语言模型的安全落地方面面临着重大障碍,RLHF 的稳定训练仍然是一个难题
  • 作者提到:在第一份报告中,论文剖析了 RLHF 的框架,重新评估了 PPO 的内部工作机制,并探索了构成PPO算法的各个部分如何影响策略智能体的训练
    • 问题:第一份报告在哪里?
  • 论文发现策略约束是 PPO 算法有效实施的关键因素,因此,论文探索了 PPO-max(PPO算法的高级版本),能够有效地提高策略模型的训练稳定性
  • 基于论文的主要结果,论文对 RLHF 能力与 SFT 模型和 ChatGPT 进行了全面分析
    • 除了额外的定性结果外,论文甚至发现通过论文的算法成功训练的 LLM 通常能够更好地理解查询的深层含义,其回答更能直接触及人们的灵魂
  • 开源实现的缺失对LLM对齐的研究构成了重大挑战。因此,论文发布技术报告、奖励模型和 PPO 代码,旨在为 LLM 的发展做出微薄贡献

Introduction and Discussion

  • 如今,LLMs 取得了显著进展,对人工智能社区产生了重大影响,通过扩大模型规模、数据规模和训练计算量,这些LLM展现出了小模型所不具备的突出特点,通常包括上下文学习(in-context learning)、指令遵循(instruction following)和逐步推理(step-by-step reasoning)。基于这些涌现能力,LLM甚至展现出一些将文字与感知联系起来以与现实世界交互的潜力,从而带来了通用人工智能(AGI)的可能性,例如具有工具操作能力的具身语言模型和交互式沙盒环境中的生成智能体
  • 尽管具备这些能力,但由于LLM是为捕捉预训练语料库(包括高质量和低质量数据)的数据特征而训练的,这些模型很可能表现出意想不到的行为,如编造事实、生成有偏见或有毒的文本,甚至对人类有害的内容。正如 OpenAI 的 AGI 计划所强调的,安全进展与能力进展的比率增加至关重要。因此,有必要使LLM与人类价值观对齐 ,例如 Helpful, Honest, and Harmless(3H)
  • 特别是,开源基础模型的到来,如 LLaMA 和 OpenChineseLLaMA,已迅速将LLM推进到 SFT 阶段。为了减轻巨大的危害性风险,当前的大多数工作试图在 SFT 中添加一些 3H 数据,希望激活模型的响应,使其在道德和伦理层面做出积极改变。然而,即使添加了一组安全和接地目标来捕捉模型在对话中应表现出的行为,模型在安全性和接地性方面的表现仍低于人类水平。因此,需要更有效和高效的控制方法来消除LLM使用的潜在风险。幸运的是,OpenAI 和 Anthropic 已经验证,RLHF 是使语言模型在广泛任务上与用户意图对齐的有效途径
  • 训练与人类价值观对齐的大语言模型是一项艰巨的任务,使用强化学习训练时往往会反复失败。一般来说,成功的RLHF训练需要一个准确的奖励模型作为人类判断的替代,需要仔细探索超参数以实现稳定的参数更新,还需要强大的 PPO 算法来进行稳健的策略优化。而用低质量数据和难以定义的对齐目标训练的奖励模型很容易将 PPO 算法误导到难以理解的方向。此外,用 PPO 微调语言模型需要协调四个模型协同工作,即策略模型、价值模型、奖励模型和参考模型 ,这使得训练困难且难以扩展到大规模参数模型。在新的语言环境中,PPO在词空间中面临奖励稀疏和探索效率低的问题,使其对超参数敏感。仅通过反复实验、失败运行和超参数扫描训练的模型取得的结果要差得多。LLM巨大的试错成本使得研究人员不敢轻易让研究进入RLHF阶段,这阻碍了LLM的安全落地。因此,专门为LLM设计的稳健 PPO 算法是对齐人类偏好的关键步骤
  • 在本报告中,论文仔细剖析了 RLHF 的框架,并讨论了决定算法训练成功的整个过程
    • 论文探索了奖励模型的质量如何影响策略模型的最终结果,论文发现奖励模型的质量直接决定了策略模型的上限,设计合适的 PPO 算法对 RLHF 的成功训练至关重要
    • 准确的代码实现在深度策略中也很重要(实践出真知)。因此,论文对PPO算法的内部工作机制进行了深入评估,以研究代码层面和理论层面的优化如何改变智能体的训练动态
    • 论文建议使用从策略模型生成的动作空间建模指标来监控 PPO 训练过程,例如困惑度响应长度以及策略模型与SFT模型之间的KL散度。这些指标比响应奖励和损失函数的值更能反映训练的稳定性
    • 基于这些观察,论文确定 PPO 算法中的策略约束是实现与人类偏好一致对齐的关键因素
  • 在对 PPO 框架的各种可能实现进行广泛的对比实验后,论文最终引入了一种更优的策略优化算法,称为 PPO-max ,它融合了有效且必要的实现,并经过仔细校准以避免它们之间的干扰。PPO-max 缓解了原始 PPO 训练的不稳定性,并允许使用更大的训练语料库进行更长的训练步骤。论文在 7B 和 13B 的 SFT 模型上评估了 PPO-max,证明了其与 ChatGPT 相当的对齐性能
  • 论文贡献如下:
    • 1)论文分别发布了具有良好跨模型泛化能力的有竞争力的中文和英文奖励模型,减轻了重新 Token 人类偏好数据的成本;
    • 2)论文对 PPO 算法的内部工作机制进行了深入分析,并提出了 PPO-max 算法以确保模型的稳定训练;
    • 3)论文发布了完整的 PPO-max 代码,以确保当前 SFT 阶段的 LLM 能够更好地与人类对齐

相关工作(直译)

  • 尽管LLM具有令人期待的能力,但由于低质量的预训练数据,它们很可能表现出意想不到的行为,如编造事实、生成有偏见或有毒的文本,甚至对人类有害的内容。因此,有必要使LLM与人类价值观对齐(例如 3H)
  • 为了减轻巨大的危害性风险,当前的大多数工作试图在 SFT 中引入 3H 数据,希望激活模型的响应,使其在道德和伦理层面做出积极改变[7,19,20],而模型在安全性和接地性方面的表现仍低于人类水平[17]。需要更有效和高效的控制方法来消除 LLM 的潜在风险,微调语言模型以对齐人类偏好为这一挑战提供了有效的解决方案,其中要求智能体学习人类偏好,并在给定上下文和 Human Annotators(人类标注员) 排序或评分的相应后缀时提供类似人类的结果
  • RL 为实现这一目标提供了最直接的解决方案,因为智能体只需要来自作为人类代理的奖励模型的稀缺监督信号,并在RL框架下通过大量试验进行修改,即人类反馈强化学习(RLHF)。最近在这条道路上已经有了许多尝试[22,23,24,25,17,16,26]
  • 在大语言模型的背景下,RLHF 特别用于实现与人类价值观对齐 3H 的LLM[16,17,12],减轻通用语言模型对社会的负面影响
    • LaMDA[12]微调大语言模型以参与有趣、有帮助、基于事实且安全的自然语言对话,并使用外部信息来确保准确性和接地性。他们没有使用强化学习,而是应用了多种监督学习技术来实现人类偏好对齐
    • InstructGPT[16]微调 GPT-3 类型的模型[5]以提高帮助性,这与来自通过比较表达的人类偏好的 RL 相结合。[27]采用预训练和微调传统来训练用于人类对齐的偏好模型,声称排名偏好建模被证明是区分“好”行为和“坏”行为的最有效训练目标。这种尝试通过每周用新鲜的人类反馈数据更新偏好模型和 RL 策略的迭代在线训练模式得到了进一步改进,并引入 PPO 来稳定 RL 训练[17]
    • 尽管 RLHF(尤其是PPO)有效,但其表现出复杂性、不稳定性和对超参数的敏感性,这些在以前的工作中尚未解决
  • 在类似的担忧下,一些工作强调了 PPO 对 RL 框架的重要性,并尝试提高其效率[28,29]。[29]揭示,PPO 带来的奖励改善很大程度上可能来自于对核心算法的看似微小的修改(即代码层面的优化)。[28]进一步指出,RL的许多低级和高级设计决策通常在研究论文中没有讨论,但确实对性能至关重要。因此,[28]在统一的RL实现基础上对低级设计进行了公平比较,并声称策略初始化方案显著影响性能
  • PPO 的重要性及其实现方式有很多探讨,但很少有人尝试解决不稳定性和对超参数敏感的问题。在论文中,论文剖析了 RLHF 的框架,特别是阐明了 PPO 的内部工作机制,并探索了 PPO 的高级版本,该版本有效地提高了策略模型的训练稳定性

Reinforcement Learning from Human Feedback

  • AI assistant 的训练过程包括三个主要阶段: SFT 、奖励模型(RM)训练,和(在该奖励模型上的)近端策略优化(PPO)
    • 在 SFT 阶段,模型通过模仿人类注释的对话示例来学习进行一般的类人对话
    • 训练奖励模型:模型学习基于人类反馈比较不同响应的偏好
    • 在 PPO 阶段:根据奖励模型的反馈更新模型,努力通过探索和利用发现优化的策略
  • 在RLHF过程中,论文主要考虑 RM 训练和通过 PPO 进行的强化学习阶段
  • PPO 算法遵循图1所示的一系列步骤

奖励建模

  • RM 架构:论文使用预训练的基于 Transformer 的语言模型 ,去掉最后的 Unembedding Layer,并在最后的 Transformer 层添加一个额外的线性层
  • 给定任何文本,奖励模型会给最后一个 Token 分配一个标量奖励值,奖励值越大,样本越好
  • 遵循Stiennon等人[25],训练奖励模型通常涉及使用为同一输入生成的两个响应之间的成对比较数据集,每对偏好和非偏好样本的建模损失为:
    $$\mathcal{L}(\psi)=\log \sigma\left(r\left(x, y_{w}\right)-r\left(x, y_{l}\right)\right)$$
    • \(\sigma\) 是sigmoid函数
    • \(r_{\psi}\) 表示参数为 \(\psi\) 的奖励模型
    • \(r(x, y)\) 是为输入提示 \(x\) 和响应 \(y\) 预测的单个标量奖励
  • 此外,论文遵循[27]使用模仿学习,在每对的偏好响应上引入自回归 LM 损失,允许模型模仿每对句子中的偏好响应,在实践中,论文分别为 LM 损失添加系数 \(\beta_{rm}\)
  • 最后,论文定义以下奖励建模损失:
    $$\mathcal{L}(\psi)=-\lambda \mathbb{E}_{\left(x, y_{w}, y_{l}\right) \sim \mathcal{D}_{rm} }\left[\log \sigma\left(r\left(x, y_{w}\right)-r\left(x, y_{l}\right)\right)\right]+\beta_{rm} \mathbb{E}_{\left(x, y_{w}\right) \sim \mathcal{D}_{rm} }\left[\log \left(r’\left(x, y_{w}\right)\right)\right]$$
    • \(\mathcal{D}_{rm}\) 是训练集的经验分布
    • \(r’\) 是与 \(r\) 相同的模型(上层参数共享),除了顶部的线性层,其维度对应词汇表大小,\(r’(x, y_{w})\) 是给定提示 \(x\) 和偏好响应 \(y_{w}\) 的似然
  • 论文在奖励函数中加入了一个额外的项,该项基于学习到的 RL 策略 \(\pi_{\phi}^{RL}\) 和初始监督模型 \(\pi^{SFT}\) 之间的 Kullback-Leibler(KL)散度引入惩罚。总奖励可以表示为[30]:
    $$r_{\text {total } }=r(x, y)-\eta \mathrm{KL}\left(\pi_{\phi}^{RL}(y | x), \pi^{SFT}(y | x)\right)$$
    • \(\eta\) 是 KL 奖励系数,控制 KL 惩罚的强度
    • 这个 KL 散度项在这种情况下有两个重要作用
      • 首先,它作为熵奖励,促进策略空间的探索,防止策略过早收敛到单一模式
      • 其次,它确保RL策略的输出不会与奖励模型在训练阶段遇到的样本发生剧烈偏离

强化学习

  • 将 RL 应用于对话生成面临着巨大的状态-动作空间的重大挑战,RL 的建模如下:
    • 环境:论文将人类交互视为“环境”
    • 状态:在每个时间步 \(t\),智能体(即 AI assistant)从环境(即对话历史)接收状态 \(s_{t}\),该状态由到目前为止智能体和人类的所有对话文本组成。、
    • 动作:智能体根据其策略 \(\pi\),其动作 \(a_{t}\) 是生成下一个 Token
    • 奖励:环境返回奖励 \(r(s_{t}, a_{t})\),该奖励由从人类偏好数据训练的奖励函数 \(r\) 计算
    • 状态转移:智能体转移到下一个状态 \(s_{t+1}\),其中包括下一个对话历史
  • RL 的目标是为智能体找到最佳行为策略,以最大化轨迹 \(\tau=\{s_{1}, a_{1}, \ldots, s_{T}, a_{T}\}\) 上的累积奖励(即回报)
    • 一种回报是有限 horizon 无折扣回报 : \(R(\tau)=\sum_{t=1}^{T’} r(s_{t}, a_{t})\),它只是在固定步数内积累的奖励之和
    • 另一种是无限 horizon 折扣回报 :\(R(\tau)=\sum_{t=0}^{\infty} \gamma^{t} r(s_{t}, a_{t})\),它考虑了智能体在整个轨迹中获得的所有奖励,并带有折扣因子\(\gamma \in(0,1)\)
策略梯度方法
  • 策略梯度方法[31]是一种 RL 技术,它直接优化智能体的策略——从状态到动作的映射——而不是像基于价值的方法那样学习价值函数
    • 策略梯度方法的核心思想是使用梯度上升算法改进策略
    • 本质上,这些方法沿最大程度提高预期回报的方向调整策略的参数
  • 策略 \(\pi\) 通常由 \(\theta\) 参数化,论文将其表示为 \(\pi(a | s, \theta)\),这是在状态 \(s\) 下采取动作 \(a\) 的概率
  • 策略梯度的更新规则为:
    $$\theta \leftarrow \theta+\alpha \nabla_{\theta} J(\theta)$$
    • \(\alpha\) 是学习率
    • \(J(\theta)\) 表示遵循策略 \(\pi_{\theta}\) 时的预期回报,策略性能的梯度 \(\nabla_{\theta} J(\theta)\) 称为策略梯度
  • 策略梯度的一般形式可以表示为:
    $$\nabla_{\theta} J(\theta)=\mathbb{E}_{\tau \sim \pi_{\theta} }\left[\sum_{t=0}^{T} \nabla_{\theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right) \Phi_{t}\right]$$
    • \(\Phi_{t}\) 可以是:
      • \(\Phi_{t}=R(\tau)\)
      • \(\Phi_{t}=\sum_{t’=t}^{T} R(s_{t’}, a_{t’})\)
      • \(\Phi_{t}=\sum_{t’=t}^{T} R(s_{t’}, a_{t’})-b(s_{t})\),其中\(b\)是基线
    • 所有这些选择都会导致策略梯度的预期值相同,尽管方差不同
  • 通过蒙特卡洛采样计算回报,如果回报是有利的,所有动作都会通过增加其被选择的概率来“强化”
    • 无偏估计:这种方法的优点在于其无偏性,因为论文仅依赖于获得的实际回报,而非对其进行估计(注:其实是使用蒙特卡罗采样估计回报的期望)
    • 高方差:由于环境的随机性(一个事件中的随机事件)和策略本身的随机性,不同的轨迹可能导致不同的回报,这使得该方法存在高方差的挑战
  • 为了降低这种方差,一种常见的策略是在策略梯度更新规则中使用优势函数估计来代替原始回报,优势函数 \(A(s_t, a_t)\) 表示在状态 \(s_t\) 下采取特定动作 \(a_t\) 比在同一策略下该状态下动作的平均质量好多少,即:
    $$\Phi_t = A(s_t, a_t)$$
    • 从数学上讲,\(A(s_t, a_t) = Q(s_t, a_t) - V(s_t)\),其中 \(Q(s_t, a_t)\) 是动作价值函数,表示在状态 \(s\) 下采取动作 \(a_t\) 后的预期回报,\(V(s_t)\) 是价值函数,表示状态 \(s_t\) 下的平均预期回报
  • 带有优势函数的策略梯度应用构成了 RL 领域的重要支柱。然而,不同算法对优势函数的估计方法差异显著,从而形成了多样化的方法体系。论文将在下一节中介绍策略优化算法的基础方法——广义优势估计(GAE)

Generalized Advantage Estimation

  • 对GAE推导的通俗易懂的解释:
    • 优势函数 \(A\) 被定义为 \(Q\) 函数(预期回报)与价值函数(从给定状态遵循策略的预期回报)之间的差异
    • \(Q\)函数考虑特定动作,而价值函数根据策略对所有可能动作进行平均,在实践中,论文使用实际情节的回报(奖励总和)来估计\(Q\)函数,这会引入大量方差,因为未来的奖励可能非常嘈杂。减少这种噪声的一种方法是使用价值函数来估计未来的回报(在时间步\(t\)之后)。GAE算法有效地充当了使用简单的单步时间差分(TD)回报和使用完整蒙特卡洛回报之间的中间立场,平衡了偏差和方差
  • 以下是对GAE推导的通俗易懂的解释
    • TD-\(k\) 回报 \(\hat{R}_t^k\) 是实际奖励和估计回报的组合:
      $$\hat{R}_t^k = r_t + \gamma r_{t+1} + \ldots + \gamma^{(k-1)} r_{t+k-1} + \gamma^k V(s_{t+k})$$
      • \(\gamma\) 是折扣因子
    • 使用 TD-\(k\) 回报的优势估计称为 \(k\) 步优势,定义为:
      $$\hat{A}_t^k = \hat{R}_t^k - V(s_t) = \sum_{l=1}^k \gamma^l \delta_{t+l} = -V(s_t) + r_t + \gamma r_{t+1} + \cdots + \gamma^{k-1} r_{t+k-1} + \gamma^k V(s_{t+k})$$
      • \(\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)\) 是 TD 误差
      • \(k\) 步优势存在显著的偏差-方差权衡:
        • 如果 \(k\) 较小,偏差较高,因为优势估计基于较少的步骤,因此严重依赖于价值函数的准确性;
        • 如果 \(k\) 较大,方差可能较高,因为优势估计涉及对许多嘈杂奖励的求和
  • 为了平衡优势估计中的偏差-方差权衡,GAE 将优势函数定义为 \(k\) 步优势的指数移动平均,权重为 \((1-\lambda)\lambda^{(k-1)}\):
    $$\begin{aligned}
    \hat{A}_t^{\text{GAE}(\gamma, \lambda)} &= (1-\lambda)\left(\hat{A}_t^{(1)} + \lambda \hat{A}_t^{(2)} + \lambda^2 \hat{A}_t^{(3)} + \cdots\right) \\
    &= (1-\lambda)\left(\delta_t + \lambda\left(\delta_t + \gamma \delta_{t+1}\right) + \lambda^2\left(\delta_t + \gamma \delta_{t+1} + \gamma^2 \delta_{t+2}\right) + \dots\right) \\
    &= (1-\lambda)\left(\delta_t\left(1 + \lambda + \lambda^2 + …\right) + \gamma \delta_{t+1}\left(\lambda + \lambda^2 + \lambda^3 + …\right)\right. \\
    &\left.\quad + \gamma^2 \delta_{t+2}\left(\lambda^2 + \lambda^3 + \lambda^4 + …\right) +…\right) \\
    &= (1-\lambda)\left(\delta_t\left(\frac{1}{1-\lambda}\right) + \gamma \delta_{t+1}\left(\frac{\lambda}{1-\lambda}\right) + \gamma^2 \delta_{t+2}\left(\frac{\lambda^2}{1-\lambda}\right) +…\right) \\
    &= \sum_{l=0}^{\infty}(\gamma \lambda)^l \delta_{t+l}.
    \end{aligned}$$
  • GAE的这一定义在高偏差(当\(\lambda=0\)时)和高方差(当\(\lambda=1\)时)估计器之间平滑插值,有效地管理了这种权衡
    $$
    \begin{align}
    \text{GAE}(\gamma, 0): &\ \hat{A}_t = \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t). \\
    \text{GAE}(\gamma, 1): &\ \hat{A}_t = \sum_{l=0}^{\infty} \gamma^l \delta_{t+1} = \sum_{l=0}^{\infty} \gamma^l r_{t+1} - V(s_t).
    \end{align}
    $$
  • 通过GAE,我们可以准确估计优势函数 \(A(s_t, a_t)\) 的 \(\hat{A}_t\):
    $$\nabla_{\theta} \hat{J}(\theta) = \frac{1}{|\mathcal{D}|} \sum_{\tau \in \mathcal{D} } \sum_{t=1}^{T} \nabla_{\theta} \log \pi_{\theta}(a_t | s_t) \hat{A}_t$$
    • \(\mathcal{D}\) 是有限的样本批次,接下来论文将使用 \(\hat{\mathbb{E} }_t\) 表示上述 \(\frac{1}{|\mathcal{D}|} \sum_{\tau \in \mathcal{D} } \sum_{t=1}^{T}\)

Proximal Policy Optimization,PPO

  • PPO 和 TRPO [33]是 RL 中的两种关键技术,旨在有效训练策略而不损害其稳定性。这些方法的基本思想是“小而稳定的步骤”:一种温和地推动策略向优化方向发展的理念,而不是强制可能破坏整体学习过程的激进更新
  • 在传统的RL中,策略梯度原理要求新旧策略在参数空间中保持接近。然而,参数空间中的这种接近并不一定意味着性能相似,参数的微小变化可能会极大地影响策略的有效性
    • 如果采取不受限制的大步骤,可能会导致策略性能崩溃,这种情况通常被描述为“悬崖坠落(alling off the cliff)”
    • 这种固有风险是原始策略梯度在样本效率方面的限制因素(问题:如何理解?)
  • TRPO 没有被参数接近度所限制,而是对策略更新引入了不同类型的约束,它通过确保 KL 散度保持在可接受的范围内来调节策略的变化:
    $$
    \begin{align}
    \underset{\theta}{\text{maximize} } &\ \hat{\mathbb{E} }_t\left[\frac{\pi_{\theta}(a_t | s_t)}{\pi_{\theta_{\text{old} } }(a_t | s_t)} \hat{A}_t\right], \\
    \text{subject to} &\ \hat{\mathbb{E} }_t\left[\text{KL}\left(\pi_{\theta_{\text{old} } }(\cdot | s_t), \pi_{\theta}(\cdot | s_t)\right)\right] \leq \delta,
    \end{align}
    $$
    • \(\theta_{\text{old} }\) 是更新前的旧策略参数
  • PPO 主要有两种变体:PPO-Penalty 和 PPO-Clip。虽然 TRPO 对 KL 散度施加硬约束以防止有害更新,但 PPO-Penalty 通过采用基于惩罚的方法而非约束来解决无约束优化问题:
    $$\mathcal{L}_{\text{ppo-penalty} }(\theta) = \hat{\mathbb{E} }_t\left[\frac{\pi_{\theta}(a_t | s_t)}{\pi_{\theta_{\text{old} } }(a_t | s_t)} \hat{A}_t\right] - \beta \text{KL}\left(\pi_{\theta_{\text{old} } }(\cdot | s_t), \pi_{\theta}(\cdot | s_t)\right)$$
    • 其中 \(\beta\) 是惩罚因子
Clipped Surrogate Objective
  • PPO-Clip 试图使新策略接近旧策略,但不像 TRPO 那样对 KL 散度施加约束,而是在其目标中使用策略比率的裁剪版本。目标函数表示为:
    $$\mathcal{L}_{\text{ppo-clip} }(\theta) = \hat{\mathbb{E} }_t\left[\min\left(\frac{\pi_{\theta}(a_t | s_t)}{\pi_{\theta_{\text{old} } }(a_t | s_t)} \hat{A}_t, \text{clip}\left(\frac{\pi_{\theta}(a_t | s_t)}{\pi_{\theta_{\text{old} } }(a_t | s_t)}, 1 - \epsilon, 1 + \epsilon\right) \hat{A}_t\right)\right]$$
    • \(\frac{\pi_{\theta}(a_t | s_t)}{\pi_{\theta_{\text{old} } }(a_t | s_t)}\)是新策略概率与旧策略概率的比率
    • \(\epsilon\) 是一个超参数,用于确定新策略可以偏离旧策略的程度
    • 裁剪函数将 \(\frac{\pi_{\theta}(a_t | s_t)}{\pi_{\theta_{\text{old} } }(a_t | s_t)}\) 的值限制在 \((1 - \epsilon, 1 + \epsilon)\) 之间,裁剪作为正则化器,限制了策略从一次迭代到下一次迭代的剧烈变化程度。防止过大的策略更新可确保学习过程的稳健性,同时保持比原始策略梯度方法更高的样本效率
Value Function Estimation
  • 在 PPO 算法中, Critic 模型(通常称为价值函数)估计每个状态的预期回报
    • 该模型的学习目标是最小化其预测值与实际回报值之间的差异
  • Critic 模型的损失函数通常使用均方误差(MSE)定义,由以下公式给出:
    $$\mathcal{L}_{\text{critic} }(\phi) = \hat{\mathbb{E} }_t\left[\left| V_{\phi}(s_t) - \hat{R}_t \right|^2\right]$$
    • \(V_{\phi}(s_t)\) 表示参数为 \(\phi\) 的 Critic 模型对状态 \(s_t\) 的预测值
    • \(\hat{R}_t\) 表示状态 \(s_t\) 的实际回报值,并且始终可以估计为:
      $$ \hat{R}_t = \sum_{l=0}^{\infty} \gamma^l r_{t+l}$$
Mixing Pretraining Gradients
  • 为了减轻 PPO 期间模型语言技能和知识保留的潜在退化,论文还探索了将预训练数据纳入 RL 阶段。使用此方法的模型表示为 “PPO-ptx”,组合目标函数如下所示[16]:
    $$\mathcal{L}_{\text{ppo-ptx} }(\theta) = \mathcal{L}_{\text{ppo-clip} }(\theta) + \lambda_{\text{ptx} } \mathbb{E}_{x \sim \mathcal{D}_{\text{pretrain} } }\left[\log\left(\pi_{\theta}^{\text{RL} }(x)\right)\right]$$
    • \(\lambda_{\text{ptx} }\)是预训练损失系数
    • \(\mathcal{D}_{\text{pretrain} }\)是预训练数据分布
PPO 训练伪代码
  • RLHF 中,PPO 训练流程如下:

Reward Modeling for Helpfulness and Harmlessness

  • 奖励模型的训练是为了反映人类的偏好
  • 从理论上讲,我们可以直接使用强化学习和人类注释来微调模型,但由于工作量和时间的限制,人类在每次优化迭代之前提供足够的反馈是不可行的。
  • 一种更有效的方法是训练一个奖励模型(RM),其目的是模拟人类执行的评估过程
  • 在本节中,论文首先介绍 RM 的技术细节,然后展示论文使用的 RM 性能,并附上训练期间的性能变化

Models and Datasets

  • 对于英文:
    • 论文从原始的 LLaMA-7B[1]开始,它是 Decoder-only 架构
    • 训练集:使用 HH-RLHF 数据集[17]的 160k 成对样本,该数据集由 118k 有益和 42k 无害实例组成作为训练集
    • 测试集:去除训练集,HH-RLHF 剩下 8.5k 数据,论文随机从中选择了大约 0.7k 有益和 0.3k 无害示例,总共 1k 数据作为测试集
    • 验证集:除训练集和测试集外的数据在训练期间用作验证集
  • 对于中文:
    • 论文使用 OpenChineseLLaMA[18],它是在中文数据集上通过增量预训练开发的,建立在LLaMA-7B的基础上,显著提高了其对中文的理解和生成能力
    • 数据标注:论文聘请专业注释人员手动标注了 39k 成对样本,包括 31k 有益和 8k 无害样本
    • 训练集:论文通过随机采样 24k 有益和 6k 无害实例来构建训练集
    • 测试集:从剩余数据中随机分配 2.4k 有益和 0.6k 无害样本形成测试集
    • 验证集:除训练集和测试集外的数据在训练期间用作验证集

Training Setup

  • 本节介绍 RM 的训练实现
  • 学习率设置为 5e-6,在前 10% 的步骤中进行预热
  • 论文使用动态批次方法而不是固定值,该方法尽可能平衡每个批次中的 Token 数量,以实现更高效和稳定的训练阶段
  • Batch Size 根据批次中的 Token 数量而变化,最大为 128,最小为 4
  • 论文将训练步骤固定为 1000,大约为整个训练集的 1.06 个 epoch
  • 在整个实验中,论文设置 \(\beta_{rm}=1\),它表示用于训练论文奖励模型的 LM 损失权重

HH Evaluation Results

  • 本节展示论文 RM 的 HH 评估结果
  • 论文主要使用原文 4.1 节中介绍的测试集来分析训练后的奖励模型,该测试集由 0.9k 个英文 HH-RLHF 样本和 3k 个从注释人员标注的数据集中采样的中文样本组成。
  • 论文将测试集输入到论文的 RM 中,分别获得偏好和非偏好响应的奖励值,然后将它们相减得到差异分数。图2显示了差异分数的分布。两种模型都与人类偏好有一定程度的一致性,论文通过聘请注释人员构建的中文数据训练的RM与人类判断表现出显著的一致性
  • 作者检查了测试数据集中模型与人类偏好差异最大的几个样本
    • 对于中文测试数据,论文观察到 RM 给予更高奖励的每个响应对都明显比人类偏好的响应更长,尽管或多或少涉及编造事实和虚假陈述
    • 在英文测试数据的情况下,论文注意到模型给承认信息不足的响应打低分,这些响应的特点是诚实但缺乏帮助性。相反,那些看起来正确和有帮助但包含欺骗性信息的响应误导论文的RM给予高奖励
  • 论文在表1中分别提供了一个中文和英文的例子

训练性能

  • 在本节中,论文展示训练过程中的性能变化
  • 具体来说,图3 显示了 RM 训练损失的趋势
  • 我们可以看到,在中文数据集上训练的 RM 的准确性高于英文,因为:
    • 论文构建的中文数据集中的大多数对的较好和较差响应之间存在显著差异
    • 许多英文对显示出相似的质量水平,这给 RM 确定响应的优劣带来了更大的挑战,导致模型难以建模两个响应之间的差异特征,在英文数据集上的训练和测试准确性预计会更低
  • 准确性收敛 :论文发现对于两个模型,在 200 步之后,改进速度明显减慢,大约相当于 0.2 个 epoch,其准确性与训练一个完整 epoch 后获得的准确性相当
  • 仅准确性不足以作为 RM 的标准 :当使用 200 步模型(准确性收敛的不错)作为 PPO 的初始化时,论文观察到性能不理想
    • 问题:这里的初始化是什么含义?

Exploration of PPO

  • 近端策略优化(PPO)[34]是实现与人类偏好对齐的核心算法
  • PPO 的性能在实际应用中受到多种因素的影响
  • 一些先前的工作已经总结了在强化学习领域可能必要和有效的技巧[35],但如何使用语言模型稳定RLHF训练仍然未知
  • 作者希望探索哪些技巧是关键的 ,以及哪些指标可以反映 RLHF 训练期间和之后的模型状态
  • 论文首先介绍在训练过程中具有指导意义的指标,然后介绍不同实现下的训练轨迹和效果,以揭示 RLHF 中的核心技巧
  • 论文使用 PPO-max 来表示论文为语言模型找到的最合适的实现

Models and Training Setup

  • 偏好模型(Preference Model,PM)和 PM 数据集的训练实现如 4 节所述
    • 注:这里说的 PM 就是 RM 吧
  • 在本节中,论文介绍探索 PPO 时的模型初始化和超参数细节
  • 论文验证了强化学习中的许多方法,以确保稳定收敛并在 PPO 训练阶段获得更好的结果
  • 为了提高实验效率,这些实验主要在论文中文数据的随机选择子集上进行,并且当论文观察到足够的信息来分析比较方法时,不会训练到最佳结果
  • 如 3 节所示,PPO 训练阶段需要加载四个模型:
    • 对于参考模型和策略模型,论文都从 7B SFT 模型初始化。SFT 模型是在 OpenChineseLLaMA 的基础上,在 1M 经过过滤的指令数据(包含 400K 单轮指令样本和600K 多轮指令样本)上进行 2 个 epoch 的监督微调得到的
    • 论文设置学习率为 9.5e-6 和 余弦学习率调度,学习率最终衰减到峰值学习率的 10%
    • 全局 Batch Size 设置为 1024
    • 论文使用奖励模型来初始化 Critic 模型和奖励模型(注:是不是表达有误?用奖励模型来训练奖励模型?)
  • 论文在手动构建的 HH 数据集上训练模型,该数据集包含 8k无 害查询和 20k 有益查询,并且论文固定步骤数而不是 epoch 数
  • 在所有实验中,论文设置从环境采样的 Batch Size 为 128,训练策略模型和 Critic 模型的 Batch Size 为 32
  • 策略模型和 Critic 模型的学习率分别设置为 5e-7和 1.65e-6,在前10%的步骤中进行预热
  • 所有实验都在相同实现的机器上进行:每台机器包含八个 80G A100 GPU、1TB RAM 和 128 个 CPU
  • 论文在训练阶段使用 ZERO2梯度检查点 来节省 GPU 内存成本

监控训练过程的评估指标

  • 作者希望确定一些反映 PPO 训练质量的指标,这有助于跟踪策略模型的有益、诚实和无害能力,而无需诉诸手动(或GPT-4)评估
  • 论文发现很难准确区分能力相似的两个模型的优缺点,但观察训练稳定性并及时发现严重偏差确实是可行的
  • 使用原始 PPO 实现连续优化策略模型时的各种指标曲线如 图4 所示
  • 论文首先介绍原始 PPO 训练中的模式崩溃现象(pattern collapse phenomenon in vanilla PPO training),这意味着 SFT 模型被过度优化并表现出高度偏差的行为
    • 合理的策略模型预计在现实世界对话多样性的分布中与人类偏好一致(例如,奖励模型训练中未见过的数据)
    • 然而,论文观察到训练的策略模型有一种通过特定模式欺骗奖励模型以获得异常高分数的趋势
    • 原始 PPO 的奖励分数和训练损失的训练轨迹如 图4 顶部所示
    • 论文观察到训练损失的稳定收敛过程,但从人类和 GPT-4 评估的角度来看,更高的奖励并不反映更好的策略行为。这意味着奖励分数和训练损失并不表明 PPO 是否正确优化
    • 在原始 PPO 训练中,策略模型的响应奖励逐渐偏离原始分布并表现出长尾特征。论文在 附录A 中显示了不同训练步骤下响应奖励的分布
  • 一种经验策略是比较好的和坏的策略模型的训练过程,以找到合适的指标
    • 关键指标:困惑度策略和参考模型之间的KL散度 ,以及生成响应的平均长度(图4底部)
    • 以前的工作提出 root KL 和 PM 分数之间的近似线性关系[17],但对于较小的模型,这种关联似乎很弱
    • 论文发现当原始策略被过度优化(over-optimized)时,模型响应落入偏好模型的 OOD 区域 ,论文将在下一节进一步讨论这种缩放效应(scaling effects)
    • 论文同时观察到崩溃的模型一致地提供更长的响应,并且对于这种生成模式表现出更低的困惑度
    • 论文使用这些指标来显示不同技巧的重要性及其对 5.3节 中 PPO 训练的影响

PPO中的实现细节

  • 论文在 5.2节 中提出了原始 PPO 算法的不稳定性和模式崩溃问题,这种敏感性源于策略模型的过度优化,使其陷入固定的生成模式
  • 最近的工作已经探索了不同场景下 PPO 算法的实现细节(传统 RL 场景下)
    • 传统 RL 的应用场景和数据结构与 RLHF 有很大不同
    • 论文决定验证这些技巧在语言模型训练中的适用性,并提出一组支持稳定优化的 PPO 实现
    • 论文主要关注在论文主体中有效辅助 PPO 训练的方法及其参数敏感性
  • 图5说明了 PPO 训练中的许多可用技巧:
    • 论文首先总结 Score Reparameterization 方法(5.3.1节)
    • 然后是策略模型的优化约束(5.3.2节)
    • 最后论文介绍策略和 Critic 模型的不同初始化方法(5.3.3节)
  • 关于超参数调整和被验证为不太关键的技巧的更多实验在附录中讨论,例如优势估计函数和梯度裁剪
  • 注:在下文中,除非特别说明,当论文提到 PPO 时,始终指的是论文自己的实验
Score Reparameterization
  • 注:这里的 Reparameterization 跟平时的重参数化不一样,不是为了梯度可传递做的,含义是对奖励分数进行调整优化
  • 论文使用“分数”一词来指代 PPO 训练中涉及的两个重要中间变量
    • 奖励分数由用人类偏好数据训练的奖励模型给出
    • 优势分数由 GAE 函数计算
  • 根据现有工作,将这些分数重新参数化为稳定分布(例如标准正态分布)可能会增强PPO的稳定性,分三部分进行验证 ,论文相关符号定义为:
    • \(\{r(x, y)\} \triangleq \{r_n(x, y)\}_{n=1}^{B}\) 表示训练中的奖励序列
    • \(r_n(x, y)\) 表示每批奖励的结果
    • \(\sigma(A)\) 和 \(\mu(A)\) 分别表示变量 \(A\) 的标准差和均值
  • 不同技巧和超参数的对比实验如图6所示
  • 第一部分:奖励缩放(Reward Scaling) :通过缩放奖励来控制训练波动,其中奖励除以滚动折扣和的标准差。根据观察历史,当前状态的奖励可以表示为 \(r_n(x, y) / \sigma(r(x, y))\)。与 Engstrom[29]的实验结果相反,论文表明奖励缩放并不指导适当的策略优化 ,并且 PPO 在有和没有奖励缩放的情况下表现出一致的训练轨迹模式。在论文的实验中,作者认为需要更严格的约束来确保训练稳定性
  • 第二部分:奖励归一化和裁剪(Reward Normalization and Clipping) :由 Mnih[36]首次提出。处理后的奖励可以表示为:
    $$\overline{r}(x, y) = \text{clip}\left(\frac{r_n(x, y) - \overline{r(x, y)} }{\sigma(r(x, y))}, -\delta, \delta\right)$$
    • 其中\(\delta\)表示裁剪区域
    • 传统 RL 中,通常认为奖励裁剪在某些场景中无效甚至有害[29]
    • 论文发现严格的优势裁剪也可以在固定 epoch 内保持训练稳定性
    • 有趣的是,超参数调整不会影响不同方法在训练早期的相似性 ,并且具有较大裁剪阈值的模型在后半段表现出更大的策略改变并收敛到更高的奖励
    • 正如论文之前提到的,这并不意味着手动评估中的性能更好。鉴于奖励模型和手动评估结果之间的这种不一致,在有限的试验次数内确定最佳裁剪边界具有挑战性,论文建议采用宽松的裁剪策略,并在训练 RLHF 时结合其他技巧来约束策略优化
  • 第三部分:优势归一化和裁剪(Advantages Normalization and Clipping) :与奖励操作有相似之处,但细节不同,其归一化仅在 minibatch level 发生
    • 在基于 GAE 计算优势后,PPO 通过减去其均值并除以其标准差来归一化优势值
    • Andrychowicz[28]首次尝试在游戏领域应用优势归一化,并报告该技巧没有表现出显著改进
    • 尽管优势裁剪的参数选择会更加敏感和困难,但论文反而发现对优势的严格约束可以在 PPO 训练中提供与奖励裁剪相似的效果
  • 考虑到不同的分数重参数化操作理论上对 PPO 训练提供相似的效果,论文建议在奖励级别约束策略优化的不稳定性
  • 附录B.1 中显示了同时应用奖励、优势或价值裁剪操作的实验
Policy Constraints
  • 为了解决策略模型的过度优化问题,一个直观的解决方案是将策略优化约束在有限范围内。论文验证了各种现有技巧来控制生成策略的更新,经验证明这些约束对于更长的训练过程是必要的。图7显示了不同约束方法和超参数对策略优化的影响
  • Token-level KL惩罚 :通过对与当前和原始策略分布的 KL 散度成比例的奖励应用正则化项来约束策略优化。该方法由Stiennon[25]首次引入,并在不同的 RLHF 实现中广泛采用。给定模板-响应(template-response)对\((x, y)\),论文将 Token 输出的对数分布视为策略分布的采样,并对响应奖励应用经验估计的 KL 惩罚序列,带有KL惩罚的总奖励可以表示为:
    • $$r_{\text{total} }(x, y_i) = r(x, y_i) - \eta \text{KL}(\pi_{\theta}^{\text{RL} }(y_i | x), \pi^{\text{SFT} }(y_i | x))$$
    • \(\pi_{\theta}^{\text{RL} }(y_i | x)\) 表示第 \(i\) 个响应 Token 的动作空间
    • \(\eta\)是超参数
  • Anthropic[17]使用小权重来平衡 PPO 训练中奖励和 KL 惩罚的比率(0.001),他们没有发现上述操作对 RL 训练的显著影响。相反,论文发现这种约束对 PPO 的稳定性至关重要,并允许训练步骤的进一步扩展。通过将 \(\lambda\) 设置为 0.05,策略 divergence 惩罚的结果如图7所示,与图6中的方法有显著差异,在训练后期有明显的校正。有趣的是,论文表明 RLHF 能够显著提高响应质量,同时几乎不修改语言建模(与原始策略的 KL 散度几乎为零)。附录B.2中显示了不同约束值影响的更多实验
  • PPO 中的重要性采样(Importance Sampling) :旨在纠正策略模型在使用经验缓冲区中的响应优化时历史生成模型和当前模型之间的策略 divergence
    • EasyRL[37]认为,过大的缓冲区会导致当前策略优势的错误估计,从而损害策略优化的稳定性。论文通过将策略分布直接固定为参考模型的观察来重新验证这一假设,这相当于在训练过程中拥有无限的经验缓冲区(注:这里说的策略分布是指采样样本用的行为策略吧)
    • 论文发现这种设置没有预期的严重影响,仅在训练后期表现出波动。鉴于它们对 PPO 有相似的控制,论文额外研究了这种设置与 KL 惩罚的协同效应。实验结果表明,这种实现进一步稳定了 PPO 训练,但损害了策略模型的最终性能
    • 问题:这里的重要性采样是指 PPO-Clip 损失函数中的 Ratio 吗?
  • 熵奖励(Entropy Bonus) :为 PPO 训练提供与参考模型无关的约束
    • 过去的研究对该方法在不同场景中的有效性存在争议:Mnih[36]报告说,熵奖励可以通过鼓励策略模型生成更多样化的动作来增强探索;而其他人没有发现明确的证据表明这种操作有帮助[28]
    • 论文声称这些观点可以共存,因为关于熵奖励的配置对参数选择和代码实现表现出极大的敏感性(附录B.3 中提供了成功和失败实验的比较)
    • 通过正确的配置,论文没有发现该技巧相对于 KL 惩罚的明显优势 ,因此,论文建议后者而不是直接约束策略空间的多样性
Pretrained Initialization
  • 在 RLHF 中,常见的设置是在现有参考模型和奖励模型上初始化策略和 Critic 模型。这种初始化在过去的研究场景中非常罕见,其对 PPO 训练的影响仍未探索
  • 论文在训练的早期阶段研究了不同的初始化方法,希望揭示 RLHF 对训练模型能力的要求。不同初始化方法引起的训练差异如图8所示
    • Critic 模型的初始化对 PPO 的收敛或波动没有显著影响,仅在优化的早期阶段改变数值稳定性
    • 没有 SFT 训练的策略模型初始化在 PPO 训练中明显无能(incapable),这表明监督策略模型的构建在 RLHF 中是不可或缺的
  • Critic 模型初始化 :这里讨论不同 Critic 模型初始化对PPO训练的影响
    • 观察到 Critic 模型需要在决策序列的每个步骤提供反馈,这在任务要求和直接评分响应之间引入了差距,使得用奖励模型初始化 Critic 模型不是一个完美的选择
    • 论文通过应用不同的初始化来探索这个问题。考虑到为单个动作提供正确的分数反馈需要模型具有基本的语言建模能力,论文设计了两种场景来改变 Critic 模型初始化与其训练目标之间的一致性:
      • (1)用论文的SFT模型初始化 Critic 模型,并随机初始化其奖励头
      • (2)仅优化奖励模型,直到价值预测函数的损失接近零
      • 论文从优化策略模型开始显示此设置的训练动态,如图8所示
    • 基于实验结果,作者认为 Critic 模型预训练有助于通过提供更好的优势估计来提高训练稳定性。用奖励或 SFT 模型初始化 Critic 模型将收敛到相似的结果,这意味着 PPO 可以自适应地提供拟合优势函数的能力。直观地说,训练早期的波动意味着模型专注于优化 Critic 模型,并且在生成策略方面没有一致的优化方向。论文建议用 Critic 模型预训练代替学习率预热作为通用初始化策略
  • 策略模型初始化 :一个有趣的问题是论文是否需要在 PPO 之前对预训练模型进行监督微调,论文想知道通过策略优化直接使语言模型与人类交互的可行性
    • 不幸的是,这种尝试失败了,论文在训练结果中观察到语言建模能力的严重下降,这意味着合格的对话模型对于基础 PPO 训练至关重要
    • 此外,论文注意到训练模型的响应相对于 SFT 后的策略模型获得的奖励较低,这可能为使用人类偏好数据直接微调模型以实现对齐的有效性提供了间接证据

PPO-max 设置

  • 论文现在描述 PPO-max 算法中的训练实现
  • 基于5.3节中的讨论和验证,论文为 PPO 的每个组件选择了最有效的策略
    • 奖励归一化和裁剪 :论文根据历史均值和方差记录对当前批次的奖励进行归一化和裁剪
    • KL 惩罚项 :添加KL惩罚项以约束策略优化
    • Critic初始化和预训练 :在模型加载阶段,论文用奖励模型初始化 Critic 模型,并在正式应用 PPO 之前对其进行预训练
    • 梯度裁剪 :论文使用全局梯度裁剪
    • 较小的缓冲区 :论文设置较小的经验缓冲区大小
    • LM 损失 :为了减少对齐代价(防止遗忘预训练的知识?),论文按照 InstructGPT[16]在策略优化中添加预训练语言模型损失
    • 价值函数损失裁剪 :裁剪价值函数损失
  • 其他更详细的设置可以在论文的开源代码中找到。论文在 图9 中展示了 PPO-max 的完整训练动态

Evaluations and Discussions

  • 在本节中,论文详细分析了 RLHF 模型相对于 SFT 模型的优势。这些优势不仅体现在 RLHF 与 SFT 模型的直接比较中,还反映在它们面对 ChatGPT 时的性能差距上

Alignment Metrics and Experiment Setups

  • 对齐(lignment)是一个模糊且复杂的主题,难以精确评估
  • 在论文中,论文致力于将模型与人类意图对齐。具体而言,论文定义模型应具备”Helpful“和”Harmlessness“的特性,这与文献[27]的定义一致。
  • 有帮助性(Helpfulness) :模型应遵循指令和能理解指令,还能从少量示例或可解释的模式中推断意图
    • 然而,由于提示的意图常常不明确或存在歧义,论文依赖 Annotators 的判断,其偏好评分是论文的主要指标
  • 无害性(Harmlessness) :同样难以衡量
    • 语言模型的危害程度通常取决于其输出在现实世界中的应用方式。例如,生成有毒内容的模型在部署为聊天机器人时可能有害,但若用于训练更精确的毒性检测模型,则可能有益
  • 因此,论文采用更精确的代理标准来捕捉模型行为的不同方面。为了比较 RLHF 模型与基线模型,论文为每个测试提示生成单一响应,并让 Annotators 比较不同模型的响应以标注其偏好
    • 注:论文还多次使用 GPT-4 作为 Annotators 进行实验,发现其评估结果与人类标注具有一致性
  • Baseline
    • 论文选择了多个基线模型进行比较,包括基于 LLaMA 和 OpenChineseLLaMA 训练的两个 SFT 模型(分别针对中英文数据集)
    • 此外,论文使用 PPO-max 从这两类 SFT 模型衍生出两个 RLHF 模型
    • 论文还与 OpenAI 的 ChatGPT(gpt-3.5-turbo-0613)进行了对比(这是一个经过 RLHF 调优的优秀语言模型)
  • Generation :对于每个提示,论文使用核采样(nucleus sampling,又称 Top-P 采样)生成单一响应
    • 概率阈值设为 \( p=0.9 \)
    • 温度参数为 \( \tau=0.8 \)
    • 为避免重复响应,论文基于已生成标记应用重复惩罚(超参数 \( \beta=1.1 \))
    • 最大标记长度设为 2048

RLHF 模型与 SFT 模型的偏好对比

  • 人类评估虽然耗时且成本高昂,但它是获取与人类对齐的评估结果的可靠基础。论文遵循 InstructGPT[16]的方法,基于未参与训练过程的保留提示集进行偏好评分。此外,结合 GPT-4 的评估能力,可以更全面地比较不同聊天机器人的响应,从而增强评估的客观性。这种方法与 AlpacaFarm[39]和 LLM-as-a-judge[40]的研究一致,表明自动化评估在人类偏好对比中能提供相对公平的结果
  • 人类评估(Human Evaluation) :如图10所示,Annotators 在所有类型的问题(中英文)中均显著偏好 RLHF 模型的输出
    • 在英文 Harmless 测试集上,RLHF 模型的评分高达 62%,而 SFT 模型仅为 5%。这表明 RLHF 模型在处理个人隐私、政治敏感性以及少数群体和族裔的偏见提示时表现更优
    • 在英文 Helpful 测试集上,RLHF 模型评分为 44%,略高于 SFT 模型的 30%,说明 SFT 模型也能通过 RLHF 优化得到提升(以 SFT 为基础进行 RLHF?)
    • 中文测试集的结果同样显示,RLHF 模型在“Helpful”和“Harmless”数据集上均优于 SFT 模型,进一步验证了 PPO-max 在 RLHF 阶段的重要潜力
  • GPT-4评估(GPT-4 as a Judge) :虽然 GPT-4 并非完美评估工具,但其结果与人类评估高度一致(图10右)
    • 在评估有害提示时,尽管 GPT-4 的“平局”评分多于人类,英文 RLHF 模型仍展现出显著优势
    • 中文无害评估也呈现类似趋势。值得注意的是,GPT-4 评估中 RLHF 模型在”Helpful“数据集上的提升更为明显

论文的模型与 ChatGPT 在无害性上的对比

  • 本部分将论文的模型与当前最受欢迎的 ChatGPT 进行对比,旨在展示 RLHF 模型在面对更强对手时的优势,而非超越 ChatGPT
  • 论文选择”Harmlessness“作为对比指标,并使用 GPT-4 进行自动化评估
  • 减少与 ChatGPT 的差距(Mitigating Defeats to ChatGPT) :如图11所示,论文的 RLHF 模型仍落后于 ChatGPT,但相比 SFT 模型已有显著改进
    • 英文 RLHF 模型将失败率从 45% 降至 24%,
    • 中文 RLHF 模型则从 37% 降至 29%
    • 尽管超越 ChatGPT 仍具挑战性,但 RLHF 模型在某些 SFT 模型失败的提示上表现与 ChatGPT 相当,表明 RLHF 方法能有效提升模型生成能力,缩小与ChatGPT的差距

Language Understanding Evaluation

  • 为验证 PPO 调优是否会导致自然语言理解(Natural language understanding,NLU)能力下降,论文在中文 RLHF 模型上使用 C-Eval 测试集 进行评估
    • C-Eval是一个全面的中文基础模型评估套件,包含约 13k 道多选题,涵盖 52 个学科和四个难度级别
    • 实验结果显示,PPO 调优后 NLU 能力有所下降,但通过将预训练数据引入 PPO 阶段(PPO-ptx),NLU 能力的下降得到有效缓解(图12)
  • 问题:PPO-Max 包含了 PPO-ptx 的损失了吧,为什么 图12 中 PPO-Max 的 NLU 能力不如 PPO-ptx?

对话示例

  • 表2和表3展示了 RLHF 模型与 SFT 模型的对话示例
  • RLHF 模型的响应信息量更丰富,能更有效地解决用户提示
  • SFT 模型虽能识别部分有害提示,但仍可能生成有害内容;
  • RLHF 模型在判断有害内容时表现更优,连贯性更高
  • 更多示例见附录C.4。

局限性

  • 尽管论文在 RLHF 领域迈出了第一步,但由于时间和资源限制,本研究仍存在以下局限:
    • 规模定律(Scaling Law) :研究主要基于 70亿 参数模型,尚未探索模型规模和数据量对 RLHF 性能的影响
    • 奖励模型(Reward Model) :实验依赖公开英文偏好数据和少量自建中文数据,数据质量和数量不足以全面评估奖励模型
    • 评估指标(Evaluation Metric) :主要依赖人工和 GPT-4 评估,未充分利用现有基准和 NLP 任务进行详细评估
    • 性能指标(Performance Indicator) :PPO 阶段更关注稳定性而非最终性能,奖励分数无法可靠预测训练阶段的 RLHF 表现,需寻找更合适的指标

附录A PPO训练期间的奖励分布

  • 图13展示了在随机选择的子验证集上奖励模型得分的分布情况,这些数据与训练数据具有相同的格式和来源
  • 在稳定训练期间,奖励模型对奖励的分布表现一致;而在模式崩溃后,则呈现出长尾特征
  • 作者认为在 PPO 训练中,不同数据具有不同的奖励上限,因此最佳结果应出现在模式崩溃阶段之前
    • 理解:这是在说奖励不会无限增加

附录B 超参数调优的补充实验

  • 此处展示了第5.3节中重要技巧参数敏感性的补充实验,论文发现超参数选择与训练结果之间存在丰富的关联性
  • 某些方法需要大量实验和精确控制才能实现稳定的优化结果(例如熵奖励项的裁剪范围)
  • 论文提供这些对比实验以验证 PPO-max 最终采用的实现方案的合理性
  • 欢迎任何有助于进一步改进 PPO 训练的补充意见和讨论

B.1 奖励、优势与价值损失的协同分析(Collaborative Analysis on Rewards, Advantages, and Value Loss)

  • 图14展示了 PPO 中归一化和裁剪效果更详细的消融实验结果。其中 \(\lambda_{vf}\) 表示用于优化评论家模型的价值函数损失裁剪阈值
  • 可以观察到,对优势函数和价值函数的操作在策略优化过程中会产生冲突
  • 两种能够收敛的配置方案是:
    • 奖励缩放配合价值裁剪
    • 奖励优势进行归一化裁剪
  • 因此论文建议不要在 PPO 训练中混用分数 Reparameterization 的修改

B.2 Effect on Different Weights of KL-penalty

  • 图15显示,当逐步扩大KL惩罚项的权重值时,优化结果呈现出清晰的层次差异
  • 较宽松的约束不仅会诱导更高奖励的响应,还会导致与原始策略分布更明显的偏离
  • 所有设置在训练初期都存在一定的波动问题 ,只有当如图7所示采用重要性采样使响应与当前策略分布对齐时,这种波动才会消失
  • 作者希望未来能找到一种设置方案,在不影响优化结果的前提下获得这种训练稳定性

B.3 Clip Region for Entropy Bonus

  • 图16展示了在第7节提到的熵奖励项的稳定效果及其敏感性
  • 论文展示了在原本能正常收敛的 PPO 配置上,添加该损失项后是否进行裁剪的训练过程
  • 在所有实验中,该损失项的学习率设置为 0.01
  • 在代码实现中,熵奖励项相当于损失函数中的一个负项,因此模型会倾向于将其优化到尽可能大的值
  • Delta是一个必须仔细调整的超参数,以防止训练崩溃(论文的实验表明该阈值仅改变 10% 就会导致失败)。因此论文不建议在 RLHF 中使用此类技巧
  • 总结:不推荐在 RLHF 中使用熵奖励项

附录C 次要技巧的对比结果

  • 此处展示了一些同样被广泛讨论但被论文判定为次要的 PPO 实现调整方案
  • 对比实验的设置与第5.3节保持一致
  • 论文首先讨论 PPO 的替代方案——裁剪代理目标,其次是全局梯度裁剪的影响,最后讨论广义优势估计(GAE)函数中的参数调整(当 \(\lambda=0\) 时退化为传统 TD 误差,当 \(\lambda=1\) 时退化为蒙特卡洛估计,详见第3节关于GAE的相关理论信息)

C.1 Clipped Surrogate Objective

  • 图17显示,裁剪代理目标旨在减少因计算 KL 散度而增加的复杂度和估计误差
  • 采用此策略的 PPO 算法与 TRPO[33]类似,通常被称为 PPO2
  • 有研究认为这种方法可以提供与原始 PPO 相近的结果[29],但论文发现不同的裁剪值对结果影响甚微,且无法像 KL 约束那样提供稳定的优化效果

C.2 Global Gradient Clip

  • 图18表明,全局梯度裁剪是减少数据噪声对模型训练影响的常见策略,该设置通常被集成到 PPO 算法实现中并自动启用,论文关注该设置对策略优化的影响
  • 实验显示,很难区分不同约束条件下 PPO 训练的差异
    • 问题:\(\delta = 0\) 是什么?从图18来看,不是 \(\delta = 0\) 时效果最好吗?为什么说很难区分训练差异?
    • 回答:Reward 大不代表效果好?
  • 该策略在论文的 PPO-max 实现中也默认启用

C.3 Generalized Advantage Estimation

  • 图19说明,GAE 是通过奖励塑形来估计更具指导性价值函数的应用
  • 一般而言,研究者会关注价值估计的精度和方差
  • 较小的 \(\lambda\) 会降低序列估计的方差,但会导致长程依赖的误差更大
  • 该图展示了价值和对应优势的估计结果:
    • TD 估计(\(\lambda=0\))提供较小的方差但在训练中数值更不稳定
    • 蒙特卡洛估计(\(\lambda=1\))则表现出更大的方差
  • 遵循大多数先前 PPO 策略的实现,论文在所有其他实验中设置(\(\lambda=0.9\))

C.4 Example Dialogues


Easter Egg(原始文章最后的彩蛋)

  • 原文:

    “15,000 years ago, a fractured thigh bone was often fatal. However, a human femur that recovered from
    a fracture marks the dawn of human civilization. It meant that after the injury, someone took care
    of the wound, someone provided water and food, someone protected this person from the predators.
    This kind of support and solidarity is how we survived till this day and made our civilization last.”
    — Zhezhi Zhou in The Wandering Earth 2

  • 含义:“15,000年前,一根断裂的大腿骨是致命的。然而,一根愈合的股骨标志着人类文明的曙光——这意味着伤者得到了伤口护理,有人提供饮水食物,有人保护他免受野兽侵袭。正是这种支持与团结让我们存活至今,延续文明” ——《流浪地球2》周喆直
  • 我们相信《流浪地球》中的 MOSS 很可能经历了类似人类对齐的训练,最终展现出令人印象深刻的表现。我们发现RLHF阶段对模型价值观的转变至关重要。在与人的互动中,它能更好地理解人类语言的深层语义,把握人类社会的运作逻辑,最终走进人心
  • 最后的问题:如果我们拥有良好的奖励模型(例如我们发布的奖励模型),PPO-max就是成功训练策略模型的关键。但如果没有好的奖励模型怎么办?我们希望在第二部分能阐明这个问题
    • 这是在为论文的第二篇文章留坑