Skip to content

openjev

Gemma 3 4B option scorer that prefills context once and scores all options in one pass, on MLX or PyTorch, with a Doom demo.

ServiceprototypeMIT

Overview

openjev (daseinlabs) scores pre-written options with a local Gemma 3 4B in one pass: MLX on Apple Silicon or PyTorch on Windows and Linux. The model prefills the context once, expands the KV cache across the option batch and scores every option in a single padded forward pass with no decoding. Each option's score is its token log-probability given the context, and a softmax gives probabilities, following jevlike.

A demo runs ViZDoom headless, describes each frame as a line of text and ranks the action menu with one /score call or a System One choice question per step. The server exposes a System One-compatible endpoint. Per the list summaries, its docs show zero-shot overconfidence and describe an optional trained head and per-task fine-tuning. It installs with uv and needs Gemma licence acceptance on Hugging Face. It suits developers wanting local option scoring on modest hardware.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich action from the menu should be taken for this frame?—

How it works

  1. Prefill the context once.
  2. Expand the KV cache over all options.
  3. Score options by log-probability in one forward pass.
  4. Softmax to probabilities and pick or threshold.

Strengths

  • Shared prefill makes many options cheap.
  • Runs on Mac, Windows and Linux, CPU or GPU.
  • Optional per-task fine-tuning.

Caveats

  • Zero-shot scores are overconfident per its docs.
  • Requires accepting the Gemma licence.

Getting started

uv sync; uv run hf download google/gemma-3-4b-it --local-dir models/gemma-3-4b-it; uv run openjev serve --backend torch --device auto --port 8000

At a glance

Type
Service
Status
prototype
Language
Python
Runtime
MLX or PyTorch, HTTP server
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Open implementation: ranks a Doom action menu with one `/score` call per step and supports per-task fine-tuning, released under MIT with the terminal run recorded.

    yibie/awesome-jev
  • Gemma 3 option scorer for Apple MLX that shares one prefill across candidate continuations and exposes a System One-compatible endpoint; its docs show zero-shot overconfidence and an optional trained head.

    cobanov/awesome-jev
  • One-pass option scoring with a local Gemma 3 4B on Apple silicon via MLX, inspired by jevlike, with a Doom demo.

    hellogumbo/awesome-jev

Frequently asked questions

How are options scored?

By the log-probability of each option's tokens given the context, in one padded forward pass.

Is it calibrated?

Zero-shot scores are overconfident; an optional trained head can help.

Does it work on Windows?

Yes, with the PyTorch backend.

Related projects

  • Open family of System One-style models fine-tuned from Qwen3.5 and Gemma that return typed decision probabilities in one pass.

    ModelbetaPython
  • Apache-2.0 395M ModernBERT System One model serving calibrated Choice, Noul and Score locally as a drop-in /v1/systemone replacement.

    ServicebetaPython, TypeScript
  • Gemma 4 12B with its LM head replaced by a small answer head, serving Jev-style noul, choice and score decisions with custom code.

    ModelresearchPython
  • Independent MLX port of Laya for Apple Silicon: typed decisions in about 13 ms (7 ms multilingual) with no PyTorch or cloud API.

    ServicebetaPython
  • Deploys DiffusionGemma-Jev behind a TypeSafe-compatible API on a Cloud Run GPU, with snake, dino and tetris demos.

    ServiceprototypePython
  • Mangaba AI's local, calibrated typed-decision model for Portuguese text, trained to optimize the Brier score; proprietary since v5.

    ProjectproductionPython