训练验证器解决数学应用题

人工智能咨询培训老师叶梓 转载标明出处

数学问题解决不仅要求模型能够理解问题的语言表述,还要求其能够准确地执行一系列数学运算,每一步的准确性都至关重要。遗憾的是,现有的语言模型在这一领域的性能远远未能达到人类的水平,它们在解题过程中常常出现灾难性的错误,即便在经过专门的微调之后也难以避免。

由此OpenAI的研究团队提出了一项新的研究,旨在通过训练验证器来解决这一难题。这项研究的核心是GSM8K数据集,它包含了8.5K个高质量的、语言多样化的小学数学应用题。通过这一数据集,研究团队不仅诊断了当前模型在数学推理任务上的不足,还探索了一种新的方法来显著提升模型在这些任务上的性能。

GSM8K数据集

GSM8K数据集由8500个高质量的小学数学问题组成,这些问题由人工出题者编写而成。这些题目被划分为7500个用于训练的问题和1000个用于测试的问题。解决这些问题需要2到8个步骤,解决方案主要涉及执行一系列基本的算术运算(加、减、乘、除)以得出最终答案。一个聪明的中学生应该能够解决这些问题。

在构建GSM8K数据集时,遵循了以下设计原则:

  1. 高质量:避免采用容易出错的网络抓取程序,而是依赖人工工作者来创建问题。在进行基于工作者答案一致性的广泛质量控制之后,估计少于2%的问题包含破坏性错误。

  2. 高多样性:力求在问题之间保持高度的多样性。积极避免设计那些来自相同语言模板或只在表面细节上有所不同的问题,这是许多其他数据集中普遍存在的问题。通过使每个问题都相对独特,保留的测试性能成为一个更相关的指标。

  3. 适度难度:选择的问题分布对于大型最先进的语言模型来说具有挑战性,但并非完全无法解决。GSM8K有助于更好地理解不同模型和方法在这一难度范围内的数据扩展趋势。这些问题不需要超出初级代数水平的概念,而且绝大多数问题可以在不明确定义变量的情况下解决。

  4. 自然语言解决方案:收集的解决方案以自然语言而非纯数学表达式的形式呈现。认为这是最普遍有用的数据格式,并期望这将揭示大型语言模型内部独白的特性。指导问题编写者尽可能多地解释他们的工作,但也允许他们以自己多样化的语言风格编写解决方案。

图1为GSM8K数据集中的三个示例问题,其中计算注释用红色标出。 

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

评论留言“参加”或扫描微信备注“参加”,即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory。关注享粉丝福利,限时免费录播讲解。

两种解决方法

在解决GSM8K问题集的过程中,采用了两种主要方法:微调和验证。微调方法作为基线,使用了与GPT-3生成预训练相同的语言建模目标。测试阶段的性能通过自回归采样一个低温解决方案并检查最终答案是否正确来评估。与此相对,验证方法包括采样多个高温解决方案,为每个解决方案分配一个分数,并输出最高排名的解决方案。验证器被训练用来评判解决方案的正确性,其训练信号仅由解决方案是否达到正确的最终答案决定。

微调过程中,通过更新模型参数来最小化所有训练令牌上的交叉熵损失。测试性能是通过每个测试问题的一个低温(T=0)样本来确定的。175B模型显著优于较小的模型。假设一个对数线性趋势,可以简单地外推这些结果来估计,需要一个有10^16个参数的模型才能达到80%的解决率,当使用完整的GSM8K训练集时。然而,由于性能似乎并不遵循对数线性趋势,因此很难沿着数据维度进行外推。看起来175B模型要达到80%的解决率,至少需要两个数量级以上的训练数据。

图3展示了在完整的GSM8K训练集上微调一个6B模型后,测试解决率随着训练epoch的变化。使用test@N来表示当允许模型为每个问题做出N次独立的猜测时,至少有一次正确解决的问题的百分比。使用低温(T=0)生成test@1样本,使用更高的温度(T=0.7)生成test@100样本。两个温度值都是通过实验选择的,以产生最佳结果。Test@1性能大致呈单调改善,尽管很快就开始在测试损失上过拟合。不幸的是,随着epoch数量的增加,test@100性能的下降比test@1性能要尖锐得多。这是意料之中的:随着模型反复遇到相同的数据,它在预测中变得越来越未校准和过于自信。在测试时,这种过度自信导致解决方案空间的覆盖不良,这种效应只有在考虑测试时的多个样本时才变得明显。选择一个具有良好的覆盖范围的模型对于成功训练验证器至关重要。从实验中看到,test@100性能在最初的几个epoch内达到峰值。因此,使用训练了2个epoch的模型来生成用于训练验证器的样本。

验证方法旨在提高微调基线的性能,通过训练验证器来评判模型生成的解决方案的正确性,并在测试时针对这些验证器进行搜索。给定问题和候选解决方案,验证器输出解决方案正确的概率。训练解决方案被标记为正确或错误,仅基于它们是否达到了正确的最终答案。在实践中,一些解决方案可能会使用有缺陷的推理达到正确的最终答案,导致误报。

图4展示了验证器的训练流程。首先,对训练集进行2个epoch的微调(“生成器”)。然后,对每个训练问题从生成器中采样100个完成情况,并标记每个解决方案的正确或错误。最后,在该数据集上训练一个验证器一个epoch。对生成器进行2个epoch的训练足以让其在这一领域学习基本技能。选择不进行更长时间的训练,因为生成的解决方案的多样性在这一点之后开始崩溃,如图3所示。训练单独的生成器和验证器模型以限制生成器的训练并防止过拟合,但在原则上,可以将这些模型结合起来。除非另有说明,否则对生成器和验证器使用相同的模型大小。除了预测解决方案的正确性外,还训练验证器具有与生成器相同的语言建模目标。这为验证器提供了一个有价值的辅助目标。在测试时,对每个测试问题采样100个完成情况,用验证器对它们进行排名,然后返回验证器得分最高的那一个。

图5显示了使用6B和175B模型大小的微调和验证之间的比较。验证考虑了每个问题100个解决方案。在3次运行中显示了平均值和标准差,除了175B验证只显示了一次运行。

值得注意的是,175B验证器比6B验证器更早地“起飞”,需要较少的训练问题就能超过微调基线。在图6a中,比较了在每个令牌后进行预测的验证器与仅在最终令牌后进行预测的验证器。尽管在每个令牌上预测价值函数比仅评判完整完成更具挑战性和噪声性,但尽管训练初期较慢,但token-level验证器最终优于solution-level验证器。此外,token-level验证器在训练后期仍在改善,而solution-level验证器很快显示出过拟合的迹象。假设完整的价值函数提供了一个有用的辅助信号,鼓励模型在整个解决方案中评判推理,而不仅仅是记忆正确的最终答案。

在图6b中,对训练验证器时使用的目标进行了消融研究。选择在验证目标旁边包含一个语言建模目标。比较了使用两个目标与仅使用验证目标。尽管两种选择都是合理的,但包含语言建模目标是一个严格的改进。这在直觉上是有意义的:更好地理解这种语言分布只会帮助验证器区分样本。

在图6c中,分别消融了生成器和验证器的模型大小。发现使用大生成器和小验证器比使用小生成器和大验证器的性能要好得多。即使验证器比生成器小得多,验证仍然非常有效。这表明验证器可能经常依赖相对粗糙的启发式方法来区分来自给定生成器的解决方案,而不是尝试更彻底的验证形式。

额外实验

额外实验中,研究集中在测试时的计算和正则化的效果上。

测试时的计算:在测试阶段,可以选择生成任意数量的解决方案供验证器评判,然后选择排名最高的完成情况。图7a展示了6B验证器的性能如何随着每个测试问题的完成数量而变化。在这个规模上,当将完成数量增加到400个时,性能会提高。超过这一点后,性能开始下降,这表明搜索的好处最终被找到欺骗验证器的对抗性解决方案的风险所抵消。通常情况下,评估验证器的测试性能使用100个完成情况,因为这在相对适中的计算成本下捕获了验证的大部分好处。

为了进一步提高性能,可以对验证器排名最高的解决方案进行多数投票,而不是只选择单一的顶级解决方案。投票过程只考虑单个解决方案所达到的最终答案:所选的最终答案是得票最多的那一个。图7b展示了当允许更多的顶级样本进行投票时,性能如何变化。当开始时有更多的样本,可以允许更多的样本进行投票。当只有100个样本时,允许前3-5个样本进行投票是最优的。当有3200个样本时,大约最优的做法是允许前30个样本进行投票。

正则化: 在微调和验证中使用dropout作为正则化手段,可以显著提高性能。研究中在网络的每个层的残差路径上应用了残差dropout(Vaswani et al., 2017)。在所有的dropout实验中,使用了20%的dropout比例,这一比例是根据超参数扫描的结果选择的。值得注意的是,GPT-3模型并不是用dropout进行预训练的。因此,在涉及dropout的实验中,先进行额外的预训练以引入dropout,然后再进行微调。这减轻了模型在微调过程中所经历的分布变化。

首先,研究了dropout对不同训练集大小的微调的影响。图8a显示,与基线相比,dropout带来了显著的改进。接下来,研究了dropout对验证器的影响,考虑了解决方案级和令牌级两种变体。在图8b中,可以看到dropout显著改善了解决方案级验证器,减轻了未正则化基线中出现的过拟合。值得注意的是,使用dropout的解决方案级验证器达到了与令牌级验证器类似的性能水平。在图8c中,对令牌级验证器应用了dropout。由于令牌级验证器本来就不易过拟合,因此dropout的影响不那么显著并不奇怪。尽管如此,使用dropout训练令牌级验证器仍然可以看到轻微的性能提升。注意,为了更好地处理更困难的目标和dropout带来的噪声,将令牌级验证器的批量大小增加了4倍。

论文链接:https://arxiv.org/pdf/2110.14168

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

[C#]使用onnxruntime部署yolov11-onnx实例分割模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 在C#中使用ONNX Runtime部署YOLOv11-ONNX实例分割模型,涉及到模型的加载、数据预处理、模型推理和后处理几个关键步骤。 首先,需要确保已经安装了ONNX Runtime的NuGe…

站岗放哨树形dp

前言&#xff1a;好久没有写树上dp了&#xff0c;这儿题目还是挺有意思的 题目地址 #include<bits/stdc.h> #include<iostream> using namespace std;//#define int long long int n; const int N (int)1e510; int e[N],ne[N],h[N],idx 0; int dp[2][N];void add…

FLUX1.1PRO震撼来袭:蓝莓揭开神秘面纱,4网站体验,6倍卓越速率和更高质量,竞技场角逐超越所有模型,Elo最高分

大家好我是安琪&#xff01;&#xff01;&#xff01; FLUX 1.1 PRO震撼来袭&#xff1a;蓝莓揭开神秘面纱&#xff0c;4网站体验&#xff0c;6倍卓越速率和更高质量&#xff0c;竞技场角逐超越所有模型&#xff0c;Elo最高分 在人工智能领域&#xff0c;图像生成与反推技术的…

登 Nature 子刊!论文一作详解蛋白质语言模型的小样本学习方法,解决湿实验数据匮乏难题

在「Meet AI4S」系列直播第三期中&#xff0c;我们有幸邀请到了上海交通大学自然科学研究院 & 上海国家应用数学中心博士后周子宜&#xff0c; 他所在的上海交通大学洪亮课题组研究方向主要为 AI 蛋白和药物设计、分子生物物理。该课题组研究成果颇丰&#xff0c;截止目前共…

Steamdeck SteamOs 安装单机版冒险岛079

Steamdeck SteamOs 安装单机版冒险岛079 复制资源到SteamDeck添加游戏到Steamdeck![请添加图片描述](https://i-blog.csdnimg.cn/direct/4e18b0e9b6a84a07851c7d75c452a048.png) 复制资源到SteamDeck 链接&#xff1a;https://pan.baidu.com/s/1CGCthOcfbYRS6y150HAuzw?pwdap…

Semantic Communications With AI Tasks——面向图像分类任务的语义传输系统

论文链接&#xff1a; 2109.14170 (arxiv.org)https://arxiv.org/pdf/2109.14170 1. 背景 无线网络从“万物互联”向“智能互联”转变的范式变化&#xff0c;这与香农和韦弗关于通信演变的预言相一致。传统的无线网络侧重于信号的准确传输&#xff08;技术层面&#xff09;&…

从0到1:企事业单位知识竞赛答题小程序迭代开发笔记一

背景调研 企事业单位知识竞赛答题小程序&#xff0c;在信息技术迅猛发展的时代&#xff0c;企业和事业单位在提升员工素质和知识水平方面面临着新的挑战。为了增强员工的学习积极性、提高团队凝聚力和整体素质&#xff0c;越来越多的单位开始组织知识竞赛活动。传统的知识竞赛…

【全球顶级域名后缀】

数据时间: 2024.10.6 广告: 五分钟申请SSL证书 (手机电脑都能用) ["aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","ac"…

GemFilter:基于早期层压缩加速长文本LLM推理

GemFilter 是一种用于加速长文本输入的 LLM 推理并降低内存消耗的新型 AI 方法&#xff0c;其利用 LLM 早期层识别关键信息的能力&#xff0c;从而显著压缩输入序列&#xff0c;并在保持性能的同时&#xff0c;实现高达 2.4 倍的加速和 30% 的内存使用减少。 论文介绍 大型语…

从代码到语言:CoreGen 助力自动化提交信息生成

1.概述 源代码与自然语言之间的语义鸿沟是生成高质量代码提交信息的一个重大挑战。代码提交信息对于开发者来说非常重要&#xff0c;因为它们简明扼要地描述了代码更改的高层次意图&#xff0c;帮助开发人员无需深入了解具体实现即可掌握软件的演变过程。手动编写高质量的提交信…

融资、投流、造血,大模型「新星」开启变现竞速

被称为“AI大模型应用元年”的2024年已过半&#xff0c;行业变化太快&#xff0c;充斥着各种声音。 原本漫长的技术发展周期&#xff0c;在大模型身上被装上了加速键。从卷参数、到卷应用&#xff0c;短短两年时间&#xff0c;玩家“百模大战”、资本烈火烹油&#xff0c;都在…

模型 SECI(知识的创造)

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。知识创造的螺旋转化模型。 1 SECI的应用 1.1 Tech Innovations移动应用创新 Tech Innovations是一家软件开发公司&#xff0c;致力于开发创新的移动应用程序。为了提升团队的知识共享和创新能力&…

论文选题没思路?用这7个GPT提示词10分钟确定论文选题

选题是论文写作的第一步&#xff0c;也是至关重要的一步。毕业论文选题都是让大学生头疼的大事。没有灵感、方向不清、信息太多&#xff0c;常常让人无从下手。现在有了ChatGPT这样的AI写作辅助工具&#xff0c;它可以帮你快速生成丰富的选题思路&#xff0c;轻松解决选题难题。…

fiddler抓包18-2_导出jmeter、postman脚本(带请求头)

课程大纲 1. Fiddler导出请求为curl脚本 选中请求&#xff0c;“文件” - “导出会话” - “选中的会话” - “cURL Script”。 2. 导入jmeter ① 复制curl脚本。 ② 打开jmeter&#xff0c;“工具” - “import from cURL”&#xff0c;粘贴脚本&#xff0c;勾选“Add cooki…

【百度文心智能体】想开发爆款智能体?来看看 万圣节之夜探秘者 智能体开发流程大揭秘

目录 前言 一. 创作灵感 二. 智能体中Prompt如何设计 2.1 头像 && 聊天背景 2.2 智能体简介 && 角色定位与目标 2.3 思考路径 && 个性化 2.4 开场白 && 自动追问 2.5 插件选择 三. 总结 前言 从2022年11月底ChatGPT …

Github优质项目推荐-第四期

文章目录 Github优质项目推荐 - 第四期一、【Umi-OCR】&#xff0c;26.1k stars - 文字识别工具二、【AFFiNE】&#xff0c;41k stars - 知识库平台三、【NocoBase】&#xff0c;12k stars - 无代码/低代码平台四、【neovim】&#xff0c;82.3k stars - 改良版VIM五、【generat…

构建llama.cpp并在linux上使用gpu

使用gpu构建llama.cpp 更多详情参见https://github.com/abetlen/llama-cpp-python&#xff0c;官网网站会随着版本迭代更新。 下载并进入llama.cpp 地址&#xff1a;https://github.com/ggerganov/llama.cpp 可以下载到本地再传到服务器上 git clone https://github.com/gg…

linux安装mysql显示公钥尚未安装 :mysql-community-libs-8.0.39-1.el7.x86_64.rpm 的公钥尚未安装

linux安装mysql显示公钥尚未安装 mysql-community-libs-8.0.39-1.el7.x86_64.rpm 的公钥尚未安装 如题&#xff0c;当执行 yum install -y mysql-community-server 报错 解决办法 命令行执行 yum install -y mysql-community-server --nogpgcheck 也就是在原来的命令后面…

【星汇极客】手把手教学STM32 HAL库+FreeRTOS之创建工程(0)

前言 本人是一名嵌入式学习者&#xff0c;在大学期间也参加了不少的竞赛并获奖&#xff0c;包括但不限于&#xff1a;江苏省电子设计竞赛省一、睿抗机器人国二、中国高校智能机器人国二、嵌入式设计竞赛国三、光电设计竞赛国三、节能减排竞赛国三。 后面会经常写一下博客&…

程序设计语言基础错题解析【软考】

目录 前言1.编译与解释2.编译器工作过程2.1编译过程概述2.2对语句的处理2.3源程序数据类型目的 3.中间代码4.正规式5.错误管理6.后缀表达式7.传值与传址7.1基础7.2实际计算 8.多种程序语言特点 前言 本文专门用来记录本人在做软考中有关程序设计语言基础的错题&#xff0c;我始…