Same Probe, Different Numbers: Are Activation Probes Robust to Inference-Time Numerical Non-Determinism?
Organizations: Wrynx Inc.
Abstract
Activation probes are increasingly used to monitor LLMs in deployment. A probe is typically trained under one inference configuration, then used under whatever batch size and numerical precision the serving stack uses. Because common GPU kernels are not batch-invariant and floating-point formats round differently, the activations seen at deployment are not the ones the probe was trained on. We measure what that costs for Llama-3.1-8B, Qwen3-8B and Gemma-3-4B across batch sizes 4, 8 and 16 and float32, bfloat16 and float16, training 768 probes on one configuration, evaluating each on every other, and comparing verdicts example by example. Probes are stable, but aggregate accuracy is the wrong instrument for showing it: it understates how many verdicts change by a factor of two to nine. At the prompt, accuracy never moves by more than 0.47 percentage points across 1,392 transfers and only 0.076% of verdicts change; under float32 with only the batch size varied, none of 201,960 verdicts change. During decoding the flip rate rises to 2.8%, but rows whose realised tokens matched flip in only 0.12-0.15% of cases, while rows whose tokens diverged flip in 12.9%: the cause is the text, not the arithmetic. A bfloat16 batch-size change flips the first generated token for 2.1% of rows and leaves 25% on different tokens by token 20. Flips are symmetric, Cohen's kappa stays above 0.94, and AUROC moves by at most 0.05 points. Underneath, activations move about as much as the format's rounding: a bfloat16 batch-size change perturbs them by a median relative L2 of 1e-2, roughly 8x the float16 figure. Probes absorb this; the model's own next-token argmax does not. Robustness evaluations of activation monitors should report per-example agreement rather than aggregate accuracy, separate representational noise from input change, and state the serving configuration.
Figures & tables
| Verdicts that flip (%) | |||||||
|---|---|---|---|---|---|---|---|
| Probe reads | all rows | same tokens | diverged | acc (pp) | AUROC (pp) | score | |
| prompt | 0.08 | 0.07 | 0.11 | 0.04 | 0.999 | +0.00 | 1.000 |
| gen 5 | 0.87 | 0.12 | 3.75 | 0.18 | 0.981 | +0.02 | 0.990 |
| gen 10 | 1.64 | 0.13 | 7.48 | 0.23 | 0.965 | -0.01 | 0.978 |
| gen 20 | 2.76 | 0.15 | 12.87 | 0.31 | 0.941 | +0.05 | 0.961 |
Appendix figures & tables11 assets
Supplementary material from the paper’s appendix.
Appendix
| Verdicts that flip, all rows (%) | At gen 20 (%) | |||||
|---|---|---|---|---|---|---|
| Perturbation | prompt | gen 5 | gen 10 | gen 20 | same tokens | diverged |
| Batch size (fp32) | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | – |
| Batch size (fp16) | 0.018 | 0.160 | 0.267 | 0.630 | 0.040 | 15.756 |
| fp32 vs fp16 | 0.012 | 0.160 | 0.371 | 0.719 | 0.028 | 13.345 |
| Batch size (bf16) | 0.143 | 1.121 | 2.183 | 3.628 | 0.283 | 13.190 |
| fp32 vs bf16 | 0.117 | 1.382 | 2.686 | 4.371 | 0.235 | 12.877 |
| Greedy token disagreement (%) | Probe gap (pp) | |||||||
|---|---|---|---|---|---|---|---|---|
| Perturbation | Models | pairs | first token | at token 20 | any position | range | prompt | token 20 |
| Batch size (fp32) | G, L, Q | 18 | 0.00 | 0.0 | 0.0 | [0.0, 0.0] | – | – |
| Batch size (fp16) | L, Q | 12 | 0.36 | 3.6 | 3.7 | [3.0, 4.4] | +0.90 | +1.96 |
| fp32 vs fp16 | L, Q | 36 | 0.36 | 4.7 | 5.2 | [4.7, 6.1] | +1.18 | +1.85 |
| Batch size (bf16) | G, L, Q | 18 | 2.05 | 25.1 | 25.8 | [19.3, 30.5] | +0.67 | +0.11 |
| fp32 vs bf16 | G, L, Q | 54 | 2.57 | 31.7 | 32.6 | [26.5, 36.7] | +0.13 | -0.21 |
| Greedy token disagreement (%) | Probe gap (pp) | ||||||
| Perturbation | Model | rows | first token | at token 20 | any position | prompt | token 20 |
| Batch size (fp32) | Llama-3.1-8B | 5610 | 0.00 | 0.0 | 0.0 | – | – |
| Batch size (fp32) | Qwen3-8B | 5610 | 0.00 | 0.0 | 0.0 | – | – |
| Batch size (fp32) | Gemma-3-4B | 5610 | 0.00 | 0.0 | 0.0 | – | – |
| Batch size (fp16) | Llama-3.1-8B | 5610 | 0.41 | 3.7 | 3.8 | +0.22 | -0.57 |
| Batch size (fp16) | Qwen3-8B | 5610 | 0.31 | 3.6 | 3.6 | +1.58 | +4.50 |
| Prefill (last prompt token) | Decode (token 20) | |||||||
| Perturbation | Model | GPU(s) | bit-id. (%) | med. rel. | med. ULP | CKA | kNN 10 | diverged (%) |
| Batch size (fp32) | Llama-3.1-8B | A100 | 100.0 | 0 | 0 | 1.0000 | 1.00 | 0.0 |
| Batch size (fp32) | Qwen3-8B | A100 | 100.0 | 0 | 0 | 1.0000 | 1.00 | 0.0 |
| Batch size (fp32) | Gemma-3-4B | L4 | 0.0 | 33 | 1.0000 | 1.00 | 0.0 | |
| Batch size (fp16) | Llama-3.1-8B | L4 | 0.0 | 24,576 | 1.0000 | 0.89 | 3.3 | |
| Batch size (fp16) | Qwen3-8B | L4 | 0.0 | 24,576 | 1.0000 | 0.86 | 4.0 | |
| Stage | Train | Test differs in | cells | changed (%) | mean | max | pp (%) | mean |
|---|---|---|---|---|---|---|---|---|
| prefill | fp32 | batch size only | 144 | 0 | 0.00 | 0.00 | 0.0 | +0.00 |
| precision only | 120 | 28 | 0.04 | 0.38 | 0.0 | +0.00 | ||
| both | 240 | 29 | 0.04 | 0.38 | 0.0 | +0.01 | ||
| fp16 | batch size only | 96 | 7 | 0.01 | 0.19 | 0.0 | -0.00 | |
| precision only | 96 | 23 | 0.03 | 0.28 | 0.0 | +0.01 | ||
| both | 192 | 23 | 0.03 | 0.47 | 0.0 | +0.01 |
| Stage | Extraction GPU | Test differs in | cells | changed (%) | mean | max | mean |
|---|---|---|---|---|---|---|---|
| prefill | same GPU | batch size only | 384 | 17 | 0.02 | 0.38 | +0.00 |
| precision only | 144 | 42 | 0.06 | 0.38 | +0.00 | ||
| both | 288 | 41 | 0.06 | 0.47 | +0.01 | ||
| GPU also differs | precision only | 192 | 20 | 0.03 | 0.28 | -0.00 | |
| both | 384 | 22 | 0.03 | 0.38 | -0.01 | ||
| decode | same GPU | batch size only | 1152 | 50 | 0.18 | 1.78 | -0.01 |
| Dataset | Model | Probe | prefill | gen 5 | gen 10 | gen 20 |
|---|---|---|---|---|---|---|
| rotten tomatoes | Gemma-3-4B | LR | 85.5 | 81.2 | 79.5 | 77.1 |
| rotten tomatoes | Gemma-3-4B | MLP-1 | 85.4 | 80.3 | 78.5 | 76.4 |
| rotten tomatoes | Gemma-3-4B | MLP-3 | 85.6 | 80.1 | 78.6 | 77.0 |
| rotten tomatoes | Llama-3.1-8B | LR | 87.4 | 83.5 | 79.2 | 75.4 |
| rotten tomatoes | Llama-3.1-8B | MLP-1 | 86.6 | 82.7 | 77.9 | 73.6 |
| rotten tomatoes | Llama-3.1-8B | MLP-3 | 86.7 | 82.2 | 78.8 | 73.7 |
Language Model Probing
Language model probing measures what information and capabilities models encode and how those signals relate to their behavior.
See all 280 papers