Nature | 大型语言模型(LLM)能够发现和产生新知识吗?

news2025/2/9 3:38:29

大型语言模型(LLM)是基于大量数据进行预训练的超大型深度学习模型。底层转换器是一组神经网络,这些神经网络由具有自注意力功能的编码器和解码器组成。编码器和解码器从一系列文本中提取含义,并理解其中的单词和短语之间的关系。通过此过程,转换器可学会理解基本的语法、语言和知识。

借助转换器神经网络架构,人们可以使用非常大规模的模型,其中通常具有数千亿个参数。这种大规模模型可以摄取通常来自互联网的大量数据,但也可以从包含 500 多亿个网页的 Common Crawl 和拥有约 5700 万个页面的 Wikipedia 等来源摄取数据。

一般来讲,LLM主要是在已有的知识库上进行学习,然后通过阅读、理解、写作和编码来帮助人们解决问题。但是,一个根本性的问题是,LLM能发现并产生全新的知识吗?

最近,来自 Google DeepMind 的研究团队提出了一种为数学和计算机科学问题搜索解决方案的新方法 ——FunSearch。FunSearch 的工作原理是将预训练的 LLM(以计算机代码的形式提供创造性解决方案)与自动「评估器」配对,以防止产生幻觉和错误思路。通过在这两个组件之间来回迭代,最初的解决方案演变成了「新的知识」。相关论文发表在最近一期的《Nature》杂志上。

这项工作是首次利用 LLM 在科学或数学的挑战性开放问题方面取得新发现。

FunSearch 发现了 cap set 问题的全新解决方案,这是数学中一个长期存在的开放问题。此外,为了展示 FunSearch 的实际用途,DeepMind 还用它来发现更有效的算法来解决「装箱」问题,该问题应用广泛,比如可以用于提高数据中心的效率。

研究团队认为 FunSearch 将成为一个特别强大的科学工具,因为它输出的程序揭示了其解决方案是如何构建的,而不仅仅是解决方案是什么。这将会激发科学家的进一步见解,从而形成科学改进与发现的良性循环。

A. 找到NP-hard问题更优解法

DeepMind具体展示了两类问题,它们都属于NP-hard问题。在学界看来,没有而且可能永远也不会有一种算法能在所有情况下都在多项式时间内找到NP-hard问题的精确解。面对这样的问题,研究者通常会寻找近似解或适用于特定情况的有效算法。

A1. Cap set问题

具体到FunSearch,它解决的第一类NP-hard问题是Cap set问题,是上限集问题的一种,它的描述是这样的:

"在一个n维空间中的每个维度上都有等距的n个点(共n^n个,比如3维就是3*3*3),从中找出尽可能多的点构成一个集合,要求集合中任选3个点均不共线,这样的集合中最多有多少个点?"

如果看上去有些难以理解,不妨再了解一下Cap set问题的前身——上世纪70年代遗传学家Marsha Falco发明的一套卡牌游戏。

这套卡牌游戏中一共有81张牌,每张牌中都有1至3个颜色图案,同一张牌中的图案颜色、形状和阴影完都全相同。

这套牌一共有3种颜色、3种形状和3种阴影,加上图案数量的不同,一共有3*3*3*3=81张,玩家需要翻开一些纸牌,找到3张牌的特殊组合。

如果把这种“特殊组合”的具体方式用离散几何形式进行表达,就得到了Cap set问题。Cap set问题同样诞生于70年代,由牛津大学数学家Ron Graham提出,而第一个重要结果直到90年代才出现。

2007年,陶哲轩在一篇博客文章中曾提到,这是他最喜欢的开放式数学问题。

在FunSearch出现之前,Cap set问题最重大的突破是美国数学家Jordan Ellenberg和荷兰数学家Dion Gijswijt于2016年提出的。

通过多项式方法,Ellenberg和Gijswijt将n>6时(n≤6时可精确找到最大集合)此类问题解的上确界缩小到了2.756^n。同样在n>6时,下确界的较新数字则是2.218^n,由布里斯托大学博士生Fred Tyrrell在2022年提出。但这个下确界仅仅存在于理论上——当n=8时,人类能构建出的最大集合中只有496个点,而按照Tyrrell的结论,点的数量应不少于585.7个。

FunSearch则将集合规模扩大到了512个点——虽然和理论值依旧存在差距,但仍被视为20年来在此问题上最重大的突破。同时,Cap set集合大小的下确界也被FunSearch提高到了2.2202^n。

A2. 在线装箱问题

第二类是在线装箱问题:

假设有一组容量为C的标准集装箱和n个物品序列(物品大小不超过C),这些物品按一定顺序到达。“在线”是指操作者无法事先看到所有的物品,但必须在物品到达时立刻决定将物品装入哪个集装箱。最终的目标,是使所用集装箱数量尽可能小。

在线装箱问题引起广泛研究是从上世纪70年代开始的,最早更是可以追溯到1831年高斯所研究的布局问题。经过近200年的研究,仍然没有成熟的理论和有效的数值计算方法。

传统上常用的贪心算法包括First Fit和Best Fit两种:

  • First Fit是指将每个物品放入第一个能容纳它的箱子中。
  • Best Fit则是将每个物品放入能容纳它的且箱子中剩余空间最小的箱子。


而FunSearch则提出了新的算法,该算法在OR和Weibull两个测试数据集中,所用集装箱的数量均大幅下降。特别是在当测试集物品数目达到10万时,FunSearch找到的方案,消耗集装箱数量只比理论下界多出了0.03%。

B. 通过语言模型的进化推动发现

FunSearch 采用由 LLM 支持的进化方法,鼓励并推动得分最高的思路想法。这些想法被表达成计算机程序,以便它们可以自动运行和评估。

首先,用户需要以代码的形式编写问题的描述。该描述包括评估程序的过程和用于初始化程序池的种子程序。

FunSearch 是一个迭代过程,在每次迭代中,系统都会从当前的程序池中选择一些程序,并将其馈送到 LLM。LLM 创造性地在此基础上进行构建,生成新的程序,并自动进行评估。最好的程序将被添加回现有程序库中,从而创建一个自我改进的循环。FunSearch 使用 Google 的 PaLM 2,但对其他接受过代码训练的方法兼容。

图一:LLM 会从程序数据库中检索出生成的最佳程序,并被要求生成一个更好的程序。

众所周知,在不同领域发现新的数学知识和算法是一项艰巨的任务,很大程度上超出了当前最先进人工智能系统的能力。为了让 FunSearch 做到这一点,该研究引入了多个关键组件。FunSearch 不是从头开始,而是从关于问题的常识开始一个进化过程,让 FunSearch 专注于寻找最关键的想法以获得新的发现。

此外,FunSearch 的进化过程使用一种策略来提高想法的多样性,以避免出现停滞情况。最后,为了提高系统效率,进化过程是并行运行的。

C. 在数学领域开辟新天地

DeepMind 表示,他们首先要解决的是 Cap set 问题,这是一个开放性难题,几十年来一直困扰着多个研究领域的数学家。知名数学家陶哲轩曾把它描述为自己最喜欢的开放性问题。DeepMind 选择与威斯康星大学麦迪逊分校的数学教授 Jordan Ellenberg 合作,他是 Cap set 问题的重要突破者。

这个问题包括在一个高维网格中找到最大的点集(称为 cap set),其中没有三个点位于一条直线上。这个问题之所以重要,是因为它可以作为极值组合学中其他问题的模型。极值组合学研究的是数字、图或其他对象的集合可能有多大或多小。暴力破解方法无法解决这个问题 —— 要考虑的可能性数量很快就会超过宇宙中原子的数量。

FunSearch 以程序形式生成的解决方案在某些情况下发现了有史以来最大的 cap set。这代表了过去 20 年中 cap set 规模的最大增长。此外,FunSearch 的性能超过了最先进的计算求解器,因为这个问题的规模远远超出了它们目前的能力。

这些结果表明,FunSearch 技术可以让人类超越困难组合问题的既定结果,而在这些问题上很难建立直觉。DeepMind 期望这种方法能够在组合学中类似理论问题的新发现中发挥作用,并在未来为通信理论等领域带来新的可能性。

图二:交互式图表显示了从种子程序(上)到新的高分函数(下)的演变。每个圆圈都代表一个程序,其大小与分配给它的分数成正比。图中仅显示底部程序的上级。FunSearch 为每个节点生成的相应函数如右侧所示。

D. FunSearch 偏好简洁、可由人类理解的程序

尽管发现新的数学知识本身意义重大,但与传统的计算机搜索技术相比,FunSearch 方法还展现出了其他的优势。这是因为,FunSearch 并不是一个只会生成问题解决方案的黑箱。相反,它生成的程序会描述出这些解决方案是如何得出的。这种「show-your-working」通常是科学家的工作方式,他们通过阐述产生新发现或新现象的过程来解释这些发现或现象。

FunSearch 更倾向于寻找高度紧凑的程序所代表的解决方案,即具有较低 Kolmogorov 复杂度的解决方案(Kolmogorov 复杂度是输出解的最短计算机程序的长度)。简短的程序可以描述非常大的对象,从而使 FunSearch 能够扩展到非常复杂的问题。此外,这也让研究人员更容易理解 FunSearch 的程序输出。Ellenberg 说:「FunSearch 为制定攻击策略提供了一种全新的机制。FunSearch 生成的解决方案在概念上要比单纯的数字列表丰富得多。当我研究它们时,我学到了一些东西。」

更重要的是,FunSearch 程序的这种可解释性可以为研究人员提供可操作的见解。例如,DeepMind 在使用 FunSearch 的过程中注意到,它的一些高分输出的代码中存在耐人寻味的对称性。这让 DeepMind 对问题有了新的认识,他们利用这种认识改进了引入 FunSearch 的问题,从而找到了更好的解决方案。DeepMind 认为,这是人类与 FunSearch 在数学领域的许多问题上进行合作的典范。

图三:左:通过检查 FunSearch 生成的代码,DeepMind 获得了更多可操作的见解(高亮部分)。右:使用(更短的)左图程序构造的原始「可接受」集合。

E. 解决一个众所周知的计算难题

在理论 cap set 问题取得成功的鼓舞下,DeepMind 决定将 FunSearch 应用于计算机科学中一个重要的实际挑战 —— 装箱问题(bin packing),以探索它的灵活性。装箱问题关注的是如何将不同尺寸的物品打包到最少数量的箱子中。它是许多现实世界问题的核心,从装载物品的集装箱到数据中心的计算工作分配,这些场景都需要最大限度地降低成本。

在线装箱问题通常使用基于人类经验的算法规则(启发式)来解决。但是,要为每种特定情况(大小、时间或容量各不相同)找到一套规则是非常具有挑战性的。尽管与 cap set 问题非常不同,但为这个问题设置 FunSearch 很容易。FunSearch 提供了一个自动定制的程序(适应数据的具体情况),优于现有的启发式方法 —— 可以使用更少的箱子来打包相同数量的物品。

像在线装箱这样的复杂组合问题可以使用其他人工智能方法来解决,比如神经网络和强化学习。这些方法也被证明是有效的,但也可能需要大量的资源来部署。另一方面,FunSearch 输出的代码易于检查和部署,这意味着它的解决方案有可能被应用到各种现实工业系统中,从而迅速带来效益。

图四:使用现有启发式 ——Best-fit 启发式(左)和 FunSearch 发现的启发式(右)进行装箱的示例。

F. 总结

整体上看,FunSearch的工作流程是一个迭代过程,核心是搜索能解决问题的程序,而不是问题答案本身。搜索,正是DeepMind自AlphaGo以来一直坚持探索的路线。作者之一、谷歌DeepMind研究副总裁Pushmeet Kohli表示:训练数据中不会有这个方案,它之前甚至根本不为人类所知。

FunSearch也表明,如果我们限制好LLM的幻觉,不仅可以用来产生新的数学发现,还可以提出解决实际世界问题的创新解决方案。此外FunSearch预示了未来LLM驱动的方法将在科学和工业领域广泛应用,主助理于解决紧迫的科学和工程挑战。

FunSearch 证明,如果能防止 LLM 产生幻觉,那么这些模型的力量不仅可以用来产生新的数学发现,还可以用来揭示重要现实问题的潜在解决方案。

DeepMind 认为,对于科学和工业领域的许多问题 —— 无论是长期存在的问题还是新问题 —— 使用 LLM 驱动的方法生成有效和量身定制的算法将成为普遍做法。

其实,这仅仅是一个开始。随着 LLM 不断取得进展,FunSearch 也将不断完善。DeepMind 表示,他们还将努力扩展其功能,以应对社会上各种紧迫的科学和工程挑战。

FunSearch之所以强大是因为它输出的不仅仅是解决方案,它还能展示解决方案是怎么来的。这就像是给你看一个解谜过程,让你明白答案是怎么得出的。它喜欢找那些既简洁又能搞定复杂问题的方案。

FunSearch找到的答案不只是一串数字那么简单,它还能给科学家们提供新的视角。比如通过描述理解程序是如何工作的,科学家们可能会发现问题中的新模式,这可以激发科学家使用FunSearch进行进一步的洞察,推动改进、发现的良性循环。

参考文献


(1) https://www.nature.com/articles/s41586-023-06924-6

(2) https://deepmind.google/discover/blog/funsearch-making-new-discoveries-in-mathematical-sciences-using-large-language-models/

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

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

相关文章

如何使用 pnpm 实现前端 Monorepo项目管理

前言 随着软件开发项目变得越来越庞大和复杂,如何有效管理和维护代码库成为了一个重要的问题。一种流行的解决方案是 Monorepo,也就是在一个版本控制系统中管理所有的项目代码。 什么是 Monorepo Monorepo 是一种项目代码管理方式,指单个仓…

智能优化算法应用:基于斑马算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于斑马算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于斑马算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.斑马算法4.实验参数设定5.算法结果6.参考文献7.MA…

【SpringCloud笔记】(10)消息总线之Bus

Bus 前言 戳我了解Config 学习Config中我们遇到了一个问题: 当我们修改了GitHub上配置文件内容,微服务需要配置动态刷新并且需要手动向客户端发送post请求刷新微服务之后才能获取到GitHub修改过后的内容 假如有多个微服务客户端3355/3366/3377…等等…

List那些坑

很多文章都介绍过这些坑,本文做个记录,并提供解决方案。 1.Arrays.asList的坑 1.1现象 情况1:通过Arrays.asList方法生成的List数据不支持添加操作 使用Arrays.asList方法生成的List数据,不能对其进行删除或者添加操作。代码示例…

【机器学习】Boosting算法-梯度提升算法(Gradient Boosting)

一、原理 梯度提升算法是一种集成学习方法,它可以将多个弱分类器或回归器组合成一个强分类器或回归器,提高预测性能。梯度提升算法的核心思想是利用损失函数的负梯度作为残差的近似值,然后用一个基学习器拟合这个残差,再将其加到之…

【NI-RIO入门】计算和测量cRIO系统的功耗

计算 您可以根据cRIO机箱的最大功耗、机箱和模块的平均功耗,最后通过经验测试cRIO和模块的功耗来计算散热量。每一种散热计算的精确度都逐渐上升,但安全系数也逐渐下降。 注意:请记住,热量输出以英国热量单位 (BTU…

如何学习VBA_3.2.10:人机对话的实现

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的劳动效率,而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册,现在已经全部完成,希望大家利用、学习。 如果…

【LeetCode刷题笔记】动态规划(四)

背包问题 0-1 背包问题 有一个背包,它的容量为 C现在有 n 种不同的物品,他们的编号分别是 0...n-1。每一种物品只有一个。在这 n 种物品中,第 i 个物品的重量是 w[i],它的价值为 v[i]问题是:可以向这个背包中放哪些物品,使得在不超过背包容量的基础上,背包中物品的总价…

Python 数据分析 Matplotlib篇 增加注释【plt.text() plt.annotate()】(第3讲)

Python 数据分析 Matplotlib篇 增加注释【plt.text() & plt.annotate()】(第3讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔…

FPGA-ZYNQ-7000 SoC在嵌入式系统中的优势

FPGA-ZYNQ-7000 SoC在嵌入式系统中的优势 本章节主要参考书籍《Xilinx Zynq-7000 嵌入式系统设计与实现 基于ARM Cortex-A9双核处理器和Vivado的设计方法 (何宾,张艳辉编著)》 本章节主要讲述FPGA-ZYNQ-7000 SoC在嵌入式系统中的优势,学习笔…

String 的特点是什么?它有哪些重要的方法?

几乎所有的 Java 面试都是以 String 开始的,如果第一个问题没有回答好,则会给面试官留下非常不好的第一印象,而糟糕的第一印象则会直接影响到自己的面试结果,就好像刚破壳的小鹅一样,会把第一眼看到的动物当成自己的母…

移动开发新的风口?Harmony4.0鸿蒙应用开发基础+实践案例

前段时间鸿蒙4.0引发了很多讨论,不少业内人士认为,鸿蒙将与iOS、安卓鼎足而三了。 事实上,从如今手机操作系统竞赛中不难看出,安卓与iOS的形态、功能逐渐趋同化,两大系统互相取长补短,综合性能等差距越来越…

【PySpark】Python 中进行大规模数据处理和分析

一、前言介绍 二、基础准备 三、数据输入 四、数据计算 五、数据输出 六、分布式集群运行 一、前言介绍 Spark概述 Apache Spark 是一个开源的大数据处理框架,提供了高效、通用、分布式的大规模数据处理能力。Spark 的主要特点包括: 速度快&#xff1…

【教程】从gitee或者github,下载单个文件或文件夹命令

1.打开git 2.初始化 git init 3.设置允许下载子目录 (不需要修改任何,只要原样复制,需要按照个人状况修改的话我会标注) git config core.sparseCheckout true 4. 选择要下载的单个文件夹的路径 这里单引号内部需要修改&…

C语言学习day10:while语句

while语句属于循环结构&#xff1b; while语句运行图&#xff1a; while语句表达式&#xff1a; while (表达式) {} 代码&#xff1a; int main() {//while (表达式) {//}int i 0;//死循环while (i < 10){printf("%d\n",i);i;}system("pause");ret…

[Python进阶] 操作注册表:winreg

5.22 操作注册表&#xff1a;winreg 5.22.1 注册表概念 在Windows系统中&#xff0c;注册表本质上就是一个数据库&#xff0c;其中存放着硬件、软件、用户、操作系统以及程序相关设置信息。我们除了使用Windows系统自带的regedit程序&#xff0c;也可以通过Python编程读取并操…

3分钟了解安全数据交换系统有什么用!

企业为了保护核心数据安全&#xff0c;都会采取一些措施&#xff0c;比如做网络隔离划分&#xff0c;分成了不同的安全级别网络&#xff0c;或者安全域&#xff0c;接下来就是需要建设跨网络、跨安全域的安全数据交换系统&#xff0c;将安全保障与数据交换功能有机整合在一起&a…

RK3588平台开发系列讲解(AI 篇)RKNN-Toolkit2 模型的加载转换

文章目录 一、Caffe 模型加载接口二、TensorFlow 模型加载接口三、TensorFlowLite 模型加载接口四、ONNX 模型加载五、DarkNet 模型加载接口六、PyTorch 模型加载接口沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 RKNN-Toolkit2 目前支持 Caffe、TensorFlow、Tensor…

Navicat误删除生产环境SQLServer2012单表数据后恢复单表数据

背景&#xff1a; 1-后端更新功能部署到客户生产环境时误将测试环境数据保留&#xff0c;项目负责人发现后告知后端。 2-后端登录客户生产数据库使用navicat删除一张表的单表数据时多删了几条数据&#xff0c;判断弄乱了客户生产环境下自己产生的单表数据。 思路&#xff…

DML语言(重点)———update

格式&#xff1a;update 要修改的对象 set 原来的值新值 -- 修改学员名字,带了简介 代码案例&#xff1a; -- 修改学员名字,带了简介 UPDATE student SET name清宸 WHERE id 1; -- 不指定条件情况下&#xff0c;会改动所有表&#xff01; 代码案例…