GMAIL為編碼人員設(shè)計(jì)的AI編碼軟件

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

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

GMAIL為編碼人員設(shè)計(jì)的AI編碼軟件

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

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

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

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

GMAIL為編碼人員設(shè)計(jì)的AI編碼軟件

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

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

(支持的全部語(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é)習(xí)的分析能力,Deep TabNine提出的建議具有較高的整體質(zhì)量。而且,由于軟件不會(huì)通過(guò)查看用戶自己的代碼來(lái)提出建議,它可以從一開始就幫助項(xiàng)目,而不是等待用戶編寫的代碼提供一些提示。

GMAIL為編碼人員設(shè)計(jì)的AI編碼軟件

Deep Tabnine也有問(wèn)題

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

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