杀手级 AI 补代码工具问世,支持 23 种语言及 5 种主流编辑器,程序员沸腾了...
点击⬆️“小詹学Python”,选择“星标”公众号
重磅干货,第一时间送达
本文转载自量子位,禁二次转载
边策 安妮 发自 凹非寺
量子位 出品 | 公众号 QbitAI
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还支持JavaScript、C、PHP、Go、C#、Ruby、Objective-C、Rust、Swift、TypeScript、OCaml、Scala、Kotlin、Perl、SQL、HTML、CSS和Bash。
主流编程语言几乎都囊括在内。
支持5种编辑器
TabNine支持VS Code、Sublime Text、Atom、Emacs、Vim五种代码编辑器。
对于使用VS Code和Sublime来说,安装TabNine非常方便,用自带的扩展包管理工具即可。
VS Code
VS Code用户按下Ctrl+P(Mac用户按下⌘+P),粘贴以下命令,然后按回车键完成安装。
ext install TabNine.tabnine-vscode 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等。
传送门
TabNine网站:
https://tabnine.com/blog/deep
Jackson GitHub主页:
https://github.com/zxqfl
Jackson简历:
http://jacobj.ca/resume.html
?扫描上方二维码关注
杀手级 AI 补代码工具问世,支持 23 种语言及 5 种主流编辑器,程序员沸腾了...相关推荐
- 杀手级AI补代码工具问世,支持23种语言、5种主流编辑器!(附链接)
本文经AI新媒体量子位授权转载,转载请联系出处. 本文约2100字,建议阅读10分钟. 本文介绍了新开发出的"Deep TabNine"代码补全工具,支持多种编程语言和编辑器. G ...
- 杀手级AI补代码工具问世,支持23种语言及5种主流编辑器,程序员沸腾了
边策 安妮 发自 凹非寺 量子位 出品 | 公众号 QbitAI GPT-2,一个来自OpenAI的逆天语言模型,现在能用来补全代码了. 一位来自加拿大的大四学霸,开发了一款"Deep Ta ...
- CSDN周刊:AI补代码神器问世,百度网盘克星诞生,Google 已经取消中国搜索引擎项目!
CSDN开发者周刊:只为传递"有趣/有用"的开发者内容,点击Star(Github)! 本周热门项目 1.TabNine:支持23种语言及5种主流编辑器AI补代码工具问世 一位来自 ...
- AI 补代码神器诞生,百度网盘克星诞生,Google 取消中国搜索引擎项目! | 开发者周刊...
整理 | 张红月 出品 | CSDN(ID:CSDNnews) 本周热门项目 TabNine:支持23种语言及5种主流编辑器AI补代码工具问世(下附链接) https://github.com/ ...
- 7个杀手级的开源监测工具
7个杀手级的开源监测工具 想要更清晰的了解你的网络吗?没有比这几个免费的工具更好用的了. 网络和系统监控是一个很宽的范畴.有监控服务器.网络设备.应用正常工作的方案,也有跟踪这些系统和设备性能,提供趋 ...
- 一站式杀手级 AI 开发平台来袭!告别切换零散建模工具
受访者 | 杨一帆 记者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 「AI 技术生态论」 人物访谈栏目是 CSDN 发起的百万人学 AI 倡议下的重要组成部分.通过对 AI 生态顶级大 ...
- 20 个杀手级 JavaScript 单行代码
杀手级的TypeScript功能:const断言_短暂又灿烂的的博客-CSDN博客我发现官方的 TypeScript 文档非常有用,但是总觉得有点过于学术化并且枯燥无味.每当我发现一个新功能时,我想要 ...
- 18 个终端命令行工具,绝对让你感觉自己像个10倍程序员
来自:掘金 作者:lcomplete 链接:http://33h.co/wquzt 终端是程序员的必备工具之一,10 倍程序员的终端跟普通程序员有何不同?本文将介绍许多牛逼且实用的开源工具,用上这些工 ...
- ubantu java编辑器_Linux Ubuntu中最好的代码编辑器 程序员都这么看吗?
[IT168 应用]Linux Ubuntu 中最好的代码编辑器是哪个 ? 这要看程序员的使用习惯和喜好了,Atom.Brackets.Sublime Text 是最常用的三个,也许程序员们还有更喜欢 ...
最新文章
- JS高级程序设计拾遗
- struts2 实现多文件限制上传
- Vue+Openlayers+el-checkbox实现多选配置图层的显示和隐藏
- SQL/T-SQL/PLSQL
- (转)几种常用存储过程分页方法
- Linux两块磁盘挂载指向一个文件夹LVM磁盘管理(一)
- IDEA在线和离线安装lombok
- 机器学习算法总结之XGBoost(下) 实战与调参
- DynamipsGUI使用注意
- 报错 OSError: CUDA_HOME environment variable is not set. Please set it to your CUDA install root.
- 两高一部电子数据取证规则_“鼓浪听涛,论道取证”2019中国电子数据取证峰会在厦门召开,行业专家齐聚...
- (转)SonicStage CP 4.3 中文迷你版和完整版下载
- 数字电子计算机在线,(),第一台数字电子计算机问世。A、1944年B、1945年C、1946年 - 作业在线问答...
- insist fortress g55 机械键盘得救了
- python爬虫网页图片显示不出来_网页爬虫 - python下载的图片不显示,无法查看
- 宋登高 php,HDwiki百科建站第一期
- MFC求一元二次方程的根(三种情况:相同根,不同根,虚根)
- 3dmaxs坐标轴不显示灰色显示(没有坐标轴箭头)
- 【Git的学习笔记】老板让我用Git提交,但我还没学过Git
- 基于C++的灰度值方图处理
热门文章
- 最新版本sublime text3注册码
- 日志文件切割服务logrotate配置及crontab定时任务的使用
- Yii的Where条件
- Docker过程汇总
- mac编译php apache,在Mac OS上自行编译安装Apache服务器和PHP解释器
- java人脸识别_自从加了PC人脸识别登录功能,网站立马显得高大上
- zend framework1.12 没找到php.exe,请加一个zend framework的有关问题
- maven静态资源导出(Ctrl+C+V)
- 某中学的排课管理系统_某中学的排课管理系统(SQL的简单应用)
- currenthashmap扩容原理_ConcurrentHashMap实现原理和源码解读