点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

晓查 发自 凹非寺
转载自:量子位(QbitAI)

今天,DeepMind的“Alpha”家族再添一名新成员:

会刷编程竞赛题的AlphaCode来了!

其实,AlphaCode早在几个月前就“悄悄进村”了,一直没人察觉。

它默默参加了著名网站Codeforces最近举行的10场编程比赛,成绩超过了一半人类

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

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

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

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

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

 Codeforces创始人Mikhail Mirzayanov

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

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

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

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给出的代码是这样的:

t=int(input())
for i in range(t):  s=input()  t=input()  a=[]  b=[]  for j in s:  a.append(j)  for j in t:  b.append(j)  a.reverse()  b.reverse()  c=[]  while len(b)!=0 and len(a)!=0:  if a[0]==b[0]:  c.append(b.pop(0))  a.pop(0)  elif a[0]!=b[0] and len(a)!=1:  a.pop(0)  a.pop(0)  elif a[0]!=b[0] and len(a)==1:  a.pop(0)  if len(b)==0:  print("YES")  else:  print("NO")

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

4
ababa
ba
ababa
bb
aaa
aaaa
aababa
ababa

得到的输出是:

YES
NO
NO
YES

在这里,AlphaCode不再是黑箱。

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

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

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

原理

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

整个AlphaCode模型的流程如下:

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

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

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

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

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

刷题人士抵触

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

在全球编程比赛网站上常年排名前几的谷歌工程师Petr Mitrichev说:

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

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

但DeepMind认为,AlphaCode和前辈们大有不同:

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

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

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

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

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

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

参考链接:
[1]https://deepmind.com/blog/article/Competitive-programming-with-AlphaCode
[2]https://alphacode.deepmind.com/
[3]https://storage.googleapis.com/deepmind-media/AlphaCode/competition_level_code_generation_with_alphacode.pdf
[4]https://github.com/deepmind/code_contests

ICCV和CVPR 2021论文和代码下载后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集后台回复:ICCV2021,即可下载ICCV 2021论文和代码开源的论文合集后台回复:Transformer综述,即可下载最新的3篇Transformer综述PDF
CVer-Transformer交流群成立
扫码添加CVer助手,可申请加入CVer-Transformer 微信交流群,方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。
一定要备注:研究方向+地点+学校/公司+昵称(如Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群▲长按加小助手微信,进交流群
▲点击上方卡片,关注CVer公众号

整理不易,请点赞和在看

AI击败一半程序员!AlphaCode惊世登场!DeepMind的编程版“阿法狗”开卷编程竞赛!...相关推荐

  1. AlphaCode(编程版阿法狗)

    之前我们所知的大概就是AlphaGo人工智能机器人下围棋,现在又出来了AlphaCode,听说刷题技术超过一半的程序猿,内卷的时代连做题都不放过. codeforces比赛的题目举例Problem - ...

  2. AlphaCode惊世登场!编程版“阿法狗”悄悄参赛,击败一半程序员

    来源:量子位 DeepMind的"Alpha"家族再添一名新成员: 会刷编程竞赛题的AlphaCode来了! 其实,AlphaCode早在几个月前就"悄悄进村" ...

  3. AlphaCode 惊世登场!编程版“阿法狗”悄悄参赛,击败一半程序员

    往期热门文章: 1.被阿里P8面了两个小时,技术.业务有来有回...... 2.再见丑陋的 SwaggerUI,这款API文档生成神器界面更炫酷,逼格更高! 3.员工春节加班猝死!反转了,B站深夜发长 ...

  4. AI抢程序员工作:2040年AI可能代替程序员

    原文链接:点击打开链接 摘要: 美国橡树岭国家实验室的一些专家预测,到2040年,AI技术将会强大到足以替代程序员.不过,即使机器能够完全代替今天程序员所做的工作,但这并不意味着它们不需要人类的帮助. ...

  5. 年薪80万!AI革了程序员的命

    原创: 蛋蛋姐 酷玩实验室 前天 酷玩实验室作品 首发于微信号 酷玩实验室 微信ID:coollabs 大家好,我是蛋蛋姐 今天的热搜上 出现了这样一条新闻 AI应届博士年薪80万起 蛋蛋姐真的惊呆了 ...

  6. ai取代程序员_自主编程的AI会取代程序员吗?

    原标题:自主编程的AI会取代程序员吗? 去年3月,AlphaGo大战棋手李世石备受瞩目,而今年5月,AlphaGo将来华挑战东方少年柯洁.与此同时,围绕AlphaGo背后的人工智能技术迅速火爆起来,各 ...

  7. AI能代替程序员吗?

    随着人工智能技术的不断发展,很多人开始担心AI是否会取代人类的工作,其中包括程序员.尤其是今年各种AI层出不穷,也让我们不由得去探讨并分析AI是否有可能代替程序员这个问题. AI的优势 首先,我们需要 ...

  8. 《程序员修炼之道(第2版)》!屹立20年王者归来!

    推荐语:收到博文视点的新书<程序员修炼之道(第2版),反复拜读,确实非常全面,涵盖编程,并发,架构,程序员个人修炼,团队,项目等方面 标题已经完全代表博文菌想说的话了! <程序员修炼之道( ...

  9. AI 能匹敌程序员了吗?OpenAI 新研究展​示 NLP 大模型的局限性

    作者:Ben Dickson 来源:数据实战派 Codex 在一篇新论文中,OpenAI 的研究人员展示了 Codex 的详细信息,它是一种生成软件源代码的深度学习模型. Codex 可以为 Open ...

最新文章

  1. 多媒体流信息提取工具 ffprobe 简介
  2. ORA-01940,删除某用户的所有对象
  3. 10上wsl位置迁移_wsl的安装/升级笔记
  4. boost::endian模块实现data的测试程序
  5. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE)
  6. promolike原型开发前后台打通
  7. 前端学习(483):html之常用标签
  8. ubuntu php.ini 配置,ubuntu下配置PHP+JSON模块(apache) | 学步园
  9. 快来被子里 看看我的夜光收钱码!
  10. RxJava Map操作详解
  11. 机器人对话常用语模板_电话机器人的销售能力
  12. windows 7启动项和引导文件bcdboot
  13. stm32实现红外自发自收
  14. migration mysql_MySQL Migration Tool 使用 | 学步园
  15. php eval函数的用法,php eval函数用法详解
  16. 搭载专业游戏芯片,这款百元真无线耳机很强吗?开箱实测一番
  17. bzoj1755 [Usaco2005 qua]Bank Interest
  18. 知乎 | 给博士一年级新生的建议!
  19. 解决前端vue中的Uncaught TypeError: this.Form is undefined
  20. 微信小程序 - 一键复制功能

热门文章

  1. C语言调试语法差错步骤称为,计算机等级考试二级C语言真题辅导.ppt
  2. 【转】扁平化时代,被OTT抑或是一种幸福
  3. ADDIS打开方式java,使用重定向时seam会话突然结束
  4. 强力删除软件unlocker1.8既小又好用
  5. Arduino IDE使用esp8266 usb ttl接线说明
  6. 修改设置android studio 为自定义背景色,绿豆沙色。
  7. 基于51单片机的半导体制冷小冰箱
  8. 【考研英语语法】动词练习题
  9. 中关村软件园机房的服务方案
  10. 如何利用迅雷下载百度云