DeepMind的NS论文又新添一篇。|ai编程登上science封面:三分之二赛题一遍过

DeepMind的NS论文又新添一篇 。
这回 , 是“信息学竞赛选手”AlphaCode , 登上了最新一期Science封面 。
DeepMind的NS论文又新添一篇。|ai编程登上science封面:三分之二赛题一遍过
文章图片
对 , 就是那个悄悄潜入10场编程比赛敲代码 , 成绩超过了一半人类的编程AI 。
并且就在这篇最新更新的论文中 , DeepMind还首次透露了AlphaCode的“一次通过率”:66% 。
DeepMind的NS论文又新添一篇。|ai编程登上science封面:三分之二赛题一遍过】也就是说 , AlphaCode近三分之二的提交 , 都是一次AC(Accepted)的 。
CMU博世人工智能中心教授J.ZicoKolter的最新评论文章也同时发表在了这一期Science上 , 他认为:
AlphaCode不仅仅是复制现有的解决方案 。
在面对以前没见过的编程题时 , 它表现得非常好 , 无论它是在多大程度上真正“理解”了这个任务 。
而在DeepMind的官方推特下 , 还有不少人把AlphaCode同当红炸子鸡ChatGPT联系了起来 。
有人已经迫不及待看到两者同台演出:
DeepMind的NS论文又新添一篇。|ai编程登上science封面:三分之二赛题一遍过
文章图片
首次通过率66%
尽管AI编程领域 , GitHub的Copilot已经快进到收费模式 , 甚至还和程序员们“法庭上见”了 。
但在DeepMind看来 , AlphaCode还是颇有些不同之处 。
一方面 , 编程竞赛对于AI而言本身就是比纯编程更为复杂的任务 , 关键是要为无法预见的问题构建解决方案 。
另一方面 , 在架构上 , AlphaCode采用了不同的机制来编码赛题文本 。
DeepMind的NS论文又新添一篇。|ai编程登上science封面:三分之二赛题一遍过
文章图片
值得一提的是 , 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给出的解法如下:
DeepMind的NS论文又新添一篇。|ai编程登上science封面:三分之二赛题一遍过
文章图片
那么 , 我们只需要给定输入的字符串数量(4)和具体的字符串内容 , 就能让程序输出对应的结果:
第一组ababa(ba) , 第二组ababa(bb) , 第三组aaa(aaaa) , 第四组aababa(ababa) 。
DeepMind的NS论文又新添一篇。|ai编程登上science封面:三分之二赛题一遍过
文章图片
对此程序输出的结果分别是YES、NO、NO和YES 。
DeepMind的NS论文又新添一篇。|ai编程登上science封面:三分之二赛题一遍过
文章图片
在做题过程中 , AlphaCode的“解题思路”也不再是黑箱 。
它不仅成功解决了问题 , 还能将代码和注意力高亮的对应位置显示出来:
DeepMind的NS论文又新添一篇。|ai编程登上science封面:三分之二赛题一遍过
文章图片
上述还只是AlphaCode解的其中一道题 。