世界变了、Linus妥协了?AI代码可以进Linux内核,但出了事人来背

背景:AI代码贡献引发争议

随着AI工具的普及,诸如GitHub Copilot等代码生成系统开始广泛被开发者使用。这种技术虽然提升了开发效率,但也引发了代码质量、版权归属和安全性等问题。在开源社区中,尤其是Linux内核开发群体中,围绕AI生成代码的争论持续了数月。

  • AI代码泛滥:在多个开源项目中,AI生成的代码造成了大量错误甚至无意义的提交,被社区戏称为“AI slop”。
  • 社区应对措施:一些项目开始自动拒绝AI生成的PR,例如白板工具tldraw,而Node.js和OCaml等项目也因大规模AI补丁引发了维护者的讨论。
  • Linux的态度:此前Linus Torvalds对于在内核开发中使用AI工具持谨慎态度,但项目维护者最终还是达成了一项正式政策。

内核新政策:允许AI辅助,但强调责任归属

根据本周在Linux内核项目中更新的文档,开发者可以使用AI辅助编写代码,但必须遵守严格的披露规则。这项政策并非鼓励AI,而是对现实的一种接纳。

  • 明确允许AI辅助:开发者在提交代码时,可以使用AI工具(如Copilot),但必须在提交信息中标注“AI-assisted”。
  • 责任归属清晰:若AI生成的代码出现问题,提交者必须独自承担责任。Linus强调,AI只是工具,问题永远在人
  • 不设特殊规则:他反对为AI制定额外的审核流程,认为这些规则对“守规矩的人”才起作用,无法真正阻止那些提交垃圾代码的行为。

Linus的立场:工具不背锅,开发者必须负责

Linus Torvalds并非反对AI技术,他反对的是将AI视为特殊议题,以及试图用文档来“规范AI行为”的幻想。

  • AI只是工具:他将AI比作编辑器或编译器,认为它本质上与其他开发工具无异。
  • 不信任“强制标注”机制:有人提议要求强制披露AI使用情况,Linus认为这只会让守法者多走流程,而恶意或低质量提交者根本不会遵守。
  • 强调开发者责任:无论AI生成的代码是否被接受,最终的审核和责任必须由人类开发者承担。

现实影响:开源社区的未来挑战

Linux内核的这一政策在开源社区中具有标志性意义,表明主流项目开始尝试接纳AI工具,但依然保持对质量与责任的控制。

  • 对AI工具的开放姿态:其他项目可能会效仿Linux的做法,不再完全排斥AI,而是设定使用边界。
  • 维护者压力上升:AI生成的代码可能隐藏深层问题,维护者需要更加谨慎审核。
  • 开发者技能要求提高:AI生成的建议需要开发者具备更强的判断力,不能盲目采纳。

未来展望:AI与人类协作的边界探索

Linux内核的新政策并未解决AI代码的所有争议,而是为社区提供了一个务实的起点。AI与人类协作的边界仍在探索之中。

  • AI推动厂商合作:Linus提到,AI甚至迫使NVIDIA这样的公司更加认真对待Linux内核开发规范。
  • 持续质量监督:社区仍需建立更有效的机制来识别和处理低质量AI代码。
  • 政策可能演进:随着AI技术发展,内核项目的AI政策也可能在未来进一步调整。