GMAIL为编码人员设计的AI编码软件

2020-02-01 12:51:54    来源:    作者:

在过去的一年里,人工智能已经大大提高了它产生文字的能力。通过扫描大量的文本数据集,机器学习软件可以生成从短篇小说到歌词的所有内容的令人信服的样本。现在,这些相同的技术正被应用到一个叫做DeepTabNine的新程序的编码世界中。 DeepTabNine被称为编码自动完成器。程序员可以在自己选择的编辑器中安装它作为附加组件,当他们开始编写时,它将建议如何继续每行,一次提供小的块。把它看作是Gmail的智能撰写功能,但不包括代码。 滑铁卢大学计算机科学系本科生雅各布·杰克逊(JacobJackson)发明了DeepTabNine,他说这种软件并不新鲜,但是机器学习已经极大地改善了它所能提供的功能。

GMAIL为编码人员设计的AI编码软件

“这为我解决了一个问题,”。

去年2月,杰克逊在11月发布这款软件之前,就开始开发这款软件的原始版本tabnine。但本月早些时候,他发布了一个更新版本,该版本使用了一种叫做gpt-2的深度学习文本生成算法,该算法由研究实验室openai设计,以提高其能力。这一更新给编码人员留下了深刻的印象,他们在Twitter上称之为“惊人的”、“疯狂的”和“绝对令人兴奋的”。

一位用户Franck Nijhof是一位IT经理,他在业余时间从事开源家庭自动化软件的工作,他说他不仅仅对Deep TabNine感到惊讶——他以一种愉快的方式感到害怕。Nijhof在邮件的边缘说:“我第一个小时使用DeepTabNine是没有帮助的,因为我一直被一种惊奇的感觉所阻止,试图把我的头绕起来。”他不停地问自己,“它怎么知道的?但是怎么做呢?“ 像这样的自动完成工具并不新鲜,但尼霍夫说,DeepTabnine的建议更准确。他说:“过去我试过一些聪明的‘万能’的,但它们很烦人,没有帮助。”“毫无疑问,Tabnine改变了游戏规则。”

杰克逊说,该软件提供了更好的建议,因为它在预测的基础上工作。大多数自动完成程序都必须解析用户已经编写的内容以提出建议,像处理数学公式中的步骤一样处理代码。相比之下,DeepTabNine依赖于机器学习在数据中发现统计模式以进行预测的能力。

GMAIL为编码人员设计的AI编码软件

与文本生成算法在书籍、文章和电影脚本的巨大数据集上进行培训的方式相同,DeepTabNine在Github编码库中接受了200万个文件的培训。它在这些数据中找到模式,并使用它们来建议在任何给定的代码行中接下来可能出现的内容,无论是变量名还是函数。

杰克逊说,使用深度学习创建自动完成软件有几个优点。首先,它使添加对新语言的支持变得容易。他说:“你只需要把更多的训练数据放到DeepTabnine的Hopper中,它就能挖掘出模式。”这意味着DeepTabNine支持大约22种不同的编码语言,而大多数备选方案只支持其中一种。

(支持的全部语言列表如下: Python, JavaScript, Java, C++, C, PHP, Go, C#, Ruby, Objective-C, Rust, Swift, TypeScript, Haskell, OCaml, Scala, Kotlin, Perl, SQL, HTML, CSS, Bash)

最重要的是,由于深入学习的分析能力,Deep TabNine提出的建议具有较高的整体质量。而且,由于软件不会通过查看用户自己的代码来提出建议,它可以从一开始就帮助项目,而不是等待用户编写的代码提供一些提示。

GMAIL为编码人员设计的AI编码软件

Deep Tabnine也有问题

当然,软件并不完美。它的建议有错误,并不是对所有类型的编码都有用。不同编程领域的用户,如Hacker News和R/Programming Subredit,都在讨论它的优点,并提供了一些混合的评论(尽管他们大多偏向正面)。正如您对为编码人员构建的编码工具所期望的那样,人们对于它如何与现有的编辑器和工作流精确地工作有很多要说的。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。