AlphaCode能替代人类程序员吗?网友:被替代也挺好,这样就可以少写代码多开会了...

fcb48c98de24d5d2c333f8af05e36fdc.png

来源:AI前线

作者:Ben Dickson

译者:王强

策划:冬梅

本文属于我们的人工智能研究论文评论系列,这个系列旨在探讨人工智能领域的最新研究成果。

DeepMind 是最新的人工智能研究实验室。它推出了一个可以生成软件源代码的深度学习模型,成果令人印象深刻。该模型被称为 AlphaCode,基于 Transformer,与 OpenAI 在其代码生成模型中使用的架构是一样的。

编程是深度学习和大型语言模型颇有前途的应用之一。对编程人才日益增长的需求刺激业界发起了一场发展创作工具的竞赛,这些工具可以提升开发人员的生产力,并给非开发人员提供创造软件的工具。

而在这方面,AlphaCode 肯定给人留下了深刻印象。它已经成功解决了很多复杂的编程挑战,这些难题往往需要数小时的计划、编程和测试。有一天它可能会成为一个很好的工具,可以用来把问题描述变成实用的代码。

但它肯定没法和任何级别的人类程序员相提并论。这是一种完全不同的软件创建方法,其中没有人类的思维和直觉参与,所以是不完整的。

编程竞赛

d6877234f4b04671b026ea492dbba752.png

编程挑战描述的例子(来源:DeepMind)

AlphaCode 不是业内在这一领域唯一的成果,但它完成了一项非常复杂的任务。其他类似的系统专注于生成简短的代码片段,如一个函数或一个代码块,旨在执行一个小任务(例如建立一个 web 服务器或从 API 系统中提取信息)。虽然这些任务令人印象深刻,但当语言模型被暴露在足够大的源代码语料库中时,这些任务就变得微不足道了。

相比之下,AlphaCode 的目的是解决竞争性的编程问题。编程挑战的参与者必须阅读挑战描述,理解问题,将其转化为算法解决方案,用通用语言实现它,并针对一组有限的测试案例进行评估。最后,他们的结果是根据不在实现过程中的隐藏测试的性能来评估的。编程挑战还可以有其他条件,如时间和内存限制。

总体而言,参加编程挑战的机器学习模型必须生成整个程序,解决一个与它之前所见所有事物都不一样的问题。这比根据以前看到的例子合成一个源代码摘录要困难得多。

f7193d6a90e3e38d3921e85635e46a59.png

编程挑战解决方案的例子(来源:DeepMind)

Transformer 和大型语言模型的力量

AlphaCode 是大型语言模型在解决复杂问题方面取得进展的又一个例子。这种深度学习系统一般被称为序列到序列模型(seq2seq)。Seq2seq 算法将一串数值(字母、像素、数字等)作为输入,并生成另一串数值。这是许多自然语言任务(如机器翻译、文本生成和语音识别)中使用的方法。

根据 DeepMind 的论文,AlphaCode 使用了一个编码器 - 解码器 Transformer 架构。近年来,Transformer 变得特别流行,因为它们可以处理很大的数据序列,而对内存和计算的要求比它们的前辈,循环神经网络(RNN)和长短时记忆网络(LSTM)要少得多。

b484509ce8d5fe86473bffbf47e7279e.png

Transformer 网络结构

AlphaCode 的编码器部分为目标问题的自然语言描述创建一个数字表示。解码器部分接收由编码器生成的嵌入向量,并试图生成解决方案的源代码。

事实证明,Transformer 模型很擅长此类任务,特别是当它们被提供足够的训练数据和计算能力时更是如此。但比起把原始数据扔给超大型神经网络这样的暴力手段,在我看来,AlphaCode 的真正亮点更多归功于 DeepMind 的科学家在设计训练过程和生成及过滤其结果的算法方面展现出来的聪明才智。

无监督和有监督学习

为了创建 AlphaCode,DeepMind 的科学家使用了无监督预训练和有监督微调的组合。这通常被称为自监督学习,这种方法在没有足够的标记数据或数据注释昂贵且耗时的应用中变得很受欢迎。

在预训练阶段,AlphaCode 在从 GitHub 提取的 715 千兆字节的数据上进行无监督学习。该模型的训练过程是尝试预测语言或代码片段的缺失部分。这种方法的优点是,它不需要任何形式的注释;通过接触越来越多的样本,ML 模型逐渐变得更善于为文本和源代码的结构创建数字表示。

59afcc428c54511e51eae1bc20e3d8a0.png

训练和应用 AlphaCode 的算法(来源:DeepMind)

之后预训练的模型在 CodeContests 上做微调,CodeContests 是由 DeepMind 团队创建的一个有注释的数据集。该数据集包含问题陈述、正确和错误的提交,以及从各种来源收集的测试案例——包括 Codeforces、Description2Code 和 IBM 的 CodeNet。该模型经过训练,可以将挑战的文本描述转化为源代码结果。它的结果用测试案例进行评估,并与正确提交的案例进行对比。

在创建数据集时,研究人员特别注意避免训练、验证和测试集之间的历史性重叠。这确保了 ML 模型在面临编程挑战时不会生成记忆性的结果。

代码生成和过滤

一旦 AlphaCode 训练完成,它就会针对以前没有见过的问题进行测试。当 AlphaCode 处理一个新问题时,它会产生许多解决方案。然后,它使用一个过滤算法来选择最好的 10 个候选方案,并将它们提交到竞赛中。如果其中至少有一个是正确的,那么这个问题就被认为已经解决了。

根据 DeepMind 的 论文,AlphaCode 可以为每个问题生成数百万个样本,且它通常会生成成千上万的解决方案。然后 AlphaCode 对这些样本进行过滤,只留下那些通过了问题陈述中包含的测试的样本。根据论文,这一过程将删除大约 99% 的生成样本。但这样仍然会留下成千上万的有效样本。

为了优化样本选择过程,研究团队使用了一种聚类算法来将解决方案分为多个组。根据研究人员的说法,聚类过程倾向于将有效的解决方案组合在一起。这样就更容易找到一小部分有可能通过竞赛隐藏测试的候选者。

据 DeepMind 称,当在流行的 Codeforces 平台上的实际编程比赛中进行测试时,AlphaCode 在参赛者中平均排名是前 54%,考虑到编程挑战的难度,这样的结果非常令人印象深刻。

72c0a1051de4e3d3511e5df41df39665.png

AlphaCode 的问题解析和代码生成过程的可视化(来源:DeepMind)

人工智能 vs 人类

DeepMind 的博客正确地指出,AlphaCode 是人工智能代码生成系统第一次“在编程比赛中达到了具有竞争力的水平”。

然而,一些出版物将这一说法误认为 AI 编程“与人类程序员一样出色”,这就是将狭义的人工智能与人类的一般问题解决能力对比的谬误。

例如,一般来说,你可以预期一位擅长国际象棋和围棋的选手在其他许多方面也很聪明。事实上,在学习和掌握国际象棋之前,你必须先获得其他许多认知技能。然而,过去几十年的经验已经证明,人工智能系统可以在不获得所有这些技能的情况下,通过捷径解决非常困难的问题。

两个最好的例子是 DeepBlue 和 AlphaGo,这两个人工智能系统在国际象棋和围棋方面击败了人类世界冠军。虽然这两个系统都是计算机科学和人工智能领域了不起的成就,但它们只擅长一项任务。它们无法在其他任何需要仔细规划和制定战略的任务中与人类对手对抗,而这些技能是那些人类在成为国际象棋和围棋大师之前就已经掌握的。

竞争性编程也是一回事。一位在编程挑战中达到前列水平的人类程序员已经花了多年时间学习。他们可以抽象地思考问题、解决更简单的挑战、编写简单的程序,并表现出其他许多技能,而这些技能在编程比赛中被认为是理所当然的,并不会得到评估。

一言以蔽之,这些比赛是为人类设计的。你可以肯定,一般来说,在编程竞赛中排名较高的选手也是一名出色的程序员。这就是为什么许多公司使用这些挑战来做招聘决定。

9dde4b66569b817b8775b9d63fc17eb9.png

相比之下,AlphaCode 是竞争性编程的一个捷径——尽管这是一条出色的捷径。它创造了新颖的代码。它不会从其训练数据中复制 - 粘贴。但它并不等同于一名普通的程序员。

人类程序员使用他们的直觉来引导他们有限的计算资源向正确的解决方案方向发展。他们使用调试、分析和审查过程来完善他们的代码。相比之下,AlphaCode 会生成成千上万的样本——有时多达 100,000 个——并对它们进行过滤,以找到有效的样本。

正如计算机科学教授 Ernest Davis 所观察到的,“这个过程很像是一大群猴子随机打字就能打出来哈姆雷特的故事。AlphaCode 已经成功地将猴子训练到了一个了不起的程度,但他们仍然需要大量猴子。然后它生成了 10 个候选结果,如果其中一个是正确的,它就认为自己成功了。”

他说的就是无限猴子定理,该定理指出,“一只猴子在打字机键盘上随机敲击按键无限长的时间,几乎肯定会打出任何给定的文字”,自然包括了莎士比亚的哈姆雷特。

这并不是对 AlphaCode 的攻击。事实上,AlphaCode 证明了凭借巧妙的设计、足够的计算能力和大量的数据,你就可以创建一个人工智能系统来搜索一个巨大的解决方案空间,而这个空间是不可能通过粗暴的计算来探索的(这也是 DeepMind 对 AlphaGo 所做的事情)。

然而,我们也必须承认这种方法的局限性。首先,正如 Davis 所指出的那样,随着解决方案变得越来越长,问题会变得极为困难。他写道:“AlphaCode 需要 100 万个样本才能在 20 行的程序上获得 34% 的正确率;要制作一个 200 行的程序——也就是计算机科学二年级的标准作业的长度——很可能需要 10^60 个样本”。

第二,AlphaCode 明确要求有良好的问题陈述和测试案例来评估和过滤它所生成的成千上万的样本。“现在,毫无疑问,提供输入和输出对于编程比赛中的人类参赛者是非常有用的,”Davis 写道。“尽管如此,就算不提供这些信息,人类程序员在大多数情况下依旧可以成功,只是要多做一点工作。相比之下,如果不提供具体的例子,AlphaCode 就会完全陷入困境;成功率会下降到不足百一。”

因此,与其让 AlphaCode 与人类程序员对决,我们更应该关注 AlphaCode 和其他类似的人工智能系统在与人类程序员联手时能做什么事情。这种工具可以对人类程序员的生产力产生巨大的影响。它们甚至可能给编程文化带来变化,使人类将重点转向制定问题(这门学科仍然是人类智能的领域)并让人工智能系统生成代码。

但人类程序员仍将处于控制地位。他们必须善用人工智能生成代码的力量和种种限制。

人们应该意识到 AlphaCode 的本来面目:一个代码生成器,可以为精心设计的问题陈述提出良好的候选解决方案。人们也应该承认它并不是:人类程序员的数字等价物。

原文链接:

https://bdtechtalks.com/2022/02/07/deepmind-alphacode-competitive-programming/

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)大脑研究计划,构建互联网(城市)大脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。每日推荐范围未来科技发展趋势的学习型文章。目前线上平台已收藏上千篇精华前沿科技文章和报告。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

457f19d7fe037f25cffa21415c886ba0.png

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

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

相关文章

Django - 内置admin

Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有:复制代码依赖APP:django.contrib.authdjango.contri…

Auth认证模块

Auth认证模块 本文目录 1 Auth模块是什么2 auth模块常用方法3 扩展默认的auth_user表回到目录1 Auth模块是什么 Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统。此时我们需要实现包括用户注册、用…

2021年图灵奖,花落高性能计算先驱、田纳西大学教授Jack Dongarra

来源:智源社区“我是一个数学家,对我来说,一切都是线性代数,但世界也正在看到这一点,”Jack Dongarra在采访中表示。“这是我们用来建造其它东西的材料。”他说,机器学习和人工智能中的大多数问题都可以追溯到线性代数…

万字深度好文!视觉-语言(VL)智能:任务、表征学习和大型模型

来源:AI科技评论编译:Jocelyn编辑:陈彩娴本文对视觉-语言(VL)智能按时间顺序进行了全面调研,并将这一领域的发展总结为三个阶段:第一个阶段是2014-2018年,其间,专门的模型…

day60 BBS

BBS项目目的: 带你从头到尾把django再复习一遍 公司开发项目的流程 # 1.需求分析 客户提需求但是并不是完全按照客户需求来 产品经理和架构师开发组组长 去之前架构师和开发组组长 会提前先预想一套方案 有意识的引导客户朝着自己已经想好的解决方案上去提需求 # 2.项目设计 框…

redis笔记_源码_内存分配

文件:zmoalloc.h zmoalloc.c 1.求两个整数的余数 eg: 求_n对sizeof(long)的余数(_n&(sizeof(long)-1)), 性能提升为50%~100% 左右。 转载于:https://www.cnblogs.com/water-bear/p/11598618.html

转发,脑机接口领域又一重要成果!

来源:传感器技术作者:余淼硕士学历,长期从事智能传感控制、信息通信领域研究工作。“ 以脑-机交互(BCI)为核心的神经工程技术,让人类真正可以做到“心想事成”。据首都医科大学官网报道,首都医科…

《2022城市大脑建设标准研究报告》在京正式发布

2022年3月31号,《2022城市大脑建设标准研究报告》在北京正式发布,该报告由中国指挥与控制学会,中国科学院虚拟经济与数据科学研究中心,国家创新与发展战略研究会数字治理研究中心,天府大数据研究院,远望智库…

PHP7 ini 配置大全

来自书本<<PHP7底层源码设计与实现>> 多图警告⚠️ 转载于:https://www.cnblogs.com/wlphp/p/11600566.html

涌现:21世纪科学的统一主题

来源&#xff1a;medium.com作者&#xff1a;David Pines译者&#xff1a;郭瑞东审校&#xff1a;刘志航、梁金编辑&#xff1a;邓一雪原文题目&#xff1a;Emergence: A unifying theme for 21st century science原文链接&#xff1a;https://medium.com/sfi-30-foundations-f…

福布斯:2022年计算机视觉领域五大发展趋势

来源&#xff1a;科技日报记者&#xff1a;刘霞计算机视觉&#xff08;也被称为机器视觉&#xff09;是人工智能技术最令人兴奋的应用之一。该技术旨在“教”会计算机如何“看”世界&#xff0c;它与自然语言处理及语音识别并列为机器学习领域的三大热点方向。计算机视觉技术囊…

“走近”量子模拟

来源&#xff1a;中国军网作者&#xff1a;张媛、张远、达平当下&#xff0c;量子计算在先进材料以及生物化学模拟方面正崭露头角。因为量子力学解释了这些材料的基本物理特性&#xff0c;量子计算非常适合进行模拟。那么&#xff0c;什么是量子模拟&#xff1f;量子模拟有什么…

redis笔记_源码_简单动态字符串SDS

参照:https://zcheng.ren/sourcecodeanalysis/theannotatedredissourcesds/#sds%E5%B0%8F%E7%BB%93 这里用char buf[] 而不用char* buf 的原因是方便内存释放 转载于:https://www.cnblogs.com/water-bear/p/11611804.html

redis笔记_源码_双端链表list

参考:https://redissrc.readthedocs.io/en/latest/datastruct/adlist.html 转载于:https://www.cnblogs.com/water-bear/p/11613515.html

《Science》重磅:终于完成了!迄今为止最完整的人类基因组

来源&#xff1a;生物通一个研究小组终于完成了人类基因组的序列&#xff0c;填满了基因组30亿个核苷酸的最后8%。这些区域很难放在染色体上&#xff0c;因为它们的重复性很强。在着丝粒周围&#xff0c;新增加的序列揭示了随着时间推移而增加的重复DNA层&#xff0c;这可能有助…

Meta开发了一个AI模型,尝试解决维基百科的「性别偏见」问题

来源&#xff1a;SiliconANGLE出品&#xff1a;科技行者撰文&#xff1a;海外来电图片&#xff1a;海外来电为了解决两性人物传记比例失衡的情况&#xff0c;Meta操碎了心。维基百科一直是全球访问量Top 10的网站&#xff0c;是许多人搜索历史人物与领创者资讯的第一站&#xf…

RISC-V正在采取行动,避免MIPS类的碎片化

来源&#xff1a;半导体行业观察在技术重量级人物的支持下&#xff0c;RISC-V 不断增长&#xff0c;但也带来了挑战&#xff1a;鼓励 CPU 设计人员保持一致&#xff0c;并避免MIPS和Android中发生的那种碎片化。考虑到这一点&#xff0c;协调开源指令集架构 (ISA) 开发的 RISC-…

复旦副教授魏忠钰:AI和人类对垒「奇葩说」,如何打造智能辩手?

来源&#xff1a; 智源社区作者&#xff1a;魏忠钰整理&#xff1a;熊宇轩导读&#xff1a;想象一下&#xff0c;在一场AI和人类对垒的「奇葩说」&#xff0c;智能辩手的表现会如何&#xff1f;论辩的过程&#xff0c;既需要理解对方的表达&#xff0c;同时根据对方的观点生成自…

EleutherAI:当OpenAI不够开放时,我们该如何选择?

来源&#xff1a;ScienceAI编辑&#xff1a;萝卜皮人工智能最令人不安的事情之一是它超越了人类控制、遏制或规范它的权力。然而&#xff0c;它可能会产生可怕的结果&#xff0c;例如药物发现人工智能最近错误地发现了可用作化学武器的致命毒素。今天&#xff0c;没有比 Eleuth…

星地融合→→→6G移动通信关键技术的未来

来源&#xff1a;人民邮电报作者&#xff1a;柯文卫星通信与地面移动通信融合构建全球无缝覆盖的星地融合网络&#xff0c;这一趋势作为未来6G网络技术发展的重要方向得到业界广泛认可&#xff0c;成为当前学术界和产业界研究的热点。  中国信科副总经理、专家委主任&#xf…