使用人工智慧在 Rust 中重寫 ScanCode 時遇到的版權問題

開源工具包 ScanCode Toolkit 的維護者批評了一個使用人工智慧技術將 ScanCode 從 Python 重寫為 Rust 的專案(該專案名稱未提及,但種種跡象表明是 Provenant 專案)。 ScanCode Toolkit 旨在掃描程式碼以尋找版權侵權、識別許可證並偵測未修復的漏洞。維護者聲稱,該重寫項目侵犯了 ScanCode 的商標權,並刪除了版權和許可證的引用。這項指控源於這樣一個事實:該重寫專案在保留 ScanCode 架構和程式碼結構的同時,仍使用了 ScanCode 的關鍵演算法。

據 ScanCode 的維護者稱,克隆版本的成功創建得益於該專案全面的自動化測試套件,該套件包含超過 90 萬個測試案例,其中 40 萬個專門用於檢測程式碼中特定許可證的使用情況。重寫版本的作者報告稱效能顯著提升(10 到 100 倍),但 ScanCode 的維護者指出,速度提升的代價是測試套件的測試不完整,以及運行正確性和所提供資訊的完整性下降(克隆版本產生了錯誤的結果,並且在分析過程中未能找到所有資訊)。

雖然 Rust 移植版在專門的性能測試中顯著優於 ScanCode,但即使跳過了一些檢查,克隆版在運行標準測試套件時仍然較慢。在 ScanCode 中實現快取等優化後,其程式碼掃描效能與 Rust 克隆版不相上下,同時保持了程式碼的完全正確性。

該克隆專案的作者還被指控侵犯版權並違反了 Apache 2.0 許可證,ScanCode 的程式碼正是根據該許可證分發的。據悉,在重寫過程中,他們違反了四個關鍵的許可證要求:保留原始的 NOTICE 文件、保留版權聲明、突出顯示所做的更改以及更改衍生作品的名稱。在收到通知後,克隆項目的作者發布了 NOTICE 文件並重命名了項目,但其他兩項違規行為仍未解決。

ScanCode 的維護者認為,在使用人工智慧時,社群應該制定標準來區分衍生作品和獨立實現。他認為,即使變數被重新命名、註解被重寫或刪除,用另一種語言重寫程式碼,只要保留演算法和結構,仍然屬於衍生作品。 Rust 移植版聲稱其獨立重寫僅僅是受到 ScanCode 計畫的啟發,這種說法並不成立,因為他們的工作旨在營造原創開發的假象,這甚至比直接抄襲更糟糕,因為這種篡改更難被發現。

人工智慧驅動的程式碼產生面臨的一大挑戰是,無法追溯用於產生輸出的程式碼的來源。預設情況下,除非專門實現識別和保留許可及歸屬元數據,否則使用開源專案代碼的人工智慧代理會忽略作者資訊。這種歸屬問題不僅影響程式碼從一種語言重寫到另一種語言的過程,而且影響整個程式碼產生過程——在這種情況下,產生的程式碼可以非常精確地複製模型訓練中使用的現有開源程式碼的模式。

來源: opennet.ru

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster