Deep TabNine 幫助開發者自動完成代碼
TabNine 的開發商推出了新的深度學習模型 Deep TabNine,能顯著改善代碼建議質量。
TabNine 是一個代碼自動完成工具,能在開發者輸入代碼時預測其余的代碼,它支持 23 種編程語言和 5 種代碼編輯器。
Deep TabNine是根據程序員過去的習慣自動補全,並在后面給出幾種選項的概率。
如果有類似代碼出現在之前的項目里,TabNine還會在補全候選框中直接給出地址,方便用戶點擊進去查閱。
Deep TabNine 使用了 GitHub 上的兩百萬文件訓練,學習動態類型語言中的復雜行為如類型推動,預測標記。
它能根據自然語言寫的文檔推測函數名、參數和返回類型。
Deep TabNine 是基於 OpenAI 開發的 GPT-2。
實現
TabNine是在GPT-2的基礎上構建的,這是一種Transformer架構,原產自OpenAI,是個“逆天”語言模型。
GPT-2的參數高達15億個,數據量比一代擴大了10倍,使用了包含800萬個網頁的數據集,共有40GB。
逆天之處就在於,GPT-2寫起文章來毫無違和感,無需針對性訓練就能橫掃各種特定領域的語言建模任務,還具備閱讀理解、問答、生成文章摘要、翻譯等等能力。
就GPT-2而言,它的訓練目標很簡單:根據所有給定文本中前面的單詞,預測下一個單詞。雖然本來是解決NLP問題,看似與寫代碼沒什么關聯,但建模代碼也算是用一種獨有的方式在理解英文。
作者
一位來自加拿大的大四學霸,開發了一款”Deep TabNine“代碼補全工具,實現了這一大膽的想法。
Jackson此前在Reddit上發帖稱,這是自己在大學階段開發的第一款商業軟件產品。
別人的大學,別人的第一桶金~
但Jackson並非無名之輩,年少有為,曾在2014和2015連續兩年獲得IOI金牌。
因此,大學一入學,便成為加拿大Michael and Ophelia Lazaridis Olympiad Scholarship獎學金的獲得者,免除了8個學期學費書費和生活費。
除了自動補全代碼的TabNine,Jackson還開發了很多有意思的應用,比如一個名為jellies的益智游戲,和使用蒙特卡羅樹搜索的國際象棋引擎Sashimi等。