深度对比_ SFT、ReFT、RHLF、RLAIF、DPO、PPO

本文由 简悦 SimpRead 转码, 原文地址 www.cnblogs.com

https://github.com/xinyuwei-david/david-share.git
最近 OpenAI Day2 展示的 demo 可能把 ReFT 带火了。

最近 OpenAI Day2 展示的 demo 可能把 ReFT 带火了。实际上这不是一个很新的概念,也不是 OpenAI 原创的论文。

接下来,本文对比 SFT、ReFT、RHLF、DPO、PPO 这几种常见的技术。

一、几种技术之间的关系

如果把复杂的问题简单理解,这些技术之间的关系大概是:

ReFT(Reinforced Fine-Tuning,强化微调):

  1. 组成: ReFT = SFT + PPO
  2. 过程:在有监督微调(SFT)的基础上,使用 PPO(近端策略优化)进行强化学习。
  3. 评估方式:通常通过 自动化程序 对模型输出进行评估,奖励信号来自程序的评价。

RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习):

  1. 组成: RLHF = SFT + PPO + 人类反馈
  2. 过程在 SFT 的基础上,使用 PPO 进行强化学习,奖励信号来自 人类反馈。
  3. 评估方式:人类对模型输出进行评价,或者使用基于人类反馈训练的 奖励模型 来评估。

DPO 方法(Direct Preference Optimization,直接偏好优化):

  1. 组成: DPO 方法 = SFT + DPO
  2. 过程:在 SFT 的基础上,引入参考模型使用 DPO(直接偏好优化)方法直接优化模型。
  3. 评估方式:利用人类偏好数据和参考模型构建损失函数,直接优化模型参数。

RLAIF(Reinforcement Learning from AI Feedback,基于 AI 反馈的强化学习):

  1. 组成: RLAIF = SFT + PPO + AI 反馈
  2. 过程:在 SFT 的基础上,使用 PPO 进行强化学习,奖励信号来自 AI 模型的反馈。
  3. 评估方式:辅助的 AI 模型(可能是奖励模型)对模型输出进行评价,提供奖励信号。

解释:

ReFT、RLHF、DPO 和 RLAIF。这些方法都是在监督微调(SFT)的基础上,进一步优化模型以提高性能,但它们在优化策略和反馈来源上有所不同。

  1. ReFT(Reinforced Fine-Tuning,强化微调):这是 SFT 和 PPO(近端策略优化)的结合。在第一阶段,模型通过 SFT 在有标注的数据上进行训练,建立基本的语言理解和生成能力。第二阶段,引入 PPO 算法,对模型进行强化学习优化。此时,模型的输出由自动化程序进行评估,程序根据预设的规则或标准对模型的输出进行评价,并生成奖励信号。模型根据这些奖励信号,使用 PPO 算法调整自身参数,以产生更优的输出。ReFT 的特点是评估过程自动化,无需人类参与,适用于有明确客观标准的任务,例如数学问题求解。
  2. RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习):在 SFT 的基础上,结合 PPO 算法,但奖励信号来自人类反馈。具体而言,人类对模型的输出进行评价,指出更优的回答,或通过偏好对比的方式提供反馈。这些人类反馈可以直接用于指导模型优化,或者用于训练一个奖励模型,后续由奖励模型对模型输出进行评估。RLHF 的优势在于引入了人类的主观判断,使模型的输出更符合人类偏好,适用于需要复杂评价和主观判断的任务。
  3. DPO(Direct Preference Optimization,直接偏好优化)方法:与前两种方法不同,DPO 不用强化学习算法(如 PPO),而是采用监督学习的方法直接优化模型。在 SFT 之后,利用人类偏好数据和参考模型构建损失函数,直接对模型进行微调。具体来说,收集人类对模型输出的偏好数据,如在给定的多个回答中标注出人类更喜欢的那个。然后,设计一个损失函数,使模型倾向于生成被人类偏好的输出。通过最小化这个损失函数,直接调整模型参数。DPO 避免了强化学习中的试错过程,训练更稳定,效率更高,适用于有大量人类偏好数据的场景。
  4. RLAIF(Reinforcement Learning from AI Feedback,基于 AI 反馈的强化学习):这是 SFT、PPO 和 AI 反馈的结合。在 SFT 后,使用 PPO 进行强化学习,然而奖励信号不是来自人类,而是来自辅助的 AI 模型(如奖励模型)的反馈。AI 模型对主模型的输出进行评估,提供奖励信号。这样的方法节省了人类评价的成本,但依赖于辅助 AI 模型的质量。

总结:四种方法中,ReFT、RLHF 和 RLAIF 都使用了 PPO 作为强化学习算法,区别在于奖励信号的来源不同:ReFT 来自自动化程序的评估,RLHF 来自人类反馈,RLAIF 来自 AI 模型的反馈。只有 DPO 方法使用了监督学习的方式,不采用 PPO 等强化学习算法,而是直接利用人类偏好数据和模型优化模型。

那么,为什么 DPO 不用强化学习,而采用监督学习?

强化学习方法(如 PPO)需要模型在环境中自行探索,通过试错学习获得奖励信号,这个过程复杂,训练不稳定,且调参困难。相比之下,监督学习的方法更直接高效:通过人类提供的偏好数据,直接告诉模型什么是好的输出,构建损失函数,调整模型参数。这样避免了强化学习的复杂性,训练过程更稳定,效率更高,特别适用于有大量人类偏好数据的情况。

举个例子,使用强化学习的模型就像是在黑暗中摸索前进,需要不断试错;而使用监督学习的 DPO 方法,就像是有人直接给了一张地图,告诉你正确的前进路线。采用监督学习,可以更快地达到目标。

选择方法的依据:如果任务有明确的客观评价标准,适合使用 ReFT,通过自动化程序评估模型输出。如果希望模型的输出更符合人类主观偏好,并有大量人类反馈数据,可以选择 RLHF 或 DPO 方法。RLHF 使用强化学习算法,需要模型与环境交互,训练复杂;DPO 则采用监督学习,训练更简单高效。若人类反馈成本高,可以考虑 RLAIF,用辅助 AI 模型提供反馈信号。

二、ReFT简介

先看 ReFT 论文中的流程图:

如上图所示,ReFT,该框架结合了监督微调(Supervised Fine-Tuning, SFT)和强化微调(Reinforced Fine-Tuning, ReFT)的方法。以下是对图中各部分的详细解释:

  1. 监督微调(Supervised Fine-Tuning):
  1. 强化微调(Reinforced Fine-Tuning):
  1. 最终策略(Final Policy):

三、几种技术的对比

比较维度SFT(有监督微调)ReFT(强化微调)RLHF(基于人类反馈的强化学习)DPO(直接偏好优化)PPO(近端策略优化)
概念- 使用已标注的数据对预训练模型进行微调。- 结合有监督微调和强化学习。
- 在初步学习后,通过 PPO 算法进一步优化模型。
- 通过人类反馈指导强化学习。
- 使用人类的评价作为奖励信号,优化模型输出。
- 利用人类偏好数据直接优化模型。
- 避免使用强化学习算法。
- 一种强化学习算法,通过限制策略更新幅度,稳定训练过程。
- 广泛用于强化学习任务,包括 ReFT 和 RLHF 等方法。
目标- 使模型在特定任务上性能更好。- 增强模型的推理能力和泛化能力。
- 尤其适用于需要多步推理的任务,如数学题解答。
- 提高模型输出的质量和符合人类偏好的程度。
- 让模型更符合人类的期望和价值观。
- 简化训练过程,避免强化学习的复杂性。
- 使模型输出更符合人类偏好。
- 提供一种高效、稳定的强化学习算法。
- 在不牺牲样本效率的前提下,简化策略优化过程。
方法和流程- 步骤:
1. 收集标注数据(输入和期望输出)。
2. 对模型进行有监督微调。
- 步骤:
1. 预热阶段:进行有监督微调,学习基本能力。
2. 强化学习阶段:
  - 使用模型生成多种解答路径(CoT)。
  - 根据答案正确性给予奖励。
  - 使用 PPO 算法优化模型。
- 步骤:
1. 对模型进行初步微调。
2. 收集人类对模型输出的反馈。
3. 训练奖励模型,评估输出质量。
4. 使用 PPO 算法,优化模型以最大化奖励。
- 步骤:
1. 收集人类偏好数据(对不同输出的偏好)。
2. 定义目标函数,直接优化模型参数,使其输出更符合人类偏好。
3. 避免使用强化学习,简化训练流程。
- 步骤:
1. 初始化策略网络和价值函数估计器。
2. 与环境交互,收集样本数据。
3. 计算优势函数,评估策略性能。
4. 使用剪切的目标函数,限制策略更新幅度,优化策略网络。
5. 重复上述步骤,直到收敛。
数据需求- 标注数据:
- 大量高质量的输入和期望输出对。
- 标注数据:
- 输入和标准答案(可能包含 CoT)。
- 无需额外的人类偏好数据。
- 标注数据:
- 初步微调所需的数据。
- 人类反馈数据:大量人类对模型输出的评价、评分或排序。
- 人类偏好数据:
- 人类对模型输出的偏好选择或评分。
- 交互数据:
- 模型与环境交互产生的样本数据。
- 无需额外的标注数据或人类反馈,除非用于特定任务。
奖励机制- 损失函数:
- 基于模型在标注数据上的损失,优化参数。
- 基于答案正确性:
- 正确答案给予正向奖励。
- 错误答案不给予奖励或给予惩罚。
- 使用 PPO 算法,根据奖励优化策略。
- 奖励模型:
- 使用人类反馈训练奖励模型。
- 奖励模型评估输出质量,为强化学习提供奖励信号。
- 目标函数:
- 基于人类偏好直接定义目标函数。
- 优化模型参数,使其更可能生成被人类偏好的输出。
- 环境奖励:
- 奖励由环境提供,根据模型的动作获得反馈。
- 使用优势函数衡量策略改进。
训练流程复杂度- 简单:
- 直接进行有监督训练。
- 计算成本取决于数据规模和模型大小。
- 中等到复杂:
- 预热阶段 + 强化学习阶段。
- 需要实现和调试 PPO 算法。
- 计算成本较高,需要更多训练时间。
- 复杂:
- 包含多阶段训练:初步微调、收集人类反馈、训练奖励模型、强化学习优化。
- 需要实现和调试 PPO 算法。
- 计算成本高昂,需要大量人类评价和训练过程。
- 较低:
- 避免了强化学习的复杂性。
- 计算成本相对较低,但取决于偏好数据的规模。
- 中等:
- 使用 PPO 算法,训练过程需要一定计算资源。
- 计算成本适中,易于调参。
优势- 简单直接:易于实现和理解。
- 适用范围广:适用于有大量标注数据的任务。
- 增强推理能力:模型可以通过强化学习自主探索,提高泛化能力。
- 无需额外的人类反馈数据:降低数据成本。
- 符合人类期望:输出质量高,更符合人类偏好。
- 提升用户体验:在对话系统等应用中效果显著。
- 训练简单:避免强化学习的复杂性。
- 直接优化目标:模型更容易生成被人类偏好的输出。
- 稳定性高:通过限制策略更新,防止性能骤降。
- 样本效率高:充分利用采样数据,提升训练效率。
- 实现相对简单:比传统的策略梯度方法更易实现。
劣势- 数据依赖:需要大量高质量标注数据,获取成本高。
- 泛化能力有限:对未见过的输入可能表现不佳。
- 训练复杂度高:需要实现和调试 PPO 算法。
- 可能出现奖励黑客问题:模型可能找到投机取巧的方式获得奖励。
- 成本高昂:需要大量人类反馈数据,获取成本高。
- 训练复杂:多阶段训练流程复杂,可能存在不稳定性。
- 依赖偏好数据质量:效果取决于人类偏好数据的准确性和覆盖范围。
- 可能性能有限:在复杂任务上,可能不如使用强化学习的方法有效。
- 需要大量交互数据:训练可能耗费时间和资源。
- 超参数敏感:训练过程需要仔细调参。
- 在高维空间中挑战较大。
适用场景- 任务:
- 有明确输入和输出对的任务,如分类、翻译、问答等。
- 任务:
- 需要复杂推理的任务,如数学问题求解、逻辑推理等。
- 希望模型具有更强的泛化能力。
- 任务:
- 需要高质量输出的生成任务,如对话系统、文本生成。
- 对输出的安全性、礼貌性有高要求。
- 任务:
- 希望简化训练过程,又希望模型输出符合人类偏好。
- 有足够的人类偏好数据可用。
- 任务:
- 需要通过强化学习优化策略的任务。
- 与环境交互并获取奖励信号的场景。
举例- 机器翻译:
- 使用大量平行语料对模型进行微调。
- 数学求解:
- 模型先进行有监督微调,然后通过 PPO 算法强化学习,生成多种解题方法,提高解题能力。
- 对话系统:
- 人类对模型的回复进行评价,训练奖励模型,使用 PPO 算法优化模型使其回复更符合人类期望。
- 内容生成:
- 对于相同的输入,模型生成多个候选输出,人类选择更好的一个,模型根据这些偏好直接优化。
- 机器人控制:
- 通过与环境交互,使用 PPO 算法学习最优控制策略。
- 游戏 AI:
- 在游戏环境中使用 PPO 算法学习策略,以击败对手或达到特定目标。
补充说明- 过拟合风险:可能过度拟合训练数据,缺乏创新性。- 利用 PPO 算法进行强化学习:需要注意算法的稳定性和超参数调节。
- 探索性强:模型可能发现人类未预料的解法。
- 需要避免奖励黑客:设计合理的奖励函数非常重要。
- 人类反馈质量关键:需要高质量、多样化的人类反馈。
- 需要实现和调试 PPO 算法:增加了训练复杂度和成本。
- 避免了策略梯度方法的复杂性。
- 适用于偏好明确的任务,但在多样性要求高的任务上可能效果有限。
- 通用性强:PPO 可与其他方法结合使用。
- 在 ReFT 和 RLHF 中应用:PPO 常用于优化模型,使其更符合目标(正确答案或人类反馈)。

SFT(Supervised Fine-Tuning,有监督微调)是使用标注的训练数据对预训练模型进行微调,使其在特定任务上性能更好。模型通过学习大量的输入和期望输出对,直接调整参数,以便在给定输入下输出期望的结果。这种方法简单直接,适用于有大量高质量标注数据的任务。

ReFT(Reinforced Fine-Tuning,强化微调)结合了有监督微调和强化学习。模型首先通过 SFT 建立基本能力,然后在强化学习阶段,使用 PPO(近端策略优化)算法进行优化。模型自主探索多种可能的输出,自动化程序根据模型生成的答案与标准答案的匹配程度给予奖励或惩罚。这样,模型逐步提高对复杂任务(如数学问题求解)的解决能力。ReFT 无需额外的人类偏好数据,但训练复杂度较高。

RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)利用人类的反馈作为奖励信号,结合 PPO 算法优化模型输出。模型首先进行 SFT,然后人类对模型的输出进行评价,形成反馈数据。根据这些数据,训练一个奖励模型,用于评估模型输出的质量。模型通过 PPO 算法,优化自身参数以最大化奖励模型的评分。RLHF 能使模型的输出更符合人类期望,但需要大量的人类评价数据,训练过程复杂且成本高昂。

DPO(Direct Preference Optimization,直接偏好优化)不使用强化学习算法,而是直接利用人类的偏好数据,通过优化目标函数,使模型输出更符合人类偏好。具体来说,收集人类对模型输出的偏好选择或评分,构建损失函数,直接优化模型参数。这种方法避免了强化学习的复杂性,训练过程更简单,适用于希望简化训练流程且有大量偏好数据的情况,但效果取决于偏好数据的质量。

在数据需求和奖励机制上,SFT 需要高质量的标注数据,没有显式的奖励机制;ReFT 需要标注数据和自动化程序的奖励机制,利用 PPO 算法进行优化;RLHF 需要有监督微调的数据和大量人类反馈数据,通过奖励模型和 PPO 算法优化模型;DPO 需要人类偏好数据,通过直接优化目标函数,倾向于生成被人类更偏好的输出。

在训练流程的复杂度方面,SFT 相对简单,计算成本取决于数据规模和模型大小;ReFT 复杂度中等,需要实现和调试 PPO 算法,计算成本较高;RLHF 复杂度最高,需要多阶段训练和大量人类评价,计算成本高昂;DPO 复杂度低于 RLHF,避免了强化学习的复杂性,计算成本相对较低。

各方法有其优势和劣势。SFT 简单直接,但泛化能力可能有限;ReFT 增强了模型的探索和泛化能力,但训练复杂度高,可能出现奖励黑客问题;RLHF 输出质量高,更符合人类偏好,但成本高昂,训练复杂;DPO 训练简单,直接优化目标,但依赖偏好数据质量,效果可能有限。

以数学问题求解为例,SFT 方法让模型学习预先提供的解题步骤,但可能只能解决类似的问题;ReFT 方法让模型自主探索不同的解题方法,能解决更复杂的问题;RLHF 方法通过人类评价,优化模型,使解答更符合人类预期;DPO 方法让模型倾向于生成被人类更偏好的解答,解答质量有所提升。

总结:根据任务需求和资源条件,选择合适的微调方法至关重要。

四、ReFT 第二阶段评估

4.1 评估过程中是否需要使用其他大模型
在 ReFT(Reinforced Fine-Tuning,强化微调)方法中,评估模型生成的答案通常通过自动化的程序完成,即将模型的输出与已知的标准答案进行比较。在此过程中:

4.2 第二阶段的评估由谁来做
在 ReFT 的第二阶段(强化学习阶段),评估和奖励的计算由程序自动完成:

4.3 如何保证评估程序的客观性
为了确保评估程序的客观性和公正性,需注意以下几点:

4.4.1 适合的微调场景

4.4.2 适合微调的能力

4.4.3 不太适用的场景

4.4.4 数学问题求解的评估流程

五、总结

ReFT 通过结合有监督微调和强化学习,特别是使用 PPO 算法,引导模型自主探索和学习,增强了模型在复杂推理和多步骤任务上的能力。它适用于: