这两天,OpenAI的发布会可以说是一波接一波。先是拿出了功能完备的满血版o1,紧接着又放出了o1 mini的升级版本——一个经过强化微调的新模型。这事儿的看点在于,用户可以用自己的数据,把o1从那个全才高中生级别的通用助手,直接升格成特定领域的博士专家。思路一旦打开,想象空间就大得多了。
发布现场,一位遗传病专家亲身上阵,演示了强化微调后的o1 mini。结果相当有冲击力:这个新版本在任务完成度上比之前提升了80%,甚至超过了前一天的满血版o1。这个表现,确实让人眼前一亮。
那么,所谓的强化微调到底是什么?
简单来说,这是一种效率更高的学习方法。传统的微调,好比给学生看例题和标准答案,让他们自己去领悟。而强化微调呢?只给例题,不直接给答案,让学生自己去想、去解题,给出自己的答案,然后根据和正确答案的差距给一个分数。就这样,模型通过反复的尝试和校正,自己摸索出正确的推理路径,抛弃那些错误的思路。
强化微调的优势很明显:它只需要很少的例子就能学会新的推理方法,学习效率极高。但也不是万能的。它更适合那些需要专业知识、系统思考和推理的任务,比如法律、医疗这类领域。对那些简单的任务,比如模仿语气、写写东西,可能就不太对症了。
目前,这个功能还在测试阶段,只开放给部分高校、企业和开发者。不过按照规划,明年年初就会向大众开放。到时候,咱们就可以亲自上手,感受一下它的威力了。
有意思的是,字节在2024年发表了一篇关于强化微调的论文,很可能就是这项技术的关键源头。来,我们细看一下这篇论文。
摘要
提升大型语言模型(LLMs)推理能力的一个有效策略,是借助链式思考(CoT)注释来进行监督微调(SFT)。但这种方法的局限在于泛化能力不足,因为训练过程只局限于给定的CoT数据集。
以数学解题为例,训练数据里每个题目往往只有一条注释的推理路径。直觉上,如果每个题目能提供多样化的注释推理路径,算法的学习效果肯定会更好。为了解决这个问题,我们提出了一种既简单又高效的方法——强化微调(ReFT),目标是增强LLMs在推理领域的泛化能力,这里以数学解题作为案例来阐述。
ReFT方法先利用SFT对模型进行初步训练,也就是“预热”。然后,引入在线强化学习机制(本文采用PPO算法)对模型进行更精细的调整。在这个过程中,对每个给定的问题,系统会自动生成并采样大量的推理路径,同时根据真实答案自然地计算出相应的奖励。
通过在GSM8K、MathQA和SVAMP等多个数据集上进行的大量实验验证,我们发现ReFT方法相比SFT方法优势明显。另外,如果结合推理时间策略(比如多数投票和重新排序等方法),ReFT的性能还能进一步提升。值得注意的是,ReFT是在与SFT使用完全相同训练数据的前提下实现的提升,没有依赖任何额外或增强的训练数据。这充分证明了ReFT在泛化能力上的卓越表现。
引言
当前最先进的数学问题解决方法(如WizardMath、MATHCODER)采用的是监督微调(SFT)技术,结合链式思考(CoT)注释来训练模型。如图1所示,CoT注释详细阐述了解决数学问题的中间推理步骤。
在训练数据里,每个问题通常只有一个CoT注释,也就是一条正确的推理路径,用来进行SFT。但我们观察到,这种做法可能导致SFT模型的泛化能力相对较弱。实际上,对于同一个问题,往往存在多个有效的CoT注释。这就需要一个更强大的微调方法。
为了解决这个问题,我们提出了强化微调(ReFT),如图1底部所示。ReFT首先进行预热阶段,包括一到两个周期的监督微调(SFT),如图中阴影框所示。这个初始阶段让模型在一定程度上具备了正确回答数学问题的能力。
接着,ReFT利用在线强化学习(RL)算法进一步精炼模型,本文具体采用近端策略优化(PPO)。通过这种方式,ReFT能够采样多个正确的推理路径或CoT注释,并从中学习,如图2右侧所示。
由于训练数据中包含了真实答案,因此在训练PPO时,可以自然地从中推导出奖励(即“金标准”奖励)。所以,不需要单独训练奖励模型。相比之下,RLHF则需要利用从人类标注数据中学习得到的奖励模型。
在预热阶段,ReFT通过监督学习获得了一定程度的准确性。在强化学习阶段,ReFT通过采样多种CoT推理路径,进一步通过强化学习提升了自己的能力。这样一来,ReFT相比SFT获得了更丰富的监督信号。
这种方法让ReFT在解决数学问题时显著提高了泛化能力。值得注意的是,在使用相同训练问题的前提下,ReFT性能优于SFT,没有依赖额外或增强的训练问题。实际上,ReFT与这种数据工程方法并不冲突,可以无缝结合。
我们的贡献如下:
- 我们提出了一种新颖的微调方法——强化微调(ReFT),利用强化学习来解决数学问题。与在相同数据集上训练的传统监督微调方法相比,ReFT展现出了更强的泛化能力。
- 我们使用两个基础模型——CodeLLAMA和Galactica,在三个标准数据集GSM8K、MathQA和SVAMP上进行了广泛的实验。实验覆盖了自然语言与程序式两种思路提示(CoTs),充分证明了ReFT在性能和泛化能力上的显著提升。
- 此外,我们还展示了ReFT在推理阶段能从多数投票和奖励模型重排序中获益,从而进一步提升性能。
关键实验效果
这里需要重点提一下实验的结论。
相关工作
在数学问题解决领域,近期的研究主要聚焦于思路提示(CoT)的设计和数据工程。多数研究致力于让CoT更全面、更细致,以展现逐步推理的解决方案。Gao等人进一步提出使用Python程序作为CoT,展示了更精确的推理步骤,相比自然语言CoT取得了显著改进。此外,Zhou等人引入了一种提示方法,利用GPT-4生成代码来验证中间推理步骤,在GSM8K和MATH数据集上实现了最先进的性能。
另一项工作则侧重于提升CoT的质量,以及从OpenAI的ChatGPT或GPT-4中增加CoT数据的数量。
在强化学习方面,我们的工作与近期将近端策略优化应用于自然语言处理领域以符合人类偏好的研究紧密相关。此后,为了高效提升对齐效果,已经提出了多种训练算法,包括直接偏好优化、身份偏好优化(IPO)以及卡尼曼-特沃斯基优化(KTO)。不过,我们的目标不仅是实现对齐,而是将强化学习作为一种微调范式,来提升相比传统监督微调的性能。
在解决数学问题方面,Uesato等人和Lightman等人训练了基于结果或过程的奖励模型来进行重排序,在监督微调(SFT)和多数投票的基础上取得了更好的性能。虽然我们的方法旨在提升策略模型本身的性能,但这些奖励模型重排序方法可以轻松地整合到最终的策略模型中。
方法
在本研究中,我们重点探讨了基于自然语言的思维链(N-CoT)和采用Python实现的基于程序的思维链(P-CoT)。Gao等人(2023年)提出的基于程序的思维链方法,允许直接执行程序来获取答案。为了表述清晰,我们分别使用N-CoT和P-CoT来指代它们。
本文提出的强化微调(ReFT)过程分为两个阶段:预热阶段和强化学习阶段。整体算法流程如算法1所示。
预热阶段:模型在包含“(问题,思维链)”对的数据集上进行若干轮次的微调。这赋予了模型基本的问题解决能力,使其能够生成恰当的回应。具体来说,思维链的生成过程可以分解为一系列下一个词预测动作序列。当最后一个动作标记为
思维链e表示为:e = [a1, a2, ..., aL-1, aL=
强化学习阶段:在此阶段,模型通过在线自学的方式,利用包含(问题,答案)对的数据集(x, y)提升性能。
具体来说,策略模型通过反复采样响应(如图2所示)、评估响应答案的正确性,并以在线方式更新其参数(算法1中的第7-14行)。我们采用带有裁剪目标算法的PPO进行训练。
遵循Ziegler等人的方法,在策略模型πθ(即预热阶段后的模型)的最后一个隐藏状态之上附加一个线性价值头,从而构建价值模型Vφ。
对于所有导致非终止状态的动作,均给予0的奖励。在终止状态时,我们使用一个奖励函数,直接比较从状态思维链中提取的答案和真实答案y。如果答案正确,则奖励函数返回1,否则返回0。对于答案全为数字的数据集,如果答案可以提取且为数字类型,则可以应用0.1的部分奖励。
奖励设定:
- 答案正确时:模型获得奖励1,表示做出了完全正确的决策。
- 答案部分正确时:如果答案虽然是数字类型且不为空,但并非完全正确,模型会获得一个较小的奖励0.1。这种情况鼓励模型在正确方向上进行改进。
- 答案为空或完全错误时:不给予任何奖励(奖励为0)。
这种部分奖励有助于减轻稀疏奖励带来的学习困难。此外,遵循Zheng等人的方法,总奖励是奖励函数得分与学习到的RL策略和初始策略之间的Kullback-Leibler(KL)散度之和,该散度通过系数因子β进行缩放。
广义优势估计被用于计算优势:对于时间步t,其优势Â_t由相关公式给出,其中l从0遍历至L-t。
这里的时间差分(TD)δt'定义为相关公式。其中,Vφ(s_L+1)表示终止状态的值,设为0;λ ∈ (0, 1]是奖励的折扣因子;γ ∈ [0, 1]是TD的折扣因子。为了估计回报,我们采用了λ-回报R̂_t,它可以表示为广义优势估计和价值估计之和。
最后,策略和价值目标可以分别表示为以下两个公式,其中π_θ_old和Vφ_old用于采样思维链并计算Â_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),则策略很容易被操纵。为了解决奖励操纵问题,可能需要采用更详细或基于过程的奖励函数,综合考虑更广泛的因素。
