小飞侠 - 强化学习
type: channel
link: http://www.kexue.love/index.php/category/强化学习/
items: 强化学习的优化策略PPO和DPO

强化学习的优化策略PPO和DPO
type: item
date: 2024-07-17T05:36:00+00:00
description: DPO定义DPO（Direct Preference Optimization， 直接偏好优化）通过利用奖励函数与最优策略之间的映射关系，证明这个受限的奖励最大化问题可以通过单阶段的策略训练来精确优化，本质上是在人类偏好数据上解决一个分类问题。DPO是稳定的、性能和计算成本轻量级的，无需拟合奖励模型，在微调期间从 LM 中采样，或执行显着的超参数调整。通过实验表明：DPO 进行微调超过了 RLHF 效果，并提高了摘要和单轮对话的响应质量。1、简化：DPO(直接偏好优化)简化了RLHF流程。2、原理：它的工作原理是创建人类偏好对的数据集，每个偏好对都包含一个提示和两种可能的完成方式——一种是首选，一种是不受欢迎。然后对LLM进行微调，以最大限度地提高生成首选完成的可能性，并最大限度地减少生成不受欢迎的完成的可能性。3、优点：与传统的微调方法相比，DPO 绕过了建模奖励函数这一步，设计一种包含正负样本对比的损失函数,通过直接在偏好数据上优化模型来提高性能。(即不训练奖励模型，语言模型直接做偏好优化)作者：akaihaoshuai链接：https://zhuanlan.zhihu.com/p/686217468来源：知乎著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。PPO(不是很懂,copy来的)PPO（Proximal Policy Optimization）是OpenAI在2017提出的一种强化学习算法，是基于策略优化的算法，用于训练能够最大化累积奖励的智能体。PPO算法通过在每次更新时限制新策略与旧策略之间的差异，从而更稳定地更新策略参数。这种方法有助于避免训练过程中出现的不稳定性和剧烈波动，使得算法更容易收敛并学习到更好的策略。PPO的想法是，通过限制在每个训练阶段对策略所做的更改来提高策略的训练稳定性：我们希望避免过大的策略(参数)更新。我们从经验上知道，训练期间较小的策略更新更有可能收敛到最优解。策略更新步幅太大可能导致“坠崖”（获得糟糕的策略），并且需要很长时间甚至不可能恢复。因此，使用PPO，我们要保守地更新策略。为此，我们需要通过计算当前策略与前一个策略之间的比率来衡量当前策略与前一个策略相比发生了多大的变化。我们将此比率限制在 [1−ϵ,1+ϵ] 的范围内，这意味着我们消除了当前策略偏离旧策略太远的动机（因此称为近端策略术语）。RLHF(奖励模型+PPO)预训练的基础LLM监督微调（SFT）LLM奖励模型（LLM，但修改为奖励模型）PPO优化的语言模型（最终与偏好对齐的LLM）DPO取代奖励模型+PPODPO通过完全移除奖励模型来简化这个过程。预训练的基础LLM监督微调（SFT）LLMDPO优化的语言模型（最终与偏好对齐的LLM）强化学习与大模型的结合在公式中是如何体现根据OpenAI 的 [[Learning to summarize from human feedback]的论文，除了最终生成句子的得分基础外，在每生成一个词/字的时候，需要计算 RL 模型和 SFT 模型在生成当前词/字的概率差异，以此来当作生成当前词/字的当前步奖励。