专栏首页小詹同学杀手级 AI 补代码工具问世,支持 23 种语言及 5 种主流编辑器,程序员沸腾了

杀手级 AI 补代码工具问世,支持 23 种语言及 5 种主流编辑器,程序员沸腾了

GPT-2,一个来自OpenAI的逆天语言模型,现在能用来补全代码了。

一位来自加拿大的大四学霸,开发了一款”Deep TabNine“代码补全工具,实现了这一大胆的想法。

它支持23种编程语言、5种编辑器,使用简单,效果惊艳。

不少使用过的网友说:TabNine是他们用过的最好的代码补全工具,这是属于程序员的杀手级应用

在VS Code的扩展商店里,TabNine已经被下载1.3万次,获得全5星好评。

支持23种编程语言

Deep TabNine支持Java

Python

C++

Haskell

不同于各种其他代码补全插件,Deep TabNine是根据程序员过去的习惯自动补全,并在后面给出几种选项的概率。

如果有类似代码出现在之前的项目里,TabNine还会在补全候选框中直接给出地址,方便用户点击进去查阅。

除以上几种语言之外,Deep TabNine还支持JavaScriptCPHPGoC#RubyObjective-CRustSwiftTypeScriptOCamlScalaKotlinPerlSQLHTMLCSSBash

主流编程语言几乎都囊括在内。

支持5种编辑器

TabNine支持VS CodeSublime TextAtomEmacsVim五种代码编辑器。

对于使用VS Code和Sublime来说,安装TabNine非常方便,用自带的扩展包管理工具即可。

VS Code

VS Code用户按下Ctrl+P(Mac用户按下+P),粘贴以下命令,然后按回车键完成安装。

ext install TabNine.tabnine-vscode

Sublime

Sublime用户安装分为两步:

1、按下Ctrl+Shift+P(Mac用户:+Shift+P),选择Install Package Control;

2、再次按下Ctrl+Shift+P(Mac用户:+Shift+P),选择Package Control:Install Package,然后选择TabNine来安装。

Vim

Vim使用Vundle插件管理器进行安装:

1、添加Plugin ‘zxqfl/tabnine-vim’.vimrc

2、输入:PluginInstall,按下回车完成安装。

其他编辑器的安装方法就不一一赘述了,有需要的用户可以参照文末的链接进行安装。

项目超过400kb需要购买许可证:个人用户49美元,商业用户99美元。

由于Deep TabNine用到机器学习补全代码,因此需要大量的算力(超过100亿次浮点运算),在笔记本上运行模型,无法获得低延迟的体验。

因此,软件开发者推出了TabNine Cloud云服务器,用云端GPU加速。付费用户不需要再加钱即可使用。

所以听起来很划算吧?

软件开发者自己就说,这个价格其实不贵,有了TabNine,一分钟就里能帮你节省一秒,咱们再算算程序员的时薪,每个小时能节约1.4美元,不到一年时间就能回本了。

如果你对效果不满意,TabNine开发者还提供30天退款保证。

怎么做到的?

TabNine是在GPT-2的基础上构建的,这是一种Transformer架构,原产自OpenAI,是个“逆天”语言模型。

GPT-2的参数高达15亿个,数据量比一代扩大了10倍,使用了包含800万个网页的数据集,共有40GB。

逆天之处就在于,GPT-2写起文章来毫无违和感,无需针对性训练就能横扫各种特定领域的语言建模任务,还具备阅读理解、问答、生成文章摘要、翻译等等能力。

就GPT-2而言,它的训练目标很简单:根据所有给定文本中前面的单词,预测下一个单词。虽然本来是解决NLP问题,看似与写代码没什么关联,但建模代码也算是用一种独有的方式在理解英文

比如,可以让模型用if/else语句否定单词:

项目主页显示,在大约经过GitHub中200万个文件训练后,TabNine具备了自动补全代码的能力。

在训练这个模型期间,模型学习了例如动态类型语言中的类型推断等复杂行为,用这样的训练方式预测token。

作者表示,TabNine可以很好利用传统代码补全工具难以获取的琐碎细节。

例如,假设app.get_user()的返回类型是一个带有setter方法的对象,而app.get_users()的返回类型是一个列表,两个名称之间只有细微的差别:

这个模型还能以自然语言编写的文档来推断函数名称、参数和返回类型:

Deep TabNine加入了之前用户强烈要求加入的功能:用预先存在的知识,解决在创建新项目时的代码补全问题。

例如,它知道当一个类扩展React.Component时,它的构造函数通常会调用一个名为props的参数,并且通常在其内部用this.state赋值:

Deep TabNine甚至可以做不可能的事情,并记住C++可变参数转发语法:

“杀手级应用”

TabNine问世后,不断收获好评,甚至还有程序员激动得爆粗口:

卧槽,这种软件多来点就好了。(Fuck yeah. This is the sort of software I want to see more often: TabNine )

有网友表示, 没有它都不知道该怎么面对写代码这件事了。

还有人称之为开发者应用中的第一个“杀手级应用程序”:

“令人印象深刻”、“感到神奇”“太酷了”……推特上的评价,颇有电视广告上“用了都说好”的画风。

在各大科技论坛上,也有网友提出了建议和改进的方向。

有用户反映,也有美中不足的地方,比如这个工具会干扰自动括号完成。

作者表示,TabNine还在不断更新完善中,正在改进这些bug。

大四学霸的第一桶金

想不到吧,这款好评如潮的代码工具,出自一名大四学生之手。

Jacob Jackson,加拿大人,目前在滑铁卢大学主修计算机科学与组合优化专业,辅修数学。大四在读,今年8月份毕业。

Jackson此前在Reddit上发帖称,这是自己在大学阶段开发的第一款商业软件产品。

别人的大学,别人的第一桶金~

但Jackson并非无名之辈,年少有为,曾在2014和2015连续两年获得IOI金牌

因此,大学一入学,便成为加拿大Michael and Ophelia Lazaridis Olympiad Scholarship奖学金的获得者,免除了8个学期学费书费和生活费。

除了自动补全代码的TabNine,Jackson还开发了很多有意思的应用,比如一个名为jellies的益智游戏,和使用蒙特卡罗树搜索的国际象棋引擎Sashimi等。

本文分享自微信公众号 - 小詹学Python(xiaoxiaozhantongxue)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微软与美国连锁医院联合建设“未来医院”,将用AI技术帮助医生诊断

    今日消息,据媒体报道微软将与美国连锁医院运营商普罗维登斯-圣约瑟夫医疗集团(以下简称“普罗维登斯)进行合作,双方将建设一家“未来医院”。

    镁客网
  • DeepMatrix 2.0发布,百分点要走怎样的认知智能之路?

    如果说感知智能的崛起拉开了人工智能浪潮的新序幕,那么认知智能的突破将意味着人工智能迈上重要的新台阶。

    大数据在线
  • AI技术的相关知识

    AI(Artificial Intelligence)就是人工智能,它是研究人的智能的,并且进行模拟和延伸的新兴科学技术。

    用户5777378
  • 语音识别技术的相关知识

    语音识别技术,也被称为自动语音识别Automatic Speech Recognition,(ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,...

    用户5777378
  • 下一个十年:数据信仰与认知智能

    百分点技术副总裁兼首席架构师刘译璟博士认为,在产业数字化逐步深入的趋势下,以自然语言处理(NLP)、知识图谱为代表的认知智能技术将会以场景为切入点,通过以点带面...

    大数据在线
  • 《AI 算法工程师手册》正式开源!

    之前我曾在《分享集锦:哈佛 Web 开发教程、HTTP 状态码速学、阿里 AI 算法工程师手册、机器学习书籍》中提及过一本由阿里巴巴工程师撰写的一本算法手册,前...

    GitHubDaily
  • 一文看尽飞桨PaddlePaddle最新升级:5大优势,更低门槛使用深度学习

    从Paddle Fluid v1.0以来,飞桨致力于打造更好的用户体验,趁着百度开发者大会,也为用户精心准备了一份大礼,在开发、训练及部署全流程上进行了全新升级...

    量子位
  • 【开源公告】NeuralNLP-NeuralClassifier - 深度学习文本分类工具

    NeuralNLP是腾讯广告(Tencent Marketing Solution,TMS)(https://e.qq.com/)数据算法团队搭建的一个基于P...

    腾讯开源
  • 计算机程序的运行

    程序是一组计算机能识别和执行的指令,为使计算机按预定要求工作,首先要编制程序,无论是最早的操作系统还是现代操作系统,程序的运行都是计算机工作的本质。早期计算机是...

    搬砖俱乐部
  • 从发展滞后到不断突破,NLP已成为AI又一燃爆点?

    AI 行业应用是一片新的大陆,深度学习作为新大陆的基石,经历了一轮又一轮突破。过去十年,在计算机视觉、语音识别、棋类 AI 等计算和感知智能技术上,深度学习率先...

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券