AlphaCode 惊世登场:编程版“阿法狗”悄悄参赛,击败

本篇文章给各位网友带来的资讯是:AlphaCode 惊世登场:编程版“阿法狗”悄悄参赛,击败一半程序员 详情请欣赏下文

今天,DeepMind 的“Alpha”家族再添一名新成员:会刷编程竞赛题的 AlphaCode 来了!

其实,AlphaCode 早在几个月前就“悄悄进村”了,一直没人察觉。它默默参加了著名网站 Codeforces 最近举行的 10 场编程比赛,成绩超过了一半人类。

AlphaCode 惊世登场:编程版“阿法狗”悄悄参赛,击败

直到今天 DeepMind 才公布最终成绩:AlphaCode 在这 10 场比赛中排名前 54.3%,Elo 评分 1238。

更重要的是,在编程比赛这样考察算法创造力的问题中,AI 终于不落下风,而这恰恰是 AI 过去所欠缺的。

如果把这个分数放到过去六个月总体来看,AlphaCode 的成绩更为优秀,因为它只刷了 10 周的题目,就已经达到了前 28% 用户的水平。

AlphaCode 惊世登场:编程版“阿法狗”悄悄参赛,击败

Codeforces 是一个由俄罗斯程序员 Mikhail Mirzayanov 创办的编程竞赛网站,大约每周举行一次名为“Codeforces Rounds”的编程比赛。

通过 Codeforces 的 Elo 评分可以衡量一位程序员的编程水平。

AlphaCode 惊世登场:编程版“阿法狗”悄悄参赛,击败

△ Codeforces 创始人 Mikhail Mirzayanov

当看到 AlphaCode 的成绩后,连创始人 Mirzayanov 都惊讶不已。

他原本对 AI 持怀疑态度,因为编程比赛考验的是发明算法的能力,这是最困难的,没想到 AlphaCode 的结果完全超出了他的预期。

DeepMind 发布这条消息仅半天,在 Twitter 上已经有 2000 多次转发、5000 多点赞。

AlphaCode 惊世登场:编程版“阿法狗”悄悄参赛,击败

AlphaCode 如何编程

说了这么多,下面我们来看看 AlphaCode 是如何成为“编程做题家”的。

以下是 Codeforces 上的 1553D 问题:(链接:https://codeforces.com/ problemset / problem / 1553 / D)

有两个字符串 s 和 t,都是由小写字母组成。对于字符串 s,我们从前向后扫描整个字符串。

如果按下 Backspace 键,就删除该光标前到上一个未删除字符之间的所有字符。

例如字符串 s 是”abcbd”,你分别在第一个位置和第四个位置按下 Backspace,那么将得到字符串”bd”。

因为在第一个光标位置前没有字符,所以第一次没有动作。第四个光标位置前的字符是 c,上一个未删除字符是 a,所以按下 Backspace 将删除前三个字符”bd”。

好了,现在问题来了:

我们能否从前向后扫描一次 s 字符串, 让 s 变为 t。如果可以输出 YES,否则输出 NO。

AlphaCode 给出的代码是这样的:

AlphaCode 惊世登场:编程版“阿法狗”悄悄参赛,击败

向以上程序输入 4 组字符串:

AlphaCode 惊世登场:编程版“阿法狗”悄悄参赛,击败

得到的输出是:

AlphaCode 惊世登场:编程版“阿法狗”悄悄参赛,击败

在这里,AlphaCode 不再是黑箱。

它不仅成功解决了问题,还能将代码和注意力高亮的对应位置显示出来。

AlphaCode 惊世登场:编程版“阿法狗”悄悄参赛,击败

一位网友表示:既然 AI 能看得这么细,那么如果能在代码后面加入注释就更好了。

AlphaCode 惊世登场:编程版“阿法狗”悄悄参赛,击败

至于更多的案例,可以去 AlphaCode 网站观摩。

原理

DeepMind 说,在 Codeforces 比赛中所需解决问题的能力,已经超出了现有 AI 系统的能力。

整个 AlphaCode 模型的流程如下:

AlphaCode 惊世登场:编程版“阿法狗”悄悄参赛,击败

用标准的语言建模目标在 GitHub 代码上预训练一个基于 Transformer 的语言模型。这个模型可以合理地代表人类编写代码的空间,大大减少了问题的搜索空间。

在竞争性编程数据集上微调模型,使用 GOLD 与 tempering 作为训练目标,进一步减少了搜索空间,并利用预训练弥补了少量的竞争性编程数据。

为每个问题从模型中生成非常多的样本。

对样本进行过滤,以获得一小部分候选提交的样本(最多 10 个),在隐藏的测试案例上进行评估,方法是利用实例测试和聚类,根据程序行为挑选样本。

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

刷题人士抵触

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

在全球编程比赛网站上常年排名前几的谷歌工程师 Petr Mitrichev 说:解决编程比赛问题是一件非常困难的事情。它既需要良好的代码技能,也需要人类解决问题的创造力。

AlphaCode 不是第一个编程工具,Codex 以及 GitHub Copilot 都给人留下了深刻的印象。

但 DeepMind 认为,AlphaCode 和前辈们大有不同:最近的大规模语言模型展示了生成代码的惊人能力,现在能够完成简单的编程任务。然而,当对更复杂、看不见的问题进行评估时,这些模型的表现仍然很差,这些问题需要解决问题的技能,而不仅仅是将指令翻译成代码。

与 Twitter 上截然不同的是,Codeforces 高手们却多有抵触情绪。

一位程序员认为:“这个 AI 真是个菜鸟。”

AlphaCode 惊世登场:编程版“阿法狗”悄悄参赛,击败

因为 AlphaCode 只有 1238 分,只相当于一个学生水平,一个参加信息学奥赛的中学生也能刷到这个水平。

虽然 DeepMind 声称 AlphaCode 是为了辅助人类,但也有程序员开始担心了:

AlphaCode 惊世登场:编程版“阿法狗”悄悄参赛,击败

现在连刷题的世界都被 AI 占领,本来这里是程序员们切磋的地方,AI 应该适可而止,给程序员们留一片净土吧!

© 版权声明
好牛新坐标
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章