
GitHub是微软旗下推广AI辅助软件开发的代码托管平台,但最近对其Copilot工具的热情开始消退。
上周,产品经理卡米拉·莫雷斯在GitHub社区开启讨论,指出"一个影响开源社区的严峻问题:低质量贡献数量不断增加,给维护者带来巨大运营压力"。
GitHub希望从开发者社区获得帮助,以管理由生成式AI产生的低质内容问题。莫雷斯表示,很多维护者反映他们花费大量时间审查不符合项目质量标准的贡献,这些贡献往往无法遵循项目指南、在提交后很快被放弃,且通常由AI生成。
GitHub正在调查这一问题并开发相应解决方案。莫雷斯指出,GitHub考虑的选项包括:给维护者提供完全禁用拉取请求或仅限项目协作者提交的选项;从界面直接删除拉取请求的功能;更精细的拉取请求创建和审查权限设置;可能基于AI的分类工具;以及用于标记何时使用了AI工具的透明度和归属机制。
Voiceflow云基础设施负责人泽维尔·波蒂利亚·埃多表示,"用AI创建的拉取请求中只有十分之一是合法的,符合提交拉取请求所需的标准"。
curl项目创始人丹尼尔·斯滕伯格和Python安全开发者赛斯·拉尔森都曾公开反对低质量AI生成错误报告带来的维护负担。尽管斯滕伯格承认如果操作得当,AI错误报告可能有帮助,但curl项目最近关闭了错误赏金计划,以消除提交低质量错误报告的动机。
微软Azure容器上游团队软件工程师周家晓表示,AI代码提交正在影响开源维护者。他指出,维护者感到被夹在如今所需的严格审查要求和智能体或AI生成代码日益扩大的未来之间。主要问题包括:审查信任模型被破坏——审查者不再能假设作者理解或编写了他们提交的代码;AI生成的拉取请求在结构上看起来"没问题",但逻辑可能错误或不安全;逐行审查仍强制要求用于发布代码,但无法适应大型AI辅助或智能体拉取请求的规模;维护者对他们不完全理解的拉取请求感到不适,但AI使得提交大型更改而无需深入理解变得容易;认知负荷增加,审查者必须评估代码和作者是否理解代码;审查工作量比AI前更高。
Mozilla.ai机器学习工程师内森·布雷克指出,开源社区需要找到办法保持社区参与动力,因为AI正在执行传统上获得认可的编码工作,而贡献者只是负责撰写问题描述。他强调了保持知识共享的重要性,这是开源和GitHub如此特殊的原因所在。
GoCD主要维护者查德·威尔逊预计,由于OpenAI和Anthropic等公司推出的AI智能体,情况会变得更糟。他提到已经处理过一个与文档相关的拉取请求,在花费大量时间审查后才意识到它是"似是而非的废话"。
关于AI披露要求,威尔逊表示,如果没有办法轻松判断自己是否在与人类或AI机器人互动,开源社区的约定可能会被破坏。"我通常乐于帮助在问题中好奇的人,并在社交编码精神下引导他们做出贡献或找到解决方案,"他写道,"但当大语言模型使用缺乏广泛披露且日益自动化时,这基本上让我这样的人成为不知不觉的AI提示词编写者。这是荒谬的,正在导致社会信任大幅侵蚀。"
Q&A
Q1:GitHub为什么要考虑设置拉取请求关闭开关?
A:GitHub发现越来越多低质量的AI生成代码提交给开源项目,这些贡献往往不符合质量标准、容易被放弃,给维护者造成巨大的审查负担。GitHub希望通过提供工具帮助维护者管理这些AI生成的低质内容问题。
Q2:大语言模型生成的代码为什么难以审查?
A:AI生成的代码看起来结构正确,但逻辑可能错误或不安全。审查者还需要判断提交者是否真正理解代码,这增加了认知负荷。传统的逐行审查方法无法适应大型AI辅助代码的规模,使得审查工作比AI出现前更加繁重。
Q3:如何解决AI低质贡献对开源社区的威胁?
A:GitHub正考虑多项方案,包括允许维护者禁用或限制拉取请求、提供删除功能、建立更精细的权限设置、开发分类工具,以及建立透明度机制标记AI工具的使用。同时社区需要找到鼓励知识共享的方式,保持开源协作的精神。