NanoJev 与 Kev 对比

NanoJev 与 Kev 对比

NanoJev:https://github.com/TianyuCodings/NanoJev

一个 0.6B 并行决策模型:输入状态与问题,直接得到完整概率分布,无需生成答案 token。

Kev:https://github.com/jaredpalmer/kev

一个基于通义千问3.5构建的、类似Jev的小型决策模型家族,你可以在自己的设备上进行训练和运行。

本文所有关键结论均可在两仓库的代码与文档中回溯。引用 kev 文件时使用相对其仓库根目录的路径。

1. 摘要

两者是同源不同路的关系:

  • kev:“Small Jev-like decision models you can train and run yourself” —— 面向生产文本决策的模型家族(0.8B / 4B / 9B),主打”可自行训练与部署”,API 与 TypeSafe System One 完全兼容;
  • NanoJev:“A nano replica of Jev” —— 单一 0.6B 尺寸的 nano 复刻,主场是游戏决策(Maze / Snake / ViZDoom Basic / Predict Position),用游戏成功率直接对标 Jev API 与未微调 Qwen。

两者都复刻 Jev 的 System One 范式:因果 LM 只做前向(prefill-only)、零输出 token 解码、一次前向直接返回完整概率分布。

2. 共同点:同一范式

共同点 NanoJev kev
范式来源 Jev(System One) Jev 架构公开分析(”Jev’s Architecture Unmasked”)+ TypeSafe API
生成方式 零 token 解码,直接输出概率 零 token 解码(代码注释:we never generate text)
主干处理 只取 AutoModel 的 .model,切掉 lm_head 同样只取 .model,词表头不参与
题型 Choice / Boolean / Score Choice / Noul(yes-no) / Score
底座 Qwen3 系 Qwen 系(Qwen3.5 / Qwen3 / Qwen2.5)
概率语义 候选集合上的归一化分布,校验总和为 1 选项上的 softmax 分布,含校准温度
控制解耦 模型只出分布,排序/采样由控制器负责 同样只出分布,题型答案由调用方规则装配

3. 项目名片对比

维度 NanoJev kev
定位 Jev nano 复刻 + 游戏评测场 可训练的通用决策模型家族
尺寸 单一 0.6B 0.8B / 4B / 9B(当前代)
底座 Qwen3-0.6B Qwen3.5(0.8B/4B/9B,混合 Gated DeltaNet)
微调方式 全参数(两阶段) LoRA rank 16(底座冻结)
头部 自研决策头(含集合注意力) PointerHead(指针读出)
服务接口 自研 /api/evaluate TypeSafe System One 兼容 /v1/systemone
许可 MIT Apache-2.0

4. 定位与任务域

NanoJev

  • 主战场是游戏闭环决策:Maze(50×50 迷宫)、Snake、ViZDoom Basic(瞄准射击)、ViZDoom Predict Position(移动靶预判);
  • 另保留业务域 toy 示例(客服工单),但评测与演示以游戏为主;
  • 核心叙事:证明 0.6B 小模型能学到 Jev 式”状态+问题 → 完整动作分布”的能力,并用同一控制器做三方硬碰硬对比(NanoJev / 真实 Jev API / 未微调 Qwen3-0.6B,见 research/nanojev_comparison_protocol_zh.md)。

kev

  • 主战场是文本业务决策:工单路由、升级判断、情绪评分、NLI/政策规则等;
  • 核心叙事:把 Jev 架构做成”任何人都能自训练”的开源家族——提供公开权重、微调配方、增量微调入口(--init_from)、一键部署与 TypeSafe SDK 直连;
  • 附带知识类评测(MMLU-Pro)用于观察能力边界(知识题明显弱于 Jev,主因是底座)。

5. 模型家族与底座

kev 的代际结构

代际 底座 尺寸 状态
原型 Qwen2.5-0.5B 0.5B 仅存档参考
第一代 Qwen3 0.6B / 4B / 8B 已发布、停止开发(Mac 延迟更优)
当前代 Qwen3.5 0.8B / 4B / 9B 活跃开发(2026-09-21 更新)

NanoJev

  • 单一尺寸 0.6B,底座 Qwen3-0.6B(revision 固定 c1899de2…);
  • 一个 checkpoint 统一服务四款游戏。

值得注意的对位

kev 第一代 Kev-0.6B 与 NanoJev 使用同一底座 Qwen3-0.6B、同尺寸,但路线不同:kev 用 LoRA + PointerHead 在文本域达 0.642(新源测试准确率);NanoJev 用全参 + 决策头在游戏域达 128/128(Basic 测试)。任务域不同,数字不可直接横比。

6. 核心架构差异

6.1 头部结构

kev PointerHead(kev/model.py):

1
2
3
<decide> token hidden  → q 投影 (d→256)
每个 </opt> token hidden → k 投影 (d→256)
logits = (k(h_opt) · q(h_decide)) / sqrt(256)
  • 读出位置:<decide> 与每个选项边界 </opt> 的交叉点积;
  • 每个 checkpoint 内建校准温度(0.8B 2.41 / 4B 2.14 / 9B 2.30),eval 模式下 logits 除以温度;
  • 底座冻结,只训 adapter + 该头。

NanoJev 决策头(scripts/train_toy_decisions.py 的 DecisionModel):

1
2
3
4
每条候选路径末 token hidden
→ LayerNorm + scalar Linear(d→1) 压成标量分数
→ (Choice) set_project 拼 log(K) → MHA(128, 4头) → set_output 零初始化残差修正
→ softmax 得分布
  • 读出位置:每条候选完整路径的末 token;
  • Choice 额外用集合注意力感知候选个数(log K 特征),支持 2–255 动态候选;
  • Boolean 取 [0, z] 两 logit,Score 取加权期望;
  • 头部参数量约 20 万,随全参数训练一起更新。

6.2 序列组织与问题隔离

kev:掩码级隔离 + 前缀缓存

  • 序列布局:<state>…<q> 指令 <opt> 选项1 </opt> <opt> 选项2 </opt> … <decide>,用 Qwen 冷门特殊 token(<|fim_prefix|> 等)充当分隔符;
  • block-causal 掩码:token 只能看 state 与本问题分支,不能看其他问题,position id 在 state 后重启;
  • 服务端 state 前缀 KV 缓存:重复文档只付问题分支的算力;
  • Qwen3.5 混合底座(Gated DeltaNet 递归层不服从掩码)改用”行形式”(每问题一行)+ 同样的前缀缓存;
  • 训练上下文:state ≤ 384 token、问题分支 ≤ 1024、整包 ≤ 2048;服务上限 8192。

NanoJev:批处理级隔离,无前缀共享

  • 每条候选路径是完整独立序列:State:…\nQuestion:…\nCandidate:\n{候选}\nDecision: + EOS;
  • 一次前向批量处理独立 state / 问题 / 候选路径(32 states、96 questions、256 paths 为演示服务上限);
  • 候选路径重复 state 前缀,明确声明 batching does not imply shared-prefix computation(docs/TYPESAFE_CONTRACT.md);
  • 隔离来自”路径之间无 cross-attention”,而非掩码技巧。

6.3 微调方式

项 NanoJev kev
方式 全参数两阶段:head warmup(冻结主干,lr=1e-3)→ full(主干 lr=1e-5、头 lr=1e-4) LoRA rank 16 + 头联合训练,底座冻结
优化器 AdamW、weight_decay 0.01、grad clip 1.0 训练脚本默认(LR 0.8B 1e-4 / 4B·9B 5e-5)
轮次 按 step 控制(如 step-400 checkpoint) 2 epochs
领域增量 无公开的”从已发布权重再训”入口 --init_from 从已发布 checkpoint 热启动,lr ≤ 2e-5
硬件 单卡 GPU(BF16 实验线) H100(0.8B 约 20 分钟 / 4B 约 1 小时),Modal 云训练

7. 训练数据与监督来源

项 NanoJev kev
主体 18,760 条游戏决策问题/数据变体(训练分区 10,898,过滤后 10,893) decision-v7:10,000 条来自 10 个公开数据集 + 896 条生成 policy + 1,680 条规则结构
专家数据 896 局 Predict Position 专家回合(17,498 决策步) —
监督形态 ① Jev API 软目标 ② 专家动作 ③ 专家分布 ④ 观测结局 交叉熵硬标签(选项标签)
与 Jev 的关系 有一条训练线直接使用 Jev API 输出分布做软目标(v3_teacher_coords_multi_seed17) 明确 “No Jev outputs were used for training”;Jev 仅用于评测对比
分区 train / dev / calibration / test / OOD 五分区 train / calibration / development / test 四分区,manifest 记录 sha256

8. 概率校准

  • kev:每个 checkpoint 内建单一温度(~2.1–2.4),在分布内开发集上拟合,推理时自动应用;改变温度不改变 argmax,只改变置信度;提供 ECE 审计与分组交叉验证(OOF)复核。
  • NanoJev:输出原始分布(T=1),不做温度校准;概率本身是分析对象(如迷宫评测统计最优动作上的概率质量 p_optimal),校准数据用于评估而非改写输出。

9. 服务与生态

项 NanoJev kev
端点 /api/evaluate(POST)、/api/health /v1/systemone、/v1/models、/v1/systemone/permute、/v1/systemone/separate
协议 自研 JSON 协议 TypeSafe System One 兼容(typesafe_sdk 可直连,模型名 kev-latest/jev-latest)
认证 无(仅禁跨源) 可选 KEV_API_KEY(Bearer)
请求结构 state + questions + criteria(choice 2–255 / boolean / score 2–10) state + questions(choice 1–255 / noul / score 1–255),含 confidence 字段
加速 批处理;model_loaded_once,权重加载一次 state 前缀 KV 缓存;H100 上 5 问题几十毫秒
部署形态 本地 HTTPServer + 静态 web 演示 FastAPI + Next.js playground + 象棋 demo + HF Space(ZeroGPU)+ MLX(Apple Silicon)

10. 评测体系

NanoJev:游戏闭环成功率 + 三方对比

274 案例测试集(同观察接口、同候选动作、同种子 ε-greedy 控制器):

模型 Maze Snake Basic Predict Position
NanoJev 4/10 8/8 128/128 27/128
Jev(API) 7/10 8/8 56/128 11/128
未微调 Qwen3-0.6B 2/10 0/8 56/128 11/128

kev:公开数据集指标 + OOD + 同题 Jev 对比

  • 指标:accuracy、Brier、ECE、选择性覆盖/AURC、选项置换敏感性、问题隔离;
  • 内源/新源分开报告(新源 = 未参与训练的数据集与规则类型):
模型 训练源(dev/test) 新源(dev/test)
Kev-9B 0.872 / 0.874 0.822 / 0.852
Kev-4B 0.872 / 0.871 0.797 / 0.837
Kev-0.8B 0.825 / 0.834 0.652 / 0.684
Jev 0.845 / – 0.857 / –
  • 外部集:WANLI(Kev-9B 0.703 vs Jev 0.758)、TypeSafe 102 题(89 可答行上 agreement Kev-4B 0.856 vs Jev 0.891)、SemIf、scienthoon;
  • 差距声明:Kev-9B 新源仍落后 Jev 3.5 个点,且两者训练数据不同、不是受控对比。

11. 工程与研究风格

项 NanoJev kev
研究记录 research/ 目录:协议、审计、回执、SHA256 核验(中文为主) PLAN.md 142KB 活体研究日志(英文)
证据纪律 三方对比协议冻结、逐局模拟器回放核验、媒体清单 冻结 eval suites + manifest 哈希、claims.json + CI 校验所有公开数字
实验设施 定向实验线(APPO 监督、RLCD 后训练、Predict Position 专家) kev.experiment 配置化实验 + kev.autoresearch 自动搜索 + Modal 队列
视觉资产 三面板同步回放、GIF/MP4、本地 web 播放器 playground、象棋 demo、HF Space
许可 MIT Apache-2.0

12. 速查表

问题 NanoJev kev
我要做文本业务决策(路由/分类/评分)落地方案 有 toy 示例,但非主战场 首选:TypeSafe 兼容 + 公开权重 + 微调入口
我要看 0.6B 小模型与 Jev 的硬碰硬证据 首选:四游戏测试集三方对比 相关:Kev-0.6B(Qwen3)文本域对照
我要自己训练(少显存/少数据) 全参两阶段,需要完整反向传播 LoRA 更省,--init_from 支持领域增量
我要 Apple Silicon 上跑 未提供 MLX 路径 MLX 后端(DeltaNet Metal 内核)
我要复现整套评测 游戏闭环 + 模拟器回放 冻结 suites 一键 benchmark
我关心概率校准 原始分布 + 离线分析 内建温度校准 + ECE 报告
我想接 TypeSafe SDK 契约研究文档(未提供兼容端点) 直接兼容

13. 结论

  • 目标不同:kev 是把 Jev 范式做成”可生产、可自训练”的通用模型家族;NanoJev 是把 Jev 范式缩到 0.6B 并用游戏闭环验证能力边界的复刻研究。
  • 方法不同:kev = LoRA + PointerHead + 掩码级隔离 + 前缀缓存;NanoJev = 全参 + 决策头(集合注意力)+ 完整路径批处理。
  • 与 Jev 的关系不同:NanoJev 部分训练线以 Jev 为教师;kev 训练完全不用 Jev 输出,仅在评测中对比。
  • 互补性:kev 的工程化生态(SDK 兼容、MLX、Modal、冻结 suites)适合落地与持续迭代;NanoJev 的审计式对比(同控制器、模拟器回放、三方同步)适合做能力验证与证据链。

14. 证据索引

NanoJev

内容 位置
项目定位与四游戏成绩 README.md
决策头定义与训练循环 scripts/train_toy_decisions.py
统一训练脚本 scripts/train_unified_games.py
推理与 checkpoint 结构 scripts/predict_toy_decisions.py
本地服务 scripts/serve_decisions.py
TypeSafe 契约对照(含”无前缀共享”声明) docs/TYPESAFE_CONTRACT.md
三方对比协议 research/nanojev_comparison_protocol_zh.md
监督实验线 docs/APPO_SUPERVISION.md、docs/RLCD_EXPERIMENT.md

kev

内容 位置
项目定位、模型表、How It Works、训练配方、评测与局限 README.md
PointerHead / DecisionModel / block-causal 掩码 / 前缀缓存 kev/model.py
TypeSafe 兼容服务端点 kev/serve.py
校准温度与代际信息 AGENTS.md
研究日志 PLAN.md
冻结评测 suites evals/

NanoJev 与 Kev 对比
http://www.horus-space.cloud/posts/f6fade02.html
作者
Horus
发布于
2026年9月23日
许可协议