GitHub惹毛開源社區(qū)!不免費(fèi)的Copilot只會(huì)抄?不能忍
Github Copilot自發(fā)布以來就一直引起人們的爭(zhēng)議。
而近日,自由軟件基金會(huì) (FSF) 終于忍無可忍了!
FSF認(rèn)為,Copilot這個(gè)技術(shù)引起了法律和哲學(xué)問題。
FSF在一篇文章中寫道,GitHub Copilot「從我們的角度來看是不可接受、不公正的」。

因?yàn)镃opilot需要運(yùn)行付費(fèi)的軟件,如Microsoft的Visual Studio IDE或者Visual Studio Code編輯器。
這樣,Copilot就變成了一個(gè)SaaSS(Service as a Software Substitute)。
Copilot只要「復(fù)制」「粘貼」,就能夠竊取開發(fā)人員以往的工作成果。
Copilot還引起許多其它需要深入研究的問題。
比如,開發(fā)人員不知道在軟件上訓(xùn)練神經(jīng)網(wǎng)絡(luò)是否合理。
另外,一些對(duì)Copilot感興趣的人想搞清楚,使用GitHub存儲(chǔ)庫(kù)中復(fù)制出來的代碼會(huì)不會(huì)侵權(quán)。
就算所有東西都是合法合規(guī),但有些活動(dòng)人士還是想知道,這樣一家專有的軟件公司,基于開發(fā)人員過往的工作成果來提供服務(wù)究竟公不公平。
為了回答這些問題,捍衛(wèi)用戶的使用自由,F(xiàn)SF宣布資助一項(xiàng)白皮書,一并解決Copilot、安全、機(jī)器學(xué)習(xí)和免費(fèi)軟件的問題。
500美元換一份白皮書
FSF在官網(wǎng)上列出來白皮書應(yīng)該要解答的內(nèi)容:
- Copilot的公共存儲(chǔ)庫(kù)培訓(xùn)是否侵犯版權(quán)?使用是否合理使用?
- Copilot的輸出對(duì)違反GPL許可作品的可訴索賠的可能性有多大?
- 開發(fā)人員如何確保他們擁有版權(quán)的任何代碼都受到保護(hù),不受Copilot違規(guī)行為的影響?
- 有沒有辦法讓使用Copilot的開發(fā)人員遵守GPL等免費(fèi)軟件許可證?
- 如果Copilot從AGPL覆蓋的代碼中學(xué)習(xí),Copilot有沒有侵犯AGPL?
- 如果Copilot生成的代碼確實(shí)會(huì)導(dǎo)致違反自由軟件許可作品,版權(quán)所有者如何發(fā)現(xiàn)這種違規(guī)行為?
- 受過訓(xùn)練的AI或機(jī)器學(xué)習(xí)模型是來源于機(jī)器學(xué)習(xí)產(chǎn)生的訓(xùn)練數(shù)據(jù)編譯版本嗎?還是用戶可以通過進(jìn)一步訓(xùn)練來修改的源代碼?
- Copilot訓(xùn)練的AI/ML模型是否受版權(quán)保護(hù)?如果是,誰擁有這個(gè)版權(quán)?
- 像FSF這樣的道德倡導(dǎo)組織是否應(yīng)該主張修改與這些問題相關(guān)的版權(quán)法?
如果投稿的白皮書能夠解決上述的問題,就能獲得500美元獎(jiǎng)勵(lì)。

https://www.fsf.org/blogs/licensing/fsf-funded-call-for-white-papers-on-philosophical-and-legal-questions-around-copilot
FSF還表示,如果還需要進(jìn)一步研究,發(fā)表成后續(xù)論文,F(xiàn)SF會(huì)再加大資金支持。
FSF與GPL
自由軟件基金會(huì)(Free Software Foundation,F(xiàn)AF)致力于為計(jì)算機(jī)用戶爭(zhēng)取使用軟件的自由。

通過促進(jìn)軟件和文檔的開發(fā)和自由使用,特別是GNU系統(tǒng),以及反對(duì)數(shù)字限制管理(DRM)和軟件專利等對(duì)計(jì)算機(jī)用戶產(chǎn)生的威脅。
FSF發(fā)布的GNU通用公共許可證(GNU GPL)是世界上最流行的自由軟件許可證。
也是唯一以促進(jìn)和維護(hù)軟件自由為明確目的而編寫的許可證。
GNU GPL可保證用戶運(yùn)行、研究、共享和修改軟件的自由。
同時(shí),GPL下的任何衍生作品都必須遵循相同或等效的許可條款。
GNU官網(wǎng)對(duì)于GPL的解釋說,如果你想把修改過的GPL代碼向公眾發(fā)布,就需要提供源代碼。

https://www.gnu.org/licenses/gpl-faq.zh-cn.html#language-container
FSF還會(huì)發(fā)布其它重要的許可證,包括GNU LGPL、GNU AGPL和GNU FDL。
所以FSF才會(huì)這么理直氣壯地質(zhì)疑Copilot的存在。
質(zhì)疑聲迭起
GitHub Copilot憑借著自動(dòng)生成代碼這個(gè)強(qiáng)有力的噱頭,推出之后就成為了討論的焦點(diǎn)。
GitHub聲稱Copilot可以做到分析文檔中的字符串、注釋、函數(shù)名稱以及代碼本身,從而生成新的匹配代碼,包括之前調(diào)用的特定函數(shù)。
發(fā)布之后就有人把Copilot拉去刷Leetcode的題庫(kù),并對(duì)這位「AI程序員」的表現(xiàn)十分滿意。
經(jīng)過數(shù)個(gè)題目的驗(yàn)證,Copilot每次都能通過Leetcode的測(cè)試。
鑒于幾乎是實(shí)時(shí)的生成速度,博主表示,AI可能比我們更會(huì)編寫代碼。
不過可疑的一點(diǎn)是,Copilot「生成」的內(nèi)容和Leetcode給的模板幾乎一模一樣。
無獨(dú)有偶,在Copilot發(fā)布的第二天,就有網(wǎng)友質(zhì)疑GitHub Copilot是把免費(fèi)開源的代碼清洗之后,搖身一變就成了賺錢的工具。
而這些代碼本應(yīng)該受到GNU GPL的保護(hù),避免商用。
Copilot用基于GPL的代碼進(jìn)行訓(xùn)練這件事,網(wǎng)友就質(zhì)疑:
GPL明確聲明「不要將我的工作成果放在專利軟件中」,但Copilot真就這么做了。

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

Copilot「生成」的這段代碼不僅用到了至今都沒有人能理解的magic number:0x5f3759df。
旁邊「生成」的注釋還有對(duì)這段代碼的吐槽:what the f***?

所以,其實(shí)Copilot就是把訓(xùn)練集中別人寫好的代碼重新組裝了一下而已。
GitHub的解釋
GitHub在Copilot的官網(wǎng)上表示,雖然可能有0.1%的直接引用,但是Copilot生成的代碼大部分都會(huì)是原創(chuàng)的。
除此以外,一位名叫Albert Ziegler的團(tuán)隊(duì)成員表示,他收集了300名員工日常工作使用Copilot的數(shù)據(jù),其中包括對(duì)于Python的453780條建議。
Albert在分析整理之后寫了一篇看似十分完備的博客。
在博客中Albert表示,記住訓(xùn)練集的內(nèi)容不是什么問題。
就好比背詩(shī),大家都背詩(shī),但這并不會(huì)讓他在日常交流中這些詩(shī)帶跑偏。
測(cè)試結(jié)果
對(duì)于GitHub Copilot的大部分建議,Albert表示并沒有發(fā)現(xiàn)與訓(xùn)練用的代碼有任何明顯的重疊。
Albert認(rèn)為,雖然GitHub Copilot會(huì)逐字逐句地引用一組代碼,但它很少這樣做。
就算是,多數(shù)情況下都是所有人都會(huì)引用的代碼,而且大部分是在文件開頭。
Albert表示,理想狀態(tài)下,如果Copilot「生成」了一個(gè)直接從訓(xùn)練集復(fù)制的代碼,Copilot就會(huì)告知用戶。
用戶再?zèng)Q定給這個(gè)代碼署名還是直接拒絕Copilot給出的代碼。
但現(xiàn)實(shí)是,GitHub、微軟和OpenAI遲遲做不到這點(diǎn)。
FSF因此不得不親自下場(chǎng)表示要守護(hù)開發(fā)者的權(quán)益。
網(wǎng)友討論
基于道德層面,網(wǎng)友表示支持FSF,但同時(shí)也認(rèn)為Copilot能夠降低程序員寫代碼的門檻。

網(wǎng)友表示,AI其實(shí)也跟人一樣,能夠在任何可以獲得的源代碼上學(xué)習(xí)編程。
如果有人說Copilot將自己以前見過的代碼粘貼在一起,那這種發(fā)言在技術(shù)和法律上都不太明智了。

當(dāng)然,也有網(wǎng)友認(rèn)為FSF應(yīng)該設(shè)法讓軟件免費(fèi)使用,而不是限制這個(gè)軟件。

你覺得Copilot究竟有沒有侵權(quán)呢?