The nano tier of local Jev. A /v1/systemone-compatible typed-decision
server — noul / choice / score questions with probabilities — running on
a 7M-parameter model, CPU-only, in an 8MB tarball. No GPU, no Python, no
dependencies beyond a Linux x86_64 box.
Written entirely in MFL (machin) — the model runtime, the server, and the decision heads compile to a single static native binary through machin's C backend. There is no Python anywhere in the inference path.
Author: Javier Leandro Arancibia
Point any Jev/TypeSafe SDK client at http://127.0.0.1:8097 via base_url.
curl -fsSL https://raw.githubusercontent.com/javimosch/jev-nano/main/install.sh | bash
./demo.sh # smoke testor manually:
curl -fsSLo appliance.tar.gz \
https://github.com/javimosch/mtlm-router/releases/download/v0.3.0/mtlm-router-v0.3.0-linux-amd64.tar.gz
tar xzf appliance.tar.gz && cd mtlm-router-v0.3.0-linux-amd64 && ./start.shcurl -s http://127.0.0.1:8097/v1/systemone \
-H 'content-type: application/json' \
-d '{"state":"Payouts failing for 3 days, help ASAP.","model":"jev-latest",
"questions":{"u":{"type":"noul","instructions":"Does this convey urgency?"}}}'
# -> {"answers":{"u":{"type":"noul","noul":0.989}}, ...}Real Jev's published answer to that exact question: 0.95. Ours: 0.99.
| jev-nano | jev-local (OSS) | |
|---|---|---|
| weights | 7M params | 1.5B–9B instruct models |
| download | ~8MB | 6–18GB |
| hardware | any CPU | GPU box or 16–24GB RAM |
| scoring | head + candidate logprob | per-candidate logprob |
| abstention | calibrated conformal gate (set_size, qhat, error budgets) |
max-prob confidence |
| contract | /v1/systemone drop-in — 19/19 contract checks (request shapes, validation, error types) |
/v1/systemone |
jev-local's own eval found every model under ~1.5B collapses on
choice/score questions. jev-nano is the tier below that floor — a frozen
trunk plus small trained heads instead of raw logprob guessing.
bench/systemone/contract.sh in mtlm-router exercises the wire contract:
string/object/array state, criteria-map and options-array choice forms,
score legends, multi-question answers, every documented validation error,
and max_tokens_exceeded on context overflow. 19/19 against v0.3.0.
Same binary also serves /v1/route (dispatcher with abstention/delegation),
/v1/decide /v1/noul /v1/score /v1/assess (trained head lanes),
/v1/chat/completions, /v1/feedback, /guide, /llms.txt.
Ran JevBench's 231 public items through this server (harness in
bench/): 28% on the easy+original tiers (120 items — the hard tier's
~3.7k-token states exceed this model's 384-token context). Raw
candidate-logprob scoring on a 7M-parameter trunk is real but shallow:
it agrees with hosted Jev on clear noul/urgency calls and is near chance
on fine-grained multi-way choices. Compare local-jev's 80.5% on the full
231 using a 1.5B+ instruct model — that is the honest price of 8MB.
The accurate path at this size is the trained-head lanes (/v1/route,
/v1/decide): a head fitted on your labels reaches 90-98% on its
taxonomy at the same 7M/CPU footprint — that is the product.
The open demo of mtlm-router — a self-hosted
typed decision layer for production routing: per-client heads, calibrated
abstention (conformal qhat, selective-risk bounds), live recalibration via
/_qhat, decision logs, feedback loop. Repo:
javimosch/mtlm-router · runtime:
javimosch/machin-anvil · writeup:
how the conformal gate works.
Hosted demo API: https://api.mtlm-router.intrane.fr (metered, free starter credit).