Deploy NanoJev locally
NanoJev is a nano, open replica of Jev — a 0.6B decision model on Qwen3 that takes states and questions and returns a full probability distribution in one pass, with zero output-token decoding. It ships the whole training pipeline, dataset and a local decision server, and fine-tunes on a single GPU.
What NanoJev is
NanoJev (by TianyuCodings) is an MIT-licensed, open-weight reconstruction of Jev's architecture built on Qwen3-0.6B with decision heads. It handles 2–255 candidates via set attention + softmax and returns choice / boolean / ordered-score distributions without generating any tokens. The repo includes the end-to-end training pipeline, the dataset, and a browser demo comparing Jev, NanoJev and untuned Qwen on Snake and a maze.
Relationship to official Jev
NanoJev is a research replica, not TypeSafe's Jev. It implements the System One request contract closely enough that the official SDK can point at a local NanoJev server with a base_url change — but it's trained on toy tasks (Maze, Snake, ViZDoom), and the authors are refreshingly honest: their own dev notes say "better one-step probability scores do not establish long-horizon game success" and call it "a bounded integration pilot, not a full-size completion benchmark." Treat it as a way to learn the architecture and prototype, not a production decision model.
Requirements
- An NVIDIA GPU with CUDA (bf16). A single consumer GPU is enough — 0.6B is small.
- Python (requirements-toy.txt) + huggingface_hub.
- No CPU-only, Mac/MLX, or GGUF/Ollama build is documented at this time.
Clone, install, download weights
git clone https://github.com/TianyuCodings/NanoJev.git && cd NanoJev
python -m pip install -r requirements-toy.txt huggingface_hub
python - <<'PY'
from huggingface_hub import snapshot_download
snapshot_download("C-Tianyu/NanoJev", revision="unified-games-v1",
local_dir="checkpoints/NanoJev-unified")
snapshot_download("C-Tianyu/NanoJev-Data", repo_type="dataset",
revision="unified-games-v1", local_dir="data/NanoJev-unified")
PYServe the decision API
python scripts/serve_decisions.py \
--checkpoint-dir checkpoints/NanoJev-unified \
--web-root web --port 8765 --disable-native-triton
# → decisions at: POST http://127.0.0.1:8765/api/evaluateLocal API endpoint
The server loads the model once and answers batched POSTs at /api/evaluate with state/question payloads, returning the full distribution per question. Because it mirrors the System One shape, you can point Jev-compatible client code at http://127.0.0.1:8765 instead of the hosted gateway.
Reported latency
No official latency figure is published. Architecturally it's a single parallel forward pass over a 0.6B model with no token decoding, so it's in the sub-100 ms class on a modern GPU — but benchmark it on your own hardware before quoting a number.
Calibration caveats
NanoJev is trained on a small set of toy tasks, so its distributions reflect that training, not general-purpose calibration. The authors themselves note atomic accuracy showed no improvement over always-true controls on full-map training. Do not wire a production threshold to it without validating on your own data — and prefer it for learning and prototyping.
Sources
- GitHub — TianyuCodings/NanoJev — code (MIT)
- Hugging Face — C-Tianyu/NanoJev — weights
- Hugging Face — C-Tianyu/NanoJev-Data — dataset
Backbone Qwen3-0.6B retains its own upstream license.
See also: NanoJev vs Jev (full comparison) · Jev on Hugging Face · ← Compare all local Jev alternatives · Prefer hosted Jev (no GPU)
Other local models: Laya · OpenJev · DiffusionGemma-as-Jev
Need a production-grade decision model?
NanoJev is great for tinkering. For calibrated, pinned decisions with no ops, call the hosted model with a jv_live_ key.