FunSearch:利用大语言模型在数学科学中实现新发现
FunSearch是一种新方法,旨在通过大语言模型(LLMs)在数学和计算机科学领域搜索新的解决方案。该方法将预训练的LLM与自动“评估器”配对,以防止幻觉和错误想法。通过在这两个组件之间迭代,初始解决方案“进化”为新知识。系统搜索以计算机代码形式编写的“函数”,因此得名FunSearch。
通过语言模型驱动发现
FunSearch使用由LLMs驱动的进化方法,促进和发展得分最高的想法。这些想法以计算机程序的形式表达,以便自动运行和评估。用户首先以代码形式编写问题描述,包括评估程序的程序和用于初始化程序池的种子程序。
FunSearch是一个迭代过程;在每次迭代中,系统从当前程序池中选择一些程序,输入到LLM中。LLM在此基础上创造性构建并生成新程序,自动评估后,最佳程序被添加回现有程序池,形成自我改进的循环。FunSearch使用某中心的PaLM 2,但与其他经过代码训练的LLMs兼容。
在数学领域取得新突破
FunSearch首先解决了cap set问题,这是一个开放挑战,困扰了数学多个研究领域数十年。该问题涉及在高维网格中找到最大的点集(称为cap set),其中没有三个点共线。FunSearch生成的解决方案(以程序形式)在某些设置中发现了有史以来最大的cap set,这是过去20年来cap set大小的最大增加。
偏好简洁且人类可解释的程序
FunSearch方法相比传统计算机搜索技术具有额外优势,因为它不仅生成问题解决方案,还生成描述如何得出这些解决方案的程序。这种“展示工作过程”的方式是科学家通常操作的方式,新发现或现象通过产生它们的过程来解释。
FunSearch倾向于找到由高度紧凑程序表示的解决方案——具有低Kolmogorov复杂度的解决方案。短程序可以描述非常大的对象,使FunSearch能够扩展到大型“大海捞针”问题。此外,这使得研究人员更容易理解FunSearch的程序输出。
解决计算中的难题
在理论cap set问题取得成功后,FunSearch被应用于计算机科学中的一个重要实际挑战——“bin packing”问题。该问题研究如何将不同大小的物品装入最少数量的箱子中,是许多现实世界问题的核心。FunSearch为这个问题提供了一个自动定制的程序(适应数据的特定情况),其性能优于已有的启发式方法——使用更少的箱子包装相同数量的物品。
增强人类在组合竞争编程中的表现
2024年12月,某机构发布了一份报告,展示了如何使用FunSearch方法增强人类在组合竞争编程中的表现。在组合竞赛中,问题高度复杂,目标不是找到正确答案,而是找到最佳近似解决方案。FunSearch可以产生优于顶级竞争对手的解决方案,并采用一种适合人类与AI协作的方法:人类程序员编写解决方案代码的“主干”,然后让LLM创造性演化指导函数。
科学及更广泛领域的LLM驱动发现
FunSearch证明,如果防范LLMs的幻觉,这些模型的力量不仅可以用于产生新的数学发现,还可以揭示对重要现实问题的潜在影响解决方案。预计对于科学和工业中的许多问题——长期存在或新出现的——使用LLM驱动方法生成有效和定制算法将成为常见做法。
FunSearch将随着LLMs的更广泛进步而自然改进,并将扩展其能力以解决各种社会紧迫的科学和工程挑战。