Jev 替代品

Laya

19.3k stars 的 421M 编码器——也是最适合微调的那一个

一句话结论

把 Laya 当作"在自有几百条标注上微调"的快速 CPU 友好基座,而不是 Jev 的零样本开箱替代品。它的 base checkpoint 在 typed decisions 上只有 0.362(随机基线 0.318),而且其有序量表 `score` 输出存在明确的位置偏置——在 300 条日语测试里,排在首位的选项一次都没被选中过。

Laya 是 Jev 开源复现的旗舰:ModernBERT-large 421M 编码器加决策头,另有 322M 多语 checkpoint 覆盖 100+ 语言。一行 pip 即可安装,单次前向回答 choice / score / noul,CPU 上也能跑。它同时也是"自曝短板"最坦诚的项目——这一点比它的 star 数更有参考价值。

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.

搜索别名

layaLaya-MLXlaya-typed-decisionslaya-multilingualconvaiinnovations/laya

关键规格

Licence
Apache-2.0
Author
Convai Innovations
Backbone
ModernBERT-large(421M)· mmBERT-base(322M,多语)
Latency
T4 上 32.8–39.5ms/题 · 十题批处理 7.2ms · RTX 5090 上 22ms · M3 Pro CPU 上三题 66ms
Languages
多语 checkpoint 覆盖 100+ 语言
Wire format
laya-serve 提供 POST /v1/systemone
Install
pip install laya

Laya 对 Jev:用 Laya 自己公布的数字说话

以下均为第三方公开数字,不是本站实测。TypeSafe 主客户协议 2.3(b) 禁止利用其服务或输出开发同类产品,因此干净的 head-to-head 实测极少,本表任何数字都只是第三方主张。

Laya 对 Jev:用 Laya 自己公布的数字说话LayaJev
base 模型零样本0.362 / 0.342(低于多数类基线 0.461)该切分未公布
在该基准训练集上微调后0.7660.727(已公布)
单题 77 个选项(Banking77)0.4250.870
架构编码器,421M闭源托管
延迟几十毫秒,跑在你自己的 CPU 或 GPU 上走网络 70–500ms
单次调用成本硬件之外为零输入 $0.042/MTok

什么时候该选 Laya

当你手上有几百条标注样本、任务形态是路由或审核类判断、且硬件是现成的时候,选 Laya。它极小、覆盖 100+ 语言、多语 Router 能在 1ms 内挑对 checkpoint,`laya-serve` 又暴露同一套 `/v1/systemone` 契约,官方 TypeSafe SDK 可以直接指过来。微调之后它确实有竞争力——唯一的诚实提醒是:大家引用的那个漂亮分数是在它自己被评测的那个基准的训练集上微调出来的。

什么时候该放弃它

不要零样本上线;不要在没有自测位置偏置的情况下用它做有序量表 `score` 题;不要用它处理几十个选项的题——选项共享 192–256 token 的固定预算,每个标签只有三到四个 token。也别直接相信它报的概率:在日语业务邮件上,它的 `noul` 正确率低于"永远回答否";官方模型卡自曝 51 语言宏平均仅 0.227,高棉语更是置信度 0.952 而准确率 0.000。

三步接入 Laya

01装上并加载:`pip install laya`,然后 `laya.load("convaiinnovations/laya")`。v0.3.7 之后笔记本上加载约 4 秒。
02在自己的标注上微调。这一步才是把"接近随机"变成"可用"的关键——每类准备几百条即可,不需要研究团队。
03在留出集上重新拟合温度,并用内置 Router 按语言分流,让非拉丁文字进多语 checkpoint,而不是悄悄失败。
python / 一次前向三问
import laya

agent = laya.load("convaiinnovations/laya")

state = {
    "subject": "重复扣款:发票 #4411",
    "body": "三月份被扣了两次。今天退款,否则我们将取消订阅。",
}

questions = {
    "department": {
        "type": "choice",
        "instructions": "这封邮件该由哪个团队处理?",
        "criteria": {
            "billing": "发票、付款、退款",
            "technical": "缺陷、故障、系统错误",
            "sales": "报价、新合同",
        },
    },
    "urgency": {
        "type": "score",
        "instructions": "紧急程度如何?",
        "criteria": ["不急", "尽快", "正在阻塞业务"],
    },
    "churn_risk": {
        "type": "noul",
        "instructions": "用户是否威胁要取消?",
    },
}

answers = agent.predict(state, questions)["answers"]
print(answers["department"]["choice"], answers["department"]["confidence"])
print(answers["urgency"]["score"], answers["churn_risk"]["noul"])
三问一次前向。在你用自己的留出集重新拟合温度之前,把打印出来的 confidence 当作假设而不是事实。

关于 Laya 的常见问题

Laya 能直接顶替 Jev 吗?

接口兼容、架构思路一致,但准确率上不是开箱替代。它自己的 README 写着 base checkpoint 在 typed decisions 上只有 0.362 和 0.342,而随机基线 0.318、多数类基线 0.461。在你自己的标注上微调后才有竞争力,开箱不行。

为什么 Laya 的头条分数比 Jev 公布的高?

因为 0.766 来自 `laya-typed-decisions`——它在该基准的训练集上微调过,而 Jev 的 0.727 是零样本。这是两个不同实验,不是同一场比赛。独立 49 任务测试里,开源编码器整体落后很多:Laya 0.583,Jev 0.966。

Laya 支持日语吗?

部分支持。300 条日语业务邮件实测中,`laya-multilingual` 在四分类路由上拿到 0.747,可用。但同一轮实测里 `score` 的 RPS 为 0.232(比多数类基线还差),`noul` 正确率 0.543,而"永远答否"是 0.703。根因是选项位置偏置:在五种改写与顺序反转条件下,排在首位的选项在 300 条里只被选中 0 或 1 次。把最低档标签放到最后,或者干脆别用它做有序量表题。

温度标定能修好这些概率吗?

只能修标定误差,其他修不了。按(题型, 选项数)各拟合一个温度后,ECE 从 0.148 降到 0.087,`noul` 从 0.352 降到 0.012——而准确率一个点都没动。温度缩放改变的是分布的锐度,不是分布内部的排序,所以它治不了位置偏置。

那不用 Laya 该用什么?

如果你要同架构但更快、标定更好的版本,cbjev 从 Laya 微调而来,选项反转导致答案翻转的比例是 0.2%(Laya 为 7.8%)——但注意它是 GPL-3.0。如果完全没有 GPU,Von 用 395M 编码器在 CPU 上低于 15ms。如果你已经在跑开源大模型且完全不想训练,SemIf 或 AnyJev 走读 logits 的路线。

来源

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