Jev 替代品

cbjev

Laya 更快、标定更好的后继者——附带一个 GPL 前提

一句话结论

cbjev 是 Laya 的升级路径:同一架构家族,但每次调用只编码一次 state(而非每题一次),单题 3.0ms,选项重排导致的答案翻转率 0.2%(Laya 为 7.8%)。先确认两件事——它是 GPL-3.0-or-later;且英文 checkpoint 就是英文,非英文输入需要走内置 Router 切到多语模型。

cbjev 从 Laya 微调而来,修掉了它的两个结构性弱点:state 每次调用只编码一次(Laya 是每题一次),以及选项重排导致答案改变的比例从 Laya 的 7.8% 降到 0.2%。它还带着整个生态里最详尽的"诚实边界"章节——以及 GPL-3.0,这会让部分产品无法采用。

Train a decision model

A small non-autoregressive encoder with decision heads. No text generation at all — the classic classifier shape, rebuilt for natural-language options.

搜索别名

cbjevCBJevtomek7667/cbjev0010101010-1/cbjev

关键规格

Licence
GPL-3.0-or-later(checkpoint 从 Apache-2.0 的 Laya 微调)
Author
tomek7667
Backbone
ModernBERT / mmBERT,从 Laya 微调
Size
每个 checkpoint 约 800MB
Latency
单题 3.0ms · 500 token 文档上十题 11.4ms · 三十题 31.4ms
Wire format
cbjev-serve 提供 POST /v1/systemone
Install
pip install -e ".[serve]"

cbjev 对 Laya 与 Jev:逐字节相同的用例

cbjev 与 Laya 是在同一张 RTX 4090 上、15 个英文套件上并排测的。Jev 一列是第三方公开数字——项目没有 TypeSafe API 访问权限,并且明确说明了这一点。

cbjev 对 Laya 与 Jev:逐字节相同的用例cbjevJev
15 个英文套件平均准确率0.741(Laya 最佳 checkpoint:0.710)该套件集未公布
typed-decisions0.783(Laya:0.768)0.727(已公布)
平均标定误差 ECE,越低越好0.117(Laya:0.125)0.246
选项重排导致答案翻转的比例0.2%(Laya:7.8%)13%
单题 77 个选项0.6200.870
500 token 文档上十题延迟11.4ms(Laya:75.8ms)走网络 236–276ms

什么时候该选 cbjev

当你已经认定 Laya 的形态对,但想要更快更稳时选 cbjev——每次调用只编码一次 state 是带来这个变化的结构性改动。0.2% 的重排翻转率在生产里非常重要,因为它意味着一次打乱选项列表的重构不会悄悄改变你的决策。它的延迟优势恰好落在最痛的地方:长文档三十题 31.4ms,而 Laya 是 172.4ms。

什么时候该放弃它

先查许可证:GPL-3.0-or-later 对闭源产品是硬约束,而 checkpoint 又是从 Apache-2.0 的 Laya 微调而来,下游义务值得让法务读一遍。除此之外,cbjev 在它自己测的 15 个套件里有 4 个落后于 Laya;把 Banking77 全部 77 个意图塞进一题只有 0.620;英文 checkpoint 确实是英文——德语提示词注入样本是它错得最狠的地方,这也是内置 Router 会把非拉丁、非英文文本送进多语模型的原因。

三步接入 cbjev

01先解决许可证问题——闭源产品里用 GPL-3.0-or-later 是一个决策,不是一个细节。
02加载英文或多语 checkpoint,并用内置 Router 按语言分流,避免德语、日语或中文输入悄悄掉准确率。
03选项列表控制在三十条以内;如果答案稳定性比那点额外延迟更重要,打开 order voting。
python / 一次编码,多题并发
import cbjev

agent = cbjev.load()   # 英文 checkpoint;有 GPU 就用 GPU

questions = {
    "department": {
        "type": "choice",
        "instructions": "该由哪个团队处理?",
        "criteria": {
            "billing": "发票、付款、退款",
            "technical": "缺陷、故障",
            "sales": "报价、合同",
            "other": "其他全部",
        },
    },
    "churn": {
        "type": "noul",
        "instructions": "客户是否威胁取消?",
    },
}

state = {"subject": "发票 #4411 重复扣款",
         "body": "三月份被扣了两次。"}

res = agent.predict(state, questions)
print(res["answers"]["department"]["choice"])
print(res["answers"]["churn"]["noul"])   # P(true)

# 非英文输入:显式分流
from cbjev import Router
router = Router()
router.predict({"body": "Mir wurde zweimal abgebucht"}, questions)["routing"]
state 每次调用只编码一次,所以增加题目的代价远低于 Laya。建议每题选项不超过三十个。

关于 cbjev 的常见问题

cbjev 是 Laya 的 fork 还是独立模型?

它是从 Apache-2.0 的 Laya checkpoint 微调而来,并且仍能用 Laya 原始权重按其自身布局运行。但许可证不同:cbjev 采用 GPL-3.0-or-later,并继承相应义务,这对商业产品是实质差别。

到底快多少?

在同一张 RTX 4090 上、逐字节相同的用例里,它测的十个延迟场景全部更快:从长文档单题的 1.5 倍,到文档十题的 6.9 倍。短工单单题是 3.0ms 对 Laya 的 5.4ms;500 token 十题是 11.4ms 对 75.8ms。

0.2% 的顺序翻转率为什么重要?

因为选项顺序不是你代码里稳定的东西。列表会被排序、合并、重新生成;如果重排选项会改变决策,一次例行重构就会悄悄改变线上行为。cbjev 把它从 Laya 的 7.8% 降到 0.2%,并可选提供 order voting 进一步压低。

cbjev 承认自己哪些地方不行?

很多,而且它全都公开了:15 个套件里有 4 个落后 Laya;把 Banking77 全部 77 个意图塞进一题只有 0.620;对德语提示词注入文本较弱;一次调用内的题目之间可能互相影响;15 个套件里有 6 个的训练集进入了训练混合。它还注明训练混合是在"看着基准套件"的情况下迭代的。

来源

本页所有对比数字均为第三方公开口径或对公开仓库的阅读,不是本站实测。我们没有对 TypeSafe Jev 本体做过实测,且其主客户协议禁止利用其输出开发同类产品。