作者 | 马超       责编 | 张红月

出品 | CSDN博文

最近,世界著名的编程竞赛网站Codeforces发布了一篇名为《AlphaCode(DeepMind) Solves Programming Problems on CodeForce》的文章,将 AlphaCode(阿尔法扣) 带入人们的视野,更让 DeepMind 再次霸榜各大媒体的头条,这也是 DeepMind 在 2015 年成功推出阿尔法狗(AlphaGo),击败人类最强围棋选手之后,再次推出改变世界的重榜产品。

击败一半人类参赛程序员的 AlphaCode 

据 DeepMind 官网介绍,AlphaCode 是由谷歌在英国的 AI 部门发明的一种人工智能工具,该工具可以像真实参加竞赛的程序员一样,参加各大编程竞赛,并且还可以结合批判性思维、逻辑、算法、编码和自然语言理解的新问题来提供解决方案。在正式登场之前, DeepMind 已在编程竞赛中测试了 AlphaCode 的真实“水平”。

Codeforces 每周都会举办一到两次算法比赛,并且具有独特的天梯排名上分系统,AlphaCode 默默参加 Codeforces 最近举行的 10 场编程比赛之后,获得了超过了一半人类程序员的好成绩,最终排名前 54.3%,Elo 评分1238。

就连 Codeforces 创始人 Mikhail Mirzayanov 也亲自下场为 AlphaCode 打Call,除了一些 Codeforces 的表现远超预期等客套话,Mirzayanov 的一个重要观点就是 AlphaCode 似乎表现出了比较强的创造性,这点很不寻常。

这次 DeepMind 给 AlphaCode 选择的编程网站 Codeforces 很有必要向大家介绍一下的,与目前日趋商业化的力扣(LeetCode)不同,Codeforces 最大的特点就是代码和题解的公开。所有人都可以随意查看其它大牛的代码,非常符合开源的调性,而且 Codeforces 题目一般都不是那种传统科班的考察项目,往往会在题目中设置比较多的思维陷阱,而对于数据结构以及经典算法的相对没有那么侧重。

突破辅助编程 AlphaCode 还有多远的路要走?

在去年的8月底,微软旗下的两个大牌机构 OpenAI 与 GitHub 联合,推出了基于 AI 技术的自动辅助编程工具 Copilot,并基于 VS Code 的 MarketPlace 发布了预览版,结果预览版一经问世就取得了惊世效果。

Copilot 基于 GPT-3 模型,是针对编程任务适配版本,它以部分完成的代码及注释作为输入,输出完整的代码建议。Copilot的官方网站将其定位为“程序员结对编程实践中的AI对手”,笔者看到不少开始使用 Copilot 的网友都提到,大多数情况下只要一个简单的函数签名,Copilot 就可以完成整个函数的代码编写好,甚至有时只需要一句简单的注释,Copilot 就能把整个功能模块全部搞定。

虽然 Copilot 和 AlphaCode 使用的技术类似,从本质上讲 Copilot 是定位于辅助编程的,不过辅助编程技术在前年 GPT-3 刚刚推出时就已经比较成熟,比如由界面需求描述,直接转化成代码的 debuild.co,但这些辅助编程工具本质上都是对人类已有的实现进行模仿甚至是照搬。

这些辅助编程工具与 AlphaCode AI 程序员的定位是完全不同的,阿尔法扣这位 AI 程序员还需要不断完善,但它的出现却提供了一个关于 AI 编程未来发展的思路,当 AI 学到了足够多的代码之后,是否会展示出相应的创造力,而 AI 的这种创造力是否意味着程序员群体将在未来会被 AI 取代,这些都引发了笔者深深的思考。

读书破万卷,下笔如有神,代码学多了,是否能质变?

从 DeepMind 官方博客上看,AlphaCode 的训练集还是基于 GitHub 和CodeForce 建立的,这与阿尔法狗初始态下也是基于人类棋谱构建训练数据是比较一致的。

我们知道初代的阿尔法狗还没有那么高的统治力,在抛弃人类棋谱,两只阿尔法狗对局,并不断进化之后,人类棋手在面对AI时才会显得那么无能为力。

不过好消息是围棋的规则是长时间不变的,但是在编程方面技术的进步却是日新月异,也就是 AlphaCode 所面对的数据集是要动态调整的,这可能使两个AlphaCode 相互结对编程,并取得质变的可能性并没有想象当中那么大,因此AlphaCode 想达到高级程序员的水平在短期看来不太可能,不过随着AlphaCode 能够普遍达到中级程序员的水平之后,IT 行业 35 岁即失业的现象恐怕会更加严重,因为 AI 程序员不能独立工作,而带领 AI 编程团队需要更加精深的技术实力而非管理能力,这可能会给很多走上技术管理岗的程序员带来一定压力。

跨越之前,问题不少

虽然 AI 编程的发展已经形成趋势,但从 AlphaCode 的工作原理等方面分析,在 AlphaCode 升级成为贝塔扣,伽马扣之前,还有很多坑要老老实实的填平:

  • 错误解答,反而拖后腿:据 DeepMind 官方博客显示 AlphaCode 首先要进行的工作是通过 NLP 系统,试图理解需求的意思,但是与人类的理解不同,AlphaCode 的理解的语义虽然大部分时候有效,但也存在一定完全理解不了的可能性,如果你所给出题目的问题描述完全不符合Codeforce 之前题目文风的话,那么也很有可能得到一些完全没有意义的代码,也就是说在 AlphaCode 能正常给出答案时,它的效率可能比人类程序员高得多,但一旦 AlphaCode 不能工作,那么对不起它错的也会比一般人类程序员离谱,因此 AlphaCode 至少要搭建一名初级程序员帮助发现这些显尔易见的错误,并递交给高级程序员给出正确答案。

  • 使用 GitHub 训练 AlphaCode 到底侵不侵权?正如前文所说是基于GitHub 和 Codeforce 两大编程网络上的公开代码进行的模型训练,而且无论是微软的 Codplite 还是 Deepmind 的 AlphaCode ,都没有按照不同的开源许可证对于代码进行区分对待。

  • 那么如果未来 AlphaCode 用于商业用途,那么用那些已经明确不允许用于商业用途的代码来训练 AlphaCode 的AI模型是否涉嫌侵权?针对这个问题网上争论的声音很大,笔者认为如果 AI 最终给出的建议代码与原先训练集中的代码一模一样的话,那么这种情况肯定会涉嫌侵权,但建议代码与原训练代码的相似度如何判断才是关键所在,当然截止目前这还依旧是个开放性问题,业界尚未形成共识。

  • 引用老旧类库代码,增加安全风险:正如前文所言,AlphaCode 的训练集是 GitHub和 Codeforce 上已经存在的代码,从实操来讲,Deepmind 很难对如此大量的代码进行有效标注,因此 AlphaCode 生成的代码,即使有效且能够正常运行,也不能代表这些代码没有安全漏洞,这样的特性就使得开发人员去全面检查 AI 生成的代码变得非常重要。

但无论如何未来都将到来,面对会编程的 AI 程序员,我们人类程序员们只有顺势而为,快速找到属于自己的生态位才能力于不败之地。

作者简介:马超,金融科技专家,人民大学高礼金融研究院校外双聘导师,阿里云MVP,华为2020年十大开发者之星,CSDN约稿专栏作者,著名的金融科技的布道者。众多国产开源项目的推动者及贡献人。

《新程序员003》正式上市,50余位技术专家共同创作,云原生和数字化的开发者们的一本技术精选图书。内容既有发展趋势及方法论结构,华为、阿里、字节跳动、网易、快手、微软、亚马逊、英特尔、西门子、施耐德等30多家知名公司云原生和数字化一手实战经验!

☞用70行Python编写一个概率编程语言
☞CSDN祝读者朋友们新春大吉、虎年行虎运!☞缘起性空,归来不少年——回顾这荆棘的一年

击败一半参赛程序员,DeepMind 重磅推出 AlphaCode相关推荐

  1. 说一个恐怖故事:我的另一半是程序员!惊了~

    一提起程序员,人人都会颇有深意地"哦~~"一声,随即在脑海中用格子衫.双肩包.黑框眼镜.运动鞋勾勒出一个互联网中的经典形象.他们是同龄人中工资最高的互联网精英,也是同龄人中发量最少 ...

  2. 听人劝,得一半——《程序员羊皮卷》书评(6)

    [<程序员羊皮卷>中大学应该怎么过一章节已由苏鹏老师在网上播讲,地址:http://www.tudou.com/programs/view/QbHCXhdjVQE/ 三章免费下载版地址:h ...

  3. AlphaGo之后,DeepMind重磅推出AlphaFold:基因序列预测蛋白质结构

    来源:机器之心 摘要:Alphabet(谷歌)旗下公司 DeepMind 的人工智能 AlphaGo 曾在国际象棋.围棋等项目中取得了超越人类的表现,其研究不仅震惊世界,也两次登上 Nature.如今 ...

  4. 谷歌旗下DeepMind开发出编程机器人,已达人类程序员平均水平!

    近期,世界著名的编程竞赛网站Codeforces发布了一篇名为<AlphaCode ( DeepMind) Solves Programming Problems on CodeForce> ...

  5. DeepMind带来了大魔王阿尔法扣,程序员还有前途吗?

    最近著名的编程竞赛网站Codeforces发布了一篇名为<AlphaCode(DeepMind) Solves Programming Problems on CodeForce>的文章, ...

  6. 重磅!革命级AI代码补全工具,这款撸码利器让程序员界沸腾了!

    我们平时写代码的时候,多少都会依赖编辑器的代码补全功能,敲几个字母就能补全一个词.可是这么多年过去了,语言升级了很多次,而代码提示却没有升级,还是只能限定在一个词,毫无意义地按照字典表顺序排列,这对于 ...

  7. 用老司机的理财经历告诉你,这才是程序员理财的正确姿势

    面对国内CPI持续走高,房价越来越高,金价持续走低,第三方理财野蛮生长,基金理财持续走红的情况,作为程序员的你们,是否已经开始按照自己的规划合理地理财了呢?俗话说,你不理财,财不理你,小钱也可以做投资 ...

  8. 程序员只能吃“青春饭”?C 认证带你破局!

    2019 年搜狐科技<中国互联网简史>报告显示,国内近一半的程序员年龄在 25-29 岁之间,其次为 30-34岁,占比 24.6%,35 岁 -39 岁的程序员占比 6.1%,而 40岁 ...

  9. 程序员的“青春饭”能吃多久?IT行业的“年龄焦虑”该贩吗?

    很多行业都有着"青春饭"这一说法,程序员这个行业也不例外.大部分人认为,一名35岁的程序员和一名22岁的程序员相比,不管是身体状况还是精神状态来说,前者都不如后者,到了岁数的程序员 ...

最新文章

  1. 阿里云微服务引擎 MSE 2022 年 3 月产品动态
  2. 根据屏幕分辨率获取css,根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码...
  3. tensorflow lstm 预测_解析seq2seq原理+tensorflow实现
  4. java把一个list_java中将一个List等分成n个list的工具方法(推荐)
  5. CentOS5、6的启动流程
  6. matlab guide实现多级界面
  7. Linux 如何通过命令仅获取IP地址
  8. python全栈和java全栈_Python是全栈式开发语言吗?原因竟是这样!
  9. UVA11877 The Coco-Cola Store【模拟】
  10. 高等数学干吗要研究级数问题?
  11. html正方形符号,HTML特殊字符显示
  12. iphone手机音频AAC视频H264推流(一) iphone手机推流最佳方案
  13. 跨境电商如何搭建独立站?
  14. Python文件操作-shutil 模块(参考)
  15. mysql实战36 | 为什么临时表可以重名?
  16. 工业机器人 郝卫东_六自由度机器人焊接轨迹研究
  17. 【C#】 enum 还能这么玩
  18. 新东方老罗(罗永浩)语录全集
  19. android 9.0 使用http请求异常问题
  20. 初等数论 课堂笔记 第二章 -- 费马问题

热门文章

  1. 算法题---罗马数字转整数
  2. 【文化课每周学习记录】高三上暑假
  3. 有道云计算机,Pywinauto实现电脑客户端有道云签到领空间
  4. GCC 13 新增 Ampere-1A CPU 支持
  5. 工作记录:8个有用的JS技巧
  6. 欧美简约商务PPT模板
  7. PCB电路板制作课程(PCB板设计)与单片机设计 各种品牌的变频器、伺服驱动器、缝纫机电控箱等工控设备的维修。工业电路板维修培训(变频器、伺服驱动器、缝纫机电控、数控、机器人等..)
  8. html拖拽开发,H5Web前端开发_实现拖拽效果
  9. 计算机一级用英语翻译,江苏省计算机一级B 翻译成英语
  10. kiel调试过程中断点问题