天天看點

Copilot逐字複制代碼,恐抹去整個開源社群?程式員發起集體訴訟

選自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 的輸出描述為一系列代碼「建議」。微軟在這些建議中「不主張任何權利」。但同時,微軟也沒有對這樣生成的代碼的正确性、安全性或擴充出的知識産權問題提供任何保證。一旦你接受了 Copilot 的建議,所有這一切都成了你的問題。

你要對你代碼的安全性和品質負責。我們建議您在使用由 GitHub Copilot 生成的代碼時采取與使用其他任何非本人所寫代碼時相同的預防措施,包括嚴格的測試、IP 掃描和安全漏洞跟蹤。
Copilot逐字複制代碼,恐抹去整個開源社群?程式員發起集體訴訟

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

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

繼續閱讀