大模型DPO与PPO:一文看透关键差异
大模型DPO与PPO:一文看透关键差异
本文较长,建议点赞收藏,以免遗失。更多AI大模型开发 学习视频/籽料/面试题 都在这>>Github<< >>Gitee<<
大模型为何需要 DPO 和 PPO
在深入探讨 DPO 和 PPO 之前,我们得先明白大模型为什么需要它们。当一个大模型完成预训练后,虽然它已经学习到了海量的语言知识和模式,但它生成的内容不一定能完全符合人类的偏好和需求。比如,在一些问答场景中,模型可能给出正确但冗长、不清晰的回答;或者在文本生成任务中,生成的内容可能存在偏见、不安全甚至有害的信息 。
为了让大模型的输出更符合人类的期望,我们需要对其进行优化。传统的监督微调(SFT)虽然能在一定程度上让模型学会遵循指令,但它对于复杂的人类偏好的捕捉还是不够。而 DPO 和 PPO 正是为了解决这个问题而出现的,它们致力于让模型在生成内容时,能更贴合人类的价值观、语言习惯和使用场景。
从原理剖析两者区别
(一)PPO:强化学习中的稳健派
PPO,全称近端策略优化(Proximal Policy Optimization) ,是 OpenAI 在 2017 年提出的一种基于策略梯度的强化学习算法。它的出现主要是为了解决传统策略梯度算法中存在的训练不稳定、样本利用率低等问题 。在大模型的优化中,PPO 被广泛应用于基于人类反馈的强化学习(RLHF)流程中。
从原理上来说,PPO 基于 Actor-Critic 框架。Actor(策略网络)负责根据输入状态生成动作(在大模型中,就是生成文本),而 Critic(价值网络)则评估当前状态下采取某个动作的价值(即预期奖励)。为了让模型的输出更符合人类偏好,PPO 引入了一个奖励模型(Reward Model)。这个奖励模型会根据人类的反馈数据,对 Actor 生成的文本进行打分,分数越高,表示该文本越符合人类偏好。
在训练过程中,PPO 通过最大化累计奖励来优化 Actor 网络,但同时为了防止策略更新幅度过大导致模型性能不稳定甚至崩溃,PPO 采用了两种关键技术:裁剪(Clip)和 KL 惩罚。裁剪是将新策略与旧策略的概率比限制在一个固定区间内(比如 [ 1 − ϵ , 1 + ϵ ] [1-\epsilon, 1+\epsilon] [1−ϵ,1+ϵ],通常 ϵ \epsilon ϵ取值为 0.2 ),如果新策略的概率比超过这个区间,就对其进行 “裁剪”,使其回到区间内;KL 惩罚则是通过计算新旧策略之间的 KL 散度,来衡量策略的变化程度,如果 KL 散度超过一定阈值,就对策略更新进行惩罚 。
举个例子,假如我们让大模型生成关于 “如何健康饮食” 的回答。Actor 网络生成了一个回答,Critic 网络先预估这个回答的价值,然后奖励模型根据人类标注的偏好数据(比如,人类认为详细且科学的饮食建议是好的回答)给这个回答打分。如果回答很全面,包含了各类食物的摄入比例、饮食时间等信息,奖励模型可能会给高分;反之,如果回答很简略或者存在错误信息,就会给低分。PPO 算法会根据这个分数,结合裁剪和 KL 惩罚,来调整 Actor 网络的参数,使得下一次生成的回答更符合人类的期望 。
(二)DPO:偏好数据的直接利用者
DPO,即直接偏好优化(Direct Preference Optimization),是一种相对较新的大模型优化方法。与 PPO 不同,DPO 不需要训练复杂的奖励模型,而是直接利用人类的偏好数据来优化模型。
DPO 的核心思想是将强化学习问题转化为一个偏好分类问题。它直接使用人类标注的 “偏好对” 数据,也就是对于同一个输入,人类标注出的更优的输出和较差的输出。通过最大化人类偏好样本的对数概率差异,使得模型能够直接学习到什么样的输出是人类更喜欢的 。
具体来说,DPO 的损失函数基于以下原理构建:对于一组包含输入 x x x,以及两个输出 y + y^+ y+(人类偏好的输出)和 y − y^- y−(不被人类偏好的输出)的数据对,DPO 希望模型对 y + y^+ y+的生成概率远高于 y − y^- y−。通过最小化损失函数,模型会不断调整参数,以提高生成符合人类偏好输出的概率 。
还是以上述 “如何健康饮食” 为例,DPO 会收集大量这样的数据对:一个输入是 “如何健康饮食”,然后有两个输出,一个是详细科学的回答( y + y^+ y+),另一个是简略或错误的回答( y − y^- y−)。DPO 直接利用这些数据对,让模型学习到应该生成像 y + y^+ y+这样的回答,而避免生成 y − y^- y−这样的回答,从而实现模型与人类偏好的对齐 。
基于流程步骤看差异
(一)PPO 的复杂舞步
PPO 的训练流程相对复杂,涉及多个关键步骤和模型之间的协同工作 。以聊天机器人的训练为例,首先,策略模型(即经过预训练或 SFT 的大模型)根据用户输入的问题生成多个回答。然后,奖励模型对这些回答进行打分,这个分数代表了回答与人类偏好的契合程度 。
接下来是计算优势(Advantage)环节。优势是指某个动作(生成的回答)相较于平均动作的优势程度,它通过通用优势估计(GAE)方法来计算。由于奖励模型对于不完整响应的奖励为 0 ,所以需要评论家模型(Critic)来预测部分响应的奖励,从而计算时间差分(TD)误差,以平衡蒙特卡洛方法(MC)中偏差小但方差高,以及时间差分方法(TD)中方差低但偏差高的问题 。
在完成优势计算后,进入策略更新阶段。通过优化总目标(包含裁剪的替代目标、熵奖励等)来更新大模型的策略网络,让模型生成的每个词都能最大化奖励,同时更新评论家模型,让其更准确地预测部分响应的奖励,以便更好地指导策略的优化 。并且,同一批数据通常会被重复使用 5 - 10 次来更新策略模型,这个多轮更新过程需要严格控制策略更新的幅度,防止模型出现不稳定的情况 。
(二)DPO 的简洁路径
DPO 的流程则简洁许多,它直接利用人类标注的偏好数据进行模型优化 。假设我们有一批关于 “如何选择一款合适的手机” 的问题及对应的回答数据对,其中包含了人类认为好的回答和差的回答。DPO 直接将这些数据对输入模型,通过构建一个对比损失函数,来最大化被偏好的回答(好回答)相对于不被偏好回答(差回答)的生成概率差异 。
具体来说,DPO 不需要像 PPO 那样先训练奖励模型,也没有复杂的强化学习循环。它只需要计算不同回答的生成概率,然后根据损失函数来更新模型参数,使得模型更倾向于生成人类偏好的回答 。整个过程类似于有监督的训练,直接且高效,大大简化了训练流程,减少了计算资源的消耗 。
对比关键特性
(一)模型依赖程度
PPO 依赖多个模型的协作,Actor 模型负责生成文本,Critic 模型评估价值,奖励模型提供打分,参考模型则用于限制策略更新幅度,防止模型偏离基础能力。以对话机器人为例,四个模型缺一不可,它们之间的协作确保了机器人在回答用户问题时,既能生成符合人类偏好的回答,又能保持回答的稳定性和一致性 。
而 DPO 仅需策略模型和参考模型。策略模型用于生成文本,参考模型作为对比基准,帮助策略模型学习人类偏好。例如在生成新闻摘要时,策略模型根据输入的新闻内容生成摘要,参考模型提供不同质量的摘要样本,DPO 直接利用这些样本的偏好关系来优化策略模型,减少了对其他复杂模型的依赖 。
(二)训练复杂度
PPO 的训练过程较为复杂。在每一轮训练中,需要多次迭代来更新策略模型和价值模型。首先要通过策略模型生成大量的样本,然后奖励模型对这些样本进行打分,接着计算优势函数,再根据优势函数和裁剪、KL 惩罚等技术来更新策略模型 。并且,同一批数据需要多次使用,这个过程中还需要不断调整各种超参数,如学习率、KL 散度阈值等,以确保训练的稳定性和有效性 。例如在训练一个智能客服模型时,可能需要进行几十轮甚至上百轮的迭代训练,每次迭代都要重复上述复杂的步骤 。
DPO 的训练则相对简单,它是一种单阶段的有监督训练方式。直接利用人类标注的偏好数据对策略模型进行优化,不需要复杂的强化学习循环和奖励模型训练。比如在训练一个影评生成模型时,只需将人类标注的优质影评和普通影评作为偏好数据输入模型,通过最小化损失函数来更新模型参数,整个过程类似于传统的监督学习,大大降低了训练的复杂度 。
(三)数值稳定性
PPO 在训练过程中,数值稳定性是一个关键问题。由于依赖奖励尺度校准和 KL 系数调参,这些参数的设置对训练结果影响较大。如果奖励尺度设置不当,可能导致模型过于追求高奖励而忽略了策略的合理性;KL 系数如果调参不合适,可能会使策略更新幅度过大或过小,从而导致训练不稳定甚至模型崩溃 。例如在游戏 AI 训练中,若奖励尺度设置过高,AI 可能会采取一些冒险但不稳定的策略来获取高奖励,一旦环境稍有变化,AI 的表现就会急剧下降 。
DPO 的数据处理方式则不同,其损失函数会自动限制范围,无需复杂的调参。因为 DPO 直接基于人类偏好数据进行优化,通过对比优质回答和劣质回答的概率差异来更新模型,这种方式使得模型的更新更加稳定,不容易受到参数设置的影响 。例如在训练一个问题回答模型时,无论输入的问题如何变化,DPO 都能根据已有的偏好数据稳定地优化模型,生成更符合人类偏好的回答 。
(四)效率差异
PPO 同批次数据复用次数多,通常会复用 20 - 50 次 。虽然这在一定程度上提高了样本利用率,但也导致训练时间大幅增加。因为每次复用数据都要进行复杂的计算,包括策略评估、奖励计算、优势计算等,这些计算都需要消耗大量的计算资源和时间 。例如在训练一个大规模的语言模型时,由于数据量巨大,PPO 对数据的多次复用会使得训练周期长达数周甚至数月 。
DPO 的数据使用方式则更为高效,数据只需一次使用。它直接利用偏好数据进行模型优化,无需像 PPO 那样进行多轮的策略更新和复杂计算,因此训练速度大幅提升,大约能提升 45 倍 。例如在训练一个简单的文本分类模型时,DPO 可以在短时间内完成训练,快速得到一个性能较好的模型,大大提高了研发效率 。
不同场景下的应用选择
(一)PPO 的适用领域
PPO 在需要复杂奖励机制和高探索性的场景中表现出色 。在创意写作领域,PPO 能够通过与环境的不断交互,探索各种可能的文本生成路径,生成富有创意和想象力的内容 。比如,在生成科幻小说情节时,PPO 可以根据不同的设定和情节走向,不断尝试新的文本组合,利用其强大的探索能力,创造出新颖独特的科幻世界和情节发展 。
在复杂决策模拟场景中,PPO 同样具有优势。例如在金融投资决策模拟中,市场环境复杂多变,影响因素众多,需要考虑风险、收益、市场趋势等多个维度的因素。PPO 可以通过不断调整策略,根据不同的市场情况做出最优决策,这种复杂的决策过程需要 PPO 灵活的策略调整能力和对多维度奖励的有效处理能力 。
(二)DPO 的大展身手之处
DPO 在偏好数据充足、追求训练效率和稳定性的场景中能发挥出最大价值 。以客服对话场景为例,企业通常积累了大量的客户问题及对应的优质回答和劣质回答数据。DPO 可以直接利用这些数据,快速训练模型,使其能够准确、稳定地回答客户问题,提高客户满意度 。而且,由于 DPO 训练效率高,能够在短时间内完成模型优化,对于需要快速响应市场变化的客服业务来说,非常适用 。
在智能问答系统中,DPO 也能展现出良好的应用效果。当有大量的问题与回答对,且这些回答的质量已经被明确标注时,DPO 可以直接根据这些偏好数据进行训练,让模型学会生成高质量的回答 。比如在法律问答系统中,已经有大量经过专业律师审核的优质法律解答和存在错误或不完整的解答,DPO 可以利用这些数据,快速训练模型,使其能够为用户提供准确、专业的法律建议 。
融合发展趋势
随着大模型技术的不断发展,DPO 和 PPO 并非完全孤立,它们之间开始呈现出融合的趋势 。一种可能的融合方式是,先使用 DPO 对模型进行初始化训练。由于 DPO 训练效率高,能够快速利用丰富的偏好数据让模型初步学习到人类的偏好模式,实现基础的偏好对齐 。例如在一个智能写作辅助模型的训练中,利用 DPO 快速处理大量的优质文章和普通文章数据对,让模型学会生成更符合人类写作风格和需求的文本 。
然后,再采用 PPO 进行进一步的微调优化。PPO 在处理复杂奖励机制和多维度优化方面具有优势,通过引入更细致的奖励模型和强化学习循环,可以对模型进行更精细化的调整 。比如在上述智能写作辅助模型中,使用 PPO 对模型进行微调,引入如创意性、逻辑性等多维度的奖励机制,让模型在生成文本时,不仅能符合基本的人类偏好,还能在创意和逻辑方面有更好的表现 。这种 DPO 初始化 + PPO 微调的方式,有望充分发挥两者的优势,为大模型的优化提供更强大的解决方案,推动大模型在更多复杂场景中的应用和发展 。
更多推荐


所有评论(0)