https://github.com/xinyuwei-david/david-share.git
最近 OpenAI Day2 展示的 demo 可能把 ReFT 带火了。实际上这不是一个很新的概念,也不是 OpenAI 原创的论文。
接下来,本文对比 SFT、ReFT、RHLF、DPO、PPO 这几种常见的技术。
几种技术之间的关系
如果把复杂的问题简单理解,这些技术之间的关系大概是:
1. ReFT(Reinforced Fine-Tuning,强化微调):
组成: ReFT = SFT + PPO
过程:在有监督微调(SFT)的基础上,使用 PPO(近端策略优化)进行强化学习。
评估方式:通常通过 自动化程序 对模型输出进行评估,奖励信号来自程序的评价。
2. RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习):
组成:RLHF = SFT + PPO + 人类反馈
过程在 SFT 的基础上,使用 PPO 进行强化学习,奖励信号来自 人类反馈。
评估方式:人类对模型输出进行评价,或者使用基于人类反馈训练的 奖励模型 来评估。
3. DPO 方法(Direct Preference Optimization,直接偏好优化):
组成: DPO 方法 = SFT + DPO
过程:在 SFT 的基础上,引入参考模型使用 DPO(直接偏好优化)方法直接优化模型。
评估方式:利用人类偏好数据和参考模型构建损失函数,直接优化模型参数。
4.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、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)的方法。以下是对图中各部分的详细解释:
监督微调(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(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)和最终答案。
提取最终答案:程序从模型的输出中提取最终答案部分,忽略推理过程中的噪声信息。
答案比较:将提取的最终答案与预先存在的标准答案进行比较。
自动评估流程
奖励计算
无需人类干预:整个评估和奖励计算过程是自动化的,不需要人类评估或其他模型的参与。
如何保证评估程序的客观性
为了确保评估程序的客观性和公正性,需注意以下几点:
对于可能有多种正确答案的题目,评估程序应涵盖所有正确解,确保公平性。
对标准答案和模型输出进行标准化,确保比较过程的公正。
保持评估程序的透明度,代码可审查,评估逻辑清晰明了。
记录评估过程中的关键步骤,方便后续的复查和分析。
在正式使用前,对评估程序进行充分的测试,确保其在各种可能的输出情况下都能正确判断。
处理边界情况和异常输入,增强程序的鲁棒性。
评估程序只关注答案的正确性,不涉及语言风格、表达方式等主观评价。
对所有样本应用统一的评估逻辑,避免人为偏见。
采用字符串匹配、数值比较等方式,自动判断模型输出与标准答案的一致性。
考虑数值误差范围,确保对数值型答案的比较准确。
使用客观且可验证的评估标准,基于标准答案进行精确比较。
对答案进行标准化处理,如去除空格、统一格式等,确保比较的一致性。
明确的评估标准
自动化的比较机制
避免主观因素
严格的测试和验证
透明和可审计
处理多样化的正确答案
ReFT 适合的微调场景和能力
适合的微调场景
人类反馈成本高:获取大量人类偏好数据成本高昂。
标注数据有限:需充分利用现有数据,提升模型性能。
新型问题解决:模型可解决训练数据中未出现过的问题类型。
多解法问题:问题可能有多种解法,模型可探索不同的解题路径。
答案可验证的任务:输出有明确的正确答案,评估可自动完成。
答案唯一或有限的任务:如选择题、填空题,答案可以精确匹配。
数学问题求解:如算术计算、代数方程、几何证明等。
逻辑推理:包括因果关系推断、逻辑谜题、判断推理等。
编程和代码生成:需要生成正确且功能完善的代码段。
科学计算和定理证明:涉及复杂计算和证明步骤的任务。
需要复杂推理和多步骤推理的任务
有明确客观评估标准的任务
希望增强模型泛化能力的任务
数据标注昂贵或稀缺的任务
适合微调的能力
自我探索:模型在强化学习阶段自主探索解答,增强学习能力。
奖励驱动学习:通过奖励机制,模型学会识别正确的解答方向。
答案正确率:提高模型输出正确答案的概率。
错误纠正能力:模型能够从错误解答中学习,逐步改进。
处理新问题:模型能够适应未见过的问题类型,具备更强的泛化能力。
创新解题方法:模型可探索新的解题思路,丰富解答方式。
多步骤推理:提高模型在多步骤问题上的推理深度,能够清晰地进行逐步解答。
逻辑严谨性:增强模型在推理过程中的逻辑正确性,避免推理漏洞。
复杂推理能力
泛化和适应能力
准确性和可靠性
自主学习能力
不太适用的场景
无法自动评估的任务:如创意写作,没有明确的评价标准。
多样性要求高的任务:需要生成多样化的输出,ReFT 可能限制多样性。
意见问答:涉及个人观点,无法客观评估正确性。
情感分析:需要理解细微情感差异,难以用简单的奖励机制衡量。
对话生成:涉及情感、礼貌性、上下文理解等,需要人类反馈。
内容创作:如诗歌、故事创作,评价标准主观多变。
需要大量人类主观评价的任务
开放式、主观性强的任务
缺乏明确奖励信号的任务
数学问题求解的评估流程
模型生成:模型针对给定的数学问题,生成详细的解题过程和最终答案。
答案提取:评估程序从模型的输出中提取最终答案,并进行必要的标准化处理(如化简分数、统一单位)。
答案比较:将提取的答案与标准答案进行精确比较。
奖励分配:根据比较结果,给予模型相应的奖励,指导模型参数朝着能生成正确答案的方向更新。
总结
ReFT 通过结合有监督微调和强化学习,特别是使用 PPO 算法,引导模型自主探索和学习,增强了模型在复杂推理和多步骤任务上的能力。它适用于:
有明确正确答案的任务:评估可自动化,避免主观偏见。
需要复杂推理的任务:如数学、逻辑推理、代码生成等。
希望增强模型泛化和自主学习能力的场景:模型能适应新问题,探索创新解法。
然而,对于需要大量人类评价、涉及主观判断或无法定义明确奖励机制的任务,ReFT 可能并非最佳选择。在这些情况下,可能需要考虑其他方法,如基于人类反馈的强化学习(RLHF)或直接偏好优化(DPO)等。
作者简介:
魏新宇 微软 AI 全球黑带高级技术专家
著有《大语言模型原理、训练及应用》《金融级 IT 架构与运维》《OpenShift 在企业中的实践》v1&v2、《云原生应用构建》。
想了解更多 AI 知识欢迎关注作者书籍和 Github
更多精彩内容请点击下载
评论