人工智能生成的算法已经被数百万开发人员使用。
DeepMind在基础计算机科学方面的一系列发现仍在继续。去年,该公司使用其游戏AI AlphaZero的一个版本来寻找新的方法来加速计算许多不同类型代码核心的关键数学,打破了50年的记录。
现在它又拉了同样的把戏——两次。这家总部位于英国的公司(最近在四月份与其姊妹公司的人工智能实验室合并后更名为Google DeepMind)使用名为AlphaDev的新版本AlphaZero,发现了一种对列表中的项目进行排序的方法,比现有的最佳方法快70%。
它还找到了一种方法,可以将密码学中使用的密钥算法加快30%。这些算法是软件中最常见的构建块之一。小的加速可以产生巨大的差异,降低成本并节省能源。
“摩尔定律即将结束,芯片正在接近其基本物理极限,”谷歌DeepMind的研究科学家Daniel Mankowitz说。“我们需要找到新的和创新的方法来优化计算。
“这是一种有趣的新方法,”Peter Sanders说,他在德国卡尔斯鲁厄理工学院研究高效算法的设计和实现,他没有参与这项工作。“排序仍然是计算中使用最广泛的子程序之一,”他说
DeepMind今天在《自然》杂志上发表了研究结果。但是AlphaDev发现的技术已经被数百万软件开发人员使用。2022 年 <> 月,DeepMind 将其新的排序算法提交给了管理C++(世界上最受欢迎的编程语言之一)的组织,经过两个月的严格独立审查,AlphaDev 的算法被添加到该语言中。这是十多年来C++排序算法的首次变化,也是有史以来第一次涉及使用AI发现的算法的更新。
DeepMind将其其他新算法添加到Abseil中,Abseil是一个预先编写的C++算法的开源集合,任何人都可以使用C++编码。这些加密算法计算称为哈希的数字,可用作任何类型数据的唯一 ID。DeepMind估计,其新算法现在每天被使用数万亿次。
AlphaDev建立在AlphaZero之上,AlphaZero是DeepMind训练的强化学习模型,用于掌握围棋和国际象棋等游戏。DeepMind的突破是将寻找更快算法的问题视为游戏,然后让AI赢得它 - 与去年研究中用于加速计算的方法相同。
在AlphaDev的案例中,游戏涉及选择计算机指令并将它们按顺序排列,以便生成的代码行构成算法。如果算法既正确又比现有算法更快,AlphaDev就会赢得比赛。这听起来很简单,但要玩得好,AlphaDev必须搜索天文数字的可能动作。
DeepMind选择使用汇编,这是一种编程语言,可用于给出如何在计算机芯片上移动数字的具体指令。很少有人在集会中写作;它是用C++等语言编写的代码在运行之前被翻译成的语言。汇编的优点是它允许将算法分解为细粒度的步骤——如果您正在寻找快捷方式,这是一个很好的起点。
AlphaDev 通过在它正在构建的算法中添加新的汇编指令来在游戏中发挥作用。首先,AlphaDev会随机添加指令,生成无法运行的算法。随着时间的推移,就像AlphaZero对棋盘游戏所做的那样,它学会了玩获胜的动作。它添加了指令,导致算法不仅运行,而且正确和快速。
DeepMind专注于对三到五个项目的简短列表进行排序的算法。这样的算法在对较长列表进行排序的程序中被一遍又一遍地调用。因此,这些短算法的加速将产生累积的连锁反应。
但短算法也被人类研究和优化了几十年。Mankowitz和他的同事从一种算法开始,该算法对三个项目的列表进行排序,只是作为概念证明。该算法的最佳人工设计版本涉及 18 条指令。他们不相信自己能够改进它。
“老实说,我们没想到会取得更好的成就,”他说。“但令我们惊讶的是,我们设法让它更快。我们最初认为这是一个错误或错误或其他什么,但当我们分析程序时,我们意识到AlphaDev实际上发现了一些东西。
评论留言