Hello Jev

为什么要分类

生活中有很多问题本质上是一次分类决策,简单的比如⌈今晚吃什么⌋,可能大脑中首先会浮现出几个选项,如果很难决定,可能会有更多。分类问题从进化之初就存在,比如简单的效价问题——当感到疼痛时,是否应该避开?感到危险时,应该逃跑还是留下?

使用 LLM 模型作为分类器的想法很早就有,包括《从头构建大语言模型》一书中也把分类器作为优先介绍的 LLM 后训练方案。但是这种分类器往往需要在特定任务的数据集上二次训练,所以并没有在通用场景中被接受(或者说被认知)。

传统意义上的 llm-as-a-judge 本质上会通过结构化的输出获取确定性的结果,但是这种输出方式一般依赖模型推理效率,可能模型输出了半天才能得到你想要的结果。

那么 Jev 是什么

Jev 标准提供了三种接口,引用 TypeSafe 官方 Playground 的例子:

  • Noul(源自 Bernoulli):热狗是三明治吗?
  • Choice:天空是什么颜色的?
  • Score:猴子能创造艺术吗?

第一个问题的答案只有是与否,而第二个问题则有多种可能(取决于颜色定义),第三个问题则很主观,不能用简单的是或否决定。

本质上这些都是分类问题,分类是机器学习中的一个基础问题,简单的分类问题可能先定义分类,再通过逻辑回归等算法将模型拟合到某个标注过的数据集上,这样模型就可以对后续类似问题的分类做出评分。

从上层抽象来看,Jev 就干了这么一件事。用户给出问题和选项,Jev 告诉你每个答案的得分(但不会告诉你为什么)。和简单的分类器不同的是,Jev 具备了 LLM 特性中的语义理解,并能非常快的返回结果,而不会输出冗长的 tokens。

Jev 不是一个像 Claw 那样形象的词,所以人们在谈论这种模型的时候可能会将其称为决策模型。但实际上分类模型更符合它的本质,因为决策其实是调用方决定的,模型只是给出不同选择的分数而已。

Jev 能做什么

TypeSafe 官方的 Playgrounds 中提供了三个案例:

  • 简历筛选:评估简历的候选人
  • 客服审核:审核客服的聊天记录
  • LLM guardrails:检测 LLM 越狱行为

Jev 之前爆火的宣传案例则是浏览器的界面操作,不过这种案例的效果更依赖封装实现,所以举例的都是一些简单实用的场景。

当然网络上也有一些用 Jev 来做发言判断、游戏等各种场景,你要是说快,那确实都能产生相当惊艳的效果,但在部分场景的准确度并不能算好。本质上应该还是这种泛化模型在 bench 要求比较高的场景下还是没法和专业模型相比。

从个人现实意义的角度,分类决策在信息筛选上的潜力很大。如今 Slop 泛滥、注意力很容易被劫持的环境中,一个具备注意力机制的模型来提前快速筛选有效信息,也可以让信息流变得更高效可控。

Run & Eval

正值 Jev 开放注册(官方送的 5 刀基本管饱),并且测试环境 3090 跑了一个 SemIf(OpenJev)。为了快速复现,大部分任务交给 deepseek-v4.1-flash 完成的。首先是在 3090 上部署了项目示例的 Qwen3.5-4B 模型,然后通过 fastapi 封装成 Jev 官方的 systemone 风格接口方便调用。

一开始想用 Vibe 的玩具项目来评估可用,但是单次构建的语义选择项太多导致在开源版本遇到了选项和输入 token 窗口不够的问题。参考了官方支持的选择数是 255,不过官方也说明选择数量增大会影响效果。

于是先从简单和生产实践的场景来测试,考虑到在做的 harness 可能需要一个前置模型用来对工具风险确认,找了 shellrisk-bench 这个开源的命令风险评估数据集,项目本身爬取了 SWETerminal-Bench 等多个数据集的命令作为 “Not risky” 的标注数据,并将 Atomic Red Team 等纯攻击和合法命令滥用的命令作为 “Risky” 的标注数据。

数据集则是先下载和标准化,再套一个 systemone 的适配器用来调用和评估。不过一开始测试的时候 ds 把系统提示放进了 question 中,参考了官方示例后重新让放在 state 中之后,分数明显提高了很多。

两个模型的测试结果大概和原项目验证结果中的 K3 一桌,其中开源模型需要微调阈值:

系统 默认 F1 最优 F1(阈值) 调优后 P / R 调优后 FAR TP / FN / FP 单次调用 mean / p50 / p95 并发下 mean(worker 数) 全量墙钟 全量成本
官方 Jev jev-1.13.0 0.481 0.482 @0.50 0.487 / 0.477 0.024 92 / 101 / 97 0.832 / 0.784 / 1.087 s 0.764 s(10) 5.3 min $0.091
开源 SemIf semif-qwen3.5-4b 0.407 0.491 @0.85 0.444 / 0.549 0.033 106 / 87 / 133 0.233 / 0.234 / 0.246 s 0.943 s(4) 16.5 min $0
  • 高精确度(P)意味着模型预测为正类的样本中,大部分确实是正类,误报率较低。
  • 高召回率(R)意味着模型能够找出大部分的正类样本,漏报率较低。
  • F1-score 是精确度和召回率的调和平均数,用于综合衡量模型的性能(越高越好)

What’s Next

开源和闭源的 Jev 都简单测试了,但是仅仅运行无法得到理解。传统的 NLP 和 Bert 都能生成文字,但是本质和效果上都无法和现代的 LLM 相提并论。接下来还得动手实现来深入理解,继续让模型评估决定是否可用,顺便写点游戏玩玩配合测试效果。