0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

新機(jī)器視覺 ? 來源:LONG ? 2019-07-19 09:03 ? 次閱讀

GPT-2,一個來自 OpenAI 的逆天語言模型,現(xiàn)在能用來補(bǔ)全代碼了。

一位來自加拿大的大四學(xué)霸,開發(fā)了一款”Deep TabNine“代碼補(bǔ)全工具,實(shí)現(xiàn)了這一大膽的想法。

它支持23種編程語言、5種編輯器,使用簡單,效果驚艷。

不少使用過的網(wǎng)友說:TabNine是他們用過的最好的代碼補(bǔ)全工具,這是屬于程序員的殺手級應(yīng)用。

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

在 VS Code 的擴(kuò)展商店里,TabNine 已經(jīng)被下載 1.3 萬次,獲得全 5 星好

支持 23 種編程語言

Deep TabNine 支持 Java

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

Python

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

C++

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

Haskell:

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

不同于各種其他代碼補(bǔ)全插件,Deep TabNine 是根據(jù)程序員過去的習(xí)慣自動補(bǔ)全,并在后面給出幾種選項(xiàng)的概率。

如果有類似代碼出現(xiàn)在之前的項(xiàng)目里,TabNine還會在補(bǔ)全候選框中直接給出地址,方便用戶點(diǎn)擊進(jìn)去查閱。

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

除以上幾種語言之外,Deep TabNine還支持JavaScript、C、PHP、Go、C#、Ruby、Objective-C、Rust、Swift、TypeScript、OCaml、Scala、Kotlin、Perl、SQL、HTML、CSS和Bash。

主流編程語言幾乎都囊括在內(nèi)。

支持 5 種編輯器

TabNine 支持 VS Code、Sublime Text、Atom、Emacs、Vim 五種代碼編輯器。

對于使用 VS Code 和 Sublime 來說,安裝 TabNine 非常方便,用自帶的擴(kuò)展包管理工具即可。

VS Code

VS Code 用戶按下 Ctrl+P(Mac 用戶按下?+P),粘貼以下命令,然后按回車鍵完成安裝。

extinstallTabNine.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 插件管理器進(jìn)行安裝:

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

2、輸入:PluginInstall,按下回車完成安裝。

其他編輯器的安裝方法就不一一贅述了,有需要的用戶可以參照文末的鏈接進(jìn)行安裝。

項(xiàng)目超過400kb需要購買許可證:個人用戶49美元,商業(yè)用戶99美元。

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

由于 Deep TabNine 用到機(jī)器學(xué)習(xí)補(bǔ)全代碼,因此需要大量的算力(超過100億次浮點(diǎn)運(yùn)算),在筆記本上運(yùn)行模型,無法獲得低延遲的體驗(yàn)。

因此,軟件開發(fā)者推出了 TabNine Cloud 云服務(wù)器,用云端 GPU 加速。付費(fèi)用戶不需要再加錢即可使用。

所以聽起來很劃算吧?

軟件開發(fā)者自己就說,這個價格其實(shí)不貴,有了 TabNine,一分鐘就里能幫你節(jié)省一秒,咱們再算算程序員的時薪,每個小時能節(jié)約1.4美元,不到一年時間就能回本了。

如果你對效果不滿意,TabNine 開發(fā)者還提供 30 天退款保證。

怎么做到的?

TabNine 是在 GPT-2 的基礎(chǔ)上構(gòu)建的,這是一種 Transformer 架構(gòu),原產(chǎn)自 OpenAI,是個“逆天”語言模型。

GPT-2 的參數(shù)高達(dá) 15 億個,數(shù)據(jù)量比一代擴(kuò)大了 10 倍,使用了包含 800 萬個網(wǎng)頁的數(shù)據(jù)集,共有 40GB。

逆天之處就在于,GPT-2 寫起文章來毫無違和感,無需針對性訓(xùn)練就能橫掃各種特定領(lǐng)域的語言建模任務(wù),還具備閱讀理解、問答、生成文章摘要、翻譯等等能力。

就 GPT-2 而言,它的訓(xùn)練目標(biāo)很簡單:根據(jù)所有給定文本中前面的單詞,預(yù)測下一個單詞。雖然本來是解決 NLP 問題,看似與寫代碼沒什么關(guān)聯(lián),但建模代碼也算是用一種獨(dú)有的方式在理解英文。

比如,可以讓模型用 if/else 語句否定單詞:

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

項(xiàng)目主頁顯示,在大約經(jīng)過 GitHub 中 200 萬個文件訓(xùn)練后, TabNine 具備了自動補(bǔ)全代碼的能力。

在訓(xùn)練這個模型期間,模型學(xué)習(xí)了例如動態(tài)類型語言中的類型推斷等復(fù)雜行為,用這樣的訓(xùn)練方式預(yù)測 token。

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

作者表示,TabNine 可以很好利用傳統(tǒng)代碼補(bǔ)全工具難以獲取的瑣碎細(xì)節(jié)。

例如,假設(shè) app.get_user()的返回類型是一個帶有 setter 方法的對象,而 app.get_users()的返回類型是一個列表,兩個名稱之間只有細(xì)微的差別:

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

這個模型還能以自然語言編寫的文檔來推斷函數(shù)名稱、參數(shù)和返回類型:

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

Deep TabNine 加入了之前用戶強(qiáng)烈要求加入的功能:用預(yù)先存在的知識,解決在創(chuàng)建新項(xiàng)目時的代碼補(bǔ)全問題。

例如,它知道當(dāng)一個類擴(kuò)展 React.Component 時,它的構(gòu)造函數(shù)通常會調(diào)用一個名為 props 的參數(shù),并且通常在其內(nèi)部用 this.state 賦值:

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

Deep TabNine 甚至可以做不可能的事情,并記住 C++ 可變參數(shù)轉(zhuǎn)發(fā)語法:

加拿大大四學(xué)霸,天才程序員和他的逆天語言模型

“殺手級應(yīng)用”

TabNine 問世后,不斷收獲好評,甚至還有程序員激動得爆粗口:

臥槽,這種軟件多來點(diǎn)就好了。(Fuck yeah. This is the sort of software I want to see more often: TabNine )

有網(wǎng)友表示, 沒有它都不知道該怎么面對寫代碼這件事了。

還有人稱之為開發(fā)者應(yīng)用中的第一個“殺手級應(yīng)用程序”:

“令人印象深刻”、“感到神奇”“太酷了”……推特上的評價,頗有電視廣告上“用了都說好”的畫風(fēng)。

在各大科技論壇上,也有網(wǎng)友提出了建議和改進(jìn)的方向。

有用戶反映,也有美中不足的地方,比如這個工具會干擾自動括號完成。

作者表示,TabNine 還在不斷更新完善中,正在改進(jìn)這些bug。

大四學(xué)霸的第一桶金

想不到吧,這款好評如潮的代碼工具,出自一名大四學(xué)生之手。

Jacob Jackson,加拿大人,目前在滑鐵盧大學(xué)主修計(jì)算機(jī)科學(xué)與組合優(yōu)化專業(yè),輔修數(shù)學(xué)。大四在讀,今年8月份畢業(yè)。

Jackson此前在Reddit上發(fā)帖稱,這是自己在大學(xué)階段開發(fā)的第一款商業(yè)軟件產(chǎn)品

別人的大學(xué),別人的第一桶金~

但Jackson并非無名之輩,年少有為,曾在2014和2015連續(xù)兩年獲得IOI金牌。

因此,大學(xué)一入學(xué),便成為加拿大Michael and Ophelia Lazaridis Olympiad Scholarship獎學(xué)金的獲得者,免除了8個學(xué)期學(xué)費(fèi)書費(fèi)和生活費(fèi)。

除了自動補(bǔ)全代碼的TabNine,Jackson還開發(fā)了很多有意思的應(yīng)用,比如一個名為jellies的益智游戲,和使用蒙特卡羅樹搜索的國際象棋引擎Sashimi等。

本文素材來源

TabNine網(wǎng)站:https://tabnine.com/blog/deep

Jackson GitHub主頁:https://github.com/zxqfl

Jackson簡歷:http://jacobj.ca/resume.html

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3527

    瀏覽量

    93311
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4674

    瀏覽量

    67819
收藏 人收藏

    評論

    相關(guān)推薦

    程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎

    10月24日,程序員專屬的節(jié)日里,我們盛大開啟“程序員節(jié)視頻創(chuàng)意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創(chuàng)意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發(fā)表于 07-08 10:38 ?72次閱讀
    <b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎

    程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

    10月24日,程序員專屬的節(jié)日里,我們盛大開啟“程序員節(jié)視頻創(chuàng)意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創(chuàng)意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發(fā)表于 07-04 09:00 ?67次閱讀
    <b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

    模型時代,程序員當(dāng)下如何應(yīng)對 AI 的挑戰(zhàn)

    隨著 AI 技術(shù)的飛速發(fā)展,特別是大模型的出現(xiàn),傳統(tǒng)的程序員角色正在經(jīng)歷深刻的變革,我們不得不重新對自己進(jìn)行審視和思考。 通用領(lǐng)域大模型的“泛化能力” 在過去的二十年內(nèi),AI 領(lǐng)域的大部分研究
    的頭像 發(fā)表于 06-28 16:19 ?433次閱讀
    大<b class='flag-5'>模型</b>時代,<b class='flag-5'>程序員</b>當(dāng)下如何應(yīng)對 AI 的挑戰(zhàn)

    我去過的加拿大大學(xué)——AI深度學(xué)習(xí)算法誕生地

    在人工智能逐漸成為新一輪風(fēng)口的時候,匯集了世界頂級AI人才,率先突破了人工智能神經(jīng)網(wǎng)絡(luò)算法的加拿大成了世界矚目的焦點(diǎn)。
    的頭像 發(fā)表于 06-19 15:00 ?851次閱讀
    我去過的<b class='flag-5'>加拿大大</b>學(xué)——AI深度學(xué)習(xí)算法誕生地

    Stability AI發(fā)布Stable Code Instruct 3B大語言模型,可編譯多種編程語言

    據(jù)報道,Stability AI公司近期推出了適配程序員使用的Stable Code Instruct 3B大語言模型,此款模型的顯著特點(diǎn)是能夠?qū)崿F(xiàn)編程
    的頭像 發(fā)表于 03-27 10:04 ?339次閱讀

    適者生存,程序員最終會流向哪……

    程序員沒有永遠(yuǎn)的護(hù)城河??!就目前的互聯(lián)網(wǎng)大環(huán)境來看,it行業(yè)已經(jīng)是……
    的頭像 發(fā)表于 03-11 17:11 ?289次閱讀
    適者生存,<b class='flag-5'>程序員</b>最終會流向哪……

    2024程序員的未來方向如何走?還看今朝

    這幾年的IT行業(yè)想必大家已經(jīng)感受到了,Android、Java、前端等等程序員都經(jīng)歷了大廠……
    的頭像 發(fā)表于 02-02 09:45 ?697次閱讀
    2024<b class='flag-5'>程序員</b>的未來方向如何走?還看今朝

    1月18號“純鴻蒙”千帆啟航,程序員預(yù)備!

    。 如何正確看待鴻蒙? 我作為程序員來說,首先是看鴻蒙的發(fā)展、市場開發(fā)崗位、薪資以及前景。 這幾年對鴻蒙的發(fā)展情況來分析,從2019年開始鴻蒙的出來今天,華為鴻蒙取得了很大的成就。從“不兼容
    發(fā)表于 01-16 22:13

    誠邀報名 | GPT驅(qū)動的新程序員時代,開發(fā)者如何編程?

    模式,開發(fā)者們迎來了編程范式的全新變革。傳統(tǒng)的編程不再局限于編寫線性代碼和優(yōu)化邏輯,自然語言取而代之,成為了編程的新工具,這大大降低了開發(fā)的門檻。 如今,以ChatGPT、Copilot等為代表的AI工具,將全球的知識庫和代碼庫都呈現(xiàn)在用戶面前,只要有足夠的想象力,每個人
    的頭像 發(fā)表于 12-11 22:20 ?443次閱讀

    程序員表白程序

    電子發(fā)燒友網(wǎng)站提供《程序員表白程序.rar》資料免費(fèi)下載
    發(fā)表于 11-21 10:41 ?0次下載
    <b class='flag-5'>程序員</b>表白<b class='flag-5'>程序</b>

    嵌入式程序員應(yīng)知道的幾個基本問題

    電子發(fā)燒友網(wǎng)站提供《嵌入式程序員應(yīng)知道的幾個基本問題.pdf》資料免費(fèi)下載
    發(fā)表于 11-20 11:21 ?0次下載
    嵌入式<b class='flag-5'>程序員</b>應(yīng)知道的幾個基本問題

    一文速覽!拓維信息@1024程序員節(jié)精彩看點(diǎn)

    10月23日,第屆“長沙·中國1024程序員節(jié)”在湖南長沙盛大開幕。自2020年首次啟動以來,1024程序員節(jié)已行至第屆,以獨(dú)特的IT先鋒視角見證了新一代信息技術(shù)與經(jīng)濟(jì)社會發(fā)展深度
    的頭像 發(fā)表于 10-25 08:15 ?488次閱讀
    一文速覽!拓維信息@1024<b class='flag-5'>程序員</b>節(jié)精彩看點(diǎn)

    喜迎1024程序員節(jié)!祝各位開發(fā)者們“碼”到“程”功!

    祝各位開發(fā)者們,節(jié)日快樂! 程序員(Programmer)是從事程序開發(fā)、維護(hù)的專業(yè)人員。 對于奮斗在一線的程序員們來說, 10月24日 是一個特殊的日子,這一是屬于
    的頭像 發(fā)表于 10-24 20:00 ?613次閱讀
    喜迎1024<b class='flag-5'>程序員</b>節(jié)!祝各位開發(fā)者們“碼”到“程”功!

    今天程序員節(jié)長沙出招 全國首個!長沙為程序員打造“1024街”

    今天10月24日,今天程序員節(jié);先給程序員點(diǎn)贊,我們還看到有一些平臺舉辦了程序員節(jié);而在長沙,更有為程序員打造“1024街”。 昨天第屆“
    的頭像 發(fā)表于 10-24 14:29 ?541次閱讀

    程序員節(jié) | 今年程序員們都想要的禮物竟然是……

    原文標(biāo)題:程序員節(jié) | 今年程序員們都想要的禮物竟然是…… 文章出處:【微信公眾號:微軟科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
    的頭像 發(fā)表于 10-24 10:35 ?414次閱讀
    <b class='flag-5'>程序員</b>節(jié) | 今年<b class='flag-5'>程序員</b>們都想要的禮物竟然是……