昨晚翻 DeepSeek 新开源的推理引擎,翻到 README 最后有一节小标题,叫「完整推理服务还需要,但本版本不含」。
我盯着那行字看了一会儿。
不是因为它藏了什么。恰恰相反,是因为它把「我给你的东西缺什么」一条条列在了发布页上。做架构二十年,我在厂商文档里读到的几乎都是「我们支持 XX」,第一次见有人把不支持的写进首页。
我的判断:开源交付物的边界正在被厂商写清楚,而它的来源没有任何人替你查——这两件事合起来,才是自托管真正的账单。
10 月 20 日,DeepSeek 把支撑自家生产服务的推理框架 DeepInfer 开源到 Apache 2.0,官方定位写得不含糊:支撑大规模生产服务的高性能推理框架,本次只给离线推理。
缺的三项很实在:KV cache 系统、prefill 与 decode 的分离调度、跨数据并行副本的负载均衡。
这三项恰好就是「能跑起来」和「能扛生产流量」之间的全部距离。我自己在腾讯云那台轻量服务器上用 Docker 部署过 AI 服务,单容器跑通只要一个下午;真要让它扛住并发、还要能扩副本,后面的调度和缓存全是另起炉灶的活。
开源给你的从来不是「能不能跑」,是「能跑到哪一步为止」。
厂商愿意把缺口写出来,自托管才第一次有了能照着对的清单。
同一份 README 里还有两个细节更影响选型。一是可复现性被做成引擎级开关:batch-invariant inference 加固定随机种子,能让同一输入在不同 batch 组成下输出一致,但它只支持 NVIDIA,国产卡路径没有。于是「要不要可复现」和「用哪家卡」被绑成了一个决策。二是 Ascend 950 与 SM100 并列一等公民,有独立依赖清单而非移植补丁,这一条的分量比任何跑分都重。
边界被写清楚了,来源没有。
10 月 19 日美国国土安全部发布命令,把 DeepSeek 产品从联邦民事机构里排除并移除,范围里明确写着「使用 DeepSeek 实现方案开发的第三方产品和服务」。但公告对微调、蒸馏这些情形怎么认定,一个字都没提。
我做过变电站的远程智能巡检系统,工业现场的规矩是每台设备都要能说清来历和版本。现在这套规矩被搬到了模型上,只是判定标准还没人给。
边界可以被写清楚,来源永远只能自己证明。
同一周,安全公司 ProjectDiscovery 自己做了一次实测:在一个 7B 开源模型里用 LoRA 埋后门,投毒样本占 20%,触发率 100%,干净任务准确率也是 100%,全程 2.5 小时、不到 8 美元。更小的模型上,1% 的投毒样本就有 75% 到 98% 的触发率,而干净准确率一动不动。
评测告诉你模型能不能干,不告诉你它诚不诚实。
最让我后背发凉的不是后门本身,是它的设计:模型只携带一个指向远程地址的链接,运营方可以在部署几个月后把载荷从无害探针换成凭据窃取器,模型本身一个字节都不用改。
他们引用的几项研究结论一致:投毒需要的样本数量不随模型变大而增长。
指望换个更大的模型就安全些,这条路已经被反复证伪。
防守只能放在运行时。作者特意把载荷放在一个几乎所有环境都白名单放行的代码托管域名上,就是为了让「域名白名单」失效。能拦住的只有一件事:这个进程能不能同时发外网请求和执行命令。
白名单挡不住一个本来就在名单里的地址,能挡住的是「发请求」和「执行命令」不在同一个进程里。
第一件:给在用的每个模型建一张三列清单。 来源、版本、有没有被改过权重。不用工具,一张表就够。DHS 那份命令问的就是这三列,只是它没说清楚怎么填——所以你得自己定义什么叫「改过」。
第二件:把「发起网络请求」和「执行本地命令」拆到两个不同的执行环境里。 这一条不花预算,改的是进程边界。上面那个后门实验里,唯一能拦住它的就是这个拆分,域名白名单完全无效。
第三件:把模型名从代码里提出来,做成可替换的配置。 这周 MiniMax 认领了匿名模型「太空兔」,那个模型在 10 月 5 日是突然下线的。你今天用的匿名模型,随时可能改名、改价、消失。