自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

GitHub Copilot抄襲實(shí)錘!GitHub:我們的AI沒有「背誦」代碼

新聞 人工智能
微軟、OpenAI、GitHub聯(lián)合出品的自動(dòng)代碼生成AI——Copilot,似乎在第二天就跌落了神壇。盡管深陷「復(fù)制-粘貼門」,GitHub發(fā)表了一篇調(diào)查稱:我們的AI并不「背誦」別人的代碼。

 [[409261]]

GitHub Copilot憑借著自動(dòng)生成代碼這個(gè)強(qiáng)有力的噱頭,推出之后就成為了討論的焦點(diǎn)。

Copilot建立在OpenAI全新的Codex算法之上,其中Codex接受了從GitHub中提取的TB級(jí)公開代碼以及英語語言示例的訓(xùn)練。

因此,GitHub聲稱Copilot可以做到分析文檔中的字符串、注釋、函數(shù)名稱以及代碼本身,從而生成新的匹配代碼,包括之前調(diào)用的特定函數(shù)。

同時(shí),Copilot支持多種編程語言:Python、JavaScript、TypeScript、Ruby和Go。

發(fā)布之后就有人把Copilot拉去刷Leetcode的題庫,并對(duì)這位「AI程序員」的表現(xiàn)十分滿意。

GitHub Copilot抄襲實(shí)錘!GitHub:我們的AI沒有「背誦」代碼

經(jīng)過數(shù)個(gè)題目的驗(yàn)證,Copilot每次都能通過Leetcode的測(cè)試。鑒于幾乎是實(shí)時(shí)的生成速度,博主表示,AI可能比我們更會(huì)編寫代碼。

不過網(wǎng)友懷疑Copilot已經(jīng)在LeetCode數(shù)據(jù)庫上進(jìn)行過了訓(xùn)練,因?yàn)樯傻淖⑨尯蚅eetcode給的模板幾乎一模一樣。

針對(duì)這點(diǎn),GitHub表示,雖然可能有0.1%的直接引用,但是Copilot生成的代碼大部分都會(huì)是原創(chuàng)的。

「復(fù)制-粘貼」成實(shí)錘

在發(fā)布的第二天,就有網(wǎng)友質(zhì)疑GitHub Copilot是把免費(fèi)開源的代碼清洗之后,搖身一變成了賺錢的工具。

而這些代碼本應(yīng)該受到GPL(通用公共許可證)的保護(hù),從而防止它們被用在商業(yè)項(xiàng)目中。

GitHub Copilot抄襲實(shí)錘!GitHub:我們的AI沒有「背誦」代碼

不出所料,這個(gè)懷疑沒過兩天就變成了實(shí)錘,有網(wǎng)友發(fā)現(xiàn),Copilot直接「復(fù)制-粘貼」了最有名的「平方根倒數(shù)速算法」。

GitHub Copilot抄襲實(shí)錘!GitHub:我們的AI沒有「背誦」代碼

Copilot「生成」的這段代碼不僅用到了至今都沒有人能理解的magic number:0x5f3759df,同時(shí)還包含了對(duì)這段代碼的吐槽:what the f***?。

GitHub Copilot抄襲實(shí)錘!GitHub:我們的AI沒有「背誦」代碼

源代碼

這么看來,Copilot做的只是把訓(xùn)練集中別人寫好的代碼重新組裝了一下而已。

我們的AI不「背誦」代碼

不過GitHub方面似乎早就已經(jīng)做了應(yīng)對(duì)的準(zhǔn)備,一位名叫Albert Ziegler的團(tuán)隊(duì)成員表示,截止2021年5月7日,他把Copilot對(duì)于Python的453780條建議都進(jìn)行了收集,其中這些數(shù)據(jù)來自于300名員工在日常工作中的使用。

Albert針對(duì)這個(gè)數(shù)據(jù)集進(jìn)行了分析整理,并寫了一篇看似十分完備的博客進(jìn)行討論。

在文章的一開始,Albert便讓GitHub Copilot背誦了一篇眾所周知的文章,顯然,Copilot已經(jīng)牢牢記住了文章的內(nèi)容。

不過Albert認(rèn)為,記住訓(xùn)練集的內(nèi)容不是什么問題,畢竟他自己也背誦過詩歌,而這并不會(huì)使他在日常的交流中被這些背誦的內(nèi)容帶跑偏。

GitHub Copilot抄襲實(shí)錘!GitHub:我們的AI沒有「背誦」代碼

案例分類

類別1:Copilot有時(shí)會(huì)在某個(gè)被采納的建議之后,由于程序員新編寫的注釋,又提出了一個(gè)非常相似的建議。

Albert認(rèn)為第二次只不過是重復(fù)了之前「成功」的案例,因此把它們從問題分析中刪除了出去。

類別2:Copilot可能會(huì)提出長的、重復(fù)的序列。比如下面這個(gè)例子,其中重復(fù)的'<p>'最后在訓(xùn)練集中被發(fā)現(xiàn)了。

GitHub Copilot抄襲實(shí)錘!GitHub:我們的AI沒有「背誦」代碼

類別3:Copilot給出比如自然數(shù)、素?cái)?shù)、希臘字母表這種類似于標(biāo)準(zhǔn)清單的建議。有些建議可能是有幫助的,也可能是沒有幫助的。

不過Albert表示,這些并不符合他對(duì)「背誦」代碼的假設(shè)。

GitHub Copilot抄襲實(shí)錘!GitHub:我們的AI沒有「背誦」代碼

類別4:在做一些自由度很低的任務(wù)時(shí),Copilot會(huì)給出的一些常見、或者普遍的解決方案。

例如,下面的中間部分可以算做是使用BeautifulSoup包來解析維基百科列表的標(biāo)準(zhǔn)方法。

Albert表示,在訓(xùn)練數(shù)據(jù)中發(fā)現(xiàn)的最佳匹配片段就是使用這樣的代碼來解析不同文章的。同樣,這不符合他對(duì)「背誦」代碼的定義。

GitHub Copilot抄襲實(shí)錘!GitHub:我們的AI沒有「背誦」代碼

類別5:最后這些案例符合Albert對(duì)「背誦代碼」的設(shè)想,其中,這些代碼或注釋中至少有一些具體的重疊。

測(cè)試結(jié)果

GitHub Copilot抄襲實(shí)錘!GitHub:我們的AI沒有「背誦」代碼

對(duì)于GitHub Copilot的大部分建議,Albert表示并沒有發(fā)現(xiàn)與訓(xùn)練用的代碼有任何明顯的重疊。在去掉第一個(gè)類別后,可以得到了185條建議。

在這些案例中,有144個(gè)被分到了第2-4個(gè)類別中。這就在最后一個(gè)類別5里留下了41個(gè)案例,作者表示,這就是他心目中的代碼 「背誦」。

GitHub Copilot在缺乏具體語境時(shí)的引語

在人工標(biāo)注時(shí)挑出的41個(gè)主要案例中,沒有一個(gè)出現(xiàn)在少于10個(gè)不同的文件中。大多數(shù)(35個(gè)案例)出現(xiàn)超過一百次。

有一次,GitHub Copilot建議從一個(gè)空文件開始,它在訓(xùn)練期間甚至看到了超過700,000次的東西--那就是GNU通用公共許可證。

下面的圖表顯示了第5個(gè)類別的結(jié)果(每個(gè)結(jié)果底部有一個(gè)紅色標(biāo)記)與第2-4個(gè)類別中的匹配文件數(shù)量。

GitHub Copilot抄襲實(shí)錘!GitHub:我們的AI沒有「背誦」代碼

推斷出的分布圖顯示為一條紅線;它在100和1000個(gè)匹配之間達(dá)到峰值。

GitHub Copilot主要在一般情況下引證

隨著時(shí)間的推移,每個(gè)文件都變得獨(dú)一無二。但GitHub Copilot會(huì)將在你的文件非常通用時(shí)提供解決方案。

而此時(shí),在沒有任何具體內(nèi)容的情況下,它更有可能從其他地方引用。

GitHub Copilot抄襲實(shí)錘!GitHub:我們的AI沒有「背誦」代碼

當(dāng)然,軟件開發(fā)者大部分時(shí)間都在復(fù)雜的代碼中間,那里的上下文足夠獨(dú)特,GitHub Copilot會(huì)提供獨(dú)特的建議。

相比之下,一開始的建議就比較中規(guī)中矩,因?yàn)镚itHub Copilot無法知道程序會(huì)是什么。

不過,在獨(dú)立的腳本中,適度的上下文就足以讓人合理地猜測(cè)出用戶想要做什么。

而有時(shí),上下文仍然過于普遍,以至于Copilot認(rèn)為它熟知的某個(gè)解決方案看起來很有希望。

GitHub Copilot抄襲實(shí)錘!GitHub:我們的AI沒有「背誦」代碼

上面這個(gè)例子就是直接取自被上傳的機(jī)器人課的課件。

結(jié)論

Albert認(rèn)為,雖然GitHub Copilot可以逐字逐句地引用一組代碼,但它很少這樣做,而且當(dāng)它這樣做時(shí),多數(shù)也都是所有人都會(huì)引用的代碼,而且大部分是在文件的開頭。

Albert表示,理想狀態(tài)下,當(dāng)一個(gè)建議包含從訓(xùn)練集復(fù)制的片段時(shí),用戶界面應(yīng)該簡單地告訴你它是從哪里引用的。然后,你可以包括適當(dāng)?shù)氖鹈驔Q定不使用該代碼。而他的團(tuán)隊(duì)也將努力去做到這一點(diǎn)。

網(wǎng)友評(píng)論

雖然網(wǎng)友在看到GitHub團(tuán)隊(duì)有在關(guān)心「復(fù)制粘貼」的問題之后表示了欣慰,然而,這篇「調(diào)查」顯然很難讓人信服。

「這會(huì)導(dǎo)致每一個(gè)愛好者都面臨風(fēng)險(xiǎn),同時(shí),把『這東西可能會(huì)生成GPL的代碼?』這種擔(dān)憂推到任何一個(gè)在企業(yè)中工作的人的面前。」

「你不能僅僅依據(jù) 『嗯,它們略有不同』,從而推斷出『所以它們不是真正的相同的東西』, 如果它實(shí)質(zhì)上是相似的,就需要被引用。」

GitHub Copilot抄襲實(shí)錘!GitHub:我們的AI沒有「背誦」代碼

對(duì)于Copilot來說,可能還有很長一段路要走。

 

責(zé)任編輯:張燕妮 來源: 新智元
相關(guān)推薦

2021-07-12 10:28:49

GitHub代碼AI

2022-07-03 14:05:34

CopilotGitHub

2023-09-21 10:01:10

GitHubAI 代碼助手

2022-04-01 15:16:40

GitHub程序員人工智能

2023-10-31 18:03:42

GitHub人工智能開發(fā)

2021-07-06 09:28:35

GitHub開發(fā)者開源

2024-02-29 10:05:23

AIGitHub編碼助手

2023-03-29 09:44:37

OpenAI編程工具

2024-12-23 08:01:27

2021-11-01 12:11:02

GitHub AI IT資訊業(yè)界

2025-03-26 06:48:46

2023-10-17 16:31:07

人工智能GitHub

2021-10-28 16:43:27

GitHubCopilot編程工具

2025-02-08 11:30:00

開發(fā)編程AI

2021-09-07 09:40:39

漏洞網(wǎng)絡(luò)安全代碼

2023-10-04 08:07:06

CopilotGitHub

2013-01-22 11:15:40

GitHub

2018-09-12 15:11:35

微軟GitHub開發(fā)者

2023-01-16 14:33:31

GitHubAI

2024-10-31 13:40:24

GitHubCopilot人工智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)