文 陳徐毅(北京)

人工智能的紅利仍在持續改變世界,未來軟件工程自動化是長期趨勢。
隨著計算機生產力工具的不斷變革,由人工智能支撐的編程工具自動化在近兩年迎來高速發展。與此同時,新事物也伴隨著新問題接踵而至,因AI編程引起的軟件著作權爭議迷霧籠罩著業界。不久前,軟件自由保護協會(Software Freedom Conservancy,SFC)因不滿知名開源托管平臺GitHub對旗下AI編程工具Copilot收費一事,發布了一篇名為《放棄GitHub:時機已到!》的長文,并呼吁所有的自由軟件與開源軟件開發者離開GitHub平臺。
為什么一款人工智能編程工具的收費舉動引發了SFC和GitHub平臺的決裂?這要從異軍突起的AI自動化編程說起。
Copilot是由GitHub平臺與OpenAI實驗室合作開發的一個AI插件,用戶通過將其安裝在常見的代碼編輯器或集成開發環境工具(如VSCode、Intellij IDEA等)中,在編程時Copilot會輔助開發者自動補全代碼。
C o p i l o t的代碼補全能力其原理由OpenAI Codex模型提供支持,該模型基于GPT-3(一種基于文本訓練的深度學習神經網絡)創建,同時還接受了來自GitHub平臺上5400萬個存儲庫的159GB Python代碼的訓練。Copilot目前能夠支持十多種編程語言的自動代碼補全,其中Python的效果最佳。程序員在插件的輔助下甚至只要輸入一段注釋,Copilot就會立即給出接下來可用的代碼、建議。
AI編程工具通過文本訓練聚合了海量代碼信息,為程序員省去了大量的查找時間。有開發者戲稱:“Copilot不僅解放了大腦,還解放了手指。”人工智能其本質是人類智能的集合,在算力上超越人類智能的表現在于其巨大的并行計算,這也是21世紀人工智能神經網絡與深度學習迅速壯大的原由。將這種能力運用到計算機軟件開發和軟件工程領域,確實將帶來生產力工具的極大變革。
Copilot的收費舉動是當前最表面的問題也是引爆爭議的導火索。GitHub在去年6月放出Copilot技術預覽版之初,社區開發者們表現出積極的興趣,經過一年時間對各種編程語言的適應并在多種開發環境上測試發布,該插件工具已經積累起超過120萬數量的訂閱群體。

人工智能的紅利仍在持續改變世界
其實Copilot與其算法模型Codex自發布伊始就引起了業界一些機構和專業人士的擔憂,這些觀點認為該技術生成的代碼段可能會在不知不覺中牽涉版權問題。由于一開始Copilot是免費訂閱的,這個問題并沒有被擴大,短時間內也很少會出現將Copilot生成代碼商用的情況。隨著GitHub對Copilot搞起了收費模式,那些原本“沉默”的爭議瞬間被點燃爆炸。
SFC在“討GitHub檄文”中對其作為列舉數項批評,呼吁開發者不要忘記21年前另一個平臺SourceForge將代碼私有化的教訓。反對GitHub Copilot收費觀點認為,平臺上托管著數量巨大的開源代碼項目,這些代碼依據項目本身所發布開源許可證規定合理利用,GitHub作為托管平臺將開源代碼用于Copilot自動化輔助后,又對該插件進行訂閱收費,這樣的行為與相關知識產權法規以及開源許可約定相悖。
同時,反對觀點所指向的爭議在于,當用于機器學習訓練的開源代碼被提供給Copilot用戶作為另一創作者的代碼、軟件項目的一部分時,該行為是否屬于對前者的合理利用。眾所周知,開源許可證種類眾多而規則不一,譬如對版權運用最嚴格的GPL許可證具有“凡觸之皆GPL”的傳染性,這就基本上阻絕了該證軟件的商業應用,而其他常用的許可證諸如BSD、MIT、Apache都有相應的規則。
SFC所指出問題其一就在于平臺方并未給出所訓練代碼的相應許可證,如果該問題沒有合適的解決方法,就如同一些開發者所說的:當你某天在敲代碼的時候突然收到來自其他作者的私信(侵犯他人版權)。而Copilot目前暫不支持代碼查重這樣的功能,因為這涉及到非常復雜和前所未有的工作。
軟件知識產權糾紛問題由來已久,遠的如AT&T訴伯克利BSD侵權Unix,近的有甲骨文訴谷歌Java案。裁量和判定一直以來都是軟件案的難點,比如在Java案中,法庭在安卓系統有無對Java專利構成侵權、JavaAPI是否受版權保護問題上的裁定令人印象深刻,對“被復制的37個JavaAPI代碼段”的自由裁量成為該案的關鍵。人工智能輔助編程插件作為工具本身提供代碼補全,在免費的情況下顯然沒有問題,這被認為是平臺向用戶提供服務用于研究、交流和創作;一旦收費就存在侵權糾紛,因為代碼著作權并非平臺所有,除非插件所提供的代碼段在法律裁量上無法被裁定為復制。
軟件知識產權是法律領域比較新的知識,因為軟件相對于機器硬件其商業價值在20世紀60年代末才開始逐漸顯現,而代碼和開源等方面在世界各國現行的版權法體現上都存在較大真空。隨著近年來圍繞著開源代碼侵權的案件逐漸增多,這一領域的缺失有望得到有效補充。
人工智能的紅利仍在持續改變世界,未來軟件工程自動化是長期趨勢。繼運維部署之后,開發領域也將面臨巨大變化,本輪深度學習帶來的AI變革將持續推進生產力工具的形態演進。同時,人工智能也是一把雙刃劍,開發者也應當認識到過度依賴自動化的負面結果。