Choose an option.
Route a shipment, select a category, or pick the next action. Your semantic IDs stay yours.
{ "selected": "chilled" }CHOICE ↗LLM TO SYSTEM 1 v0.1
Give your model a question.
Give your code a typed answer.
Turn local GGUF model scores into choices, booleans, and ordered values—with an explicit option to abstain.
{ "storage_requirement": "chilled", "hours_until_dispatch": 4 }
Illustrative output · no model runs in this browser
01 / THE CONTRACT
Define the options. Read their next-token scores. Apply a policy. Return a value your application understands.
Route a shipment, select a category, or pick the next action. Your semantic IDs stay yours.
{ "selected": "chilled" }CHOICE ↗Turn a two-option question into a boolean, with the candidate-relative probability alongside it.
{ "value": true, "p_true": 0.92 }BINARY ↗Use your own ordered levels and numeric values for priority, severity, or another defined scale.
{ "selected": "high" }ORDINAL ↗02 / MAKE ROOM FOR UNCERTAINTY
Move the acceptance threshold to see a typed decision become an abstention. Your application decides what happens next.
Illustrative scoring demo. These fixed probabilities are examples, not model inference or accuracy estimates. Candidate mass is fixed at 0.98, above the 0.05 policy threshold.
{
"value": {
"type": "choice",
"selected": "chilled"
},
"abstention_reasons": []
}Candidate-relative probability is not a probability of correctness.
03 / YOUR MODEL, YOUR MACHINE
Use a compatible local chat GGUF. Embedded Jinja templates handle model-specific formatting; Qwen3 keeps its non-thinking profile.
Specific checkpoints tested locally. Compatibility still depends on the template, tokenizer, libllama build, and available memory. Read the verification record ↗
04 / MEASURE THE WORK
A local inference test measures loading, first-request latency, steady-state latency, and throughput. Use your own checkpoint and hardware.
| Checkpoint | CPU p50 / request | CUDA p50 / request | CUDA decisions / sec | CUDA abstentions | Typed raw accuracy | Typed coverage | Typed accepted accuracy | Typed correct / all | Typed p50 / p95 |
|---|---|---|---|---|---|---|---|---|---|
| Gemma 4 E2B Q8_0 | 7537.0 ms | 96.8 ms | 30.69 | 0% | 54.30% | 92.75% | 55.69% | 51.65% | 322.6 ms / 371.0 ms |
| Gemma 3 1B Q8_0† | 2796.4 ms | 61.8 ms | 46.44 | 0% | — | — | — | — | — / — |
| Qwen3 0.6B Q8_0 | 2334.4 ms | 63.5 ms | 47.83 | 0% | 31.25% | 55.60% | 34.35% | 19.10% | 173.5 ms / 204.2 ms |
| SmolLM2 135M Q8_0 | 720.4 ms | 52.2 ms | 56.82 | 100% | — | — | — | — | — / — |
| TinyLlama 1.1B Q4_K_M† | 3797.0 ms | 49.4 ms | 60.95 | 100% | — | — | — | — | — / — |
English warehouse fixture · 2026-09-21. Five samples are a smoke measurement, not a broad benchmark. Inference timings include prompt processing and scoring, not generated text. Hardware, quantization, and build differences matter. Throughput includes abstentions. † Gemma 3 and TinyLlama exceed the CUDA batch-consistency tolerance; these timings use a fixed batch of 256.
Typed-decisions: 400 cases / 2000 decisions · RTX 3080 10 GiB, WSL2 · 2026-09-26. Raw accuracy ignores the abstention policy; coverage is the accepted share; accepted accuracy uses accepted decisions only; correct / all counts accepted correct answers over all decisions. Typed latency is per five-question case, excluding model load and warmup; it is separate from the warehouse timings. This is a local L2S1 run, not an Ollaya runtime speed comparison. Protocol and report ↗
Download measured evidence: Gemma summary JSON · Qwen summary JSON · Gemma scored JSONL · Qwen scored JSONL · Manifest
Run the performance test on your machine05 / START LOCAL
Bring a GGUF checkpoint and a matching llama.cpp build. Define a question, run the CLI, and inspect the JSON.
Download the English examplecargo run --release --features llama -- \
--model /path/to/chat-model.gguf \
--input examples/warehouse.json \
--device cpuThe application is MIT-licensed. Model weights are never bundled. Gemma 4 uses Apache 2.0; Gemma 3 has its own terms. Preserve applicable third-party notices when distributing.