开源LLEMMA发布:超越未公开的顶尖模型,可直接应用于工具和定理证明

abeb6c8de4c45dcbda595b4c7c242d1a.jpeg

深度学习自然语言处理 原创
作者:Winnie

今天向大家介绍一个新的开源大语言模型——LLEMMA,这是一个专为数学研究而设计的前沿语言模型。

4d0e347f5d746d545243e1bf16469f56.png
LLEMMA解数学题的一个示例

LLEMMA的诞生源于在Proof-Pile-2数据集上对Code Llama模型的深度训练。这个数据集是一个科学论文、数学相关网页和数学代码的综合体。

过去虽然有数学专用的模型,但许多模型都有各种限制。例如,有的模型是封闭访问,这使得它们无法为更广泛的研究所用。有的则技术上稍显落后。

但LLEMMA的出现改变了这一局面。它不仅在MATH基准测试上创下了新高,甚至超越了某些还未对外公开的顶尖模型,如Minerva。更让人欣喜的是,LLEMMA无需额外的调整,即可直接应用于工具和定理证明。

让我们一起了解下这个模型背后的技术吧!

e3995fe68a826b3cf782dfcf4a7dc547.png

Paper: Llemma: An Open Language Model For Mathematics  
Link: https://arxiv.org/pdf/2310.10631.pdf
Code: https://github.com/EleutherAI/math-lm

->辅导界的小米带你冲刺ACL2024

数据集

LLEMMA是专为数学设计的大型语言模型,具有70亿和340亿参数。这一模型的训练方法是在Proof-Pile-2.2.1数据集上继续对Code Llama模型进行预训练。以下是关于该数据集的简要说明:

  1. Proof-Pile-2:这是一个包含550亿令牌的综合数据集,融合了科学论文、数学相关的网络内容和数学代码,其知识截止于2023年4月(不包括特定的Lean证明步骤子集)。

  2. 代码:为了适应数学家日益重视的计算工具,如数值模拟和计算代数系统,研究团队创建了名为AlgebraicStack的源代码数据集。这个数据集涉及17种编程语言,包括数值、符号和正式的数学内容,共计110亿令牌。

  3. 网络数据:研究团队利用了OpenWebMath数据集,这是一个精选的、与数学相关的高质量网络页面集合,总计150亿令牌。

  4. 科学论文:使用了名为RedPajama的ArXiv子集,其中包含290亿令牌。

  5. 通用自然语言和代码数据:作为训练数据的补充,研究团队还融合了一些通用领域的数据,并以Proof-Pile-2为主,还融合了Pile数据集和RedPajama的GitHub子集。

模型训练

模型初始化:所有模型都从Code Llama初始化,随后在Proof-Pile-2上接受更多的训练。

训练量

  • LLEMMA 7B:2000亿令牌的训练。

  • LLEMMA 34B:500亿令牌的训练。

5de085bf451fc7740954cddea1f2cd71.png

训练工具和硬件:使用GPT-NeoX库在256个A100 40GB GPU上进行训练。使用了各种先进技术如Tensor并行、ZeRO Stage 1分片优化器状态、Flash Attention 2等以提高效率和减少内存需求。

训练细节

  • LLEMMA 7B:经过42,000步训练,每个全局批次有400万令牌,上下文长度为4096令牌,占用A100大约23,000小时。学习率开始从1 × 10^(-4)渐温,然后逐渐减少。虽然计划是48,000步训练,但在42,000步时由于NaN损失中断了。

  • LLEMMA 34B:经过12,000步训练,每个全局批次有400万令牌,上下文长度为4096令牌,约占用47,000个A100小时。学习率从5 × 10^(-5)开始逐渐增加,然后逐渐减少。

  • RoPE调整:在训练LLEMMA 7B前,RoPE的基本周期从θ = 1,000,000减少到θ = 10,000,目的是为了在LLEMMA 7B上进行长上下文微调。而LLEMMA 34B维持了θ = 1,000,000的原始设置。

实验设置与评估结果

作者通过少样本评估对LLEMMA模型进行比较,并专注于没有进行微调的最新模型。具体来说,他们使用了使用思维链推理和多数投票,在MATH和GSM8k等基准上进行了评估。

评估范围

  1. 数学问题求解:测试模型在思维链推理和多数投票的数学问题上的表现。

  2. 少样本工具使用和正式定理证明:研究模型在这些方面的表现。

  3. 记忆和数据混合的影响:分析这些因素如何影响模型的表现。

使用CoT解决数学任务

评估数据集和任务

  1. MATH:一个来自高中数学竞赛的问题集,模型必须生成一个LATEX的解决方案,且其答案需要与参考答案匹配。

  2. GSM8k:包含中学数学问题的数据集。

  3. OCWCourses:从MIT的开放课程Ware提取的STEM问题。

  4. MMLU-STEM:MMLU基准中的18个子集,涵盖57个主题。

  5. SAT:包含2023年5月的SAT考试中不包含图形的数学问题的数据集。

作者与以下模型进行了比较:

  1. Minerva:这个模型在技术内容的数据集上继续预训练了PaLM语言模型。

  2. Code Llama:LLEMMA继续预训练的初始化模型。

  3. Llama 2:Code Llama在代码上继续预训练的初始化模型。

对于开源的模型,作者使用他们的评估套件来报告分数,该套件是Language Model Evaluation Harness的一个分支。对于Minerva模型,作者报告了Lewkowycz等人在2022年文章中的基准分数。

LLEMMA在Proof-Pile-2上的继续预训练提高了五个数学基准测试的少样本性能。LLEMMA 34B在GSM8k上比Code Llama提高了20个百分点,在MATH上提高了13个百分点;LLEMMA 7B的表现超过了专有的Minerva模型。到目前为止,LLEMMA在所有开放权重语言模型上均表现最佳。因此,可以得出结论,Proof-Pile-2上的继续预训练对于提高预训练模型的数学问题解决能力是有效的。

5bf51303c4c30b9595d9988b0f5ac706.png 3c1e6d960ccf0f6b8bb40368e94e72f0.png

此外,LLEMMA是在与数学相关的多样化数据上预训练的,而不是为特定任务进行调优。因此,预期LLEMMA可以通过任务特定的微调和少样本提示适应许多其他任务。

调用计算工具解决数学任务

这些任务涉及在有计算工具的情况下解决问题,主要评估了以下内容:

  • MATH+Python:模型被提示以自然语言交替描述解决方案的步骤,然后使用代码执行该步骤。最后的答案是一个可以执行为数字类型或SymPy对象的程序。我们的少样本提示包括使用内置数字操作、math模块和SymPy的示例。

  • GSM8k+Python:通过编写一个执行为整数答案的Python程序来解决GSM8k单词问题。我们使用了Gao等人(2023)的提示。

如下表所示,LLEMMA在两个任务上都优于Code Llama。它在MATH和GSM8k上使用工具的性能也高于它在没有工具的这些数据集上的性能。

a2e86b612f5a954f32dcc468a7e2c08d.png

形式化数学(数学证明)

交互式证明助手,例如Lean和Isabelle,使用特殊的编程语言来帮助验证数学证明。但是,与常见的编程语言相比,这些特殊语言的数据非常少。

LLEMMA模型经过进一步的预训练,以处理与这些证明相关的任务。在给定问题、非正式证明和正式声明后,LLEMMA可以生成Isabelle代码的正式证明。此外,模型还可以根据证明助手给出的状态,生成证明的下一个步骤。

eba3b492722ede6fd8eb3c4b76fca0a5.png

LLEMMA在Proof-Pile-2的预训练包括从Lean和Isabelle提取的正式数学数据,总计超过15亿个标记。作者对LLEMMA在两个任务上的少样本性能进行了评估:

  • 非正式到正式的证明:根据非正式的说明,为数学问题生成正式的证明。

  • 正式到正式的证明:在已知的证明步骤中,为下一个步骤生成代码。

结果显示,LLEMMA在Proof-Pile-2上的继续预训练提高了两个正式定理证明任务的少样本性能。

aa57d8906ee82381d2cc8a568b920835.png

数据混合

在训练语言模型时,经常会根据混合权重提高训练数据中高质量子集的样本频率。作者通过在多个手动选择的混合权重上进行短期训练,然后选择在高质量保留文本上(使用MATH训练集)最小化困惑度的权重。通过这种方法,确定了训练LLEMMA的最佳数据混合比例为2:4:1。

数据重叠和记忆

作者检查了测试问题或解决方案是否出现在语料库中。通过查找与测试序列中任何30-gram相匹配的文档确定匹配程度。作者发现大约7%的MATH测试问题陈述和0.6%的解决方案在语料库中有匹配。

在随机抽取的100个匹配中,作者详细检查了测试问题与OpenWebMath文档之间的关系。其中,41个案例没有解决方案,49个提供了与MATH基准解决方案不同但答案相同的解决方案,9个答案错误或缺失,而只有1个与基准解决方案相同。

作者进一步探索了语料库中的问题如何影响模型的性能。当将LLEMMA-34b应用于具有30-gram匹配的测试示例和没有30-gram匹配的测试示例时,模型在难题上的准确率仍然较低,例如在具有匹配的Level 5问题上的准确率为6.08%,而在没有匹配的问题上的准确率为6.39%。

a1977b30fbef5341c46966f49f941079.png

作者发现,30-gram匹配与各个难度级别的准确性之间没有明确的关系。这意味着测试示例和训练文档之间的重要匹配,并不意味着模型生成了一个记忆中的正确答案。

此外,作者还检查了LLEMMA在MATH生成中与OpenWebMath之间的30-gram匹配,发现了13个匹配,这些匹配发生在模型生成了一系列常见的数字序列时,例如斐波那契数列,以及一次多项式因式分解的情况。这些观察结果值得进一步研究。

结语

在这篇研究中,研究团队成功地推出了LLEMMA和Proof-Pile-2,这是专为数学语言建模设计的大语言模型和语料库。他们公开了模型、数据集和相关代码。

研究揭示,LLEMMA在开放权重模型的数学问题解决标准测试上的表现尤为出众,它不仅能通过Python代码娴熟地调用外部工具,还在定理证明中展示了少样本策略预测的高效实用性。此外,该团队深入探讨了模型在解决数学问题时的卓越性能。

LLEMMA的出现,为我们展现了数学与人工智能融合的新前景。随着LLEMMA和Proof-Pile-2的应用,期望在未来更能深化对语言模型的泛化能力、数据集结构的认知,探索将语言模型作为数学助手的可能性,并不断提升其处理数学问题的能力。


备注:昵称-学校/公司-方向/会议(eg.ACL),进入技术/投稿群

9dd844eb1f382ef15f02ede9a3a7a799.png

id:DLNLPer,记得备注呦

522a42dbd98cf7f0d4ae89ee9a6bac01.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/115017.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TCP流套接字编程

文章目录 前言TCP 和 UDP 的特点对比TcpEchoServer 服务端实现1. 创建 ServerSocket 类实现通信双方建立连接2. 取出建立的连接实现双方通信3. 服务端业务逻辑实现关闭资源服务端整体代码 TcpEchoClient 客户端实现1. 创建出 Socket 对象来与服务端实现通信2. 实现客户端的主要…

OSI网络分层模型

OSI英文全文是Open System Interconnection Reference Model,翻译成中文就是开放式系统互联通信参考模型。 OSI模型分成了七层,部分层次与 TCP/IP 很像,从下到上分别是: 第一层:物理层,网络的物理形式&…

Mac安装nginx(Homebrew)

查看需要安装 nginx 的信息 brew info nginxDocroot 默认为 /usr/local/var/www 在 /opt/homebrew/etc/nginx/nginx.conf 配置文件中默认端口被配置为8080,从而使 nginx 运行时不需要加 sudo nginx将在 /opt/homebrew//etc/nginx/servers/ 目录中加载所有文件 …

10_集成学习方法:随机森林、Boosting

文章目录 1 集成学习(Ensemble Learning)1.1 集成学习1.2 Why need Ensemble Learning?1.3 Bagging方法 2 随机森林(Random Forest)2.1 随机森林的优点2.2 随机森林算法案例2.3 随机森林的思考(--->提升学习) 3 随机森林(RF&a…

解决pip安装包后但是Pycharm检测不到

首先要知道python找包的原理:原理 之后把一下代码打印一下: import sys print(sys.executable)# /usr/bin/python2 print(sys.path)# [/usr/lib/python2.7, /usr/lib/python2.7/dist-packages, /usr/local/lib/python2.7/dist-packages] print(sys.prefi…

CoDeSys系列-2、CoDeSys安装及Windows下创建项目测试

CoDeSys系列-2、CoDeSys安装及Windows下创建项目测试 文章目录 CoDeSys系列-2、CoDeSys安装及Windows下创建项目测试一、前言二、下载及安装三、Windows下软PLC项目创建及运行测试1、创建HMI工程1.1、新建标准工程:1.2、添加可视化对象:1.3、拖动添加拨码…

【C语言小游戏--猜数字】

文章目录 前言1.游戏描述2.代码实现2.1打印菜单2.2构建基础框架2.3玩游戏2.3.1生成随机数2.3.1.1rand()2.3.1.2srand()2.3.1.3time() 2.3.2game() 2.4自己设定猜的次数 3.完整代码 前言 猜数字小游戏是我们大多数人学习C语言时都会了解到的一个有趣的C语言小游戏,下…

Power BI 傻瓜入门 1. 数据分析术语:Power BI风格

本章内容包括: 了解Power BI可以处理的不同类型的数据了解您的商业智能工具选项熟悉Power BI术语 数据无处不在。从你醒来的那一刻到你睡觉的时候,某个系统会代表你收集数据。即使在你睡觉的时候,也会产生与你生活的某些方面相关的数据。如…

react封装一个简单的upload组件(待完善)

目录 react封装一个简单的upload组件component / uploadImg / uploadImg.jsx使用效果 react封装一个简单的upload组件 component / uploadImg / uploadImg.jsx import React, { useState } from react; import { LoadingOutlined, PlusOutlined } from ant-design/icons; imp…

基于SpringBoot的家具商城管理系统

基于SpringBoot的家具商城管理系统的设计与实现【文末源码】 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 家具详情 通知公告 登录界面 管理员界面 摘要 一段关于基于…

Vue3踩坑指南

vue.config.ts不起作用 关于项目 项目使用的还是vue-cli搭建的,底层还是webpack,没有使用新的vite搭建。 踩坑1:vue.config.ts不起作用 我本着既然是vue3 ts的项目,那么为了规范,项目中所有的js文件都得替换成ts文…

浅析人脸活体检测技术的功能及几种分类

在日常生活工作中,出现了人脸验证、人脸支付、人脸乘梯、人脸门禁等等常见的应用场景。这说明人脸识别技术已经在门禁安防、金融行业、教育医疗等领域被广泛地应用,人脸识别技术的高速发展与应用同时也出现不少质疑。其中之一就是人脸识别很容易被照片、…

03、Python 字符串高级用法

目录 Python 字符串高级用法转义字符字符串格式化序列相关的方法大小写相关的方法dir 可以查看某个类的所有方法删除空白查找、替换相关方法 Python 字符串高级用法 转义字符 字符串格式化 序列相关的方法 字符串本质就是由多个字符组成,字符串的本质就是不可变序…

为什么spring默认采用单例bean

概 述 熟悉 Spring开发的朋友都知道 Spring 提供了 5种 scope,分别是: singleton: 单例模式,当spring创建applicationContext容器的时候,spring会欲初始化所有的该作用域实例,加上lazy-init就可以避免预处理&#xf…

antd组件onChange回调,需要立即执行改变value与防抖节省接口开销。

文章目录 普通使用使用防抖节省开销页面功能复杂需要value受控回调需要部分代码立即执行,部分代码防抖延时执行useRefuseCallback 小结 普通使用 当我们使用Antd的input或者select进行搜索时,onChange回调会即时执行。 import { Input } from "an…

C语言之通讯录的实现篇优化版

目录 动态内存管理 通讯录声明 静态版本 动态版本 ​初始化通讯录 静态版本 动态版本 Add增加通讯录 静态版本 动态版本 Checkcapacity增容 DestroyContact释放动态空间 文件操作 SaveContact保存信息到文件中 初始化通讯录 旧版本 文件版本 LoadContact加载…

Openssl数据安全传输平台008:业务数据分析+工厂方法

文章目录 UML图1.1 客户端1.2 服务器端 UML图 1.1 客户端 // 准备要发送的数据 struct RequestMsg {//1 密钥协商 //2 密钥校验; // 3 密钥注销int cmdType; // 报文类型string clientId; // 客户端编号string serverId; // 服务器端编号string sign;string data; };1.2 服务器…

Unity之ShaderGraph如何实现UV抖动

前言 今天我们通过噪波图来实现一个UV抖动的效果。 如下图所示: 关键节点 Time:提供对着色器中各种时间参数的访问 UV:提供对网格顶点或片段的UV坐标的访问。可以使用通道下拉参数选择输出值的坐标通道。 SimpleNoise:根据…

Windows Server 2019 搭建FTP站点

目录 1.添加IIS及FTP服务角色 2.创建FTP账户(用户名和密码)和组 3.设置共享文件夹的权限 4.添加及设置FTP站点 5.配置FTP防火墙支持 6.配置安全组策略 7.客户端测试 踩过的坑说明: 1.添加IIS及FTP服务角色 a.选择【开始】→【服务器…

电流监测芯片SGM8199A2应用电路设计

SGM8199是一系列具有电压输出功能的双向电流监测芯片,用于监测共模电压范围内分流电阻上的压降,而不受电源电压的影响。该器件具有-0.1V至26V的宽共模电压范围输入。低偏移使得在监测电流时允许分流器上的满量程最大压降为10mV。SGM8199系列提供三种固定…