谷歌、OpenAI学者谈AI:语言模型正在努力「攻克」数学

简介: 谷歌、OpenAI学者谈AI:语言模型正在努力「攻克」数学

作者:Dan Garisto

机器之心编译

编辑:陈萍

AI 到底擅不擅长数学,还得具体问题具体分析。


如果问计算机擅长什么,在所有的答案里,数学必须榜上有名。在经历了漫长的研究之后,顶尖学者们在研究计算机关于数学计算方面的发展,取得了令人惊讶的成绩。


就拿去年来说,来自加州大学伯克利分校、OpenAI 和 Google 的研究人员在语言模型方面取得了长足的进步,GPT-3、DALL·E 2 等被开发出来。然而,直到现在,语言模型还无法解决一些简单的、用语言描述的数学问题,例如「Alice 比 Bob 多五个球,Bob 在给 Charlie 四个球后有两个球。问 Alice 有几个球?」这对语言模型来说,想要给出正确答案,可能就有点「吃力」了。


「当我们说计算机非常擅长数学时,意思是它们非常擅长特定的、具体的事情,」来自谷歌的机器学习专家 Guy Gur-Ari 表示。计算机擅长算术是不假,但在特定的模式之外,计算机就无能为力了,简单的文字描述题都回答不了。


谷歌研究员 Ethan Dyer 曾经表示:做数学研究的人有一套僵化的推理系统,对于他们熟知的和不了解的内容,这两者之间有着明显的鸿沟。


解决文字问题或定量推理问题很棘手,因为不同于其他问题,这两者需要鲁棒性和严谨性。如果过程中的任何一步出现错误,将会导致错误的答案。DALL·E 在绘画方面令人印象深刻,尽管它生成的图像有时会很奇怪,可能遗漏人的手指、眼睛长得奇怪…… 这些我们都能接受,但是它在数学方面出现了错误,我们的容忍度就会非常小。来自 OpenAI 的机器学习专家 Vineet Kosaraju 也曾表达过这种想法,「我们对语言模型所犯的数学错误(比如将 10 误解为 1 和 0,而不是 10)容忍性还是比较小的。」


「我们研究数学仅仅是因为我们发现它独立且非常有趣,」OpenAI 机器学习专家 Karl Cobbe 说。


随着机器学习模型在更大的数据样本上训练而成,它们的鲁棒性更好、出错也更少。但扩大模型规模似乎只能通过定量推理进行。研究人员意识到,对于语言模型所犯的错误似乎需要更有针对性的方法来解决。


去年,加州大学伯克利分校和 OpenAI 的两个研究团队分别发布了数据集 MATH 和 GSM8K,这两个数据集包含几何、代数、初等数学等数千个数学问题。「我们想看看这是否是数据集的问题,」从事数学工作的 AI 安全中心研究员 Steven Basart 说。众所周知,语言模型不擅长单词问题,在这个问题上它们表现的有多糟糕,是否可以通过引入格式更好、更大的数据集来解决?


在 MATH 数据集上,顶级语言模型的准确率为 7%,而人类研究生的准确率为 40%,奥林匹克冠军的准确率为 90%。在 GSM8K 数据集上(小学级别的问题),模型达到了 20% 的准确率。实验中 OpenAI 使用了微调和验证这两种技术,结果表明模型可以看到很多自身错误的例子,这一发现很有价值。


当时,OpenAI 的模型需要在 100 倍以上的数据上进行训练,才能在 GSM8K 上达到 80% 的准确率。但在今年 6 月,谷歌发布了 Minerva,达到 78% 的准确率。这一结果超出了预期,研究者表示,比预想的时间来的更快。


论文地址:https://arxiv.org/pdf/2206.14858.pdf


Minerva 基于谷歌自研的 Pathways 语言模型 (PaLM),具有更多的数学数据集,包含 arXiv、 LaTeX 等数学格式。Minerva 还采用了其他策略,在思维链提示(chain-of-thought prompting)中,Minerva 将更大的问题分解成小块。此外,Minerva 还使用多数投票(majority voting),不是要求模型给出一个答案,而是要求它提出 100 种答案。在这些答案中,Minerva 选择最常见的一种答案。


这些新策略的收益是巨大的,Minerva 在 MATH 上的准确率高达 50%,在 GSM8K 以及 MMLU(包括化学和生物学在内的一组更通用的 STEM 问题)上的准确率接近 80%。当 Minerva 被要求重做稍微调整过的问题时,它的表现同样很好,这表明它的能力不仅仅是来自记忆。


Minerva 可能有奇怪、混乱的推理,但仍然得出正确的答案。尽管像 Minerva 这样的模型可能会得出与人类相同的答案,但它们所遵循的实际过程可能大不相同。


谷歌机器学习专家 Ethan Dyer 表示,「我认为存在这样一种观念,即数学相关人士有一些严格的推理系统,了解某事和不了解某事之间存在明显的区别。」但人们给出的答案不一致,会犯错误,也无法应用核心概念。在机器学习前沿中,边界是模糊的。


原文链接:https://spectrum.ieee.org/large-language-models-math

相关文章
|
机器学习/深度学习 人工智能 算法
AI技术如何提升视频画质
在现代科技的飞速发展下,人工智能(AI)技术已经成为人们生活中不可或缺的一部分。尤其是在视频处理领域,AI技术的作用愈发凸显。AI技术的出现不仅仅简化了视频处理的流程,而且提高了视频画质的表现力和感知度。 本文将讲述AI技术提升视频画质的基本特点与方法。
|
存储 Shell Linux
【Shell 命令集合 文档编辑】Linux 文本统计 wc命令使用指南
【Shell 命令集合 文档编辑】Linux 文本统计 wc命令使用指南
439 0
|
机器学习/深度学习 人工智能 编解码
CES亮点:AI赋能与产业创新 | DALL-E 3、SD等20+图像生成模型综述
随着科技飞速发展,CES(国际消费电子展)已然成为全球科技产业的风向标,每年的CES大会都是业界瞩目的盛事。回顾2024年CES大会,不难发现其亮点纷呈,其中以人工智能的深度赋能为最引人注目之处。AI技术的深入应用成为CES大会上的一大亮点,各大厂商纷纷展示了在AI领域的最新成果。
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之delete主键删除源表一条记录,目标表未删除数据问题如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
638 1
|
机器学习/深度学习 监控 API
合约量化/秒合约/永续合约对冲系统开发技术规则及源码示例
合约量化、秒合约、永续合约对冲系统的开发涉及策略编写、数据处理、交易执行、风险管理等关键技术。量化策略基于市场数据和机器学习,实现自动交易;秒合约强调高速交易和风险控制;永续合约通过资金费率机制平衡多空持仓。系统需具备高效的数据处理能力和实时监控功能,以确保交易的稳定性和安全性。
|
人工智能 自然语言处理 搜索推荐
chatgpt这么火,现在AI搜索引擎有哪些呢?
国外AI搜索引擎包括ChatGPT,擅长自然语言处理与内容生成;Google Bard,提供智能个性化搜索体验;Microsoft Bing集成GPT模型增强智能检索;Perplexity AI以简洁答案及文献引用著称;Neeva强调隐私保护与无广告服务。国内方面,天工AI支持多种功能如知识问答与代码编程;腾讯元宝基于混元模型助力内容创造与学习;360AI搜索以精准全面的信息搜索见长;秘塔AI专注提升写作质量和效率;开搜AI搜索提供个性化智能搜索服务。以上引擎均利用先进AI技术提升用户体验。更多详情参阅[AI搜索合集](zhangfeidezhu.com/?page_id=651)。
641 8
chatgpt这么火,现在AI搜索引擎有哪些呢?
|
机器学习/深度学习 存储 搜索推荐
NVIDIA Ampere 架构的结构化稀疏功能及其在搜索引擎中的应用
NVIDIA Ampere架构引入了结构化稀疏功能,显著加速了深度学习模型的推理过程。通过2:4的稀疏模式,即每4个相邻权重中有至少2个为0,实现了高效的内存访问和模型推理加速,同时保持了模型精度。腾讯机器学习平台部门利用这一特性,通过渐进式训练方法,实现了模型在搜索引擎中的高效部署与应用,如相关性预测、查询性能预测等场景,不仅提升了处理速度,还在某些情况下超过了原有模型的精度。此外,NVIDIA还提供了TensorRT和cuSPARSELt库,进一步增强了稀疏模型的推理效率。
341 0
 NVIDIA Ampere 架构的结构化稀疏功能及其在搜索引擎中的应用
|
JavaScript 开发工具 git
Vue 获得 vue.min.js 文件
Vue 获得 vue.min.js 文件
636 0
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
723 0
|
Java API
详细探究Java多线程的线程状态变化
Java多线程的线程状态主要有六种:新建(NEW)、可运行(RUNNABLE)、阻塞(BLOCKED)、等待(WAITING)、超时等待(TIMED_WAITING)和终止(TERMINATED)。线程创建后处于NEW状态,调用start()后进入RUNNABLE状态,表示准备好运行。当线程获得CPU资源,开始执行run()方法时,它处于运行状态。线程可以因等待锁或调用sleep()等方法进入BLOCKED或等待状态。线程完成任务或发生异常后,会进入TERMINATED状态。
21584 5

热门文章

最新文章