← 返回列表

EdgeJev:在普通 CPU 上离线运行的本地类型化决策推理服务

yzfly/edgejev · 离线可用的本地类型化决策:4 核 CPU 单题 15.6ms。Local & offline Jev / System One inference on CPU — ONNX + INT8, no torch at runtime. 支持 laya / kev / PlayJev

GitHub原文发布 未知首次收录 2026-10-12上架 2026-10-12 07:01

☆ 收藏查看项目 ↗

ELI5:它是什么,解决什么问题

EdgeJev 把 laya、kev、NanoJev、PlayJev 等开源 Jev / System One 复现项目统一为「转换 → 量化 → 部署」的流程:导出 ONNX、做 INT8 量化,并起一个与官方 /v1/systemone 协议兼容的本地服务。它以 ONNX Runtime 在 CPU 上做离线推理,运行时只依赖 onnxruntime、tokenizers、numpy,不需要 torch、API key 或联网,数据不出本机;同时提供 build / serve / eval / bench / info 等 CLI 子命令和训练模块。

核心能力与快速开始

★ 21 · Python

能做什么
把开源 Jev / System One 复现后端(laya、kev、nanojev、playjev)统一成一条转换、量化、部署路径:从 checkpoint 导出 ONNX、可选 INT8 量化,并生成自包含的 model.onnx、tokenizer.json、edgejev.json 目录,可直接拷到内网机器离线运行。提供与官方 /v1/systemone 协议兼容的本地 HTTP 服务,官方 SDK 只需改 base_url 即可切换。决策原语支持 choice(多选)、score(打分)、noul(是否类判断),返回答案、概率与置信度。CLI 含 build(转换+量化+多形状自检)、serve、eval(AG News / emotion 指标)、bench(延迟)、info。另有 edgejev.train 训练模块,含严格恰当评分规则损失、ECE 可靠性分桶、硬/软标签数据统一,以及可被 build --backend laya 导出的模型结构。
适用场景
适合数据不能出内网或 air-gapped 环境下的类型化决策调用(如客服工单分流、情感强度打分、紧急程度判断),也适合希望省去每次决策网络往返的实时链路;官方 SDK 开发者可先用官方托管 API 写完代码,再切换到本地服务。另可用于把上游 Jev 复现权重做 ONNX/INT8 转换部署与精度—体积—延迟的横向评测,以及用自带训练模块在自有数据上做概率校准训练。
项目形态
可直接使用的工具
部署方式
以 Python 包形式通过 uv tool install / uv add / uvx 安装;build 阶段需要联网从 Hugging Face 拉权重并安装 edgejev[build](含 torch / transformers),转换完成后以自包含目录离线运行,本地服务用 `edgejev serve --model ./jev-int8 --port 8009` 启动,通过 TYPESAFE_BASE_URL 指向本地。文档给出 Linux / Windows x86(CPU,AVX512-VNNI / AVX2)、macOS Apple Silicon(CoreML,不支持算子回退 CPU)、Linux ARM(int8 走 SDOT)的平台说明,可用 --provider cpu 或 EDGEJEV_PROVIDER 强制 CPU。
主要依赖
运行时只需 onnxruntime、tokenizers、numpy,不装 torch;Python 3.9+。构建阶段需要 edgejev[build](torch / transformers / laya),playjev 后端需要 edgejev[vlm](torch / torchvision / pillow),训练需要 edgejev[train]。nanojev 后端 state 不能截断,超过 max_len 会直接报错。
使用限制
不同后端默认精度不同,量化对精度影响差异明显:kev 量化后 AG News 掉 6 点、emotion 从 44.0% 掉到 21.0%;nanojev 量化后对上游 logits 偏差从 0.029 涨到 0.89,60 条里 4 条 argmax 翻转,故仅 laya 默认 int8,其余默认 fp32。动态量化结果依赖 batch,自行批量推理需固定 batch=1 或使用 fp32。int8-static 当前不可用(精度掉到随机水平且慢约 4 倍)。QUInt8 在 x86 无选择理由(ARM SDOT 不适用该结论)。把嵌入表排除量化没有收益且体积从 324 MB 涨到 915 MB。fp16 在 x86 CPU 没有意义,且 fp16 pass 处理不了 dynamo 导出图的 _to_copy 节点。playjev 后端走 torch 而非 ONNX,因为混合线性注意力没有对应 ONNX 算子,且无上游数值可对拍。nanojev 发布的 checkpoint 只在四款游戏决策上训练过,不是通用分类器。
许可证
NOASSERTION
最近推送
2026-09-21 19:47

资料检查:2026-10-12 07:00 · 卡片整理:2026-10-12 07:00
卡片由 AI 根据仓库资料整理,未进行安装或运行验证 · 本次更新未完成,保留上次成功内容

职业应用

程序员

在本地 CPU 上离线运行类型化决策推理服务,通过 edgejev build 将模型导出为 ONNX 并做 INT8 量化,再用 edgejev serve 启动与官方 /v1/systemone 协议兼容的本地服务,供程序在无网络、无 API key 的环境下调用决策接口。

查看内容依据
EdgeJev 把 laya、kev、NanoJev、PlayJev 等开源 Jev / System One 复现项目统一为「转换 → 量化 → 部署」的流程:导出 ONNX、做 INT8 量化,并起一个与官方 /v1/systemone 协议兼容的本地服务。

官方使用入口 ↗

由 AI 根据来源材料整理,未进行安装或运行验证

这是基于来源内容整理的摘要。原文链接失效后,本页摘要和讨论仍会保留。

讨论 0

登录后参与讨论,阅读资讯无需注册。

还没有评论,来分享第一个看法。