We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
cover of episode Google AlphaEvolve - Discovering new science (exclusive interview)

Google AlphaEvolve - Discovering new science (exclusive interview)

2025/5/14
logo of podcast Machine Learning Street Talk (MLST)

Machine Learning Street Talk (MLST)

AI Deep Dive Transcript
People
A
Alexander Novikov
M
Matej Balog
N
None
Topics
在计算机科学领域,矩阵乘法是一个基础问题,其优化具有重要意义。Alpha Evolve通过结合大型语言模型和进化算法,在矩阵乘法算法的发现上取得了突破,打破了56年的记录。这一成果展示了人工智能在科学发现中的潜力,并为实际应用带来了效率提升。 我感到非常兴奋的是,Alpha Evolve找到了一种使用48次乘法而不是49次的更快算法。这个发现证明了人工智能在解决复杂数学问题上的强大能力,也为未来的算法优化提供了新的方向。我们团队对这一结果进行了多次验证,确保其正确性,这进一步增强了我们对人工智能在科学探索中作用的信心。 Alpha Evolve的成功不仅在于算法的发现,更在于其在实际应用中的价值。通过优化Google数据中心的计算任务调度,Alpha Evolve能够持续恢复大量的计算资源,为Google节省了巨大的成本。此外,它还能够加速Gemini模型的训练,进一步提升了AI系统的性能。这些应用案例充分展示了Alpha Evolve在解决实际问题上的潜力。

Deep Dive

Shownotes Transcript

56年来,在任何领域设计一种少于49次乘法的算法都是一个开放性问题,直到今天。我们独家提前获得了刚刚发布一分钟的全新Google AlphaEvolve论文。我们在其他人之前对作者进行了技术访谈。这篇论文本身就是一个重磅炸弹,为许多算法和数学难题创造了世界纪录。

在计算机科学领域,很少有像矩阵乘法这样基础的问题。半个多世纪以来,这个领域的一个特定效率基准,特别是对于4x4矩阵,似乎难以逾越。最佳算法的搜索空间非常巨大,即使对于相对较小的矩阵,穷举搜索也几乎不可能。

1969年,Volker Strassen通过发现一种仅使用7次标量乘法即可将两个2x2矩阵相乘的算法,彻底改变了这一领域,低于标准的8次。对于更大的矩阵(如4x4矩阵),已建立的最佳实践是递归地应用Strassen的2x2方法。对于4x4矩阵,这意味着7x7,导致49次标量乘法。

今天,AlphaEvolve打破了这一纪录。Google DeepMind 长期以来一直致力于构建能够通过实验和迭代而非仅仅构建一个华丽的数据库来实际创造新知识的AI系统。

我们看到了AlphaGo,它击败了李世石,从人类游戏中学习,甚至通过自我博弈超越了冠军。AlphaZero纯粹是自我博弈。AlphaFold预测了数百万个从未通过实验测量过的3D蛋白质结构。AlphaDev发现了更快的排序算法。

Google DeepMind最近一直专注于科学发现,AlphaTensor将寻找更快矩阵乘法算法的问题定义为一个游戏,取得了突破。FunSearch更进一步,使用大型语言模型通过进化代码来寻找新的数学解法。

而现在AlphaEvolve代表了这一血统的下一阶段。对于通常情况下矩阵中包含任意数字的情况,仍然没有比使用49次乘法两次使用Strassen更好的方法。所以当我们在这种情况下使用AlphaEvolve时,我们真的非常兴奋。

我们实际上甚至不希望它能找到比49更好的东西,因为我们用AlphaTensor尝试了很长时间。我们只是为了完整性运行它,因为我们想要在论文中有一个表格,我们实际上尝试了所有大小到五或六,令人惊讶的是,它找到了一种更快的算法,它使用48次而不是49次乘法。

它有点像打了兴奋剂的游标。它迭代地改进算法,利用LLM的创造力,使用元学习、库学习、自动化评估和进化搜索。

AlphaEvolve论文将其描述为一种进化编码代理,它大大增强了预训练大型语言模型在困难任务上的能力。当然,他们的第一篇论文是FundSearch,非常非常相似。我认为主要区别在于它只是……

搜索单个函数,而不是AlphaEvolve,它基本上可以处理整个代码库。你只需在代码库中划分可适应区域,它就可以搜索这些区域。当然,它甚至可以优化代码库不同部分中这些函数之间的交互。正如Keith Duggar指出的那样,一个潜在的问题是计算机科学中的经典停机问题。但我还想和你 guys 讨论一下这里一个非常微妙的限制,那就是

运行程序本身,我们会面临问题,对吧?首先,你会面临停机问题。你开始运行一些代码,比如代码

编译正常或没有立即崩溃,它开始运行。但是,你知道,也许过了一段时间,比如一个小时,你会想,哎呀,这东西会终止吗?理论上,你当然是对的。你永远无法判断如果你运行一个算法更长时间它会做什么。但在实践中,在我们所研究的应用中,它实际上并没有成为任何问题。Alexander Novikov补充说,这一挑战也是人类研究的一个基本方面。

作为人类,你怎么知道你应该停止解决你的问题?或者也许你再花一个月的时间,然后你就能解决它,对吧?很难。我的意思是,当然,仍然存在局限性。他们并没有在我的停机问题上咬太多,你知道,局限性。所以在实践中,你知道,这对他们来说是可以的,但他们有这些非常精心挑选的问题,对吧?比如,矩阵乘法,你知道,如果它比Strassen算法慢,

你知道,也许你可以把它关掉。但问题是,这限制了你开放式搜索的能力,对吧?你现在不能走一条可能更慢的算法的路径,这条路径可能会让你到达一个跳板,让你跳到更有效的算法,对吧?这很有趣,不是吗?科学中的许多突破都是未知的未知。我们可能对什么是有趣的有所了解,但我们永远不知道在哪里找到答案。所以很多时候,我们通过纯粹的运气找到它们。

但我们至少可以朝着机械化和加速这一过程的方向迈出一小步。在矩阵乘法和几个其他科学问题中,这些问题有一个明确的评估函数,这种新的进化方法取得了人类研究几十年都无法取得的成就。我们只是为了完整性运行它,因为我们想要这个,你知道,我们实际拥有的论文中的这个表格,

我们尝试了所有大小到五或六。令人惊讶的是,它找到了一种更快的算法,它使用48次而不是49次乘法。是的,当我的一位队友在频道上发消息说,哦,我们似乎有这个结果时,我简直不敢相信。就像,让我们三遍检查一下。人工智能日益增长的生成全新的、可证明正确的算法的能力可以推进科学的前沿。

真正酷的事情是,AlphaEvolve已经被应用于优化谷歌内部的关键任务现实世界系统。他们能够加快谷歌内部已经高度优化的重要计算基础设施的运行速度。例如,以谷歌的大型数据中心为例。高效地调度计算作业是一个非常复杂的运算。如果做得不好,昂贵的服务器就会闲置。

谷歌工程师将候选解决方案放入AlphaEvolve,然后进化出一个更智能的启发式算法,该算法更有效地将作业分配给机器。

他们说,对谷歌集群的部署后测量证实了模拟器的结果,表明这个非常简单但有效的函数持续地平均恢复了谷歌集群范围计算资源的0.7%,否则这些资源将被闲置。现在,在谷歌的规模上,这是一个巨大的节省,对吧?

在另一个自我改进的例子中,它甚至找到了加速训练 AlphaEvolve 本身所依赖的 Gemini 模型的方法。我们找到了一种方法,可以将下一代 Gemini 的训练速度提高 1%,并且我们能够在 Borg 数据中心中释放资源。这个例子也很有趣,因为它不仅生成了解决方案,还生成了生成它们的程序。

每当你查看 for 循环中的索引时,你只需查看索引模块的四。当你索引到数组时,你正在索引位置 i、i 加 4 和 i 加 8,就像,好吧,发生了什么?仅仅通过检查代码,我们实际上能够开发出,你可以把它想象成一种数学洞察力或数学假设。而这个假设对于改进结果来说确实至关重要。

AlphaEvolve 的复杂性的一个关键方面在于其灵活的搜索问题表示方法。警报会向你提出各种各样的东西,有些是愚蠢的,有些是惊人的,有些是真的很奇怪。然后通过评估器,你可以过滤这些东西,并识别出真正重要和改进事物的东西。所以,与其尝试生成解决方案本身,AlphaEvolve 就像盗梦空间一样,可以生成生成解决方案的东西,这难道不是很酷吗?

我们应该在背景中播放一些盗梦空间的音乐。

我们发现 AlphaEvolve 真正有趣的是,它仍然非常依赖人类参与。人类识别出什么是有趣的,他们找到具有明确评估器的问题,他们将候选解决方案放入循环中,然后 AlphaEvolve 将遍历这个可能性锥体并在途中进行跳跃,然后循环继续。因此,这非常清晰地描绘了人工智能的未来,在这个未来中,人类和人工智能之间存在着强大的协作循环。

我们应该介绍一下你如何建模这种表示。所以你有这些不同的方法。你可以直接建模解决方案。你可以建模构造函数。所以,你知道,你实际上是在学习一个函数,它本身构建解决方案。你可以学习一个搜索算法,这就是你在矩阵乘法中所做的。你还谈到了协同进化作为一种可能性。

很多人都在谈论这种人工智能的愿景,这种人工智能可以自主驾驶汽车或做任何事情,在没有任何人类监督的情况下生成内容。老实说,这并没有真正实现。当然,互联网上的很多内容都是垃圾。

你还记得几年前互联网论坛上那个光明会海盗的死互联网理论吗?他说,到目前为止,互联网上的大部分内容都将由人工智能生成,并且它将具有一定的肤浅性。他是对的。但这并不一定意味着人工智能不好,对吧?缺少的是我们需要进行这种交流。我们需要将人工智能用作工具,我们需要指导它们并改进结果,并迭代地进行此过程。

这正是 AlphaEvolve 所做的。它使使用人工智能的正确方法机械化。使 AlphaEvolve 如此酷炫和强大的原因是这种人类和机器之间的来回互动,对吧?就像人类提出问题,系统会给你某种形式的答案,然后你改进你的直觉,改进你的问答能力,提问能力,对吧?你问更多的问题。我给了这个

这个演讲几次关于生成式人工智能,我给出的一个重要警告就是平庸的兴起。我们将被平庸淹没,最好的内容仍然将由最熟练的人员制作。所有将要发生的是,随着这种平庸的浪潮越来越大,人们对媒体的需求将越来越强烈。

对于精华,对于那些上升到顶峰的事物,对吧?所以我认为最终所有将要发生的是,熟练的人员,他们的生产力将上升,他们将继续与那些生产力也被提高的平庸人群区分开来。

所以,你知道,人群变得更有生产力,专家也变得更有生产力。总的来说,我们所有人都会变得更有生产力。当我们谈到用于离散程序综合和推理等的令人惊叹的创新架构时,你为什么不考虑申请在 Two for AI Labs 工作呢?如果你是一位机器学习研究科学家或机器学习工程师,那就更好了。

Benjamin Cruzier 正在运营这个实验室。它目前位于苏黎世,他们也在考虑在旧金山开设办事处。如果你有兴趣为他们工作,他们非常希望你与他们联系并申请。所以给 Benjamin 打个招呼。各位,欢迎来到 MLST。很荣幸能邀请你们两位来到这里。感谢你们的邀请。

所以我们有幸阅读了你们的 AlphaEvolve 论文。这真的非常令人兴奋,因为这非常符合我们的专业领域。我们喜欢程序综合,也喜欢进化方法。我的意思是,我们邀请过 Kenneth Stanley,并且,你知道,Jeff Klune。我在 NeurIPS 上和他谈过话。当然,他撰写了 Mappalites 论文,这篇论文影响了你们做的一些事情。但是,你知道,从一万英里之外,你能描述一下你们所做的工作吗?

所以我们正在展示一个编码代理,我们称之为 AlphaEvolve。这个代理能够做什么,它能够设计相当先进的算法。当我说先进时,我的意思是它能够在科学领域做出新发现的算法。在这篇论文中,我们在数学和计算机科学方面有很多例子。或者从实际方面来说,它们能够加快谷歌内部已经高度优化的重要计算基础设施的运行速度。

是的,我很想知道。我的意思是,是什么让你们走上了包含 EA 算法(进化算法)的道路?是什么让你们觉得,这是我们需要在混合系统中包含的一个组件,连同验证器和 LLM 等,才能让我们向前迈进一步?

是的,我认为如果你考虑科学发现的过程,那么这是一个非常自然的选择。你提到了,你与 Kenneth 谈过,像进化算法一样,在高层次上,它们会在探索过程中给你带来这种多样性,确保你不会在过程的早期就专注于某种特定方法,这种方法最终可能不是最佳的,但你会继续探索你拥有的各种可能性。

特别是当你试图解决非常困难的问题并做出新的科学发现时,事先无法知道哪种方法是正确的。因此,你需要确保你继续探索不同的可能性。进化算法只是一个非常适合此目的的良好技术工具。

而且,我认为玩起来也很有趣,对吧?例如,如果你想设置一个强化学习算法,这将需要你一些时间,我的意思是,取决于算法,我猜,但这将需要一些时间,对吧?使用进化算法,你可以立即做到,对吧?例如,你有 LLM API,你只需调用事物,尝试事物。这很有趣。

Alex,你能简单地概述一下架构吗?家里的许多人都会熟悉 FundSearch,例如,我猜这是它的一个演变,双关语。但是你能简单地概述一下整个过程是如何工作的吗?是的,当然。我的意思是,我应该假设人们知道还是应该从 FundSearch 的内容开始,FundSearch 的部分?

是的,让我们把这一部分保持得非常非常简单。我们将按照这种方式进行节目,我们将逐步披露复杂性。我们将有一个吸引人的开头,它将非常非常广泛,然后我们将逐步获得更多细节。但是,你知道,这一部分,只做超高层次的。整个过程是如何工作的?是的,有道理。我们还将展示论文中的图表以及你们提供的任何其他图表,以及动画和一些视觉辅助工具。太棒了。

是的,AlphaEvolve 的高层次架构是一种进化方法,你基本上将……所以我们只关注你有评估进度方法的问题,对吧?对于系统给你的任何给定建议,对于任何一段代码,你都可以自动测试它是否良好以及它有多好。

我认为,这可能是我们获得的结果的关键方面,拥有这个模拟器一方面将你带到你可以拥有它的问题集合中。但另一方面,这是一个相当广泛的问题范围。然后它会给你很多,对吧?例如,你可以快速迭代并获得反馈。并且……

特别给你的是,你将 LLM 的创造力与这个评估器进行了比较,对吧?所以 LLM 会向你提出某种广泛的东西,有些是愚蠢的。有些是惊人的。有些是真的很奇怪。然后通过评估器,你可以过滤这些东西,并识别出真正重要和改进事物的东西。

然后这种将 LLM 与评估器配对的方法被包装在一个进化管道中,该管道试图迭代地识别最有希望的代码片段,然后专注于改进这些代码片段并将它们暴露给 LLM。例如,这是你之前尝试过的内容。这个有效。这个无效。请尝试提出一个新事物。然后也许最后的成分是规模,对吧?例如,并行地进行这些事情。所以……

你提到需要评估器,它限制了问题的类别,但这里还有一个非常微妙的限制,我想和你 guys 讨论一下,那就是运行程序本身。我们会面临问题,对吧?你会面临停机问题,例如,代码编译正常。

编译正常或没有立即崩溃,它开始运行,但你知道,也许过了一段时间,比如一个小时,你会想,哎呀,这东西会终止吗?你知道,这会影响我的梯度吗?我不知道,所以也许我必须在消耗了一些资源后终止它,但如果我再等五分钟,我就会得到一个完美的算法,对吧?所以像这样的根本性问题,你如何

你现在如何处理它?你认为我们如何才能解决这样的问题?你对克服这个限制有什么设想?

所以理论上,你当然是对的。你永远无法判断如果你运行一个算法更长时间它会做什么。但在实践中,在我们所研究的应用中,它实际上并没有成为任何问题。我可以说的一件具体的事情是,你通常可以将问题框架成将时间约束构建到问题定义中的方式。所以假设你可以说,

我正在尝试解决数学中的这个开放性问题,我正在寻找能够在这个开放性问题上取得进展的搜索算法。但我想要一个能够在 10 分钟内取得进展的搜索算法。所以这是我的问题定义的一部分。然后,当我评估语言模型提出的建议时,我只运行它们 10 分钟。所以我只探索能够在 10 分钟内发生某些事情的算法空间。

当然,我可能会错过在运行更长时间时会做得更好的算法。所以这确实是你永远无法消除的一件主要事情。但在实践中,它实际上并没有成为我们的问题。我想这个问题也与一般研究中的根本问题有关,对吧?例如,作为人类,你怎么知道你应该停止解决你的问题?或者也许你再花一个月的时间,然后你就能解决它,对吧?很难。我不知道。

是的,这就像秘书问题。在采访这个领域的这么多人时,我着迷的一件事是,你知道,我们谈论多样性、保存、新颖性、偶然性、开放性、创造力。我们真的想设计能够突破限制、能够进行创造性跳跃的算法。我的意思是,Demis 谈到了创造力的阶梯,你拥有创造性的创造力。这就是我们真正需要的。据我目前对你们系统了解,它有点像游标的自动化版本,你有点像这些代码门,你把初始解决方案放在那里。所以有一些领域知识。有一个例子,我认为你们决定使用装箱算法来对硬件进行调度,你知道,在谷歌。我想问题是,

取决于起始解决方案,我们可以进行某种锥形的东西,跳跃。你能谈谈系统进行真正富有想象力的跳跃的任何例子吗?

是的。所以我可以谈谈这个。事实上,你确定了系统的一个有趣特征,那就是取决于你一开始告诉它什么,你可以指导这个过程。所以如果你给它相当具体的指示,或者你要求系统从特定类型的解决方案开始,那么它通常会做什么,它会挤出你给它的那个想法的精华,或者挤出那个初始解决方案的精华,看看它如何调整它并将其发挥到最大潜力。但是

有时这是正确的做法,也许当问题特别困难或具有一些特定特征时。但默认情况下,你会从一个非常非常空的解决方案开始。你给 AlphaEvolve 一个代码框架,其中所有函数几乎都是空的实现。你只需返回零或返回 false 等等。你只需让它完全发挥创造力。

所以它只需要依靠其对基础 LLM 的背景知识,它就可以向所有可能的方向探索。进化算法是有意义的,因为你保持多样性,你继续进行探索。

我可以谈到的一个特定例子是,我们将 AlphaEvolve 应用于发现矩阵乘法算法。我们通过要求它实际设计一种搜索算法,一种基于梯度的搜索算法,来反过来寻找矩阵乘法算法来做到这一点。这是一个有点元的事情,就像你在寻找一个寻找算法的算法,但是

在第一个算法中,搜索算法,我们从一个非常简单的代码框架开始,基本上什么也没有给它。我们只是告诉它使用梯度,基本上。然后它能够编写这些复杂的损失函数和更新函数,这些函数包含各种关于惩罚各种行为和以完全意想不到的方式引入随机性的技巧,这些技巧就像,好吧,哇,这是一种

也许人类可以编写这种代码,但他们是否真的会想到编写这特定的一段代码?至少对我来说,这是一个顿悟时刻,哇,这正在做一些类似人类的事情,但不是人类显然会尝试的事情。

也许关于这一点的另一个有趣的故事是,我认为我们没有将其添加到论文中,因为也许论文不是这种格式的正确格式,但是 Adam 和我们的团队做了一个很酷的实验,试图向系统提供来自人类的建议。然后他问了几个人,你知道,请你花两分钟考虑这个问题,请你花 30 分钟考虑这个问题,然后比较一下

写下笔记,然后将其提供给系统以指导它完成这个过程。然后他比较了结果。正如 Matej 所说,你可以看到它正在挤出这个想法的所有精华。所以就像保留了这个想法的本质,因为它引导 LLM 朝着这样的方向发展,但它会优化很多小事情。是的,在很多情况下,它将以智能的方式进行。在很多情况下,它将以某种方式进行,你知道,我会尝试很多事情,其中一个会成功。但是是的。

所以观看它很有趣。是的。所以目前,架构具有,让我们说也许有两个基础知识来源。它本身具有基础模型,对吧?这显然是压缩的,你知道,它所训练的所有语料库,包括大量的代码、算法、数值方法等等。然后它有你放在某种门控逻辑位中的起始程序等等。是的。

是否有空间进行几乎是中间地带的增强,例如,包含已知在其他问题中非常有效的模块或代码片段的辅助数据库,它可以以某种方式同时利用这些模块或代码片段?是的。关于这一点,我有几点要说明。一点是你提到系统中有两个知识来源。我认为,我可以说还有一个第三个来源,那就是系统可以决定增强

增强自身的知识。我的具体意思是,系统提出一个算法,然后该算法将在机器上执行,你将看到运行该算法的结果。所以在足够高的层次上,你可以认为系统可以决定,好吧,我想获得这部分知识。当你实际运行这个算法时,它会做什么?这是一个重要的组成部分。但也许更接近你问题的本质,确实,所以可能会有一个

一个单独的,例如,人类策划的有用模块的数据库或任何此类数据库。但更令人兴奋的是,这个数据库可以由系统本身策划。

所以这是一个我们正在为 AlphaEvolve 考虑的想法,但论文中已经实现并提到了一个相关想法,即不是构建一组通常有用的模块,而是一组倾向于效果良好的提示。论文中描述了这个名为元提示的想法,我们实际上要求我们的语言模型提出他们自己的提示。所以我们只是告诉他们,

我们正在尝试做什么,例如,我们正在尝试进行这种进化算法来改进这个特定问题。我们将用这个特定提示来提示你。但在我们这样做之前,请提出对这个提示本身的修改。然后我们策划一组对这个目的真正有效的提示。所以从精神上来说,这是一个类似的想法,尽管它是在策划提示而不是程序,但两者对我来说都是有意义的。

是的,我认为如果我理解 Keith 的方向,因为你刚才描述的一切都令人着迷。它是各种形式的元学习,基本上是为了创造多样性和差异化。但我感觉下一个万亿美元的业务可能是我们,你知道,像在程序学习中一样,对吧,我们想构建一个库。现在我们正在为特定目的扩展这个函数库。

但是如果库本身就是新的石油呢?你知道,如果我们学习的这些程序之间存在强大的鲁棒性,并且它们通过某种类比关系推广到其他程序和其他领域呢?我的意思是,如果我们只是拥有像新的语言模型范式实际上是一种程序数据库呢?我的意思是,你认为这可行吗?

是的,我认为这是一个很有趣的想法。我们或许也看到了一些初步的迹象。目前,我们的确是在深入研究的方向上进行的。我们只是专注于这个问题,并试图解决它。但即使在这个路径中,比如说当我们研究矩阵乘法时,我们发现当我们多次运行AlphaEvolve时,我们会发现略微不同的算法。

然后,这实际上是一种有用的技术,可以利用这些算法来初始化未来的实验。这有点像构建这个数据库的第一步,其中包含过去有用的东西,作为解决未来问题的灵感。是的,也许Alex还有更多想法。

也许我们感觉正在发生的是另一件类似的事情,不是我们存储,不是我们使用我们在所有实验中产生的程序数据库,而是

我们自己作为系统用户的直觉肯定在进化,我觉得这有点像咨询,就像我们与谷歌的许多团队合作,试图帮助他们使用AlphaEvolve运行事物一样,通过这个过程,我们获得了许多关于什么有效、什么无效、接下来应该尝试什么的知识,然后这些事情有点类似于你描述的,对吧

是的,我的意思是,我几乎可以想象AlphaEvolve拥有自己的代码库,无论是内部的还是可能足够好到可以放在GitHub上供我们使用。但它只会不断地发展,并为自己的代码库做出贡献,维护它并对其进行分类。人们可以去看看。我想知道AlphaEvolve是否已经想出了一个更好的搜索算法。去检查搜索区域,看看它那里是否有新的东西。

是的,从技术上讲,我看不到这方面的障碍。这也许是一个组织上的问题,即如何才能做到这一点。而现有的一个具体的技术部分是,我们现在已经在寻找能够在各种任务中都能很好地工作的程序。

现在,也许这个范围相当有限,因为我们关心的是有限的范围,但没有什么能阻止我们扩大它。所以具体来说,我们将寻找能够同时找到不同大小的矩阵乘法算法的搜索算法。所以有这种……

某种普遍性,但没有什么能阻止我们说,让我们寻找能够在更广泛的任务中都能很好地工作的搜索算法。这不仅仅是矩阵乘法,还包括其他搜索问题。

我们能否只关注矩阵乘法,因为这是这段视频的标题?我认为我们将从说有一个惊人的结果开始这段视频。56年前有位名叫Strassen的人,他取得了这个重大成果。现在AlphaEvolve刚刚击败了它。这里有很多东西需要探索。我的意思是,显然,请解释一下整个过程。但还有一些有趣的东西……

我们达到了,我认为,最大值,这就像复杂的二维矩阵乘法。你达到了六阶,即使那也有一点过头了。有一些有趣的特性,随着阶数的增加,它开始变得有点模糊,但它确实得到了改进。你能把整个故事讲一遍吗?也许我先从高层次的图景开始。所以

矩阵乘法,这就像一个非常基本的运算。我们中的一些人在高中就学习了这个运算。当你被教导在高中做这个运算时,有一种非常具体的方法。就像你,在每一步,你需要取一个矩阵的一行和另一个矩阵的一列。你计算这两个向量的点积。这会给你输出矩阵中的一个元素。

所以这是一个具体的算法,它是一种基本的矩阵乘法算法。对于输出矩阵中的每个元素,你需要进行一次点积运算。

很长一段时间以来,人们认为这是一种显而易见、唯一的方法来进行矩阵乘法。怎么可能会有更好的方法呢?然后你提到了1969年的Volker Strassen,这对数学界来说真是一个冲击。他写了一篇论文,说实际上有一种更快的方法。所以对于两个二阶矩阵的乘法,也就是最小的非平凡情况,

如果你用高中那种方法做,你需要进行八次乘法,因为输出矩阵中有四个元素。它是一个二阶矩阵。每个标量,就像每个内积需要两次乘法。所以四乘二是八。但是Strassen,他想出了一个巧妙的方法,只用七次乘法就能完成这个过程。

这是一种神奇的过程,你构建了第一个矩阵和第二个矩阵中的一些元素的组合,然后你将它们相乘。然后你能够以这样一种方式组合这七个乘积,你会得到这些神奇的抵消,结果是正确的。所以这是一个

1969年的一大惊喜,它开辟了这个全新的研究领域,比如,对于二阶矩阵,你实际上可以用七次而不是八次乘法,所以人们很快证明了七次对于那种小的情况实际上是最优的,但是对于三阶矩阵,你可以想,好吧,我的意思是,这太小了,人们一定已经弄清楚了最好的方法,但是我们仍然不知道,即使在今天

我们知道你需要至少19次乘法来做这个,乘以两个3x3矩阵,但是我们最好的算法是使用23次。所以在19和23之间存在差距,多年来人们一直无法弥合

原因是,即使矩阵非常小,可能的算法空间,你如何将它们相乘,也是完全巨大的。所以从计算的角度来看,根本没有希望彻底地做到这一点。所以即使对于3x3,它也是开放的,这太疯狂了。然后,好吧,对于3x3,最好的算法是使用23次。这至少比你在高中学习的算法要好,那将是27次。所以至少在改进方面取得了一些进展。

但是对于4x4,也就是下一个大小……

已知的最佳算法只是递归地应用Strassen算法两次。因为Strassen是针对2x2矩阵的,所以如果你有一个4x4矩阵,你可以将其视为2x2块的块矩阵,然后每个块本身就是一个2x2矩阵。所以你可以两次使用Strassen。因为Strassen需要7次乘法,如果你做两次,你将得到7x7,49次乘法。

所以对于,就像,是的,所以这是唯一已知的方法,以一种快速的方式乘以四阶矩阵,就像使用49次乘法两次使用Strassen一样。自1969年以来,情况一直如此。所以……

这也许就是我们的工作开始的地方。两年前,我们构建了AlphaTensor,这是一个专门用于发现矩阵乘法算法的强化学习代理。该代理实际上确实找到了更快的方法,但仅限于布尔矩阵。这是一种非常特殊的情况,你想要乘以每个元素都只是0或1的矩阵。当你进行乘法时,你将所有东西都模2。

所以对于这种情况,AlphaTensor找到了更快的方法。但除此之外,对于具有任意数字的普通矩阵的情况,仍然没有比两次使用Strassen使用49次乘法更好的方法。所以当我们在这种情况下使用AlphaEvolve时,我们非常兴奋

我们实际上甚至不希望它能找到比49更好的东西,因为我们用AlphaTensor尝试了这么久。我们只是为了完整性而运行它,因为我们想要在论文中有一个表格,我们实际上已经尝试了所有大小,直到五阶或六阶。令人惊讶的是,它找到了一种更快的算法,它使用48次而不是49次乘法。

所以这本身,就像,是的,当我的一位队友在频道上发消息说,哦,我们似乎有这个结果时,我简直不敢相信。就像,让我们仔细检查一下。但事实的确如此。它实际上有一个非常吸引人的特性,那就是,通常你考虑矩阵乘法。你想乘以元素是实数或可能是整数的矩阵。

乘以元素是复数的矩阵的情况可能不太常见。但是实矩阵只是复矩阵的一种特例。所以如果你找到一个可以乘以复矩阵的算法,你也可以将其应用于实矩阵。这只是一个泛化。所以这里很酷的是

假设你关心的是乘以实矩阵,例如,当你训练神经网络时,这是一种非常常见的情况。首先,你可能只是寻找一个使用实数的算法。但是你可以说,哦,实际上,如果我们寻找一个复数算法,你首先会认为,这是一个更困难的任务,因为该算法实际上不仅适用于实矩阵,也适用于复矩阵。

但是通过使任务更难,AlphaEvolve实际上能够找到一个使用复数的算法,因此它既适用于复矩阵也适用于实矩阵。这就是我们最兴奋获得的结果。但是正如你在问题中所问的那样,我们确实也将AlphaEvolve应用于其他矩阵大小。事实上,当你转向越来越大的情况,比如5x5、6x6时,问题会变得更

快得多。这是一种指数,指数中有一个二次方,因为张量,我们在可视化中有时会显示的立方体,它随着你相乘的矩阵的大小而二次增长。所以

对于4x4矩阵,你必须处理大小为16,16,16的张量。对于5x5矩阵,它是25,25,25。所以它非常快地爆炸。当然,当你上升时,在某些时候,你的方法将无法扩展到那里。但是我们展示的是alpha,它比alpha tensor扩展得更远。所以在扩展方向上有一些进展。

然后要澄清的一点是,在所有这些情况下,当然,我们查看矩阵乘法的小情况,2x2、3x3、4x4。但这并不意味着你只能将这些算法应用于这么小的矩阵。正如我已经用Strassen算法暗示的那样,你可以递归地应用它们。所以如果你有一个大的矩阵,你把它当作一个块矩阵,然后递归地应用这些针对较小矩阵的算法。

是的。我的意思是,这非常令人着迷,这是一个非常有趣的工作领域,几乎是神奇的,即使你到了三阶,它也变得,你知道,难以处理。我总是对数学中这样的情况着迷。就像,哦,我们可以对一维、二维和三维进行操作。但是当我们到达四维时,它完全不同了,你知道,它完全崩溃了。但是当你上升时,你也有AlphaEvolve的情况,它

它无法匹配当前的性能,实际上找到了更差的。它好像找到了更差的算法。那么你将这归因于什么?为什么呢?是的。

是的。所以在论文中我们展示的最大的情况下,六阶矩阵,有一个非常明确的原因,那就是我们试图应用AlphaEvolve而不赋予它关于问题的领域知识。我们只是想看看AlphaEvolve作为一个通用工具有多好。我们从头开始,我们没有告诉它任何专门开发矩阵乘法算法的技巧。

六阶矩阵乘法的最佳已知算法,它使用了一种非常具体的归纳偏差,这意味着它正在寻找具有特定对称性的算法,这意味着它只寻找算法中具有规律性的算法。如果你只寻找具有这种规律性的算法,那么搜索空间就会小得多。

所以在那个搜索空间中,你能够扩展到更大的规模。但是我们只是没有尝试将这种对称性纳入我们的搜索中。我们只是寻找形式不受限制的算法。我认为这至少对我来说,是我们没有在那种情况下匹配最佳已知解决方案的最明确的原因。是的。

是的,所以论文中最吸引我的一件事是,显然,我们对抽象和表示非常感兴趣。即使在你刚才给出的例子中,Strassen也被学习用作一种动态规划公式,所以被递归地使用。而且

我在想,这是否证明了深度抽象,或者是一种肤浅的一步抽象,其中Strassen的知识在其某种局部邻域中,并且它正在组合它?在理想情况下,我们希望算法做的是组合抽象的基础知识,所以知识尽可能地深入堆栈,以便增加我们的灵活性。而且……

我们应该介绍一下你如何建模这种表示。你采用了不同的方法。你可以直接对解决方案进行建模。你可以对构造函数进行建模。所以你实际上是在学习一个函数,它本身构建解决方案。你可以学习一个搜索算法,这就是你在矩阵乘法中所做的。你还谈到了协同进化作为一种可能性。

这令人震惊,因为在设计优化目标方面存在一些人为的设计和直觉。但是,在表示这些问题的方式以及它们之间如何相互关联方面存在这种模糊性。所以你能向我解释一下吗?是的。首先,我想坦率地说,我们自己并没有所有答案。我们有这个工具AlphaEvolve,我们看到,好吧,它就像通常一样,它就像,是的。

甚至不是关于AlphaEvolve的。所以我们有这个通用的工具,我们看到我们可以在这里和那里应用它。对于每个问题,都有不同的方法可以应用这个工具。但是首先,我们只有一些关于应用这个工具的正确抽象级别的直觉。正如你提到的,Tim,有时你能做的最好的事情是直接搜索解决方案。

有时你搜索一个简单的构造函数来构造解决方案。在这里,作为一个说明性的例子,假设你正在寻找一个解决方案,并且你认为它将非常有规律。也许它看起来像一个分形。这是一个典型的例子。然后你知道,要描述一个分形,你可以用一段非常短的代码来做到这一点。所以在这种情况下,寻找分形的描述是有意义的,而不是作为图形

像素网格,而是作为一段简短的函数,它只是生成该分形。但在其他应用程序中,也许解决方案非常不同,不太规律,也许你想要直接寻找解决方案,或者你想要寻找一个复杂的搜索算法来找到解决方案。有时你想要有一系列算法逐渐改进解决方案,这就是协同进化方法。而且

首先,根本不清楚哪一个在什么时候最有效。所以这绝对是未来工作类别中需要建立这种理解的东西。但是事情的一个积极方面是,AlphaEvolve很容易在所有不同的公式中设置。所以在实践中,你通常只是尝试不同的方法,看看什么最有效。

好吧,是的,我不敢相信你们没有所有答案。就像我一样,我不知道我现在为什么在这里,但是,说真的,Tim提到AlphaEvolve目前运行的这三种模式。对。这真的让我想起了数学家,因为,因为,你知道,数学家,

或者至少有三种主要的方法来进行证明,对吧?它们要么通过演绎、构造或枚举来完成。这些似乎与这三种方法非常相似。我觉得我可能错过了一些深层联系。我很想知道你们两位是否对此有任何想法。对这种深层联系有任何想法吗?当然,是的。这是一个有趣的观察。

是的,Mare,你想说什么吗?是的,所以一件事是,当你想到构造时,那就是AlphaEvo最明显适用的空间。我们在论文中展示的例子是,你有一些开放性问题,并且通过找到更好的构造来解决这些开放性问题。所以这就是你开箱即用的适用之处。

但是如果你考虑其他方法来解决其他类型的数学问题,比如说这个问题不是明显地关于构造的。比如说,你想证明不可能的结果,从某种意义上说,是下界,那么你可能会有两种方法可以采取。一种是

通常看起来不像构造的问题,如果以正确的方式构建它们,就会变成构造。例如,你对线性规划的原始和对偶有对偶定理,所以你经常可以切换你实际试图证明的一面,并将不是构造性问题的东西变成构造性问题。所以这是一个有点牵强的答案,但这是你经常可以做的事情。

更困难、更普遍的答案是,有时你实际上是在寻找证明而不是构造。现在证明是,你可以把证明也看作是一种算法,就像你需要执行的一系列步骤一样,来证明一个陈述。所以这仍然

仍然在算法发现的空间内,是我们可以考虑做的事情。但是有一个技术障碍,我们可能有一些初步的迹象可以克服,但这并不是我们在本文中已经做到的,那就是如果你正在寻找一个作为证明的算法,

那么证明最终要么正确要么不正确。所以奖励是二元的。就像0或1。目前,我们专注于你可以取得逐步进展的问题,比如可以逐渐提高分数,而不仅仅是一步从0切换到1,而是逐渐变得越来越好,直到你改进最佳构造。现在,通过

但是当然,即使作为人类,当我们写证明时,我们也会面临同样的问题,比如证明只有在真正完成时才是正确的。但是作为人类,当我们正在编写、研究证明时,我们会对,好吧,我们是否真的取得了一些进展?就像,我们是否真的对这个问题建立了一些理解?如果是这样,那么这似乎很可能成为最终证明的一部分。

所以我们一直在探索使用分数的可能性,这些分数不是硬分数,而是软分数。也许语言模型本身可以提供反馈。它看起来像我们已经朝着解决问题取得了进展吗?所以我们确实看到了解决这些二元问题的途径,比如说,寻找证明,但这并不是我们已经做到的。这只是我们认为可以解决的一种可能性。

将来用这种技术来做。是的,我的意思是,这篇论文中有很多令人惊讶的事情。我知道Tim和我想要问更多的问题,但我很好奇,你知道,你们每个人看到的都是,我的意思是,在你们完成这项工作并完成论文或研究之后,至少,你知道,什么最让你们感到惊讶?我先从Alex开始。你从这项工作中走出来,想,哇,我没想到会这样?

我认为它让我一直感到惊讶的是

就像你可以用这种系统取得多少进展一样。几年前当我们开始使用FundSearch时,你会去某个聊天机器人界面,对吧?你会要求它解决一个开放性问题,基本上什么也不给你,对吧?然后直到今天,你可以尝试同样的事情,好吧,花几分钟思考可能更有意义,它会给你很多合理的方法。但总的来说,这不是人们的体验,你要求聊天机器人为你解决一个开放性问题,它就会这样做,对吧?

然后令人惊讶的是,通过使用相同的工具,对吧?在某种迭代进化循环中使用相同的LLM,你可以从它们中获得更多的东西。是的。我认为每次我们解决新的问题时,从某种意义上说,这都非常令人兴奋和惊讶。Mate,最让你惊讶的是什么?我认为对我来说真正新颖的是这种方法的普遍性,我指的不仅仅是跨科学开放问题的普遍性,而是

根据我有限的研究生涯的经验,你构建了一些用于科学目的的工具,然后开箱即用,你可以做到这一点,将其应用于现实世界的挑战,并产生如此大的影响。通常需要进行大量的研究工作才能将科学技术转化为在现实世界中真正有用的东西。通常你必须应对许多挑战。

在这里,有一个工具,开箱即用,同时能够在数学和科学问题上取得新的发现。同时能够发现可以直接部署到谷歌关键计算堆栈中的算法。这肯定是我以前从未经历过的,老实说,我可能也没有预料到。

是的。我不知道你是否熟悉ARC挑战和Ryan Greenblatt这个人,他做了一个著名的方法,他只是对语言模型进行了30000次采样来生成程序。正如你在论文中所说,我们正处于一个非常有趣的空间,我们有一个评估器,这意味着我们可以避开幻觉。

对,所以这些金块存在于搜索空间中,这难道不令人着迷吗?当然,我们大多数人只是单次使用语言模型,对吧,只是进行贪婪采样,现在我们可以进行这些非常复杂的搜索程序,但是

我想到了,实际上也许像一个快速的小问题,你们所做的是将许多有趣的范例混合在一起。我们正在谈论元学习、进化、多样性保存、程序学习、库学习等等。但是

就像,你可以简单地解释一下,这与仅仅采样语言模型有什么不同,比如说你可以采样十亿次语言模型,你所拥有的AlphaEvolve与之相比属于不同的类别吗?是的

是的,当然。也许只是我对你说的话的一个个人观察。这确实是正确的思考方式。如果你只是反复在聊天窗口中询问语言模型,你就会对实际扩展事物的能力产生完全错误的想法。当我们开始研究这种进化方法时,最初我们就像

相当怀疑这将能够做什么,因为事实上,我们只是在聊天窗口中尝试,并要求它编写一些简单的算法,它最初做得并不好,当你在规模上扩展时,魔法就会真正发生

但是你可以通过不同的方式来扩展事物。一种是,你确实只是反复问同一个问题,好吧,当然会有一些金块,但它们将是金块。它们不会是完整的解决方案。所以找到那些好的金块,然后在随后的迭代中迭代地建立在它们之上,这真的很重要。这就是你通过这些进化算法获得的。

为了定量地说明,我们在论文的消融研究中确实进行了比较,我们试图摆脱进化。我的意思是,正如你可能预期的那样,这效果要差得多。是的。

我认为建立关于这一点的直觉的一个很好的测试案例是原始FontSearch论文中的CapChat示例。所以在那里,我们使用了一个非常简单的小型语言模型,我们甚至没有提供关于该问题的上下文,因为我们永远不会期望语言模型能够真正思考该问题并通过努力思考和非常聪明地解决它。我们希望从语言模型中获得的是只是尝试一些事情,很多事情。但问题是

最终的解决方案是这样的。它并不长。它可能只有大约50行Python代码,但是如果你甚至没有思考,如果你甚至不知道这个问题,你偶然发现它们是不太可能的,对吧?就像你只是在尝试Python的东西,你将如何生成能够工作的特定类型的50行Python程序?所以它就像完全被制裁的爬山一样。就像你必须逐渐改进,看看什么有效,并尝试在邻域中稍微修改它。

是的。你能多谈谈爬山吗?因为你已经找到了巧妙的方法将爬山融入到至少表面上看起来……

如此离散以至于爬山是不可能的。所以我很想知道你是否可以稍微扩展一下关于如何将离散问题(例如查看不同的程序,它们脆弱且是数字的)融入到该过程中的总体思路。是的,我想对于许多问题,你确实有一个自然的爬山奖励,例如

当我们使用这种基于梯度的方法来寻找矩阵乘法算法时,自然的奖励将是损失,对吧?就像,你离解决方案有多近。但是……

不幸的是,那并不一定有效。我们一次又一次地发现,你必须对你能想出的辅助奖励或辅助信号有一定的创造性。特别是对于矩阵修改的情况,对我们非常有用的是意识到,如果你有一套矩阵大小的课程,那么即使使用简单的基于梯度的方法,解决较小的矩阵也可能更容易一些。然后

你可以对解决的概率进行爬山,对吧?比如,假设你运行你的程序10次,然后看看你实际得到了多少次你想要的结果。

然后这可以成为你的信号。然后因为你有一个课程,你可以说,好吧,首先我想解决二乘二的问题。一旦我解决了这个问题,我就想通过尝试解决三乘三的问题来继续发展。所以在那个特定的例子中,这真的很有帮助。但总的来说,你只是尝试一些事情,并建立起关于如何着手提出这些辅助词的直觉。这是非常特定于问题的。是的。

也许只是为了补充一点正交的观点,那就是你经常试图解决一个特定的问题,然后也许它有一个相关的奖励,或者也许没有,但它仍然有用,也可以同时优化其他

其他事情。比如说,你想找到一个特定大小的矩阵乘法。你还想找到其他大小的算法,因为如果你这样做,就可以更广泛地探索算法空间。你经常可以将为一个矩阵大小开发的想法稍后转化为

你实际关心的矩阵大小。但是,如果你一开始只针对你关心的尺寸进行优化,那么这个想法最初可能并没有用。你首先必须为相关问题进一步开发和完善它。所以我想说的总体意思是,引入类似的其他任务并尝试改进它们通常是有意义的,即使你并不本质上关心它们。

我们能否谈谈程序综合的总体好处?我们最近采访了凯文·埃利斯。他是发明 DreamCoder 的人,一个很有魅力的人。他曾经在乔什·坦嫩鲍姆手下工作。他从认知科学的角度描述它,很多程序归纳都是关于解释的。是关于可理解性的。是关于可读性的。

当你谈到谷歌数据中心的作业调度时,有一个令人难以置信的例子。你遇到了这种匹配问题等等。我认为你说过,在之前的实验中,你使用了某种难以理解的强化学习模型。它不可调试。它不可理解。现在你得到了这三行漂亮的代码。但即便如此,问题仍然是……

它是可读的吗?你有没有发现一些不可读的东西?记住,AlphaGo 中有第 37 步,这是一个著名的发现例子,有点奇怪。也许我们不会发现它,但也许我们理解了它。也许我们可以围绕它建立理论。但是当你查看其中一些发现时,你是否发现了可以从这些发现中推导出的深刻的、抽象的原理?我的意思是,跟我说说这一切。

是的。实际上,你可以跨越广泛的范围。对于 Alpha Evolve,你有时会发现非常简单的算法,它们非常简单,以至于人类可以验证它们实际上对所有输入都是正确的。事实上,正如你提到的那样,它们非常简单,你几乎可以立即将它们提交到生产环境中,就像不需要进一步检查一样。这与尝试部署神经网络完全不同,你必须考虑诸如

重新训练它、托管它以及运行推理的资源等等。所以事实上,你可以处于这个非常简单的状态

对于科学发现,你也可以处于明确寻找可解释程序的状态。你可以通过设置你要求 Alpha Evolve 填充的框架来做到这一点,这样一来,你就可以设计出它应该相当简单。我们实际上,也许最明显的例子已经在 FunSearch 论文中,我们寻找这些大帽集,就像一个特定的数学对象,它找到了我们可以查看、检查的函数,并且

我们只是注意到,哦,这个函数以这种有趣的方式使用了数字 4,每当你查看 for 循环中的索引时,你只需查看索引的 4 模。当你索引到数组时,你正在索引位置 i、i+4 和 i+8,就像,好吧,发生了什么?仅仅通过检查代码,我们实际上能够开发出,你可以把它想象成一种数学洞察力或数学假设,

而这个假设对于改进结果至关重要。就像我们从代码中获得了这种洞察力,将其融入到下一次运行中,我们得到了更好的结果。所以确实会发生这种情况。但在某些应用中,你可能不太关心可解释性,然后 Alpha Evolve 可以开发出更

复杂的算法或算法序列,你可能不会全面了解这种复杂的搜索启发式是如何工作的,但你关心的是最终结果,而最终结果尽可能好。所以你可以跨越整个范围

也许 Alex 还会提到这项工作并非来自我们小组,而是另一个团队将 FunSearch 应用于认知科学,以准确发现可解释的行为程序。这实际上是一个非常酷的应用。是的,如果你可能回到矩阵身份验证示例,我们在那里构建了这个。

基于机器学习的管道,对吧?就像寻找那些算法一样。在那里,我认为如果你查看 Alpha Evolve 提出的代码更改,你会看到两种类型的更改,两种类型的可能对所经历更改的反应。一个是像

是的,这是有道理的,就像它一样,它通常是这种情况,就像机器学习一样,对吧,就像当你写的时候,当你阅读机器学习论文时,你会想,哦,是的,这是有道理的,对吧,这是一个好主意,我可能自己也会这样做,然后通常问题不是提出想法,而是想法有点便宜,问题是提出真正有效的想法,所以有很多事情是有道理的,然后只有大约五件事真正有效,所以

它给你一些你能够理解和关联的想法,但很难知道纯粹的,哪些想法实际上会奏效,对吧?然后你可能会看到其他类型的想法或代码更改,这些是你可能甚至不会尝试的东西,仅仅是因为它们过于复杂。有时这是有充分理由的,有时则没有。例如,对于矩阵乘法的情况,你会看到这种

所以我们在这里有这种量化损失,因为我们希望解决方案是整数或一些可能的分数,但指定范围,以便我们可以用精确的算术精确地验证它们是正确的。然后我们将有这种量化损失,这将使解决方案趋向于该整数集,例如。

然后,你知道,通常我们人类只会尝试,比如,我不知道,调整该量化项的权重。或者在最坏的情况下,就像权重的调度一样。也许你一开始会少一些,然后到最后会多一些。但 Alfred Wolf 所做的是产生一种完整的

随时间变化的量化损失形状,这又有点道理,对吧?你不会说它不会起作用,或者你不会,否则你不会看它,你不会说,哦,这太棒了,这肯定有效,但问题是,你甚至不会尝试它,因为它太复杂了,你甚至不会想到调整这样一个如此复杂的功能,它会随着迭代而改变形状

这太迷人了。绝对的,这有点像人类玩家能够从国际象棋中获得一些新的见解,你知道,从 AlphaZero 等等。你,Alex,你也提到了……

你对该技术的广泛应用感到多么惊讶。我知道你在机器人技术方面有一些先前的工作。我只是很好奇,对于更难以评估代码的情况,对于机器人来说,你可能能够在虚拟现实中进行一些训练,但最终,你必须,我不知道,把它扔到树林里看看它是否能够到达另一边等等。你如何看待弥合容易自动验证与更复杂的现实世界场景之间的差距,同时仍然能够应用 Alpha Evolve?是的,我在想也许一个有意义的方向,我看到人们正在这样做,就是尝试将模糊的奖励函数转换为代码。例如,也许你

有一个奖励函数,它由你想要达到的最终状态的图像定义,或者也许你想要一个奖励函数,它由你想要做什么的自然语言描述定义,然后你的任务是将其转换为实际评分的 Python 函数,也许让强化学习实际训练机器人并不难,因为你知道你可以要求视觉语言模型来验证它,但是

很难针对二元奖励进行训练。所以,就像我看到人们试图使用像 Alpha Evolve 这样的系统来找到一段 Python 代码,它将为某种形状提供辅助奖励,基本上就是形状奖励,对吧?就像为了让你朝着那个二元奖励前进,让学习更快。我认为这作为一个方向非常有意义。是的,我想知道,我不知道这是否回答了你的问题。

是的,我的意思是,它确实如此,但我也在考虑程序的效率。例如,你在论文中提到它生成的许多程序都会立即失败。他们,你知道,他们崩溃了。它们不是有效的程序。如果你有一个评估器,这些很容易过滤掉。然后在另一个极端,即使你已经获得了这些程序,比如说运行现实世界的程序,

测试用例包括进行实验和临床试验,或者机器人试图导航一个复杂的领域,最终可能会损坏等等。所以在某种自动验证和昂贵之间存在巨大的差距。我只是想知道我们如何,你知道,我们如何以某种合理的方式为像 Alpha Evolve 这样的系统弥合这一差距?很好奇,如果你对此有任何想法。

是的,我们正在考虑这些事情。我认为 Matej 之前提到的一个事情是证明,比如寻找证明,这是二元奖励,然后你可以尝试要求 LLM 提供反馈,以获得像你一样,某种形状奖励,以引导你走向解决方案。我认为这也是我们正在考虑的方向,因为事实上,在许多情况下,你确实有这种阶梯,你知道,越来越昂贵的评估。例如,如果……

如果你想做一些基于仿真的事情,也许是机器人技术,也许是一些生物学或物理学等等,对吧?你可以做一些基于仿真的奖励,然后你最终想在现实世界中尝试它,也许就像在机器人上尝试一样,也许你去实验室,无论如何。就像你不希望像这个进化阶梯的每个阶段一样,它越来越昂贵,你不想

不仅仅尝试你在前一阶段发现的所有有效的东西,但也许有一些优先级机制,它可以是长度回溯,可以是其他东西,可以是 ELO 分数。这些是我们正在考虑的事情。也许最近从谷歌发布的一个项目,在这个方面做得非常好,就是 CoScientists。他们基本上解决了同样的问题,对吧?就像你如何评分……

很难用硬反馈进行评估。我认为他们在这一方面做得非常好。很好。也许补充一点,从技术上讲,我认为 Alpha Evolve 已经为此做好了准备。我们有这个评估级联的想法,你可以非常快速地评估大量程序,然后你可以花更长时间评估少量程序。你可以将这个级联扩展到也许你只能负担得起评估 10 件东西的范围

你实际上必须进入现实世界并进行一些现实世界的实验。但原则上,机制是存在的。我的意思是,即使你试图手动解决问题或实际研究人员所做的事情,你也必须这样做。就像你有一个有限的预算。所以首先你尝试使用更便宜的方法来过滤想法,然后你只……

只有预算才能在最昂贵的估值上尝试最有希望的想法。我不知道我们能否限制这一点。是的,完全正确。是的,同样的方法也是这样完成的。所以我很想知道 LLM。首先,让我向你表示我对 Gemini Pro 的衷心祝贺。

它太荒谬了。它太好了。老实说,我找不到词语来形容它有多好。但我们正处于一个有趣的时期,对吧?因为在 Alpha Evolve 中,你有一个 Flash 2.0 的集合,我认为,以及 Pro 2。这对我来说提出了很多问题。如果你用 2.5 做会发生什么?据推测,内部还有我们还不知道的更好的模型。并且

有多少提升?如果你考虑一下,这是一个模型的帕累托曲线,谷歌的模型就在帕累托曲线上。所以,你知道,我们在权衡成本、延迟和性能等等。如果你只使用一个模型,那么在 Alpha Evolve 中,帕累托曲线上的某个位置可能是最佳位置。我的意思是,也许我们应该有一个小型模型,但我们应该,你知道,对它进行大量采样,或者也许我们应该有一个大型模型,但不要对其进行那么多采样或使用集合,也许这些模型有一些完美的分布。

但我们似乎确实拥有,特别是对于模型的推理版本,我们似乎解锁了一些直到最近才出现的东西。你能谈谈这个吗?是的。

所以我可以说的一件事,特别是让我对 Alpha Evolve 感到兴奋的是,它确实从改进基础语言模型中获得了这种提升。在 FundSearch 中并非如此,但在 Alpha Evolve 中,我们确实看到了这一点,并且我们在消融研究中实际上也有定量确认,如果你在集合中也包含 2.0 Pro,那么与仅使用 Flash 模型相比,你会得到更好的结果。所以很清楚的是,我们就像

利用这些模型的前沿能力,当然我们不能保证未来会发生什么,但至少目前我们肯定是在乘风破浪,所以我们非常渴望看到基础模型如何改进,以及该方法将与之一起获得什么样的提升,另一种

相关的观点我会快速提到的是,Alpha Evolve 还提供了这个机会,我们还没有利用它,但只是展望未来,这是一个能够增强基础模型能力的系统。基础模型的能力在某个地方,但这个系统通过协调这个测试时间计算管道使其变得更好,实际上好到你可以做出新的科学发现。所以它提出了一个自然的问题,我们能否

以某种方式将这种改进的能力蒸馏回基础模型。如果你要关闭强化学习循环,你会得到这样的结果。我们没有在 Alpha Evolve 中这样做,但这种可能性显然摆在桌面上。

所以也许……你刚才提到了改进基础模型,你还提到在论文中,你知道,使用 Alpha Evolve 来改进 Alpha Evolve 的基础设施以及基础模型本身,所以你最终现在设法关闭了递归自我改进,你知道,循环……我不知道这是否会引发一些人的想法,对此有什么想法吗?Schmidhuber 会怎么说

在这一点上,我们想非常具体地说明我们做了什么。我们找到了一种方法可以将下一版 Gemini 的训练速度提高 1%,并且我们能够在 Borg 数据中心中释放资源。所以目前,如果你考虑反馈循环,它可能大约需要几个月的时间,对吧?就像

当你加快下一版 Gemini 的训练速度时,这需要一些时间才能真正实现,但事实上,我们确实看到了你描述的 Alex 方向上的步骤,关于 Alpha Evolve 的递归自我改进有什么想法?是的,我认为我没有必要补充任何内容,就像 Mateusz 所说的一样,看看它会如何发展很有趣,我们确实看到了一些迹象,你知道,帮助 Gemini 训练运行,所以是的,这令人兴奋

但是,在那条线程中,我们想要更多自主权。目前,这在很大程度上是人类主管之间的一种教学交流。我们选择问题,我们设计评估函数,我们看到解决方案等等。我只是想知道,自主性的下一步会是什么样子,你知道,也许我们可以让它想象它自己的评估函数是什么,也许它可以前进几步。那会是什么样子?

老实说,从我的角度来看,我认为自动化一些事情很酷也很令人兴奋,但与此同时,我甚至会倾向于减少自动化。我认为让 Alpha Evolve 如此酷和强大的原因是人与机器之间的来回互动。人类提出问题,系统给你某种形式的答案,然后你提高你的直觉,你提高你的问答能力,提问能力,你问更多的问题。

所以我们正在考虑很多关于向学术界提供 Alpha Evolve 作为受信任的测试者,看看他们能用它做什么。在尝试构建它并尝试构建 UI 的同时,我们一直在思考很多关于不仅仅是将我们拥有的东西作为网站实现,而是像下一步是什么

这里的人机交互水平。人类可以在什么情况下干预这个过程?就像人类想要监督这个过程一样,我不知道,对想法发表评论,并注入更多想法等等。就像我们正在探索很多。我认为看到这种共生空间中能做什么非常令人兴奋。是的。

所以最后一个问题。你在论文中说,我认为你提到了大约 100 个计算小时来评估一个新的解决方案。这是在 2.3 节中。但在家里每个人都急于重新实现 Alpha Evolve 之前,你能给我们举一些例子吗,也许在矩阵乘法方面?我的意思是,它运行了多少计算小时?这样做实际上要花多少钱?是的。

所以 AlphaEvolve 的一个很好的特性是它非常有弹性,所以它可以匹配你问题的难度。如果你要求它解决一个实际上并不那么困难的问题,我的意思是,也许它仍然是一个悬而未决的问题,但没有人真正研究过它,那么也许即使你问一个聊天机器人,它几乎也会解决它或解决它。在这种情况下,AlphaEvolve 也基本上会立即给你答案,而且成本根本不会很高。

但是,如果你要求一个非常困难的问题,也许是几十年来悬而未决的科学问题,那么你确实期望这是一个困难的问题。你需要花更多的时间来尝试不同的想法,并在此基础上迭代地构建。Alpha Evolve 的一个很好的特性是它能够维持这种扩展。随着你持续运行更长时间,你会发现越来越好的想法。

我知道这听起来可能很琐碎,但我认为构建这些能够持续改进而不会在某个点达到平稳期的系统实际上并不容易。在这种情况下,使用 Alpha Evolve,你会看到这种弹性一直延伸到做出新的科学发现。所以我认为这是该系统的一个很好的特性。

为了具体回答你的问题,这取决于问题的难度。如果问题很困难,那么你确实期望你需要研究更多想法并花费更多计算资源。如果更容易,那么你可以很快得到答案。如果你考虑我们在论文中实际提出的问题,那么即使在矩阵乘法中,某些矩阵大小也比其他矩阵大小容易得多。所以计算量会有很大不同。

数学中的开放性问题也是如此。有些很容易。有些非常困难。因此,没有一个单一的答案能够让你在这个范围内定位,而不知道问题。不幸的是,正如开放性问题的情况一样,你通常实际上并不知道先验的难度有多大。所以你甚至无法提前预测。有时你尝试却找不到任何更好的东西,这也会发生。

太棒了。好吧,各位,能邀请你们两位来到 MLST,真是荣幸之至。非常感谢你们今天加入我们。谢谢。感谢你们的邀请。是的。太棒了。