Kaer-R1: buying reasoning with a compute budget, not a bigger model

A 7B reasoner trained to decide, per question, how long to think — closing 71% of the gap to a model eleven times its size at 8% of the inference cost, and telling you when it is out of its depth.

Hands in gilded armour working at a modern keyboard

The cheapest way to make a reasoning model look better is to let it answer the same question sixty-four times and keep whichever answer wins a vote. It works. It also costs sixty-four times as much, and the resulting number tells a service almost nothing about what it will get from a single call at eleven at night, which is the only call it will ever actually make.

Kaer-R1 is our attempt to buy the same thing honestly. It is a 7B dense model, trained not to think longer in general, but to decide — per question, before it commits — how long this particular question is worth thinking about. The interesting result is not the headline score. It is that the mechanism which decides when to stop turns out to be a usable confidence signal, and that is worth more to a deployed service than the points.

The premise: difficulty is not uniform, and neither should compute be

Look at any reasoning benchmark as a distribution rather than an average and the shape is always the same. A large head of items the model gets right on its first pass and will still get right on its sixty-fourth. A thin tail it will not get right at any budget. And a band in the middle — in our hard-reasoning suite, about 19% of items — where extra deliberation genuinely changes the answer. Uniform test-time budgets spend most of their compute on the head, where it buys nothing, in order to reach the middle.

The obvious fix is to let the model allocate its own budget. The reason it is not standard is that the supervision is awkward: you cannot label "how long should this have taken" without first knowing the answer, and by then the question is moot.

Budget-matched supervision

Our approach is blunt. For each of 148,000 training problems we sample reasoning traces at five budgets — 64, 192, 512, 1,536 and 4,096 thinking tokens — and record, for each, whether the final answer was correct. That gives every problem a budget-response curve: the point at which more thinking stopped changing the outcome, if it ever did. Three shapes cover 94% of the corpus.

CurveShareWhat the model should learn
Flat-high58%Correct at 64 tokens and every budget above. Stop immediately; more thinking is pure cost.
Rising19%Wrong when rushed, right when given room. Spend. This band is the entire prize.
Flat-low17%Wrong at every budget. Stop early and say so — deliberation here only buys a more confident error.

The remaining 6% are non-monotone: right at 192 tokens, wrong at 1,536. Those are not noise and we do not average them away. They are cases where longer chains talk the model out of a correct first instinct, and they are the sharpest argument we know against "more thinking is always safer".

Training has two heads over a shared trunk. The answer head is ordinary supervised fine-tuning on the shortest correct trace for each problem, not the longest — length is a cost, not a virtue, and rewarding verbosity is how you get a model that performs thoughtfulness instead of doing it. The halting head is a small classifier trained to predict, from the hidden state at each of nine checkpoints through the reasoning trace, whether continuing will change the final answer. At inference it stops as soon as that probability falls below a threshold the operator sets.

What it does

Our hard-reasoning suite is 4,200 items: competition mathematics, multi-hop retrieval over documents we hold privately, code repair, and a legal-reasoning set built with two partner firms. Every figure below is a single greedy pass, five seeds, reported as the mean. Cost is measured, not estimated — it is what we actually paid to serve the suite.

SystemSuite scoreMean thinking tokensCost / 1k items
Kaer-R1 7B, fixed 4,096 budget58.1%4,096£14.80
Kaer-R1 7B, adaptive61.4%790£3.10
Reference 80B reasoner66.7%3,400£38.60
Kaer-R1 7B, 16-sample vote63.2%65,536£236.00

Adaptive halting closes 71% of the gap between the fixed-budget 7B and a reasoner eleven times its size, at roughly 8% of that model's serving cost. It also beats its own fixed-budget configuration outright while using a fifth of the tokens — the non-monotone band is why. Sixteen-sample voting still wins on score, and at seventy-six times the cost of the adaptive model. That trade is available to anyone. We do not think it is a good one.

The part we did not expect

The halting head has to estimate whether more thinking will help. A model that is lost cannot be helped by more thinking, so the same signal separates "I have this" from "I am out of my depth" — for free, before the answer is generated.

Treated as an abstention score, the halting probability reaches AUROC 0.83 for predicting the model's own errors in-distribution. Routing the bottom decile to a human or a larger model removes 41% of remaining errors while touching a tenth of the traffic. For a service with a fallback path — which is every service that ought to be deploying this at all — that number matters more than three points of suite score.

Where it breaks

Calibration is a property of a distribution, and ours is narrower than the world.

What it cost, and what we are releasing

Pre-training used an existing open-weight 7B base; we did not train from scratch and we are not going to pretend otherwise. The work described here is 11,400 A100-hours across trace generation, supervised fine-tuning and eight halting-head variants, of which six were worse than no halting head at all. Total compute spend: about £19,000. The single most expensive line was generating budget-response curves at five budgets, which is 62% of the bill and, in hindsight, could have been three budgets for most of the corpus.

Weights, the halting head, the training recipe and the full evaluation card — including all six failed variants and the paraphrase degradation above — are released under staged access. The hard-reasoning suite stays private, for the reason it always stays private: publish it and it is in the next crawl inside a month, after which the numbers mean nothing to anybody.

Kaer-R1 is a research release. It is not tuned for open-ended assistance, it has had no safety hardening beyond the base model's, and it should not be put in front of the public. If you want to run it against your own traffic under evaluation, that is exactly the collaboration we are looking for.

← All posts Nine tenths of the corpus did nothing →