Copilot逐字複製代碼,恐抹去整個開源社區?程式設計師發起集體訴訟

機器之心pro 發佈 2022-10-18T16:42:55.620473+00:00

因此,那些希望使用開源軟體的人必須做出一個選擇,要麼遵守許可證上規定的義務,要麼使用從屬於「許可證例外」的代碼。

選自GitHub Copi­lot inves­ti­ga­tion

作者:Matthew Butterick

機器之心編譯

編輯:蛋醬、張倩

Copilot是開源社區的「寄生蟲」?

作為一名開發者,或許你不介意 GitHub Copilot 未經詢問就使用了你的開原始碼。

但如果,Copilot 逐漸抹去整個開源社區,你會有什麼感受?

近日,程式設計師 Matthew Butterick (同時他也擁有作家和律師身份)在個人博客中控訴了 Copilot,並宣布開展訴訟調查:

2022 年 6 月,我寫了一篇關於 GitHub Copilot 法律問題的文章,特別是它對開源許可證的處理不當。最近,我採取了下一步行動:我重新激活了我的加州律師資格,與 Joseph Saveri 律師事務所的優秀集體訴訟律師 Joseph Saveri、 Cadio Zirpoli 和 Travis Manfredi 合作開展一個新項目——我們正在調查針對 GitHub Copilot 違反其對開源作者和最終用戶法律義務的潛在訴訟。

GitHub Copilot 是微軟在經過一年的技術預覽後於 2022 年 6 月正式發布的產品。Copilot 是 Visual Studio 和其他 IDE 的插件,可根據在編輯器中鍵入的內容生成所謂的「建議」 。

那麼,Copilot 與傳統的自動補全功能有什麼不同?

Copilot 由 Codex 提供支持,這是一個由 OpenAI 開發並授權給微軟的 AI 系統。(儘管微軟也被稱為「OpenAI 的非官方所有者」。)

Copilot 會根據用戶輸入的文本 prompt 提供建議,一般可用於提出小的建議,但微軟強調 Copilot 能夠建議更大的代碼塊,例如函數的整個主體。

但是其底層 AI 系統 Codex 是如何訓練的呢?據 OpenAI 稱,Codex 接受了「數以千萬計的公共存儲庫」的訓練,包括 GitHub 上的代碼。微軟自己含糊地描述為「數十億行公共代碼」。但 Copilot 研究員 Eddie Aftandilian 在最近的播客中證實,Copilot 是「在 GitHub 上的公共存儲庫上訓練的」。

Copilot 有什麼問題?

本文作者 Matthew Butterick 認為,無論是訓練還是使用,Copilot 都存在法律問題。

訓練中的法律問題

絕大多數的開源軟體包是在授權許可下發布的,授予用戶一定的權利並強加一定的義務(例如保留原始碼的精確屬性)。這些授權的合法實現方式是作者在他們的代碼中聲明他們的版權(copy­right)。

因此,那些希望使用開源軟體的人必須做出一個選擇,要麼遵守許可證上規定的義務,要麼使用從屬於「許可證例外」的代碼(如版權法下的「合理使用」)。

微軟和 OpenAI 已經承認 Copilot 和 Codex 是在 GitHub 上公開 repo 中的開源軟體上訓練的。那麼,他們選的是哪條路呢?

如果微軟和 OpenAI 選擇在每個 repo 的開源許可下使用這些 repo,那麼他們將需要發布大量的 attri­bu­tion,因為這幾乎是每個開源許可的最低要求。然而,我們現在看不到任何 attri­bu­tion。

因此,微軟和 OpenAI 必須找到一個「合理使用( fair-use )」的理由。GitHub 前 CEO Nat Fried­man 在 Copilot 的技術預覽會上曾經說過,「在公開數據上訓練(機器學習)系統屬於合理使用。」

事實真就如他所說嗎?這是一個法律問題,不是誰說了就算的。當然,微軟、OpenAI 和其他研究機構一直在支持「合理使用」的論點。Nat Fried­man 曾進一步斷言,「機器學習社區所廣泛依賴的」關於「合理使用」的「法理」是存在的。但是軟體自由保護組織(Software Freedom Conservancy,SFC)不同意他的觀點,並要求微軟提供證據來支持其立場。SFC 負責人曾透露:

我們在 2021 年 6 月私下詢問了 Fried­man 和其他微軟、GitHub 的代表,要求他們為 GitHub 的公開法律立場提供可靠的法律參考…… 但他們什麼都沒有提供。

為什麼微軟不能為他們的立場提供一些法律依據?因為 SFC 是對的:他們根本就沒有依據。儘管一些法院已經考慮了相關問題,但目前還沒有一個美國的判例直接去解決 AI 訓練的「合理使用」問題。此外,那些涉及「合理使用」的案例也是平衡了多重因素。即使法院最終裁定某些類型的 AI 訓練是「合理使用」的(這似乎是有可能的),它也可能將其他類型的訓練排除在外。到今天為止,我們還不知道 Copi­lot 或 Codex 在這個範圍內處於什麼位置。微軟和 OpenAI 也不知道。

使用中的法律問題

我們還不能說「合理使用」最終將以何種方式應用於 AI 訓練。但我們知道,這一發現完全不會影響 Copi­lot 用戶。為什麼?因為他們只是使用 Copi­lot 來給出代碼。那麼,這部分代碼的版權和許可狀態是怎樣的呢?

2021 年,Nat Fredman 聲稱,Copilot 的輸出屬於操作者,就像他們在使用編譯器一樣。但 Copilot 為粗心的人設置了新的陷阱。

微軟將 Copilot 的輸出描述為一系列代碼「建議」。微軟在這些建議中「不主張任何權利」。但同時,微軟也沒有對這樣生成的代碼的正確性、安全性或擴展出的智慧財產權問題提供任何保證。一旦你接受了 Copilot 的建議,所有這一切都成了你的問題。

你要對你代碼的安全性和質量負責。我們建議您在使用由 GitHub Copilot 生成的代碼時採取與使用其他任何非本人所寫代碼時相同的預防措施,包括嚴格的測試、IP 掃描和安全漏洞跟蹤。

這些建議的代碼會有什麼問題?已經有 Copilot 用戶指出,Copilot 可能會被誘導從可識別的 repo 中一字不差地複製代碼。前段時間,德克薩斯農工大學教授 Tim Davis 給出了很多例子來說明 Copilot 確實逐字複製了他的代碼。

使用此代碼顯然就產生了遵守其許可的義務。但是根據 Copilot 的設計,用戶根本看不到代碼的來源、作者、許可等信息,又怎麼去遵守呢?

本文作者 Matthew Butterick 認為,Copilot 的快速代碼檢索方法就是一種煙霧彈,目的是掩蓋一個骯髒的真相:Copi­lot 只是一個連接大量開原始碼的方便的替代界面。因此,Copilot 用戶可能會承擔代碼原作者施加給他們的許可義務。在這種背景下,Nat fredman 聲稱 Copilot 的操作「就像…… 一個編譯器」是相當站不住腳的,因為編譯器改變了代碼的形式,但它們不注入新的智慧財產權屬性。公平地說,微軟並沒有對此提出異議。他們只是把它埋在了小字裡。

Copilot 對開源社區意味著什麼?

Matthew Butterick 指出,通過提供 Copilot 作為大量開原始碼的替代接口,微軟所做的不僅僅是切斷開源作者和用戶之間的法律關係。可以說,微軟正在創建一個新的「圍牆花園」,它將阻止程式設計師去發現傳統的開源社區,或者至少,消除一切這樣做的動機。

隨著時間的推移,這個過程將使這些社區變得貧乏。用戶的注意力和參與度會逐漸轉移到 Copilot 的圍牆花園,遠離開源項目本身——遠離他們的 source repo、他們的 issue track­er、他們的郵件列表、他們的 dis­cus­sion board。這種能量的轉變對於開源來說將是痛苦的、永久的損失。

微軟雲計算執行官 Scott Guthrie 最近承認,儘管微軟 CEO Satya Nadella 在收購 GitHub 時做出了「GitHub 仍將是一個開放平台」的樂觀承諾,但微軟一直在推動更多 GitHub 服務(包括 Copilot)進入其 Azure 雲平台.

Matthew Butterick 表示,他們並不是無緣無故向 GitHub 發起訴訟。他認為,發布開源軟體的一大好處是「人」:圍繞我們工作的用戶、測試人員和貢獻者社區。「我們的社區幫助我們以無需靠自己的方式改進軟體,這使工作變得有趣」。

Copilot 向開源軟體引入了更「自私」的界面:只給我想要的(just give me what I want)!使用 Copilot,開源用戶永遠不必知道誰製作了他們的軟體,永遠不必與社區互動,永遠不必做出貢獻。

同時,Matthew Butterick 提醒說,開源作者必須注意到,我們的工作被隱藏在一個名為 Copilot 的大型代碼庫中。就像農場中的一頭奶牛,Copilot 只想將我們轉變為要開採的資源的生產者。

「即使是奶牛也能從交易中獲得食物和住所,而 Copilot 對我們的個人項目沒有任何貢獻。」

Matthew Butterick 認為,Copilot 的圍牆花園與開源是對立的,且存在危害。因此,這也是對 GitHub 在被微軟收購之前所代表的一切的背叛。如果你出生於 2005 年之前,肯定會記得 GitHub 的聲譽是建立在其為開源開發人員提供好東西和培育開源社區的基礎上的。相比之下,Copilot 是這個想法的多重瘋狂反轉。

換個角度說,也許你是 Copilot 的粉絲,認為 AI 是未來。首先,這裡反對的不是一般的人工智慧輔助編程工具,而是微軟對 Copilot 的具體選擇。我們可以很容易地想像一個對開源開發人員更友好的 Copilot 版本——例如,參與是自願的,或者編碼人員有償為訓練語料庫做出貢獻。目前看來,儘管自稱熱愛開源,但微軟沒有選擇這些選項。其次,如果你發現 Copilot 有價值,很大程度上是因為底層開源訓練數據的質量。Copilot 從開源項目中汲取生命,最直接的影響將是讓 Copilot 變得更糟。

Matthew Butterick 表示,「當我第一次寫 Copilot 時,我說過:『我不擔心它對開源的影響。』短期內,我仍然不擔心。但當我回顧自己近 25 年的開源之旅時,我意識到我錯過了更大的圖景。畢竟,開源不是固定的一群人。這是一種不斷增長、不斷變化的集體智慧,不斷被新鮮的思想更新。我們為彼此設定了新的標準和挑戰,從而提高了我們對取得成就的期望。

在這場盛大的鍊金術中,Copilot 闖入了。它的目標是把開源的能量據為己有。我們無需深入研究微軟在開源方面的曲折歷史,就可以了解 Copilot 的本質——寄生蟲。

在對開源的損害變得無法彌補之前,我們必須測試 Copilot 的合法性。這就是我想申明的原因。」

原文連結:https://githubcopilotinvestigation.com/#what-is-github-copilot

關鍵字: