当前位置: 首页 > 科技观察

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

时间:2023-03-12 01:49:17 科技观察

GPT-2,来自OpenAI的语言模型,现在可以用来补码了。一位来自加拿大的大四学生开发了一款“DeepTabNine”代码补全工具来实现这个大胆的想法。它支持23种编程语言和5种编辑器。它使用方便,效果惊人。许多使用过的网友表示:TabNine是他们用过的最好的代码补全工具,是程序员的杀手级应用。在VSCode的扩展商店中,TabNine已被下载13,000次,并获得所有5星评价。支持23种编程语言DeepTabNine支持Java:Python:C++:Haskell:不同于其他各种代码补全插件,DeepTabNine根据程序员以往的习惯自动补全,并给出后面几个选项的概率。如果之前的项目中有类似的代码,TabNine也会直接在补全候选框中给出地址,方便用户点击查看。除了以上语言,DeepTabNine还支持JavaScript、C、PHP、Go、C#、Ruby、Objective-C、Rust、Swift、TypeScript、OCaml、Scala、Kotlin、Perl、SQL、HTML、CSS和Bash。几乎包括所有主要的编程语言。支持5种编辑器TabNine支持5种代码编辑器:VSCode、SublimeText、Atom、Emacs和Vim。使用VSCode和Sublime,安装TabNine非常方便,使用自带的扩展包管理工具即可。VSCodeVSCode用户按Ctrl+P(Mac用户按?+P),粘贴以下命令,回车完成安装。exinstallTabNine.tabnine-vscodeSublimeSublime用户安装分为两步:1.按Ctrl+Shift+P(Mac用户:?+Shift+P),选择InstallPackageControl;2.再次按Ctrl+Shift+P(Mac用户:?+Shift+P),选择PackageControl:InstallPackage,选择TabNine进行安装。VimVim使用Vundle插件管理器安装:1.添加Plugin'zxqfl/tabnine-vim'到.vimrc;2、输入:PluginInstall,回车完成安装。其他编辑器的安装方法就不一一介绍了。有需要的用户可以参考文末链接安装。超过400kb的项目需要购买许可证:个人用户49美元,商业用户99美元。由于DeepTabNine使用机器学习来完成代码,需要大量的计算能力(超过100亿次浮点运算),在笔记本电脑上运行模型无法获得低延迟体验。因此,软件开发者推出了由云端GPU加速的TabNineCloud云服务器。付费用户无需支付更多费用即可使用。听起来很划算,对吧?软件开发商自己说,价格其实并不贵。使用TabNine,每分钟可为您节省一秒。我们算算程序员的时薪,每小时可以节省1.4美元,一年不到。时间会回报。如果您对结果不满意,TabNine开发人员还提供30天退款保证。你是怎么做到的?TabNine建立在GPT-2的基础上,GPT-2是Transformer架构,最初来自OpenAI,是一种“逆天”的语言模型。GPT-2的参数高达15亿,数据量是第一代的10倍。它使用包含800万个网页的数据集,总共40GB。逆天的是GPT-2在写文章的时候没有违和感,无需针对性训练就可以横扫特定领域的各种语言建模任务。它还具有阅读理解、问答、生成文章摘要、翻译等功能。就GPT-2而言,其训练目标很简单:给定文本中所有先前的词,预测下一个词。虽然本来是为了解决NLP问题,看起来跟写代码没什么关系,但是建模代码也算是理解英文的一种独特方式。例如,可以让模型使用if/else语句来否定词:项目主页显示,在GitHub上训练了大约200万个文件后,TabNine具备了自动补全代码的能力。在该模型的训练过程中,模型学习动态类型语言中的类型推断等复杂行为,并以这种训练方式预测标记。据作者介绍,TabNine可以很好地利用传统代码补全工具难以获取的琐碎细节。例如,假设app.get_user()的返回类型是一个带有setter方法的对象,app.get_users()的返回类型是一个列表,两者的名字只有一点点区别:这个模型也可以是以自然语言表达的书面文档来推断函数名、参数和返回类型:DeepTabNine增加了一个用户之前强烈要求的功能:解决使用已有知识创建新项目时的代码补全问题。例如,它知道当一个类扩展React.Component时,它的构造函数通常会调用一个名为props的参数,并且通常会在其中分配this.state:DeepTabNine甚至可以完成不可能的事情,记住C++变量参数转发句法:“杀手级应用”TabNine出来后一直口碑不错,甚至有的程序员激动得发誓:卧槽,这种软件多点就好了。(卧槽,我最想经常看到的就是这种软件:TabNine)有网友说没有它我都不知道怎么写代码了。还有人称它为开发者应用中的第一个“杀手级应用”:“印象深刻”、“感觉棒极了”、“太酷了”……推特上的评论与电视广告中的评论颇为相似。用“一切都好”的画风。在各大技术论坛上,也有网友提出了改进的建议和方向。有用户反映也存在一些不足,比如这个工具会干扰括号自动补全。作者表示,TabNine还在更新完善中,这些bug正在完善中。没想到学长的第一桶金,这款备受好评的编码工具竟然出自学长之手。JacobJackson,加拿大人,目前在滑铁卢大学主修计算机科学和组合优化,辅修数学。我大四了,今年八月份毕业。杰克逊此前在Reddit上发帖称,这是他开发的第一款大学级别的商业软件产品。别人的大学,别人的第一桶金~但Jackson可不是默默无闻的人,他年轻有为,在2014年和2015年连续两年获得IOI金牌。所以,一入学,你成为加拿大MichaelandOpheliaLazaridisOlympiadScholarship的获得者,免除你8个学期的学费、书本费和生活费。除了自动补全代码的TabNine之外,Jackson还开发了很多有趣的应用,比如名为果冻的益智游戏,以及使用蒙特卡洛树搜索的国际象棋引擎Sashimi。传送门TabNine网站:https://tabnine.com/blog/deepJacksonGitHub主页:https://github.com/zxqflJackson简历:http://jacobj.ca/resume.html