微软:两个AI相互纠错,数学再涨5分

AITNT-国内领先的一站式人工智能新闻资讯网站
# 热门搜索 #
AITNT-国内领先的一站式人工智能新闻资讯网站 搜索
微软:两个AI相互纠错,数学再涨5分
4870点击    2024-12-02 14:51

提升LLM数学能力的新方法来了——


一个大模型不行,那就两个。让他们彼此合作,纠正对方的错误。


这就是来自加州大学和微软研究院的最新研究成果:Flow-DPO。通过使用在线学习流(Flow)和直接偏好优化(DPO, Direct Preference Optimization),可以让LLM生成更加详细和精确的推理轨迹。


同时,这种在线多智能体(Agent)的学习形式还能挖掘数据中的深层信息,有效避免了人类标注数据不够准确的问题。


微软:两个AI相互纠错,数学再涨5分


我们先一起看个例子感受一下。


比如针对下面这道题:


方程 x + 2y + 3 = 0 的图与方程 ax + 2y + 3 = 0 的图互相垂直。请问ax + 2y + 3 = 0中,a 的值是多少?


基准回答是这样的:


方程 x + 2y + 3 = 0 的图形的斜率为 -1/2,因为图形垂直,所以 ax + 2y + 3 = 0 的图形的斜率必须是 x + 2y + 3 = 0 的负倒数。因此,方程 ax + 2y + 3 = 0 的斜率为2,改写为2y = -ax - 3,然后两边除以 2,得到 y = -a/2x-3/2。将此与斜率截距形式 y = mx + b 相比,我们发现斜率 m 为 -a/2。由于我们知道斜率为 2,所以 - a/2= 2。将两边乘以 -2,得到 a = -4,答案为:-4。


Flow-DPO的回答是这样的:


要解决这个问题,我们需要了解线性方程中垂直线的概念。当两条直线垂直时,它们的斜率互为负倒数。让我们以斜率-截距形式复述给定方程 x + 2y + 3 = O,即 y = -1/2x - 3/2。这告诉我们直线的斜率是 - 1/2。现在,我们需要找出方程 ax + 2y + 3 = 0 所表示的直线的斜率。我们可以将方程改写成斜率-截距形式,即 y = -a/2x - 3/2。这告诉我们这条直线的斜率是-a/2。由于两条直线垂直,因此它们的斜率互为负倒数。这意味着 -1/2 * (-a/2) = -1,简化为 a = -4。因此,a 的值为 -4。


GTP-4o当裁判,针对两个模型的回答分析了一下,它认为答案B(FLow-DPO)更好,原因有两点:


1.概念解释


答案 A 的回答是:“我们可以利用斜率之间的负倒数关系来求解 a”。答案 B 花时间明确解释了垂直的概念,强调垂直线的斜率是负倒数。这种回答更有教育意义,可以让读者理解数学背后的推理。


2.解题思路清晰


答案A推导出了正确的方程并正确地求解了方程,但引入了一些不必要的步骤。


例如,中间步骤涉及将方程改写为2y = -ax - 3 和两边除以 2 的中间步骤比必要的步骤复杂。


答案 B 立即使用两个方程的斜截距形式简化了方法。它有效地解释了如何提取斜率,并直接比较了两个等式的斜率,过程更直接,更容易理解。


结论


答案 B 的解释更清晰、更透彻,既注重概念和公式,又避免了不必要的复杂性,这种循序渐进的方法更易于理解和掌握。


微软:两个AI相互纠错,数学再涨5分


可以看到,在解决真实数学问题的时候,Flow-DPO生成的推理过程不仅有更详细的指导,还避免了不必要的复杂性,增强了可读性和理解性。


这是怎么做到的呢?


两个大模型彼此合作


针对LLM解决数学问题时反馈信息有限标注数据质量不高等问题,团队提出了一种新的方法。


那就是通过在线学习流(Flow)和直接偏好优化(DPO)学习来生成高质量的推理轨迹。


具体分为2个部分:


1.增量输出生成Flow(Incremental Output Production Flow)


Flow-DPO采用了增量输出生成Flow,其中有两个独立的LLM(Answer LLM和Stop LLM)协同工作,通过迭代通信构建解决方案。


具体来说,Answer LLM一次会生成一个有限的答案块,而Stop LLM则判断部分答案是否达到最终状态,两个LLM通过迭代式学习不断进步。


Answer LLM和Stop LLM的底层都是相同的基础模型,但它们使用不同的LoRA适配器进行了微调,可以专门完成各自的任务。


而且在训练过程中,Flow-DPO可实现更精细的控制较小的块大小,灵活适应不同的概念和方法,较大的块大小近似于单次模型生成。


微软:两个AI相互纠错,数学再涨5分


2.在线Flow学习与回滚(Online Flow Learning with Rollouts)


Flow-DPO还会通过在线DPO学习和回滚来增强Flow。


对于每个输入问题,Answer LLM会生成一个答案片段,一直持续到产生完整的回答。


然后模型会在每个输出节点进行随机展开,比如在生成初始答案片段且Stop LLM判断为“否”后,Flow还会生成另一个答案片段,基于之前的部分答案继续构建。


如果两个答案在正确性上不同,就把它们作为答案语言模型的DPO对,引导到正确答案的那个片段被选为首选响应。


微软:两个AI相互纠错,数学再涨5分


显著提高LLM数学推理能力显著提高


为了验证Flow-DPO的性能,研究团队还设计了精密的验证实验,具体设置如下


  • 数据集:实验使用了MetaMath数据集,该数据集基于于GSM8K和MATH数据集,并通过数据增强技术进行了增强。


  • 模型选择:实验采用了两种不同规模的模型:Llama-3-8B-Instruct和Phi-3-medium-128k-instruct (14B)


  • Flow学习阶段:在Flow学习阶段,团队使用不同的LoRA适配器对Answer LLM和Stop LLM进行微调,让它们在DPO训练中的能力更加专业。


  • 编译阶段:在编译阶段,收集Flow生成的正确推理轨迹和基线模型生成的正确推理轨迹,进行独立评估。


最终结果显示,使用了Flow-DPO之后,Llama3模型和Phi3在数学推理上的能力都大幅提升了!


一起来看看具体结果分析:


1.渐进验证准确率(Progressive Validation Accuracy)


渐进验证准确率的准确定义,是模型在训练前对输入训练数据的累积准确度,公式和变量含义如下图所示:


微软:两个AI相互纠错,数学再涨5分


实验结果显示,在线DPO训练显著提高了Flow的泛化能力。


对于Llama-3-8B-Instruc模型,在线DPO学习在仅2000个训练实例内将Flow的性能提高了20%。对于Phi-3-medium-128k-instruct模型,在线DPO学习使其准确率提高了4个百分点,达到了83%.


微软:两个AI相互纠错,数学再涨5分


2.推理轨迹质量


Flow生成的推理轨迹在质量上也优于基线和模型生成的正确推理轨迹。


对于Llama-3-8B-Instruct模型,Flow生成的推理轨迹在GSM8K和MATH数据集上的微调准确率分别提高了6%和7.8%。


对于Phi-3-medium-128k-instruct模型,Flow生成的推理轨迹在两个数据集上的微调准确率分别提高了1.9%和2.1%.


微软:两个AI相互纠错,数学再涨5分


除了刚开始的垂直直线问题,研究团队还放出了很多真实的解题回答和对比,感兴趣的朋友可以查看论文的更多相关信息。


微软:两个AI相互纠错,数学再涨5分


没想到,不久前还让LLM非常头疼的数学问题现在也进步飞快!


有了优秀的逻辑分析能力,我们也能期待LLM未来能解决更多复杂的问题了。


参考链接:

[1]https://arxiv.org/abs/2410.22304


文章来自于“量子位”,作者“奇月”。


微软:两个AI相互纠错,数学再涨5分

AITNT-国内领先的一站式人工智能新闻资讯网站
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
智能体

【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。

项目地址:https://github.com/Significant-Gravitas/AutoGPT


【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。

项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md

2
微调

【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。

项目地址:https://github.com/InternLM/xtuner