CoolFace
Modelpublic

flock-io/this-that-model-1.1

sourceHugging Facemitupdated 3d agoView on Hugging Face
0likes76downloads
Model Card

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.01.1
complex decisions (1,710 questions, chance 0.258)0.4060.775the capability 1.1 adds
spatial benchmark, 7,305 questions0.8390.871
spatial benchmark, 2,250-question subset0.8440.870
latency30.9 ms30.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.

[image]

SystemAccuracyGenerated tokensLatency
claude-opus-50.834~200~1000 ms
gpt-5.60.816~200~1200 ms
this-that-model-1.10.775030.9 ms
glm-5.30.652~200~800 ms
kimi-k30.522~200~1000 ms
deepseek-v4.1-flash0.511~4~800 ms
deepseek-v4-pro0.470~4~900 ms
this-that-model-1.00.406030.9 ms
laya-typed-decisions0.310025 ms
chance0.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

[image]

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

[image]

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).

[image]

What one decision costs

[image]

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:

accuracyBrier ↓NLL ↓
majority-class baseline0.647——
the hosted service0.7650.1330.403
this-that-model-1.00.9410.0420.126
this-that-model-1.11.0000.0030.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.

accuracyqL2 ↓constant predictor
sim_event_ood0.7200.02530.0962
sim_local_ood0.9900.02030.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

bash
pip install git+https://github.com/FLock-io/this-that-model
python
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

bibtex
@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.