万维读者网 > 数码科技 > 正文  

AI编程登Science:AlphaCode打竞赛 表现太优秀

www.creaders.net | 2022-12-09 15:29:04  量子位 | 0条评论 | 查看/发表评论

AI编程登Science:AlphaCode打竞赛 表现太优秀

DeepMind的NS论文又新添一篇。

这回,是“信息学竞赛选手” AlphaCode,登上了最新一期Science封面。

对,就是那个悄悄潜入10场编程比赛敲代码, 成绩超过了一半人类的编程AI。

并且就在这篇最新更新的论文中,DeepMind还首次透露了AlphaCode的“一次通过率”: 66%。

也就是说,AlphaCode近三分之二的提交,都是一次AC (Accepted)的。

CMU博世人工智能中心教授J. Zico Kolter的最新评论文章也同时发表在了这一期Science上,他认为:

AlphaCode不仅仅是复制现有的解决方案。

在面对以前没见过的编程题时,它表现得非常好,无论它是在多大程度上真正“理解”了这个任务。

AlphaCode不仅仅是复制现有的解决方案。

在面对以前没见过的编程题时,它表现得非常好,无论它是在多大程度上真正“理解”了这个任务。

而在DeepMind的官方推特下,还有不少人把AlphaCode同当红炸子鸡ChatGPT联系了起来。

有人已经迫不及待看到两者同台演出:

首次通过率66%

尽管AI编程领域,GitHub的Copilot已经快进到收费模式,甚至还和程序员们“法庭上见”了。

但在DeepMind看来,AlphaCode还是颇有些不同之处。

一方面,编程竞赛对于AI而言本身就是比纯编程更为复杂的任务,关键是要为无法预见的问题构建解决方案。

另一方面,在架构上,AlphaCode采用了不同的机制来编码赛题文本。

AI编程登Science:AlphaCode打竞赛 表现太优秀

值得一提的是,AlphaCode“打”的这10场编程比赛都来自 Codeforces。

相比其他针对算法和数据结构的编程比赛,Codeforces更偏好考查 思维能力,这意味着AI无法仅仅通过“背题”来完成挑战。

例如这是Codeforces上关于1553D问题的描述:

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

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

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

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

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

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

针对这个“前提”,我们需要解决的问题如下:

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

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

针对这个问题,AlphaCode给出的解法如下:

AI编程登Science:AlphaCode打竞赛 表现太优秀

那么,我们只需要给定输入的字符串数量 (4)和具体的字符串内容,就能让程序输出对应的结果:

第一组ababa (ba),第二组ababa (bb),第三组aaa (aaaa),第四组aababa (ababa)。

AI编程登Science:AlphaCode打竞赛 表现太优秀

对此程序输出的结果分别是YES、NO、NO和YES。

AI编程登Science:AlphaCode打竞赛 表现太优秀

在做题过程中,AlphaCode的“解题思路”也不再是黑箱。

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

AI编程登Science:AlphaCode打竞赛 表现太优秀

上述还只是AlphaCode解的其中一道题。

整体来说,在Codeforces平台举办的编程比赛模拟评估中,AlphaCode在超过5000名参与者的比赛中平均排名前54.3%——击败了一半的选手。

并且 第一次提交就通过的概率达到了66%。

AlphaCode是如何读题写码的

所以,AlphaCode究竟是凭借什么原理达成这一“战果”的呢?

它仍然基于预训练-微调的范式打造,采用Transformer架构,其中编码器具备“ 解读能力”,解码器则具备“ 写码能力”。

这次发表在Science上的论文,也给出了更直观的原理图,并以 Python作为案例,讲解具体训练的过程。

在预训练 (pre-training)时,研究人员会先整理出GitHub上的各种代码集,并“喂”给AlphaCode上的编码器和解码器。

以Python上的print(“hello”)为例,这里print是一个常见的函数,即“打印输出”,”hello”则是具体需要打印输出的内容。

AI编程登Science:AlphaCode打竞赛 表现太优秀

经过预训练后的模型,就具备了基本的“按指令完成任务”的要求,其中编码器负责生成指令,解码器则负责填充剩余的部分。

在微调 (fine-tuning)环节,研究人员会整理出竞争性编程竞赛的数据集,包括问题和解决思路两部分,并以GOLD与tempering作为训练目标,进一步减少搜索空间。

其中,问题以注释#的形式交给编码器“学习”,解决思路则交给解码器来尝试理解:

AI编程登Science:AlphaCode打竞赛 表现太优秀

微调完成后,解码器就懂得通过编码器生成注释的内容,来尝试输出对应的代码。

经过预训练-微调后,就来到了最终的评测环节。

Codeforces的题目会被直接以注释的形式交给编码器,解码器则尝试输出 数百万个不同的程序,对它们进行过滤和聚类 (cluster)之后,提交其中的10个程序来解决问题。

(当然前面也提到,有不少问题在第一次提交后就通过了)

AI编程登Science:AlphaCode打竞赛 表现太优秀

对于AlphaCode的出现,有程序员调侃称“可以在艺术家旁边排队等领救济粮了。”

不过,DeepMind官方对于AlphaCode的定调并非“AI版程序员”,而是希望它作为一个 辅助的角色出现在编程工作中:

我们希望它能作为软件开发者的助手,尤其是为0编程基础的人提供写代码的机会。

我们希望它能作为软件开发者的助手,尤其是为0编程基础的人提供写代码的机会。

AI编程登Science:AlphaCode打竞赛 表现太优秀

   0


24小时新闻排行榜 更多>>
1 中国男持2本护照入美 遭盘问10小时 只许停
2 毫不留情!法国大咖撕破习皇帝的新装
3 他把胡锦涛架出会场!得习重用 今与王毅肩
4 现场曝光!气氛紧张,习与冯德莱恩针锋相对
5 事关三中全会 最新内幕流出

48小时新闻排行榜 更多>>
1 第一批搬去新加坡的中国中产,今年已经破产
2 中国第一大忽悠,要完蛋了
3 俄乌战争,会以我们意想不到的方式结束
4 江泽民低估了此人的能量 后果很严重
5 中国男持2本护照入美 遭盘问10小时 只许停
6 毫不留情!法国大咖撕破习皇帝的新装
7 他把胡锦涛架出会场!得习重用 今与王毅肩
8 现场曝光!气氛紧张,习与冯德莱恩针锋相对
9 事关三中全会 最新内幕流出
10 彭丽媛军职照片 多少习近平真情假意在其中
热门专题
1
以哈战争
6
中共两会
11
秦刚失踪
2
中美冷战
7
台湾大选
12
火箭军悬案
3
乌克兰战争
8
李克强猝逝
13
台海风云
4
万维专栏
9
中国爆雷
14
战狼外交
5
美国大选
10
李尚福出事
15
普里戈津
一周博客排行 更多>>
1 灭掉胡锦涛团派 邓江习一脉相 胡亥
2 吕洪来:中共二十届三中全会的 老陆
3 三峡风光 闲士9264
4 重庆谈判 – 第二个“鸿门宴” 赵大夫话室
5 Woo!990万! Winston Sm
6 毛主义的幽灵——我看美国挺哈 高天阔海
7 有一种自由叫车厘子自由 体育老师
8 突破“茧房”还是自我“觉醒” 寂静之声
9 二战后,但凡涉及大国的战争, 随意生活
10 马斯克的无人驾驶系统即将修成 雷歌747
一周博文回复排行榜 更多>>
1 二战后,但凡涉及大国的战争, 随意生活
2 为何有反言论自由、反人人平等 不合群
3 马斯克的无人驾驶系统即将修成 雷歌747
4 毛主义的幽灵——我看美国挺哈 高天阔海
5 有一种自由叫车厘子自由 体育老师
6 川普比他的支持者们精明得多! 右撇子
7 灭掉胡锦涛团派 邓江习一脉相 胡亥
8 俄乌战争何时了,军援值多少? 随意生活
9 选举公正和司法公正,哪个更重 白草
10 达娃是谁?女,2009年注册,15 老農民
关于本站 | 广告服务 | 联系我们 | 招聘信息 | 网站导航 | 隐私保护
Copyright (C) 1998-2024. CyberMedia Network/Creaders.NET. All Rights Reserved.