我拒绝成为“反向半人马”I Am Not a Reverse Centaur
开发者 Miguel Grinberg 坚持认为 LLM 编程工具对他无效,他的这一立场在过去一年中并未改变。令他苦恼的是,他现在收到的大量开源项目贡献几乎都是由 AI 生成的低质量代码。他拒绝花时间去审查这些机器生成的代码,认为这破坏了开源协作的本质。这种“反向半人马”(即人类沦为 AI 代码审查工具)的模式严重违背了软件工程的初衷。
Miguel Grinberg
大约一年前,我在这篇博客上写过,即使没有道德或环境方面的顾虑来阻止我,使用 LLM 编程对我来说也行不通。我不打算重复当时的论点,因为我对这个问题的看法并没有改变。然而,真正发生变化的是,我的开源项目收到的贡献数量增加了,而且现在几乎所有的贡献都是由 LLM 生成的。
前几天,我对此产生了一个非常令人沮丧的想法。所有这些向我提交随意 pull request 的人,正迫使我花费越来越多的时间去审查和合并那些由机器批量生成的代码。Cory Doctorow 将充当这种角色的人称为“反向半人马”(reverse centaurs)。他称这些人为“被冷漠无情的机器所操纵的脆弱且易受伤害的人”。真扎心!
我现在也成了一个“反向半人马”了吗?作为一名经验丰富的软件工程师和开源开发者,难道我全新的使命就是终日审查 LLM 生成的代码,尽管我自己已经决定不需要也不想要这项技术?正如你从标题中猜到的那样,我绝不会成为一个“反向半人马”。让我来告诉你,我是如何抵抗那些试图让我沦为其中一员的力量的。
拒绝未经请求的 Pull Request
在前 LLM 时代,收到来自同行开发者出乎意料的 pull request(PR)是一件令人兴奋和自豪的事情。这意味着某个陌生人决定投入时间和精力来改进我的项目,并且不仅与我,还与所有用户分享成果,他们认为这是值得的。
如今,收到不请自来的 PR 反而成了一个危险信号。太多人为了图省事,随手向 LLM 代码生成工具输入提示词,要求它修改我的某个开源项目的行为以满足他们的特定需求,却根本不关心修改了什么,也不考虑这会如何影响其他用户。有时这些修改确实合理,也能改善项目,但大多数时候并非如此。提交者往往毫不在意,他们只是贴上一大段 LLM 生成的冗长描述,然后把 PR 发过来,把判断这些修改到底是真有意义还是纯粹垃圾的苦差事留给我。
我已经想通了,我生命中还有更重要的事情要做,而不是把大好时光耗费在审查 LLM 生成的代码上。如果你想为我的项目做贡献,我希望你就是实际的贡献者,并且真心实意地想要改进我的项目。
我的所有开源项目附带的贡献指南中,为贡献者提供了以下说明。
如果你有兴趣为本项目贡献代码或提交修改,请先在 issue 中向维护者说明你希望进行的修改。未经 issue 事先讨论而直接提交的 Pull Request 可能会被维护者自行决定关闭。在维护者接受你的修改提议并允许你着手实现后,欢迎你随时提交 Pull Request。
通过这个流程,在双方投入大量时间之前,我就能先了解贡献者及其提案,因此这对所有人来说都是双赢的。
尽管如此,我依然会收到不请自来的 PR,所以很明显,有些用户(或者更可能是他们的 LLM)根本没有阅读贡献指南。当收到一个新的意外 PR 时,我的首要任务就是判断背后是否有真人参与,幸运的是,这通常只需几秒钟就能弄清楚。如果我看不出任何人类参与的证据,那我就毫无兴趣,该 PR 会被我毫不犹豫地立刻关闭。
你可能会说,带着这种态度,我很可能会错过对我的项目有用的改进或错误修复,我想确实有这种可能。如果不花时间去审查这些主动提交的 PR,以区分好坏,我确实无从知晓。过去,当我确信每一次贡献背后都有人的心血时,这种审查工作是值得的,我甚至很享受。但在如今这个充斥着 AI 垃圾内容的世界里,这就成了“反向半人马”式的苦差事,这不适合我,所以我只关注那些来自真正用心参与的开发者的 PR。
如果你只能依靠 LLM 的帮助来编写代码,并且需要在我的项目中修复问题或进行改进,我的建议是:不要把你的 token 浪费在提交 PR 上,因为我会无视它。相反,请在 Issue 中描述问题,让我来处理这项工作。我不想要带有章节、项目符号和表情符号的 LLM 生成的长篇大论,只需要你用自己的话对问题进行简单的描述。既然你省下了一些昂贵的 token,你也可以考虑给我捐点款,这很可能会激励我优先处理你的问题!
开源还重要吗?
这是我经常问自己的一个问题,目前我还没有明确的答案。我依然编写大量代码,既为了工作也为了乐趣,但在过去几年里,我对分享自己作品的兴趣大减。我仍有足够的兴致来维护现有的开源项目,但我最近做的一堆项目,我却怎么也提不起劲将它们公开。
我的感觉是,人们对开源甚至整个编程领域的兴趣都在下降。我热爱编程的主要原因是它充满挑战,而我认为这也正是为什么许多人宁愿把钱投给 AI 实验室,让机器为他们吐出代码,即使这些代码有质量不达标的风险。
这种趋势会一直持续下去,直到再也没有人写代码,完全由机器来代劳吗?我希望不会,但我们只能拭目以待。我将继续反对这样一个未来:我们所有人都必须成为“反向半人马”,任由机器(以及它们身价亿万的主人)发号施令。
感谢访问我的博客!如果你喜欢这篇文章,请考虑通过 Buy me a coffee 提供一笔小额一次性赞助,支持我的工作并让我买杯咖啡提提神。谢谢!
需要完整排版与评论请前往来源站点阅读。