加载中…
加载中…
Open, local decision models with calibrated probabilities. Send a state (text or JSON) and typed questions (yes/no, choice, score); get a probability for every option back. No text generation, no network calls, no per-call cost. The API follows the Jev-style Decisions format, so existing clients mostly need only a new base URL.
gutsy-0.8b v0.4 is a fine-tune of Qwen3.5-0.8B, served by llama.cpp on an ordinary CPU as a
775 MB Q8_0 GGUF (the reference) or a 505 MB Q4_K_M GGUF (about 25-30% faster, same panel scores).
| Model | gutsy-0.8b v0.4: Q8_0 (775 MB) and Q4_K_M (505 MB): kouhxp/gutsy. v0.3: hf download kouhxp/gutsy --revision v0.3 |
| Runtime | gutsy-inference 0.4.0 |
| Training and evaluation | gutsy-bench, gutsy-teacher |
| License | Apache 2.0 (see Licensing) |
reject probability for "none of
the options fits, or the state doesn't say".All numbers below were run by us. Comparisons with other systems are indicative: different harness versions and item samples, and the other systems' numbers are self-reported unless noted.
| tier | v0.3 (Q8_0) | v0.4 (Q8_0) | v0.4 (Q4_K_M) |
|---|---|---|---|
| easy (48) | 47 | 48 | 47 |
| original (72) | 61 | 65 | 62 |
| hard (111) | 59 | 56 | 52 |
| total | 167 (0.723) | 169 (0.732) | 161 (0.697) |
| calibration error (easy / original / hard) | 0.023 / 0.122 / 0.078 | 0.022 / 0.107 / 0.137 | 0.019 / 0.137 / 0.125 |
| ordinal MAE (original / hard) | 0.30 / 0.59 | 0.19 / 0.69 | 0.21 / 0.67 |
| paraphrase agreement (original) | 0.81 | 0.86 | 0.78 |
Reported by other projects on the same public set: Jev 0.866, decision-4b 0.883, Neriv 0.6B 0.636, XERON-0.4 0.558, tuned Laya 0.537; Jeff-0.8B 47.6% on the hard tier (105 items). JevBench describes public-set results as preliminary; official results use sealed items.
Hard-tier families for v0.4 Q8_0 (5-19 items each, so single families are noisy): routing_hard 1.00, trap 0.88, adversarial 0.83, judge_hard 0.59, ambiguous 0.57 (v0.3: 0.00), probability 0.50, multi_hop 0.44, tradeoff 0.33, long_policy 0.32, temporal_numeric 0.27. Item by item, v0.3 and v0.4 disagree on 31 hard items (17 one way, 14 the other): apart from ambiguity, the hard-tier differences between the two versions are within noise.
| v0.3 | v0.4 | |
|---|---|---|
| Contrast pairs, both versions right (48 held-out pairs) | 0.104 | 0.417 |
| ... abstains when the missing fact decides the outcome | 0.583 | 0.896 |
| ... commits when the stated rules settle it anyway | 0.312 | 0.458 |
| Logic rules of depth 3 (trained on depth 1-2) | 0.617 | 0.842 |
| Orderings stated as comparatives (trained on positions) | 0.840 | 0.947 |
| Conditional probability (never trained on) | 0.305 | 0.511 |
| Calendar-month arithmetic (never trained on) | 0.683 | 0.519 |
A contrast pair is two near-identical states with the same question: in one the missing information decides the answer (the right answer is to ask or abstain), in the other the stated rules decide it anyway.
| Qwen3.5-0.8B (no fine-tune) | gutsy v0.3 | gutsy v0.4 | Jev (typesafe/jev-1.13, via API) | |
|---|---|---|---|---|
| BoolQ | 0.700 | 0.850 | 0.837 | 0.906 |
| SNLI | 0.489 | 0.879 | 0.870 | 0.883 |
| CommonsenseQA (never trained on) | 0.463 | 0.587 | 0.577 | 0.863 |
Jev was queried through its API for benchmarking only; none of its output was used for training.
| v0.3 | v0.4 Q8_0 | v0.4 Q4_K_M | Jeff-0.8B v1.0 | Jev | |
|---|---|---|---|---|---|
| BBH | 0.464 | 0.481 | 0.474 | 64.0 | 94.3 |
| Financial PhraseBank | 0.921 | 0.927 | 0.926 | 96.4 | 77.0 |
| JudgeBench | 0.596 | 0.539 | 0.563 | 62.6 | 78.6 |
| RAGTruth † | 0.790 | 0.813 | 0.807 | 86.1 | 77.3 |
| WinoGrande † | 0.657 | 0.620 | 0.629 | 68.6 | 90.7 |
† In-domain: the RAGTruth and WinoGrande training splits are in the training data (test items never are). Financial PhraseBank is close to the financial-tweet sentiment data used in training. Jeff and Jev figures are from Jeff's README, on a different sample of these benchmarks.
Don't automate on these without your own testing:
pip install -U huggingface_hub
hf download kouhxp/gutsy --include "gutsy-0.8b-v04*" "gutsy-inference/*" --local-dir gutsy
pip install -e gutsy/gutsy-inference # needs llama-cpp-python >= 0.3.35
cd gutsy/gutsy-inference
mkdir -p models && cp ../gutsy-0.8b-v04* models/
cp models.example.json models.json
gutsy-inference check # expect "caching OK" for both models
gutsy-inference serve # http://127.0.0.1:8765
models.example.json registers gutsy-0.8b-v04 (Q8_0, the default) and gutsy-0.8b-v04-q4
(Q4_K_M). To use one file only, copy that one and delete the other entry.
curl -s http://127.0.0.1:8765/v1/systemone -H 'Content-Type: application/json' -d '{
"model": "gutsy-0.8b-v04",
"state": "Order 1182 shipped Monday. The customer says it arrived Thursday with the box crushed.",
"questions": {"decision": {"type": "choice", "instructions": "What should support do next?",
"criteria": {"refund": "issue a refund", "replace": "send a replacement",
"escalate": "a manager reviews it within 24 hours"}}}}'
Endpoints: POST /v1/systemone (TypeSafe-style; works with JevBench's typesafe adapter),
POST /api/alpha/decisions and /v1/decisions (OpenRouter Decisions style), GET /health.
Each answer has probabilities; choice and score answers add confidence (how concentrated the
distribution is, from 0 for uniform to 1), margin (top two apart) and reject. Gate risky
actions on thresholds you measure on your own labeled data; see the runtime README.
Full details, sources and licenses: MODEL_CARD.md. Reproduction:
gutsy-bench/TRAINING_V04.md.
Code and model weights: Apache 2.0 (see LICENSE). The base model (Qwen3.5-0.8B) and the
teacher model (Qwen3.8-27B) are Apache 2.0. The training data draws on CC BY 4.0, CC BY-SA, CC0,
MIT and Apache 2.0 sources, credited in MODEL_CARD.md; Jev Decisions v1 is CC BY 4.0 with
upstream NVIDIA terms. Users who redistribute the training data itself must follow each source's
terms.
Qwen/Qwen3.5-0.8B