程序员福音!这款神器利用深度学习帮你补全编程代码

              本文重点:程序员福音!这款神器利用深度学习帮你补全编程代码

              智东西(公众号:zhidxcom)编|李水青导语:“打个比方,程序员常用的编程方法就像‘用手机键盘打字’,而使用TabNine就像转换到‘电脑键盘一样’。

              ”智东西7月25日消息,近日,滑铁卢大学学生研发了一款名为DeepTabNine的代码自动补全器。

              该软件可通过算法,在无需解析大量已有代码的情况下,为程序员提供高质量的编程建议。 近年来,人工智能技术已经被大规模用以生成文本内容。

              通过扫描大量的文本集,许多机器学习应用可以生成歌词、诗句、短篇小说、新闻稿等逻辑严明的文本,已十分接近真人撰稿的水平。 现在,滑铁卢大学学生将AI应用到计算机编程领域。

              其研发的DeepTabNine代码自动补全器,利用GPT-2模型,经过200多万份文件的训练,可以为20多种语言的编程工作提供高质量建议。

              DeepTabNine已可以在相关网站上付费下载,目前没有进一步商业化的计划。

              ▲使用Python编程时提供建议的DeepTabNine一、利用机器学习模型,提升代码补全效果程序员可以将DeepTabNine插件安装到他们的代码编辑器中,当他们开始编程时,该插件会建议下一行代码写什么,每次会提供一小块建议。

              “这类代码补全器插件并不少见,但是通过机器学习技术这款插件的补全效果获得了大大的提升。

              ”DeepTabNine的缔造者JacobJackson表示。 去年2月,Jackson开始开发TabNine软件的原始版本,并于同年11月发布。 但本月,他发布了一个更新版本,使用了OpenAI的实验室设计的名为GPT-2的深度学习模型生成算法,以提高其算力。 OpenAI是由马斯克等诸多硅谷大亨联合建立的人工智能非营利组织。 二、程序员:TabNine的代码建议更准确这一更新使许多程序员给予了DeepTabNine正面反馈,他们在Twitter上称其是“惊人的”、“绝对令人兴奋的”。 一位名叫FranckNijhof的用户是一名IT经理,他在业余时间常常自己研究家庭自动化软件。

              Nijhof向TheVerge写邮件称:“在使用DeepTabNine的第一个小时,我并没有得到什么帮助,因为我简直为它着迷了。 我不停地问自己,它是怎么知道的?”像这样的自动补全工具并不新鲜,但是Nijhof说DeepTabNine的建议更加准确。

              他说:“我过去试过一些不错的通用软件,它们把事情变复杂了,并且也怎么不实用。

              TabNine无疑是游戏规则的改变者。

              ”三、学习200多万份文件,无需解析已有代码Jackson说,市面上大多数自动补全器都必须解析用户已经编写的代码,以便提出建议,就像处理数学公式中的步骤一样处理代码。

              相比之下,DeepTabNine则依赖于机器学习在数据中发现统计模式,进而做出预测。 就像文本生成算法需要用大量的图书、文章及电影脚本的大型数据集来训练一样,DeepTabNine也需要用编码库GitHub中的200多万份文件进行训练。

              DeepTabNine利用由这些数据训练出的模型,来提示程序员接下来可能出现的在任何给定代码行中的内容,无论是变量名还是函数。 四、支持约22种编程语言,建议质量高Jackson说,使用深度学习来创建代码补全软件有几个优点。 首先,它支持添加新语言,而且操作简易。

              据称,你只需要把更多的训练数据放入TabNine中,它就会导出相关模型。

              DeepTabNine支持大约22种不同的编码语言,而大多数其他的代码补全器都只支持一种语言。 ▲使用C++编写代码时提供建议的DeepTabNine(DeepTabNine支持的语言的完整列表如下:Python、JavaScript、Java、C++、C、PHP、Go、C#、Ruby、Objective-C、Rust、Swift、TypeScript、Haskell、OCaml、Scala、Kotlin、Perl、SQL、HTML、CSS和Bash)同时,依托深度学习分析能力,DeepTabNine提出的建议综合质量很高。 由于该软件不会查看用户自己的代码来提出建议,所以它可以从一开始就帮助程序员推进工作,而不是等着从程序员编写的代码中获得提示。 五、不适合开创性的编程工作,有时会出错当然,这个软件也有缺陷。

              它在建议中有时候会出错,且并不是对所有类型的代码都有用。

              黑客新闻等编程网站及论坛上有许多专业人士对该软件展开了讨论,其中有许多正面评论,也有一些指出了问题。

              其中有一条差评是DeepTabNine的缔造者Jackson也表示赞同的,即DeepTabNine更适合一部分特定类型的编程指令。 当自动完成相对死记硬背的代码时,DeepTabNine的工作效率最高,因为这类代码用的频率很高,且往往变化很小。

              当用户需要解决新问题时,面对开创性的编码需求,它就有些“压力山大”了。

              据称,这个问题的存在也是合理的,主要是由于该软件的智能来自对存档数据的学习。 那么它对程序员到底有多大用处呢?这将取决于很多因素,比如他们使用什么编程语言以及他们想要实现什么。

              但是Jackson说,它更像是一种更快的输入方法,而不是程序员编码伙伴,不是一种常见的结队编程应用。

              Jackson说:“打个比方,程序员常用的编程方法就像‘用手机键盘打字’,而使用DeepTabNine就像转换到‘电脑键盘一样’。 ”软件提高了你输入信息的速度,这让你更有效率,“因此你可以花更多的时间思考高层次的东西,而不是细节。 ”但它不会为你编写代码,你也需要检查验证,不能过于依赖它。 七、未确定是否商业化,但花49美元可买到目前,Jackson正在考虑下一步如何使用该软件,以及是否值得将其商业化。 他说:“我在一家大型科技公司做全职工作,我不想放弃这份工作。 很多来自各行各业的人找到我,表示对DeepTabNine感兴趣。

              但我还没有想好下一步怎么做。

              ”TabNine的个人使用许可价格为49美元,商业使用许可价格为99美元,用户必须注册DeepTabNinebeta版才能使用新的深度学习功能。

              在相关网站上,Jackson这样解释该价格:“TabNine每分钟将为你节省至少1秒钟时间。 如果你把时间的价值定在每小时美元以上,不到一年就能收回成本。

              ”“我的梦想是未来能建成一个程序,它能根据程序员的需求直接生成代码。

              目前我们离这个目标还很远,但我认为DeepTabNine可以让你更快捷地表达想法。 ”Jackson表示。 文章来源:TheVerge。