TabNine 的開發商推出了新的深度學習模型 Deep TabNine,能顯著改善代碼建議質量。程序員
TabNine 是一個代碼自動完成工具,能在開發者輸入代碼時預測其他的代碼,它支持 23 種編程語言和 5 種代碼編輯器。架構
Deep TabNine是根據程序員過去的習慣自動補全,並在後面給出幾種選項的機率。編程語言
若是有相似代碼出如今以前的項目裏,TabNine還會在補全候選框中直接給出地址,方便用戶點擊進去查閱。編輯器
Deep TabNine 使用了 GitHub 上的兩百萬文件訓練,學習動態類型語言中的複雜行爲如類型推進,預測標記。函數
它能根據天然語言寫的文檔推測函數名、參數和返回類型。工具
Deep TabNine 是基於 OpenAI 開發的 GPT-2。post
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等。