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