- Transformer基础
- 常用的大语言模型
- 行业大语言模型
- 大语言模型评估
- 数据构造与清洗
- 分词器构造
- 大语言模型的微调
- 基于PEFT的LLaMA模型微调
- 基于人类反馈的强化学习框架
- 前沿偏好对齐方法
- 基于DPO的偏好对齐实战
- GPTs初体验
- GPTs的初阶使用
- GPTs的高阶使用
- 公开数据集
- 主流方法
- Text2SQL任务实战
- 角色扮演
- 角色扮演实战测试
- 基于Baichuan的角色扮演模型微调
- 对话要素抽取
- 对话要素抽取实战测试
- 基于Qwen的对话要素抽取模型微调
- Agent概述
- Agent的主要模块
- Agent的行为决策机制
- 主流Agent框架
- 基于知识库问答
- 向量数据库
- 基于知识库的大型语言模型问答实战
- AutoGPT概述
- LangChain概述
- 使用LangChain构建AutoGPT
- 运行AutoGPT
ChatGPT横空出世,也带火了其背后的RLHF框架,然而随着研究的不断深入,也出现了各种更加前沿的技术手段。本节将介绍4种前沿偏好对齐方法,它们从不同层面针对原有RLHF框架提出改善和优化思路,并取得了一定效果,也希望通过介绍前沿偏好对齐方法,方便读者掌握偏好对齐这一方法的前沿发展,方便开展自身业务的探索应用。
1. RRHF
首先介绍来自阿里巴巴的RRHF(Rank Responses with Human Feedback,基于人类反馈的排序学习)。从名称中可以看出,保留了人类反馈(HF)这个模块,也从侧面说明了对RLHF中的人类反馈可以提高对齐效果的认可。但在RRHF的作者看来,RLHF模型中的强化学习(RL)并不是必需的,即可以使用其他机器学习建模手段实现对齐,例如论文中选择的排序模型。
图3-4所示为RRHF的工作流程,当一个输入请求出现时,可能会存在专家、ChatGPT 以及当前训练模型3种生成结果,此时可以使用排序模型作为RRHF中的奖励模型,对相关结果进行评价打分,然后人工进一步校核打分结果的可靠性,以此优化完善排序模型。有了更加可靠的排序奖励模型后,当输入大量样本,可以通过ChatGPT 的快速生成,以原有模型输出内容构造出大量候选对比样本,再通过奖励模型筛选出高价值的可靠样本,进而开展新一轮大模型的迭代微调。
在实践中,RRHF用一个大模型同时扮演排序模型与生成模型。这样的好处是可以利用联合建模的思路将损失函数合并计算,在降低参数规模的同时,还可以进一步培养生成模型的自我评价能力。原有的PPO模型需要同时在显存中保留4个模型(原始生成模型、策略优化后的生成模型、原始偏好判别模型、策略优化后的偏好判别模型),之所以PPO比原有的“生成-评价”模型多2个原始模型,是因为上一节介绍的利用KL离散度做正则约束,避免了偏好漂移的出现。但是4个模型的存在导致训练参数增多,资源消耗极大。
RRHF就可以用一个模型缓解这一问题。在RRHF的框架中,若人工标注的候选集有且仅有一条,则它退化成生成模型的微调任务。而且利用RRHF训练好的模型不仅可以用来生成更高质量的数据,其本身也是优秀的评价模型。然而经过一段时间的验证,RRHF框架并未得到广泛的应用,其风头也被后续RLAIF和DPO所盖过,可能还是因为奖励模型使用排序算法过于简单,排序方法过度依赖主观评分,其评价模型训练不够彻底,进一步影响生成质量。但是其设计思想,特别是摒弃强化学习这方面,也打开了我们研究的思路。
同时,利用ChatGPT进行数据构造,也非常符合当下数据标注的现状。与OpenAI的从0到1构建模型有所不同,现在的模型除了借鉴人类反馈的数据标注外,还利用AI工具降低运行成本,进而提高建模效率。RRHF的出现,让大家重新认知到原有的RLHF的对齐成本可以进一步下降,也让偏好对齐研究从单纯的追求对齐效果转换成更具性价比的研究。
2. RLAIF
RLAIF(Reinforcement Learning with AI Feedback,基于AI反馈的强化学习)是由谷歌提出的,从名称可以看出,它们并没有放弃强化学习,而是采用人工智能反馈学习代替原先的人类反馈学习,也就是让模型向表现更好AI模型进行对齐。图3-5为RLAIF与RLHF的训练对比。
从图3-5中可以看出,两者的唯一差别就是用AI生成的偏好作为奖励模型的训练样本,其他流程均保持一致。但就是这样简单的一步,带来的标注成本下降是极为可观的。正如在3.1节中介绍的那样,偏好对齐的标注工作极为繁杂,标注运营成本极为高昂。所以利用AI反馈代替人类反馈可以极大降低运营成本,还可以避免不同人的偏好不一致、主观性过强等一系列问题。
RLAIF以其建模极高的性价比,一经推出就广受好评。但是问题也随之而来:为什么训练AI模型还要向另一个AI模型对齐?RLAIF的成本明显低于RLHF,为什么现在才提出RLAIF,而不是先有RLAIF后有RLHF?针对AI模型向另一个AI模型学习这件事其实很好理解,就是因为两者的差异很大,即老师模型远优秀于任何学生模型。在大模型发展的当下,开源模型虽然发展势头旺盛,但因为受限于参数规模、标注团队、研发人员等,与闭源大模型相比差异非常明显。甚至在很多任务上,GPT-4模型的生成效果好于人类,这就造成了在不少任务上同GPT-4对齐更能让原始模型进一步提高。
至于为什么现在才提出RLAIF,是因为原有的AI模型无法实现代替人工做偏好评价,现在进入大型语言模型时代,像GPT-4这样的优秀模型是可以在众多场景下充当偏好评价的裁判模型的。所以,我们在采用这种方案去设计优化现有生成模型时,需要考虑选择当前最优秀的模型做反馈评价对象,不可选择一个非常基础的模型进行替换,否则很有可能出现强化学习的负优化现象。
通过对比试验,在总结、咨询类任务中,利用RLHF机制训练的生成模型比RLAIF精度提高1%~2%,但在生成“无害”内容任务(大型语言模型在各种极端要求下都不得生成负面、消极、暴力等相关内容)上,RLAIF精度比RLHF提升了12%。这一方面说明了机器在无害生成上比人工反馈更加理智,另一方面也带给我们一些反思,即许多任务未必人工标注效果就好于机器。
RLAIF的设计思想也为模型蒸馏拓展了思路,这在小尺寸大模型发展火热的今天显得格外受到关注。截止到2023年年底,国内外也都陆续发表十亿数量级规模的“小”模型:微软发布的13亿参数模型phi-1.5、阿里巴巴发布的千问小尺寸(18亿参数)版模型以及开源社区发布的11亿参数模型TinyLLaMA。“小”模型能如此火热主要是出于数据规模、训练条件、推理速度及任务复杂度等多方面综合因素的考量。首先,在同等效果情况下,更大参数规模需要依赖更多训练数据才能充分训练。以笔者自身的情况为例,在同一个任务微调70亿和130亿的模型,二者达到同样精度的前提下,后者依赖的指令数据集是前者的3倍。其次,更多的研究人员、企业甚至个人用户都想投身于大型语言模型的构建工作,然而自身的硬件基础决定了其训练的模型参数规模并不会太大。再次,越来越多的人希望在个人电脑、车载移动设备甚至是手机上完成模型推理工作,这些设备也成为大型语言模型时代的边缘计算节点,受限于这些节点的计算水平,模型规模自然希望进一步降低。此外,许多人仍然把大型语言模型当成解决极个别任务的专业模型去使用,因此希望小模型可以实现更好训练、快速收敛的目标。RLAIF的提出,让热衷于优化小模型的研究者看到新的思路,利用它可以逐步实现将自身小模型与GPT-4模型进行偏好对齐,让小模型也可以受益于强化学习。然而这里面有许多内容需要进一步研究,例如如何让小模型具有模型涌现能力,如何避免小模型过拟合等问题都需要经过大量实验分析。
关于人工反馈和AI反馈是否存在协同共处的可能性,谷歌做过相关尝试,然而遗憾的是,收效甚微。对我们使用者而言,如何甄别场景,挑选合适的偏好评价对象或许是当下大模型强化学习偏好学习任务的重点关注内容。
3. DPO
DPO(Direct Preference Optimization,直接偏好优化)是斯坦福大学设计的,在其论文标题中,作者就明确指出,偏好模型可能并不需要,我们构建的大型语言模型本身也许就是潜在的偏好模型。这种想法比前两者更加激进,放弃偏好模型的单独建模,直接从原有模型出发,增加单独为偏好模型专项设计的损失函数,使其在优化模型生成结果中得到进一步提高。
图3-6是RLHF与DPO的建模对比。RLHF在偏好学习阶段通过极大似然估计训练方式构建奖励模型,然后通过强化学习的样本动作与奖励机制不断调整优化大型语言模型生成策略。DPO在偏好阶段则是直接跳过奖励模型与强化学习阶段,从模型本身出发,直接最大似然估计优化最终生成模型的相关参数。DPO的整体流程仅需以下两个阶段:
1)构造生成偏好正负例样本。相较于之前微调阶段的样本构造方式,这里将原有的“输入(Input)-输出(Output)”数据集改为了“输入(Input)-正反馈(Accept Response)-负反馈(Negative Response)”。这种样本训练学习方法并不是首创,其实就是从图像领域兴起的对比学习。通过对比学习,研究者发现,模型在同时学习正负例时可以快速收敛,整体表现可以进一步提升。
2)基于设计好的损失函数,利用对比学习相关方法,通过极大似然函数对原始生成模型进行参数优化。这样的设计省去了原有偏好奖励模型与强化学习训练全过程,在效率提高的同时,精度与稳定性比PPO也有显著提升。通过第二阶段的优化调整,模型参数朝着靠近正例远离负例的方向不断优化,最终实现模型生成向正例内容的偏好对齐。
如果说RLAIF仅改变了标注方式,整体框架与RLHF完全一致,那么采用DPO架构就彻底改变了InstructGPT论文中的三阶段建模方法(参考图3-3)。采用DPO架构,第一阶段与InstructGPT一致,是任务微调,第二阶段直接采用DPO做偏好学习,微调模型参数,实现模型生成的对齐学习。从直觉上来看,二阶段建模复杂度是小于三阶段建模的,少训练一个偏好模型,不训练强化学习都会让采用DPO架构生成的模型更加稳定,从实际效果来看也确实印证了这一理论。在DPO论文中,斯坦福大学的研究者发现,在下游任务表现上,采用GPT-4作为评委,在评价人类生成结果与模型生成谁更出色问题上,采用DPO优化对齐的模型赢的概率明显高于(5%~10%)使用PPO强化学习的策略,并且表现更加稳定。值得注意的是,这里我们再一次看到GPT-4的身影,只不过它扮演的是更加公平的裁判者,由此可以看出GPT-4已经在各方面改变我们建模、标注、思考问题的方式,希望引起读者的进一步重视。
读到这里可能会产生困惑,为什么同样简单且利用二阶段排序训练的RRHF没有像DPO一样效果优秀,并受到更多研究者的追捧?简单来看,是因为RRHF更像是RLHF的低成本平替方案,在减少模型的同时,通过用排序模型替代奖励模型,一定程度上降低了训练成本,但也让训练效果进一步下降。DPO就完全不同,就像许多检索任务已经放弃排序模型而采用对比学习,DPO中的正负例的构造学习可以让模型训练更加充分,效果可以进一步提升。此外,DPO具有强大的理论支持,在其论文中,作者提出借鉴InstructGPT中强化学习算法PPO面向策略模型采用KL离散度,DPO也在其损失函数中加入了对比学习的KL离散度(RRHF中并未涉及)。相较于强化学习的策略模型,DPO采用的交叉熵函数更加高效,其正则化约束收效相较于RRHF也更加明显,这也直接导致通过DPO对齐后的模型生成更加稳定。
然而DPO模型也并非完美。首先想到的优化思路就是参考对比学习的正负样本比例非对称构造,在图像分类任务上通过实验发现,负例样本比例更多,效果往往会好于正负样本均衡的情况。究其原因可能是同时见过多个负例可以更加明确参数优化的方向,摒弃更多的错误选项。其次就是加剧模型的不可解释性,正如谷歌所说,大型语言模型自身就是潜在的奖励模型,但是一旦模型不能显性表征其偏好内容,就会让模型本身变成一个黑盒系统。我们都希望训练一个生成更高质量的语言模型,但也同样希望机器可以显性、客观、公正地评价自身或其他模型生成的结果。此外,无论是强化学习还是对比学习,都在尝试模拟偏好对齐的奖励机制,但这种非直接的方式会导致模型的不稳定性,未来应尝试更多方法去寻求更快速、准确拟合奖励函数的方法。
2023年下半年,不少模型都采用DPO作为模型后期偏好对齐的技术选型,由此可以证明DPO自身的优越性。拥有不再单独训练奖励模型和不依赖强化学习这两个优势,DPO算法在模型日新月异变化的当下显得格外重要。
4 APO
腾讯的研究团队在2023年11月公布了其设计的APO(Adversarial Preference Optimization,对抗偏好优化)算法框架。算法简称中的A就是指的对抗学习,由此可以看出,腾讯团队在思考如何开展偏好对齐任务上另辟蹊径,选择使用对抗网络框架来进行优化。
首先简要回顾一下对抗学习的基本思路,就是类似军队演习中的红蓝对抗,对抗学习会涉及两类模型:生成模型(Generator Model)与判别模型(Discriminator Model)。为了实现两个模型的高效迭代,框架采用对抗的思路开展训练。以AI伪造生成图片场景为例,生成模型的目标就是让机器生成一张以假乱真的图片,然而判别模型的目标则是判断一张图片是真实拍摄还是机器生成,从目标上我们就可以清晰看出两个模型的对抗性。在模型训练优化过程中,首先会利用当前版本的判别模型给生成模型打分,旨在通过判别模型的得分寻找生成模型优化的方向。然后使用真实图片和新一版本的生成模型作为正负样本,通过分类任务损失函数的梯度更新,让判别模型得以进一步提升自身辨识能力。这样就完成一轮生成模型与判别模型的迭代,连续多轮迭代后将最终得到更加出色的两个模型。
其实在InstructGPT提出大型语言模型的三段训练框架时,就有不少人发现,偏好奖励模型很像对抗学习的判别模型,只不过RLHF采用强化学习去优化生成模型与偏好模型。因此当腾讯团队发布APO时,才让大家发现的确可以将偏好学习任务看成判别模型,与生成模型采用对抗学习框架进行进一步优化。
图3-7为APO在奖励模型(即对抗学习中的判别模型)与大型语言模型(即对抗学习中的生成模型)训练阶段的整体流程图。具体过程如下:
在训练奖励模型阶段,首先准备好一批标注好的指令集语料(这种标注好的语料未必是纯手工标注,可以借助GPT-4这样的模型降低模型成本),让当前大型语言模型生成这些指令的生成样本,并结合其真实标注样本构建正负用例,用来训练奖励模型的偏好选择。
在大型语言模型训练阶段,选择一批指令任务(注意不需要标注这些任务的输出结果),让当前大型语言模型生成多组候选结果,再统一交由奖励模型进行评估,并将这些生成结果的评分当作大型语言模型的生成优化方向,进而开展大型语言模型的参数优化。
这里不难发现,在APO训练大型语言模型阶段,并不需要用户标注指令任务的结果,这与RLHF的第二、三阶段不依赖人工标注答案保持一致。对抗学习的建模过程比原先的RLHF更为简单,从腾讯团队发布的实验效果来看,加入APO机制的大型语言模型可以快速开展奖励模型与生成模型的双向训练,且生成效果相对较好。
但是APO算法也与RRHF算法、DPO算法的设计初衷保持一致,尝试去除强化学习对偏好学习的影响,采用一套新的学习框架(RRHF的排序任务、DPO的对比学习、APO的对抗学习),其效果在部分场景下的确优异。伴随着大型语言模型参数的指数级增加以及任务复杂性的陡增,上述算法能否像强化学习一样表现持续稳定需要大量实验加以验证。