this-that-model-1.1

A typed decision model. One forward pass, no decoding loop, no parser, no retry.

1.1 keeps everything 1.0 did and adds the decisions 1.0 could not make: the ones where several rules apply at once, where a policy has an exception and the exception has an exception, and where the answer is not readable from any single column of the state.

  • Parameters: 1.88 B
  • Architecture: Qwen3.5-style hybrid, 18 of 24 layers DeltaNet linear attention, 6 full attention
  • Latency: 30.9 ms per question on a consumer GPU, zero generated tokens
  • Inference code: github.com/FLock-io/this-that-model

What changed from 1.0

The architecture is identical. What changed is the training mixture: 64,028 composed-decision questions over 112 rule structures and 40 domains, and two loss terms that use pairs the generator can make and nothing else can — the same decision rendered four ways, which must be answered the same, and two policies over one state, which must not.

1.0 1.1
complex decisions (1,710 questions, chance 0.258) 0.406 0.775 the capability 1.1 adds
spatial benchmark, 7,305 questions 0.839 0.871
spatial benchmark, 2,250-question subset 0.844 0.870
latency 30.9 ms 30.9 ms

Where 1.1 sits against models that generate tokens

Every system on all 1,710 questions, scored the same way: one question, declared options, the answer read back, and a system that returns nothing counted wrong rather than excused.

accuracy against latency

System Accuracy Generated tokens Latency
claude-opus-5 0.834 ~200 ~1000 ms
gpt-5.6 0.816 ~200 ~1200 ms
this-that-model-1.1 0.775 0 30.9 ms
glm-5.3 0.652 ~200 ~800 ms
kimi-k3 0.522 ~200 ~1000 ms
deepseek-v4.1-flash 0.511 ~4 ~800 ms
deepseek-v4-pro 0.470 ~4 ~900 ms
this-that-model-1.0 0.406 0 30.9 ms
laya-typed-decisions 0.310 0 25 ms
chance 0.258 — —

The benchmark is public: limberc/this-that-complex-decisions.

1.0's row is zero-shot — that benchmark did not exist when it was trained, and none of its decision types were in its mixture. The distance from 0.406 to 0.775 is the same architecture with different training data, which is the whole claim this release makes.

One row is worth more than the ranking. On knapsack_subset — choose the group of items that fits a budget — eight of the nine systems score between 0.07 and 0.27 against a chance rate of 0.084. This model reaches 0.678. Whatever that decision needs, it is not what model scale usually buys.

The decision type where a 1.88 B model wins outright

knapsack subset

knapsack_subset asks for the group of items that fits a budget and maximises value. Greedy selection fails on it about half the time. Eight of the nine systems measured land between 0.067 and 0.267 against a chance rate of 0.084; this one reaches 0.678, two and a half times the next best and five times claude-opus-5.

Type by type, against the better of the two frontier systems

advantage over the frontier

Four decision types go this model's way, two are a tie at 1.000, and three more are inside a tenth. The rest go the other way, and the two widest are worth stating plainly: judging whether a state contains enough information to decide at all (0.444 against 0.833) and iterating a cascade to its fixed point (0.678 against 0.978).

accuracy by decision type

What one decision costs

accuracy against cost

Not a like-for-like axis, and the chart says so: a hosted price covers serving and margin, while ours is electricity at 80 W and $0.30/kWh for the 30.9 ms the card is busy. Read it as one order of magnitude rather than five.

The frozen third-party cohort

68 questions a third party recorded against a hosted commercial decision service, in their wording rather than ours:

accuracy Brier ↓ NLL ↓
majority-class baseline 0.647 — —
the hosted service 0.765 0.133 0.403
this-that-model-1.0 0.941 0.042 0.126
this-that-model-1.1 1.000 0.003 0.023

Calibration

Where the true answer is a computed probability, so the target follows from the transition rules rather than from anyone's opinion. Lower qL2 is better; a constant predictor is the thing to beat.

accuracy qL2 ↓ constant predictor
sim_event_ood 0.720 0.0253 0.0962
sim_local_ood 0.990 0.0203 0.4928

1.0 scored 0.0250 and 0.0096 on those two. The second is a real regression — half as sharp as it was — though still a factor of twenty-four better than predicting a constant.

What it does well, and what it does not

Measured per family, and the split is sharp enough to be worth stating:

Reliable (≥ 0.85) which rule governs; an exception and its exception; a scope conflict between two authorities; which fact, removed, changes the answer; a chain of filters
Unreliable (≈ 0.50) weighing several numeric criteria against each other; the cheapest change that flips a decision; judging whether the state contains enough information to decide at all

The failures are not random guessing dressed up as confidence. On the families it cannot do, its confidence when wrong is far below its confidence when right — 0.45 against 0.77 on weighted criteria — so the number it returns still separates the cases you can take from the cases you should escalate.

That stops being true off-distribution. Asked a rule structure absent from training, 1.1 scores 0.447 against a chance rate of 0.31 and its calibration error rises to 0.20: there it is confident and wrong, and the confidence will not save you. If your decisions have a shape this model has not seen, measure before you rely on it.

Usage

pip install git+https://github.com/FLock-io/this-that-model
from thisthat import TypedDecider, Question

decider = TypedDecider.from_pretrained("flock-io/this-that-model-1.1")

answer = decider.decide(
    '{"bays": {"bay-a": {"free": 7, "distance_m": 40, "handling": "chilled"},'
    '          "bay-b": {"free": 3, "distance_m": 12, "handling": "ambient"}},'
    ' "policy": ["Bays without chilled handling are ineligible.",'
    '            "Among those eligible, take the most free positions."]}',
    Question("Which bay is assigned?", ["bay-a", "bay-b", "hold in transit"]),
)

print(answer)                 # bay-a
print(answer.confidence)      # the number is calibrated in-distribution; threshold on it

Citation

@misc{cheng2026thisthat,
  title  = {A typed decision model that decides in 30 ms, for a millionth of a cent},
  author = {Cheng, Zehua and Dai, Wei and Sun, Jiahao},
  year   = {2026}
}

Licence

MIT. Adapted from decider-2b under Apache-2.0.

Downloads last month
70
Safetensors
Model size
2B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for flock-io/this-that-model-1.1

Quantizations
1 model

Dataset used to train flock-io/this-that-model-1.1