AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


字节ReFT技术:OpenAI强化微调的幕后功臣?
发布日期:2024-12-09 09:19:49 浏览次数: 2802 来源:MLSys2024


OpenAI在近两天的发布会上,接连放出了大招。先是推出了功能强大的满血版o1,紧接着第二天,又带来了o1 mini的升级版——经过强化微调后的新版本。这次升级让用户能够利用自己的数据,将o1从全才高中生级别,提升至特定领域的博士专家级,这无疑为AI的应用打开了新世界的大门。

在发布现场,一位遗传病专家亲自上阵,展示了强化微调后的o1 mini。结果显示,这个新版本在任务完成度上提升了80%,甚至超过了之前的满血版o1,这样的表现让人眼前一亮。

那么,什么是强化微调呢?简单来说,就是一种更高效的学习方法传统的微调像是给学生看例题和答案,但不让学生动手做题,只是让他们通过观察来领悟而强化微调则是给学生一些例题,但不直接告诉他们答案,而是让他们自己去思考、解题,并给出自己的答案然后,根据他们的答案与正确答案的差异,给出一个分数作为反馈这样,模型就能通过不断尝试和调整,找到正确的解题思路,摒弃错误的想法

强化微调的好处在于,它只需要很少的例子就能学会新的推理方法,学习效率非常高但这种方法也不是万能的,它更适合那些需要专业知识、系统思考和推理的任务,比如法律、医疗等而对于一些简单的任务,比如模仿语气、简单写作等,可能就不太适用了。

目前,强化微调功能还在测试阶段,只向部分高校、企业和开发者开放。不过,预计明年年初,这个功能就会向大众开放。到时候,我们就可以亲自体验一下这个新功能的威力了。字节24年发表了一篇关于强化微调的论文,有可能是非常相关的技术,我们来一探究尽

摘要

提升大型语言模型(LLMs)推理能力的一种有效策略是借助链式思考(CoT)注释来进行监督微调(SFT)。然而,这种方法的一个局限性在于其泛化能力不足原因是训练过程仅局限于给定的CoT数据集

以数学解题为例,训练数据中每个题目往往仅包含一条注释的推理路径从直觉上讲,如果能为每个题目提供多样化的注释推理路径,算法的学习效果有望得到显著提升。为了解决这一难题,我们提出了一种既简单又高效的方法——强化微调(ReFT),旨在增强LLMs在推理领域的泛化能力,这里以数学解题为例进行阐述。

ReFT方法首先利用SFT对模型进行初步训练,即“预热”随后,引入在线强化学习机制(本文采用PPO算法)对模型进行进一步的精细调整在这个过程中,对于每个给定的问题,系统会自动生成并采样大量的推理路径,同时根据真实答案自然地计算出相应的奖励

通过在GSM8K、MathQA和SVAMP等多个数据集上进行的大量实验验证,我们发现ReFT方法相较于SFT方法具有显著优势。此外,如果结合使用推理时间策略(例如多数投票和重新排序等),ReFT方法的性能还能得到进一步提升。值得注意的是,ReFT方法是在与SFT方法使用完全相同训练数据的前提下实现的性能提升,而无需依赖额外的或增强的训练数据。这充分证明了ReFT方法在泛化能力方面的卓越表现。

引言

当前最先进的数学问题解决方法(WizardMath: Empowering Mathematical Reasoning for Large Language Models via Reinforced Evol-Instruct;MATHCODER: SEAMLESS CODE INTEGRATION IN LLMS FOR ENHANCED MATHEMATICAL REASONING)采用监督微调(SFT)技术,结合链式思考(CoT)注释(Chain-of-Thought Prompting Elicits Reasoning in Large Language Models)来训练模型。如图1所示,CoT注释详细阐述了解决数学问题的中间推理步骤。

在训练数据中,每个问题通常只有一个CoT注释,即一条正确的推理路径,该路径被用于SFT。然而,我们观察到这种做法可能导致SFT模型的泛化能力相对较弱。事实上,对于同一个问题,往往存在多个有效的CoT注释(Training Verifiers to Solve Math Word Problems;Interpretable Math Word Problem Solution Generation Via Step-by-step Planning),这凸显了需要一种更强大的微调方法。

为解决这一问题,我们提出了一种简单而有效的方法,即强化微调(ReFT)(如图1底部所示)。ReFT首先进行预热阶段,涉及一到两个周期的监督微调(SFT)(如图1中阴影框所示)。这一初始阶段使模型在一定程度上具备了正确回答数学问题的能力,如先前工作所示(Training Verifiers to Solve Math Word Problems)。

接下来,ReFT利用在线强化学习(RL)算法(Reinforcement learning: An introduction)进一步精炼模型,本文具体采用近端策略优化(PPO)(Proximal Policy Optimization Algorithms)。通过这种方式,ReFT能够采样多个正确的推理路径或CoT注释,并从中学习(如图2右侧所示)。

由于训练数据中包含了真实答案,因此在训练PPO时,可以自然地从中推导出奖励(即“金标准”奖励)。因此,无需单独训练奖励模型。相比之下,RLHF(Training language models to follow instructions with human feedback)则需要利用从人类标注数据中学习得到的奖励模型。

在预热阶段,ReFT通过监督学习获得了一定程度的准确性。在强化学习阶段,ReFT通过采样多种CoT推理路径,进一步通过强化学习提升了自己的能力。这样,ReFT相较于SFT获得了更为丰富的监督信号。

这种方法使ReFT在解决数学问题时显著提高了泛化能力(Reinforcement Learning from Imperfect Demonstrations;Better-than-Demonstrator Imitation Learning via Automatically-Ranked Demonstrations)。值得注意的是,ReFT在使用相同训练问题的前提下,性能优于SFT,而无需依赖额外的或增强的训练问题。事实上,ReFT并不与这种数据工程方法相冲突,而且可以与其无缝结合。

我们的贡献如下:

1.我们提出了一种新颖的微调方法,即强化微调(ReFT),该方法利用强化学习来解决数学问题。与在相同数据集上训练的传统监督微调方法相比,ReFT展现出了更强的泛化能力。

2.我们使用两个基础模型——CodeLLAMA和Galactica,在三个标准数据集GSM8K、MathQA和SVAMP上进行了广泛的实验。实验涵盖了自然语言与程序式两种思路提示(CoTs),充分证明了ReFT在性能和泛化能力上的显著提升。

3.此外,我们还展示了ReFT在推理阶段能从多数投票(Self-Consistency Improves Chain of Thought Reasoning in Language Models)和奖励模型重排序(Solving math word problems with process- and outcome-based feedback)中获益,从而进一步提升其性能。

关键实验效果

相关工作

在数学问题解决领域,近期的研究主要聚焦于思路提示(CoT)的设计和数据工程。多数研究致力于使CoT更加全面和细致,以展现逐步推理的解决方案。Gao等进一步提出使用Python程序作为CoT,展示了更精确的推理步骤,并相较于自然语言CoT取得了显著改进。此外,Zhou等引入了一种提示方法,该方法利用GPT-4生成代码来验证中间推理步骤,从而在GSM8K和MATH数据集上实现了最先进的性能。

另一项工作则侧重于提升CoT的质量,以及从OpenAI的ChatGPT或GPT-4中增加CoT数据的数量。

强化学习方面,我们的工作与近期将近端策略优化应用于自然语言处理领域以符合人类偏好的研究紧密相关。自此之后,为高效提升对齐效果,已提出多种训练算法,包括直接偏好优化、身份偏好优化(IPO)以及卡尼曼-特沃斯基优化(KTO)。然而,我们的目标不仅仅是实现对齐,而是将强化学习作为一种微调范式,以提升相较于传统监督微调的性能。

在解决数学问题方面,Uesato等和Lightman等训练了基于结果或过程的奖励模型来进行重排序,从而在监督微调(SFT)和多数投票的基础上取得了更好的性能。虽然我们的方法旨在提升策略模型本身的性能,但这些奖励模型重排序方法可以轻松地整合到最终的策略模型中。

方法

在本研究中,我们着重探讨了基于自然语言的思维链(N-CoT,源自Wei等人,2022年的研究,如图1所示)以及采用Python实现的基于程序的思维链(P-CoT,由Gao等人,2023年提出)。Gao等人(2023年)针对数学问题解决提出了基于程序的思维链方法,该方法允许我们直接执行程序来获取答案。为了表述清晰、避免混淆,我们分别使用N-CoT和P-CoT来指代基于自然语言和基于程序的思维链。

本文提出的强化微调(ReFT)过程分为两个阶段:预热阶段和强化学习阶段。整体算法流程如算法1所示。

预热阶段在此阶段,模型在包含“(问题,思维链)”对的数据集上进行若干轮次的微调。这赋予模型基本的问题解决能力,使其能够生成恰当的回应。具体而言,思维链的生成过程可分解为一系列下一个词预测动作序列。当最后一个动作标记为<eos>时,表示生成过程结束。

思维链e表示为:e = [a1, a2, ..., aL-1, aL=<eos>]。其中,L表示最大长度。在时间步t,动作at从策略πθ(·|st)中采样得出,at可以是词汇表中的任何词,而状态st则包含问题中的所有词和迄今为止生成的所有词。每次动作后,得到的状态st+1是当前状态st和动作at的连接。当生成的动作是<eos>标记时,得到的状态sL+1是终止状态,此时生成过程结束。基于上述表示,单个样本的损失函数可表示为:

强化学习阶段:在此阶段,模型通过在线自学的方式,利用包含(问题,答案)对的数据集(x, y)提升性能。

具体而言,策略模型通过反复采样响应(如图2所示)、评估响应答案的正确性,并以在线方式更新其参数(算法1中的第7-14行)。我们采用带有裁剪目标算法的PPO(Schulman等人,2017)进行训练。

遵循Ziegler等人(2019)的方法,在策略模型πθ(即预热阶段后的模型)的最后一个隐藏状态之上附加一个线性价值头,从而构建价值模型Vφ。

对于所有导致非终止状态的动作,均给予0的奖励在终止状态时,我们使用一个奖励函数,该函数直接比较从状态思维链中提取的答案和真实答案y。如果答案正确,则奖励函数返回1,否则返回0。对于答案全为数字的数据集,如果答案可以提取且为数字类型,则可以应用0.1的部分奖励。对于1 ≤ t ≤ L,我们定义奖励 r(st,at,st+1) 如下:

1.当答案正确时:如果模型生成的答案与正确答案完全一致,那么模型会获得奖励1。这表示模型做出了完全正确的决策。

2.当答案部分正确时:如果模型生成的答案虽然不是完全正确,但答案是数字类型且不为空,模型会获得一个较小的奖励0.1。这种情况通常发生在答案内容上与正确答案接近但不完全一致时,给予部分奖励可以鼓励模型在正确的方向上进行改进。

3.当答案为空或完全错误时:如果模型没有生成任何答案(即答案为null),或者答案完全错误,则不给予任何奖励(奖励为0)。这表示模型的这次尝试没有取得任何进展。

这种部分奖励有助于减轻稀疏奖励对学习的影响。此外,遵循Zheng等人(2023)的方法,我们的总奖励是奖励函数得分与学习到的RL策略和初始策略之间的Kullback-Leibler(KL)散度之和,该散度通过系数因子β进行缩放。

广义优势估计(Schulman等人,2018)被用于计算优势:对于时间步t,其优势Â_t由下式给出,其中l从0遍历至L-t:

另外这里的时间差分(TD)δt'定义为:

其中,Vφ(s_L+1)表示终止状态的值,并设为0;λ ∈ (0, 1]是奖励的折扣因子;γ ∈ [0, 1]是TD的折扣因子。为了估计回报,我们采用了λ-回报R̂_t,它可以表示为广义优势估计和价值估计之和:

最后,策略和价值目标可以分别表示为以下两个方程

其中,π_θ_old和Vφ_old用于采样思维链(Chain of Thought)并计算Â_t和R̂_t。统一的损失函数L_RL(θ, φ)是上述目标的加权和:

其中,α是价值目标的系数。

未来工作

我们首次尝试将强化学习,特别是近端策略优化(PPO)算法,应用于大型语言模型(LLM)的数学问题解决微调中。未来的工作将包括:利用离线强化学习技术来提升训练效率和性能,无需预热即可增强效果,从而缩小与重排序方法之间的差距;根据Lightman等的建议,探索在强化学习训练中实现基于过程的奖励(PRM),因为一个训练有素的PRM可以显著提升性能;以及鉴于ReFT(强化微调)方法的通用性,我们计划将其应用于更多可以通过思路提示(CoT)进行形式化推理的一般推理任务中。

局限性

训练效率:如图4(b)所示,ReFT达到收敛所需的训练周期数明显多于监督微调(SFT)。这主要是因为ReFT优化的是一个不可微的目标,并需要探索生成空间以获得正确答案。虽然增大学习率可能加速收敛,但也会使策略更容易出现不稳定甚至崩溃。另一种可行的方法是使用更大的批量大小,但这会增加计算成本。

奖励操纵:我们的奖励函数仅依据最终答案来确定奖励。然而,在MathQA[MCQ]  N-CoT数据集上的实验表明,如果最终答案的可能空间有限(如A、B、C、D),则策略很容易被操纵。为了解决奖励操纵问题,可能需要采用更详细或基于过程的奖励函数,综合考虑更广泛的因素。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询