Under review · ICLR 2027

The Program Is the Dosimeter: Calibrated Query-Time Posterior Control in Language Models

Anonymous authors, under review at ICLR 2027

Activation steering adds alpha * v to the residual stream, but alpha carries no semantic unit. A small probabilistic program supplies the units — and that is what turns an adequate steering vector into a measuring instrument.

Three-panel overview. Panel a: the read-condition-write loop, where a posterior p is read from the residual stream at layer l and token t, conditioned outside the model into a target posterior p-star by a probabilistic program, then written back as h plus G of p-star minus G of p; the dose delta is the difference of logits and the write is spent on the current query. Panel b: a scatter of realized change in log-odds against program dose in nats, closely following a line of slope 0.961 with R-squared 0.922, well above a flat random-null band. Panel c: a dot plot of dose-response slope for five conditions, with the oracle at the answer at 3.46, the calibrated write at 0.96, and shared-site write 0.08, cached re-read 0.34 and base model 0.36 all sitting inside the random-null band.
The loop, its calibration, and its locality. (a) Read a posterior off the residual stream, condition it outside the model with a small probabilistic program, write the target posterior back onto a linear residual coordinate; the dose is delta = logit(p*) - logit(p). (b) On BB-Urn with Qwen2.5-7B at layer 21, realized change in answer log-odds tracks the program dose with slope 0.961, R² 0.922. (c) The same write moves nothing off that query: oracle at the answer 3.46 versus calibrated write 0.96, while shared-site write 0.08, cached re-read 0.34 and base model 0.36 sit at the random control.

The idea

A dose has a unit; a steering strength does not

Steering asks you to pick a scalar and see what happens. There is no principled answer to “how much”, because the knob is measured in whatever units the vector happens to have. A probabilistic program fixes this by naming the quantity you actually want to change.

Dose delta = logit(p*) logit(p) measured in nats

Activation steering

h' = h + alpha * valpha is a strength. Doubling it is not doubling anything the task defines, so there is nothing to calibrate against and no way to say the edit was the right size.

Program-defined dose

The program reads a posterior p, conditions on evidence outside the model to get p*, and the difference of their logits is the requested move in the answer's log-odds. The units come with the request.

Why that is the contribution

Not a better steering vector. The dose semantics are what let you check whether a write of delta nats actually produced delta nats — the difference between a knob and an instrument.

Three panels. Panel a contrasts activation steering, h prime equals h plus alpha v with alpha a unitless strength, against the program-defined dose delta equals logit p-star minus logit p, which has a semantic unit of nats. Panel b shows the interface as three stacked stages: read p, condition to p-star with the evidence kept out of the prompt, and write h plus G of p-star minus G of p. Panel c plots realized change in log-odds against program dose, with the points following a fitted line of slope 0.961 and R-squared 0.922, far above a flat random-null band close to zero.
The missing unit, the interface, and the measured response. Evidence is conditioned on outside the model and never enters the prompt. Against a random-null band sitting at zero, the write realizes the requested dose with slope 0.961 and R² 0.922.

Results

Three claims

01

The writeback is calibrated, and the dose is identified without leakage

On BB-Urn with Qwen2.5-7B at layer 21, realized log-odds move in near-unit proportion to the requested dose. The identifying variation is six cross-condition evidence levels, not 2880 independent doses — we say so rather than count pairs as samples.

0.961slope, BB-Urn / Qwen2.5-7B, layer 21
0.922R² over n = 480 instances, 2880 pairs
0.96–1.02near-unit slope range across three layers
0.98–0.99oracle-in-context ceiling

Six evidence conditions supply the variation. A separate leakage-free experiment then fits the gain blind to the dose, with directions unit-normalized and frozen on a calibration split:

1.027mean-difference direction, CI [0.977, 1.070], R² 0.978
1.004ActAdd contrastive direction, CI [0.963, 1.042], R² 0.984
0.926chart-native reference on the same axis
0.041repe_pca direction — fails

Two unrelated directions both land inside the pre-registered band while a third fails outright: the direction is interchangeable, and the units come from the program rather than from the vector's geometry.

02

It is a query-time actuator, not stored state

The edit is spent on the query it was written for. Transport it to a neighboring question and the effect vanishes as far as our probes can tell; cache it once and never re-apply it and later queries look like the random control.

Three probes, all at random

Transported vector, local chart, and shared-position write each come out indistinguishable from the random control.

Cached, never re-applied

A one-time edit is approximately the random control at every later query, so nothing durable was installed.

Re-applied, it composes

A re-applied write composes with the model's own filtering — slope 1.07, against 0.32 for a destroyed logit edit.

The consequence is architectural: long-horizon state has to live outside the model and be re-applied on every query.

03

Keeping the program outside the model pays off

Because the state lives in the program, sixteen rounds of belief updating run at O(1) context. Given a task's probabilistic model and no outcome labels, the loop repairs calibration and still matches or beats label-supervised calibrators.

16rounds at O(1) context
0.433 → 0.687BB-Urn accuracy, label-free repair, n = 600
0.283 → 0.055BB-Urn expected calibration error
22 / 22public-benchmark cells where the write beats the same posterior stated in the prompt
0.35 → 0.70Bayesian-Teaching accuracy, both models, within 0.09 of the exact-Bayes ceiling
0.57 → 0.72BCC held-out coherence r on Llama, held-out n = 204

The label-free repair matches or beats temperature, vector, and Dirichlet scaling — all of which need outcome labels. Stating the same posterior in the prompt loses in every one of the 22 cells.

Two panels. Panel a plots KL divergence to the exact posterior, normalized to round one, across sixteen rounds: evidence in context and posterior stated in text stay near their starting level, while external state re-written per query falls well below both. Panel b compares seven methods on accuracy, negative log-likelihood, and expected calibration error; the activation write improves on the base model on all three and sits level with temperature, vector, and Dirichlet scaling, which all use labels.
Sixteen rounds, and calibration correction without labels. Re-writing external state per query tracks the exact posterior far better than putting the evidence, or the posterior itself, into the context. On the correction panel the write is level with label-supervised scaling methods while using no outcome labels.

Scope

What does not transfer

Near-unit calibration is a Qwen / BB-Urn result. It is not a property of language models in general, and one of our pre-registered tests failed. Both statements belong here rather than in a footnote.

Qwen2.5-7B, L21

Has units

Two independent unit-norm directions land inside the frozen band (1.027 and 1.004). This is the regime the near-unit claim is about, and only this one.

Llama-3.1-8B, L22 / L28

No actuator on this task

Chart-native response reaches only 0.141 and 0.242. There is nothing to calibrate here; the write does not act.

Gemma-2-2b-it — band failed

Attenuated, and super-unit

Attenuated actuator at L18 / L22 (0.40 / 0.47). The fixed-direction ActAdd test at L22 is linear but super-unit at 1.205, CI [1.096, 1.301] — outside the pre-registered band. Reported as a failure, not rescued.

BB-Skill, cross-family

Linear but attenuated

Across three model families the response stays linear with slope 0.69–0.88, so the mechanism transfers in form while the gain does not.

Method

How the identification experiment removes the leakage

If the direction is chosen and the gain is fitted on the same doses you report, a near-unit slope is partly bookkeeping. Four choices, all made before the runs, close that path.

  1. 01 Unit-norm, pre-fixed directions

    Directions are unit-normalized and fixed on a calibration split, so their scale cannot absorb the dose and no per-report tuning is possible.

  2. 02 Gain fitted blind to the dose

    The gain is estimated without seeing the dose it will be evaluated against, so it cannot be chosen to make the slope come out at one.

  3. 03 Frozen acceptance band

    The band [0.9, 1.1] with R² ≥ 0.9 was pre-registered before the runs. Gemma's 1.205 fails it, which is what a frozen band is for.

  4. 04 Cluster bootstrap, half held out

    17 urn ratios × 8 draw patterns = 136 settings, half held out, with the bootstrap clustered over settings rather than over instances.