更新时间:2021-10-14 08:38:18
大家好,我是本栏目的编辑郝帅。现在我给大家解释一下上面的问题,谈谈更聪明更努力的工作。计算机科学专业构建一个有趣的代码完成工具,使用深度学习软件完成源代码行,从而获得正确的想法。
虽然,是的,有大量的源代码自动完成工具可用,但这一个叫做Deep TabNine,据说是基于OpenAI令人印象深刻的GPT-2文本喷射引擎,这让我们的书非常有趣。GPT 2号有一个经过训练的神经网络,可以给出写作提示,比如新闻文章、小说的开篇句子或者一行代码,并预测接下来应该遵循什么。它可以做出这些预测,因为它已经研究了数百万个网页,以了解人类如何将主题、想法和单词联系起来。
Deep TabNine是由加拿大滑铁卢大学四年级本科生雅各布杰克逊开发的。他之前制作了TabNine,一个非人工智能代码完成插件。
一旦安装到代码编辑器中,Deep TabNine就会分析人工输入的每一行源代码,并提出完成每一条语句的方法,这有点像一对编程伙伴。然后,编码员可以选择完成建议列表中未完成的行,而无需全部输入。本质上,这就像使用谷歌的智能撰写功能创建电子邮件,或者使用许多非人工智能自动完成工具之一。当然,如果Deep TabNine提出了一个愚蠢的建议,开发者可以忽略它。
“自动完成是这项技术的一个很好的用例,”杰克逊告诉《注册》。“所有程序员都花大量时间编写可以被AI加速的代码。与语言生成相比,代码中的自动完成在技术上更容易解决。”
虽然Deep TabNine是基于GPT-2,但我们被告知它略有修改。由于他试图将该项目商业化,杰克逊不愿透露太多细节。他没有说他曾经开发过Deep TabNine的GPT-2版本,但他确实说过,使用参数更多的模型并不总是有益的。
“使用更多的参数不一定更好,”他解释道。“它提出的建议会变得更聪明,但当你打字时,它也会变得越来越慢。”
Deep TabNine应该知道源代码的上下文,所以它比典型的代码完成工具包更聪明。例如,如果您在以数学为中心的函数中编写一些代码,它可能会建议进行数学运算,而不是处理文本字符串的方法。您可以在这里观看各种编程语言的Deep TabNine演示。
目前Jackson的工具计算量很大,需要GPU通过高达100亿的浮点计算来加速任务的执行,输入时给出建议。因此,你的笔记本电脑可能不够强大,无法有效运行神经网络。您可以通过测试级云服务申请使用DeepTab Nine,它可以完成所有后端预测,并向您的代码编辑器提交建议。互联网。
杰克逊希望创建一个可以授权给公司的版本,这样他们就可以在自己的服务器上运行软件,以确保他们的代码保持私密,而不是穿梭于远程服务中进行分析和建议。
Tabnine用Rust编写,支持Python、JavaScript、Java、C、C、PHP、Go、C#、Ruby、Objective-C、Rust、Swift、TypeScript、Haskell、OCaml、Scala、Kotlin、Perl、SQL、HTML、CSS、Bash。