麻瓜栗 发自 凹非寺
量子位 出品 | 公众号 QbitAI

从前,任何程序的任何功能,都需要一行一行敲出来。

后来,程序猿要写的代码越来越多,世界上便有了各种各样的API,来减少大家的工作量。有些功能,可以让API来帮我们实现。

不过,人类写下的话,API并不是每一句都能听懂。语言不通的话,愿望就无法实现。



现在,有会写代码的AI可以替你召唤API。以及,它能做的并不止这些。

吃得不多,写得不少

莱斯大学的一群极客,发布了一个基于深度学习的代码编写应用。神经网络从GitHub这样的线上源代码库里汲取养分,写自己的程序。



这个应用叫Bayou,是在美国国防高级研究计划局 (DARPA) 和谷歌研究院的资金支持下诞生的。

Bayou的爸爸们说,这个孩子和它的前辈不同。以前那些会写程序的AI,都需要事先投喂大量细节,才能开始生成代码。有空写好那些细节,不如自己写个程序了。

而要支配Bayou,开发者只要给它吃一点点信息,比如几个小小的prompt,它就会善解人意地猜测,人类想要怎样的程序,然后疾速补全代码。

 input

举个简单的栗子,假设你想写个读取文件的Java方法。如果你知道某个API里面有个功能叫做readline,就可以写出上面这样的代码。

 output

然后,Bayou便知道它要召唤的技能叫做readline,随之为你输出以上代码,只要用这段代码来调用你需要的API就可以了。

不要忘了,专门给Bayou看的部分,要标上///,以示害羞。



除了调用一个或者几个API,我们还可以用API数据类型把自己的要求具体化。另外,Bayou有一个非常友好的特点,便是多模态,就算把各种不同的术语混进同一段代码,它也能看懂。

草图训练大法

毕竟,这只AI已经从大约1500个安卓应用里,学习了人类编写的上亿行Java代码。

用一种名为“神经草图学习 (Neural Sketch Learning) ”的方法来训练神经网络,Bayou可以给自己想要读取的每个程序,创建一个树状结构的句法模型,称作“草图 (sketch) ”。



当有人对Bayou提出要求的时候,系统会先做一个判断,感受一下自己要写的程序是怎样的。然后,就是为代码库里同类型的程序做草图。这里只识别high-level模式,而忽略所有low-level特征。

在那之后,Bayou还有一个用来理解low-level细节的模块,可以自动进行逻辑推理。它会根据第一步做出的判断,生成我们可能需要的代码。

哪怕问题没有解决,Bayou给出的代码示例或许也能帮我们提出更合适的问题。这时候再去Stack Overflow寻求答疑,疗效可能会好一些。

孩子你还小

 我有优秀的聚类能力

团队认为,Bayou非常适合为各种API编写代码示例。不过,现在的它并不十分成熟,还有一些局限性。

比如,它目前支持的API非常有限,只有java.lang,java.io和Java.util。再比如,它没办法处理通配符的多种类型。

作为一只年幼的AI,Bayou还有很长的路要走。抱着GitHub修炼的好处是,从那里识别出的模式会比较通用;缺点是GitHub上面的项目质量参差不齐



目前,团队正在给Bayou增加一些自然语言处理技能,也想在用户体验里增加一些交互性。

调戏Bayou传送门:
http://askbayou.com/

论文传送门:
https://arxiv.org/pdf/1703.05698.pdf

这是发表在ICLR 2018的论文。不过,在5月1日的温哥华,团队可能又要端上新版本了。

加入社群

量子位AI社群16群开始招募啦,欢迎对AI感兴趣的同学,加小助手微信qbitbot6入群;

此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。

进群请加小助手微信号qbitbot6,并务必备注相应群的关键词~通过审核后我们将邀请进群。(专业群审核较严,敬请谅解)

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

有个AI陪你一起写代码,是种怎样的体验?| 附ICLR论文相关推荐

  1. 算法高级(47)-AI现在都可以写代码了-辅助编程

    一.AutoML AutoML 是谷歌的一个能够制造子 AI 的 AI 系统.2017 年 5 月,谷歌大脑研究人员宣布创建了 AutoML,该 AI 系统能够创造自己的 AI 系统.最近,他们决定让 ...

  2. 加入AI考拉大家庭,是一种怎样的体验?--来自考拉码农的心声

    hi,各位帅气又多金,外表冷酷实则内心热情的技术猿: 这是考拉拉第二次踏入这片专属程序猿的天地.为了让大家更加全面了解考拉拉背后的大家庭-AI考拉,我们随机采访了公司的程序猿萌,让他们简单描(tu)述 ...

  3. 说出你的需求,我们AI给你写代码 | MIT新研究

    乾明 发自 凹非寺 量子位 出品 | 公众号 QbitAI 说你想干什么,AI就能自动写代码. 现在,我们离这个目标又近了一步. 近日,MIT的一个研究团队放出了新的研究成果. 他们提出了一种灵活组合 ...

  4. 不用写代码,就能训练测试深度学习模型!Uber开源AI工具箱Ludwig

    乾明 发自 凹非寺  量子位 报道 | 公众号 QbitAI 让代码的归代码,让AI的归AI. 在不写代码就能进行AI开发的道路上,Uber今日又往前踏了一步. 刚刚,Uber宣布开源Ludwig,一 ...

  5. 命令行里给个注释,AI就能自动生成代码

    兴坤 发自 凹非寺 量子位 报道 | 公众号 QbitAI 记不住Shell常用命令和参数?现在有个工具,只要写下描述,就可以自动生成命令. 敲个回车键让AI自己生成代码,执行命令什么的也都是顺手的事 ...

  6. GitHub的AI写代码翻车了,会在注释里给你写上what the f***,因为...

    以下文章来源方志朋的博客,回复"666"获面试宝典 来源 | 新智元 GitHub Copilot凭借着自动生成代码这个强有力的噱头,推出之后就成为了讨论的焦点. Copilot建 ...

  7. 会写代码的AI开源了!C语言写得比Codex还要好,掌握12种编程语言丨CMU

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 比Codex还 ...

  8. python在哪里写代码比较适合-AI辅助写代码,Python之父都爱不释手的工具

    我刚看到这个工具的时候,也是一脸懵x,AI?机器学习?辅助?如果能全自动写出代码得多好,不过真要是这样,在座各位的就业危机就彻底来了. 言归正传,这个工具是-- kite 这是一款IDE插件,使用机器 ...

  9. 让 AI 为你写代码 - 体验 Github Copilot

    前几天在群里看到有大神分享 Copoilot AI 写代码,看了几个截图有点不敢相信自己的眼睛.今天赶紧自己也来体验一下 Copoilot AI 写代码到底有多神奇. 申请 现在 Copoilot 还 ...

最新文章

  1. 第三章:3.5 傅里叶变换
  2. 百兆以太网传输距离_新品推荐 16+2G口百兆/千兆监控接入型非标PoE交换机!
  3. MySQL防止重复插入唯一限制的数据 4种方法
  4. 日跑几十万作业,唯品会HDFS是如何优化的
  5. php格式化金额函数分享
  6. 2011年度最佳代码“不管你们信不信,我反正信了”
  7. 逻辑运算和作用域的问题
  8. Linux 下杀毒软件 CPU 占用率为何持续升高
  9. 【Expression 序列化】WCF的简单使用及其Expression Lambada的序列化问题初步解决方案(三)...
  10. jis拉伸试棒图纸_拉力测试棒测试(拉伸试验试棒尺寸)
  11. 【c4d学习笔记】OC渲染器安装问题
  12. java打包时打入本地依赖包
  13. 计算机错误1327,Win7系统电脑安装软件失败并提示错误1327解决办法
  14. 同济大学研究生 计算机 哪个校区,同济大学研究生院在哪个校区?宿舍条件好不好?有哪些招生专业目...
  15. 大华流媒体服务器连接显示器,如何从海康平台上拉流接入RTSP安防网络摄像头/海康大华硬盘录像机网页无插件直播流媒体服务器EasyNVR?...
  16. 过往云烟~如梦随风飘!!!
  17. linux查看运行的虚拟机,windows,linux,esxi系统判断当前主机是物理机还是虚拟机?查询主机序列号命令...
  18. 计算机菜单命令后省略号,windows菜单命令项的右边有省略号…表 – 手机爱问
  19. 告别户外弱网困扰,4G多卡聚合设备增强弱网环境下应急救援信号
  20. 智慧校园人员定位系统解决方案

热门文章

  1. 12306 被质疑过度获取用户隐私;直播答题外挂横行;阿里云辟谣称绝不做虚拟货币 | 一周业界事
  2. win7工作组无法查看计算机名,WIN7下无法查看工作组计算机怎么办
  3. 字节大牛教你手撕Java学习,神操作!
  4. python对大小写敏感吗_python大小写不敏感吗
  5. java面试题jvm_经典面试题|讲一讲JVM的组成
  6. php ftp 账号密码修改,月光软件站 - 编程文档 - 其他语言 - 用PHP即时添加,删除FTP帐号和更改FTP密码的函数...
  7. webpack中library和libraryTarget详解
  8. 前端如何提示自己的技术水平
  9. java 查找引用_java – Eclipse查找方法的引用
  10. wrapper php,PHP流Streams、包装器wrapper概念与用法实例详解