DEV Community 上那篇《When AI Creates A Closed Source World》,七月发的,最近又被作者翻出来编辑。写的人是个 2009 年就注册 GitHub 的老账号,自称给开源贡献过 99 个包。他说自己现在得付钱才能访问那个“包含他自己作品的东西”——他把那东西叫 The Library,说他的 figtree 包以“显性和隐性方式”待在里面。
他从来没同意过这些代码被拿去训练。现在他要花钱才能碰自己作品的“预测衍生物”。
然后是另一件事。Anthropic 六月发布 Fable 5,三天之内美国政府用国家安全出口管制的理由把它全球下线。一个从自由贡献里长出来的模型,被当成出口管制清单上的敏感技术处理。
两件事摆一块,他的结论是:知识以开放、未同意的方式进去,以闭源、收费、政府控制的方式出来。
结论没错。错的是他接下去开的三条药方:要求披露训练数据、要求未来抓取事先 consent、要求对已取用内容补偿。
这三条听着像那么回事,实质全是沙子上盖楼。因为它们都建立在一个错误假设上——训练数据的问题是个知识产权问题,能用法律解决。
它根本不是。
先把一件事想透:你的代码“进了模型”到底是什么意思。不是复制,不是洗稿,甚至不是“压缩存储”。一个 LLM 训练完之后,权重矩阵里没有你的函数体,没有你的变量名,没有你的注释。有的是这些文本的统计形状——几十万行你的代码和另外几十亿行代码的聚合里,“这个 token 序列之后通常跟着什么”的概率分布。模型不存你的代码。它存的是你的代码留下的影子,跟几百万人的影子叠在一起,拍成一张模糊的长曝光照片。
这你自己能验证。去翻模型“复现训练数据”的案例,凡是一字不差背出来的,几乎全是在语料里出现过几百上千次的东西——圣经译本、莎士比亚、知名文档里被反复转引的段落。一个普通开源包,哪怕你写了 99 个,在语料里出现的次数少到模型根本不可能记住原文。它记住的是模式,不是文本。
而开源许可证管的是什么?管的是复制。MIT、GPL、Apache——条款核心都是“你复制我代码的时候要遵守什么”。它们从没管过“你统计我的代码、然后忘掉我的代码、只留下一个概率分布”这件事。
不是许可证写得不够细。是许可证诞生的时候,这件事在物理上不成立。你 2009 年点下“同意 MIT”的时候,人类还没有任何东西能吃掉你的 repo 然后变成一个会预测的东西。许可证是针对人类复制的社会契约,你现在拿它去管机器吸收——这不是补漏洞,这是拿一张只开过自行车罚单的交通法去判飞机失事。
所以那三条,第一条就立不住。“披露训练数据”——怎么披露?权重矩阵里没有你的 figtree,让谁披露、用什么格式披露?“未来抓取需要 consent”——抓取发生在训练之前,模型一发布,你拿什么去问它“你吃没吃过我的代码”?答案不存在于任何可查询的地方。“对已取用内容补偿”——账怎么算?按 token?按训练轮次?按下游推理调用?“取用”在一个统计模型里压根不是可计量的事件。
三条要求看着硬气,实际是本末倒置——先动情,后动脑,然后发现情感宣泄出来的诉求一个都落不了地。
而且还有个更深的坑:开源从来不是慈善。
我反复在说这件事——开源能活三十年,不是开发者善良,是因为这在工程上曾经划算。你把代码公开,因为:一,你一个人维护不了所有东西,需要别人帮你找 bug、发 patch;二,代码被越多人在越复杂的环境里用,你越早知道它哪里烂;三,公开仓库里每个 commit 都是简历,都是信用积累;四,你下一个项目的地基,直接踩在别人开放出来的代码上。
这是个循环。你放进去,你拿回来,拿回来的通常比放进去的多——bug report 的价值超过你写代码的时间,patch 的质量超过雇一个初级工程师,reputation 的复利超过任何一次跳槽涨薪。
LLM 把这循环打断了。它是个完美的消费者,同时是个零贡献者。吃掉整个语料库,不给你发 bug report,不给你送 patch,不在 issue 里讨论设计取舍,也不 fork 出去在你没想到的场景里改进完了 merge 回来。它吃进去开放的人类知识,吐出来一个你进不去的闭源模型。
真正疼的从来不是“代码被拿去训练没给钱”。疼的是你参与了那个循环三十年,循环另一头突然变成了黑洞。
想通这一层,就明白为什么“把仓库改私有”是个比问题更蠢的答案。
作者自己差点掉进去。他文章里写了,有一段时间觉得闭源才是未来,要停止免费训练替代自己的模型。然后他又拒绝了。不是道德,是实用——等你想闭源的时候,代码已经在权重里了。拉上窗帘,外面的模型上一轮训练里已经记下了你的脸。
你现在改私有,只会让下一个训练替代品的模型抓不到你,它拿别人的代码训出个能力跟你差不多的东西,你连“这模型有一部分是我的影子”这点谈判筹码都丢了。半桶水的反应就是这样——受了伤,第一反应是把自己关起来。这话我承认说得有点重,但道理没变:仓库改私有解决不了任何问题,只会让你丢得更多。
他还写了自己的出身——Ceaușescu 治下的罗马尼亚孤儿,一路走到几家大厂当工程师,把这一切归因于“那扇门是开放的”。好故事,但好故事不是工程机制。你不能用“门曾经为我开着”论证“门应该永远开着”——那扇门开着,是因为那时候开着在工程上划算。现在的问题不是有人道德不感恩,是那个“划算”被破坏了。要修的是“划算”。
真正刺骨的是 Fable 5。那事发生的时候我就知道坏菜了。六月发布,三天内以国家安全理由强制下线。从开放数据里长出来的东西,现在不只是商业资产,是地缘政治资产。政府有动力让它闭源——开放意味着别人也能用,而国家安全的意思是“只有我们能用的才安全”。
这才是要命的。商业上的不对称还能谈,还能抗议,还能换平台。可一旦国家机器把模型当管制技术,知识流动的方向就不由工程师说了算。你贡献过代码的那些模型,某天可能变成某国出口管制清单上的一行编号,你连查看自己贡献了什么物的权限都没有。这不是阴谋论。已经发生了。
评论里有人问“开源在栈里哪些位置还能不靠慈善活下去”,问得太对了。答案也跟直觉一致:基础设施层。PostgreSQL 的协议、Linux 的内核、HTTP 的规范——价值在运行中的系统里,不在文本里。模型能把 PostgreSQL 源码全吃了,吐不出来一个数据库。当知识的价值在文本里、在代码里、在“能生成”里,它就能被吸收;当价值在运行状态里、在协议里、在生态互操里,模型吸收再彻底也没用。
这就是那个缺失机制的起点:让开放的东西的价值,不再只停留在可被吸收的文本层。
x402 是个方向。作者回评论时提到它——机器把你的作品当权威来源去读时付费,人类 fork 不付费。这个区分是对的——人类 fork 会带回来 bug report 和 patch,机器读走什么都不还。把付费义务绑在“机器将你这个来源作为权威”这个动作上,而不是“读到”上,这是工程上能计量、能审计的一条路。但还只是雏形。
真正需要的东西比 x402 大:一个针对训练数据时代的开放协议,把旧许可证的逻辑——“你复制就遵守条件”——翻译成新逻辑——“你吸收就留下痕迹和回报”。这个协议可能不是法律文本,是技术机制:可验证的训练数据披露、协议层归因、或者让模型生成时带上它见过什么的来源标记。
我不知道这东西最终长什么样,这是实话。但我确定另一件事:靠情怀喊“开源是信仰”没用,靠律师信喊“我要告侵权”也没用。管用的是把这个缺失的机制造出来——让开放重新变成工程上划算的事。
那扇门开过,因为开着在工程上划算。现在它要关,不是因为 AI 坏,是开着的回报被打断了。你要做的不是站在门口骂 AI 关门,是去修那个把手。
我的态度很明确:别改私有仓库,别急着找律师算你的代码值多少钱,也别把时间浪费在“要求披露”这种注定打不中的诉求上。先把一件事想通——开源现在缺的不是条款,是机制。想通了,该写代码的回去写代码,该设计协议的回去搞协议。这门能不能修好,取决于你赌不赌它修得好。关了仓库跑路,只会让修好它的概率再低一点。
这不是工程,这是自证预言。
