当AI学会编程,那真的没人类什么事了

2019-08-10 18:57:48来源:鹿财经综合编辑:鹿鸣君

扫一扫

分享文章到微信

扫一扫

关注鹿财经微信公众号

  原标题:当AI学会编程,那真的没人类什么事了

  在一些科幻作品如《黑客帝国》和《爱死机:当酸奶统治世界》中,高度智慧的人工智能建立了庞大的帝国,能够自行完善程序和优化自身能力,都显示了在一个高度自动化的社会中能够自动编程的AI是多么逆天的存在。而随着Open AI一类深度学习人工智能的发展,似乎科幻有了一丝入侵现实的苗头。

  

  在过去的一年里,AI已经大幅提高了它在生成书面单词的能力。通过扫描大量的文本数据集,机器学习程序已经可以“创作”一些尚且能看的短篇小说和歌词了。而今基于同样原理的技术正被应用到一个更为严谨,套路更为固定的语言创作——新程序编码中,而这个机器学习程序名为Deep TabNine。

  DeepTabNine又被称为编程代码自动补完机。程序员可以在他们选择的代码编辑器中安装此扩展插件,当他们开始编写代码时,它会在每次输入间隙提供下一个输入建议,类似输入法的输入联想或者说命令行补全的功能。

  该程序的作者Jacob Jackson是一名来自滑铁卢大学计算机科学的本科生,在面对来自他和verge的采访时,他表示这种程序并不新鲜,但机器学习技术加持下极大地丰富了它所能提供的帮助。“这为我解决了一个问题。”

  Jackson于去年2月开始研发名为TabNine的该软件原始版本,于同年11月推出正式版。但是上个月早些时候,他发布了一个使用了由Open AI设计,名为GPT-2的深入学习文本生成算法的更新版本以提高其能力。此次更新给程序员留下了深刻的印象,他们称这是“令人惊奇的”、“疯狂的”和“ 令人震惊的”。

  DeepTabNine在写C++代码

  一个利用空闲时间从事“开源家庭自动化软件项目”的IT经理Franck Nijhof在使用该产品后对The Verge表示他不仅对Deep TabNine的能力感到惊讶,甚至有点害怕和欣慰。Nijhof说:“我使用DeepTabine的第一个小时是没有用的,因为我持续因为它惊艳的表现而打断操作。”他不停地问自己“它怎么知道的?这又是怎么做到的呢?”

  像这样的自动完成工具并不是新鲜,但是Nijhof认为DeepTabNine的建议更准确。他说:“我以前试过一些智能的‘通用’款,但它们很烦人且毫无帮助。”(不由得想起某智障输入法提供的输入建议)“TabNine无疑会是一个改变游戏规则的存在。”

  Jackson表示,该软件能提供更好的建议得益于其是在进行预测的基础上工作的。大多数自动补完器必须解析用户已经编写的内容才能提供建议,它们对代码的补完操作就如同你在书写数学方程时一样按部就班。相比之下,DeepTabNine依赖于机器学习在海量数据中建立统计模型的能力则能够进行某种层度的预测。

  就像文本生成算法需要喂食大量的书籍、文章和电影剧本数据进行训练一样,DeepTabNine也接受了GitHub中的200万个文件的训练。它从这些数据中建立合适的模型,并使用它们在任何给定代码行中接下来可能出现的内容给出建议,无论是变量名还是函数。

  Jackson说到,通过深入学习来创建自动补完程序有以下几个优势。首先,它使得添加对新语言的支持变得很容易。你只需要把更多的训练数据喂食给DeepTabNine,它就会挖掘出模型。这意味着DeepTabNine支持大约22种不同的编码语言,包括Python、JavaScript、Java、C+、C、PHP、Go、C#、Ruby、Object-C、Rust、SWIFT、Typeescript、Haskell、OCaml、Scala、Kotlin、Perl、SQL、HTML、CSS和Bash。

  最重要的是,由于深度学习的分析能力,深入浅出的建议具有较高的整体质量。而且,由于该软件不考虑用户自己的代码来提供建议,所以它可以直接从Go这个词开始帮助项目,而不是等待从用户编写的代码中获得一些提示。

     投稿邮箱:lukejiwang@163.com   详情访问鹿财经:http://www.lucaijing.com.cn

相关推荐