DeepMind创建了一个名为AlphaCode的人工智能系统,称其“编写具有竞争力水平的计算机程序”。系统通过人类编程竞赛中编码难题进行测试,发现其程序达到了“排名”水平,进入前54%的人类编程者之列。DeepMind表示,这一结果是向自主编码迈出的重要一步,尽管AlphaCode的技能不一定能代替普通程序员所面临的所有编程任务。
DeepMind首席研究科学家Oriol Vinyals称这项研究还处于早期阶段,但创建了一个可以灵活解决问题的AI程序,可以自动解决目前主要在人类领域的编码挑战,。Vinyals表示,从长期来看,对AlphaCode的潜力感到兴奋,它可以帮助程序员和非程序员编写代码,提高生产率或创造新的软件制作方法。
可以用来创建编程助手,有朝一日还可以编写自己的软件
AlphaCode接受了Codeforces策划的挑战,Codeforces是一个知名的编程平台,它每周为编程人员分享问题和排名,类似于国际象棋中使用的Elo评级系统。这些挑战不同于程序员在日常承接商业应用时可能面临的任务类型。它们更独立,需要计算机科学中更广泛的算法和理论概念知识。可以把它们看作是结合了逻辑、数学和编程专业知识的非常专业的谜题。
AlphaCode对10个谜题进行了测试,Codeforces网站上的5000名人类用户已经解决了这些谜题。平均而言,它在54.3%的回复中名列前茅,DeepMind估计,这让该系统获得了1238分的Codeforces Elo评分。也就是说,过去6个月,在该网站上参与竞争的用户中,它位列前28%。
Codeforces创始人Mike Mirzayanov在DeepMind分享的一份声明中表示:“我可以放心地说,AlphaCode的结果超出了我的预期。我曾对此持怀疑态度,因为即使是在简单的竞争问题中,通常也不仅需要实现算法,还需要发明算法(这是最困难的部分)。AlphaCode成功地达到了一个有前途的新竞争对手的水平。”
DeepMind指出,AlphaCode目前的技能组合仅适用于竞争性编程领域,但它的能力为开发未来工具打开了大门,使编程更容易理解,并有一天实现完全自动化。
许多其他公司也在开发类似的应用程序。例如,微软和人工智能实验室OpenAI已经改编了后者的语言生成模型GPT-3,使之成为一个自动完成代码串的程序。与GPT-3一样,AlphaCode也是基于一种称为转换器的人工智能架构,这种架构特别擅长解析顺序文本,包括自然语言和代码。对于最终用户来说,这些系统的工作原理就像许多智能输入法的撰写功能一样——为完成你正在写的内容提供建议。
人工智能系统因产生漏洞百出、易受攻击的代码而受到批评
近年来,人工智能编码系统的开发取得了很大的进展,但这些系统还远远不能取代人类程序员的工作。它们生成的代码常常是错误的,而且由于系统通常使用公共代码库进行训练,它们有时会复制受版权保护的代码素材。
在一项对代码库GitHub开发的人工智能编程工具Copilot的研究中,研究人员发现,该工具约40%的输出包含安全漏洞。安全分析师甚至提出,恶意行为者可能会故意编写并与在线隐藏的后门共享代码,然后这些代码可能会被用来训练人工智能程序,让它们将这些错误插入未来的程序中。
AlphaCode的出现意味着,人工智能编码系统可能会慢慢地融入程序员的工作中——开始是作为助理,在被信任能够独立工作之前,人工智能的建议会受到怀疑。换句话说,他们有一个试用期。但到目前为止,这些程序学得很快。
领取专属 10元无门槛券
私享最新 技术干货