visual-jev
Typed decisions over images, not text descriptions of images.
Andrue Anderson’s project takes the Jev pattern to pictures: a shared visual encoding with Qwen3-VL, so the decision is made on the image itself.
# Visual Jev Open, local, image-native typed decisions using a Qwen3-VL multimodal backbone, isolated packed question branches, a learned pointer head, language-backbone LoRA, and held-out temperature calibration. The production path accepts one or more images, optional structured context, and independent `choice`, `score`, and `noul` questions. It returns numerical distributions without generating answer text. A candidate-token Qwen path remains available only as an explicit uncalibrated baseline. ## Run ```bash uv sync --extra dev npm --prefix web ci npm --prefix web run build uv run visual-jev --registry models --model visual-jev-public-mps-bf16-2026-03-v3 ``` A promoted checkpoint must exist at `models/visual-jev-public-mps-bf16-2026-03-v3`. Missing, experimental, incompatible, or checksum-mismatched weights fail closed; the server never substitutes baseline or random weights. See [the operations guide](docs/OPERATIONS.md) for the immutable dataset contract, controlled head-only and candidate baselines, LoRA training, untouched calibration/test evaluation, architecture probes, honest generative benchmark, exact-input comparison against pinned OpenJev, evidence-based direction gate, promotion, registry installation, external-backend adoption, and cold-start release workflow. The canonical typed request is [`examples/canonical-request.json`](examples/canonical-request.json). ## Verify ```bash uv run ruff check src tests uv run pytest npm --prefix web run typecheck npm --prefix web run build ```