使用人工智能在 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