《自然》:DeepMind推出AlphaDev或将加速全球计算

数字世界对计算和能源的需求正在不断增加。在过去的五十年中,人类主要依靠硬件层面的改进来满足这一点。然而,随着微芯片接近其物理极限,改进计算机运行代码,以使计算算力更强大和可持续,变得至关重要。对于每天运行数万亿次的计算机算法而言,这一点尤为重要。因为它们支撑着从在线搜索结果和社交帖子的排名,到计算机和手机上数据处理的一切。

最近,Google公司的DeepMind推出了AlphaDev,一种利用强化学习来发现改进的计算机科学算法的人工智能系统。其自主构建的算法,超越了科学家和工程师几十年来打磨出来的经典算法,从而可以将一种每天在世界各地使用数万亿次的 C++ 算法的运行速度提高 70%

相关研究论文以“Faster sorting algorithms discovered using deep reinforcement learning(使用深度强化学习发现更快的排序算法)”为题,以于2023年6月7号发表在权威科学期刊 《Nature》 上。

通过游戏找到提速算法最优解

排序算法是世界各地计算机不断使用的基本功能。虽然数十亿人每天都在使用该算法,但没有人意识到该算法还存在优化空间。Google DeepMind的研究人员表示:“看起来,现在AI不仅可以帮人编写代码,而且可以帮我们写出更好的代码。”

据介绍,AlphaDev基于DeepMind2016年开发的AlphaZero强化学习模型构建。其工作方式与AlphaZero相似,后者结合计算机推理和直觉,曾在围棋、国际象棋等游戏中屡次击败世界冠军。在棋盘游戏中,AlphaZero有能力选择每一步的走法,不过AlphaDev只能选择添加指令,并不会选择下一步怎么走棋。

排序算法的目的就是将一系列未排序的数字输入到算法中,输出已排序的数字。

值得一提的是,DeepMind选择了现在已很少见的汇编语言。这是C++等语言编写的代码在运行之前被翻译成的语言,由计算机芯片处理。汇编的优点是它允许将算法分解为更小的步骤,如果它要寻找更快的方法,这是一个很好的起点。

为了训练AlphaDev来发现新的算法,Google DeepMind研发团队将排序问题转化成了一个“汇编游戏”(Assembly Game)。在每一轮中,AlphaDev都需要观察它生成的算法以及中央处理器(CPU)中包含的信息,并通过在算法中添加一条指令来进行移动。而这个汇编游戏非常困难,因为AlphaDev必须有效地搜索大量可能的指令组合,从而找到一个可以排序且比当前最佳算法更快的算法。

AlphaDev对hui'bian 游戏和算法进行了正确性计算

其中AlphaDev需要操作的“可能的指令组合”的数量,堪比宇宙中的粒子数量,或者国际象棋(10的120次方局)和围棋(10的700次方局)中可能的走法组合数。更为严苛的是,任何一个错误的移动,都可能会使整个算法无效。DeepMind的突破在于将寻找更快算法的问题视为一场游戏,然后让它的人工智能赢得这场游戏,最后根据AlphaDev正确排序数字的能力以及完成排序的速度和效率给予奖励,而AlphaDev则需要通过发现一个正确且更快的程序来赢得游戏。如果AlphaDev的算法既正确又比现有算法快,那么它就赢了。

AlphaDev不仅发现了更快的算法,还发现了新的方法

排序算法可以使得LLVM libc++排序库得到改进:对于较短的序列,排序库的速度提高了70%,对于超过25万个数据的序列,速度提高了约1.7%。

其中,Google DeepMind团队更专注于改进3到5个元素的短序列排序算法。这些算法是使用最广泛的算法之一,因为它们通常作为更大排序函数的一部分被多次调用,改进这些算法可以提高对任意数量项目进行排序的整体速度。

事实上,AlphaDev不仅发现了更快的算法,还发现了新的方法。它的排序算法包含新的指令序列,每次应用时都会节省一条指令——这显然会产生巨大的影响,因为这些算法每天都要使用数万亿次。研究人员把这些称为“AlphaDev的交换和复制动作”。

最新方法让人想起 AlphaGo 让人震惊的「第 37 步」。2016 年那场人机大战中,AlphaGo 下了一颗违反人类直觉的棋,一个简单的肩冲,击败了传奇围棋选手李世石。

 谷歌人工智能AlphaGo击败世界围棋冠军李世石

通过交换和复制动作,AlphaDev跳过了一个步骤,以一种看起来像错误但实际上是捷径的方式连接项目。这表明AlphaDev有能力发掘出原创性的解决方案,并挑战人类对如何改进计算机科学算法的思考方式。

“说实话,我们没有想到会取得更好的成绩:这是一个非常短的程序,这些类型的程序已经被研究了几十年。”论文的第一作者、Google DeepMind的研究科学家丹尼尔·曼科维茨(Daniel Mankowitz)说,“我们最初以为它犯了一个错误,或者有一个bug或其他东西,但是,当我们分析这个程序时,我们意识到AlphaDev实际上已经发现了更快的东西。”

论文的第一作者、Google DeepMind的研究科学家丹尼尔·曼科维茨(Daniel Mankowitz) 

曼科维茨表示:“优化每天被调用数万亿次的基本函数的代码,有望带来足够大的好处,鼓励人们尝试执行更多这些函数,并将其作为解决摩尔定律放缓瓶颈的途径之一。”

英国伯明翰大学教授马克·李(Mark Lee)则认为,AlphaDev很有意思,即使是1.7%的速度提升也很有用,但尚不能确定这种方法是否可以弥补摩尔定律的瓶颈,因为它不能在更复杂的情况下取得同样的收益。

哈希算法速度提高30%

在发现更快的排序算法后,团队测试了AlphaDev是否可以概括和改进不同的计算机科学算法:哈希算法(Hash Algorithm)。

哈希算法是计算中用于检索、存储和压缩数据的基本算法。就像使用分类系统来定位某本书的图书管理员一样,散列算法可以帮助用户知道他们正在寻找什么以及在哪里可以找到它。这些算法获取特定密钥的数据(例如用户名“Jane Doe”)并对其进行哈希处理——这是一个将原始数据转换为唯一字符串(例如1234ghfty)的过程。计算机使用此散列来快速检索与密钥相关的数据,而不是搜索所有数据。当团队将AlphaDev应用于散列函数的9-16字节范围时,AlphaDev发现的算法速度提高了30%。

 哈希算法是一种从任何一种数据中创建小的数字“指纹”的方法

目前,Google DeepMind正在探索AlphaDev在C++等高级语言中直接优化算法的能力,这对于开发人员来说将更加有用。

Google DeepMind在官方博客中写道:“通过优化和推出全球开发人员使用的改进排序和哈希算法,AlphaDev展示了其具有真实世界影响的泛化和发现新算法的能力。我们将AlphaDev视为发展通用人工智能工具的一步,这些工具可以帮助优化整个计算生态系统,并解决其他有益于社会的问题。”

结语

通过优化和推出全球开发者使用的改进排序和散列算法,AlphaDev 证明了,它有能力概括和发现世界级的新算法。Google DeepMind 认为,AlphaDev 是朝着开发 AGI 工具迈出的一步,这些工具有助于优化整个计算生态系统,还能解决其他有益于社会的问题。

不过,研究人员也承认,目前 AlphaDev 在低级汇编指令优化能力非常强,但是随着算法的发展也存在局限性。为了让开发者更可用,AlphaDev 用高级语言(如 C++)优化算法的能力正在探索中。

AlphaDev 的新发现,如「AlphaDev swap move」和「AlphaDev copy move」,不仅表明它可以改进算法,还可以找到新的解决方案。研究人员希望,这些发现能激励研究人员和开发人员创造技术和方法,进一步优化基础算法,以创建一个更强大、更可持续的计算生态系统。

AlphaDev原文链接

Faster sorting algorithms discovered using deep reinforcement learning | Nature

猜你喜欢

转载自blog.csdn.net/weixin_4528312/article/details/131177318
今日推荐