Choose the build for your input
The package release name 2b selects Jev-Style-2B-Decision-v4. Each backend uses the release’s matching decision runtime. The table lists weight sizes, not total runtime memory.
| Build | Inputs | Published weight sizes |
|---|---|---|
| PyTorch / safetensors | Text + images | 4.43 GB |
| MLX | Text only | 3.76 GB bf16 / 2.00 GB 8-bit |
| GGUF | Text only | 3.78 GB F16 / 2.01 GB Q8_0 / 1.27 GB Q4_K_M |
For long text on the 2B releases, the project recommends Q8_0 or F16 rather than Q4_K_M. Generic text-generation commands do not produce the decision scores: use jev-style or the supplied runtime.
Run the image-capable build
Use Python 3.10 or newer in a virtual environment. Install the backend for your machine, then keep the server running in this terminal.
python -m pip install "jev-style[torch]"
jev-style serve --release 2b --backend torchThe first run downloads the model. Once it is ready, open the local Playground. Run the Python examples in a second terminal with the same environment.
For text-only use on Apple silicon, install jev-style[mlx] instead and run jev-style serve --release 2b. Automatic backend selection uses MLX there; choose --backend torch explicitly when you need images.
Ask a typed question about a receipt
Save a receipt image as receipt.png, then run the Python example below in the same environment. Supported image inputs are PNG or JPEG, with each side between 280 and 1,568 pixels. The asset key r1 is referenced in the state.
from jev_style import JevStyle, image, noul
# Save a PNG or JPEG receipt as receipt.png in this directory.
with JevStyle(base_url="http://127.0.0.1:8765") as model:
result = model.decide(
{"receipt": "r1", "policy": "Meals over 50 EUR need manager approval."},
{"approval": noul("Does this receipt require manager approval under the policy?")},
assets={"r1": image("receipt.png")},
)
print(result["answers"]["approval"]["noul"])The result is a probability for the policy question. It is not an extracted receipt, an explanation, or authorization to reimburse an expense. Check uncertain cases against the original image and policy.
Read the results with their protocol
The release reports one self-run with the official tools: 74.9% on the 231 public JevBench v1.4.1 items, 44.37 on the Decision Index 0.3 public suite, and 57.55 on its public Vision suite. These are different evaluation scales and should not be combined.
The JevBench run used float32 on Apple MPS and reports a 95% confidence interval of 68.9–80.0%. The Decision Index headline Full score uses maintainers’ private tests; the public self-run is not an official board rank. Some benchmark train splits occur in training, so consult the per-dataset protocol before interpreting a result as zero-shot.
See the full model card for training sources, runtime revisions, protocols, and limitations. The release was trained in part with soft labels distilled from TypeSafe Jev 1.14 through its public API.
What to check before using it
The combined request limit is 32,768 tokens. MLX and GGUF distributions contain the language model only. Image capability is available through the PyTorch distribution and its matching runtime.
Small print, ambiguous charts, unusual layouts, and your own domain can produce errors even when the reported probability is high. Test examples from the target task and keep a review path. If you need a smaller text-only starting point, use 0.8B v3.