乾明 发自 凹非寺
量子位 出品 | 公众号 QbitAI

说你想干什么,AI就能自动写代码。

现在,我们离这个目标又近了一步。

近日,MIT的一个研究团队放出了新的研究成果。

他们提出了一种灵活组合模式识别和推理的方法,在无监督学习的情况下, 来解决AI自动编程遇到的问题。

先给你看几个例子:

任务要求:

给定一个数组,计算数字翻转过来之后的中位数。

AI会给出代码:

(reduce(reverse(digits(deref (sort a)(/ (len a) 2)))) 0
(lambda2 (+(* arg1 10) arg2)))

任务要求:

输入:
1, [-101, 63, 64, 79, 119, 91, -56, 47, -74, -33]
4, [-6, -96, -45, 17, 26, -38, 17, -18, -112, -48]

输出:
39
8

AI会给出的代码:

(MAXIMUM (MAP DIV3 (DROP input0 input1)))

这是怎么做到的?

给人类程序员一个任务,在开始写代码之前,会根据自己的经验来判断代码架构是什么样的。如果没有经验,就要采取推理的方式,来完善代码架构。

这个AI系统,就是模仿了人类结合模式识别和推理写代码的方式。

模型分为两个模块,分别是概要生成器(sketch generator)和代码合成器( program synthesizer)。

输入任务要求之后,先经过概要生成器,生成满足任务要求概率比较高的代码概要,即可能满足任务要求的初始代码,细节并不丰富。然后,代码概要进入代码合成器模块,找到满足任务要求的模块。

概要生成器,是一个带有注意力机制的seq2seq循环神经网络(RNN),在给定任务之后,通过LSTM编码器对其进行编码,然后再逐token解码。

代码合成器,有两个组成部分:广度优先概率枚举器和神经网络识别器。前者根据可能性从大到小枚举代码sketch, 后者根据任务要求来指导这一过程。

具体效果怎么样?

为了验证模型的性能,研究团队选择了两个模型与其进行对比。

分别是只有合成器的模型(Synthesizer only)和只有生成器的模型(Generator only)。

只有合成器的模型,相当于研究中代码合成器模块,进行模式识别之后,从头开始枚举所有可能的编码。与微软研究院研究团队2016年提出的“Deepcoder”模型媲美。

只有生成器的模型,相当于研究中概要生成器模块,用来预测完整的代码。与微软研究院和MIT团队在2017年提出的“RobustFill”模型媲美。

进行对比的任务是数组列表、字符串转换和自然语言要求。

在数组列表任务中,与其他两项研究相比,研究中的模型可以在简单的程序中呈现很好的性能。

在字符串转换任务中,表现要比只有合成器的模型要好,并且在一定情况下,会好于只有生成器的模型。

真正展现模型能力的,是在AlgoLisp数据集中进行的测试,这一数据集中,不仅有数组列表和字符串相关的输入输出示例,还有相应的自然语言描述。

在这个数据集上,研究者检验了模型在非结构化数据情况下的性能。

测试结果表明,模型的表现完全超过了先前学者的研究。

而且,在包含“Even”和“Odd”要求的情况下,性能更加突出了,表明了模型的通用性更强。

如果你对这个研究感兴趣,可以阅读论文,来获取更多的研究细节。

传送门:

Learning to Infer Program Sketches
https://arxiv.org/abs/1902.06349

作者系网易新闻·网易号“各有态度”签约作者

加入社群

量子位现开放「AI+行业」社群,面向AI行业相关从业者,技术、产品等人员,根据所在行业可选择相应行业社群,在量子位公众号(QbitAI)对话界面回复关键词“行业群”,获取入群方式。行业群会有审核,敬请谅解。

此外,量子位AI社群正在招募,欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“交流群”,获取入群方式。

诚挚招聘

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

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

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

喜欢就点「好看」吧 !

说出你的需求,我们AI给你写代码 | MIT新研究相关推荐

  1. 15个借助AI,ChatGPT自动写代码工具

    整理了15个借助AI和ChatGPT辅助我们自动写代码的工具,整理到 15个借助AI,ChatGPT自动写代码工具http://www.webhub123.com/#/home/detail?proj ...

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

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

  3. Tab 编程,Copilot 让你彻底解放双手,AI 帮你写代码。

    GitHub Copilot 是 GitHub 和 OpenAI 开发的 AI 代码工具,用户在使用 Visual Studio Code 或 Jetbrains 编辑器时可以通过 GitHub Co ...

  4. 成熟的AI应该自己写代码,IBM发布5亿行代码数据集,包含55种语言|开源

    转载自:量子位 在ImageNet频频出现在计算机视觉研究的今天,IBM也为智能编码(AI for Code)带来了它的专属数据集--CodeNet. 1400万个编程项目,5亿行代码,超过55种的不 ...

  5. MIT新研究:AI仅靠看X光片就能准确识别患者种族,但没人知道为什么

    本文共2500字,建议阅读5分钟仅从一个人的胸部X光片.肢体CT扫描和乳房X光片等影像资料,就能判断出他/她的种族,你相信吗? 人类对于某人是黑人.亚洲人还是白人的判断主要来自于某些外貌特征:皮肤.头 ...

  6. AI 可以自己写代码了,对程序员来说是个好消息吗?

    一项名为 Codex 的新技术生成 12 种编码语言的程序,甚至可以在它们之间进行翻译. 但这对资深程序员来说并不构成威胁. 汤姆史密斯一接触到 Codex一种新的人工智能技术,可以编写自己的计算机程 ...

  7. 用AI算法分析光影看到盲点:这项MIT新研究偷学到二娃技能

    安妮 编译整理 量子位 出品 | 公众号 QbitAI 嗨少年,想不想来双透视眼? 虽然这听起来有些科幻,但近日,麻省理工学院(MIT)计算机科学和人工智能实验室(CSAIL)的研究人员发明了一种新算 ...

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

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

  9. 全球最常用密码名单公布:“123456”排第二;谷歌神秘项目曝光:AI写代码,抢程序员饭碗;WSL GA发布|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

最新文章

  1. linux centos6.5 网络配置
  2. 什么是 PureMVC 框架(提供下载)
  3. python常见异常
  4. php 常用设计模式demo
  5. Python面试题(三)(爬虫方面)
  6. java左上角图标太小_Eclipse在高分屏下图标过小的解决方法
  7. Flask Bind-DLZ + Mysql DNS管理平台
  8. Python sys模块的使用
  9. Redis经典面试题
  10. DG SG childSG fatherSG
  11. Qt Widgets——子区域和子窗口
  12. mongodb 高可用分布式原理 ---------搭建高可用mongo集群前需要温习的知识-火
  13. TMS320F280049C 串行通信接口Serial Communications Interface (SCI)之RS485通信(多摩川编码器)
  14. HTML5海报生成器源码,原生js小项目 - canvas海报生成器
  15. 下载youtube 字幕
  16. 【物联网】22.物联网开发之先进传感 - 立体相机
  17. html页面长按保存图片,h5长按保存图片
  18. Shiro安全框架(Shiro与SpringBoot整合开发)之图片验证码(五)
  19. Leetcode1091_二进制矩阵中的最短路径(Java+BFS解法)
  20. uniapp 获取定位以及经纬度转换为城市名

热门文章

  1. 吃亏的程序员,如何拿到 9 个月的年终奖?
  2. 恒大贾跃亭和解;快播处罚细节曝光;天津三星工厂关闭 | 极客头条
  3. 弃 Windows 转投 Linux,微软全面进军 IoT!
  4. 比尔·盖茨:美国优先的世界观使我担心
  5. 【linux(2),Redis面试复习大纲在手面试不慌
  6. 给2021的Java一些建议,赶紧收藏!
  7. c# 后台传到前台乱码_ASP.NET关于前台脚本传递中文参数,后台获取乱码问题(乱码为方框,黑色方框等。。)...
  8. html背景视频模糊效果,怎么给竖屏视频添加模糊背景效果?
  9. 塘沽十三中2021年高考成绩查询,2020天津高考成绩查询
  10. ajax 制作表格带查询参数,查询表格——建立动态表格,使用ajax输入查询条件将后台数据查询出来以表格的形式展示出来...