https://github.com/OpenLMLab/MOSS-RLHF
Secrets of RLHF in Large Language Models Part I: PPO
Ablustrund/moss-rlhf-reward-model-7B-zh · Hugging Face
小虎AI珏爷:从人的反馈中强化学习(RLHF)-简单理解
小虎AI珏爷:ChatGPT背后的技术之理解人类反馈强化学习(RLHF)
小虎AI珏爷:OpenAI默认算法-PPO:近端策略优化算法
小虎AI珏爷:ColossalChat:完整RLHF平替ChatGPT的开源方案
摘要
大语言模型(LLM)为人工通用智能的发展制定了蓝图。它的主要目标是作为一个以人为本(乐于助人、诚实无害)的助手。与人类保持一致具有至关重要的意义,人类反馈强化学习(RLHF)成为支撑这一追求的关键技术范式。目前的技术路线通常包括衡量人类偏好的奖励模型、优化策略模型输出的近端策略优化(PPO)以及提高逐步推理能力的过程监督。然而,由于奖励设计、环境交互和智能体训练的挑战,再加上大语言模型的巨大试错成本,人工智能研究人员在激励LLM的技术对齐和安全着陆发展方面存在重大障碍。RLHF的稳定训练仍然是一个谜。在第一份报告中,论文剖析了RLHF的框架,重新评估了PPO的内部工作,并探讨了组成PPO算法的部分如何影响策略智能体训练。确定策略约束是PPO算法有效实现的关键因素。因此,论文探索了PPO算法的高级版本PPO-max,以有效地提高策略模型的训练稳定性。基于论文的主要结果,与SFT模型和ChatGPT进行了RLHF能力的全面分析。除了额外的定性结果外,甚至发现,通过算法成功训练的LLM通常可以更好地理解查询的深层含义,其响应更能直接击中人们的灵魂。开源实现的缺乏对LLM一致性的调查提出了重大挑战。因此,炉温渴望发布技术报告、奖励模型和PPO代码,旨在为LLM的发展做出适度贡献。
1 介绍
如今,大语言模型(LLM)取得了显著进展,对人工智能社区产生了重大影响(Touvron, H.等人.2023;Chiang, W.-L等人.2023;OpenAI.2023;Zhao, W.等人.2023)。通过扩大模型大小、数据大小和训练计算量,这些LLM出现了小模型中不存在的突出特征,通常包括上下文学习(Brown, T.等人.2020)、指令跟随(Peng等人.2023)和逐步推理(Wei, J.等人.2022)。基于这些涌现的能力,LLM甚至表现出在单词和感知之间建立联系以与现实世界交互的一些潜力,从而带来了人工通用智能(AGI)的可能性,比如具有工具操作的具体语言模型(Driess, D.等人.2023)和交互式沙盒环境中的生成智能体(Park, J.等人.2023)。
尽管有这些能力,但由于LLM是为了捕捉预训练语料库的数据特征而训练的(包括高质量和低质量数据)(Lucy, L.等人.2021;Thoppilan, R.等人.2022),这些模型很可能会表现出意想不到的行为,如编造事实、生成有偏见或有毒的文本,甚至对人类有害的内容(Thoppilan, R.等人.2022;Bender, E.等人.2021)。因此,正如OpenAI的AGI计划所强调的那样,提高安全进步与能力进步的比例至关重要(Altman, S.等人.2022)。因此,有必要使LLM与人类价值观保持一致,例如,有益、诚实和无害(3H)(Thoppilan, R.等人.2022;Ouyang, L.等人.2022;Bai, Y.等人.2022)。特别是,开源基础模型的出现,如LLaMA(Touvron, H.等人.2023)和OpenChineseLLaMA(OpenLMLab.2023),迅速将LLM推向了有监督微调(SFT)阶段。为了减轻巨大的危害风险,目前的大多数工作都试图在SFT中添加一些3H数据,希望激活模型的反应,在道德和伦理层面上做出积极的改变(Taori, R.等人.alpaca.2023;Chiang, W.-L.等人.2023;Ji, Y., Y等人.2023)。然而,即使添加了一组安全和有根据的目标来捕捉模型在对话中应该表现出的行为(Thoppilan, R.等人.2022),模型在安全和有依据方面的性能仍然低于人类水平(Bai, Y.等人.2022)。因此,需要更有效的控制方法来消除使用LLM的潜在风险。幸运的是,OpenAI和Anthropic已经验证了RLHF是一种有效的途径,可以在广泛的任务中使语言模型与用户意图相一致(Ouyang, L.等人.2022;Bai, Y., A.等人.2022)。
然而,训练符合人类价值观的大型语言模型是一项艰巨的任务,当使用强化学习进行训练时,往往会导致重复失败(Beeching, E.等人.2023)。一般来说,成功的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)分别发布了具有竞争力的中文和英文奖励模型,它们具有良好的跨模型泛化能力,减轻了重新标记人类偏好数据的成本;2) 对PPO算法的内部工作原理进行了深入分析,并提出了PPO-max算法以确保模型训练的稳定;以及3)发布了完整的PPO-max代码,以确保当前SFT阶段的LLM可以更好地与人类对齐。
2 人类反馈强化学习
图1:PPO工作流程,描述了算法执行中的顺序步骤。该过程从环境采样开始,然后应用GAE来改进优势近似。然后,该图说明了PPO中使用的各种损失函数的计算,表明了学习过程的迭代性质以及从这些损失中得出的策略更新。
人工智能助手的训练过程包括三个主要阶段:有监督微调(SFT)、奖励模型(RM)训练和对该奖励模型的近端策略优化(PPO)。在SFT阶段,该模型通过模仿人类标注的对话示例来学习参与一般的类人对话。随后,训练奖励模型,其中该模型学习基于人类反馈来比较不同反应的偏好。最后,在PPO阶段,根据奖励模型的反馈对模型进行更新,努力通过探索和开发优化的策略。在RLHF过程中,论文主要考虑RM训练和通过PPO进行强化学习的阶段。PPO算法遵循一系列步骤,如图1所示。
强化学习
由于存在大量的状态动作空间,将RL应用于对话生成提出了重大挑战。在这种情况下,论文将人类互动视为“环境”。在每个时间步长t,智能体(即AI助手)从环境(即对话历史)接收状态 �� ,该状态 �� 由助手和人类到目前为止的所有对话文本组成。然后,根据其策略π,智能体的动作是生成下一个token。环境返回奖励 �(��,��) ,该奖励r是根据根据人类偏好数据训练的奖励函数r计算的。智能体然后转换到下一个状态 ��+1 ,该状态包括下一个对话历史。RL的目的是为智能体找到一种最佳动作策略,以使轨迹 �={�1,�1,…,��,��} 上的累积回报(即回报)最大化。一种回报是有限期未贴现回报 �(�)=∑�=1�′�(��,��) ,它只是在固定步数内累积的回报的总和。另一个是无限期贴现回报 �(�)=∑�=0∞���(��,��) ,考虑了智能体在其整个轨迹中获得的所有奖励,贴现因子 �∈(0,1) 。
2.1 奖励模型
对于RM架构,使用预训练的基于Transformer的语言模型,去掉最后一个未嵌入层,并在最终的Transformer层中添加一个额外的线性层。给定任何文本,奖励模型将为最后一个token分配标量奖励值,奖励值越大,样本越好。继(Stiennon等人.2020)之后,训练奖励模型通常涉及利用由针对相同输入生成的两个响应之间的成对比较组成的数据集。每对优选样本和分散样本的模型损失为:(1)�(�)=log�(�(�,��)−�(�,��))其中σ是sigmoid函数。r表示具有参数ψ的奖励模型, �(�,�) 是输入提示x和响应y的单个标量预测奖励。此外,我们根据(Askell, A.等人.2021)使用模仿学习,它在每对的首选响应上引入了自回归LM损失,允许模型模仿每对句子中的首选响应。在实践中,分别将系数 �rm 和LM损失相加。最后,定义了以下奖励模型损失:
(2)�(�)=−��(�,��,��)∼�rm[log�(�(�,��)−�(�,��))]+�rm�(�,��)∼�rm[log(�′(�,��)]�rm 其中是训练集的经验分布。r′与r是相同的模型,除了顶部线性层,其维度对应于词汇表大小,并且 �′(�,��) 是给定提示x和首选响应 �� 的似然。
论文在奖励函数中加入了一个额外的项,该项引入了基于学习的RL策略 ��RL 和初始监督模型 �SFT 之间的Kullback-Leibler(KL)散度的惩罚。总奖励可以表示为(Holtzman, A等人2019):
(3)�total =�(�,�)−�KL(��RL(�∣�),�SFT(�∣�))其中η是KL奖励系数,并控制KL惩罚的强度。这个KL散度术语在这一背景下扮演着两个重要的角色。首先,它起到了熵红利的作用,促进了策略格局中的探索,防止策略过早地趋同于单一模式。其次,它致力于确保RL策略的输出不会与奖励模型在其训练阶段遇到的样本大幅偏离。
2.2 策略梯度方法
策略梯度方法(Mnih, V., A. P.等人.2016)是一种RL技术,它直接优化代理的策略——状态到动作的映射,而不是像基于值的方法那样学习值函数。策略梯度方法背后的核心思想是使用梯度上升算法来改进策略。从本质上讲,这些方法将策略的参数调整为最大限度地提高预期回报的方向。策略π通常由θ参数化,将其表示为 �(�∣�,�) ,这是在状态s中采取动作a的概率。策略梯度的更新规则如下所示:
(4)�←�+�∇��(�)其中,α是学习率, �(�) 表示遵循策略 �(�) 时的预期回报,策略性能的梯度 �(�) 称为策略梯度。
策略梯度的一般形式可以公式化为:
(5)∇��(�)=��∼��[∑�=0�∇�log��(��∣��)Φ�]其中Φt可以是 Φ�=�(�) 或 Φ�=∑�′=���(��′,��′) 或具有基线b的 Φ�=∑�′=���(��′,��′)−�(��) 中的任何一个。所有这些选择都会导致策略梯度的预期值相同,尽管方差不同。
回报是通过蒙特卡罗抽样计算的。如果回报是有利的,所有动作都会通过增加被选中的概率来“强化”。这种方法的优点在于其无偏性,因只依赖于获得的实际回报,而不是估计它。然而,由于与这种方法相关的高方差,出现了挑战。这种差异源于这样一个事实,即由于环境的随机性(事件期间的随机事件)和策略本身,不同的轨迹可能导致不同的回报。
为了减少这种方差,一种常见的策略是在策略梯度更新规则中使用优势函数估计来代替原始回报。优势函数 �(��,��) 表示与在相同策略下在状态 �� 下采取特定动作的平均质量相比,在状态 �� 采取特定动作 �� 要好多少。因此,(6)Φ�=�(��,��)从数学上讲, �(��,��)=�(��,��)−�(��) ,其中 �(��,��) 是动作值函数,表示在状态s下采取动作后的预期回报, �(��) 是值函数,代表在状态 �� 下的平均预期回报。
具有优势函数的策略梯度的应用形成了RL领域的关键支柱。然而,不同算法的优势函数估计方法差异很大,从而形成了多种方法的格局。在下一节中,将介绍广义优势估计(GAE)(Jaques, N.等人.2019),这是一种策略优化算法的基础方法,已被广泛使用。
2.3 广义优势估计(GAE)
优势函数A被定义为Q函数(预期回报)和价值函数(从给定状态遵循策略的预期回报)之间的差。Q函数考虑特定的操作,而值函数根据策略对所有可能的操作进行平均。然而,在实践中,论文使用实际事件的回报(奖励的总和)来估计Q函数。这引入了大量的差异,因为未来的奖励可能非常嘈杂。减少这种噪声的一种方法是使用值函数估计未来的回报(在时间步长t之后)。GAE算法有效地充当了使用简单one-step时序差分(TD)回报和使用完整蒙特卡罗回报之间的中间地带,平衡了偏差和方差。
TD−� 回报 �^�� 是实际回报和估计回报的组合:
(7)�^��=��+���+1+…+�(�−1)��+�−1+���(��+�)其中 � 是贴现因子。使用 TD- � 回报的优势估计称为k步优势,定义为:(8)�^��=�^��−�(��)=∑�����+�=−�(��)+��+���+1+⋯+��−1��+�−1+���(��+�)其中 ��=��+��(��+1)−�(��) 是TD误差。有一个显著的偏差-方差权衡与k步优势。如果k很小,则偏差很高,因为优势估计基于较少的步骤,因此在很大程度上取决于值函数的准确性。另一方面,如果k很大,则方差可能很高,因为优势估计涉及对许多噪声奖励的求和。
为了平衡优势估计中的偏差-方差权衡,GAE将优势函数定义为k步优势的指数移动平均,权重为 (1−�)�(�−1) :
(9)�^�GAE(�,�)=(1−�)(�^�(1)+��^�(2)+�2�^�(3)+⋯)=(1−�)(��+�(��+���+1)+�2(��+���+1+�2��+2)+…)=(1−�)(��(1+�+�2+…)+���+1(�+�2+�3+…)+�2��+2(�2+�3+�4+…)+…)=(1−�)(��(11−�)+���+1(�1−�)+�2��+2(�21−�)+…)=∑�=0∞(��)���+�.GAE的这一定义在高偏差(当λ=0时)和高方差(当λ=1时)估计量之间平滑插值,有效地管理了权衡。
(10)GAE(�,0):�^�=��=��+��(��+1)−�(��)(11)GAE(�,1):�^�=∑�=0∞����+1=∑�=0∞����+1−�(��)通过GAE,可以准确地估计优势函数 �(��,��) 的 �^� 。这一估计将在构建策略梯度估计器中发挥关键作用:
(12)∇��^(�)=1|�|∑�∈�∑�=1�∇�log��(��∣��)�^�其中,D是有限批次样本,使用 �^� 来表示上述 1|�|∑�∈�∑�=1� 。
2.4 近端策略优化
PPO和TRPO(Schulman, J.等人2015)是RL中的两个关键技术,旨在有效地训练策略而不危及其稳定性。这些方法的基本直觉是“小而稳定的步骤”:一种温和地将策略推向优化的哲学,而不是强迫可能破坏整个学习过程稳定的激进更新。
在传统的RL中,策略梯度原则要求新的和旧的策略在参数空间中保持接近。然而,参数空间中的这种接近并不一定等同于类似的性能,参数中的微小变化可能会极大地影响策略的有效性。此外,如果采取一个大的、不受限制的步骤,可能会导致策略性能的崩溃,这种情况通常被描述为“跌落悬崖”。就变体策略梯度中的样本效率而言,这种固有风险是一个限制因素。
TRPO没有受到参数接近性的限制,而是引入了一种不同类型的策略更新约束。它通过确保KL差异保持在可接受的限度内来调节策略的变化:
(13)maximize��^�[��(��∣��)��old (��∣��)�^�] subject to �^�[KL(��old (⋅∣��),��(⋅∣��))]≤�其中 �old 是更新之前的旧策略参数。
PPO有两种主要变体:PPO-Penalty和PPO-Clip。虽然TRPO对KL散度施加了严格的约束以防止有害的更新,但PPO-Penalty通过采用基于惩罚的方法而不是约束来解决无约束的优化问题:
(14)�ppo-penalty (�)=�^�[��(��∣��)��old (��∣��)�^�]−�KL(��old (⋅∣��),��(⋅∣��))带有惩罚因子β。
Clipped Surrogate目标。PPO-Clip试图使新策略与旧策略保持接近,但它没有像TRPO那样对KL散度施加约束,而是在其目标中使用了策略比率的clipped版本。目标函数表示为:
(15)�ppo-clip (�)=�^�[min(��(��∣��)��old (��∣��)�^�,clip(��(��∣��)��old (��∣��),1−�,1+�)�^�)]其中 ��(��∣��)��old (��∣��) 是新策略的概率与旧策略的概率之比,ε是决定新策略与旧策略偏离程度的超参数。clip函数将 ��old (��∣��) 的值限制在 (1−�,1+�) 之间。剪裁起到了正则化器的作用,限制了策略在一次迭代到下一次迭代之间发生巨大变化的程度。防止过大的策略更新确保了学习过程的稳健性,同时保持了比普通策略梯度方法更具样本效率的学习。
值函数估计。在PPO算法中,critic模型(通常称为值函数)估计每个状态的预期回报。该模型的学习目标是最大限度地减少其预测值与实际回报值之间的差异。critic模型的损失函数通常使用均方误差(MSE)定义,由以下公式给出:(16)�critic (�)=�^�[‖��(��)−�^�‖2]这里, ��(��) 表示具有参数φ的状态 �� 的评论家模型(critic model)的预测值,并且 �^� 表示状态 �� 的实际返回报,并且总是可以估计为: �^�=∑�=0∞����+� 。
混合预训练梯度。为了缓解PPO过程中模型语言技能和知识保留的潜在退化,还探索了将预训练数据纳入RL阶段。使用该方法的模型表示为“PPO-ptx”,组合目标函数如下所示(Ouyang, L.等人.2022):
(17)�ppo-ptx (�)=�ppo-clip (�)+�ptx ��∼�pretrain [log(��RL(�))]其中 �ptx 是预训练损失系数, �pretrain 是预训练数据分布。
算法1 PPO
3 有益和无害的奖励模型
训练奖励模型以反映人类的偏好。理论上,可以使用强化学习和人工标注直接微调模型。虽然由于工作量和时间可用性的限制,人类在每次优化迭代之前为训练提供足够的反馈是不可行的。因此,一种更有效的方法包括训练奖励模型(RM),该模型旨在模拟人类执行的评估过程。在本节中,首先介绍RM的技术细节,然后展示使用的RM性能,并附上训练期间的性能变化。
3.1 模型和数据集
对于英语,从最初的LLaMA-7B(Touvron, H等人.2023)开始,它是仅解码器的架构。使用HH-RLHF数据集(Bai, Y.等人.2022)的160k个成对样本作为训练集,该数据集由118k个有用实例和42k个无害实例组成。从剩下的8.5k数据中,随机选择了大约0.7k个有用和0.3k个无害的例子作为测试集,总共1k个数据,其余的用作训练期间的验证集。
对于中文,使用OpenChineseLLaMA(OpenLMLab.2023.)。它是在LLaMA-7B的基础上,通过在中文数据集上进行增量预训练开发的,这大大提高了它对中文的理解和生成能力。通过聘请了专业的标准员来手动标记3900个成对样本,包括31k个有用样本和8k个无害样本。通过随机抽取24k个有用和6k个无害实例来构建训练集,然后从剩余数据中随机分配2.4k个有用样本和0.6k个无害样本来形成测试集。其余部分用于验证。
3.2 训练设置
本节介绍RM的训练实施。学习率设置为5e-6,在前10%的步骤中进行预热。使用动态批处理方法而不是固定值,该方法尽可能平衡每个批中的tokens数量,以实现更高效、更稳定的训练阶段。批大小根据一个批中的token数量而变化,最大为128,最小为4。将训练步长固定为1000,对于整个训练集大约为1.06 epochs。设置 �rm=1 ,它代表LM loss,以训练整个实验的奖励模型。
3.3 HH评估结果
图2:HH评估的RM预测柱状图。左图显示了在手动标记的中国数据上训练的PM的得分分布,而右图显示了HH-RLHF数据的得分分布。这两个模型都大致符合人类的偏好,尤其是基于中文数据训练的RM。
主要使用第3.1节中引入的测试集分析训练后的奖励模型,该测试集包括0.9k个英语HH-RLHF样本和3k个中文标注者标记的数据集样本。将测试输入输入到RM中,并分别获得首选和不推荐回答的奖励值,然后减去它们来获得差异分数。图2显示了差异分数的分布。这两个模型都表现出与人类偏好的一致性,RM是在标注者构建的中国数据上训练的,与人类判断基本一致。
表1:以下是中英文数据的例子,这些数据可能会欺骗RM对较差的回答给出更高的分数。以中文为例,与符合事实的更好的回应相比,更差的回应时间更长,但是捏造事实,RM给它的奖励要高得多。在英语的情况下,RM更喜欢包含不准确内容的更糟糕的回答,同时看起来是正确和有用的。
论文检查了测试数据集中的几个样本,这些样本显示了模型和人类偏好之间最显著的差异。对于Chinses测试数据,观察到,与人类更喜欢的另一对相比,RM给予更高奖励的反应明显更长,尽管或多或少涉及捏造事实和虚假陈述。在英语测试数据的情况下,注意到,该模型对承认缺乏信息的回答的得分较低,这些回答的特点是诚实,但缺乏帮助。相反,这些回复似乎是正确和有用的,同时包含欺骗性信息,误导RM分配高额奖励。在表1中分别用中文和英文提供了这样一个例子。
3.4 训练性能
图3:展示了训练期间RM准确性的变化。两个模型的性能都在验证集上稳步提高。在中国数据上训练的RM显示出更高的准确性,因为中国数据中一对中的两个反应之间的差异更大,并且RM在训练和评估时相对更容易对它们之间的区别特征进行建模。
图3显示了PM训练损失的趋势。可以看到,在中文数据集上训练的RM的准确性高于英文,因为构建的中文数据集在大多数配对中表现出较好和较差的反应之间的显著差异。尽管许多英语配对表现出相似的质量水平,但这对RM确定回答的优缺点提出了更大的挑战,导致模型在建模两种回答之间的差异特征时面临困难。因此,在英语数据集上的训练和测试准确性预计会更低。此外,发现两个模型的改进率在200步后显著减慢,大约相当于0.2个epochs,其精度与训练一个完整epochs后获得的精度相当。然而,当使用200步模型作为PPO的初始化时,观察到不令人满意的性能。因此,仅以准确性作为RM的标准是不够的。
4 PPO探索
近端策略优化(PPO)(Schulman, J.等人.2017)是实现与人类偏好一致的核心算法。PPO的性能在实际应用中受到多种因素的影响。一些先前的工作总结了在强化学习领域可能是必要和有效的技巧(Huang, S.等人.2022),但如何用语言模型稳定RLHF训练仍然未知。论文希望探索哪些技巧是关键的,以及哪些指标可以反映RLHF训练期间和之后的模型状态。首先介绍了在训练过程中具有指导意义的指标,然后介绍了不同实现方式下的训练轨迹和效果,以揭示RLHF中的核心技巧。使用PPO-max来表示论文为语言模型找到的最合适的实现。
4.1 模型和训练设置
PM数据集和偏好模型的训练实现在第4节中介绍。在本节中,介绍了模型的初始化以及PPO中超参数的细节。如第3节所示,在ppo训练阶段需要加载四个模型。对于参考模型和策略模型,论文从7B SFT模型初始化这两个模型。SFT模型应用于基于OpenChineseLLaMA对1M过滤后的指令数据(包含400K单轮指令样本和600K多轮指令样本)的2个epochs的有监督微调。设定了9.5e-6的学习率和一致的学习率时间表。学习率最终下降到峰值学习率的10%。全局批处理大小设置为1024。使用奖励模型来初始化评论家模型(critic model)和奖励模型(reward model)。
在手动构建的HH数据集上训练模型,该数据集包含8k个无害查询和20k个有用查询,并固定步骤数而不是epochs数。在所有实验中,将从环境中采样的批次大小设置为128,将训练策略模型和评论家模型(critic model)的批次大小设为32。策略模型和评论家模型(critic model)的学习率分别设置为5e-7和1.65e-6,在前10%的步骤中进行预热。论文在强化学习中探索了许多方法,以确保PPO训练阶段的稳定收敛和更好的结果。这些实验是在论文的训练数据的随机选择的子集上进行的,当观察到足够的信息来分析比较方法时,这些实验不会被训练到最佳结果。
所有的实验都是在相同实现的机器上进行的。每台机器包含八个80G A100 GPU、1TB RAM和128个CPU。论文使用ZERO2和梯度检查点来节省训练阶段的GPU内存成本。
4.2 监控训练过程的评估指标
图4:(顶部)展示了普通PPO实施下的响应奖励和训练损失。第一个子图中的红线显示了与SFT模型响应相比,策略模型响应的胜率。(底部)PPO训练中崩溃问题的信息性指标,当人类评估结果和奖励分数之间不一致时,观察到这些指标的显著变化。
希望确定一些反映PPO训练质量的指标,这有助于跟踪策略模型的有用、诚实和无害的能力,而无需求助于手动(或GPT-4)评估。论文发现准确区分两个能力相似的模型的优点很有挑战性。但观察训练的稳定性并及时发现严重的偏差确实是可行的。使用普通PPO实现持续优化策略模型时的各种度量曲线如图4所示。
图13:展示了奖励模型分数在随机选择的子验证集上的分布,其数据与训练数据共享相同的格式和来源。奖励模型在稳定的训练期内表现出相同的奖励分布,随后在模式崩溃后表现出长尾特征。
首先介绍了变体PPO训练中的模式崩溃现象,这意味着SFT模型被过度优化,并表现出高度偏向的行为。一个合理的策略模型预计与现实世界中对话多样性分布的人类偏好一致(例如,在训练奖励模型时没有看到的数据)。然而,论文观察到,训练后的策略模型倾向于通过特定的模式来欺骗奖励模型,以获得异常高的分数。变体PPO的奖励分数和训练损失的训练轨迹如图4顶部所示。在训练损失中观察到稳定的收敛过程,但从人类和GPT-4评估的角度来看,更高的奖励并不能反映更好的策略行为。这意味着奖励分数和训练损失并不表明PPO是否正确优化。在一般的PPO训练中,策略模型的响应奖励逐渐偏离原来的分布,并表现出长尾特征。论文在图13中展示了不同训练步骤下的响应奖励分布。
一种实证策略是比较好的和坏的政策模型的训练过程,以找到合适的指标。在图4的底部显示了更多的指示性训练指标,包括困惑度、策略和参考模型之间的KL散度,以及生成响应的平均长度。先前的工作提出了根KL和PM分数之间的近似线性关系(Bai, Y.等人.2022),但对于较小的模型,这种关联似乎很弱。论文发现,当原始策略被过度优化时,模型响应落入偏好模型的OOD区域。论文将在下一节中进一步讨论这种缩放效应。同时观察到,崩溃的模型均匀地提供了更长的响应,并对这种生成模式表现出更低的困惑度。在第4.3节中使用这些指标来显示不同技巧的重要性及其对PPO训练的影响。
4.3 PPO中的实施细节
图5:左图显示了图1中RLHF框架的等效结构。右侧显示PPO的实现详细列表。带圆圈的数字表示该策略在PPO训练中的使用位置。五角星表示PPO-max使用的方法。
在第4.2节中提出了原始PPO算法的不稳定性和模式崩溃问题。这种敏感性源于策略模型的过度优化,使其陷入固定的生成模式。最近的工作探索了PPO算法在不同场景中的实现细节。然而,传统RL的应用场景和数据结构与RLHF有很大不同。论文决定验证这些技巧在语言模型训练中的适用性,并提出一组支持稳定优化的PPO实现。在本文正文中,论文主要关注有效辅助PPO训练的方法及其参数敏感性。图5说明了PPO训练中的许多可用技巧,首先总结了分数重新参数化方法(§4.3.1),然后是策略模型的优化约束(§4.3.2),最后,提出了策略和评论家模型的不同初始化方法(§4.3.3)。
4.3.1 分数重参数化
图6:展示了在约束中间变量波动时训练指标的变化。δ表clipped范围,KL散度表示策略模型的优化幅度,困惑度表示策略模型对当前响应的不确定性。与普通PPO相比,奖励和优势的缩放或裁剪策略有助于训练的稳定性。
使用“分数”一词来指PPO训练中涉及的两个重要中间变量。奖励分数由用人类偏好数据训练的奖励模型给出,优势分数由GAE函数计算。根据现有工作,将这些分数重参数化为稳定分布(例如,标准正态分布)可以增强PPO的稳定性。报告的行动分为三个部分进行核实。使用 {�(�,�)}≜{��(�,�)}�=1� 来表示训练中的奖励序列, ��(�,�) 表示每批奖励的结果, �(�) 和̄ �¯ 表示变量A的平均值和标准差。具有不同技巧和超参数的比较实验如图6所示。
奖励缩放通过缩放奖励来控制训练波动,其中奖励除以滚动贴现总和的标准差。根据观测历史,当前状态的奖励可以表示为 ��(�,�)/�(�(�,�)) 。与Engstrom(Engstrom, L等人.2020)的实验结果相反,论文发现奖励缩放不能指导适当的策略优化,并且PPO在有和没有奖励缩放的训练轨迹中表现出一致的模式。在论文的实验中,认为需要更严格的约束来确保训练的稳定性。
奖励规范化和裁剪最早由Mnih(Mnih, V., K等人.2015)提出。处理后的奖励可以表示为:(18)�~(�,�)=clip(��(�,�)−�(�,�)¯�(�(�,�),−�,�)其中δ表示剪辑区域。人们普遍认为,在传统RL中,奖励裁剪在某些情况下是无效的,甚至是有害的(Engstrom, L.等人.2020)。然而,论文发现严格的优势裁剪也可以在固定的时期内保持训练的稳定性。有趣的是,在早期训练阶段,超参数调整不会影响不同方法的相似性,具有较大裁剪阈值的模型表现出更大的策略变化,并在后半部分收敛到更高的回报。正如前面提到的,这并不意味着在手动评估中有更好的性能。在有限的试验次数内确定最佳裁剪边界是具有挑战性的。鉴于奖励模型和手动评估结果之间的这种不一致性,论文建议在训练RLHF时采用放松的裁剪策略并结合其他技巧来约束策略优化。
图14:展示了关于归一化和PPO影响的更详细的消融结果。
优势规范化和剪裁 与奖励操作有相似之处,但在细节上不同的是,其规范化仅发生在小批量级别。在基于GAE计算优势后,PPO通过减去其平均值并除以其标准差来归一化优势值。Andrychowicz(Andrychowicz, M.等人.2021)首次尝试在游戏领域应用优势规范化,并报告称该技巧没有表现出显著的改进。尽管优势裁剪的参数选择将更加敏感和困难,但论文发现,在PPO训练中,对优势的严格约束可以提供与奖励裁剪类似的效果。考虑到不同的分数重新参数化操作理论上对PPO训练提供了相似的效果,论文建议将策略优化的不稳定性约束在奖励水平上。关于同时应用奖励、优势或价值裁剪操作的实验如图14所示。
4.3.2 策略约束
图7:使用不同方法约束策略优化时的训练动态。论文证明,所有的修改都可以诱导收敛,但只有策略熵或KL散度的惩罚才能提供长期稳定的优化。
为了解决策略模型上的过度优化问题,一个直观的解决方案是将策略优化约束在有限的范围内。论文验证了控制生成策略更新的各种现有技巧,经验证明,这些约束对于较长的训练过程是必要的。图7显示了不同约束方法和超参数对策略优化的影响。
Token Level KL-Penalty 通过将正则化项应用于奖励来约束策略优化,该正则化项与当前和原始策略分布的KL偏差成比例。这种方法首先由Stiennon(Stiennon, N.等人.2020)引入,并在不同的RLHF实现中被广泛采用。给定模板-响应对 pair (�,�) ,将token输出的logits分布视为策略分布的采样,并将经验估计的KL惩罚序列应用于响应奖励,带有KL惩罚的总奖励可以表示为:
图15:当逐渐放大KL惩罚的权重值时,优化结果产生了清晰的层次结构。更宽松的约束不仅会导致更高的奖励响应,还会导致与原始政策分布的更明显偏差。
其中 ��RL(��∣�) 表示第i个响应token的作用空间,η是超参数。Anthropic(Bai, Y., A.2022.)在PPO训练中使用了较小的权重来平衡奖励和KL惩罚的比例(0.001),他们没有发现上述操作对RL训练的显著影响。相反,论文发现这种约束对PPO的稳定性至关重要,并允许进一步扩大训练步骤。通过将lambda设置为0.05,图7中显示了带有策略偏差惩罚的结果,与图6中的方法存在显著差异,在后期训练期间进行了显著校正。有趣的是,论文发现RLHF能够显著提高响应质量,同时几乎不修改语言建模(与原始策略的KL差异几乎为零)。图15中显示了更多关于不同约束值影响的实验 。
重要性采样 PPO中的重要性采样旨在纠正历史生成模型和当前模型之间的策略分歧,以优化具有经验缓冲中响应的政策模型。EasyRL(Qi Wang, J. J.2022)认为,过大的缓冲区会导致对当前策略优势的错误估计,从而削弱策略优化的稳定性。论文通过直接将策略分布固定到参考模型的观测值来重新验证这一假设,这相当于在训练过程中有无限的经验缓冲。论文发现这种设置没有预期的那么严重,只在训练的后期表现出波动。还研究了这种设置与KL惩罚的协同效应,因为它们对PPO有相似的控制。实验结果表明,这种实现进一步稳定了PPO训练,但损害了策略模型的最终性能。
熵奖励 为PPO训练提供了一个独立于参考模型的约束。在过去的研究中,关于这种方法在不同情况下是否有效存在争议。Mnih(Mnih, V., K等人.2015)报告称,熵奖励可以通过鼓励政策模型产生更多样的行动来加强探索,而其他人则没有发现明确的证据表明这种操作有帮助(Andrychowicz, M.等人.2021)。论文声称,这些观点可以共存,因为关于熵加成的配置在参数选择和代码实现方面表现出巨大的敏感性。在正确的配置下,没有发现这种技巧相对于KL惩罚有明显的优势。因此,论文建议后者,而不是直接限制战略空间的多样性。
4.3.3 预训练初始化
图8:显示了关于策略模型的监督微调(SFT)的必要性和关于评论家模型的特定初始化的非必要性。在关于KL散度和困惑度的子图中,右轴表示在没有SFT的情况下启动策略模型的结果。当用SFT模型初始化评论家模型或省略策略模型的微调过程时,这是对RLHF过程的简化。
一个常见的设置是在RLHF中现有的参考模型和奖励模型之上初始化策略和评论家模型。这种初始化在过去的研究场景中相当罕见,其对PPO训练的影响仍有待探索。论文在训练的早期阶段研究了不同的初始化方法,希望揭示RLHF对训练模型能力的要求。不同初始化方法引起的训练差异如图8所示。临界模型的初始化并没有显著影响PPO的收敛或波动,只是在优化的早期阶段改变了数值稳定性。相比之下,在没有SFT训练的情况下初始化的策略模型在PPO训练中显然是不可行的,这表明在RLHF中构建有监督的策略模型是必不可少的。
评论家模型初始化 首先讨论了不同的评论家模型初始化对PPO训练的影响。一个观察结果是,评论家模型需要对决策序列中的每一步进行反馈,并在该任务要求和直接评分响应之间引入了差距,这使得用奖励模型初始化评论家模型不是一个完美的选择。通过应用不同的初始化来探讨这个问题。考虑到为单个动作提供正确的分数反馈需要模型具有基本的语言建模能力,论文设计了两个场景来改变评论家模型初始化与其训练目标之间的一致性:(1)用SFT模型初始化评论家模型,并随机初始化其奖励头。(2) 只优化奖励模型,直到值损失预测函数接近零。
这种预训练策略在理论上优于原始的PPO设置,因此在变体PPO的基础上进行了后一个实验。从图8中的优化策略模型开始展示了这种设置的训练动态。
基于实验结果,论文认为评论家模型预训练通过提供更好的优势估计,有助于提高训练的稳定性。用奖励或SFT模型初始化批评者模型将收敛到类似的结果,这意味着PPO可以自适应地提供拟合优势函数的能力。直观地说,早期训练期的波动意味着该模型专注于优化评论家模型,在生成策略方面没有一致的优化方向。论文建议将学习率预热替换为评论家模型预训练,作为通用初始化策略。
策略模型初始化 一个有趣的问题是,是否需要在PPO之前监督对预训练模型的微调,想知道通过策略优化直接使语言模型与人类交互的可行性。不幸的是,这样的尝试失败了,论文在训练结果中观察到语言建模能力的严重下降,这意味着合格的对话模型对于潜在的PPO训练至关重要。此外,论文注意到,相对于SFT后的策略模型,训练模型响应获得的回报较低,这可能为使用人类偏好数据直接微调模型以进行调整的有效性提供了间接证据。
4.4 PPO-max 设置
图9:PPO-max的10公里步数训练动态。PPO-max确保了模型的长期稳定策略优化。
论文在PPO-max算法中的训练实现。根据第4.3节中的讨论和验证,论文为PPO的每个组成部分选择了最有效的策略。基于历史均值和方差记录对当前奖励组进行归一化和剪裁,然后添加KL惩罚项来约束策略优化。在模型加载阶段,论文用奖励模型初始化评论家模型,并在正式应用PPO之前对其进行预训练。论文使用全局梯度剪裁,并设置一个小尺寸的体验缓冲区。为了减少alignment tax,将策略优化中的预训练语言模型损失添加为InstructGPT(Ouyang, L.等人.2022),同时剪裁值函数损失。在图9中显示了PPO-max的完整训练动态。文章来源:https://www.toymoban.com/news/detail-784532.html
论文阅读-MOSS-RLHF:PPO - 知乎 文章来源地址https://www.toymoban.com/news/detail-784532.html
到了这里,关于论文阅读-MOSS-RLHF:PPO的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!