AI编程登上Science封面:AlphaCode打竞赛,三分之二
时间:2022-12-12 12:33 来源:网络整理 作者:采集插件 点击:次
量子位 | 公众号 QbitAI DeepMind的NS论文又新添一篇。 这回,是“信息学竞赛选手”AlphaCode,登上了最新一期Science封面。 对,就是那个悄悄潜入10场编程比赛敲代码,成绩超过了一半人类的编程AI。 并且就在这篇最新更新的论文中,DeepMind还首次透露了AlphaCode的“一次通过率”:66%。 也就是说,AlphaCode近三分之二的提交,都是一次AC(Accepted)的。 CMU博世人工智能中心教授J. Zico Kolter的最新评论文章也同时发表在了这一期Science上,他认为: AlphaCode不仅仅是复制现有的解决方案。 在面对以前没见过的编程题时,它表现得非常好,无论它是在多大程度上真正“理解”了这个任务。 而在DeepMind的官方推特下,还有不少人把AlphaCode同当红炸子鸡ChatGPT联系了起来。 有人已经迫不及待看到两者同台演出: 首次通过率66% 尽管AI编程领域,GitHub的Copilot已经快进到收费模式,甚至还和程序员们“法庭上见”了。 但在DeepMind看来,AlphaCode还是颇有些不同之处。 一方面,编程竞赛对于AI而言本身就是比纯编程更为复杂的任务,关键是要为无法预见的问题构建解决方案。 另一方面,在架构上,AlphaCode采用了不同的机制来编码赛题文本。 值得一提的是,AlphaCode“打”的这10场编程比赛都来自Codeforces。 相比其他针对算法和数据结构的编程比赛,Codeforces更偏好考查思维能力,这意味着AI无法仅仅通过“背题”来完成挑战。 例如这是Codeforces上关于1553D问题的描述: 有两个字符串s和t,都是由小写字母组成。对于字符串s,我们从前向后扫描整个字符串。 如果按下Backspace键,就删除该光标前到上一个未删除字符之间的所有字符。 也就是说,假设字符串s是”abcbd”,你分别在第一个位置和第四个位置按下Backspace,那么将得到字符串”bd”。 因为在第一个光标位置前没有字符,所以第一次没有动作。第四个光标位置前的字符是c,上一个未删除字符是a,所以按下Backspace将删除前三个字符”bd”。 针对这个“前提”,我们需要解决的问题如下: 我们能否从前向后扫描一次s字符串,让s变为t?如果可以就输出YES,否则输出NO。 针对这个问题,AlphaCode给出的解法如下: 那么,我们只需要给定输入的字符串数量(4)和具体的字符串内容,就能让程序输出对应的结果: 第一组ababa(ba),第二组ababa(bb),第三组aaa(aaaa),第四组aababa(ababa)。 对此程序输出的结果分别是YES、NO、NO和YES。 在做题过程中,AlphaCode的“解题思路”也不再是黑箱。 它不仅成功解决了问题,还能将代码和注意力高亮的对应位置显示出来: (责任编辑:admin) |
- 上一篇:现在上海的别墅市场怎么样
- 下一篇:教资面试通过率最高的学科是哪门?你选对了吗