Jev 风格决策引擎实践:分类器与大模型协同路由
作者基于开源模型自建 Lev 决策引擎,测试分类器在对抗样本、校准与弃答等场景下的失败模式,并设计升级模型路由到本地大模…
几周前 TypeSafe 发布 Jev 与暗指其「System One」分类模型:先用 BERT 风格编码器对一组预设选项打分,再用 softmax 输出概率,可在数百毫秒内完成一次结构化决策。Jev 用 Doom 实时演示展示了这种「快思考」模型的低延迟优势,但也引出一个老问题:当分类器置信度不足时怎么办?作者基于此思路,用本地开源模型与 llama.cpp 的 FFI 接口自建了同名思路的决策引擎 Lev,并加入升级(escalation)模型,把分类器回答不了的请求转发给本地大模型。
分类器实际做了什么
聊天大模型逐 token 生成答案,遇到有限选项的选择题反而是绕远路——先生成文本、再解析、再追问置信度,成本高且容易跑偏。ModernBERT 这类编码器只做一次双向前向,把每个选项的标记 token 拼在输入序列里,模型最后一层读取这些标记的表征,再用一个小头(head)映射成分数,softmax 一次性给出每个选项的概率。395M 参数的编码器处理几百 token 几乎不费算力,且成本随选项数增长缓慢。这些 checkpoint 还用强化学习做过校准训练,理论上 0.9 的输出概率对应「十次答对九次」。
分类器在哪几种场景下失灵
作者整理了几类一致出现的失败模式:
- 插值可以、演绎不行:分类器在训练分布附近表现稳定,但遇到双重否定或对抗性措辞就明显下滑。Lev 自建的 144 道三选一对抗题集上,编码器只拿到 61%–67%;而同一台笔记本上跑带思考模式的 2.5B 级别本地大模型能拿到 95%,代价是每次约 3 秒。
- 几乎不会弃答:当问「信息够不够回答」时,分类器几乎总答「够」,因为「信息不足」这一选项在训练中极少胜出。Lev 的编码器本应选 36 次却只选了 18 次;独立评测中,Jev 在强制不确定项上的弃答率仅 49.7%,而测试的几款大模型弃答率在 97%–100%。
- 位置偏置:打乱选项顺序后,Jev 约 13% 的选择会翻转,Lev 的编码器也有约 14% 翻转。任何在它之上构建的系统都需要把选项顺序归一化后再送入模型。
- 过度自信:softmax 输出并非真实赔率,分布一旦偏移就会失去校准。同一次独立评测中,Jev 最高的校准误差为 0.246;在 DAIR Emotion 基准上,Jev 给真标签分配零概率的比例高达 16%。
值得注意的是,TypeSafe 自己的评测是把 Jev 与两款前沿大模型的「共识」做对比,而不是和真值对比——所谓正确性,本质上被「和大模型一致」替代了。独立评测里,Jev 在 150 篇阅读理解上得 66%(与 Claude Haiku 4.5 持平),在 77 类银行意图集上得 76.3%,略低于 81.3% 的对照基线。
升级模型如何补位
Lev 的设计思路是:分类器跑得快但会犯错,遇到置信度低、对抗措辞或位置偏置触发翻转的情况,就路由到本地大模型重做一遍判断。代价是 3 秒左右的延迟换准确率显著提升,对多数交互场景是可接受的折中。整体来看,System One 分类器并非「不好」,而是有明确的适用区间:训练分布内的快速选择题、能容忍一定翻转的低风险任务。不在它擅长区间内的请求,应当被升级到一个推理更慢但更稳的模型,而不是指望分类器硬扛。
