实测:Jev 与 Laya 对比,以及测试两者级联方案
我前面写过 Jev(TypeSafe 的 System One 模型)和 Laya(Convai 的开源同类)。两边都有实测,但从没放在同一批题上比过。
这次做了:同一批 40 条中文客服消息、同一套分类标准、同一个问题措辞,分别跑 Jev(云端 API)和 Laya(本地 MLX,M4 Max),然后把两者拼成一个级联。
结论先给:级联能在准确率上与纯 Jev 持平(78%),同时快 1.8 倍。
但它的失败模式也很具体,下面都写清楚。
一、先说单模型的结果
纯 Jev:31/40 = 78%,平均置信度 0.88,延迟 588 ms
纯 Laya:23/40 = 57%,平均置信度 0.71,延迟 7.6 ms
按难度拆开,差距位置很明确:
清晰题(单一诉求):20 条,Jev 100%,Laya 75%
模糊题(多诉求):10 条,Jev 70%,Laya 60%
边界题(「你好」「在吗」「???」):10 条,Jev 40%,Laya 20%
Jev 在清晰题上满分,而且置信度经常是 1.00(这次 20 条里大量 1.00)。Laya 也对了不少,但置信度在 0.75-0.99 之间浮动。
边界题两家都差(40% 和 20%)——「你好」这种消息本来就没有明确类别,是题目本身的问题,不是模型的。
二、一个关键对照
同一句话,两家的分歧很说明问题:
我要退款,东西还没发货。
Jev → billing (0.98) ✓
Laya → logistics (0.92) ✗
这句同时含两个诉求。Jev 抓住了排在前面的「退款」,Laya 被后面的「没发货」带走了——而且置信度高达 0.92。
这是 Laya 的典型失败模式:信息量增加时,判定被第二个信号盖过,但置信度没有相应下降。
三、级联怎么搭
输入 → Laya 本地(7.6ms)
├─ conf ≥ 阈值 → 直接采信 Laya(7.6ms,免费)
└─ conf < 阈值 → 升级到 Jev(588ms,更准)
代码就几十行,核心是这一段:
first = laya.ask(state, question, criteria)
if first[“confidence”] >= threshold:
return first # 本地解决
return jev.ask(state, question, criteria) # 升级
关键参数只有一个:阈值。而这个阈值不该拍脑袋,应该从数据扫出来。
四、阈值扫描结果
纯 Laya:升级率 0%,准确率 57%,延迟 8 ms(快 77 倍)
阈值 0.30:升级率 32%,准确率 68%,延迟 196 ms(快 3.0 倍)
阈值 0.40:升级率 42%,准确率 75%,延迟 254 ms(快 2.3 倍)
阈值 0.50:升级率 50%,准确率 75%,延迟 298 ms(快 2.0 倍)
阈值 0.60:升级率 55%,准确率 78%,延迟 327 ms(快 1.8 倍)← 甜点
阈值 0.70:升级率 57%,准确率 75%,延迟 341 ms(快 1.7 倍)
阈值 0.80:升级率 62%,准确率 75%,延迟 370 ms(快 1.6 倍)
阈值 0.90:升级率 72%,准确率 75%,延迟 428 ms(快 1.4 倍)
阈值 0.95:升级率 75%,准确率 75%,延迟 443 ms(快 1.3 倍)
纯 Jev:升级率 100%,准确率 78%,延迟 588 ms
阈值 0.60 是甜点:准确率和纯 Jev 一样(78%),但只升级 55% 的流量,平均 327ms。
注意 0.70-0.95 那几档:升级率涨了,准确率反而没涨(都是 75%)。原因是 Laya 的置信度-准确率曲线不是单调的:
置信度 0.00-0.30:13 条,准确率 31%
置信度 0.30-0.50:7 条,准确率 43%
置信度 0.50-0.60:2 条,准确率 50%
置信度 0.60-0.70:1 条,准确率 100%
置信度 0.70-0.80:2 条,准确率 50%
置信度 0.80-0.90:4 条,准确率 75%
置信度 0.90-1.01:11 条,准确率 91%
低置信度确实意味着不可靠(31%),高置信度也确实可靠(91%)——但中间那段是乱的,因为样本太少。所以阈值调太高只是在多花钱,没有多买到准确率。
五、级联抓不到什么
这是必须写清楚的部分。阈值 0.60 时:
Laya 的 17 个错判,级联能拦下 14 个,漏掉 3 个。 漏掉的是高置信度错判,其中包括那句「我要退款,东西还没发货」(0.92,被当成可信答案直接采信)。
阈值提到 0.90 能拦到 16 个,但代价是升级率涨到 72%,几乎等于全走 Jev。
所以级联不是万灵药:它拦得住「知道自己不确定」的错,拦不住「自信地错」。
而”自信地错”这件事,Jev 也会:这次的 9 个错判里,包括「接口一直返回 500」判成了 tech(对)而 Laya 判 billing(错);但也包括「怎么升级?登录也不行了」两家都判错。换模型不能替代人工定义清楚问题。
六、最优阈值因场景而异
把 40 条按难度分开扫,最优点完全不同:
清晰题:最优阈值 1.01(即永不升级),准确率 100%,升级率 100%
模糊题:最优阈值 0.60,准确率 80%,升级率 50%
边界题:最优阈值 0.30,准确率 40%,升级率 90%
清晰题上 Laya 的 75% 不够用,但升级后 Jev 给到 100%——所以单看这个维度反而应该全升级。 而边界题本身没答案,升级也救不了。
这说明单一全局阈值是一个折中。真要上生产,应该按消息特征分流:先判断这条属于哪一类难度,再决定走哪条路。
七、什么时候该用哪个
离线、百万级调用、成本敏感 → Laya(7.6ms、免费、本地)
准确率优先、流量不大 → Jev(78% 对 57%)
要平衡 → 级联,阈值 0.60(准确率持平,快 1.8 倍)
安全、合规敏感 → Laya(数据不出本机)
边界与短消息为主 → 都不理想,该先改问题定义
八、这轮实测的三条教训
第一,同一批题必须一起测。 我们单独测 Laya 时结论是”置信度≥0.7 时准确率 86-100%,可以用”。加了 Jev 对照才发现:Laya 在 0.70-0.80 档只有 50%——之前的乐观结论是小样本造成的。
第二,“信息越少越自信”要单独防。 Laya 在「退款。」这种极简输入上给 0.97 且正确,在「我要退款,东西还没发货」上给 0.92 却错误。输入信息量增加时,要多留一个心眼。
第三,级联的收益来自流量结构。 我们这批题里 55% 的请求能被本地处理掉。如果你的真实流量以清晰题为主,这个比例会更高,级联的收益也更大;如果以边界/模糊题为主,级联几乎等于全走 Jev,不如直接上 Jev。
这次的基准集(40 条)、20 个实验脚本、级联代码和全部原始输出都已经开源在 GitHub 上,任何人都可以拿自己的数据重跑一遍——包括推翻我们结论的那两项。
链接
本刊实测仓库(基准集、20 个实验脚本、级联代码、原始输出全部公开):https://github.com/yibie/laya-jev-lab
Laya:https://github.com/NandhaKishorM/laya
laya-mlx(本地端口):https://github.com/mizorewww/laya-mlx
Jev 官方文档:https://docs.typesafe.ai/
本刊 Jev 系列:https://x.com/yibie/status/2100541283081023936
#LocalLLM #typesafeai
原文信息
作者:一别(@yibie)
原文地址:
楼主辛苦了,内容很有参考价值。
整理得太全面了,省了我不少时间。