偏好对齐技术的演进
大语言模型的训练过程可以大致分为两个阶段:预训练阶段和后训练阶段。预训练阶段让模型学会了语言的基本规律和世界知识,而后训练阶段则让模型学会了遵循人类的指令和偏好。在后训练阶段中,让模型输出符合人类期望的技术被称为偏好对齐技术。早期的偏好对齐主要依赖监督微调,即使用人类精心设计的问答对来微调模型,但这种方法的局限性很快显现出来——它只能教会模型什么是好的回答,却无法让模型学会区分好与坏之间的细微差别。
基于人类反馈的强化学习(RLHF)的出现改变了这一局面。RLHF通过引入奖励模型来学习人类的偏好,然后使用强化学习算法来优化策略模型,使其生成的回答能够获得更高的奖励分数。在RLHF的框架下,模型不再只是被动地模仿人类的示例,而是主动地学习如何最大化人类的满意度。这种方法取得了惊人的效果,ChatGPT、Claude等顶级模型的背后都有RLHF的影子。然而,传统的RLHF依赖于复杂的PPO算法,实现难度大,训练不稳定,资源消耗高,这些问题限制了其更广泛的应用。
2023年底,一种名为直接偏好优化(Direct Preference Optimization,DPO)的新方法横空出世。DPO的作者发现,PPO中的强化学习优化目标可以通过数学变换转化为一个简单的分类问题,从而绕过了复杂的强化学习框架。DPO的出现引发了广泛的讨论,有人认为它将取代PPO成为新的主流方法,也有人对其实际效果持怀疑态度。理解PPO与DPO的异同,对于选择合适的偏好对齐方案至关重要。
技术原理的深度对比
要理解PPO和DPO的区别,首先需要理解它们各自的技术原理。PPO属于强化学习方法的范畴,它将偏好对齐问题建模为一个马尔可夫决策过程,策略模型作为智能体在每个时间步选择下一个token,奖励模型给出即时奖励,价值模型估计未来的累积奖励。PPO通过裁剪机制限制策略更新的幅度,确保训练过程稳定。这种方法的优势在于它能够进行在线学习,策略模型在训练过程中不断探索新的输出方式,有可能在某些任务上发现比训练数据更好的答案。
DPO采用了完全不同的思路。DPO的作者证明了,在一定的假设下,PPO优化奖励模型的目标可以等价于直接优化人类偏好数据的目标。具体来说,DPO将偏好数据视为二分类问题——对于每个问题,人类标注了chosen和rejected两个回答,DPO训练策略模型使得chosen回答的概率高于rejected回答的概率。这种方法不需要奖励模型,不需要价值模型,也不需要复杂的强化学习算法,只需要标准的交叉熵损失函数就能训练。
从数学形式上看,PPO的目标函数涉及优势估计、裁剪操作和KL散度惩罚,计算复杂且包含多个需要调节的超参数。DPO的目标函数则简洁得多,只包含策略模型对chosen和rejected回答的概率比的对数。这种简洁性不仅体现在公式上,也体现在工程实现上。实现PPO需要处理在线数据收集、优势估计、多模型同步等复杂逻辑,而实现DPO只需要标准的监督学习代码框架。
训练效果的系统对比
PPO和DPO在训练效果上各有优劣,选择哪种方法需要根据具体的应用场景和需求来决定。在训练稳定性方面,DPO具有明显的优势。DPO将强化学习问题转化为监督学习问题,避免了强化学习中常见的训练崩溃、奖励黑客攻击等问题。PPO虽然有裁剪机制的保护,但在某些情况下仍然可能出现训练不稳定的问题,特别是当奖励模型的质量不高或超参数设置不当时。
在资源消耗方面,DPO也具有优势。PPO需要同时加载四个模型(策略模型、价值模型、奖励模型、参考模型),对显存和计算资源的要求很高。DPO只需要加载策略模型和参考模型两个模型,显存占用大约是PPO的一半。此外,PPO需要进行多步的在线数据收集和优势估计,而DPO只需要对固定的偏好数据进行离线训练,计算量也相应减少。
在模型能力上限方面,PPO可能仍然具有优势。PPO的在线学习机制使其能够在训练过程中探索新的输出方式,有可能在某些任务上超越训练数据的质量。而DPO本质上是在拟合训练数据的分布,不太可能生成训练数据中没有见过的新模式。对于需要模型进行创造性回答或处理分布外查询的任务,PPO可能是更好的选择。
在实际评测中,LLaMA-Factory Online技术团队对PPO和DPO进行了系统的对比实验。实验使用相同的基座模型(Llama 3-8B)和相同的偏好数据集,分别用PPO和DPO进行训练,然后在多个基准测试上进行评估。实验结果显示,在一般的指令遵循任务上,两种方法的效果相当;在需要模型进行推理或创造性回答的任务上,PPO略微领先;在训练稳定性和资源消耗方面,DPO具有明显优势。这些实验数据为开发者选择合适的方法提供了参考依据。
实际应用中的选型建议
基于上述分析,我们可以为不同场景提供选型建议。对于资源有限的小团队或个人开发者,DPO是更加友好的选择。DPO的实现简单,资源消耗低,训练稳定,这些特点使得没有专业强化学习背景的开发者也能够成功完成偏好对齐任务。此外,DPO的训练时间更短,能够更快地迭代和验证想法。
对于追求模型能力上限的应用场景,PPO可能仍然是更好的选择。如果应用需要模型处理分布外的查询或进行创造性回答,PPO的探索能力可能带来更好的效果。当然,选择PPO意味着需要投入更多的资源来解决工程问题,包括显存优化、训练稳定性调优等。在这种情况下,使用成熟的训练平台如LLaMA-Factory Online可以大大降低工程门槛。
混合策略也是一种可行的方案。可以先用DPO进行快速的初步训练,然后用PPO进行精细的优化。DPO训练速度快,可以快速验证数据质量和基线效果;在DPO的基础上进行PPO训练,通常能够比从头开始PPO训练更快地收敛。此外,对于不同的任务模块,也可以选择不同的对齐方法——对于核心任务使用PPO,对于边缘任务使用DPO,在整体效果和资源消耗之间找到平衡。
值得注意的是,PPO和DPO并非互斥的选择,而是可以相互补充的工具。在实际项目中,开发者应该根据自身的资源条件、数据质量、目标要求等因素,灵活选择和组合不同的方法。LLaMA-Factory Online同时支持PPO和DPO两种训练方式,开发者可以在平台上方便地进行对比实验,选择最适合自己项目的方法。
偏好对齐是大模型后训练的核心技术,PPO和DPO代表了两种不同的技术路线。PPO是经典的强化学习方法,能力强但门槛高;DPO是新兴的监督学习方法,简洁高效但能力上限可能受限。理解两种方法的原理和特点,根据实际需求做出正确的选择,是每一位大模型开发者必须掌握的技能。LLaMA-Factory Online提供了完整的偏好对齐工具链和详细的技术文档,帮助开发者快速上手并深入理解这些前沿技术。