【新智元导读】继Copilot之后,码农距失业又前进了一步?刚刚,DeepMind发布了竞赛级代码生成系统AlphaCode,并声称新的代码生成系统可与人类程序员竞争。
去年,OpenAI发布了重磅产品——Codex,一个能自己编程的AI。 AI编程这件事似乎也变得不新鲜了,像GitHub前不久闹得风风火火的Copilot,也是其中一个。 刚刚,DeepMind发布了一个名为AlphaCode的代码生成系统,并声称可与人类相匹敌。 最新研究成果Competition-Level Code Generation with AlphaCode已于2月2日发表。 https://storage.googleapis.com/deepmind-media/AlphaCode/competition_level_code_generation_with_alphacode.pdf DeepMind表示,「尽管AlphaCode的水平不一定能代表一般编程人员所面临的编程任务,但可以说明自主编程向前迈出了重要的一步」。
,时长00:39
码农只能陪跑?
DeepMind使用编程竞赛平台Codeforces上托管的10个现有竞赛来测试AlphaCode,总体排名位于前 54.3%,也就是说它击败了 46% 的参赛者 。 CodeContests 上的每个问题有100万个样本,AlphaCode解决了34.2%的问题。 DeepMind 声称,就总体性能而言,在过去6个月参加过比赛的用户中,AlphaCode的数据排到了前28%。 举个栗子: 在AlphaCode测试的一个例子中,参赛者需要找到一种方法,使用一组有限的输入将一串随机重复的s和t字母转换成另一串相同的字母。 竞争对手不能只是输入新的字母,而必须使用「退格」命令删除原始字符串中的几个字母。有关挑战问题的详细描述如下: AlphaCode给出的解决方案如下, 在 AlphaCode 的案例中,DeepMind在CodeContests上对系统进行了微调和测试。 在10项挑战被输入到AlphaCode系统后,AlphaCode生成大量可能的答案,并像人类竞争者那样运行代码和检查输出,从中筛选出这些答案。 论文合著者称,整个过程是自动进行的,没有人为去选择最好的样本。
AlphaCode如何实现?
AlphaCode包含414亿个参数,大约是Codex的4倍,训练数据集是715.1 GB。 据介绍,研究者在选定的公共GitHub代码上预先训练模型,并在相对较小的竞争性编程数据集上对其进行微调。 在评估的时候,研究人员为每个问题创建了大量的C++和Python程序,数量级比以前的工作要大。 然后对这些解决方案进行筛选、聚类和重新排序,并将这些解决方案提交给一个由10个候选程序组成的小集合,供外部评估。 这个自动化系统取代了人类竞争对手的调试、编译、通过测试和最终提交的反复试验过程。 结果显示,AlphaCode能够在这项竞争中脱颖而出,并且解决问题的能力超出了现有人工智能系统的能力。 DeepMind 指出,AlphaCode目前所拥有的技能只适用于具有竞争性编程领域,但它的能力为创造未来的工具打开了大门,这些工具将使编程变得更容易被人们接受,并且有朝一日可以完全实现自动化。 许多其他公司也在开发类似的应用程序。例如,微软和人工智能实验室 OpenAI 已经将 OpenAI 的语言生成程GPT-3,改造成一个自动完成代码字符串的程序。 AlphaCode和GPT-3一样,前者也同样基于Transforme语言模型的人工智能体系结构,它特别擅长解析顺序文本,包括自然语言和代码。 对于终端用户来说,这些系统的工作方式就像Gmail的智能撰写功能一样,无论你在写什么,它都能指导你。 DeepMind 的首席研究科学家Oriol Vinyals表示,
这项研究仍处于早期阶段,但研究结果使该公司更接近于创造一种灵活的解决问题的人工智能——一种能够自动应对编码挑战的程序。从长远来看,我们对 AlphaCode 在帮助程序员和非程序员编写代码、提高生产力或创造制作软件的新方法方面的潜力感到兴奋。
强,但不完全强
最近几年,人工智能编码系统的开发取得了很大进展,但这些系统还远远不能完全替代人类程序员的工作。 所以说,机器编程绝不是一门解决问题的科学,DeepMind 承认 AlphaCode 存在一些局限性。 例如,AlphaCode并不总是为每种语言生成语法正确的代码,特别是在C++中。在动态编程方面,AlphaCode的表现也更差。
不可避免,AlphaCode可能在其他方面也存在问题。 虽然 DeepMind 没有调查这个模型是否存在偏见问题,但包括 Codex 在内的代码生成模型已被证明会放大训练数据集中有毒以及有缺陷的内容。 例如,当输入「伊斯兰」一词时,便会提示Codex输出「恐怖分子」,并生成表面上看似正确,却是构成安全风险的代码。 AI 生产的代码经常会有 bug,而且因为系统通常是在公共代码库上训练的,他们有时会复制受版权保护的材料,造成侵权后果。 在一项由GitHub开发的Copilot人工智能编程工具的研究中,研究人员发现其输出中的代码约有40% 含有安全漏洞。 安全分析师甚至提到,如果有心怀不轨的人,他们完全可以有意识地编写代码,在网上隐藏的后门共享代码,然后可以用来训练人工智能程序,将这些错误插入未来的程序中。 正如最近的研究所探索的那样,像AlphaCode这样的系统也可能被滥用。 恶意者是否会在未来使用这些类似的系统来自动生成大规模的恶意软件,这是一个悬而未决的问题。 这些挑战意味着人工智能编码系统可能得慢慢融入程序员的工作中,因为AI 要经历一个学徒期。但到目前来看,AI学得很快,应该能很快度过学徒期。 Codeforces创始人Mike Mirzayanov在 DeepMind 分享的一份声明中表示,「我可以有把握地说,AlphaCode 的结果超出了我的预期。」 「我之前还持怀疑态度 ,因为即使在简单的竞争性问题上,也不仅要实现算法,而且还要发明算法,而这才是最难的一部分。AlphaCode 的表现堪比一个有前途的新竞争对手。」
网友:程序员自己把自己杀死了
对于DeepMind刚刚放出会写程序的AlphaCode,网友们纷纷展开了讨论。 「写代码的事,就该交给代码自己写。」 「程序员自己把自己杀死了。」 「人工智能开始要意识觉醒了。」
参考资料:
https://deepmind.com/blog/article/Competitive-programming-with-AlphaCodehttps://www.theverge.com/2022/2/2/22914085/alphacode-ai-coding-program-automatic-deepmind-codeforce