搜索
首页科技周边人工智能DeepMind推惊世排序算法,C++库忙更新!

编译 | 王瑞平、言征

AlphaGo又有“小弟”加入了!

谷歌DeepMind把Alpha系列“卷”到了排序算法上,重磅推出AlphaDev。

它好比一种“开发秘法”,通过使用强化学习AI发现排序算法和散列算法,强行把人类程序员设计的算法分别提速约70%和30%。

DeepMind推惊世排序算法,C++库忙更新!

研究成果一经推出,瞬间点燃软件圈!一下子,全球数以百万计的软件运行速度飙升,直接超越了科学家和工程师几十年来的成果,十年未更新的LLVM标准C++库都更新了。

DeepMind推惊世排序算法,C++库忙更新!

(来源:Nature)

这也是继谷歌两AI部门合体后推出的颠覆性技术。论文以《使用深度强化学习模型发现更快排序算法》(Faster sorting algorithms discovered using deep reinforcement learning)为题发表于Nature。论文的第一作者是DeepMind的计算机科学家Daniel Mankowitz。

1、演进:排序算法的由来

排序是一种将许多项目按特定顺序组织起来的方法,例如,按照字母顺序排列三个字母,从最大到最小的顺序排列五个数字或对包含数百万条记录的数据库进行排序。

排序法最早可追溯至二到三世纪,仍在不断演进。最初,学者们手工将亚历山大图书馆书架上数千本书按照字母序进行归纳。

工业革命之后,人们发明了可自行分类的机器,即,将信息存储在穿孔卡片上的制表机器中,用于收集1890年美国人口普查的结果。

20世纪50年代,商用计算机开始兴起,也随即产生了排序算法。输入一些未排序的数字到排序算法中,它会产生一个已排序的数字序列。

目前,各个地方的代码库中仍在使用许多不同的排序技术和算法来处理海量数据。      

DeepMind推惊世排序算法,C++库忙更新!

经过几十年的研究和开发,这些排序算法的效率不断提高,得到计算机科学家和程序员的认可。但是,对其进一步改进仍具有重大挑战。

2、重头戏:如何用AlphaDev生成新排序算法?

研究人员最初用AlphaDev生成新算法的目的是高效率完成给定任务。

DeepMind推惊世排序算法,C++库忙更新!

AlphaDev构建了全新的算法,不是基于以前的算法进行开发,因此可以视为原创。在此过程中,它应用了汇编代码的中间语言。AlphaDev可以更容易地创造高效算法,因为该语言更接近计算机二进制指令。

具体来讲,AlphaDev每次生成一个指令,然后测试其输出正确与否,同时还在模型中设定要求生成最短算法。

当被要求重新设计排序算法时,AlphaDev随机生成比现有算法快70%的新排序算法,可同时将五个数据排序。在对25万个数据进行排序时,它也比最好的算法快1.7%。

这项创新会对全球算法产生巨大影响,因为各种常见软件都广泛使用排序算法。DeepMind has open-sourced them and integrated them into the Libc++ standard library.。

据DeepMind的研究者描述:“由于指令组合数量庞大,看似简单的研究过程难度极大。”

3、缘起:在玩游戏中找到最佳算法  

更进一步地说,AlphaDev是一种更先进的模型,它基于AlphaZero的结构而设计。而AlphaZero此前是DeepMind的强化学习模型,曾在围棋、国际象棋和其它棋类游戏中击败了世界冠军。

通过此项实验,新模型AlphaDev发挥出从玩游戏转移到解决科学问题以及从实验模拟转移到现实世界应用的独特优势。

研究者将排序模拟为单人“组装游戏”,以训练AlphaDev发现新算法。在每个游戏回合中,AlphaDev都能观察到生成的算法和包含在CPU中的信息,然后选择一条指令添加到算法中走出每一步棋。

论文中提到,汇编游戏非常困难,因为AlphaDev必须能够有效地搜索到大量可能的指令组合以获取可以排序的算法。

指令组合数量类似于宇宙中粒子数量或国际象棋(10120局)和围棋(10700局)中可能走法的组合数量,每个错误的举动将会使整个算法失效。

DeepMind推惊世排序算法,C++库忙更新!

然后,该模型输出一个算法并将其与预期输出比较,根据算法的正确性和延迟时间奖励代理。

在构建算法时,每次输入一个指令,AlphaDev通过比较输出算法与预期结果检查正确性(对于排序算法,这意味着输入无序的数字后能够输出正确排序的数字)。

模型会奖励AlphaDev对数字的正确排序以及它的高效。最终AlphaDev通过发现更准确的、更快的程序赢得了比赛。

4、算法创新:交换移动和复制移动指令序列

AlphaDev不仅生成了更快算法,还创新出两种指令序列。

具体来讲,它生成的排序算法包括交换移动和复制移动两种新的指令序列,每次使用时都会保存一条指令。研究者称之为“AlphaDev的交换移动和复制移动”。

DeepMind推惊世排序算法,C++库忙更新!

这种新颖的方法让人想起AlphaGo的“第37步”——“反直觉”下棋法,震惊了旁观者并造成一位传奇棋手的失败。

通过交换移动和复制移动指令序列,AlphaDev跳过了一个步骤,以一种看起来像错误但实际上是捷径的方式完成目标。这意味着AlphaDev具备发现初始解决方案并尝试改进计算机科学算法的能力。

5、测试:推广和改进散列算法

研究人员在发现更快的排序算法后,试图将其应用到另一种计算机科学算法——散列算法的推广和改进上。

散列算法是计算中的一种基本算法,用于检索、存储和压缩数据。就像图书管理员使用分类系统定位某本书一样,散列算法帮助用户知道他们要找的是什么以及在哪里可以找到它。

这些算法能够获取特定密钥(例如,用户名“Jane Doe”)的数据并对其进行散列排序——将原始数据转换为唯一字符串(例如,1234ghty)。

计算机使用该散列快速检索与密钥相关的数据,而不是搜索所有数据。

研究人员将AlphaDev应用于数据结构中最常用的散列算法之一以尝试发现更快的算法。当将其应用于散列函数的9-16字节范围时,AlphaDev生成的算法速度快了30%。

今年早些时候,AlphaDev生成的新散列算法曾被发布到开源的Abseil库中,全世界数以百万计的开发人员都可以使用,估计它现在每天被使用数万亿次。

6、蓄势:迈出开发AGI的第一步  

通过优化“排序和散列算法”,AlphaDev展示出生成不同实用新算法的能力。

这也是AlphaDev朝着开发通用人工智能(AGI)工具迈出的第一步,通过类似的AI工具还可以帮助优化整个计算生态系统并解决其它有益于社会的问题。

虽然在低级汇编指令空间中优化算法的功能非常强大,但它也存在局限性。目前,团队正在研究AlphaDev在高级语言(如C++)中优化算法的能力,这将对开发人员更有益。

总之,希望这些新发现能够激励开发人员创造新技术和方法、进一步优化基本算法,创造更强大、更可持续的计算生态系统。

7、开源:AI优化代码的里程碑突破

此前,排序算法每天都会被使用数万亿次。随着计算需求的增长,人们对算法的性能要求越来越高。虽然人类工程师已发现不同的排序算法,但经过几十年的优化,很难再有突破,也满足不了日益增长的需求。

DeepMind推惊世排序算法,C++库忙更新!

如今,AlphaDev发现了一种更快的排序算法,可对数据进行排序。

新排序算法无所不能,既可应用于对在线搜索结果和社交帖子进行排名,也可在电脑和手机上处理数据。

值得庆贺的是,新排序算法已在主C++库中开源。世界各地数以百万的开发人员和公司目前可将其用于云计算、在线购物、供应链管理等。

总之,使用人工智能工具优化算法将彻底改变传统编程方式。这是十几年来第一次对排序库进行更改,第一次将强化学习模型设计出的算法添加到排序库中,因此成为了使用人工智能优化代码的里程碑式突破。

8、用户:可能只是噱头 

对于该项研究成果用户褒贬不一,Twitter上赞美的声音居多:

DeepMind推惊世排序算法,C++库忙更新!

学习基本排序任务是程序员早期就掌握的技能之一,这项技能提高了70%的速度。看到利用AI在我们都依赖的算法和库中进行重大加速,真是令人兴奋”。

“很快,普通人就可以成为高级程序员”。

“有趣的方法,从装配级别开始优化”!

但是,也有的程序员认为这只是个噱头,DeepMind夸大了该算法的功能。

首先就是从效率的角度,它只统计了算法的延迟,而非真正改变了时间复杂度。

而且,它并没有真正改变排序,这种操作常见于各种其它代码库。

参考资料:

1.https://www.nature.com/articles/s41586-023-06004-9

2.https://www.deepmind.com/blog/alphadev-discovers-faster-sorting-algorithms

3.https://www.deepmind.com/blog/optimising-computer-systems-with-more-generalised-ai-tools

4.https://twitter.com/demishassabis

以上是DeepMind推惊世排序算法,C++库忙更新!的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:51CTO.COM。如有侵权,请联系admin@php.cn删除
烹饪创新:人工智能如何改变食品服务烹饪创新:人工智能如何改变食品服务Apr 12, 2025 pm 12:09 PM

AI增强食物准备 在新生的使用中,AI系统越来越多地用于食品制备中。 AI驱动的机器人在厨房中用于自动化食物准备任务,例如翻转汉堡,制作披萨或组装SA

Python名称空间和可变范围的综合指南Python名称空间和可变范围的综合指南Apr 12, 2025 pm 12:00 PM

介绍 了解Python功能中变量的名称空间,范围和行为对于有效编写和避免运行时错误或异常至关重要。在本文中,我们将研究各种ASP

视觉语言模型(VLMS)的综合指南视觉语言模型(VLMS)的综合指南Apr 12, 2025 am 11:58 AM

介绍 想象一下,穿过​​美术馆,周围是生动的绘画和雕塑。现在,如果您可以向每一部分提出一个问题并获得有意义的答案,该怎么办?您可能会问:“您在讲什么故事?

联发科技与kompanio Ultra和Dimenty 9400增强优质阵容联发科技与kompanio Ultra和Dimenty 9400增强优质阵容Apr 12, 2025 am 11:52 AM

继续使用产品节奏,本月,Mediatek发表了一系列公告,包括新的Kompanio Ultra和Dimenty 9400。这些产品填补了Mediatek业务中更传统的部分,其中包括智能手机的芯片

本周在AI:沃尔玛在时尚趋势之前设定了时尚趋势本周在AI:沃尔玛在时尚趋势之前设定了时尚趋势Apr 12, 2025 am 11:51 AM

#1 Google推出了Agent2Agent 故事:现在是星期一早上。作为AI驱动的招聘人员,您更聪明,而不是更努力。您在手机上登录公司的仪表板。它告诉您三个关键角色已被采购,审查和计划的FO

生成的AI遇到心理摩托车生成的AI遇到心理摩托车Apr 12, 2025 am 11:50 AM

我猜你一定是。 我们似乎都知道,心理障碍包括各种chat不休,这些chat不休,这些chat不休,混合了各种心理术语,并且常常是难以理解的或完全荒谬的。您需要做的一切才能喷出fo

原型:科学家将纸变成塑料原型:科学家将纸变成塑料Apr 12, 2025 am 11:49 AM

根据本周发表的一项新研究,只有在2022年制造的塑料中,只有9.5%的塑料是由回收材料制成的。同时,塑料在垃圾填埋场和生态系统中继续堆积。 但是有帮助。一支恩金团队

AI分析师的崛起:为什么这可能是AI革命中最重要的工作AI分析师的崛起:为什么这可能是AI革命中最重要的工作Apr 12, 2025 am 11:41 AM

我最近与领先的企业分析平台Alteryx首席执行官安迪·麦克米伦(Andy Macmillan)的对话强调了这一在AI革命中的关键但不足的作用。正如Macmillan所解释的那样,原始业务数据与AI-Ready Informat之间的差距

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版