搜索
首页科技周边人工智能谷歌借AI打破十年排序算法封印,每天被执行数万亿次,网友却说是最不切实际的研究?

整理 | 核子可乐,褚杏娟

接触过基础计算机科学课程的朋友们,肯定都曾亲自动手设计排序算法——也就是借助代码将无序列表中的各个条目按升序或降序方式重新排列。这是个有趣的挑战,可行的操作方法也多种多样。人们曾投入大量时间探索如何更高效地完成排序任务。

作为一项基础操作,大多数编程语言的标准库中都内置有排序算法。世界各地的代码库中使用了许多不同的排序技术和算法来在线组织大量数据,但至少就与 LLVM 编译器配套使用的 C++ 库而言,排序代码已经有十多年没有任何变化了。

近日,谷歌 DeepMind AI 小组如今开发出一种强化学习工具 AlphaDev,能够在无需通过人类代码示例做预训练的情况下,开发出极限优化的算法。如今,这些算法已经集成到 LLVM 标准 C++ 排序库中,这是十多年来排序库部分第一次发生变化,也是第一次将通过强化学习设计的算法添加到该库中。

把编程过程视为“游戏”

DeepMind系统通常能够发现人类从未想过的解决问题的方法,因为它不需要预先接触任何人类游戏策略。DeepMind 学习经验时完全依靠自我对抗,因此存在某些情况下形成可被人类利用的盲点。

这种方法跟编程其实非常相似。大型语言模型能够编写有效的代码,是因为它们已见过大量人类代码示例。但也正因为如此,语言模型很难产出人类之前没做过的东西。如果我们希望对普遍存在的现有算法(例如排序函数)做进一步优化,那么继续依赖现有人类代码将很难突破固有思路的束缚。那么,如何才能让 AI 找到真正的新方向?

DeepMind研究人员使用了类似于国际象棋和围棋的方法来优化代码任务,将其转化为单人的“拼图游戏”。AlphaDev 系统开发出一种 x86 汇编算法,会将代码的运行延迟视为一个分数,在努力将该分数最小化的同时确保代码能够顺畅跑通。AlphaDev逐渐掌握了撰写高效、简洁代码的技巧,这得益于强化学习的应用。

AlphaDev 基于 AlphaZero。DeepMind is well-known for developing AI software that can learn game rules on its own.。这一路思维被证实非常有效,并成功解决了许多游戏难题,如国际象棋、围棋和《星际争霸》等。虽然具体细节因所玩游戏而异,但 DeepMind 软件确实能在重复游玩中不断学习,持续探索能令得分最大化的办法。

AlphaDev 的两个核心组件是学习算法和表示函数。

使用 DRL 和随机搜索优化算法相结合来进行组装游戏,是 AlphaDev 学习算法的一种方法。AlphaDev 中的主要学习算法是 AlphaZero 33 的扩展,AlphaZero 33 是一种著名的 DRL 算法,其中训练神经网络以指导搜索完成游戏。

该函数用于监控代码开发时的综合性能,覆盖了算法一般结构,以及对 x86 寄存器和内存的使用。该系统将逐步引入汇编指令,在使用游戏系统借鉴的蒙特卡罗树搜索方法进行选择时独立添加。树状结构允许系统快速将搜索范围缩小至包含大量潜在指令的有限区域,而蒙特卡洛方法则以一定程度的随机性从这个分支区域内选择具体指令。请注意,这里所指的“指令”是选定特定寄存器等操作以创建有效且完整的程序集。)

接着,系统会对汇编代码的延迟和有效状态进行评估,并给出分数,并将其与上一次得分进行比较。通过强化学习,系统能够记录树形结构中不同分支的工作信息,以用于给定的程序状态。在随着时间的推移,系统会逐渐熟悉如何以最高得分(代表最低延迟)来赢得游戏(成功完成排序)。The primary representation function of AlphaDev is based on Transformers.。

为了训练 AlphaDev 发现新算法,AlphaDev 在每轮中都会观察它生成的算法和中央处理器 (CPU) 中包含的信息,然后通过选择要添加到算法中的指令完成游戏。AlphaDev 必须有效地搜索大量可能的指令组合,以找到可以排序的算法,并且还要比当前最好的算法更快,同时代理模型可以根据算法的正确性和延迟获得奖励。

谷歌借AI打破十年排序算法封印,每天被执行数万亿次,网友却说是最不切实际的研究?

图 A:组装游戏,图 B:奖励计算

最终,AlphaDev 发现了新的排序算法,这些算法可以让 LLVM libc++ 排序库得到改进:对于较短的序列,排序库的速度提高了 70%;对于超过 250,000 个元素的序列,速度提高了约 1.7%。

具体而言,该算法的创新主要在于两种指令序列:AlphaDev Swap Move(交换移动)和 AlphaDev Copy Move(复制移动),通过这两个指令,AlphaDev 跳过了一个步骤,以一种看似错误但实际上是捷径的方式连接项目。

谷歌借AI打破十年排序算法封印,每天被执行数万亿次,网友却说是最不切实际的研究?

左图:带有 min(A,B,C) 的原始 sort3 实现。‍

右图:AlphaDev Swap Move - AlphaDev 发现你只需要 min(A,B)。

谷歌借AI打破十年排序算法封印,每天被执行数万亿次,网友却说是最不切实际的研究?

左:max (B, min (A, C)) 的原始实现用于对八个元素进行排序的更大排序算法。

‍右:AlphaDev 发现在使用其复制移动时只需要 max (B, min (A, C))。

这套系统的主要优势在于,其训练过程不借助任何代码示例。相反,系统会自主生成代码示例,然后对其做出评估。过程当中,它也就逐渐掌握了关于有效排序的指令组合信息。

从排序到散列

在发现更快的排序算法后,DeepMind 测试了 AlphaDev 是否可以概括和改进不同的计算机科学算法:散列。

哈希是计算中用于检索、存储和压缩数据的基本算法。就像使用分类系统来定位某本书的图书管理员一样,散列算法可以帮助用户知道他们正在寻找什么以及在哪里可以找到它。这些算法获取特定密钥的数据(例如用户名“Jane Doe”)并对其进行哈希处理——这是一个将原始数据转换为唯一字符串(例如 1234ghfty)的过程。此哈希算法用于快速检索与密钥相关的数据,避免了搜索全部数据的过程。

DeepMind 将 AlphaDev 应用于数据结构中最常用的散列算法之一,以尝试发现更快的算法。AlphaDev发现,在散列函数使用9-16字节范围内的数据时,该算法的速度提高了30%。

今年,AlphaDev 的新哈希算法被发布到开源 Abseil 库中,可供全球数百万开发人员使用,该库现在每天被数万亿次使用。

实际可用的代码

复杂程序中的排序机制能够处理大量任意条目的集合。但在标准库层面来看,这种能力源自一系列高度限定的具体函数。这些函数各自只能处理一种或几种情况。例如,某些单独算法只能对 3、4 或 5 个条目做排序。我们可以使用一组函数对任意数量的条目进行排序,但是每次函数调用最多只能对4个条目排序。

AlphaDev has been implemented by DeepMind on each function, but its actual operating methods differ significantly.。可以编写没有分支语句的代码来处理特定数量条目的函数,即根据变量状态执行不同的代码。因此代码性能往往与所涉及的指令数量成反比。

AlphaDev 已经成功将 sort-3、sort-5 和 sort-8 的指令数量各减一,在 sort-6 和 sort-7 中的指令削减量甚至更多。只有 sort-4 上没能找到改进现有代码的方法。实际系统中重复运行测试表明,较少的指令确实提高了性能。

要对可变数量的条目进行排序,就需要在代码中包含分支语句,并且不同处理器专门处理这些分支的元件数量也不同。

研究人员在对这种情况进行评估时,使用了100台不同的计算设备。AlphaDev 在这类场景下同样找到了进一步榨取性能的方法,下面我们以一次最多排序 4 个条目的函数为例,看看它到底是怎么操作的。

在 C++ 库的现有实现中,代码需要进行一系列测试来确认具体需要对多少个条目做排序,再根据条目数量调用相应的排序函数。

而 AlphaDev 修改后的代码则采取更加“神奇”的思路:它先测试是不是 2 个条目,如果是则调用相应函数立即做排序。如果数量大于 2 个,则代码会先对前 3 个条目做排序。这样如果确实只有 3 个条目,则返回排序结果。由于实际是有 4 个条目要做排序,所以 AlphaDev 会运行专门代码,以非常高效的方式将第 4 个条目插入到前 3 个已经排序完成的条目中的适当位置。

这种办法听起来有点怪异,但事实证明其性能确实始终优于现有代码。

由于 AlphaDev 确实生成了更高效的代码,所以研究团队打算把这些成果重新合并到 LLVM 标准 C++ 库中。但问题是这些代码为汇编格式,而非 C++。因此,他们需要进行逆向计算,以找出生成相同程序集的 C++ 代码。

这句话的重写版本:现在,这部分代码已经被整合入 LLVM 工具链,并进行了近十年以来的首次更新。根据研究人员的估计,AlphaDev每天产生的新代码被执行数万亿次。

结束语

这真是太好了!我们程序员早在很早以前就学会了这种基本的排序任务,但现在我们的速度提高了 70%。我们都依赖的算法和库中的 AI 提供了重大的加速,让人感到非常兴奋。”有开发者对谷歌 DeepMind 的成果表示振奋。

但也有开发者并不买账:“相当令人失望……1.7% 的改善?5 个元素的序列 70%?可能是最不受欢迎、最不切实际的应用研究……”也有开发者表示:“说发现了新算法是不是有点误导人?似乎更像是算法优化。无论如何这仍然很酷。”

参考链接:

https://arstechnica.com/science/2023/06/googles-deepmind-develops-a-system-that-writes-efficient-algorithms/

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

深度:为什么中国数据库领域没有出现像Snowflake这样的巨头?

十七年来奇葩大崩溃!为不让OpenAI和谷歌白拿数据,Reddit 收取巨额API 费用还诽谤开发者,社区爆发大规模抗议

“偷”代码建起公司、学历造假、6天拿下1亿美元却拖欠工资,这位AI独角兽CEO屡遭质疑后亲自回应了

以上是谷歌借AI打破十年排序算法封印,每天被执行数万亿次,网友却说是最不切实际的研究?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:搜狐。如有侵权,请联系admin@php.cn删除
谷歌三件套指的是哪三个软件谷歌三件套指的是哪三个软件Sep 30, 2022 pm 01:54 PM

谷歌三件套指的是:1、google play商店,即下载各种应用程序的平台,类似于移动助手,安卓用户可以在商店下载免费或付费的游戏和软件;2、Google Play服务,用于更新Google本家的应用和Google Play提供的其他第三方应用;3、谷歌服务框架(GMS),是系统软件里面可以删除的一个APK程序,通过谷歌平台上架的应用和游戏都需要框架的支持。

为什么中国不卖google手机为什么中国不卖google手机Mar 30, 2023 pm 05:31 PM

中国不卖google手机的原因:谷歌已经全面退出中国市场了,所以不能在中国销售,在国内是没有合法途径销售。在中国消费市场中,消费者大都倾向于物美价廉以及功能实用的产品,所以竞争实力本就因政治因素大打折扣的谷歌手机主体市场一直不在中国大陆。

谷歌超强AI超算碾压英伟达A100!TPU v4性能提升10倍,细节首次公开谷歌超强AI超算碾压英伟达A100!TPU v4性能提升10倍,细节首次公开Apr 07, 2023 pm 02:54 PM

虽然谷歌早在2020年,就在自家的数据中心上部署了当时最强的AI芯片——TPU v4。但直到今年的4月4日,谷歌才首次公布了这台AI超算的技术细节。论文地址:https://arxiv.org/abs/2304.01433相比于TPU v3,TPU v4的性能要高出2.1倍,而在整合4096个芯片之后,超算的性能更是提升了10倍。另外,谷歌还声称,自家芯片要比英伟达A100更快、更节能。与A100对打,速度快1.7倍论文中,谷歌表示,对于规模相当的系统,TPU v4可以提供比英伟达A100强1.

谷歌并未放弃TensorFlow,将于2023年发布新版,明确四大支柱谷歌并未放弃TensorFlow,将于2023年发布新版,明确四大支柱Apr 12, 2023 am 11:52 AM

2015 年,谷歌大脑开放了一个名为「TensorFlow」的研究项目,这款产品迅速流行起来,成为人工智能业界的主流深度学习框架,塑造了现代机器学习的生态系统。从那时起,成千上万的开源贡献者以及众多的开发人员、社区组织者、研究人员和教育工作者等都投入到这一开源软件库上。然而七年后的今天,故事的走向已经完全不同:谷歌的 TensorFlow 失去了开发者的拥护。因为 TensorFlow 用户已经开始转向 Meta 推出的另一款框架 PyTorch。众多开发者都认为 TensorFlow 已经输掉

LLM之战,谷歌输了!越来越多顶尖研究员跳槽OpenAILLM之战,谷歌输了!越来越多顶尖研究员跳槽OpenAIApr 07, 2023 pm 05:48 PM

​前几天,谷歌差点遭遇一场公关危机,Bert一作、已跳槽OpenAI的前员工Jacob Devlin曝出,Bard竟是用ChatGPT的数据训练的。随后,谷歌火速否认。而这场争议,也牵出了一场大讨论:为什么越来越多Google顶尖研究员跳槽OpenAI?这场LLM战役它还能打赢吗?知友回复莱斯大学博士、知友「一堆废纸」表示,其实谷歌和OpenAI的差距,是数据的差距。「OpenAI对LLM有强大的执念,这是Google这类公司完全比不上的。当然人的差距只是一个方面,数据的差距以及对待数据的态度才

参数少量提升,性能指数爆发!谷歌:大语言模型暗藏「神秘技能」参数少量提升,性能指数爆发!谷歌:大语言模型暗藏「神秘技能」Apr 11, 2023 pm 11:16 PM

由于可以做一些没训练过的事情,大型语言模型似乎具有某种魔力,也因此成为了媒体和研究员炒作和关注的焦点。当扩展大型语言模型时,偶尔会出现一些较小模型没有的新能力,这种类似于「创造力」的属性被称作「突现」能力,代表我们向通用人工智能迈进了一大步。如今,来自谷歌、斯坦福、Deepmind和北卡罗来纳大学的研究人员,正在探索大型语言模型中的「突现」能力。解码器提示的 DALL-E神奇的「突现」能力自然语言处理(NLP)已经被基于大量文本数据训练的语言模型彻底改变。扩大语言模型的规模通常会提高一系列下游N

四分钟对打300多次,谷歌教会机器人打乒乓球四分钟对打300多次,谷歌教会机器人打乒乓球Apr 10, 2023 am 09:11 AM

让一位乒乓球爱好者和机器人对打,按照机器人的发展趋势来看,谁输谁赢还真说不准。​机器人拥有灵巧的可操作性、腿部运动灵活、抓握能力出色…… 已被广泛应用于各种挑战任务。但在与人类互动紧密的任务中,机器人的表现又如何呢?就拿乒乓球来说,这需要双方高度配合,并且球的运动非常快速,这对算法提出了重大挑战。在乒乓球比赛中,首要的就是速度和精度,这对学习算法提出了很高的要求。同时,这项运动具有高度结构化(具有固定的、可预测的环境)和多智能体协作(机器人可以与人类或其他机器人一起对打)两大特点,使其成为研究人

超5800亿美元!微软谷歌神仙打架,让英伟达市值飙升,约为5个英特尔超5800亿美元!微软谷歌神仙打架,让英伟达市值飙升,约为5个英特尔Apr 11, 2023 pm 04:31 PM

ChatGPT在手,有问必答。你可知,与它每次对话的计算成本简直让人泪目。此前,分析师称ChatGPT回复一次,需要2美分。要知道,人工智能聊天机器人所需的算力背后烧的可是GPU。这恰恰让像英伟达这样的芯片公司豪赚了一把。2月23日,英伟达股价飙升,使其市值增加了700多亿美元,总市值超5800亿美元,大约是英特尔的5倍。在英伟达之外,AMD可以称得上是图形处理器行业的第二大厂商,市场份额约为20%。而英特尔持有不到1%的市场份额。ChatGPT在跑,英伟达在赚随着ChatGPT解锁潜在的应用案

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

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具