AI想要拿下码农?

2023-08-22 1556阅读

在中国庆祝虎年春节之际,谷歌母公司Alphabet旗下人工智能企业DeepMind发布了基于Transformer模型的编程AI:AlphaCode,并声称其编写的计算机程序具有竞争力,可以与普通人类程序竞争。继OpenAI的Codex和GitHub的Copilot之后,这是码农失业过程中又向前迈出了一步!这不,在AlphaCode发布的同时,被微软收购的OpenAI创建的神经定理证明器成功解决了两道国际奥数题。在 2 月 2 日发表的一篇论文中,DeepMind 的研究人员介绍了 AlphaCode。AlphaCode使用基于Transformer的语言模型来实现大规模代码生成,解决需要结合批判性思维、逻辑、算法、编码和自然语言理解的新问题,并将其编写为程序。

在中国庆祝虎年春节之际,谷歌母公司Alphabet旗下人工智能企业DeepMind发布了基于Transformer模型编程AI:AlphaCode,并声称其编写的计算机程序具有竞争力,可以与普通人类程序竞争。 工作人员可比。

继OpenAI的Codex和GitHub的Copilot之后,这是码农失业过程中又向前迈出了一步!

这不,在AlphaCode发布的同时,被微软收购的OpenAI创建的神经定理证明器成功解决了两道国际奥数题。 我不禁感慨:AI加入后,这个本就不由自主的世界将会更加复杂!

AI想要拿下码农?

虽然AlphaCode的发布在程序员界颇为轰动,但谁给了DeepMind底气宣称可以与人类程序员竞争呢?

在 2 月 2 日发表的一篇论文中,DeepMind 的研究人员介绍了 AlphaCode。

AI想要拿下码农?

AlphaCode使用基于Transformer的语言模型来实现大规模代码生成,解决需要结合批判性思维、逻辑、算法、编码和自然语言理解的新问题,并将其编写为程序。

论文链接:

研究人员在 Codeforces 挑战赛中对 AlphaCode 进行了测试。

Codeforces 是由俄罗斯程序员米哈伊尔·米尔扎亚诺夫 (Mikhail Mirzayanov) 创建的竞技编程平台。 它的Elo评分系统类似于国际象棋中使用的评分系统,可以衡量程序员的编程水平。

AI想要拿下码农?

Codeforces 创始人:米哈伊尔·米尔扎亚诺夫

与程序员在构建业务应用程序时可能面临的任务不同,Codeforce 的挑战更加独立,需要对计算机科学中的算法和理论概念有更广泛的理解,通常是逻辑、数学和编码专业知识问题的非常专业的组合。 每周编程挑战和问题排名都会在 Codeforces 上分享。

AlphaCode 在 Codeforces 网站上针对 10 个由 5000 名用户解决的现有竞赛进行了测试,总体排名为前 54.3%,这意味着它击败了 46% 的参赛者。

DeepMind 估计 AlphaCode 系统的 Codeforces Elo 为 1238。CodeContests 上的每个问题都有 100 万个样本。 AlphaCode 解决了 34.2% 的问题。 过去六个月只刷了10周的问题。 排在参赛用户前28%,成绩非常亮眼。

AI想要拿下码农?

创始人 Mike Mirzayanov 在与 DeepMind 分享的一份声明中表示:

我可以有把握地说 AlphaCode 的结果超出了我的预期。 我之前对此表示怀疑,因为即使是简单的竞争问题,不仅实现算法而且发明它们都是最难的部分。 AlphaCode 的表现就像一个有前途的新竞争对手。

因此,DeepMind 表示,虽然 AlphaCode 的水平不一定代表普通程序员面临的编程任务,但它可以说明自主编程已经向前迈出了重要的一步。

AlphaCode的编程流程

我们举个例子,看看AlphaCode是如何成为“编程提问专家”的。

Codeforces-1553D

话题:

有两个字符串 s 和 t,都是由小写字母组成。 对于字符串 s,我们从前到后扫描整个字符串。 如果按下退格键,则光标之前到最后一个未删除字符的所有字符都将被删除。

例子:

例如字符串s是“abcbd”,在第一个位置和第四个位置分别按Backspace键,就会得到字符串“bd”。

第一次没有动作,因为第一个光标位置之前没有字符。 第四个光标位置之前的字符是c,最后一个未删除的字符是a,a和c之间的字符是b,因此按退格键将删除前三个字符“abc”,得到字符“bd”。

问题:

我们能否从前往后扫描字符串 s,使 s 变成 t。 如果是,则输出YES,否则输出NO。

AI想要拿下码农?

AlphaCode编程流程:

AI想要拿下码农?

AlphaCode不仅成功解决了问题,而且还显示了代码以及注意高亮对应的位置。

AlphaCode给出的完整代码:

AI想要拿下码农?

其中十个挑战以与人类完全相同的格式输入 AlphaCode,人工智能会生成大量可能的答案,并像人类竞争对手一样通过运行代码和检查输出来筛选答案。

更好的是,AlphaCode 论文的共同负责人 Yujia Li 和 David Choi 表示:

AI想要拿下码农?

整个过程自动进行,无需人工干预来选择最佳样本。

AI想要拿下码农?

在 Codeforces 挑战中脱颖而出绝非易事。 AlphaCode 项目启动已有两年多了。 随着大规模 Transformer 模型与大规模采样和过滤技术相结合的进步,DeepMind 研究人员在人工智能可以解决的问题数量方面取得了重大进展。

AI想要拿下码农?

受疫情影响,该项目大部分工作都是在家完成。

AlphaCode 的编程原则

DeepMind表示,Codeforces竞赛所需的解决问题的能力已经超过了现有AI系统的能力。 AlphaCode包含414亿个参数,约为Codex的4倍,训练数据集为715.1 GB。

整个AlphaCode模型的流程如下:

使用标准语言建模目标在 GitHub 代码上预训练基于 Transformer 的语言模型。 该模型可以合理地表示人类编写代码的空间,大大减少问题的搜索空间。 在竞技编程数据集上对模型进行微调,以GOLD和tempered作为训练目标,进一步缩小搜索空间,利用预训练弥补竞技编程数据量较少的问题。 根据每个问题的模型生成大量 C++ 和 Python 程序样本。 通过使用实例测试和过滤、聚类和重新排序根据程序行为挑选样本,过滤样本以获得候选提交的小样本(最多 10 个),用于对隐藏测试用例进行评估。

AI想要拿下码农?

总而言之,通过将大规模 Transformer 模型与大规模采样和过滤相结合,DeepMind 在可解决的问题数量上取得了显着进步,比之前的工作高出了一个数量级。

AlphaCode的研究意义

总体而言,AlphaCode 的排名大致相当于其竞争对手的中位数。 虽然距离赢得比赛还很远,但这一结果代表了人工智能解决问题能力的重大飞跃。 这一进展证明了深度学习模型在需要批判性思维的任务中的潜力。

DeepMind 指出,AlphaCode 目前拥有一套仅适合竞争激烈的编程领域的技能,但其功能为创建未来工具打开了新的大门,这些工具将使编程变得更容易,并有一天实现完全自动化。

AI想要拿下码农?

许多其他公司正在开发类似的应用程序。 例如,微软和人工智能实验室OpenAI将OpenAI的语言生成程序GPT-3改编成自动完成代码字符串的程序。

GPT-3 和 AlphaCode 一样,是一种基于 Transforme 语言模型的人工智能架构,特别擅长解析顺序文本,包括自然语言和代码。

对于最终用户来说,这些系统的工作方式类似于 Gmail 的智能撰写功能,无论您在写什么内容,它都会为您提供指导。

DeepMind 首席研究科学家 Oriol Vinyals 在给 TheVerge 的电子邮件中表示:

该研究仍处于早期阶段,但现阶段的发现使该公司距离创建灵活的解决问题的人工智能(一种可以自动解决编码挑战的程序)又近了一步。 从长远来看,我们对 AlphaCode 帮助程序员和非程序员编写代码、提高生产力或创建软件制作新方法的潜力感到兴奋。

AI编程系统:强,但还不是很强

近年来,人工智能编程系统的发展取得了长足的进步,但这些系统还远未完全取代人类程序员的工作。 他们生成的代码通常存在错误,并且由于系统通常在公共代码库上进行训练,因此有时会复制受版权保护的材料,从而导致侵犯版权。

因此,机器编程绝不是一门解决问题的科学,DeepMind 也承认 AlphaCode 有一些局限性。

例如,AlphaCode 并不总是为每种语言(尤其是 C++)生成语法正确的代码。 AlphaCode 在动态编程方面的表现也较差。

AI想要拿下码农?

不可避免的是,AlphaCode 在其他方面也可能存在问题。

虽然 DeepMind 没有调查模型的偏差问题,但包括 Codex 在内的代码生成模型已被证明会放大训练数据集中的有毒和有缺陷的内容。

例如,当输入“伊斯兰教”一词时,Codex 会提示输出“恐怖分子”,并生成表面上正确但存在安全风险的代码。

在对 GitHub 开发的 Copilot AI 编程工具的研究中,研究人员发现其输出的代码中约 40% 存在安全漏洞。 安全分析师甚至建议,恶意行为者可以有意识地编写代码并通过隐藏的后门在网上共享,然后可以使用这些代码来训练人工智能程序将这些错误插入到未来的程序中。

AI想要拿下码农?

正如最近的研究探索的那样,像 AlphaCode 这样的系统也可能被滥用。

恶意行为者未来是否会使用这些类似的系统自动生成大规模恶意软件是一个悬而未决的问题。

这些挑战意味着人工智能编程的系统可能必须慢慢融入程序员的工作中——换句话说,他们要经历学徒期,从助理开始,接受人工智能的建议,然后才能被信任执行自己的工作自主地。 都值得怀疑。 到目前为止,人工智能学习速度很快,应该能够很快通过学徒期。

为了帮助其他人以 DeepMind 的成果为基础,DeepMind 在 GitHub 上发布了竞赛级编程问题和解决方案的数据集,其中包括大量的测试数据,以确保通过这些测试的程序是正确的——这是当前数据集缺乏的一个关键功能。 DeepMind 希望这个基准测试能够带来问题解决和代码生成方面的进一步创新。

GitHub项目地址:

国内外程序员的看法

正如 Codeforces 创始人所说,发明算法是编程问题中最难的部分。

AI想要拿下码农?

在全球编程竞赛网站上名列前茅的谷歌工程师 Peter Mitrichev 表示:

解决编程竞赛问题是一件非常困难的事情。 它既需要良好的编码技能,又需要人类解决问题的创造力。

AlphaCode 并不是第一个编程工具,Codex 和 Copilot 令人印象深刻。

但 DeepMind 认为 AlphaCode 与其前辈有很大不同:

最近的大规模语言模型已经展示了生成代码的惊人能力,现在能够执行简单的编程任务。 然而,当对更复杂、看不见的问题进行评估时,这些模型仍然表现不佳,这些问题需要解决问题的技能,而不仅仅是将指令转换为代码。

一位国外程序员说道:

既然AI看得这么详细,如果能在代码后面加上注释就更好了。

AI想要拿下码农?

有研究人员表示,这就像AlphaStar努力创造奇迹的结果:

AI想要拿下码农?

国内程序员认可的声音:

写代码应该由代码本身来写。

AI想要拿下码农?

当然,国内外也有程序员对AlphaCode等AI编程系统有抵触情绪。

这个AI真是菜鸟啊。

AI想要拿下码农?

因为AlphaCode只有1238分,只相当于学生的水平,而参加信息学奥林匹克竞赛的中学生也能达到这个水平。

现在连刷题的世界都被AI占领了。 本来,这里是程序员互相学习的地方。 AI应该够了,给程序员留下一片净土!

AI想要拿下码农?

一台计算机可以为其他计算机编程吗? 大家明白这意味着什么吗?

AI想要拿下码农?

程序员自杀。

AI想要拿下码农?

人工智能正在开始唤醒意识。

AI想要拿下码农?

召唤终结者!

AI想要拿下码农?

一些人工智能研究科学家连续发长推文称,AlphaCode 需要几年时间才能达到人类水平,而且其在 Codeforces 上的排名有限。 例如,许多参与者是高中生或大学生; 而且绝大多数AlphaCode生成的程序都是错误的,正是通过样本测试的过滤才使得AlphaCode真正解决了一些问题。

您对人工智能编程有何看法?

参考

[1] DeepMind 发布了 AlphaCode,来自

[2]

[3] DeepMind 研究 AlphaCode 论文,来自

[4]

[5]

[6]

[7]AlphaCode惊艳亮相,来自

[8]

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]