OpenJev
我们能在家里用一张 3090 跑类似 Jev 的东西吗?
哇!无需等待名单。今天就在浏览器里运行。
同一个冻结的 4B 模型 · 同一个状态 · 同样 21 个问题 · 分别独立计时,回放中在 t=0 对齐

大多数 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 s | 0 | 21 组概率对 |
| 自回归 JSON 数组,3 次取中位数 | 5.332 s | 111 | 有效且有序的 21 值数组 |
紧凑生成基线只输出有序的 "yes"/"no" 值——不含键名、置信度对象或解释。其中位数首 token 时间为 0.489 s,但完成整个数组所需时间是直接读取方式的 5.21 倍。三个数组全部有效且完全一致。它们的选择与直接 argmax 在 18/21 项标准上一致,因此这是一次系统层面的对比,而非声称两种读取方式在语义上等价。精确 prompt、输出、token 时间线和运行记录均已提交至仓库。
在 21 项决策中复用同一状态
在自带的 37 状态 × 21 标准工作负载上:
| 执行路径 | 决策/秒 | 777 项决策 |
|---|---|---|
| 全新直接打分 | 2.33 | 333.1 s |
| 串行前缀复用 | 10.75 | 72.3 s |
| 并行后缀 | 20.03 | 38.8 s |
| 原生 reranker | 1.86 | 417.3 s |
自带的 37×21 测试数据、直接/复用运行脚本、reranker 运行脚本、原始计时数据和行级预测均已提供。快速复用路径仍属实验性质:BF16 执行时,777 个 argmax 中有 5–6 个与全新打分结果不同。
质量
| 冻结工作负载 | 行数 | 直接 logits | 原生 reranker | 官方公布的 Jev |
|---|---|---|---|---|
| 自编决策,平衡准确率 | 144 | 0.813 | 0.625 | — |
| WANLI,平衡准确率 | 256 | 0.637 | 0.522 | — |
| TypeSafe 精选子集,众数一致率 | 覆盖 20 个案例的 102 行 | 0.845 | 0.560 | 0.883 |
| Every 判断网格,准确率 | 36 | 0.806 | 0.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 模式则将其渲染为文档文本。
文档
- 结果 —— 质量、速度、扰动实验及结论边界
- 方法 —— 冻结 prompt、指标与计时范围
- 复现 —— 精确环境、固定版本命令、扰动实验与验证
- 交互式回放
- 纯浏览器 WebGPU 演示 —— 无需等待名单;今天就能用
- 机器可读摘要
- 基准测试合集 —— 测试数据、运行脚本、选择 ID 及复现命令
- 原始结果与校验和
- 第三方来源
评估来源
- TypeSafe 公开评估 —— 用于精选子集一致率对比的公开案例
- Every 并行判断实验室 及其可下载的实验数据
- WANLI —— 外部自然语言推理验证
- Qwen3.5-4B 与 Qwen3-Reranker-4B —— 冻结的基线模型
这是一个独立研究项目。未获再分发授权的模型权重和第三方记录被排除在外;不可变的选择 ID 和抓取清单已包含在内。上游模型保留其原始许可证。项目代码以 MIT License 发布。
