Semantic ifs from open models, on a 3090 at home. Independent; not affiliated with Jev or TypeSafe.

★ 4,922⑂ 357👁 14▤ 0
PythonCreated 2026-09-16openjev.com
4,922
stars
+0+0+219
357
forks
14
watchers
–
prs
–
issues
0
releases
–
discussions

README

SemIf (formerly OpenJev)



Semantic ifs from open models, on a 3090 at home.

Independent project; not affiliated with Jev or TypeSafe.

Wow! No waitlist. Run it in your browser today.



Same frozen 4B model · same state · same 21 questions · measured separately, aligned at t=0 in the replay



 Independent research project. SemIf was formerly called OpenJev. It is not affiliated with or endorsed by TypeSafe. Jev, TypeSafe, and other names and marks are the property of their respective owners. No infringement is intended.

!Some AI company asks you to join a waitlist; SemIf runs in your browser today

Most agent decisions are small: route this, retry that, does the evidence support X? A chat model can answer them, but it spends time generating text that software immediately parses back into an if statement.

Jev is TypeSafe's closed service for runtime-defined semantic decisions. This project reproduces that interface pattern with open models; it does not reproduce Jev's undisclosed model or training.

This baseline reads typed option probabilities directly from a model. No answer sentence, JSON repair, or decoding loop.

 Latest changes

2026-09-22

- Added PyTorch/MPS scoring for Apple Silicon — @dp-IED in 15.
- Added a Qwen3.8-27B EXL3 bridge with corrected, committed evidence — @jkyamog in 9.
- Added per-workload temperature calibration and calibrated prediction outputs — @samarthpatel24 in 19.

2026-09-18

- Added MiniCPM5 2B and Qwen3.5 4B to the browser demo.
- Added Unsloppify site, a switch to a conventional interface.

 Quick start

Apple Silicon: use the native MLX backend for direct scoring,
serial prefix reuse, and parallel shared-state decisions on macOS arm64.
Install pip install -e '.[test,mlx]' and add --backend mlx to the scorer command.
PyTorch/MPS (--device mps) is also supported for direct, serial, and shared modes — see
Apple Silicon.

Python 3.10+, CUDA, and a GPU that can hold a 4B BF16 model:

bash
python -m venv .venv
. .venv/bin/activate
export HF_HOME=/path/to/large-drive/huggingface
pip install -e '.[test]'


CPU only: the llama.cpp backend scores the same prompts from a local GGUF
checkpoint with no CUDA device. Install pip install -e '.[test,llamacpp]',
fetch a GGUF (for example Qwen_Qwen3.5-4B-Q4_K_M.gguf from
bartowski/Qwen_Qwen3.5-4B-GGUF), and add --backend llamacpp --gguf
/path/to/model.gguf; --llama-threads caps the CPU threads. Prompt
construction stays on the pinned reference tokenizer, so prompt_sha256
matches the Torch backend row for row; scores carry the GGUF checksum and are
conditional on the quantized weights. Direct and prefix-cached execution can
have small numerical differences from different llama.cpp evaluation paths;
compare decisions or probabilities with a tolerance rather than raw logits
bit for bit. One loaded backend owns one stateful scoring context. For a much
slower full-precision Torch reference path, explicitly pass
--device cpu --dtype float32 to the standard scorer command.

Run th

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON