因为训练得到的模型并不是非常可控的,模型可以看做对训练集分布的一个拟合。那么反馈到生成模型中,训练数据的分布便是影响生成内容的质量最重要的一个因素。有时候我们希望模型并不仅仅只受训练数据的影响,而是人为可控的,从而保证生成数据的有用性,真实性和无害性。论文中多次提到了对齐()问题,我们可以理解为模型的输出内容和人类喜欢的输出内容的对齐,人类喜欢的不止包括生成内容的流畅性和语法的正确性,还包括生成内容的有用性、真实性和无害性。
我们知道强化学习通过奖励()机制来指导模型训练,奖励机制可以看做传统模训练机制的损失函数。奖励的计算要比损失函数更灵活和多样(的奖励是对局的胜负),这带来的代价是奖励的计算是不可导的,因此不能直接拿来做反向传播。强化学习的思路是通过对奖励的大量采样来拟合损失函数,从而实现模型的训练。同样人类反馈也是不可导的,那么我们也可以将人工反馈作为强化学习的奖励,基于人工反馈的强化学习便应运而生。
RLHF最早可以追溯到在2017年发表的《Deep from Human 》[6],它通过人工标注作为反馈,提升了强化学习在模拟机器人以及雅达利游戏上的表现效果。
图3:人工反馈的强化学习的基本原理
/中还用到了强化学习中一个经典的算法:提出的最近策略优化( ,PPO)[7]。PPO算法是一种新型的 算法, 算法对步长十分敏感,但是又难以选择合适的步长,在训练过程中新旧策略的的变化差异如果过大则不利于学习。PPO提出了新的目标函数可以在多个训练步骤实现小批量的更新,解决了 算法中步长难以确定的问题。其实TRPO也是为了解决这个思想但是相比于TRPO算法PPO算法更容易求解。
2. /原理解读
有了上面这些基础知识,我们再去了解和就会简单很多。简单来说,/都是采用了GPT-3的网络结构,通过指示学习构建训练样本来训练一个反应预测内容效果的奖励模型(RM),最后通过这个奖励模型的打分来指导强化学习模型的训练。/的训练流程如图4所示。
图4:的计算流程:(1)有监督微调(SFT);(2)奖励模型(RM)训练;(3)通过PPO根据奖励模型进行强化学习。
从图4中我们可以看出,/的训练可以分成3步,其中第2步和第3步是的奖励模型和强化学习的SFT模型可以反复迭代优化。
根据采集的SFT数据集对GPT-3进行有监督的微调( ,SFT);
收集人工标注的对比数据,训练奖励模型( Model,RM);
使用RM作为强化学习的优化目标,利用PPO算法微调SFT模型。
根据图4,我们将分别介绍/的数据集采集和模型训练两个方面的内容。
2.1 数据集采集
如图4所示,/的训练分成3步,每一步需要的数据也有些许差异,下面我们分别介绍它们。
2.1.1 SFT数据集
SFT数据集是用来训练第1步有监督的模型,即使用采集的新数据,按照GPT-3的训练方式对GPT-3进行微调。因为GPT-3是一个基于提示学习的生成模型,因此SFT数据集也是由提示-答复对组成的样本。SFT数据一部分来自使用的的用户,另一部分来自雇佣的40名标注工()。并且他们对进行了培训。在这个数据集中,标注工的工作是根据内容自己编写指示,并且要求编写的指示满足下面三点:
2.1.2 RM数据集
RM数据集用来训练第2步的奖励模型,我们也需要为/的训练设置一个奖励目标。这个奖励目标不必可导,但是一定要尽可能全面且真实的对齐我们需要模型生成的内容。很自然的,我们可以通过人工标注的方式来提供这个奖励,通过人工对可以给那些涉及偏见的生成内容更低的分从而鼓励模型不去生成这些人类不喜欢的内容。/的做法是先让模型生成一批候选文本,让后通过根据生成数据的质量对这些生成内容进行排序。
2.1.3 PPO数据集
的PPO数据没有进行标注,它均来自GPT-3的API的用户。既又不同用户提供的不同种类的生成任务,其中占比最高的包括生成任务(45.6%),QA(12.4%),头脑风暴(11.2%),对话(8.4%)等。
2.1.4 数据分析
因为/是在GPT-3基础上做的微调,而且因为涉及了人工标注,它们数据总量并不大,表2展示了三份数据的来源及其数据量。
表2:的数据分布
论文的附录A对数据的分布进行了更详细的讨论,这里我列出几个可能影响模型效果的几项:
此外,的博客中讲到和的训练方式相同,不同点仅仅是它们采集数据上有所不同,但是并没有更多的资料来讲数据采集上有哪些细节上的不同。考虑到仅仅被用在对话领域,这里我猜测在数据采集上有两个不同:1. 提高了对话类任务的占比;2. 将提示的方式转换Q&A的方式。当然这里也仅仅是猜测,更准确的描述要等到的论文、源码等更详细的资料公布我们才能知道。
2.2 训练任务
我们刚介绍到/有三步训练方式。这三步训练会涉及三个模型:SFT,RM以及PPO,下面我们详细介绍它们。
2.2.1 有监督微调(SFT)
这一步的训练和GPT-3一致,而且作者发现让模型适当过拟合有助于后面两步的训练。
2.2.2 奖励模型(RM)
因为训练RM的数据是一个根据生成结果排序的形式,所以它可以看做一个回归模型。RM结构是将SFT训练后的模型的最后的嵌入层去掉后的模型。它的输入是和,输出是奖励值。具体的讲,对弈每个,/会随机生成 K 个输出( 4≤K≤9 ),然后它们向每个成对的展示输出结果,也就是每个共展示 CK2 个结果,然后用户从中选择效果更好的输出。在训练时,/将每个的 CK2 个响应对作为一个batch,这种按为batch的训练方式要比传统的按样本为batch的方式更不容易过拟合,因为这种方式每个会且仅会输入到模型中一次。
奖励模型的损失函数表示为式(1)。这个损失函数的目标是最大化更喜欢的响应和不喜欢的响应之间的差值。
(1)loss(θ)=−1(K2)E(x,yw,yl)∼D[log(σ(rθ(x,yw)−rθ(x,yl)))]
其中 rθ(x,y) 是提示 x 和响应 y 在参数为 θ 的奖励模型下的奖励值, yw 是更喜欢的响应结果, yl 是不喜欢的响应结果。D 是整个训练数据集。
2.2.3 强化学习模型(PPO)
强化学习和预训练模型是最近两年最为火热的AI方向之二,之前不少科研工作者说强化学习并不是一个非常适合应用到预训练模型中,因为很难通过模型的输出内容建立奖励机制。而/反直觉的做到了这点,它通过结合人工标注,将强化学习引入到预训练语言模型是这个算法最大的创新点。
如表2所示,PPO的训练集完全来自API。它通过第2步得到的奖励模型来指导SFT模型的继续训练。很多时候强化学习是非常难训练的,/在训练过程中就遇到了两个问题:
综上,PPO的训练目标为式(2)。(2) (ϕ)=E(x,y)∼DπϕRL[rθ(x,y)−βlog(πϕRL(y∣x)/πSFT(y∣x))]+γEx∼ [log(πϕRL(x))]
3. /的性能分析
不可否认的是,/的效果是非常棒的,尤其是引入了人工标注之后,让模型的“价值观”和的正确程度和人类行为模式的“真实性”上都大幅的提升。那么,仅仅根据/的技术方案和训练方式,我们就可以分析出它可以带来哪些效果提升呢?
3.1 优点
3.2 缺点
图5:编写的毁灭人类计划书。
3.3 未来工作
我们已经分析了/的技术方案和它的问题,那么我们也可以看出/的优化角度有哪些了。
3.4 /的热点话题解答
4. 总结
就像很多人们算法刚诞生时一样,凭借有用性,真实性,无害性的效果,引起了业内广泛的关注和人类对AI的思考。但是当我们看完它的算法原理之后,发现它并没有业内宣传的那么恐怖。反而我们可以从它的技术方案中学到很多有价值的东西。/在AI界最重要的贡献是将强化学习和预训练模型巧妙的结合起来。而且通过人工反馈提升了模型的有用性,真实性和无害性。也进一步提升大模型的成本,之前还只是比拼数据量和模型规模,现在甚至也引入了雇佣的外包这一支出,让个体工作者更加望而却步。