复旦NLP组开源PPO-Max:32页论文详解RLHF背后秘密,高效对齐人类偏好

人工智能
语言模型开发的最主要目标是成为「以人为中心」的助手,具有乐于助人、诚实且无害的性格特质,能够与人类保持一致的价值观,而基于人类反馈的强化学习(RLHF)则是支撑这一目标的关键技术。

近几年,大型语言模型(LLM)技术飞速发展,以ChatGPT为首的对话助手更是将AI技术实用性增强。语言模型开发的最主要目标是成为「以人为中心」的助手,具有乐于助人、诚实且无害的性格特质,能够与人类保持一致的价值观,而基于人类反馈的强化学习(RLHF)则是支撑这一目标的关键技术。

目前的技术路线通常包括衡量人类偏好的奖励模型、优化策略模型输出的近端策略优化(Proximal Policy Optimization, PPO)以及提高逐步推理能力的过程监督(process supervision)。

但现状是,由于奖励设计、环境交互、智能体训练等方面仍然存在挑战,再加上大型语言模型的训练需要付出巨大的试错成本,人工智能领域的研究人员在推动LLM的技术对接和安全落地方面仍然存在很大的开发障碍,并且RLHF的稳定训练也还是一个难题。

最近,复旦大学NLP组的研究人员公开了一篇论文,剖析了RLHF的框架,重新评估了PPO的内部工作原理,并探讨了组成PPO算法的各个部分对策略智能体训练的影响,结果发现策略约束是有效实施PPO算法的关键因素。

图片图片

论文链接:https://arxiv.org/pdf/2307.04964.pdf

仓库链接:https://github.com/OpenLMLab/MOSS-RLHF

研究人员探究了PPO算法的高级版本PPO-max,可以有效提高策略模型的训练稳定性,并基于主要实验结果,综合分析了RLHF与SFT模型和ChatGPT的能力对比。

除了更多的定性结果外,研究人员还发现基于该算法成功训练的LLM往往能够更好地理解查询的深层含义,回复结果更能直击用户灵魂。

最后,缺乏开源实现也给LLMs的对齐(alignment)研究带来了巨大挑战,研究人员也开源了相关代码,并发布了中文和英文的奖励模型。

基于人类反馈的强化学习RLHF

人工智能助手的训练过程包括三个主要阶段:有监督微调(SFT)、奖励模型(RM)训练和奖励模型上的近端策略优化(PPO)。

在SFT阶段,模型通过模仿人类标注的对话示例来学习通用的类人对话;在奖励模型训练过程中,模型会根据人类反馈来比较不同回复的偏好;在PPO阶段,根据奖励模型的反馈更新模型,通过探索(exploration)和利用(exploitation)发现最优策略。

图片图片

RLHF过程中主要涉及RM训练和PPO强化学习阶段,详细技术细节请参阅原论文。

奖励建模 Reward Modeling

在RM架构中,研究人员使用基于Transformer的预训练语言模型,去掉最后unembedding层,并增加一个额外的线性层。

输入任意文本,奖励模型将最后一个token转换为标量奖励值:奖励值越大,代表样本越好。

训练奖励模型通常需要一个「针对相同输入生成的两个回复之间的成对比较」数据集。

近端策略优化Proximal Policy Optimization

PPO和TRPO是强化学习训练中的两种关键技术,可以在不损失稳定性的情况下有效地训练策略,其基本思想是「稳定的小步骤」(small, stable steps),即温和地引导策略走向优化,而非强制执行可能会破坏整个学习过程稳定的激进梯度更新。

在传统的强化中,策略梯度原则要求新旧策略在参数空间中保持接近,不过参数空间的接近并不一定等同于相似的性能,参数的微小变化可能会极大影响策略的有效性。

此外,如果不加限制地迈出一大步,可能会导致策略性能崩溃,这种情况也叫做「跌落悬崖」(falling off the cliff),这种固有风险限制了原始策略梯度的采样效率。

图片图片

TRPO对策略更新引入了另一种约束,不受限于参数的接近性,通过确保KL散度保持在可接受的范围内来调节策略的变化。

图片图片

PPO有两种主要变体:PPO-Penalty和PPO-Clip,TRPO对KL散度施加硬约束以防止有害更新,而PPO-Penalty则采用基于惩罚的方法代替约束来解决无约束优化问题。

PPO-max

近端策略优化(PPO)是实现与人类偏好一致的核心算法,但在实际应用中,PPO的性能受到多种因素的影响,虽然之前有工作总结了一些再强化学习领域中必要且有效的技巧,但如何稳定语言模型的RLHF训练仍是未知数。

图片图片

这篇论文中,研究人员通过实验探索了哪些技巧是比较关键的,哪些指标可以反映RLHF训练过程中和训练后的模型状态,然后用PPO-max来表示从实验中发现的,最适合语言模型的实现方式。

模型和数据集

对于英语数据,研究人员使用decoder-only架构的原始LLaMA-7B模型,使用HH-RLHF数据集的16万样本对作为训练集,其中包括11.8万条有用样本和4.2万条无害样本;从8500条数据中随机抽取1000条数据作为测试集,剩余数据作为验证集。

图片图片

对于中文数据,使用OpenChineseLLaMA模型,基于LLaMA-7B在中文数据集上增量预训练后得到的,显著提高了对中文的理解和生成能力。

研究团队聘请了专业的标注人员对3.9万对样本进行人工标注,其中包括3.1万个有用样本和8000条无害样本;在训练集中随机抽取2.4万个有用样本和6万个无害样本,然后从剩余数据中随机分配2.4万个有用样本和0.6万个无害样本组成测试集,其余数据用于验证。

评价指标

研究人员的目标是找出一些能反映PPO训练质量的指标,有助于跟踪策略模型的有益、诚实和无害的能力,从而无需使用人工标注或GPT-4来评估。

图片图片

可以观察到,原始PPO在训练过程中存在模式崩溃现象,也意味着SFT模型被过度优化并表现出高偏差行为。

并且训练损失有稳定的收敛过程,但从人类和GPT-4评估的角度来看,较高的奖励并不能反映出更好的策略行为,也就说明奖励得分和训练损失并不能说明PPO是否正确优化。

在原始PPO训练中,策略模型的回复奖励逐渐偏离原始分布,表现出长尾特征。

研究人员还测试了其他指标如困惑度、策略模型和参考模型之间的KL散度以及生成回复的平均长度。

PPO-max

研究人员对PPO训练技巧中的评分重参数化(score reparameterization)方法、策略模型的优化约束,以及策略模型和critic模型的不同初始化方法进行实验验证。

图片图片

对PPO的每个部分选择最有效的策略以实现PPO-max,具体实现可以参阅开源代码。

首先根据历史均值和方差记录对当前奖励组进行归一化和裁剪,然后添加KL-惩罚项来约束策略优化。

在模型加载阶段,用奖励模型初始化critic模型,并在正式应用PPO之前对其进行预训练,然后使用全局梯度裁剪并设置较小的经验缓冲区。

图片图片

为了减少对齐tax,在策略优化中添加了预训练语言模型损失,如InstructGPT,并同时对估值函数损失进行裁剪。

实验结果

研究人员将该模型和ChatGPT进行比较,选择「无害性」作为比较指标,并采用GPT-4进行自动评估。

图片图片

实验结果可以看到,该RLHF模型仍然落后于OpenAI的ChatGPT,但与SFT模型相比,RLHF模型有了明显的改进。

图片图片

具体来说,在英文文本上训练的RLHF模型成功地将失败率从45%降至24%;在中文文本上训练的RLHF模型也将失败率从37%降至29%,表明RLHF方法增强了模型生成更有效回答的能力,缩小了与ChatGPT之间的差距。

语言理解评估

为了检验使用PPO对模型进行微调可能导致的自然语言理解能力的下降,使用C-Eval5对中文RLHF模型进行了测试,包含约1.3万道多选题,涉及52个学科和4个难度级别。

实验结果表明,采用PPO后,模型NLU的能力有所下降;通过将预训练数据纳入PPO训练阶段,PPO-ptx可以有效缓解了NLU能力的下降,底层原理是利用预训练中获得的知识,并将其与PPO的强化学习框架相结合。

限制

虽然该研究已经迈出了RLHF的第一步,但由于时间和资源的限制,这项工作仍然存在以下局限性:

1. 规模定律(Scaling Law)

这篇论文主要研究70亿参数的模型,还没有研究模型大小和数据规模对RLHF性能的影响。

2. 奖励模型

实验基于公开的英文人类偏好数据集和少量自建的中文数据,数据质量和数量不足以对奖励模型进行全面评估。

3. 评估指标

目前评估标准主要依赖于人工评估和GPT-4自动评估,还没有利用大量可用的基准和NLP任务来对模型进行详细评估

4. 性能指标

该研究在PPO阶段的重点是实现训练稳定性,而不是提高最终性能,虽然稳定性至关重要,但它并不一定能保证改善结果。

此外,奖励得分不能可靠地作为预测训练阶段RLHF性能的指标,也就意味着需要寻找更合适的训练阶段性能指标。

参考资料:

https://arxiv.org/pdf/2307.04964.pdf

责任编辑:武晓燕 来源: 新智元
相关推荐

2023-04-28 15:24:06

模型研究

2023-08-22 13:21:07

AI算法

2024-08-05 13:00:00

2023-07-11 15:38:51

模型方案

2023-11-08 13:20:00

模型数据

2024-06-05 09:59:13

2024-10-23 09:00:00

2023-04-18 17:20:00

算法训练

2024-01-15 16:41:00

模型数据

2024-11-05 13:30:00

2024-03-04 00:20:00

语言模型人工智能

2023-10-20 12:53:00

模型训练

2020-04-15 13:55:28

Kubernetes容器

2023-09-05 12:59:33

模型数据

2023-05-25 09:00:00

人工智能ChatGPTOpenAI

2024-07-22 08:22:00

2024-01-24 13:37:36

大型语言模型人工智能

2022-12-29 08:00:00

Transforme架构深度学习

2024-04-16 14:01:40

大型语言模型ORPO

2020-03-09 15:27:25

开源技术 趋势
点赞
收藏

51CTO技术栈公众号