微信扫码
与创始人交个朋友
我要投稿
https://github.com/xinyuwei-david/david-share.git
最近OpenAI Day2展示的demo可能把ReFT带火了。实际上这不是一个很新的概念,也不是OpenAI原创的论文。
接下来,本文对比SFT、ReFT、RHLF、DPO、PPO这几种常见的技术。
一、几种技术之间的关系
如果把复杂的问题简单理解,这些技术之间的关系大概是:
ReFT(Reinforced Fine-Tuning,强化微调):
组成: ReFT = SFT + PPO
过程:在有监督微调(SFT)的基础上,使用 PPO(近端策略优化)进行强化学习。
评估方式:通常通过 自动化程序 对模型输出进行评估,奖励信号来自程序的评价。
RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习):
组成: RLHF = SFT + PPO + 人类反馈
过程在 SFT 的基础上,使用 PPO 进行强化学习,奖励信号来自 人类反馈。
评估方式:人类对模型输出进行评价,或者使用基于人类反馈训练的 奖励模型 来评估。
DPO 方法(Direct Preference Optimization,直接偏好优化):
组成: DPO 方法 = SFT + DPO
过程:在 SFT 的基础上,引入参考模型使用 DPO(直接偏好优化)方法直接优化模型。
评估方式:利用人类偏好数据和参考模型构建损失函数,直接优化模型参数。
RLAIF(Reinforcement Learning from AI Feedback,基于 AI 反馈的强化学习):
组成: RLAIF = SFT + PPO + AI 反馈
过程:在 SFT 的基础上,使用 PPO 进行强化学习,奖励信号来自 AI 模型的反馈。
评估方式:辅助的 AI 模型(可能是奖励模型)对模型输出进行评价,提供奖励信号。
解释:
ReFT(强化微调)通过在监督微调后的模型上,使用PPO算法进行强化学习,奖励信号来自于自动化程序对模型输出与标准答案的比较。
RLHF(基于人类反馈的强化学习)在SFT基础上,使用PPO算法进行强化学习,奖励信号来自人类对模型输出的评价。
DPO方法(直接偏好优化)在SFT基础上,使用DPO算法直接优化模型参数以符合人类偏好,不使用PPO等传统强化学习算法。
RLAIF(基于AI反馈的强化学习)类似于RLHF,但人类反馈替换为AI模型的反馈,使用PPO算法进行强化学习。
二、ReFT简介
先看ReFT论文中的流程图:
如上图所示,ReFT,该框架结合了监督微调(Supervised Fine-Tuning, SFT)和强化微调(Reinforced Fine-Tuning, ReFT)的方法。以下是对图中各部分的详细解释:
监督微调(Supervised Fine-Tuning):
模型(Model):初始模型通过多个SFT周期(epochs)在训练数据上进行训练。训练数据包含问题(x),推理链(CoT,e)和答案(y)。
SFT Epochs:模型在训练数据上进行多个周期的训练,以学习如何从问题(x)和推理链(e)生成正确的答案(y)。
不同阶段的模型:图中展示了经过不同训练阶段后的模型表情变化,表示模型逐渐变得更好。
强化微调(Reinforced Fine-Tuning):
预热阶段(Warm-up):在进入强化学习之前,模型通过SFT进行预热。
问题(question):模型接受一个输入问题(x)。
On-Policy Sampling:在策略内采样,模型生成一个推理链和答案(e', y')。
Golden Reward:对生成的答案(y')与正确答案(y)进行比较,给予奖励信号。如果答案正确,给予正奖励(√),否则给予负奖励(×)。
强化学习(Reinforcement Learning):利用奖励信号来调整模型参数,以提高模型在相同数据上的表现。
最终策略(Final Policy):
经过SFT和ReFT训练后,模型形成最终策略,可以更准确地回答问题。
图例说明了在GSM8K数据集上,一个问题(x)、推理链(e)和答案(y)的示例。通过多个SFT周期对训练数据进行迭代,并使用ReFT方法从SFT进行预热,然后在相同数据上进行强化学习训练。
三、几种技术的对比
比较维度 | 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方法让模型倾向于生成被人类更偏好的解答,解答质量有所提升。
总结:根据任务需求和资源条件,选择合适的微调方法至关重要。SFT适用于有大量标注数据的任务;ReFT适用于需要复杂推理且有明确评价标准的任务;RLHF适用于强调人类主观偏好的任务,但需考虑成本和训练复杂度;DPO则在希望简化训练流程的情况下,是一种有效的替代方案。
四、ReFT第二阶段评估
评估过程中是否需要使用其他大模型
在ReFT(Reinforced Fine-Tuning,强化微调)方法中,评估模型生成的答案通常通过自动化的程序完成,即将模型的输出与已知的标准答案进行比较。在此过程中:
无需其他大模型:评估基于答案的正确性,不需要引入其他大型语言模型或评估模型来辅助。
直接比较答案:对于有标准答案的任务(如数学问题求解),可以直接将模型的输出与标准答案进行匹配,判断其正确性。
第二阶段的评估由谁来做
在ReFT的第二阶段(强化学习阶段),评估和奖励的计算由程序自动完成:
正确答案:如果模型的输出与标准答案匹配,给予正向奖励(例如,奖励值为1)。
错误答案:如果不匹配,可能不给予奖励或给予负向奖励。
部分奖励:在某些情况下,对接近正确的答案给予部分奖励,鼓励模型朝正确方向改进。
模型生成解答:模型针对每个输入问题生成解题过程(包括思维链,CoT)和最终答案。
提取最终答案:程序从模型的输出中提取最终答案部分,忽略推理过程中的噪声信息。
答案比较:将提取的最终答案与预先存在的标准答案进行比较。
自动评估流程:
奖励计算:
无需人类干预:整个评估和奖励计算过程是自动化的,不需要人类评估或其他模型的参与。
如何保证评估程序的客观性
为了确保评估程序的客观性和公正性,需注意以下几点:
对于可能有多种正确答案的题目,评估程序应涵盖所有正确解,确保公平性。
对标准答案和模型输出进行标准化,确保比较过程的公正。
保持评估程序的透明度,代码可审查,评估逻辑清晰明了。
记录评估过程中的关键步骤,方便后续的复查和分析。
在正式使用前,对评估程序进行充分的测试,确保其在各种可能的输出情况下都能正确判断。
处理边界情况和异常输入,增强程序的鲁棒性。
评估程序只关注答案的正确性,不涉及语言风格、表达方式等主观评价。
对所有样本应用统一的评估逻辑,避免人为偏见。
采用字符串匹配、数值比较等方式,自动判断模型输出与标准答案的一致性。
考虑数值误差范围,确保对数值型答案的比较准确。
使用客观且可验证的评估标准,基于标准答案进行精确比较。
对答案进行标准化处理,如去除空格、统一格式等,确保比较的一致性。
明确的评估标准:
自动化的比较机制:
避免主观因素:
严格的测试和验证:
透明和可审计:
处理多样化的正确答案:
4、ReFT适合的微调场景和能力
4.1 适合的微调场景
人类反馈成本高:获取大量人类偏好数据成本高昂。
标注数据有限:需充分利用现有数据,提升模型性能。
新型问题解决:模型可解决训练数据中未出现过的问题类型。
多解法问题:问题可能有多种解法,模型可探索不同的解题路径。
答案可验证的任务:输出有明确的正确答案,评估可自动完成。
答案唯一或有限的任务:如选择题、填空题,答案可以精确匹配。
数学问题求解:如算术计算、代数方程、几何证明等。
逻辑推理:包括因果关系推断、逻辑谜题、判断推理等。
编程和代码生成:需要生成正确且功能完善的代码段。
科学计算和定理证明:涉及复杂计算和证明步骤的任务。
需要复杂推理和多步骤推理的任务:
有明确客观评估标准的任务:
希望增强模型泛化能力的任务:
数据标注昂贵或稀缺的任务:
4.2 适合微调的能力
自我探索:模型在强化学习阶段自主探索解答,增强学习能力。
奖励驱动学习:通过奖励机制,模型学会识别正确的解答方向。
答案正确率:提高模型输出正确答案的概率。
错误纠正能力:模型能够从错误解答中学习,逐步改进。
处理新问题:模型能够适应未见过的问题类型,具备更强的泛化能力。
创新解题方法:模型可探索新的解题思路,丰富解答方式。
多步骤推理:提高模型在多步骤问题上的推理深度,能够清晰地进行逐步解答。
逻辑严谨性:增强模型在推理过程中的逻辑正确性,避免推理漏洞。
复杂推理能力:
泛化和适应能力:
准确性和可靠性:
自主学习能力:
4.3 不太适用的场景
无法自动评估的任务:如创意写作,没有明确的评价标准。
多样性要求高的任务:需要生成多样化的输出,ReFT可能限制多样性。
意见问答:涉及个人观点,无法客观评估正确性。
情感分析:需要理解细微情感差异,难以用简单的奖励机制衡量。
对话生成:涉及情感、礼貌性、上下文理解等,需要人类反馈。
内容创作:如诗歌、故事创作,评价标准主观多变。
需要大量人类主观评价的任务:
开放式、主观性强的任务:
缺乏明确奖励信号的任务:
4.4 数学问题求解的评估流程
模型生成:模型针对给定的数学问题,生成详细的解题过程和最终答案。
答案提取:评估程序从模型的输出中提取最终答案,并进行必要的标准化处理(如化简分数、统一单位)。
答案比较:将提取的答案与标准答案进行精确比较。
奖励分配:根据比较结果,给予模型相应的奖励,指导模型参数朝着能生成正确答案的方向更新。
5、总结
ReFT通过结合有监督微调和强化学习,特别是使用PPO算法,引导模型自主探索和学习,增强了模型在复杂推理和多步骤任务上的能力。它适用于:
有明确正确答案的任务:评估可自动化,避免主观偏见。
需要复杂推理的任务:如数学、逻辑推理、代码生成等。
希望增强模型泛化和自主学习能力的场景:模型能适应新问题,探索创新解法。
然而,对于需要大量人类评价、涉及主观判断或无法定义明确奖励机制的任务,ReFT可能并非最佳选择。在这些情况下,可能需要考虑其他方法,如基于人类反馈的强化学习(RLHF)或直接偏好优化(DPO)等。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-12-23
AWS Bedrock:面向 AI 应用的端到端解决方案
2024-12-23
大模型应用系列:从MLOps到LLMOps
2024-12-22
Hugging Face 发布免费开放课程,微调本地LLMs模型
2024-12-22
我对Multi-Agent集成业务场景设计
2024-12-21
一文回顾OpenAI系列发布会:从工具到AGI,OpenAI的12天进化论
2024-12-19
强化微调技术详解:开启AI模型定制的新篇章
2024-12-18
OpenAI 年底「百亿补贴」来了,满血 o1 API 开放,成本暴跌,定制升级
2024-12-18
腾讯AI团队:用Ray分布式计算效率提升800%
2024-09-18
2024-07-11
2024-07-11
2024-07-09
2024-06-11
2024-10-20
2024-07-23
2024-07-20
2024-07-26
2024-07-12