Deepmind 的人工智能正在学习编码艺术

2023-06-26 0 497

Deepmind 的人工智能正在学习编码艺术

在计算机科学领域,也许没有比排序更基本的任务了。 冒泡、堆、合并——任您选择。 在计算机内部重新排序数据的方法已经被理论化了,作为数百万新手的实践练习,并由专家开发人员优化了数十年。 用任何编程语言输入 sort() 函数,它的代码都是值得信赖的。 不要碰它。 它已经很好用了。

但去年,谷歌 Deepmind 工程师开发的人工智能系统取得了显着的进步,足以发挥重要作用。 Deepmind 将该系统称为 AlphaDev,其任务是提出一种新方法,用流行的编码语言 C++ 对数字中的短序列进行排序。 这意味着深入研究,让人工智能用汇编代码构建新算法——这些指令弥合了 C++ 等编程语言和计算机硬件之间的差距。 当 C++ 开发人员告诉计算机“排序”时,这些命令会转换为机器可读的代码,告诉计算机的内存和处理器具体要做什么:将数据移动到哪里以及如何更改数据。 这是比特与金属相遇的地方。

实验成功了。 自去年 4 月以来,C++ 的运行速度略有加快,这要归功于一组新的 AI 炮制的排序算法。 但 AlphaDev 的工程师在《自然》杂志上描述了今天的工作,据他们称,这只是第一步。 “我们希望优化整个计算堆栈,”领导该排序项目的 Deepmind 研究员 Daniel Mankowitz 说道。 Mankowitz 表示 AlphaDev 不仅改进了排序算法,还改进了哈希等其他基本任务的算法。

“我认为这项工作非常令人兴奋,”麻省理工学院程序综合专家 Armando Solar-Lezama 说道,他没有参与这项研究。 让人工智能提出新的排序算法很有用; 他说,构建一个能够学习如何在各种任务中编写最先进的代码的人工智能是一件更重要的事情。 这意味着 AlphaDev 已经开始学习一些关于编码艺术本身的更基础的知识。

当然,这伴随着很大的限制。 “这些都是非常非常小的程序,”他补充道,汇编代码中总共不超过几十条指令。 但这些微小的程序往往代表着计算机性能的巨大瓶颈,并且已经被人们尽可能地优化了。 总体而言,AlphaDev 的新 C++ 排序算法在对长数字序列进行排序时比以前的方法效率提高了 1.7%,对五项序列进行排序时速度提高了 70%。 曼科维茨说,从规模上看,这些改进是累加起来的。 自从人工智能编写的代码提交给 C++ 的主要开源库 Libc++ 以来,他估计这些算法每天被使用数万亿次。

这些改进得益于一种名为强化学习的技术,该技术与帮助 Deepmind 的人工智能掌握国际象棋和围棋等游戏的方法相同。 这种类型的人工智能通过实践来学习。 它的工作原理是将给定的任务(例如编写汇编程序)视为游戏,其中人工智能因做出提高程序效率的智能动作而获得奖励。 随着时间的推移,系统会努力最大化这种奖励,从而产生获胜的围棋策略或更快的组装程序。 这与 GPT-4 等大型语言模型中的人工智能不同,后者依赖大量数据来学习如何编写单词或代码。 这对于编写反映互联网基调的文章或生成常见的代码段非常有用。 但它并不擅长为人工智能从未见过的编码挑战提供新颖、最先进的解决方案。

就像下棋或围棋一样,编写汇编代码是一项棘手的、开放式的任务,有许多潜在的动作,也有很多可能会搞砸的方式。 C++ 或 Python 等现代编程语言通过反映人类语言的简短命令掩盖了移动数据的本质。 20世纪50年代,当这种“高级”语言问世时,一些人认为编程问题已经基本解决了。 在那之前,编程本质上只是在汇编中进行混杂,以至于 Fortran(最早的高级语言之一)最初被称为“Fortran 自动编码系统”,因为它的命令总是翻译成工作汇编代码。 Solar-Lezama 表示:“Fortran 将比人类编写出更好的代码,而且不会出现错误。” “今天这听起来很可笑。 但这是真的。”

改进 C++ 或 Fortran 这样的语言通常仍然需要修改底层程序集,找到使其运行得更快的方法,通常是通过删除无关的步骤。 因为汇编缺乏高级编程的形式结构和抽象,而且因为一个错误就可能导致算法崩溃,所以人工智能必须玩的游戏毫无乐趣。 “它会一次又一次地失败,”索拉尔-莱扎马解释道。

AlphaDev 的创新在于它改进了工作汇编程序的结构在 AI 代码中的表示方式。 这使得它的奖励系统能够更好地缩小可能性。 人工智能变得更好、更快。

从较高的层面来看,人工智能的排序解决方案看起来很熟悉。 将少数数字按升序排列的方法只有这么多。 它设法使用一些非常规指令(人类编码员可能不会想到尝试的指令)从汇编序列中删除一些指令。 曼科维茨将这些动作与 37 步棋进行了比较,这是 AlphaGo 在 2016 年与大师李世石的表演赛中所下的臭名昭著的手法。 这一举动非常奇怪,以至于观察者最初认为是计算机搞砸了比赛。 但它最终成为计算机获胜的关键,并且从此改变了游戏的玩法。

因此,生成的代码看起来有点奇怪,部分原因是它需要强制计算机以高度特定的方式移动数据。 “这绝对不是一种经济的编写代码的方式,”去年春天审查过 Deepmind 提案的 Libc++ 贡献者 Nikolas Klauser 说道。 他说,这增加了将代码实际投入生产的风险。 更新像排序这样的基本算法是有风险的,这些算法多年来一直运行良好,但效率可能只会有很小的提高。 但最终,一切都得到了证实。 代码更新已完成。

曼科维茨承认,目前 AlphaDev 可以生成的程序很小,并且可能需要人工智能开发方面的新突破才能生成更大、更复杂的算法,从而击败人类的最佳尝试。 但对于像 Solar-Lezama 这样的代码生成专家来说,这项研究是迈向更通用的人工智能编码的重要一步,这让他反思了 Fortran 及其“自动编程”系统。 它让程序员失业了吗? 一点也不。 它改变了编码员的意义吗? 完全地。

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 行业资讯 Deepmind 的人工智能正在学习编码艺术 https://www.7claw.com/58141.html

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务