【GitHub Copilot】關於 GitHub Copilot 的版權爭議
上個月,GitHub Copilot 的發佈在程式設計師的社群內掀起一討論,許多人,包括我自己,都對於這項技術的應用感興趣,也對於它的輔助編寫功能持正面肯定的看法。然而,緊接著開始有人討論關於 GitHub Copilot 訓練資料集的爭議,甚至有部分程式設計師發起抵制使用 GitHub Copilot。
這篇文章主要會分享近期 GitHub Copilot 的爭議問題,也歡迎在底下討論自己的看法。
我之前有寫過介紹 GitHub Copilot 以及如何使用 GitHub Copilot 的文章,如果有興趣的話也可以點擊進去看看。
Table of Contents
版權爭議
由於 GitHub Copilot 最終將作為產品營利,在發布之後便有人質疑這項工具會將開源的程式碼「清洗」成商業產品,進而傷害到這些開源作者的版權。
github copilot has, by their own admission, been trained on mountains of gpl code, so i'm unclear on how it's not a form of laundering open source code into commercial works. the handwave of "it usually doesn't reproduce exact chunks" is not very satisfying pic.twitter.com/IzqtK2kGGo
— eevee (@eevee) June 30, 2021
開源程式碼的版權
自由軟體的概念在 1980 年代萌芽,隨著自由軟體基金會 (Free Software Foundation,簡稱 FSF) 在 1985 年成立,開放原始碼的做法才逐漸普及,之後甚至有出現以 GNU 通用公眾授權條款 (GNU General Public License,簡稱 GPL) 公開配方的開源可樂 (如 OpenCola、Cube-Cola、Tøyen-Cola 等)。
![Tøyen-Cola](/images/post/github-copilot-issue/cola.jpg)
來自挪威的 Tøyen-Cola
雖然這些軟體或配方都是公開的,但不代表它們可以被任意地使用,現在大部分的開源專案都會附上授權條款,規範其他使用者的使用方式或用途,根據 WhiteSource 的報告,2020 年最常被使用的自由軟體授權條款包括 Apache-2.0、MIT、GPL 等等。
![Top 10 Open Source Licenses in 2020](/images/post/github-copilot-issue/licenses.jpg)
2020 年最常被使用的自由軟體授權條款
Apache License 2.0
Apache License 2.0 (簡稱 Apache-2.0) 由 Apache 軟體基金會 (Apache Software Foundation,簡稱 ASF) 於 2004 年發布,是較為寬鬆的授權條款。Apache-2.0 不會強制衍生和修改後的產物使用相同的授權條款釋出,但要求保留所有原始著作權、專利、商標及歸屬通知,同時需要說明哪些部分有經過修改。
The MIT License
The MIT License (又稱 X License、X11 License) 由麻省理工學院於 1988 年釋出,同樣是較為寬鬆的授權條款。MIT 僅規定發布時須一併散佈 MIT 的授權聲明,對於其他使用、修改沒有太多規範,這也是我在個人專案中較常使用的授權條款。
GNU General Public License
GNU General Public License (簡稱 GPL),由自由軟體基金會於 1989 年發布,目前以第二版 (GPLv2) 及第三版 (GPLv3) 較為常見,在自由軟體授權條款中算是規範較嚴格的一種。GPL 要求使用或修改 GPL 授權專案時,皆須以同樣的 GPL 授權釋出,也由於這種強制繼承的規定,讓 GPL 在開源軟體中被廣泛使用。
這次 GitHub Copilot 雖然沒有直接使用這些開源專案,但由於其訓練集中包含使用 GPL 或其他授權條款的程式碼專案,也因此在社群中引起討論,擔心這項工具依據這些開源專案提出的建議,是否會導致程式設計師在不知不覺中侵害了相關的授權條款。
官方回應
針對以上爭議,GitHub Copilot 在官網的常見問答中提及此項工具約有 0.1% 的狀況會提出與訓練集中的專案相同的程式碼片段,並表示正在建立相關的來源追蹤系統以避免此情況。
而 GitHub 的 CEO Nat Friedman 也於 HackerNews 中提到「使用公開資料訓練機器學習系統屬於合理使用」的觀點,同樣引起許多人在底下討論。
其他爭議
實際上除了版權爭議外,另一個經常討論的問題是 GitHub Copilot 偶爾會提出類似 API key、網址、郵件地址或密碼的建議,雖然在 GitHub Copilot 官網中提到該建議只是模型合成的虛構片段,出現個人資料的情況極其罕見 (就我自己的使用狀況,確實目前收到類似 API key 或網址的建議都是無法使用的),但仍然會令人擔心自己的個資外洩。
總結
由於這類將開放原始碼作為訓練集並生成建議的應用在過去幾乎沒有先例,再加上這次所涉及的開源專案非常多,因此免不了會有這些擔心與質疑,雖然 GitHub Copilot 表示建議結果照抄訓練集的情況很少見,但也有人提出此工具的 Codex 模型是基於 GPT 語言模型,而 GPT 則經常出現「記住」訓練資料的現象,且同時許多授權條款除了直接使用外,也有針對修改原始碼進行規範,而由機器學習模型生成的程式碼片段算不算是「修改」仍無定論。
即使 GitHub 提出合理使用的觀點,在不同國家的法規中,針對版權、合理使用也有不同的定義及規範,也不能因此獲得免死金牌。
或許在如何避免這些版權爭議、獲得開源社群認同的路上,微軟、GitHub 及 OpenAI 還有很長一段路要走。