ESC
开源 2 分钟阅读

openjev:在家用一张 3090 跑类似 Jev 的语义决策?

开源项目 openjev 用开放模型复现 TypeSafe 闭源语义决策服务 Jev 的接口模式:4B 模型一次前向传播直接读取带类型选项的概率,无需生成文本。单张 RTX 3090 上读取 21 项二元标准仅需 1.023 秒,比自回归生成 JSON 快 5.21 倍;在 TypeSafe 公开子集一致率达 0.845,接近官方 0.883。

来源:GitHub

OpenJev

我们能在家里用一张 3090 跑类似 Jev 的东西吗?

哇!无需等待名单。今天就在浏览器里运行。

实测回放:类型化决策同时出现,而 JSON 逐 token 流式输出

同一个冻结的 4B 模型 · 同一个状态 · 同样 21 个问题 · 分别独立计时,回放中在 t=0 对齐

某些 AI 公司让你排队等候选名单;OpenJev 今天就能在浏览器里运行

大多数 agent 决策都很小:把这个请求路由到这里、把那个重试一下、证据是否支持 X? 聊天模型可以回答这些问题,但它要花时间生成文本,而软件随后又立即把文本解析回 if 语句。

Jev 是 TypeSafe 面向运行时定义语义决策的闭源服务。本项目用开放模型复现了这一接口模式;它并未复现 Jev 未公开的模型或训练过程。

该基线直接从模型中读取带类型的选项概率。无需生成回答句子、无需 JSON 修复、无需解码循环。

快速开始

需要 Python 3.10+、CUDA,以及一块能装下 4B BF16 模型的 GPU:

python -m venv .venv
. .venv/bin/activate
export HF_HOME=/path/to/large-drive/huggingface
pip install -e '.[test]'

运行自带的示例:

CUDA_VISIBLE_DEVICES=0 openjev-score \
  --mode direct \
  --model Qwen/Qwen3.5-4B \
  --revision 851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a \
  --input examples/decisions.jsonl \
  --output results.jsonl

每条结果都包含带类型的选项分数、耗时、精确的模型 revision 以及 prompt 哈希值。

如果每一行的状态完全相同,可切换到 --mode shared,只需预填充一次状态,即可并行评估各条标准。

工作原理

flowchart LR
    S[Unstructured state] --> M[4B model]
    C[Runtime criteria] --> M
    O[Typed options] --> M
    M -- native option logits --> P[Probabilities]
  • **运行时定义:**评估标准和选项描述随请求一起传入。
  • **决策原生:**一次前向传播即可读取已声明选项的 logits;无需采样任何回答 token。
  • **共享状态感知:**一份长状态只需预取一次,即可在多个标准间分支复用。
  • **可审计:**自带的测试数据、精确的运行脚本、行级输出、模型 revision、prompt 以及已知失败案例均已提交至仓库。

速度

决策 vs 紧凑生成数组

同一个冻结的 Qwen3.5-4B、同一个自带状态、同样 21 项二元标准,单张 RTX 3090:

输出路径耗时输出 token 数结果
直接读取类型化 logits,3 次取中位数1.023 s021 组概率对
自回归 JSON 数组,3 次取中位数5.332 s111有效且有序的 21 值数组

紧凑生成基线只输出有序的 "yes"/"no" 值——不含键名、置信度对象或解释。其中位数首 token 时间为 0.489 s,但完成整个数组所需时间是直接读取方式的 5.21 倍。三个数组全部有效且完全一致。它们的选择与直接 argmax 在 18/21 项标准上一致,因此这是一次系统层面的对比,而非声称两种读取方式在语义上等价。精确 prompt、输出、token 时间线和运行记录均已提交至仓库。

在 21 项决策中复用同一状态

在自带的 37 状态 × 21 标准工作负载上:

执行路径决策/秒777 项决策
全新直接打分2.33333.1 s
串行前缀复用10.7572.3 s
并行后缀20.0338.8 s
原生 reranker1.86417.3 s

自带的 37×21 测试数据、直接/复用运行脚本、reranker 运行脚本、原始计时数据和行级预测均已提供。快速复用路径仍属实验性质:BF16 执行时,777 个 argmax 中有 5–6 个与全新打分结果不同。

质量

冻结工作负载行数直接 logits原生 reranker官方公布的 Jev
自编决策,平衡准确率1440.8130.625—
WANLI,平衡准确率2560.6370.522—
TypeSafe 精选子集,众数一致率覆盖 20 个案例的 102 行0.8450.5600.883
Every 判断网格,准确率360.8060.694—

reranker 在检索排序任务上依然强劲,但直接 logits 是更好的通用决策基线。

Jev 的数字读取自 TypeSafe 公布的记录;我们并未调用实时 Jev 端点。该对比仅覆盖能从公开材料中对齐的 102 行,而非 TypeSafe 报告的 711 行汇总结果。

输入格式

{
  "id": "route-1",
  "state": "Customer cannot access an account after a password reset.",
  "question": "Which queue should handle this request?",
  "options": [
    {"id": "access", "description": "Account access support."},
    {"id": "billing", "description": "Billing support."}
  ]
}

返回的概率以所提供的选项为条件。请在它们将要实际做决策的工作负载上进行校准和验证。

state 也可以是非空的 JSON 对象或数组。direct 模式将其保留为结构化 JSON;reranker 模式则将其渲染为文档文本。

文档

评估来源

这是一个独立研究项目。未获再分发授权的模型权重和第三方记录被排除在外;不可变的选择 ID 和抓取清单已包含在内。上游模型保留其原始许可证。项目代码以 MIT License 发布。