目录
Alpha家族“新贵”发现更快排序算法
网友:不算发现新的排序算法
首页 科技周边 人工智能 重现当年AlphaGo神来之笔!DeepMind新AI发现提速70%排序算法,十年都没更的C 库更新了

重现当年AlphaGo神来之笔!DeepMind新AI发现提速70%排序算法,十年都没更的C 库更新了

Jun 09, 2023 pm 09:59 PM
ai c++

DeepMind又双叒叕带着重磅成果登Nature了!

这一次,他们又一强化学习AI,在计算机领域最最最基础的两个算法上做了新突破:

一个是排序算法,发现了速度最高可提升70%的新实现;

另一个是哈希算法,也找到了速度提高30%的新方法。

重现当年AlphaGo神来之笔!DeepMind新AI发现提速70%排序算法,十年都没更的C  库更新了

不仅如此,该AI所用方法被称为“重现当年AlphaGo的神来之笔”,也就是看似违法直觉,实则一举击败人类高手李世石的那次。

消息一出,立刻引爆学术圈,有网友就直呼:

没想到这么古老又基础的算法还能被进一步改进。

重现当年AlphaGo神来之笔!DeepMind新AI发现提速70%排序算法,十年都没更的C  库更新了

而正是因为这一最新成果,十年都没有更新的LLVM标准C 库都更新了,并且数十亿人将会受益。

因为,无论是排序还是哈希,它们的应用场景从在线购物、云计算到供应链管理等各个场景都能用到,每天会被调用上亿次!

不过,如DeepMind所说:

大家千万不要太兴奋了,AI的力量用于代码效率提升才刚刚开始。

重现当年AlphaGo神来之笔!DeepMind新AI发现提速70%排序算法,十年都没更的C  库更新了

Alpha家族“新贵”发现更快排序算法

这个AI名叫AlphaDev,属于Alpha家族“新贵”,并且基于AlphaZero打造(就是2017年击败世界冠军的那个棋类AI)。

它的发现并非基于现有算法,而是从最底层的汇编指令开始摸索的。

DeepMind的研究员给它设计了一种单人“组装”游戏:

只要能够搜索并选择出合适的指令(下图A流程),正确且快速地排好数据(下图B流程),就能获得奖励。

重现当年AlphaGo神来之笔!DeepMind新AI发现提速70%排序算法,十年都没更的C  库更新了

但这个游戏的挑战不仅在于搜索空间的大小(可组合指令数相当于宇宙中的粒子数),也在于奖励函数的性质,因为一条错误指令就可能会使整个算法失效。

AlphaDev拥有两个核心组件:学习算法和表示函数。

其中,学习算法主要是在强大的AlphaZero上扩展的,它可以结合DRL和随机搜索优化算法来进行巨量的指令搜索;主要的表示函数则基于Transformer,它能够抓住汇编程序的底层结构,并表示成特殊的序列。

随着AlphaDev不断地打怪升级,研究员还会限制它能执行的步数,以及待排序列的长度。

最终,AlphaDev发现了一种全新排序算法:

如果序列较短,相比人类基准排序算法,它能将速度提高70%;如果序列长度超过25000个元素,则提高1.7%。

短序列排序在实际中被广泛使用,尤其作为较大排序函数的一个重要组成部分,被多次调用。只要改进了短序列,所有数量序列的排序速度都能得到提升。)

具体而言,该算法的创新主要在于两种指令序列:

(1)AlphaDev Swap Move(交换移动)
(2)AlphaDev Copy Move(复制移动)

如下图所示,左边是利用了min(A,B,C)的原始sort3实现,右边是通过“AlphaDev Swap Move”,只需要min(A,B)的实现。能够发现可以省掉一步指令,还只需要算出A和B的最小值即可。

重现当年AlphaGo神来之笔!DeepMind新AI发现提速70%排序算法,十年都没更的C  库更新了

作者表示,这种新颖的方法让人想起当年AlphaGo的“第 37 步”——一种违反直觉的下法却直接击败传奇围棋选手李世石,让观众全都震惊不已。

同样,AlphaDev则是通过交换和复制移动,跳过了一个步骤,以一种看似错误但实际上是捷径的方式达成目标。

如下图所示,在对8个元素进行排序的算法中,AlphaDev也同样利用“AlphaDev Copy Move”,用max (B, min (A, C))替换了原始实现中更为复杂的max (B, min (A, C, D))指令,并且使整个算法的指令总数也减少了一步。

重现当年AlphaGo神来之笔!DeepMind新AI发现提速70%排序算法,十年都没更的C  库更新了

而在发现更快的排序算法后,作者也用AlphaDev试了试哈希算法,以此证明其通用性。

结果也没有让人失望,AlphaDev在9-16字节的长度范围内也实现了30%的速度提升。

和排序算法一样,他们已将新方法集成到了Abseil库中,全球数百万开发人员现在都可以使用。

最后,作者表示,两种新算法的实现显示AlphaDev具有强大的发现原始解决方案的能力,并且将使我们进一步思考计算机领域基础算法的改进方式。

不过,由于本次研究中使用的汇编语言具有局限性,他们接下来还是打算尝试AlphaDev在高级语言(如 C )中优化算法的能力。

网友:不算发现新的排序算法

对于这一成果,不少人表示非常兴奋。

如这位网友所说:

AlphaGo惊艳全世界后,强化学习还能做什么?还能做任何有实际意义的事情吗?这就是答案。

重现当年AlphaGo神来之笔!DeepMind新AI发现提速70%排序算法,十年都没更的C  库更新了

不过这次,有不少人指出,DeepMind似乎有夸大标题的嫌疑。

它计算的是算法延迟,而非传统意义上的时间复杂度。如果真算时间复杂度,数据可能不好看。

它的改进并不在排序算法本身,而是针对现代CPU做了新的排序优化(特别是针对短序列)。这个做法其实很普遍,例如FFTW、ATLAS等库都采用了这种方法。

重现当年AlphaGo神来之笔!DeepMind新AI发现提速70%排序算法,十年都没更的C  库更新了

同意,他们只是为特定CPU找到了更快的机器优化,并不算发现新的排序算法,方法本身很酷,但还不算开创性研究。

重现当年AlphaGo神来之笔!DeepMind新AI发现提速70%排序算法,十年都没更的C  库更新了

大家怎么看?

论文地址:https://www.php.cn/link/a3fefe83288ecb0e40ebe40b2bde29fe
官方博客:https://www.php.cn/link/f5b2aa928f940f3f09a0d14f45a27875

参考链接:
[1]https://www.php.cn/link/5383c7318a3158b9bc261d0b6996f7c2
[2]https://www.php.cn/link/ecf9902e0f61677c8de25ae60b654669
[3]https://www.php.cn/link/0383314bf626052313b8275638fcccce

以上是重现当年AlphaGo神来之笔!DeepMind新AI发现提速70%排序算法,十年都没更的C 库更新了的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热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 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PS一直显示正在载入是什么原因? PS一直显示正在载入是什么原因? Apr 06, 2025 pm 06:39 PM

PS“正在载入”问题是由资源访问或处理问题引起的:硬盘读取速度慢或有坏道:使用CrystalDiskInfo检查硬盘健康状况并更换有问题的硬盘。内存不足:升级内存以满足PS对高分辨率图片和复杂图层处理的需求。显卡驱动程序过时或损坏:更新驱动程序以优化PS和显卡之间的通信。文件路径过长或文件名有特殊字符:使用简短的路径和避免使用特殊字符。PS自身问题:重新安装或修复PS安装程序。

PS启动时一直显示正在载入如何解决? PS启动时一直显示正在载入如何解决? Apr 06, 2025 pm 06:36 PM

PS启动时卡在“正在载入”可能是由于各种原因造成的:禁用损坏或冲突的插件。删除或重命名损坏的配置文件。关闭不必要的程序或升级内存,避免内存不足。升级到固态硬盘,加快硬盘读取速度。重装PS修复损坏的系统文件或安装包问题。查看错误日志分析启动过程中的错误信息。

HTML5如何控制视频播放速度? HTML5如何实现视频全屏? HTML5如何控制视频播放速度? HTML5如何实现视频全屏? Apr 06, 2025 am 10:24 AM

HTML5 中可以通过 playbackRate 属性控制视频播放速度,该属性接受以下值:小于 1:慢速播放等于 1:正常速度播放大于 1:快速播放等于 0:暂停HTML5 中可以通过 requestFullscreen() 方法实现视频全屏,该方法可应用于视频元素或其父元素。

H5页面制作的流程 H5页面制作的流程 Apr 06, 2025 am 09:03 AM

H5页面制作流程:设计:规划页面布局、风格和内容;HTML结构搭建:使用HTML标签构建页面框架;CSS样式编写:用CSS控制页面外观和布局;JavaScript交互实现:编写代码实现页面动效和交互;性能优化:压缩图片、代码和减少HTTP请求,提升页面加载速度。

PS打开文件时一直显示正在载入如何解决? PS打开文件时一直显示正在载入如何解决? Apr 06, 2025 pm 06:33 PM

PS打开文件时出现“正在载入”卡顿,原因可能包括:文件过大或损坏、内存不足、硬盘速度慢、显卡驱动问题、PS版本或插件冲突。解决方法依次为:检查文件大小和完整性、增加内存、升级硬盘、更新显卡驱动、卸载或禁用可疑插件、重装PS。通过逐步排查,并善用PS的性能设置,养成良好的文件管理习惯,可以有效解决该问题。

如何用PS羽化制作透明效果? 如何用PS羽化制作透明效果? Apr 06, 2025 pm 07:03 PM

透明效果制作方法:用选区工具和羽化配合:选取透明区域并羽化,柔化边缘;改变图层混合模式和不透明度控制透明度。用蒙版和羽化:选取并羽化区域;添加图层蒙版,灰度渐变控制透明度。

H5和JS哪个更容易学? H5和JS哪个更容易学? Apr 06, 2025 am 09:18 AM

H5(HTML5)和JS(JavaScript)的学习难度不同,取决于需求。简单静态网页仅需学习H5,而交互性强、前端开发需求则须掌握JS,且建议先学习H5再逐步学习JS。H5主要学习标签,上手简单;JS作为编程语言,学习曲线陡峭,需理解语法和概念,如闭包和原型链。踩坑方面,H5主要为兼容性和语义理解偏差,而JS则涉及语法、异步编程和性能优化。

PS卡在载入界面怎么办? PS卡在载入界面怎么办? Apr 06, 2025 pm 06:54 PM

PS卡在载入界面可能是由软件自身(文件损坏或插件冲突)、系统环境(驱动过时或系统文件损坏)或硬件(硬盘损坏或内存条故障)问题造成的。首先检查计算机资源是否充足,关闭后台程序释放内存和CPU资源。修复PS安装或检查插件是否存在兼容性问题。更新或回退PS版本。检查显卡驱动并更新,运行系统文件检查。若排除上述问题,则可以尝试硬盘检测和内存测试。

See all articles