jiwidi / jiwo
git clone https://github.com/jiwidi/jiwo.git
Small decision models (jev style) for latency critical scenarios
—
stars, 24h
—
stars, 7 days
+205
stars, 30 days · #1,244
205
★ total
0
forks · 0 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguagePython
LicenseMIT
Created2026-10-05 (15d ago)
Last push10d ago
Watchers0
OwnerUser
GitHub topics
Links
- GitHub: github.com/jiwidi/jiwo
- Releases · Issues · Hacker News mentions
README excerpt
# jiwo
jiwo models read a state and typed questions, and return a probability for every option in one forward pass. They
do not generate text. On one H100, the median request takes about 50 ms.
The request and response format is the format of TypeSafe's Jev API (`POST /v1/systemone`). jiwo is an independent
project. TypeSafe does not endorse it.
## Models
Both models are on the official Decision Index
board. Its Full score combines the public benchmarks (20%) with private tests that the board maintainers run (80%).
| Model | Base | Parameters | Version | Decision Index 0.3 | Board rank in its class | Licence |
|---|---|---:|---|---|---|---|
| jiwo-0.8b | Qwen3.5-0.8B | 0.75B | v2 | public **29.58**, Full pending | v1: **1st of 27** under 1B (Full 24.32) | Apache-2.0 |
| jiwo-4b | Qwen3.5-4B | 4.2B | v2 | public **46.06**, Full pending | v1: 3rd of 26 in 3–6B (Full 42.86) | Apache-2.0 |
The board ranks come from the board of 2026-10-07. Both v2 models (jiwo-4b 2026-10-09, jiwo-0.8b 2026-10-10) use the
same recipe as v1 with a larger and more varied training mix. On the public part of 0.3, jiwo-0.8b v2 scores 29.58 (v1:
28.72) and jiwo-4b v2 scores 46.06 (v1: 45.76). On three public datasets that no version trained on, jiwo-0.8b goes from
54.6% to 61.3% and jiwo-4b from 66.3% to 67.8%. Load v1 with `revision="v1"`, for example
`DecisionModel.from_pretrained("eljiwo/jiwo-0.8b", revision="v1")`.
Against the untrained base model on Decision Index 0.2.1, with the same server and calibration: jiwo-0.8b v2 scores
28.72 (Qwen3.5-0.8B: 6.99) and jiwo-4b v2 scores 45.08 (Qwen3.5-4B: 29.20).
On a GPU, serve with `JIWO_CUDA_GRAPHS=1` (see Settings). On one RTX PRO 6000, the median request takes
13.1 ms for jiwo-0.8b (26.6 ms without graphs) and 31.6 ms for jiwo-4b (34.5 ms).
The training data is mostly English. Other languages are not evaluated.
## Install
jiwo needs Python 3.12.
[code]
Or work in a checkout with uv:
[code]
On a CPU, use float32 (the default). Torch has no fast bfloat16 matrix product on many CPUs. On Apple silicon,
bfloat16 is several times slower than float32.
## Quickstart
[code]
`from_pretrained` also accepts a local checkpoint directory. Use `eljiwo/jiwo-4b` for the larger model. The first
call downloads the model into the Hugging Face cache.
## Serve
[code]
The server listens on `127.0.0.1:8765`. It answers `POST /v1/systemone`. `GET /health` and `GET /v1/models` give the
status and the model name.
Send one request:
[code]
The response has one answer for each question. The numbers below are synthetic. They show the format only.
[code]
- `choice`: `choice` is the most probable option. `confidence` is `(p_best - 1/n) / (1 - 1/n)`.
- `score`: `score` is the expected level, from 0 to n - 1. `confidence` is 1 minus the expected distance to the most
probable level, divided by the mean distance of the levels to the middle of the scale.
- `noul`: `noul` is the probability that the statement is true.
- `usage.input_tokens` is the nu