开放复刻与 systemone 生态
这个栏目里其他页讲的是「怎么用」。这一页讲用哪一个 —— 以及为什么这个问题 比一年前更容易回答,也更容易答错。
一个接口变成了事实标准
POST /v1/systemone 这个形状已经不只是官方 SDK 的细节了。
它成了事实标准,原因是客户端的迁移成本接近于零:
换个后端只要改一个 base URL 环境变量,请求与响应的形状不变。
于是出现了几十个实现同一套接口的项目:有的是把任意开源大模型 「变成」决策模型(读 logits,不生成文本),有的是在开源基座上微调出专用权重, 有的是纯本地的推理运行时,还有 transpiler 一类把别的生态接进来的桥。
本地替代品的横向位置
公开的开权重复刻在参数量上跨了五个数量级 —— 从几十万参数到 27B:
| 实现 | 规模 | 许可 | 值得注意的点 |
|---|---|---|---|
| Laya | 非自回归,单次前向约 35 ms | Apache-2.0 | 非自回归 + RLCD 校准概率,PyPI / Hugging Face 可装 |
| von | 395M | — | 单次前向 < 15 ms |
| TinyJev | 596M | — | 指针头,返回可阈值化的校准置信度 |
| NanoJev | 0.6B | — | 一次前向返回完整概率分布,附训练流水线、权重与数据集 |
| Verdict | 118M | Apache-2.0 | 温度缩放 + split-conformal 弃权集;自承在 typed decisions 上输给 Laya |
| jevos | 1B(MiniCPM5 裁到 17 层) | MIT | GGUF q4_k_m 仅 619 MB,CPU 上短 54 ms / 长 220 ms |
| CLM | 8B | — | 报称延迟最多低 9 倍 |
| Jebadiah | 27B / 9B / 4B | Apache-2.0 | bf16 / GGUF / MLX 三种分发 |
几个具体到可以复算的数字:
- 一个 1B 的 CPU 实现(GGUF,619 MB)在短请求上 54 ms、长请求 220 ms, 而托管服务是 344 / 345 ms —— 但它的准确率是 0.815 vs 0.927, 而且只支持 yes/no 一种提问。
- 另一个开源权重在 308 条密封决策上是 33.1% vs 36.7%(约 13 ms)。
- 一个专用的表单填写模型(706,048 参数、2.8 MB)在它自己的任务上 拿到 99.7%,而通用模型是 83.6% —— 作者明确说明这是主场优势,不是普遍胜利。
这张表最该读出来的不是排名,而是量级。 「快 6 倍但准确率低 11 个点」 和「准确率接近但只支持一种提问」是完全不同的取舍, 而它们都能被描述成「一个本地的替代方案」。
合规率:一个不该被忽略的数字
生态热闹的时候,最需要问的是大家是不是真的遵守同一套接口。
有一份项目把 /v1/systemone 的语义固化成 48 条可检验的要求
(比如:Choice 各选项的概率按定义求和为 1;Score 的期望等于
概率加权和;选项个数在 2 到 255 之间;问题顺序变化时答案不变),
并提供了一个测试套件去检测任意一个自称兼容的服务。
它的实测结果是:
八个 star 最高的开源端口里,只有两个完全合规。
这条结论对两件事都有用。对客户端来说,意味着「换个 base URL 就行」 需要用测试套件确认,而不是假定。对做替代品的人来说, 它给出了一个比准确率更容易达到、也更少人做的差异化方向。
这对选型意味着什么
把上面的东西拼起来,选型的重心已经不在「哪个模型的分数高」上了:
- 接口是共同的,模型是可替换的。 那 48 条要求就是可替换性的定义 —— 先用套件确认,再谈别的。
- 壁垒移到了模型之外。 当模型层被商品化,真正难被复制的是 接口契约 + 阈值策略 + 在你自己的数据上做的校准。这三样恰好是本栏目 其他几页都在讲的东西,而且它们都在你的仓库里,不在供应商那里。
- 准确率的差距要放在正确的坐标里看。 「83.6% vs 99.7%」是专用模型在自己 主场上的成绩;「0.815 vs 0.927」是一个 CPU 上跑、只做 yes/no 的小模型。 这两句话要连着说,否则表就是误导。
生态的规模
目前公开的项目大约有 1,100 个(2026-09 的数)。
数量不是质量,也不是成熟度。 这个规模里包含大量单次提交、共享同一套脚手架
的项目:同一个作者在同一天放出一批仓库,共用一份 AGENTS.md、一个 commit 历史,
代码量远小于文档量。它们可能完全正当,只是还没被证明过。
挑选时按「有没有可跑的东西」筛,而不是按「有没有出现在某个清单里」。
一句话
模型层正在变成耗材,而接口、阈值与校准不是。 选型时把力气花在后三样上,前一样随时可以换。