0

0

通过MAmmoT,让LLM成为数学通才:从形式逻辑进阶到四则运算

WBOY

WBOY

发布时间:2023-09-25 13:53:12

|

1407人浏览过

|

来源于51CTO.COM

转载

数学推理是现代大型语言模型(LLM)的一个重要能力。尽管这个领域近来有了一些进展,但是闭源和开源的LLM之间仍然存在明显的差距。闭源模型如GPT-4、PaLM-2和Claude 2在GSM8K和MATH等常见数学推理基准上占据主导地位,而开源模型如Llama、Falcon和OPT在所有基准上都明显落后

为了解决这个问题,研究界正朝着两个方向努力

(1)Galactica 和 MINERVA 等持续型预训练方法,可以在超过千亿个数学相关网络数据的基础上对 LLM 进行持续训练。这种方法可以提高模型的一般科学推理能力,但计算成本较高

拒绝采样微调(RFT)和WizardMath等特定数据集微调方法,即使用特定数据集的监督数据对LLM进行微调。虽然这些方法可以提高在特定领域内的性能,但无法泛化到微调数据之外的更广泛数学推理任务。例如,RFT和WizardMath可以将在GSM8K(其中之一是微调数据集)上的准确性提高30%以上,但会损害在MMLU-Math和AQuA等领域之外数据集上的准确性,使其降低多达10%

近日,来自滑铁卢大学和俄亥俄州立大学等机构的研究团队提出了一种轻量级却又可泛化的数学指令微调方法,可用于增强 LLM 的一般性(即不限于微调任务)数学推理能力。

重写后的内容:在过去,关注的方法主要是思维链(CoT)方法,即通过逐步自然语言描述来解决数学问题。这种方法非常通用,可以应用于大多数数学学科,但在计算精度和复杂的数学或算法推理过程(例如求解二次方程根和计算矩阵特征值)方面存在一些困难

相比之下,像思维程序(PoT)和 PAL 这样的代码格式 prompt 设计方法则是利用外部工具(即 Python 解释器)来大幅简化数学求解过程。这种方法是将计算过程卸载到外部 Python 解释器来求解复杂的数学和算法推理(例如使用 sympy 求解二次方程或使用 numpy 计算矩阵特征值)。但是,PoT 难以应对更抽象的推理场景,比如常识推理、形式逻辑和抽象代数,尤其是没有内置的 API 时。

为了兼顾CoT和PoT两种方法的优点,该团队引入了一个新的数学混合指令微调数据集MathInstruct,该数据集具有两个主要特点:(1) 广泛涵盖不同的数学领域和复杂程度,(2) 将CoT和PoT原理融合在一起

MathInstruct 基于七个现有的数学原理数据集和六个新整理出的数据集。他们使用 MathInstruct 微调了不同大小(从 7B 到 70B)的 Llama 模型。他们将所得到的模型称为 MAmmoTH 模型,结果发现 MAmmoTH 的能力是前所未有的,就像是一个数学通才。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

通过MAmmoT,让LLM成为数学通才:从形式逻辑进阶到四则运算

为了评估MAmmoTH,研究团队使用了一系列评估数据集,其中包括领域内的测试集(GSM8K、MATH、AQuA-RAT、NumGLUE)和领域外的测试集(SVAMP、SAT、MMLU-Math、Mathematics、SimulEq)

研究结果显示,MAmmoTH 模型在泛化到领域外数据集方面表现更好,同时也显著提升了开源 LLM 在数学推理方面的能力

值得注意的是,在常用的竞赛级MATH数据集上,MAmmoTH的7B版本能够以3.5倍的优势(35.2% vs 10.7%)击败WizardMath(这是MATH上之前最佳的开源模型),而经过微调的34B MAmmoTH-Coder甚至可以超过使用CoT的GPT-4

这项研究的贡献可以总结为两个方面:(1)在数据工程方面,他们提出了一个高质量的数学指令微调数据集,其中包含了多种不同的数学问题和混合原理。(2)在建模方面,他们训练和评估了大小从7B到70B的50多个不同的新模型和基准模型,以探究不同数据源和输入-输出格式的影响

研究结果表明,MAmmoTH和MAmmoTH-Coder等新模型在准确度方面明显超过了之前的开源模型

通过MAmmoT,让LLM成为数学通才:从形式逻辑进阶到四则运算

  • 论文:https://arxiv.org/pdf/2309.05653.pdf
  • 代码:https://github.com/TIGER-AI-Lab/MAmmoTH
  • 数据集与模型:https://huggingface.co/datasets/TIGER-Lab/MathInstruct

该团队已经发布了他们整理得到的数据集,并开源了新方法的代码,同时在Hugging Face上发布了训练好的不同大小的模型

新提出的方法

重新整理一个多样化的混合指令微调数据集

该团队的目标是编制一份列表,其中包含高质量且多样化的数学指令微调数据集,其应具有两个主要特征:(1) 广泛涵盖不同的数学领域和复杂程度,(2) 将 CoT 和 PoT 原理组合到一起。

对于第一个特征,研究人员首先选择了一些广泛使用的高质量数据集,这些数据集涉及不同的数学领域和复杂程度,例如GSM8K、MATH、AQuA、Camel和TheoremQA。然后他们注意到现有的数据集中缺乏大学水平的数学知识,例如抽象代数和形式逻辑。为了解决这个问题,他们利用网上找到的少量种子示例,使用GPT-4合成了TheoremQA中问题的CoT原理,并通过自我指导的方式创建了“问题-CoT”配对

对于第二个特征,将 CoT 和 PoT 原理组合到一起可以提升数据集的多功能性,使其训练的模型有能力解决不同类型的数学问题。但是,大多数现有数据集提供的程序原理有限,导致 CoT 和 PoT 原理之间不平衡。为此,该团队又用到了 GPT-4,来为所选数据集补充 PoT 原理,包括 MATH、AQuA、 GSM8K 和 TheoremQA。然后再对这些 GPT-4 合成的程序进行过滤,做法是将它们的执行结果与人类标注的基本真值进行比较,这能确保所添加的都是高质量的原理。

遵循这些准则,他们创建了一个新的数据集 MathInstruct,详见下表 1。

通过MAmmoT,让LLM成为数学通才:从形式逻辑进阶到四则运算

其中包含 26 万对 (指令,响应),覆盖广泛的核心数学领域(算术、代数、概率学、微积分和几何等),包含混合的 CoT 和 PoT 原理,并有不同的语言和难度。

重新设置训练

MathInstruct 的所有子集都被统一成了类似 Alpaca 的指令数据集的结构。这种标准化操作可以确保微调得到的模型能够一致地处理数据,无论原始数据集的格式如何

在基础模型方面,该团队选择了Llama-2和Code Llama

通过在 MathInstruct 上进行调整,他们获得了不同尺寸的模型,包括7B、13B、34B和70B

实验

评估数据集

为了评估模型的数学推理能力,该团队选择了一些评估数据集,见下表 2,其中包含许多不同领域内和领域外样本,涉及多个不同数学领域。

通过MAmmoT,让LLM成为数学通才:从形式逻辑进阶到四则运算

评估数据集包含不同难度等级,包括小学、中学和大学水平。有些数据集还包括形式逻辑和常识推理

所选择的评估数据集既有开放式问题,也有多项选择题。

对于开放式问题(如 GSM8K 和 MATH),研究者采用了 PoT 解码,因为大多数这类问题可以通过程序求解。、

对于多项选择题(如 AQuA 和 MMLU),研究者采用了 CoT 解码,因为这个数据集中的大部分问题都可以通过 CoT 更好地处理。

CoT 解码不需要任何触发词,而 PoT 解码需要一个触发语:「Let’s write a program to solve the problem」。

主要结果

Cursor
Cursor

一个新的IDE,使用AI来帮助您重构、理解、调试和编写代码。

下载

下表 3 和表 4 分别报告了在领域内外数据上的结果。

通过MAmmoT,让LLM成为数学通才:从形式逻辑进阶到四则运算

通过MAmmoT,让LLM成为数学通才:从形式逻辑进阶到四则运算

总体而言,在不同的模型大小上,MAmmoTH 和 MAmmoTH-Coder 都优于之前最佳的模型。新模型在领域外数据集上取得的性能增长多于在领域内数据集上所获增长。这些结果表明新模型确实有成为数学通才的潜力。MAmmoTH-Coder-34B 和 MAmmoTH-70B 在一些数据集上的表现甚至超过了闭源 LLM。

研究人员还比较了使用不同的基础模型的情况。具体而言,他们进行了实验,比较了Llama-2和Code-Llama这两种基础模型。从上述两个表格可以看出,Code-Llama整体上优于Llama-2,尤其是在领域外数据集上。MAmmoTH和MAmmoTH-Coder之间的差距甚至可达到5%

消融研究在数据源上的探索

他们通过进行研究来探索性能增益的来源。为了更好地理解MAmmoTH相对于已有的基准模型的优势来源,研究者进行了一系列对照实验,结果如图2所示

通过MAmmoT,让LLM成为数学通才:从形式逻辑进阶到四则运算

总结起来,MAmmoTH 的显著性能优势可以归功于:1) 涵盖不同的数学领域和复杂程度的多样化数据源,2) CoT 和 PoT 指令微调的混合策略。

他们也研究了主要子集的影响。对于用于训练 MAmmoTH 的 MathInstruct 的多样化来源,理解各个来源对模型整体性能的贡献程度也很重要。他们关注的重点是四个主要子集:GSM8K、MATH、 Camel 和 AQuA。他们进行了一项实验:逐渐将每个数据集添加到训练中,并将性能与在整个 MathInstruct 上微调的模型进行比较。

通过MAmmoT,让LLM成为数学通才:从形式逻辑进阶到四则运算

根据表5的结果可以看出,如果训练数据集的多样性不足(例如只有GSM8K时),模型的泛化能力非常差:模型只能适应数据分布内的情况,难以解决GSM问题之外的问题

多样化数据源对MAmmoTH的重要影响在这些结果中得到了凸显,这也是使MAmmoTH成为数学通才的核心关键。这些结果还提供了宝贵的见解,对于我们未来的数据整理和收集工作提供了指导,例如我们应该始终收集多样化的数据,避免只收集特定类型的数据

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

4302

2026.01.21

页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

500

2023.08.14

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2918

2024.08.16

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

25

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

43

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

174

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

50

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

92

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

102

2026.03.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
【web前端】Node.js快速入门
【web前端】Node.js快速入门

共16课时 | 2.1万人学习

swoole进程树解析
swoole进程树解析

共4课时 | 0.2万人学习

ThinkPHP6.x 微实战--十天技能课堂
ThinkPHP6.x 微实战--十天技能课堂

共26课时 | 1.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号