这款 AI 驱动的自动完成软件是 Gmail 为编码人员设计的

 邮箱网  0条评论  1453次浏览  2021年12月30日 星期四 20:14

分享到: 更多
邮箱网讯 12月30日消息 在过去的一年里,人工智能极大地提高了其生成文字的能力。通过扫描大量文本数据集,机器学习软件可以生成从短篇小说到歌词的所有内容的令人信服的样本。现在,这些相同的技术正通过一个名为Deep TabNine的新程序应用于编码世界。

Deep TabNine 是所谓的编码自动完成器。程序员可以将它作为附加组件安装在他们选择的编辑器中,当他们开始编写时,它会建议如何继续每一行,一次提供小块。将其视为 Gmail 的 Smart Compose 功能,但用于代码。

机器学习可以严重提高编码助手的能力

创建 Deep TabNine 的滑铁卢大学计算机科学本科生 Jacob Jackson 表示,这种软件并不新鲜,但机器学习已经极大地改进了它所能提供的功能。“它为我解决了一个问题,”他告诉The Verge。

杰克逊于去年 2 月开始开发该软件的原始版本 TabNine,然后于同年 11 月发布。但本月早些时候,他发布了一个更新版本,该版本使用名为 GPT-2 的深度学习文本生成算法,该算法由研究实验室 OpenAI 设计,以提高其能力。这一更新给程序员留下了深刻的印象,他们在Twitter 上称其为“惊人”、“疯狂”和“绝对令人兴奋” 。

一位用户 Franck Nijhof 是一名 IT 经理,他在业余时间从事开源家庭自动化软件的工作,他说他不仅对 Deep TabNine 感到惊讶——他还以一种愉快的方式感到害怕。“我使用 Deep TabNine 的第一个小时并没有帮助 [因为] 我不断被惊讶地试图绕过它而停下来,”Nijhof通过电子邮件告诉The Verge。他不停地问自己:“它怎么知道的?但是怎么办?”

像这样的自动完成工具并不新鲜,但 Nijhof 说 Deep TabNine 的建议要准确得多。“我过去曾尝试过一些智能的'通用',但它们很烦人而且没有帮助,”他说。“TabNine 无疑改变了游戏规则。”

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

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

Jackson 说,使用深度学习来创建自动完成软件有几个优势。首先,它可以轻松添加对新语言的支持。他说,你只需要将更多的训练数据放入 Deep TabNine 的漏斗中,它就会挖掘出模式。这意味着 Deep TabNine 支持大约 22 种不同的编码语言,而大多数替代方案只能使用一种。

(Deep TabNine 支持的完整语言列表如下: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 提出的建议整体质量很高。而且由于该软件不会查看用户自己的代码来提出建议,因此它可以从一开始就开始帮助项目,而不是等待从用户编写的代码中获得一些提示。

DEEP TABNINE 也有它的问题

当然,该软件并不完美。它在建议中出错,并且不适用于所有类型的编码。在 Hacker News 和 r/programming subreddit 等各种编程聚会上的用户对其优点进行了辩论,并提供了一些褒贬不一的 评论(尽管他们大多倾向于正面)。正如您对专为编码人员构建的编码工具所期望的那样,人们对它如何与现有的编辑器和工作流程一起工作有很多话要说。

杰克逊同意的一个抱怨是合理的,即 Deep TabNine 更适合某些类型的编码。它在自动完成相对死记硬背的代码时效果最好,这种编程已经完成了数千次,但变化很小。编写探索性代码的能力较差,用户正在解决一个新问题。考虑到软件的智能来自档案数据中的模式,这是有道理的。


Deep TabNine 用于编写一些 C++。

那么它对您的普通编码人员来说真的有用吗?这将取决于很多因素,比如他们使用什么编程语言以及他们试图实现什么。但杰克逊说,它更像是一种比人类编码伙伴更快的输入方法(一种常见的做法,称为结对编程)。

“想象一下,现在所有的程序员都在使用相当于手机键盘的东西来打字,而使用 Deep TabNine 有点像使用普通键盘,”他说。该软件提高了您输入信息的速度,从而提高了您的工作效率,“因为您可以花更多时间思考高级别的东西而不是细节。” 但它不会为你编写代码,你需要密切关注它。

“我还没有真正决定我想用它做什么。”

目前,Jackson 正在考虑下一步如何使用该软件,以及是否值得将其作为职业商业化。他说,他有一份他不想放弃的大型科技公司的全职工作,但来自各个行业的“很多兴趣”。“我还没有真正决定我想用它做什么,”他说。

目前,TabNine 的个人使用许可证费用为 49 美元,商业使用费用为 99 美元,个人必须注册 Deep TabNine 测试版才能访问新的深度学习功能。在网站上,Jackson 像这样证明了价格是合理的,这是对该软件吸引力的一个不错的总结:“TabNine 每分钟至少可以为您节省 1 秒。如果你的时间价值超过 1.40 美元/小时,它会在不到一年的时间内收回成本。”

他说,如果他能够使用开源软件创建这样的程序,那么人工智能辅助编码的未来将是光明的。

“在这个领域工作的每个人的目标是告诉计算机你想写什么代码,它会为你完成,”他说。“目前我们还远未达到这一点,但我认为这是一种工具,可以让您更方便地表达自己的想法。”

标签:gmailAI编码

我的评论:

请  后发表评论。