Redis之父:不要陷入"反 AI"的炒作
原文:Don’t fall into the anti-AI hype 作者:antirez(Salvatore Sanfilippo,Redis 作者)
我热爱编写软件,一行一行地写。可以说,我的职业生涯就是一场持续不断的努力:写出精良、极简、以”人的温度”为根本特质的软件。我也希望社会不会遗忘那些落在最后的人。此外,我并不希望 AI 在经济上取得成功,我也不在乎当前的经济体系是否会被颠覆(说实话,如果它朝着大规模财富再分配的方向发展,我会非常高兴)。但是,如果我对软件和社会的理念妨碍了我的判断,我就无法尊重自己和自己的才智:事实就是事实,AI 将永远改变编程。
2020 年,我辞去工作,写了一部关于 AI、全民基本收入,以及一个在重重挑战中适应工作自动化的社会的小说。2024 年底,我开设了一个 YouTube 频道,专注于 AI、它在编程任务中的应用,以及它潜在的社会和经济影响。虽然我很早就意识到将要发生什么,但我以为在编程被彻底重塑之前,我们还有更多时间,至少还有几年。现在我不再这么认为了。最近,最先进的大语言模型(LLM)已经能够独立完成大型子任务或中型项目,几乎不需要人工协助,只要给它们一组关于最终结果应该是什么样的良好提示。你所能取得的成功程度,与你所做的编程类型有关(越独立、越能用文本表示的就越好:系统编程尤其合适),也与你向 LLM 传达问题的能力有关——即在头脑中构建问题的表征。但总的来说,现在已经很清楚:对于大多数项目,亲自写代码已经不再明智,除非是为了乐趣。
在过去的一周里,仅仅通过写提示词,并时不时检查代码、提供指导,我在几个小时内完成了以下四项任务——是几个小时,而不是几周:
-
我修改了我的 linenoise 库以支持 UTF-8,并创建了一个行编辑测试框架,它使用一个模拟终端,能够报告每个字符单元格中显示的内容。这是我一直想做、但难以证明其工作量合理的事情——毕竟只是为了测试我的一个业余项目。但如果你只需描述你的想法,它就能变成实实在在的代码,情况就大不相同了。
-
我修复了 Redis 测试中的偶发性失败。这是非常烦人的工作:与时间相关的问题、TCP 死锁情况等等。Claude Code 不知疲倦地迭代,直到复现问题,然后检查进程状态以弄清发生了什么,最终修复了这些 bug。
-
昨天,我想要一个纯 C 库,能够对 BERT 类的嵌入模型进行推理。Claude Code 在 5 分钟内就创建了它。与 PyTorch 输出相同,速度相当(慢 15%)。700 行代码,外加一个用于转换 GTE-small 模型的 Python 工具。
-
在过去的几周里,我对 Redis Streams 的内部实现进行了修改。我为这项工作写了一份设计文档。我试着把它交给 Claude Code,结果它在大约 20 分钟甚至更短的时间内就重现了我的工作(大部分时间还是因为我检查和授权运行所需命令的速度太慢)。
想要对正在发生的现实视而不见,根本是不可能的。在很大程度上,编写代码已经不再必要。如今更有趣的是理解要做什么,以及如何去做(而关于第二部分,LLM 也是很好的伙伴)。AI 公司能不能收回成本、股市会不会崩盘,都不重要。从长远来看,这些都无关紧要。某个独角兽公司的这个或那个 CEO 对你说了些令人反感或荒谬的话,也不重要。无论如何,编程已经永远改变了。
对于我写的那些被 LLM 吞噬进去的代码,我作何感想?能成为其中的一部分,我感觉很棒,因为我把这看作是我一生努力的延续:让代码、系统和知识民主化。LLM 将帮助我们更快地写出更好的软件,并将让小团队有机会与大公司竞争——就像 90 年代开源软件所做的那样。
然而,这项技术太重要了,不能掌握在少数几家公司手中。就目前而言,你的预训练做得好不好、你的强化学习是否比别人有效得多,都不是决定性的——开源模型,尤其是中国开发的那些模型,仍在与封闭实验室的前沿模型竞争(即使处于落后位置)。到目前为止,AI 的民主化程度还算足够,尽管并不完美。但是:情况会永远如此吗?这绝非显而易见。我对集中化感到恐惧。与此同时,我相信神经网络在足够大的规模下简直能够做出不可思议的事情,而目前的前沿 AI 内部并没有那么多”魔法”,不足以阻止其他实验室和团队追赶上来(否则就很难解释,为什么 OpenAI、Anthropic 和 Google 的成果多年来一直如此接近)。
作为一名程序员,我现在比以往任何时候都更想写开源软件。我想改进我那些因时间原因而被搁置的仓库。我想把 AI 应用到我的 Redis 工作流程中,改进 Vector Sets 的实现,然后是其他数据结构,就像我现在对 Streams 所做的那样。
但我为那些将被解雇的人感到担忧。目前尚不清楚其中的走向会是怎样:公司会尝试雇用更多人、构建更多东西吗?还是会尝试削减薪资成本,只留下更少但更擅长写提示词的程序员?而且,恐怕还有其他领域,人类将变得完全可以被替代。
那么,社会层面的解决方案是什么?毕竟创新无法被收回。我认为,我们应该投票给那些认识到正在发生什么、并愿意支持失业者的政府。而且,被解雇的人越多,要求选出能保证一定程度保护的政府的政治压力就越大。但我也期待 AI 可能带来的好处:科学的新进步,可以帮助减轻人类处境中的苦难——人类的处境并不总是幸福的。
无论如何,回到编程上来。我的朋友,我只有一个建议给你。无论你相信”正确的事”应该是什么,你都无法通过拒绝当下正在发生的事情来控制它。避开 AI 不会对你或你的职业生涯有任何帮助。好好想想吧。去测试这些新工具,认真地、花上几周时间去用,而不是用五分钟的测试来强化自己既有的观念。找到一种放大自己能力的方法;如果对你暂时不起作用,每隔几个月再试一次。
是的,也许你觉得自己曾经那么努力地学习编程,而现在机器在替你做了。但当你写代码写到深夜、只为看到项目跑起来的那一刻,你内心的那团火焰是什么?是”构建”。而现在,如果你找到了有效使用 AI 的方法,你可以构建得更多、更好。乐趣依然在那里,未曾改变。
点评:结合 AI 底层原理的分析
antirez 的判断建立在一周内的四个真实任务上,方向大体正确,但部分结论存在从轶事证据过度外推的问题。以下结合大语言模型(LLM)的底层原理,逐条分析文中关于 AI 的表述。
底层原理背景
LLM 的本质是自回归的下一个 token 预测器:Transformer 架构在海量文本与代码语料上训练,通过最大化下一个词元的概率来学习语言与编程的统计模式。代码能力并非来自对计算机科学的”理解”,而是来自训练分布内模式的高度压缩。在此基础之上,后训练(指令微调 SFT、人类反馈强化学习 RLHF,尤其是带可验证奖励的强化学习 RLVR)让模型学会”完成任务”;而 Claude Code 这类工具的核心是 agentic loop——模型在循环中调用工具(shell、编译器、测试套件),把执行结果反馈回上下文,据此迭代修正。理解这两点,就能看清文中哪些判断有原理支撑,哪些只是乐观外推。
一、基本正确的表述
1. “The degree of success you’ll get is related to the kind of programming you do (the more isolated, and the more textually representable, the better: system programming is particularly apt)”
译文:你所能取得的成功程度,与你所做的编程类型有关(越独立、越能用文本表示的就越好:系统编程尤其合适)。
正确,且与原理完全吻合。模型的全部”工作记忆”就是上下文窗口内的 token,因此任务越独立(对外部隐式依赖越少)、越能被文本完整描述,模型需要的信息就越可能全部落在上下文里。系统编程尤其合适还有两层原因:C/Rust 代码在训练语料中覆盖充分(分布内任务);且编译器与测试提供了可自动验证的反馈信号——这正是 agentic loop 和可验证奖励强化学习最有效的场景。
2. “your ability to create a mental representation of the problem to communicate to the LLM”
译文:你在头脑中构建问题的表征、并将其传达给 LLM 的能力。
正确。模型无法读取你未说出口的意图,prompt 与仓库上下文是它唯一的信息通道,输出的条件概率分布完全由输入塑造。所谓”提示工程”的本质,就是把你脑中的问题表征无损地编码进上下文。
3. 修复偶发测试失败的案例:”Claude Code iterated for all the time needed to reproduce it, inspected the state of the processes… and fixed the bugs.”
译文:Claude Code 不知疲倦地迭代,直到复现问题,然后检查进程状态……最终修复了这些 bug。
可信且典型。这类任务有明确的成败信号(测试通过/失败),agentic loop 可以在无人值守的情况下反复试错——机器不知疲倦的迭代恰好补上了人类最不愿意做的”复现偶发 bug”环节。这是当前 AI 编程最坚实的应用场景。
4. “the open models, especially the ones produced in China, continue to compete (even if they are behind) with frontier models of closed labs”
译文:开源模型,尤其是中国开发的那些模型,仍在与封闭实验室的前沿模型竞争(即使处于落后位置)。
事实层面正确(DeepSeek、Qwen 等开源权重模型确实持续逼近前沿)。Transformer 架构是公开的,训练方法通过论文与人才流动不断扩散,不存在可以长期垄断的理论壁垒。
5. “Test these new tools, with care, with weeks of work, not in a five minutes test where you can just reinforce your own beliefs.”
译文:去测试这些新工具,认真地、花上几周时间去用,而不是用五分钟的测试来强化自己既有的观念。
合理且重要的建议。agentic 工具有真实的学习曲线(如何切分任务、提供上下文、设置验证环节),五分钟的随意测试几乎必然落在模型的能力盲区上,只会强化测试者的先验偏见。
二、存在问题或值得商榷的表述
1. “Writing code is no longer needed for the most part.” / “for most projects, writing the code yourself is no longer sensible, if not to have fun.”
译文:”在很大程度上,编写代码已经不再必要。” / “对于大多数项目,亲自写代码已经不再明智,除非是为了乐趣。”
这是全文最过度的泛化。问题有三:
- 样本偏差:支撑该结论的只有四个任务,且它们高度同质——都是定义清晰、可自动验证、且在训练语料中覆盖充分的分布内任务。从这样的样本推出”most projects”(大多数项目)不成立。新颖算法、私有框架、安全关键系统、需求模糊的探索性项目,都是模型性能显著下降的分布外场景。
- 验证成本被低估:antirez 自己的描述就暴露了矛盾——他并非放手不管,而是”inspecting the code to provide guidance from time to time”(时不时检查代码、提供指导)。LLM 会幻觉:生成貌似合理但语义错误的代码,且没有内在的真值校验机制。生成与验证是不对称的,阅读并确认别人(或机器)写的代码本身就需要编程能力。”写代码不再必要”实际上把瓶颈从”写”转移到了”审”,而后者并没有消失。
- 能力边界不稳定:同一模型在不同任务上的成功率方差极大,用”一周顺利的经历”概括”大多数项目”,属于典型的幸存者偏差。
2. “Claude Code created it in 5 minutes”(纯 C 实现 BERT 推理)与”it reproduced my work in, like, 20 minutes or less”(从设计文档重现 Redis Streams 改动)
译文:”Claude Code 在 5 分钟内就创建了它。” / “它在大约 20 分钟甚至更短的时间内就重现了我的工作。”
两个案例真实,但震撼程度需要打折,且 antirez 未提及两点:
- 分布内性质:BERT 类模型的推理实现是训练语料中被反复书写的标准模式(矩阵乘、softmax、层归一化),GTE-small 是公开模型。这更接近”高速检索并重组已知模式”,而非从零创造。
- 数据污染的可能:Redis 是高星开源项目,Streams 的实现与讨论很可能已进入训练数据。让模型”重现”一篇设计文档描述的工作时,无法排除它部分是在回忆而非推理。用这类案例衡量模型对全新问题的解决能力,会系统性高估。
3. “It does not matter if AI companies will not be able to get their money back and the stock market will crash. All that is irrelevant, in the long run.”
译文:”AI 公司能不能收回成本、股市会不会崩盘,都不重要。从长远来看,这些都无关紧要。”
部分错误。”能力不会消失”是对的,但经济学并非无关:当前 API 的低价很大程度上由巨额资本补贴支撑,如果商业模式崩塌,服务定价、可用性与迭代速度都会直接受冲击——对依赖这些工具的开发者而言,这非常”有关”。技术趋势与经济可持续性是两个独立变量,不能因前者确定就断言后者无关。
4. “there is not enough ‘magic’ inside current frontier AI for the other labs and teams not to catch up (otherwise it would be very hard to explain why OpenAI, Anthropic and Google are so near in their results)”
译文:目前的前沿 AI 内部并没有那么多”魔法”,不足以阻止其他实验室和团队追赶上来(否则就很难解释,为什么 OpenAI、Anthropic 和 Google 的成果多年来一直如此接近)。
观察正确,推论过强。头部实验室基准分数接近确实符合 scaling law 的预测(相近算力 + 相近数据 → 相近能力),但分数趋同还有更平庸的解释:评测基准饱和与面向基准优化会让实际差距被掩盖。此外,”没有魔法”低估了数据清洗配方、后训练管线、工程基础设施与人才密度构成的真实壁垒——这些不公开、难复制,正是开源模型”仍在追赶”的原因。架构公开不等于能力可复制。
5. “LLMs are going to help us to write better software, faster…“
译文:”LLM 将帮助我们更快地写出更好的软件……”
“faster”(更快)大体成立,”better”(更好)则没有保证。已有实证研究观察到 AI 辅助下代码流失率(code churn)与复制粘贴比例上升、细微缺陷增多的现象。模型以”通过测试”为目标进行优化,并不天然追求可维护性与简洁性——而后者恰是 antirez 自己一生推崇的”well written, minimal”(精良、极简)的软件。更快的产出与更好的软件之间,仍隔着人的审查与品味。
小结
antirez 对当下能力边界的直觉(什么任务适合 AI、上下文与验证为何关键、不要凭五分钟体验下结论)有扎实的原理支撑;他的偏差在于把四个分布内、可验证任务的成功外推为”编写代码总体上不再必要”,并低估了验证成本、幻觉风险与数据污染对其案例震撼力的稀释。更准确的表述或许是:写代码的角色正在从”生产者”不可逆转地转向”规格制定者与验证者”——这比”代码不再必要”更接近事实,也足以支撑他”编程已被永远改变”的核心论断。
Enjoy Reading This Article?
Here are some more articles you might like to read next: