上周,微軟、GitHub、OpenAI 三方聯(lián)手推出的 AI 代碼生成神器 GitHub Copilot 一經(jīng)官宣便引起巨大關(guān)注:試問哪個(gè)開發(fā)者不想要這么一位“虛擬程序員”來解放自己的雙手?
因此即使目前 GitHub Copilot 處于并不完美的技術(shù)預(yù)覽版階段,許多開發(fā)者們還是迫不及待地體驗(yàn)嘗試。
可這一試,試出問題來了:GitHub Copilot 生成的代碼為何這么眼熟,就連注釋都“原汁原味”,這是抄襲嗎?
真 · 雷神之“錘”
其實(shí)有關(guān) GitHub Copilot 直接復(fù)制代碼的問題,微軟早在官宣時(shí)就曾回應(yīng):“只有 0.1% 的情況下,GitHub Copilot 提供的代碼建議中可能包含一些來自訓(xùn)練集的字符或片段?!?/p>
但微軟口中的這個(gè)“0.1% 的情況”,已經(jīng)出現(xiàn)了。
一位開發(fā)者 @mitsuhiko 在推特上公布了他的發(fā)現(xiàn):讓 GitHub Copilot 生成快速平方根倒數(shù)算法(Fast Inverse Square Root),結(jié)果出來的代碼竟與《雷神之錘 3》中那段“傳奇代碼”一模一樣?。ㄗⅲ嚎焖倨椒礁箶?shù)算法也被稱為平方根倒數(shù)速算法,此算法由于出現(xiàn)在《雷神之錘3》源代碼中被人們所熟知。)
這段代碼無疑是“抄襲”:不僅包含了快速平方根倒數(shù)算法中至今都無人理解的神奇數(shù)字“0x5f3759df”,就連當(dāng)年《雷神之錘 3》開發(fā)者對(duì)這串?dāng)?shù)字的吐槽都保留得“原汁原味”。
如此一來,GitHub Copilot “抄襲代碼”不僅實(shí)錘,還是真 · 雷神之“錘”,無法開脫,由此引發(fā)的代碼版權(quán)問題也愈演愈烈。
GitHub Copilot 算是 GPL 協(xié)議中規(guī)定的衍生作品嗎?
在 GitHub Copilot 直接復(fù)制快速平方根倒數(shù)算法這個(gè)過程中有個(gè)矛盾點(diǎn),即這段代碼是遵循 GNU GPL 2.0 協(xié)議進(jìn)行開源的,而 GitHub Copilot 卻要在未來擴(kuò)展為付費(fèi)服務(wù)提供。
?。ㄗⅲ篏NU GPL 2.0 協(xié)議要求任何包含該開源許可證的衍生作品,即使僅有幾行代碼,也必須免費(fèi)提供全部源代碼以及修改和分發(fā)它們的權(quán)利。)
在此基礎(chǔ)上,就產(chǎn)生了一個(gè)巨大爭(zhēng)議:這個(gè)現(xiàn)象表示 GitHub Copilot 在訓(xùn)練過程中必定使用過 GPL 協(xié)議下的代碼,那么機(jī)器學(xué)習(xí)系統(tǒng)產(chǎn)生的作品,甚至機(jī)器學(xué)習(xí)系統(tǒng)本身,都算是 GPL 協(xié)議中規(guī)定的衍生作品嗎?
如果答案是“否”,那是不是說明開發(fā)者可以利用 GitHub Copilot 來“清除”代碼的 GPL 協(xié)議,從此再也無需遵循該協(xié)議?
如果答案是“是”,那么不僅 GitHub Copilot 應(yīng)該免費(fèi)開源,整個(gè) GitHub 都要成為一個(gè)開源項(xiàng)目:據(jù) GitHub 博客中“在 GitHub Copilot 的早期開發(fā)過程中,作為內(nèi)部試用的一部分,近 300 名員工在日常工作中使用了它”的說法,這些員工很有可能已經(jīng)將 GitHub Copilot 生成的代碼整合到 GitHub 的方方面面,那么 GitHub 就也應(yīng)該是個(gè)開源項(xiàng)目。
為此,長期關(guān)注版權(quán)保護(hù)問題以及開源和自由軟件的有力推動(dòng)者 Julia Reda 寫了一篇文章并堅(jiān)定認(rèn)為:GitHub Copilot 并未侵犯開發(fā)者的版權(quán)。
她指出,簡(jiǎn)單地閱讀和處理信息并不需要版權(quán)許可。舉個(gè)例子,如果你去書店,從書架上拿一本書開始閱讀,在這個(gè)過程中你是沒有侵犯任何版權(quán)的,而人工智能這類數(shù)字技術(shù)的訓(xùn)練過程就是如此,它們需要大量內(nèi)容數(shù)據(jù)。
Julia Reda 在文中表示:“版權(quán)和數(shù)字技術(shù)之間的確因此會(huì)有許多沖突,所幸政策制定者和法院早就意識(shí)到:如果每個(gè)技術(shù)副本都需要許可,那么數(shù)字技術(shù)將完全無法發(fā)展使用?!?/p>
早在 2001 年,歐盟就允許這種作為技術(shù)過程一部分的臨時(shí)性復(fù)制行為不受版權(quán)限制,盡管當(dāng)時(shí)反對(duì)的聲音頗多。
后來到 2019 年,歐盟研究協(xié)會(huì)更是要求歐洲版權(quán)法明確許可所謂的文本和數(shù)據(jù)挖掘,即永久存儲(chǔ)受版權(quán)保護(hù)的作品以實(shí)現(xiàn)自動(dòng)化分析。也就是說,根據(jù)歐洲版權(quán)法,無論使用何種許可協(xié)議,抓取 GPL 許可的代碼或任何其他受版權(quán)保護(hù)的作品都是合法的。
此外,Julia Reda 還認(rèn)為機(jī)器自動(dòng)生成的代碼不能視為衍生作品:
首先,有人認(rèn)為即使復(fù)制受版權(quán)保護(hù)作品的最小摘錄也構(gòu)成侵犯版權(quán),這很不合理。按這種說法,就算不提 GitHub Copilot 從訓(xùn)練數(shù)據(jù)中復(fù)制的短代碼片段本來就不太可能達(dá)到原創(chuàng)標(biāo)準(zhǔn),如果兩個(gè)或多個(gè)開發(fā)人員在各自的程序中使用相同的基本代碼,豈不是會(huì)產(chǎn)生無窮無盡的爭(zhēng)議?
其次,版權(quán)法只適用于智力創(chuàng)作——沒有創(chuàng)作者,就沒有作品。也就是說像 GitHub Copilot 這樣的機(jī)器生成代碼根本不符合版權(quán)保護(hù)的條件,因此也并不是衍生作品。
爭(zhēng)議頗多,甚至有開發(fā)者決定退出 GitHub
即便 Julia Reda 如此主張,但廣大開發(fā)者對(duì)此并不買賬。GitHub Copilot 的版權(quán)爭(zhēng)議引發(fā)了很多人對(duì) Github 的不滿,甚至有開發(fā)者因此決定退出 GitHub:
“我認(rèn)為這是對(duì)版權(quán)持有人權(quán)利的嚴(yán)重侵犯,因此我不能繼續(xù)依賴 GitHub 的服務(wù)?!?/p>
也有開發(fā)者批評(píng) GitHub Copilot 將免費(fèi)代碼用作商業(yè) AI 應(yīng)用的資源:
“GitHub Copilot 自己也承認(rèn),他們接受過大量 GPL 代碼的訓(xùn)練,所以我不知道為什么這不是一種將開源代碼轉(zhuǎn)化為商業(yè)作品的形式?!?/p>