AI 會替代程序員蹋绽?超好用的自動補全代碼工具 Deep TabNine!

在過去的一年中筋蓖,AI

生成書面文字的能力大大提高卸耘。通過掃描龐大的文本數(shù)據(jù)集,機器學(xué)習(xí)軟件可以生成從短篇小說到歌詞的各種令人信服的樣本∨っ悖現(xiàn)在鹊奖,一個名為 Deep

TabNine

的新程序,可以將相同的技術(shù)應(yīng)用于編碼世界涂炎。這個程序一經(jīng)F推出便好評如潮忠聚,大有搶了程序員飯碗的架勢。這個程序是否真有這么好用唱捣?我們來一探究竟两蟀。

什么是Deep TabNine?

據(jù)外媒

The Verge 報道震缭,Deep TabNine 是由滑鐵盧大學(xué)的計算機科學(xué)本科生 Jacob Jackson

創(chuàng)建的編碼自動完成器赂毯,程序員可以將它作為附件安裝在他們選擇的編輯器中,程序員寫代碼時,這個程序會給出下一行代碼建議党涕,每次提供一小段代碼烦感。你可以將它理解為

Gmail 的智能撰寫功能用到了代碼上。

據(jù)悉膛堤,Jacob 于 2018 年

2 月開始研究該軟件的原始版本手趣,在 11 月發(fā)布之前它叫做 TabNine。本月早些時候肥荔,他發(fā)布了一個更新版本绿渣,該版本使用由研究實驗室

OpenAI 設(shè)計的深度學(xué)習(xí)文本生成算法模型 GPT-2 來改善能力。該模型使用 Transformer

架構(gòu)燕耿,旨在解決自然語言處理中的問題中符,Deep TabNine 用這個架構(gòu)來理解代碼中的英語。例如誉帅,模型可以使用 if / else

語句來進行否定淀散。在訓(xùn)練時,模型的目標(biāo)是根據(jù)前面給定的 token 來預(yù)測下一個 token堵第。

Deep

TabNine 使用 GitHub 的近 200

萬個文件進行了訓(xùn)練吧凉,它具有預(yù)先存在的知識,而不是僅僅從用戶當(dāng)前的項目中學(xué)習(xí)踏志。此外阀捅,這個模型還引用以自然語言編寫的文檔來推斷函數(shù)名稱、參數(shù)和返回類型针余。它還能利用傳統(tǒng)工具難以發(fā)現(xiàn)的小線索葫男。例如速和,它可以理解

app.get_user() 的返回類型被假定為具有設(shè)置器方法的對象雹有,且 app.get_users()的返回類型被假定為列表为黎。

機器學(xué)習(xí)極大提高智能編碼能力

Jacob 表示,這種軟件雖然并不新鮮事物伪朽,但機器學(xué)習(xí)已經(jīng)大大地改善了它的功能轴咱。“這對我來說是解決了一個問題烈涮∑臃危”

Deep TabNine 的更新版本讓程序員們留下了深刻印象,他們在 Twitter 上稱這個軟件“驚人”坚洽、“讓人瘋狂”和“絕對令人興奮”戈稿。? ? ?

用戶


Franck Nijhof 是一位在閑暇時間從事開源家庭自動化軟件工作的 IT 經(jīng)理,他對 Deep TabNine 不僅感到驚訝

讶舰,還覺得既興奮又害怕鞍盗⌒枇耍“我使用 Deep TabNine

的第一個小時內(nèi)沒有作用,因為我不停地被它驚訝到般甲,腦子里一直不停地問它到底是怎么知道的肋乍?怎么做到的?” Nijhof 通過電子郵件告訴 The

Verge敷存。

這樣的自動完成工具之前就有過住拭,但 Nijhof 表示 Deep TabNine 的建議更準(zhǔn)確±悖“我過去曾嘗試過一些'通用'的智能編寫程序,但它們很煩人而且沒有幫助杠娱,”他說道挽牢,“TabNine 無疑是一個改變游戲規(guī)則的存在√螅”

特斯拉人工智能總監(jiān) Andrej Karpathy 也對這個程序贊不絕口:? ? ?

深度學(xué)習(xí)自動編碼 https://t.co/WenacHVj7z 非城莅危酷!很久以前我在做 char-rnn(字符級循環(huán)神經(jīng)網(wǎng)絡(luò))時嘗試過相關(guān)的想法室叉,但當(dāng)時它并不是很有用睹栖。隨著新工具(GPT-2)的出現(xiàn)和更多的關(guān)注,它將會發(fā)揮更大的作用茧痕。-? Andrej Karpathy(@karpathy)野来,2019年7月18日

機器學(xué)習(xí)預(yù)測讓代碼建議更優(yōu),支持22種語言

Jackson

表示踪旷,該軟件之所以可以提供更好的建議曼氛,是因為它可以進行預(yù)測。大多數(shù)自動填充程序必須解析用戶已編寫的內(nèi)容來提出建議令野,就像人使用數(shù)學(xué)公式中的步驟一樣理順代碼舀患。相比之下,Deep

TabNine 依賴于機器學(xué)習(xí)的能力來查找數(shù)據(jù)中的統(tǒng)計模式以進行預(yù)測气破。

與文本生成算法在大量書籍聊浅、文章和電影腳本數(shù)據(jù)集上進行訓(xùn)練的方式相同,Deep TabNine 對來自編碼庫 GitHub 的 200 萬個文件進行了訓(xùn)練现使。它在這些數(shù)據(jù)中找到模式低匙,并用其在任意給定代碼行中可能出現(xiàn)的內(nèi)容給出建議,無論是變量名還是函數(shù)朴下。

Jackson

說努咐,使用深度學(xué)習(xí)創(chuàng)建自動編碼軟件有幾個優(yōu)點。首先殴胧,它可以輕松添加對新語言的支持渗稍。只需要將更多的訓(xùn)練數(shù)據(jù)放入 Deep TabNine

中佩迟,它就會挖出模式。這意味著竿屹,Deep TabNine 支持大約 22 種不同的編碼語言报强,而大多數(shù)同類型產(chǎn)品只支持一種。

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豹芯。

最重要的是悄雅,由于深度學(xué)習(xí)的分析能力,Deep TabNine 提出的建議整體上具有很高的質(zhì)量铁蹈。而且宽闲,因為軟件不會查看用戶自己寫的代碼來提出建議,所以它可以從編碼的那一刻開始就起作用握牧,而不用等著從用戶編寫的代碼中尋找蛛絲馬跡容诬。

TABNINE并不完美:不擅長創(chuàng)造性代碼

當(dāng)然,這個軟件也并非完美沿腰。它在提出建議時會出錯览徒,另外,它也不是對所有類型的編碼都有用颂龙。Hacker News 和 r / program subreddit 的用戶已經(jīng)找到了它的各種優(yōu)點和編程漏洞(但大多數(shù)傾向于正面評論)习蓬。

用戶1:免費版本 200 KB 的限制對于實際代碼庫來說太低了纽什,有考慮過提高限制嗎?

Jacob Jackson 回復(fù):可以試下付費版 30 天返款躲叼。所有版本的 TabNine 仍然適用于大于索引限制的項目芦缰。索引中將添加和刪除文件,以確保索引文件與用戶正在編輯的文件盡可能相關(guān)枫慷。

用戶2:可以用让蕾,但不是很好用。對于你最喜歡的編輯器不支持或沒有插件的語言來說或听,這是一個非程叫ⅲ酷的技術(shù),但是如果編輯器已經(jīng)對語言有很好的支持(比如 VSCode for Typescript)誉裆,它可能不會比連接自動完成的編輯器更好用再姑。

用戶3:添加 IntelliJ Idea 支持,我會買它:)

用戶 4:支持 Emacs 后找御,我會買!

對于這個為程序員構(gòu)建的編碼工具的編輯器和工作流程精確度绍填,大家也有很多看法霎桅。

Jackson

也坦承了 Deep TabNine

的一些缺點,如它更適合某些類型的編碼讨永。它在自動完成相對死記硬背的代碼時效果最好滔驶,這種編程已經(jīng)被做過數(shù)千次,只有很小的變化卿闹。但是揭糕,它并不擅長用戶用于解決新問題的探索性代碼《亡考慮到軟件的智能來自數(shù)據(jù)中的模式著角,這并不奇怪。


那么旋恼,它對于普通程序員真的有用嗎吏口?這取決于很多因素,比如他們使用的編程語言冰更,他們想要實現(xiàn)的目標(biāo)等产徊。但 Jackson 表示,與其說是一個人類編碼助手蜀细,它更像是一種更快的輸入法(一種常見的被稱為結(jié)對編程的做法)舟铜。

“想象一下,現(xiàn)在所有的程序員都在使用相當(dāng)于手機的鍵盤打字奠衔,而使用

Deep TabNine

有點像轉(zhuǎn)而去使用常規(guī)鍵盤谆刨,”他說道塘娶。這款軟件可以提高用戶輸入信息的速度,并且可以提高工作效率痴荐,“因為你可以花更多時間考慮內(nèi)容而不是細(xì)節(jié)血柳。”但它不會按照你的方式編寫代碼生兆,而你也確實需要要密切關(guān)注它的動向难捌。

如何使用 Deep TabNine?

雖然集成深度學(xué)習(xí)模型具有多種優(yōu)勢鸦难,但使用它需要大量的算力根吁。Jackson

明確提到,在筆記本電腦上運行無法實現(xiàn) TabNine 用戶習(xí)慣的低延遲合蔽。對此击敌,他們提供了一種解決方案——TabNine

Cloud(Beta)服務(wù),該服務(wù)將使用戶能夠使用 TabNine 的服務(wù)器進行 GPU 加速自動完成拴事。訪問 TabNine

Cloud沃斤,可以在此處免費注冊:https://tabnine.com/beta_signup

但是,有許多人更愿意將代碼保存在他們的機器上刃宵。為了確保代碼的隱私性和安全性衡瓶,TabNine 團隊正在研究以下用例:

他們承諾在未來推出尺寸減小的模型,個人開發(fā)者可以在筆記本電腦上運行牲证,提供合理的延遲哮针。企業(yè)可以選擇模型許可,在自己的硬件上運行坦袍。他們還提供訓(xùn)練自定義模型十厢,以了解企業(yè)代碼庫特有的獨特模式和樣式。

商業(yè)化前途未定

目前捂齐,Jackson 正在考慮下一步該用這款軟件做些什么蛮放,以及是否值得商業(yè)化。他說奠宜,他本人目前在一家大型科技公司有一份全職工作筛武,他還不想放棄,但來自各領(lǐng)域的人都對這款軟件表示“非常感興趣”挎塌∨橇“我還沒有真正決定我想用它做什么×穸迹”

目前待锈,TabNine 的個人許可用費用為 49 美元,商業(yè)用途費用為 99 美元嘴高,個人必須注冊 Deep TabNine 測試版才能訪問新的深度學(xué)習(xí)功能竿音。購買許可之后和屎, TabNine 能夠索引更多文件,給出更多相關(guān)建議春瞬。

網(wǎng)站上寫道:“TabNine 每分鐘至少可以為你節(jié)省 1 秒鐘柴信。如果你認(rèn)為你的時間價值超過 1.40 美元/小時,它將幫你在不到一年的時間內(nèi)收回成本宽气∷娉#“

他說,如果他能夠使用開源軟件創(chuàng)建這樣的程序萄涯,那么 AI 輔助編碼的未來就是一片光明绪氛。

“這是在這個領(lǐng)域工作的每個人的目標(biāo),告訴計算機你想要寫什么樣的代碼涝影,它就能幫你寫枣察,”他說道∪悸撸“我們目前距離實現(xiàn)這個目前還很遠序目,但我認(rèn)為這種工具可以幫助你更方便地表達自己的想法〔螅”

在這里我相信有很多想要學(xué)習(xí)Python的小伙伴宛琅,我自己是一名從事了多年開發(fā)的Python老程序員,辭職目前在做自己的私人定制課程逗旁,今年年初我花了一個月整理了一份最適合2019年學(xué)習(xí)的學(xué)習(xí)干貨,從最基礎(chǔ)到舆瘪,各種框架都有整理片效,送給每一位Python小伙伴,想要獲取的可以關(guān)注我并在后臺私信我:學(xué)習(xí)英古,即可免費獲取淀衣。人生苦短,我用Python!


文章來源于:CSDN召调,如有額鵝3112313

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末膨桥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子唠叛,更是在濱河造成了極大的恐慌只嚣,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艺沼,死亡現(xiàn)場離奇詭異册舞,居然都是意外死亡,警方通過查閱死者的電腦和手機障般,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門调鲸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盛杰,“玉大人,你說我怎么就攤上這事藐石〖垂” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵于微,是天一觀的道長逗嫡。 經(jīng)常有香客問我,道長角雷,這世上最難降的妖魔是什么祸穷? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮勺三,結(jié)果婚禮上雷滚,老公的妹妹穿的比我還像新娘。我一直安慰自己吗坚,他們只是感情好祈远,可當(dāng)我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著商源,像睡著了一般车份。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上牡彻,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天扫沼,我揣著相機與錄音,去河邊找鬼庄吼。 笑死缎除,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的总寻。 我是一名探鬼主播器罐,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼渐行!你這毒婦竟也來了轰坊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤祟印,失蹤者是張志新(化名)和其女友劉穎肴沫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蕴忆,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡樊零,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驻襟。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡夺艰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出沉衣,到底是詐尸還是另有隱情郁副,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布豌习,位于F島的核電站存谎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏肥隆。R本人自食惡果不足惜既荚,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望栋艳。 院中可真熱鬧恰聘,春花似錦、人聲如沸吸占。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矾屯。三九已至兼蕊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間件蚕,已是汗流浹背孙技。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留排作,地道東北人牵啦。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像纽绍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子势似,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,089評論 1 32
  • 孩子太瘦拌夏,她說孩子可能是缺什么營養(yǎng),心里很著急履因,所以半夜就回去了障簿,我其實心里也知道,她帶一天孩子栅迄,很累站故,肯定困得等...
    俗人話俗語閱讀 181評論 0 0
  • 子彈短信火遍了整個互聯(lián)網(wǎng)西篓,今天下載試用了一下愈腾,作為互聯(lián)網(wǎng)人,這些爆款的產(chǎn)品是必須要了解的岂津。 錘子羅永浩不遺余力的進...
    1b1e8f952aef閱讀 220評論 0 0
  • 12.5……140天 【體驗入】 一個人的能力很重要虱黄,可有一樣?xùn)|西比能力更重要,那就是人品吮成。人品橱乱,是人真正的最高學(xué)...
    呂志萍閱讀 328評論 0 4
  • 我想畫畫泳叠,因為我童心未泯 小時候,幼兒園同學(xué)送我了一只藍色的蠟筆茶宵。 回家我就拿著那只蠟筆在墻上亂...
    靜水姑娘閱讀 908評論 50 43