eljiwo/jiwo-4b

🤗 Hugging Face 来源text-classificationapache-2.04.2B 参数8.4 GBsafetensors✓ 4 个校验和4 天前更新
需要做种者 →

jiwo-4b

Version 2 (2026-10-09). jiwo-4b v2 scores 46.06 on the public part of the Decision Index 0.3 (v1: 45.76). v1 is on the official board with a Full score of 42.86, 3rd of 26 in the 3–6B class.

jiwo-4b is a decision model. It reads a state and one or more typed questions. For each question, it returns a probability for every option in one forward pass. It does not generate text.

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.

Base model Qwen/Qwen3.5-4B
Parameters 4.2B
Weights Full weights: decoder, tokenizer and readout
Question types choice (at most 255 options), score (2 to 10 levels), noul (true or false)
Training context length 8,192 tokens
Licence Apache-2.0

Code, server and documentation: github.com/jiwidi/jiwo. The other model of the family is eljiwo/jiwo-0.8b.

Versions

Version Date What changed Decision Index 0.3 public Board Full score Load it with
v2 (main) 2026-10-09 Same recipe, a larger and more varied training mix 46.06 pending revision="v2"
v1 2026-10-05 First release 45.76 42.86, 3rd of 26 in 3–6B revision="v1"
DecisionModel.from_pretrained("eljiwo/jiwo-4b", revision="v1")  # the first release

Evaluation (v2)

Benchmark v2 v1
Decision Index 0.3, public index 46.06 45.76 (board)
Decision Index 0.2.1 45.08 44.97
Area skill ×100 (0.3): knowledge / language / retrieval and classification / tools / arts 29.1 / 52.9 / 51.7 / 63.1 / 29.8
Three public datasets never used in training (accuracy) 67.8% 66.3%
Untrained Qwen3.5-4B on Decision Index 0.2.1, same server and calibration 29.20: +15.9 points for v2
Median request latency on one H100 (0.2.1 run) 48.5 ms 53 ms

The scores come from complete runs of the public suite (150,317 requests for 0.2.1, 140,178 for 0.3), served by jiwo serve with JIWO_MAX_LENGTH=65536. On the board, the public suite is 20% of the Full score. The maintainers run the private tests (80%) after review. The v1 board scores come from the board of 2026-10-07.

Use the model

pip install "jiwo @ git+https://github.com/jiwidi/jiwo"    # on NVIDIA GPUs: "jiwo[cuda] @ git+..."
from jiwo.model import DecisionModel

model = DecisionModel.from_pretrained("eljiwo/jiwo-4b")
question = {"type": "noul", "instructions": "The customer is angry."}
response = model.decide("Refund please, the parcel arrived crushed.", {"angry": question})
print(response["answers"]["angry"]["noul"])  # the probability that the statement is true

Or serve it over HTTP. The server listens on 127.0.0.1:8765:

JIWO_CHECKPOINT=eljiwo/jiwo-4b jiwo serve
curl -s localhost:8765/v1/systemone -H 'content-type: application/json' -d '{
  "state": "Refund please, the parcel arrived crushed.",
  "questions": {
    "team":  {"type": "choice", "instructions": "Which team handles this?",
              "criteria": {"billing": "Payments and refunds", "shipping": "Damaged or lost parcels", "account": null}},
    "angry": {"type": "noul", "instructions": "The customer is angry."},
    "urgency": {"type": "score", "instructions": "How urgent is it?", "criteria": ["Not urgent", "Soon", "Now"]}}}'

The jiwo README describes the response, the errors and all settings.

Request format

A request has a state (a string, a JSON object or a JSON array) and at most 64 named questions.

Type Meaning criteria
choice Pick one of N named options An object that maps option keys to descriptions or null
score Rate the state on 2 to 10 ordered levels A list of level descriptions, lowest level first
noul Decide whether a statement is true Optional. Descriptions for the keys true and false

How the model works

  • The decoder of the base model reads one prompt for each (state, question) pair.
  • A linear readout with one row per answer code (A, B, ..., Z, AA, ...) gives one logit for each option.
  • A softmax with a fitted temperature for each question type gives the probabilities.

Training data

The model was fine-tuned on the train splits of public datasets and on synthetic data. The training data is mostly English.

Limits

  • The training prompts had at most 8,192 tokens. By default, the server refuses a longer prompt with a 400 error. You can set a larger JIWO_MAX_LENGTH, but the model did not see longer prompts in training.
  • A choice question can have at most 255 options.
  • The model was trained mostly on English. Other languages are not evaluated.
  • The model gives probabilities, not explanations. Check its answers before you use them for decisions with a high cost.

Licence

Apache-2.0, the licence of the base model. See LICENSE.