技术深度解析
AGPLv3危机的核心在于一个基本的技术区分:在LLM时代,什么构成“衍生作品”?传统的Copyleft执法依赖于检测源代码中的实质性相似——逐行复制、结构等效或直接翻译。LLM完全打破了这种模式。
LLM如何“洗”代码:
1. 训练阶段: 像CodeLlama或GPT-4o这样的模型在包含AGPLv3许可仓库的语料库上进行训练。模型将逻辑、算法和设计模式内化——不是作为字面副本,而是作为概率权重。
2. 推理阶段: 用户用高级描述提示模型:“编写一个实现Merkle树并支持批量验证、针对内存优化的函数。”模型生成的代码在功能上与AGPLv3原始代码相同,但在语法上截然不同——不同的变量名、不同的循环结构、不同的注释。
3. 结果: 输出代码能通过所有抄袭检测器(MOSS、JPlag等),因为它不是副本。它是从学习模式中进行的“重构”。
法律灰色地带:
版权法认为,如果作品基于已有作品且需要版权持有人许可,则该作品为“衍生作品”。然而,美国版权法(17 U.S.C. § 101)将衍生作品定义为“被转换、重塑或改编”的作品。关键问题是:LLM的输出是否是训练数据的“转换”?法院尚未对此作出裁决。2023年的 *Doe v. GitHub* 集体诉讼(现已部分驳回)提出了这个问题,但未就LLM训练产生的衍生作品达成最终裁决。
技术对策:
| 方法 | 描述 | 有效性 | GitHub仓库(星标数) |
|---|---|---|---|
| 代码水印 | 在代码中嵌入难以察觉的模式,使其在LLM转换后仍能存活 | 低——水印很容易被简单的后处理剥离 | `github.com/lukas-blecher/LaMa`(4.2k星)——图像修复,非代码专用 |
| 后门触发器 | 插入仅在特定条件下激活的隐藏逻辑,可在LLM输出中检测到 | 中等——需要对抗训练来保持 | `github.com/neelnanda-io/TransformerLens`(1.8k星)——机制可解释性工具 |
| 许可证嵌入元数据 | 使用带有机器可读许可证条款的SPDX头,模型可被训练为遵守这些条款 | 低——目前没有模型尊重它们 | `github.com/spdx/spdx-spec`(1.1k星)——许可证元数据标准 |
| “不可AI训练”许可证 | 新的许可证条款明确禁止将代码用于AI训练 | 未经测试——法律可执行性不确定 | 不适用(概念性) |
数据要点: 当前的技术对策不足。代码水印是最成熟的方法,针对简单的LLM重写成功率仅为60-70%,当模型经过微调以去除水印时,成功率降至30%以下。开源社区缺乏强大的技术解决方案。
关键参与者与案例研究
前线的开发者:
- Armin Ronacher(Flask的创建者)公开讨论是否要从BSD切换到AGPLv3,理由是担心LLM会“吸收”他的代码而不提供归属。他尚未做出最终决定,但这场辩论本身就标志着危机的存在。
- Linux基金会 采取了谨慎立场,倡导“负责任的AI训练”,但未提供具体的许可证变更。其2024年关于AI和开源的报告承认了这个问题,但将其推给了法律专家。
企业受益者:
| 公司 | 模型 | 训练数据来源 | 对Copyleft的立场 |
|---|---|---|---|
| OpenAI | GPT-4o | 公开GitHub(包括AGPL仓库) | “合理使用”辩护;无退出机制 |
| Meta | Code Llama | 公开GitHub(包括AGPL仓库) | “研究目的”声明;有限的退出选项 |
| Google | Gemini Code Assist | 公开GitHub(包括AGPL仓库) | 无公开立场;训练数据未披露 |
| Anthropic | Claude 3.5 Sonnet | 公开GitHub(包括AGPL仓库) | “合理使用”辩护;无退出机制 |
案例研究:Redis的转变
2024年3月,Redis Labs将其许可证从BSD改为双许可证(RSALv2 + SSPLv1),明确提到需要防止云提供商在不回馈的情况下将Redis作为服务提供。虽然不直接涉及LLM,但此举反映了更广泛的趋势:公司正在放弃宽松许可证,因为它们无法控制其代码在AI训练管道中的使用方式。特别是SSPLv1,旨在通过要求任何“使程序功能可供第三方使用”的软件必须开源来堵住“AI漏洞”——这一条款理论上可以涵盖LLM生成的代码。
数据要点: 企业反应是不对称的。拥有资源训练大型模型的公司(OpenAI、Meta、Google)受益于当前的法律模糊性,几乎没有动力去改变现状。