NanoJev README

The project's README from github.com/TianyuCodings/NanoJev. As one markdown file: README.md.

NanoJev — A nano replica of Jev

English | 简体中文

A 0.6B parallel decision model: states and questions in, complete probability distributions out. Zero output-token decoding.

New project: JevHarness — Let an LLM build task-specific decision harnesses with Jev, with optional refinement using rewards and execution traces. Includes an interactive Pokémon demo.

Play ViZDoom · Maze & Snake · Model · Dataset

Now playing ViZDoom: one shared checkpoint handles Basic aiming and Predict Position's moving-target rocket shots, alongside Maze and Snake.

4 tasks · 18,760 decision questions per data variant · 896 Predict Position expert episodes

What's new

September 20, 2026 — One model, four games.

Three models, side by side

Real browser replays of Jev, NanoJev and Untuned Qwen. These animations loop automatically; click either one to open its interactive player. All four demos use the same current NanoJev checkpoint. The interactive development site currently requires access; all recordings can also be played locally using the commands below.

ViZDoom Basic · Aim, then fire

NanoJev eliminates the target with one shot while Jev and Untuned Qwen fail, shown side by side on the same game clock

Move into position, line up the target, fire. NanoJev eliminates the target with one shot in 1.40 s; Jev and Untuned Qwen each fire 19 shots without an elimination before the deadline. The three panels share the same game clock and show original frames and action probabilities.

Find the exit · 50×50 Maze

Jev, current NanoJev and Untuned Qwen explore the same 50×50 maze in the live three-panel viewer

NanoJev reaches the exit in 225 attempts, versus 2,738 for Jev and 4,726 for Untuned Qwen. Each system combines local safety probabilities with the same exploration code and remembered open paths.

Play Snake · Play Predict Position

What NanoJev does

Each request supplies a state, a question and its candidates. The backbone encodes candidate paths; shared heads produce the requested probabilities. Choice uses set attention and a softmax, Boolean uses a sigmoid, and Score returns a probability-weighted level.

Held-out gameplay

Successful episodes on the complete 274-case test set, using the same observation interface, candidate actions and seeded epsilon-greedy controller across systems:

Model Maze Snake Basic Predict Position
NanoJev 4/10 8/8 128/128 27/128
Jev 7/10 8/8 56/128 11/128
Untuned Qwen3-0.6B 2/10 0/8 56/128 11/128

Test and OOD together contain 548 cases per model. Every evaluated trajectory passes independent simulator replay. The large navigation showcases above use their displayed local-question and code-planning settings.

Complete test and OOD results · Training pipeline

Dataset scale and model

18,760 decision questions per target variant, including 16,333 ViZDoom questions. The matched hard-target and soft-target variants cover the same questions across train, dev, calibration, test and OOD.

Task All five splits Training split
ViZDoom Predict Position 11,173 6,788
ViZDoom Basic 5,160 3,054
Maze 1,469 653
Snake 958 403
Total per variant 18,760 10,898

Expert gameplay: the package includes 896 Predict Position episodes with 17,498 recorded decisions, including 512 episodes assigned to training. It also contains the original mixed-task inputs, hard/soft targets, evaluation trajectories and replay checks.

Of the 10,898 stored training questions, 10,893 pass the target-validity filter. Existing Maze, Snake and Basic splits are preserved.

Release version and training run

unified-games-v1 packages the step-400 checkpoint from the hard_lr1e5 training run. Both names refer to the same selected model used across the four demos.

Name Meaning When to use it
unified-games-v1 Hugging Face release tag identifying the matching model and dataset snapshots. Download with revision="unified-games-v1".
hard_lr1e5 Training experiment: hard (one-hot) action targets for Predict Position, backbone learning rate 1e-5, decision-head learning rate 1e-4. Inspect training configs, logs and experiment comparisons.

The shared model is trained with complete-question cross entropy. Updates mix Maze, Snake, Basic and Predict Position with weights 1/3, 1/3, 1/6, 1/6.

Hugging Face release complete: the model and complete dataset are uploaded and verified as unified-games-v1. Both release tags resolve to their recorded snapshots; every uploaded file passes remote identity checks.

The model and dataset are public and can be downloaded without signing in.

Quick start

git clone https://github.com/TianyuCodings/NanoJev.git
cd NanoJev
python -m pip install -r requirements-toy.txt huggingface_hub

Download the current checkpoint and data:

from huggingface_hub import snapshot_download

snapshot_download(
    repo_id="C-Tianyu/NanoJev",
    revision="unified-games-v1",
    local_dir="checkpoints/NanoJev-unified",
    allow_patterns=["best.safetensors", "config.json", "tokenizer/*", "backbone_config/*"],
)
snapshot_download(
    repo_id="C-Tianyu/NanoJev-Data",
    repo_type="dataset",
    revision="unified-games-v1",
    local_dir="data/NanoJev-unified",
)

Start inference in a CUDA environment:

python scripts/serve_decisions.py \
  --checkpoint-dir checkpoints/NanoJev-unified \
  --web-root web --port 8765 --disable-native-triton

The service loads the model once. Send state/question batches to POST http://127.0.0.1:8765/api/evaluate.

To explore the recorded games locally:

python3 -m http.server 8080 --bind 127.0.0.1 --directory web

Open http://127.0.0.1:8080/dev/?autoplay=1 for ViZDoom Basic or http://127.0.0.1:8080/dev/side-by-side.html?autoplay=1#maze for Maze.

Development notes

Release contents and reproduction · Input contract · Unified environments · Atomic planning · Predict Position replay · Shooting replay

Roadmap

NanoJev (TianyuCodings/NanoJev)

Searching Database…

2.6K ·GitHub
Что это такое?Нано-версия Jev: модель параллельного принятия решений с 0,6 млрд параметров, которая принимает на вход состояния и вопросы и возвращает полные распределения вероятностей — токены ответа при этом вообще не генерируются.
Чем 'модель параллельного принятия решений' отличается от обычной LLM?Это не чат-модель: бэкбон Qwen3-0.6B с добавленными головами для принятия решений. В каждом запросе передаются состояние, вопрос и кандидаты; общие головы возвращают вероятности вместо генерации текста ответа.
Как его запустить?Скачайте модель и датасет с Hugging Face, версия (revision) 'unified-games-v1', затем запустите сервис инференса в окружении с CUDA — он один раз загружает модель и принимает пакеты состояние/вопрос через POST. Записанные партии можно также воспроизвести локально.
Насколько хорошо он на самом деле играет в эти игры?По-разному: 8/8 в Snake и 128/128 в ViZDoom Basic, где у Jev 56/128, но только 27/128 в Predict Position и 4/10 в Maze, где Jev достигает 7/10.
Как выглядят обучающие данные?18 760 вопросов на принятие решений на каждый целевой вариант по четырём задачам, из них 16 333 — ViZDoom; всё разбито на train, dev, calibration, test и OOD в парных вариантах с жёсткими (hard) и мягкими (soft) целями. Также в комплекте 896 эпизодов эксперта по Predict Position с 17 498 записанными решениями.
Почему nano и как он сравнивается с оригинальным Jev?Это намеренно уменьшенная копия модели принятия решений Jev, и в текущем раунде она обходит и Jev, и нетюненную Qwen3-0.6B: 128/128 против 56/128 в ViZDoom Basic и выход из лабиринта за 225 попыток против 2 738.
Что ещё осталось в планах?Пост-обучение RLCD для более широкого класса задач с длинным горизонтом, инференс с общим префиксом и более крупными пакетами кандидатов, а также больше сценариев стрельбы со структурированными входами. Веха «один чекпоинт — четыре игры» уже достигнута.
Size
62.5 MB
Stars
2.6K
Updated
CommitOct 16
Age
1mo
Commits · 90 Days