OpenJev 是一个用开源大模型复现 Jev「运行时语义决策接口模式」的研究型项目。它不通过生成文本或 JSON 来做判断,而是直接读取模型对预定义选项的 logits / 概率,用于路由、重试、证据判断、分类等小型 agent 决策。项目重点展示:在本地 RTX 3090 等消费级 GPU 上,使用 Qwen3.5-4B 这类 4B 模型,可以较快完成多项类型化决策,并支持共享长上下文状态以提升吞吐。
适用领域
大语言模型推理 / AI Agent 决策系统 / 语义分类与路由 / 本地化 LLM 部署 / 模型评测与基准测试 / 推理性能优化 / WebGPU / 浏览器端 AI 演示
配置难度
中高级。安装本身是常规 Python 包流程,但需要 CUDA、本地大模型推理经验、Hugging Face 模型管理、JSONL 数据准备,以及理解 logits、概率校准、prefix reuse 等概念。对已有 LLM 推理经验的开发者较容易上手;对纯应用开发者会有一定门槛。
商业价值
该项目的商业价值主要在于降低 AI Agent 内部小决策的延迟和 token 成本。对于客服分流、工单路由、自动化审核、工具调用选择、工作流判断等场景,传统做法常让 LLM 生成 JSON 再解析,既慢又容易引入格式错误。OpenJev 展示了一种更贴近软件控制流的方案:把运行时 criteria 和 options 交给模型,直接读取选项概率,从而提升吞吐、增强可审计性,并支持本地私有化部署。它更适合作为技术原型、内部评估基线或自研语义决策服务的参考,而不是开箱即用的生产级商业产品。
01
技术亮点
- 直接读取 typed option logits,不生成答案文本,也不需要 JSON 修复或解析循环。
- 对小型决策任务非常关注系统效率:README 中同一 4B 模型在 RTX 3090 上,直接 logits 方式完成 21 个概率对约 1.023 秒,而紧凑 JSON 数组生成约 5.332 秒。
- 支持 shared-state / prefix reuse 思路:当多个 criteria 共享相同长 state 时,可预填充一次再分支评估,显著提高吞吐。
- 实验数据、fixtures、runner、raw timings、row-level predictions 等被提交到仓库,利于复现和审计。
- 接口模式适合软件工程中的类型化决策:输入选项固定,输出为条件概率,更容易接入 if/else、路由器或策略引擎。
- 项目同时提供浏览器/WebGPU demo,便于快速体验概念。
- 与 native reranker 和公开 Jev 评测记录进行了有限范围对比,说明该方案在若干基准上有一定竞争力。
02
目标用户
- 希望在本地 GPU 上运行小模型决策服务的 AI 工程师
- 正在构建 Agent、工作流编排、自动路由系统的后端开发者
- 关注 LLM 推理延迟、吞吐和成本优化的开发者
- 需要可审计、可复现实验结果的研究人员
- 想对比生成式 JSON 输出与直接 logits 读取方案的模型应用开发者
03
配置要求
- Python 3.10+
- CUDA 环境和可用 NVIDIA GPU
- 能够加载 4B BF16 模型的显存,推荐 RTX 3090 级别或更高
- 需要从 Hugging Face 下载模型,例如 Qwen/Qwen3.5-4B;部分环境可能需要配置 Hugging Face 网络访问或镜像
- 建议设置 HF_HOME 到大容量磁盘,因为模型权重和缓存较大
- 输入数据为 JSONL,每行包含 id、state、question、options 等字段
- state 可以是非空字符串、JSON 对象或数组
- 结果会记录选项概率、耗时、模型 revision、prompt hash 等审计信息
- 上游模型权重遵循各自许可证,项目代码为 MIT License
04
适用场景
- 客服请求自动分流,例如账号访问、计费、技术支持等队列选择
- Agent 内部控制流判断,例如是否重试、是否升级人工、是否调用某个工具
- 证据是否支持某个结论的二分类或多分类判断
- 在固定状态下批量评估多个 criteria,提高多决策场景吞吐
- 替代部分需要 LLM 输出 JSON 再解析的场景,降低输出 token 成本和延迟
- 构建本地、私有化的轻量语义决策服务原型
05
部署与配置
- 准备 Python 3.10 或更高版本。
- 准备支持 CUDA 的 NVIDIA GPU,显存需能容纳 4B BF16 模型;README 中以 RTX 3090 为参考。
- 克隆仓库:git clone https://github.com/TheoLeeCJ/openjev.git && cd openjev
- 创建虚拟环境:python -m venv .venv
- 激活虚拟环境:source .venv/bin/activate,Windows 用户需使用对应的 Scripts 激活命令。
- 设置 Hugging Face 缓存目录,例如: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
- 如果多行输入共享完全相同的 state,可尝试使用 --mode shared 以复用前缀并提升速度。
06
风险与注意事项
- 这是独立研究项目,不是 TypeSafe Jev 官方实现,也没有复现 Jev 的未公开模型或训练方法。
- 质量结果依赖具体模型、prompt、选项描述和任务分布,不能直接假设适用于生产业务。
- README 明确提示返回概率是基于给定 options 的条件概率,需要在实际工作负载上校准和验证。
- shared-state 快速复用路径仍为实验性质,README 中提到 BF16 执行相对 fresh scoring 出现了少量 argmax 差异。
- 需要本地 CUDA GPU 和较大显存,对普通笔记本或无 GPU 服务器不友好。
- 模型下载和运行可能受 Hugging Face 访问、模型许可证、显存、驱动版本影响。
- 与 Jev 的对比只覆盖可从公开 artifacts 对齐的一部分数据,并非完整商业服务对比。
- 直接 logits 判断和生成式回答在语义上不完全等价,README 中也说明某些实验两者 argmax 只在 18/21 criteria 上一致。
- 如果用于高风险业务决策,例如金融、医疗、法律、人事审批,需要额外的人审、监控和责任边界设计。
2026-09-19
第3名
新收录 · github_search
2026-09-18
第14名
新收录 · github_search