36kr-科技 2024年07月05日
贾佳亚团队新作:10k数据让大模型数学能力超GPT-4
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

港中文贾佳亚团队推出了一种基于推理步骤的大模型优化策略——Step-DPO,该策略能够像老师教学生一样,通过细化推理步骤,提升大模型的数学推理能力。该方法使72B Qwen模型的数学成绩超越了GPT-4、Gemini1.5-Pro和Claude3-Opus等一众闭源模型。

🤔 Step-DPO 借鉴了老师纠正学生错误的思路,将每个推理步骤视为一个基本单元,通过对比单个步骤的正确性,来提高模型的多步推理分析能力。与传统的DPO方法相比,Step-DPO能够更精准地定位推理过程中的错误步骤,并针对性地进行修正。

🚀 Step-DPO 仅需10K数据以及数百个训练步数,就能使模型在数学能力上取得显著提升。例如,在Qwen2-7B-Instruct模型的基础上,Step-DPO能够使模型在MATH测试集上的准确率提升5.6%,而在Qwen2-72B-Instruct模型上,Step-DPO则能够使模型在MATH和GSM8K测试集上的准确率分别达到70.8%和94.0%,超越了多个闭源模型。

💡 Step-DPO 采用了一种基于模型自生成的数据处理流程,该流程包含错误收集、错误步骤定位和错误步骤修正三个步骤。该流程无需大量的人工介入,只需要判断给定推理步骤是否正确,并进行修正,从而有效地提升了模型的推理能力。

🏆 Step-DPO 能够有效地减少模型幻觉的产生,并提高模型的鲁棒性,使其在更复杂的数学推理任务中表现出色。

🎉 此外,该团队还开源了 Step-DPO 的代码、数据、模型和在线演示,方便研究人员和开发者进行进一步的探索和应用。

只要10k数据,就能让大模型的数学成绩增长5.6%。

港中文贾佳亚团队推出了基于推理步骤的大模型优化策略,能够像老师教学生一样优化大模型。

利用这种方法,72B Qwen模型的数学成绩超越了GPT-4、Gemini1.5-Pro和Claude3-Opus等一众闭源模型。

老师在纠正学生错误时,不会只告诉学生最终答案错了,还会告知具体哪个步骤错了,以此快速纠正其错误。

贾佳亚团队正是学习了这一特点,将斯坦福团队推出的DPO(直接偏好优化)进一步细化,形成了逐步应用的策略Step-DPO

该方法让Qwen-72B模型在多个数据集上进步明显,同时也获得了更强的长链条推理任务能力。

像教育学生一样训练大模型

如何强化推理能力,一直是大语言模型领域的重要问题之一。

常见的思维链策略通过在输入提示词部分添加“Let’s think step by step.”,来使模型在输出中完成逐步推理,但对于复杂的问题,仅通过修改提示词不足以引导模型正确解决问题。

由于复杂问题涉及的推理过程较长,有时包含数十个推理步骤,一旦其中任一步骤出错,就难以得到正确的结果。

此外,现有方案旨在通过监督式微调(SFT)阶段增加问答数据以实现更好的对齐。

然而,当SFT数据达到一定数量时,模型经常出现幻觉,性能也随之趋于饱和。

一个潜在的原因是,随着偏好输出的概率上升,非偏好输出的概率也会随之增加。

为了抑制幻觉,提升模型的事实性,斯坦福大学提出了直接偏好优化方法,其工作原理是创建基于人类偏好对的数据集,每个偏好对都包含一个输入提示、偏好输出以及非偏好输出。

然后对语言模型直接进行微调,最大限度地提高生成的可能性,并减少输出的可能性。

因此,DPO的优化目标为:

其中πθ与πref分别表示当前微调模型以及参照模型。

但在长链条推理任务中,DPO无法准确判断推理过程中的错误步骤,从而无法聚焦关键出错步骤。

如下图所示,基于DPO的模型在训练过程中无法准确判断推理步骤正确与否。

因此,作者提出了基于推理步骤的直接偏好优化——Step-DPO

就像老师在纠正学生错误时,不会只告诉学生最终答案错了,还会告知具体哪个步骤错了,以此快速纠正其错误。

与此类似,Step-DPO不再像DPO从整体上对比答案,而是将每个推理步骤视为一个基本单元,并且对比单个推理步骤,从更精细的角度提升模型的多步推理分析能力。

Step-DPO的优化目标为:

除此之外,作者还提出基于模型自生成的数据处理流程。如图所示,该流程包含以下三个步骤:

第一步是错误收集

首先,给定一组数学问题D0=(x,y∧),其中x是数学问题,y∧是其真实答案。

然后,使用初始模型πref来得到每个数学问题x的答案。

在进行模型推理之前,需要添加思维链(CoT)前缀作为提示,以确保模型的推理结果被结构化为多个推理步骤,每个步骤均以“Step i:”开始。

经过模型推理可得到每个数学问题x的推理结果y,然后选择与真实答案y∧不一致的那些结果,并汇总得到数据集D1:

第二步是错误步骤定位

每个错误推理结果y都呈现为一系列推理步骤的序列y=s1,s2,…,sn,随后需要人工或利用GPT-4验证每个推理步骤的正确性,直到找到第一个错误步骤sk,并记录其步骤编号。

然后将sk选为错误的推理步骤slose,从而得到D2:

最后是错误步骤修正

为了获得D2中每个样本对应的正确推理步骤,需要对模型πref进行推断,使用提示x和前面的正确推理步骤s1~k-1来采样多个输出ycont,此过程可以表示为:

随后保留ycont中那些与真实答案一致的输出,并将其中的第一个推理步骤作为swin,最终得到数据集D:

下图展示了一个数据样本示例。值得一提的是,该数据准备流程无需大量的人工介入,人类或GPT-4只需要判断给定推理步骤是否正确,而无需亲自撰写答案来修正错误。

10k数据带来数学能力大幅提升

Step-DPO可以在SFT模型或现有的开源Instruct模型上进行微调,仅通过10K数据以及数百个训练步数,即可取得大幅度的数学能力提升。

如下图所示,在Qwen2-7B-Instruct模型的基础上进行Step-DPO可在MATH测试集上获得5.6%准确率的提升

在Qwen2-72B-Instruct模型的基础上进行Step-DPO,可在MATH和GSM8K测试集的准确率分别达到70.8%和94.0%,超过一系列闭源模型如Gemini-1.5-Pro、GPT-4-1106,以及Claude-3-Opus。

除此之外,在难度较高的包含数学竞赛题的Odyssey-MATH榜单上也有显著提升。

经过Step-DPO之后,模型更加鲁棒,减少幻觉的产生,在推理过程中也不容易出错。如以下两个例子所示。

假设h(x)=f-1(x),如果h(2)=10,h(10)=1,h(1)=2,求f(f(10))。

t的平方根大于2且小于3.5,满足这一条件的整数t有多少个?

即便是下图这道数学竞赛题,经过Step-DPO之后的模型也可以做对。

在所有非增函数f:{1,2,…,10}→{1,2,…,10}中,有些函数有固定点,另一些没有,这两种函数的数量相差多少?

目前,该项目的代码,数据,模型,Demo均已公开至GitHub和Hugging Face,同时支持在线体验。

论文地址:https://arxiv.org/abs/2406.18629

GitHub:https://github.com/dvlab-research/Step-DPO

在线Demo:http://103.170.5.190:7870/

模型(HF):https://huggingface.co/collections/xinlai/step-dpo-6682e12dfbbb2917c8161df7

数据(HF):https://huggingface.co/datasets/xinlai/Math-Step-DPO-10K

本文来自微信公众号“量子位”(ID:QbitAI),作者:港中文贾佳亚团队,36氪经授权发布。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

大模型 数学推理 Step-DPO 贾佳亚 港中文
相关文章