“AI写的代码算不算贡献?”Debian开发者吵了半个月,最后只得出三个字:先观望
来源:36kr 2 小时前

现如今,大模型正在快速改变软件开发方式,但开源社区却开始陷入新的困惑:如果代码是 AI 写的,还算不算开发者贡献?

最近,全球最重要的 Linux 发行版之一 Debian,就因为这个问题展开了一场持续数周的激烈讨论:

● 有人认为,AI 只是新的开发工具,没必要过度限制;

● 有人担心,AI 会破坏开源社区培养新人的机制;

● 也有人从伦理角度反对生成式 AI,认为这些工具本身就在“掠夺互联网”。

但争论到最后,Debian 社区得出的结论却有点出人意料——先观望,暂时不做决定。

一份“AI 贡献政策”草案,引爆社区讨论

事情的起点,是 Debian 开发者 Lucas Nussbaum 在今年 2 月中旬提出的一份草案。

他建议 Debian 社区讨论一个问题:是否允许 AI 生成或 AI 辅助生成的代码进入 Debian 项目。为此,他提出了一份草案,希望明确 Debian 在这一问题上的政策,并表示会先收集几天社区反馈,再决定是否正式提交决议。

根据草案内容,AI 辅助生成的贡献(部分或全部由大语言模型生成)是可以接受的,但需要满足一系列条件,例如:

(1)如果贡献的重要部分来自 AI 工具且没有人工修改,必须明确披露

(2)贡献中需要加入清晰声明或机器可读标签,例如 [AI-Generated]

(3)提交者必须完全理解自己的提交内容

(4)提交者需要对代码负责,包括技术质量、安全性、许可证合规和实际用途

此外,该草案还规定:为了避免发生严重的数据泄露风险,不得将非公开或敏感的项目数据输入生成式 AI 工具,包括:私有邮件列表内容,以及未公开的安全漏洞报告。

换句话说,AI 可以帮你写代码,但责任必须仍由人类开发者来承担。

争论的第一步:大家连“AI 是什么”都没统一

但很快,这场讨论很快暴露出一个更基础的问题——大家甚至没有就“AI”这个词达成共识。

Debian 开发者 Russ Allbery 直言,如今“AI”这个词已经变得过于模糊:现在的“AI”几乎可以指宇宙中的任何东西。有人指 ChatGPT,有人指代码生成工具,有人甚至把普通自动化工具也算进去。他认为,如果 Debian 要制定政策,就必须明确具体对象,例如是大语言模型(LLM)、强化学习,还是其他具体技术,否则政策很难具有可执行性。

“LLM 至少还有一个比较明确的含义,而 ‘AI’ 往往只是发言者想表达什么就代表什么,甚至同一场讨论里含义都在变化。”他说。

另一位开发者 Sean Whitton 也建议:如果要制定政策,至少应该使用 LLM 而不是 AI 这个模糊词;并区分不同的 AI 使用场景,比如代码审查、原型生成还是直接生成生产代码。他指出最好在投票选项中分别处理这些情况,而不是“一刀切”。

然而,不同于这些开发者的看法,Lucas Nussbaum 则认为,技术细节并不是重点,真正的问题是:是否允许自动化工具参与代码生成或分析。

他举了一个例子:在 Linux 内核早期,社区曾因为 BitKeeper 版本控制系统是否应该被使用而产生激烈争论;类似的情况也出现在安全工具领域——如果漏洞扫描工具是闭源的,那社区是否应该忽略它发现的漏洞?

Nussbaum 表示:如果我们采取完全“反工具”的立场,那将很难划出清晰边界。

AI 可能破坏开源社区的“新人培养机制”?

随后,这场讨论转向了一个更深层的问题:AI 会不会破坏开源社区培养新人的机制?

开发者 Simon Richter 提出了一个很有意思的观点:AI 代理在某种程度上,可能取代初级开发者。在很多情况下,初级开发者能在导师指导下完成任务,同样的任务,现在也可以由 AI 完成了——可问题是:AI 不会学习。

也就是说,社区投入的指导成本,无法转化为新的长期贡献者。

Simon Richter 说:“最好的情况是:一个小 Bug 被解决了,但没有培养出新的贡献者;最糟糕的情况是:所谓的贡献者只是 AI 和维护者之间的‘中间人’。”

此外,他还担心 AI 工具的使用成本:如果未来开发越来越依赖付费 AI 工具,可能会降低普通用户参与开源的门槛。

对此,Lucas Nussbaum 也并不完全认同。他认为 Debian 不会缺少适合新人的任务,AI 甚至可能帮助新手处理更复杂的问题他还引用了一项研究(由 Anthropic 员工参与撰写),其中指出:人与 AI 的交互方式差异很大,不同使用方式对学习效果影响也完全不同。

另一位知名 Linux 开发者 Ted Ts’o 也直接反驳了反 AI 的观点:一些人担心 AI 会减少未来的资深贡献者,但如果因此拒绝 AI 用户参与贡献,那才是真正的自我伤害。

伦理问题:AI 公司正在“吸干互联网”

还有一部分反对声音来自伦理层面和版权问题。

Debian 开发者 Matthew Vernon 指出,生成式 AI 公司在训练模型时存在明显问题。例如:大规模抓取互联网内容、无视版权与开源许可证、直接使用他人的知识产权训练模型等。

他说:这些公司疯狂抓取内容,对版权几乎毫不在意。Matthew Vernon 还提到了其他争议,包括 AI 的能源消耗、深度伪造问题和 AI 生成的虚假安全漏洞报告——在他看来,Debian 这样的自由软件项目应该明确反对这些 AI 工具。

除了伦理问题,版权问题也同样悬而未决,主要涉及模型训练数据的版权和 AI  生成内容的版权归属。对此,开发者 Jonathan Dowland 建议:在法律环境更清晰之前,也许暂时禁止这类贡献会更安全。

AI 代码质量差?其实人类也一样

在这场讨论中,还出现了一个有趣的观点。

很多人反对 AI 代码,理由是质量太差。但 Debian 开发者 Russ Allbery 认为,这个理由并不成立:人类确实可以写出比 AI 更好的代码,但也同样可以写出更糟糕的代码。他甚至调侃道:写毫无意义的垃圾代码不需要创造力,但要写出真正糟糕的代码,反而还需要人类的天赋呢。

还有开发者指出,AI 可能只是软件开发的又一次技术演进,但它也带来了新的问题,例如:如果代码是通过 Prompt 生成的,那么代码的“首选修改方式”是什么?

对此,Nussbaum 给出的答案是:应该修改 Prompt,而不是修改生成的代码。不过,这个答案无法令人信服——毕竟 LLM 的输出通常不是确定性的,且模型版本也会不断更新,即使使用同样的 Prompt,未来生成的代码也可能完全不同。

最终结果:Debian 决定先观望

从整个讨论来看,Debian 开发者在这个问题上远未达成共识,甚至连一个最基础的问题都没有统一:什么才算是 AI 生成贡献?

Nussbaum 表示,他最初提出决议,是因为社区中出现了一些针对 AI 用户的攻击。但经过一段时间交流后,目前讨论总体仍然理性,因此没有必要急于制定政策。

不过他也推测,如果未来真的进行投票,最终方案很可能会是:

允许使用 AI,但将附带一系列严格限制。

简体中文 English