GMAIL為編碼人員設計的AI編碼軟件

2020-02-01 12:51:54    來(lái)源:    作者:

在過(guò)去的一年里,人工智能已經(jīng)大大提高了它產(chǎn)生文字的能力。通過(guò)掃描大量的文本數據集,機器學(xué)習軟件可以生成從短篇小說(shuō)到歌詞的所有內容的令人信服的樣本?,F在,這些相同的技術(shù)正被應用到一個(gè)叫做DeepTabNine的新程序的編碼世界中。 DeepTabNine被稱(chēng)為編碼自動(dòng)完成器。程序員可以在自己選擇的編輯器中安裝它作為附加組件,當他們開(kāi)始編寫(xiě)時(shí),它將建議如何繼續每行,一次提供小的塊。把它看作是Gmail的智能撰寫(xiě)功能,但不包括代碼。 滑鐵盧大學(xué)計算機科學(xué)系本科生雅各布·杰克遜(JacobJackson)發(fā)明了DeepTabNine,他說(shuō)這種軟件并不新鮮,但是機器學(xué)習已經(jīng)極大地改善了它所能提供的功能。

GMAIL為編碼人員設計的AI編碼軟件

“這為我解決了一個(gè)問(wèn)題,”。

去年2月,杰克遜在11月發(fā)布這款軟件之前,就開(kāi)始開(kāi)發(fā)這款軟件的原始版本tabnine。但本月早些時(shí)候,他發(fā)布了一個(gè)更新版本,該版本使用了一種叫做gpt-2的深度學(xué)習文本生成算法,該算法由研究實(shí)驗室openai設計,以提高其能力。這一更新給編碼人員留下了深刻的印象,他們在Twitter上稱(chēng)之為“驚人的”、“瘋狂的”和“絕對令人興奮的”。

一位用戶(hù)Franck Nijhof是一位IT經(jīng)理,他在業(yè)余時(shí)間從事開(kāi)源家庭自動(dòng)化軟件的工作,他說(shuō)他不僅僅對Deep TabNine感到驚訝——他以一種愉快的方式感到害怕。Nijhof在郵件的邊緣說(shuō):“我第一個(gè)小時(shí)使用DeepTabNine是沒(méi)有幫助的,因為我一直被一種驚奇的感覺(jué)所阻止,試圖把我的頭繞起來(lái)。”他不停地問(wèn)自己,“它怎么知道的?但是怎么做呢?“ 像這樣的自動(dòng)完成工具并不新鮮,但尼霍夫說(shuō),DeepTabnine的建議更準確。他說(shuō):“過(guò)去我試過(guò)一些聰明的‘萬(wàn)能’的,但它們很煩人,沒(méi)有幫助。”“毫無(wú)疑問(wèn),Tabnine改變了游戲規則。”

杰克遜說(shuō),該軟件提供了更好的建議,因為它在預測的基礎上工作。大多數自動(dòng)完成程序都必須解析用戶(hù)已經(jīng)編寫(xiě)的內容以提出建議,像處理數學(xué)公式中的步驟一樣處理代碼。相比之下,DeepTabNine依賴(lài)于機器學(xué)習在數據中發(fā)現統計模式以進(jìn)行預測的能力。

GMAIL為編碼人員設計的AI編碼軟件

與文本生成算法在書(shū)籍、文章和電影腳本的巨大數據集上進(jìn)行培訓的方式相同,DeepTabNine在Github編碼庫中接受了200萬(wàn)個(gè)文件的培訓。它在這些數據中找到模式,并使用它們來(lái)建議在任何給定的代碼行中接下來(lái)可能出現的內容,無(wú)論是變量名還是函數。

杰克遜說(shuō),使用深度學(xué)習創(chuàng )建自動(dòng)完成軟件有幾個(gè)優(yōu)點(diǎn)。首先,它使添加對新語(yǔ)言的支持變得容易。他說(shuō):“你只需要把更多的訓練數據放到DeepTabnine的Hopper中,它就能挖掘出模式。”這意味著(zhù)DeepTabNine支持大約22種不同的編碼語(yǔ)言,而大多數備選方案只支持其中一種。

(支持的全部語(yǔ)言列表如下: Python, JavaScript, Java, C++, C, PHP, Go, C#, Ruby, Objective-C, Rust, Swift, TypeScript, Haskell, OCaml, Scala, Kotlin, Perl, SQL, HTML, CSS, Bash)

最重要的是,由于深入學(xué)習的分析能力,Deep TabNine提出的建議具有較高的整體質(zhì)量。而且,由于軟件不會(huì )通過(guò)查看用戶(hù)自己的代碼來(lái)提出建議,它可以從一開(kāi)始就幫助項目,而不是等待用戶(hù)編寫(xiě)的代碼提供一些提示。

GMAIL為編碼人員設計的AI編碼軟件

Deep Tabnine也有問(wèn)題

當然,軟件并不完美。它的建議有錯誤,并不是對所有類(lèi)型的編碼都有用。不同編程領(lǐng)域的用戶(hù),如Hacker News和R/Programming Subredit,都在討論它的優(yōu)點(diǎn),并提供了一些混合的評論(盡管他們大多偏向正面)。正如您對為編碼人員構建的編碼工具所期望的那樣,人們對于它如何與現有的編輯器和工作流精確地工作有很多要說(shuō)的。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。