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

news2025/2/12 13:21:15

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

最近,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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/639845.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线程的生命周期

我是一个线程 第一回 初生牛犊 我是一个线程,我一出生就被编了个号: 0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴。 我身边…

一文教你如何在数据库中安全地存储密码

前言 作者:神的孩子在歌唱 大家好,我叫智 让我们先谈谈什么不该做。 不要以明文形式存储密码。任何具有数据库内部访问权限的人都可以看到它们。如果数据库受损,攻击者可以轻松获取所有密码。那么,我们应该如何在数据库中安全地存…

10个ai算法常用库java版

今年ChatGPT 火了半年多,热度丝毫没有降下来。深度学习和 NLP 也重新回到了大家的视线中。有一些小伙伴问我,作为一名 Java 开发人员,如何入门人工智能,是时候拿出压箱底的私藏的学习AI的 Java 库来介绍给大家。 这些库和框架为机器学习、深度学习、自然语言处理等提供了广…

OceanBase 安全审计之身份鉴别

本文主要以 MySQL 和 OceanBase 对比的方式,来介绍 OceanBase(MySQL 模式)安全体系中关于身份鉴别的相关内容,包括身份鉴别机制、用户名组成、密码复杂度、密码过期策略等。 作者:金长龙 爱可生测试工程师,…

快速掌握SQL语言——数据查询语言DQL

0️⃣前言 数据查询语言DQL是一种用于查询数据库中数据的语言,它是SQL的一部分,也是SQL中最常用的语言之一。 文章目录 0️⃣前言1️⃣介绍2️⃣使用3️⃣重要性4️⃣总结 1️⃣介绍 DQL(Data Query Language) 主要用于从数据库中…

为PyCharm IDE 配置三剑客:QtDesigner[可视化设计器]、PyUIC[可视化设计器ui文件转py代码]、PyRcc[资源文件转py代码]

过去一直在使用Eric6 PyQt5,然而最近它[已然是古董级的了]似乎有些不太正常, 像我这样有强迫症的人怎么可以容忍呢? 于是有了换IDE的想法,听说PyCharm是个高富帅,大家都很喜欢用它呢!于是乎才有了这篇文章。 前提条…

【C++ 笔记五】STL 标准模板库 —— 容器基础进阶

【C 笔记五】STL 标准模板库 —— 容器基础进阶 文接上文 【C 笔记四】STL 标准模板库 —— 容器基础 文章目录 【C 笔记五】STL 标准模板库 —— 容器基础进阶I - 简单回顾1.1 - 序列式容器(顺序容器)1.2 - 关联式容器 (关联容器)1.3 - 访问方法/对外接…

面试-java常见问题

JVM 配置 程序计数器:当前线程所执行的字节码的行号指示器java虚拟机栈:临时变量元空间:类常量池,运行时常量池方法区:类信息,静态变量堆:对象实例,Sting常量池等 类加载过程 加载->链接&am…

使用javacv中的ffmpeg实现录屏

今天突发奇想,想自己写一个录屏的软件,上次写了一个专门录音的Demo,但是要把声音和视频放到一起合成一个mp4文件,着实有一点艰难,所以就打算使用ffmpeg来写一个,而这篇博客中会顺便谈一谈我碰到的各种坑。 …

JVM面试题50道

1.JDK、JRE、JVM关系? Jdk (Java Development Kit) : java语言的软件开发包。包括Java运行时环境Jre。 Jre (Java Runtime Environment) :Java运行时环境,包括Jvm。 Jvm (Java Virtual Machine) :一种用于计算机设备的规范。 Java语言在不同…

JavaWeb小记——Tomcat

目录 Tomcat简介 Tomcat下载安装 Tomcat启动 Tomcat关闭 常见问题 项目发布 发布方式一 发布方式二 发布方式三 IDEA打war包 Tomcat和IDEA整合 IDEA发布动态项目 Tomcat简介 Tomcat是Apache基金组织下的一款免费的开源的且支持Servelet和JSP规范的服务器 Tomcat下…

Spark大数据处理学习笔记1.3 使用Scala集成开发环境

文章目录 一、学习目标二、搭建Scala的IntelliJ IDEA开发环境(一)启动IDEA(二)安装Scala插件(三)配置IDEA使用的默认JDK(四)创建Scala项目1、创建Scala项目 - ScalaDemo2、创建Scala…

跨平台潜能解锁:将Ionic框架与小程序容器相结合

Ionic是一个用于构建跨平台移动应用程序的开源框架。它结合了HTML、CSS和JavaScript等技术,帮助开发者创建具有原生应用体验的移动应用程序。Ionic提供了一套用户界面组件和工具,可用于构建高度交互和美观的移动应用界面。 Ionic基于Angular框架&#x…

为什么 Twitter 和 Facebook 的网站页面变得越来越像?

Twitter和Facebook这两个社交媒体平台在不同的领域取得了巨大的成功。Twitter以其独特的推文形式而闻名,而Facebook则以其广泛的社交网络和内容分享功能而著称。 然而,近年来,这两个平台在设计和布局上的相似之处越来越明显。为什么会出现这…

奖金高达534万!2023第四届全国人工智能大赛

2023第四届全国人工智能大赛 报名链接: https://www.datafountain.cn/special/NAIC2023?target13250069&specialNAIC2023 叮咚,已向您发送组队邀请!今年最值得参与的第四届全国人工智能大赛开放报名了,3道赛题奖金534万&…

又一重点项目,石岩新能源产业园建面61.6万平,配27班学校

近日,宝安区城市更新和土地整备局发布,关于石岩街道总部经济园区城市更新单元(一期南及二期)“工业上楼”单元规划(草案)已通过专班会议审议的公告。 公告显示,项目申报主体为深圳市开宝安区投资管理集团有限公司&…

信息系统项目管理师(软考高项)备考总结

简介 信息系统项目管理师,计算机技术与软件(高级)专业技术资格。 相关考试简称软考,该资质业内简称高项。 证书价值 自行百度吧,决定考的肯定知道他能带来什么价值了。 笔者是因为从事软件开发,服务政…

js的一些工具函数以及方法

部分方法复制于:20 个 JS 工具函数助力高效开发 reduce 举例:数组求和 let a[1,3,6,5,7]; let init0;//累加的初始值,默认为0,可不写 let ba.reduce((pre,cur,index,arr)>{console.log(当前要加序号:,index);cons…

左右排版的PDF,如何转换为单栏排版的word?

将左右排版的PDF转换为单行排版的WORD文字版需要进行以下步骤: 1. 使用PDF转换工具将PDF转换为WORD格式。有很多在线或离线的PDF转WORD工具可供选择,例如金鸣表格文字识别、Adobe Acrobat、Smallpdf、Zamzar等。 2. 打开WORD文档后,选择“页…

24个Jvm面试题总结及答案

1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每…