編程神器Copilot逐字抄襲他人代碼?
編譯|核子可樂、燕珊
“ 向開源軟件注入了自私的基因:我想要什么,你就得給我什么。”
自面世后就飽受爭議的 編程神器最近又遭遇輿論風暴。
日前,德州農工大學的一位計算機科學教授 Tim 在推特上發文稱, 在沒有標注來源也沒有 LGPL 許可的情況下,輸出了大量應該受版權保護的代碼。
Tim 還發了自己和 在稀疏矩陣轉置、稀疏矩陣加法的代碼對比,并表示兩者幾乎一模一樣,高度雷同。Tim 的推文引發熱議, 技術總監認為這算是 非法洗代碼行為。
左邊是該名教授的代碼,右邊是 的。
對此, 的發明者 Alex 回應道,Tim 寫的代碼和 產生的代碼不同,“相似,但不同”。他還提到,如果有人能提供一種方法可以自動識別代碼是由某一方衍生出來的,那就可以申請專利了。
Alex 表示,到目前為止 已被指控了諸多問題,包括剽竊代碼、引入漏洞、代碼不完美、太分散注意力、甚至讓人變笨等等。他強調道,“我認為程序員永遠不會被取代。 使人們的工作效率更高。”
起訴
是一款 AI 結對編程工具,它的主要定位是提供代碼補全與建議功能。它是 Code 的一個插件,可根據當前文件的內容和當前光標位置為你自動生成代碼。而版權問題是 從一推出就面臨的挑戰,人們質疑它在 上發布的公開代碼上進行訓練的合法性。
除了 Alex 的“怒懟”,這兩天在 上引起熱議的還有另一篇內容《也許你并不在乎 在未經許可之下使用你的開源代碼,但如果 要抹除整個開源社區,你又將作何感想?》,這篇文章來源于一位名叫 的律師,同時他也是一名程序員。
作為程序員, 從 1998 年起就在專業參與開源軟件貢獻,期間還在 Red Hat 工作過兩年。最近,他又成了 的貢獻者。他寫過文章宣傳 Lisp,也出過介紹編程語言開發的書,還發布過不少開源軟件,包括專門用來出版線上書籍的 ,以及他自己在工作中經常使用的 AI 軟件。
今年 6 月,在 正式推出的時候, 寫了一篇關于 違法問題的文章。而最近, 決定采取下一步行動,重新激活了自己的加州律師協會會員資格,并和幾位律師發起了新的項目——針對 違反對開源作者及最終用戶的法律義務一事開展調查,并考慮進行訴訟。
的問題在哪?
首先要說明的是, 跟傳統自動補全功能有何區別?簡單來講, 由 進行支持,而 則是由 構建并授權給微軟的 AI 系統(微軟常被稱為「 的非官方所有者」)。 能根據用戶輸入的文本 提供建議,而且與只能提示細節建議的傳統工具不同, 可以提供更大的代碼塊,包括函數的完整主體。
但作為底層 AI 系統, 是怎么被訓練出來的?據 的介紹, 接受了“數以千萬計的公共 repo”的訓練,其中當然包括 上的代碼。微軟的說辭則較為含糊,只提到“數十億行公共代碼”。不過 研究員 最近已經在播客中證實, 確實是“由 上的公共 repo 訓練而成”。
認為,“ 在系統訓練與系統使用方面都存在法律問題。”
系統訓練
絕大多數開源軟件包是在授權許可之下發布的,在授予用戶一定權利的同時也要求其承擔一定義務(例如保留源代碼的精確屬性)。而這種授權的合法實現方式,就是由軟件作者在代碼中聲明版權。
因此,要想使用開源軟件,大家就必須做出選擇:
要么遵守許可證所規定的義務;
要么使用那些屬于許可證例外的代碼(即版權法所規定的「合理使用」情形)。
如果微軟和 決定基于各 repo 的開源許可來使用這些訓練素材,那就得發布大量屬性(),這已經算是各類開源許可的底線要求。但截至目前,大家都還沒有看到任何屬性聲明。
微軟和 必須找到“合理使用”的理由。 前 CEO Nat 就曾在 的技術預覽會上提到,“在公開數據上訓練(機器學習)系統屬于合理使用的范疇。”
然而,軟件自由保護組織(SFC)明顯不同意他的觀點,并要求微軟方面提供能支持其立場的證據。保護組織負責人 Kuhn 指出:
我們曾在 2021 年 6 月私下詢問過 和其他幾位微軟 / 代表,要求他們為 的公開法律立場提供可靠的參考依據……但他們什么都拿不出來。
事實上,目前全美還沒有哪個判例能夠直接解決 AI 訓練中的“合理使用”問題。另外,所有涉及“合理使用”的案例均權衡了大量相關因素。即使法院最終判定某些類型的 AI 訓練屬于“合理使用”,也不代表其他類型的訓練就能“無腦照辦”。就目前來看,還不知道 和 到底合不合法,微軟和 其實也說不準。
系統使用
雖然沒法確定“合理使用”最終要怎么在 AI 訓練中落地,但可以想象,其結果并不會影響到 用戶。為什么呢?因為用戶只是在使用 提供的代碼,而這部分代碼的版權和許可狀態同樣模糊不清。
微軟倒是有自己的說法。2021 年,Nat 曾聲稱 的輸出結果歸屬于操作者,其性質與使用編譯器一樣。但 已經暗暗給用戶挖好了坑。
微軟將 輸出描述為一系列代碼“建議”,并強調不會對這些建議“主張任何權利”。但與此同時,微軟也不會對由此生成的代碼的正確性、安全性或延伸出的知識產權問題做任何保證。所以只要接納了 的建議,那這些問題就都要由用戶自己承擔:
您需要對自己代碼的安全性和質量負責。我們建議您在使用由 生成的代碼時,采取與使用其他一切非本人所編寫代碼相同的防范措施,包括嚴格測試、IP(知識產權)掃描和安全漏洞跟蹤。
這樣一來,可能會產生什么糾葛?用戶控訴,就像上文中 Tim 控訴的這起抄代碼事件。
理論上, 使用他的代碼,當然會產生相應的許可遵守義務。但從 的設計來看,用戶完全接觸不到代碼的來源、作者和許可證。
從這個角度看, 的代碼檢索方法就像一顆煙霧彈,下面掩蓋的是另一種真相: 本身,只是連通海量開源代碼的一套替代接口。只要用上它,用戶可能就需要承擔起代碼原作者提出的許可義務。
意識到這一點,Nat 所謂 “就像是編譯器”的說法就會變得不靠譜。畢竟編譯器只會改變代碼形式,但絕不會注入新的知識產權屬性。
對于開源社區意味著什么?
認為,通過將 當作海量開源代碼的替代接口,微軟不僅借此切斷了開源作者與用戶之間的法律關系,甚至建立起新的“圍墻花園”——阻止程序員接觸傳統開源社區,從而消除了他們為之貢獻的可能性。隨著時間推移,這勢必會讓開源社區變得愈發貧乏。
用戶的注意力和參與方向將逐漸朝著 轉移,最終徹底告別開源項目本身——告別源代碼 repo、告別問題跟蹤器、告別郵件列表、告別討論板。這樣的變化必將給開源帶來痛苦、甚至永遠無法挽回的損失。
“包括我自己在內的開源開發者之所以提出抗議,所圖的絕不是錢。我們只是不想讓自己的努力貢獻被白白浪費掉。開源軟件的核心在于人,在于由人組成的用戶、測試者和貢獻者社區。正是因為有了這樣的社區,我們才能以超越自身的方式改進軟件,讓工作充滿樂趣。” 進一步說道, 向開源軟件注入了自私的基因:我想要什么,你就得給我什么。
他最后強調道:“我們反對的絕不是 AI 輔助編程工具,而是微軟在 當中的種種具體行徑。其實微軟完全可以把 做得更開發者友好一些——比如邀請大家自愿參加,或者由編程人員有償對訓練語料庫做出貢獻。但截至目前,口口聲聲自稱熱愛開源的微軟根本沒做過這方面的嘗試。另外,如果大家覺得 效果挺好,那主要也是因為底層開源訓練數據的質量過硬。 其實是在從開源項目那邊吞噬能量,而一旦開源活力枯竭, 也將失去發展的依憑。”
參考鏈接:
聲明:本站所有文章資源內容,如無特殊說明或標注,均為采集網絡資源。如若本站內容侵犯了原著者的合法權益,可聯系本站刪除。