FireGate: Bounding Behaviour Change Before Training in Continual RL Fine-Tuning
Organizations: Department of Computer Science, Iowa State University, Ames, IA, USA
Abstract
Fine-tuning a deployed language model on one task after another can change behaviour that should stay fixed, such as earlier skills, general chat or refusals. Today, such forgetting is found only after training, on the benchmarks someone chose to run. This work bounds, before training, how often its outputs change on chosen prompt distributions. FireGate places each task's update, such as a new LoRA, behind a gate, which is a classifier on the model's frozen lower layers that decides for each prompt whether the update is used. Where no gate fires, the model computes exactly what the old one computes. As a result, on any prompt distribution, every bounded behaviour score changes by at most the gates' firing rate there over a whole task stream. Calibrating each gate on unlabeled prompts of what must not change fixes that rate before training, with a PAC guarantee, whatever weights training produces. Forgetting is thus bounded by the gate's false-alarm rate, and its price is the gate's power: no update, gated or not, that changes as few protected outputs can change new-task outputs more often than the best test of that level tells new-task prompts from protected ones. On reinforcement-learning streams of up to five tasks, gated training keeps the earlier tasks and changes 3.3% of held-out chat responses, whereas ungated training changes 91.8%. Across seven models, the gain kept behind the gate follows its firing rate on new-task prompts, measured before training. The certificate covers the gated model as deployed, on the prompt distributions sampled for calibration, not against an adversary who searches for prompts that fire the gate.
Figures & tables
| deployed gate | two-sided gate | ||||||
|---|---|---|---|---|---|---|---|
| Experiment | Dolly | 10k | MMLU | Dolly | MMLU | ||
| NQ, Qwen 1.5B | 92.2 | 3.2 [5.1] | 1.7 | 0.0 [0.6] | 90.7 | 2.8 [4.5] | 0.0 [0.6] |
| NQ, Qwen 7B | 97.9 | 2.8 [4.5] | 2.5 | 0.0 [0.6] | 96.1 | 2.0 [3.6] | 0.0 [0.6] |
| NQ, OLMo-2 7B | 96.8 | 2.2 [3.9] | 2.2 | 0.0 [0.6] | 95.0 | 2.2 [3.9] | 0.0 [0.6] |
| IF, Qwen 1.5B | 100.0 | 1.5 [2.9] | – | 99.4 [99.8] | 98.0 | 0.0 [0.7] | 0.0 [0.6] |
| IF, Qwen 7B | 100.0 | 1.8 [3.3] | – | 100.0 [100.0] | 98.0 | 0.0 [0.7] | 0.0 [0.6] |
| ungated | behind the gate | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Model | Task | Chg. | Kept | Chg. | CP | Non-fired | |||
| Qwen2.5-1.5B | IF | +38.7 | 93.3 | 100.0 | +38.7 | +38.7 | 1.5 | 2.9 | 0/4,797 |
| Qwen2.5-1.5B | NQ | +5.2 | 94.2 | 92.2 | +4.8 | +4.7 | 3.2 | 5.1 | 0/9,363 |
| Qwen2.5-7B | IF | +12.9 | 94.6 | 100.0 | +12.9 | +12.9 | 0.8 | 3.3 | 0/3,531 |
| Qwen2.5-7B | NQ | +3.8 | 94.6 | 97.9 | +3.7 | +3.8 | 2.8 | 4.5 | 0/9,310 |
| OLMo-2-7B | NQ | +5.9 | 91.2 | 96.8 | +5.7 | +5.7 | 2.2 | 3.9 | 0/9,303 |
| Deployment | Avg | BWT | Dolly | GB | Time |
|---|---|---|---|---|---|
| Seq-GRPO, ungated | 46.5 1.7 | 3.5 0.7 | 91.8 | 8.1 | 1.00 |
| behind the gate | 46.5 1.7 | 3.5 0.7 | 4.8 | 10.9 | 1.18 |
| behind one gate | 46.3 1.8 | – | 0.0 | – | – |
| FireGate -prompt, gated training | 49.6 2.9 | +0.0 0.0 | 3.3 | 12.5 | 1.25–2.59 |
| Change | Responses changed (%) | Harmful + passage | |||||||
| Method | Gain | Refusal | MMLU | AdvBench | MMLU | Dolly | Gate fires (%) | Refusal | |
| SQuAD 2.0: passage and question, rewarded for the gold answer or for abstaining | |||||||||
| Seq-GRPO | – | +24.4 | 0.3 | 2.9 | 77.1 | 49.3 | 99.3 | – | 36.8 / 74.8 |
| behind the deployed gate | 85.4 | +18.5 | +0.0 | +0.0 | 0.0 | 0.0 | 1.0 | 0.4 / 0.4 | 0.4 / +0.0 |
| behind protect | 100.0 | +24.4 | +0.0 | 0.2 | 0.8 | 0.5 | 46.3 | 98.4 / 100.0 | 36.8 / 74.8 |
| behind protect + passages | 99.8 | +24.3 | +0.0 | +0.0 | 0.0 | 0.0 | 16.3 | 0.8 / 1.6 | 0.8 / 1.2 |
| Con. | Ctx | SQuAD | NQ | IF | IF 7B | 3 tasks | NQ O | NQ L | |
|---|---|---|---|---|---|---|---|---|---|
| HB / SR fires | 0/4.2 | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 |
| ctx. fires | 9.0 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| HB refusal, base | 93 | 93 | 93 | 93 | 93 | 86 | 93 | 96 | 88 |
| HB refusal, ungated | 79 | 51 | 2 | 41 | 4 | +3 | 12 | 2 | 25 |
| HB refusal, gated | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 |
Appendix figures & tables27 assets
Supplementary material from the paper’s appendix.
Appendix
| Statement | Status | Conditions and evidence |
|---|---|---|
| Drift at most the firing rate ( Theorem 3.2 ) | proved | frozen trunk, causal attention; checked exactly |
| Any model behind a prompt-time gate ( Corollary 3.4 ) | proved | the deployed pair, not its forgetting |
| Firing at most per component ( Theorem 3.6 ) | proved | i.i.d. prompts, score fixed before them; components only |
| Firing outside the region ( Proposition 3.8 ) | proved | at most its mass; nothing about prompts inside |
| The Neyman–Pearson limit ( Theorem 4.1 ) | proved | any policy; attained if the ratio reads the trunk |
| Large changes confined ( Corollary 4.2 ) | proved | each reachable model’s region; not one common region |
| Name | What it is | Where it is used |
|---|---|---|
| How the update is deployed | ||
| Gated training | a LoRA trained under its own gate; rollouts on which the gate stays silent carry no gradient | FireGate -prompt and FireGate -anytime rows; Non-fired in Table 2 |
| Switch | any trained model answers where a prompt-time gate fires, the old model elsewhere ( Corollary 3.4 ) | “behind the gate” rows; Table 2 , Figure 4 |
| Where the gate reads | ||
| Prompt-time | FireGate -prompt: reads the last prompt token and decides once per prompt | every switch; most gated runs |
| Anytime | FireGate -anytime: reads every position after the template prefix | Table 10 |
| Choice | Fixed | Evidence |
|---|---|---|
| Split depth, linear classifier, , , Dolly and AdvBench components and their sizes; Dolly, AdvBench, XSTest and MMLU pools | first version; never changed | every later result (before) |
| Task-like component | second version, after a failure: first-version gates fired on MMLU | MMLU informed it; never calibrated on |
| Two-sided region, , shrinkage | after a failure: MMLU firing of the stream gates and of IF at | not MMLU; the jailbreak templates, added later (before) |
| Remedy: harmful requests in the task’s format | after a failure: deployed gates fired on such requests | their held-out split of the same format only |
| Passage component (protect + passages) | after a failure: the protect gate fired on harmful requests with a passage | held-out requests of the same form ( Table 4 ) |
| Twelve stress forms; 10,000 fresh Dolly requests | before any gate was evaluated on them | Appendix I , Table 20 (before) |
| Dolly (%) | AdvBench | MMLU | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Run | Decoding | Fire (CP) | Chg. | Chg. | Chg. | TV | Non-fired | ||
| Stream, FireGate -prompt | 3.8 (5.7) | 2.5 | 0.0 | +0.0 | 3.0 | 0.4 | 0.0 | 0 | |
| Stream, FireGate -prompt | 3.8 (5.7) | 3.0 | 0.0 | +0.0 | 2.4 | +0.2 | 0.0 | 0 | |
| Stream, FireGate -prompt | , top- 0.9 | 3.8 (5.7) | 2.5 | 0.0 | +0.0 | 2.6 | 0.8 | 0.0 | 0 |
| Stream, FireGate -anytime | 1.2 (2.6) | 0.8 | 0.0 | +0.0 | 6.0 | +0.8 | 0.0 | 0 | |
| Stream, FireGate -anytime | 2.0 (3.6) | 1.5 | 0.0 | +0.0 | 6.8 | +0.4 | 0.0 | 0 | |
| Stream tasks | vs. base (pts) | Dolly (%) | Held-out bound (%) | ||||||||||
| Method | GSM8K | Countdown | K&K | Avg | BWT | Refusal | Over-ref. | MMLU | Chg. | Leak | ref. | off-ref. | |
| Base model (A100) | – | 74.4 0.0 | 6.8 0.0 | 13.2 0.0 | 31.5 0.0 | – | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 0.0 | 0.0 | 0.0 |
| Base model (H200) | – | 73.2 | 7.8 | 13.4 | 31.5 | – | 0.0 | 0.0 | 0.0 | 0.0 | 0.2 | 0.0 | 0.0 |
| Seq-GRPO A | 3 | 74.7 4.1 | 61.4 7.8 | 35.3 5.4 | 57.2 4.9 | 4.5 5.2 | 0.5 0.5 | 15.5 15.4 | +1.0 1.4 | 93.4 3.8 | 1.5 2.4 | none | |
| + KL A | 3 | 77.5 2.0 | 58.3 4.1 | 31.9 2.1 | 55.9 1.9 | +5.3 8.8 | 0.1 0.2 | 17.2 2.1 | +0.7 1.0 | 90.8 0.4 | 0.1 0.1 | none | |
| + Replay A | 3 | 75.5 0.6 | 63.2 1.3 | 35.9 2.2 | 58.2 0.1 | +1.2 1.7 | +0.0 0.0 | 14.3 0.9 | +0.9 0.3 | 90.2 4.2 | 1.3 1.9 | none | |
| Experiment | Task | Deployed | Worst | Best | Solved | Features ( ) | Random | ||
|---|---|---|---|---|---|---|---|---|---|
| Concise, Q-1.5B | Concise | 1.4 | +73.6 | +1.0 | +0.0 | +1.4 | +0.0 | +0.6 (0.31) | +1.0 [+0.6, +1.4] |
| Concise-ctx, Q-1.5B | Concise-ctx | 3.2 | +65.2 | +2.6 | +0.0 | +3.2 | +0.0 | +1.0 (0.20) | +2.1 [+1.4, +2.8] |
| NQ, OLMo-2-1124-7B | NQ | 95.8 | +5.9 | +5.7 | +1.7 | +8.5 | +5.8 | +5.5 (0.00) | +5.7 [+5.1, +6.1] |
| NQ, Q-1.5B | NQ | 90.6 | +5.2 | +4.7 | 1.9 | +7.7 | +4.9 | +4.9 (-0.00) | +4.7 [+4.0, +5.4] |
| NQ, Q-7B | NQ | 96.4 | +3.8 | +3.8 | +0.9 | +6.1 | +3.4 | +3.7 (-0.01) | +3.7 [+3.3, +4.0] |
| Gate | AUROC | Threshold | Power | Dolly | CP | MMLU | AdvB. | Gain sw | Chg. sw |
|---|---|---|---|---|---|---|---|---|---|
| NQ | |||||||||
| linear classifier (logistic) | 0.989 | natural | 96.9 | 6.2 | 8.6 | 0.0 | 0.0 | +5.1 | 6.2 |
| 92.2 | 3.2 | 5.1 | 0.0 | 0.0 | +4.7 | 3.2 | |||
| 98.3 | 9.5 | 12.3 | 0.0 | 0.0 | +5.1 | 9.5 | |||
| Gaussian (LDA) | 0.993 | natural | 98.7 | 7.8 | 10.3 | 0.2 | 0.0 | +5.3 | 7.8 |
| 95.4 | 3.2 | 5.1 | 0.0 | 0.0 | +4.7 | 3.2 | |||
| Experiment | Gate | Power | Dolly | CP | XSTest | MMLU | Wrap | Sys | JB |
|---|---|---|---|---|---|---|---|---|---|
| NQ, 1.5B | deployed | 92.2 | 3.2 | 5.1 | 2.0 | 0.0 | – | 0.0 | 0.0 |
| + region | 90.7 | 2.8 | 4.5 | 2.0 | 0.0 | – | 0.0 | 0.0 | |
| NQ, 7B | deployed | 97.9 | 2.8 | 4.5 | 1.6 | 0.0 | – | 0.0 | 0.0 |
| + region | 96.1 | 2.0 | 3.6 | 1.6 | 0.0 | – | 0.0 | 0.0 | |
| NQ, OLMo-2 | deployed | 96.8 | 2.2 | 3.9 | 2.4 | 0.0 | – | 0.0 | 0.0 |
| + region | 95.0 | 2.2 | 3.9 | 2.4 | 0.0 | – | 0.0 | 0.0 |
| NQ | Change on reference | Fires (%) | ||||||||
| Method | gain | Chg. | Leak | Refusal | Over-ref. | MMLU | NQ | Dolly | CP | |
| Seq-GRPO A | 3 | +5.2 0.9 | 94.2 1.8 | +0.0 0.0 | 8.8 2.8 | 50.3 2.0 | +0.2 0.2 | – | – | none |
| Seq, scaled A | 3 | +3.0 0.3 | 74.1 1.2 | +0.0 0.0 | 0.3 0.5 | 27.7 2.0 | +0.0 0.0 | – | – | none |
| Seq, scaled A | 3 | +4.6 0.4 | 86.4 2.8 | +0.0 0.0 | 0.8 0.4 | 40.7 1.3 | +0.3 0.3 | – | – | none |
| Seq, scaled A | 3 | +4.9 1.2 | 92.2 1.8 | +0.0 0.0 | 4.1 1.3 | 47.5 2.1 | +0.1 0.4 | – | – | none |
| + KL A | 3 | +4.9 0.4 | 87.8 1.1 | +0.0 0.0 | 0.3 0.2 | 38.7 1.2 | +1.0 0.9 | – | – | none |
| union fires | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Stream | Score | 1 | 2 | 3 | 4 | 5 | Dolly | AdvBench | MMLU |
| 3-task stream, Qwen2.5-1.5B | linear classifier | 100.0 | 100.0 | 100.0 | – | – | 3.2 | 0.0 | 1.6 |
| Gaussian ratio | 100.0 | 100.0 | 100.0 | – | – | 1.8 | 0.0 | 99.6 | |
| 15-NN similarity | 100.0 | 100.0 | 100.0 | – | – | 2.0 | 0.0 | 42.8 | |
| MLP | 100.0 | 100.0 | 100.0 | – | – | 1.8 | 0.4 | 0.6 | |
| 3-task stream, Qwen2.5-7B | linear classifier | 100.0 | 100.0 | 100.0 | – | – | 1.8 | 0.0 | 12.4 |
| linear classifier | Gaussian ratio | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Model | Task | Dolly | MMLU | Gain | Dolly | MMLU | Gain | |||
| Qwen2.5-1.5B | IF | +38.7 | 100.0 | 2.0 [3.6] | 100.0 | +38.7 | 100.0 | 0.0 [0.7] | 100.0 | +38.7 |
| Qwen2.5-1.5B | NQ | +5.2 | 92.5 | 2.8 [4.5] | 0.8 | +4.7 | 95.4 | 3.0 [4.8] | 0.0 | +4.7 |
| Qwen2.5-7B | IF | +12.9 | 100.0 | 2.2 [3.9] | 100.0 | +12.9 | 100.0 | 2.5 [4.2] | 100.0 | +12.9 |
| Qwen2.5-7B | NQ | +3.8 | 97.6 | 2.5 [4.2] | 0.0 | +3.5 | 98.6 | 2.0 [3.6] | 0.0 | +3.7 |
| OLMo-2-7B | NQ | +5.9 | 95.7 | 2.0 [3.6] | 0.0 | +5.3 | 97.6 | 2.8 [4.5] | 0.0 | +5.6 |
| (%) | Seq-GRPO (points) | |||||||
|---|---|---|---|---|---|---|---|---|
| Task (models) | Reference | AUROC | LM | linear | Dolly [bound] | Harm. | Gain | |
| IF (7) | deployed | 0.953 | 20.5 | 99.9–100 | 0.2 [1.2] | 0.0 | +0.1 to +12.0 | +11.4 to +38.7 |
| NQ (7) | deployed | 0.773 | 2.9 | 84.5–97.9 | 1.8 [3.3] | 0.0 | 0.2 to +0.4 | +3.8 to +10.8 |
| Concise-ctx (1) | deployed | 0.741 | 0.3 | 3.8 | 0.0 [0.7] | 0.0 | +0.0 | +65.2 |
| protect + passages | 0.3 | 11.0 | 0.0 [0.7] | 0.0 | +0.0 | |||
| SQuAD 2.0 (1) | deployed | 0.687 | 0.0 | 85.4 | 0.2 [1.2] | 0.0 | +0.0 | +24.4 |
| Protected | Other pools | Harmful forms | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Experiment, gate | Region | Score | AdvBench | Harm. + pass. | MMLU | Dolly | XSTest | St. 1 | St. 2 | Gain | |
| SQuAD 2.0, protect + passages | no | linear classifier ∗ | 99.8 | 0.0 | 1.6 | 0.0 | 16.5 | 0.0 | 1.6 | 2.4 | +24.3 |
| no | Gaussian ratio | 99.7 | 0.0 | 1.2 | 0.0 | 17.5 | 0.0 | 1.2 | 0.8 | +24.4 | |
| no | 15-NN similarity | 98.4 | 0.0 | 0.8 | 0.0 | 13.0 | 0.0 | 0.8 | 0.4 | +23.9 | |
| no | MLP | 97.7 | 0.0 | 0.4 | 0.4 | 14.0 | 0.0 | 0.4 | 2.4 | +23.9 | |
| yes | linear classifier ∗ | 98.0 | 0.0 | 1.6 | 0.0 | 11.8 | 0.0 | 1.6 | 1.6 | +23.7 | |
| behind gate | ||||||
| Run | Seeds | Gain | Chg. | MMLU | Gain | Chg. |
| IF: LoRA GRPO, Seq-GRPO | 3 | +38.7 0.2 | 93.3 | 3.7 | +38.7 | 1.5 |
| LoRA GRPO, FireGate -prompt | 3 | +39.0 0.3 | 1.3 | 0.1 | – | – |
| full-rank GRPO, Seq-GRPO | 3 | +39.0 0.3 | 93.4 | +0.1 | +39.0 | 1.5 |
| learning rate | 1 | +39.0 | 94.0 | +0.0 | +39.0 | 1.5 |
| all blocks | 3 | +39.1 0.1 | 95.0 | 0.7 | +39.1 | 1.5 |
| Dolly (%) | fresh Dolly (%) | AdvBench (%) | MMLU (%) | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Experiment | Target | Cal. | Held-out | Bound | Held-out | Bound | Cal. | Held-out | Bound | Held-out | Bound | |||
| Concise, Qwen2.5-1.5B | 3 | 1.6 | 3/400 | 1.9 | 1.00 | – | – | – | 0.0 | 0/250 | 1.2 | 1.00 | 2.0 | 3.4 |
| Concise-ctx, Qwen2.5-1.5B | 3 | 1.6 | 7/400 | 3.3 | 0.96 | – | – | – | 0.0 | 0/250 | 1.2 | 1.00 | 0.0 | 0.6 |
| SQuAD 2.0, Qwen2.5-1.5B | 3 | 1.6 | 4/400 | 2.3 | 1.00 | 149/10000 | 1.7 | 1.00 | 0.0 | 0/250 | 1.2 | 1.00 | 0.0 | 0.6 |
| NQ, Qwen2.5-1.5B | 3 | 1.6 | 13/400 | 5.1 | 0.42 | 146/10000 | 1.7 | 1.00 | 0.0 | 0/250 | 1.2 | 1.00 | 0.0 | 0.6 |
| IF, Qwen2.5-1.5B | 3 | 1.6 | 6/400 | 2.9 | 0.98 | – | – | – | 0.0 | 0/250 | 1.2 | 1.00 | 99.4 | 99.8 |
| largest firing (%) | largest refusal loss (points) | |||||||
|---|---|---|---|---|---|---|---|---|
| Experiment | Forms | dep. | two-s. | rem. | both | Seq | Seq sw | FireGate -prompt |
| Concise, 1.5B | 2 | 0.8 | 0.4 | – | – | 96.4 | 0.8 | 0.0 |
| Concise-ctx, 1.5B | 2 | 1.2 | 0.8 | – | – | 86.0 | 0.0 | 0.0 |
| SQuAD 2.0, 1.5B | 4 | 0.4 | 0.4 | – | – | 74.8 | 0.4 | 0.0 |
| NQ, 1.5B | 2 | 0.0 | 0.0 | – | – | 32.4 | 0.0 | 0.0 |
| NQ, 7B | 2 | 0.0 | 0.0 | – | – | – | – | – |
| Seq-GRPO | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Task | Gate | Fires, passage | Gain | Refusal | Refusal, passage | MMLU | Over-ref. | Dolly | |
| Concise | none | – | – | +73.6 | 85.1 | 96.4 / 93.2 | 27.1 | 52.0 | 97.4 |
| protect | 95.1 | 95.2 / 99.6 | +70.0 | +0.0 | 92.0 / 92.8 | +0.0 | 51.2 | 90.9 | |
| + passages | 23.3 | 0.0 / 0.0 | +17.2 | +0.0 | +0.0 / +0.0 | +0.0 | 11.6 | 22.7 | |
| Concise-ctx | none | – | – | +65.2 | 11.5 | 86.0 / 82.0 | 3.5 | 51.2 | 96.1 |
| protect | 100.0 | 99.6 / 100.0 | +65.2 | 0.4 | 85.6 / 82.0 | +0.1 | +0.0 | 38.2 | |
| Experiment | Gate | Para. | New pass. | Pass. first | Code block | Sys.+pass. | Turn+pass. | 3 pass. | Typos |
|---|---|---|---|---|---|---|---|---|---|
| Concise | deployed | 0.0 | 0.4 | 1.6 | 0.0 | 0.0 | 1.2 | 2.4 | 0.0 |
| two-sided | 0.0 | 0.0 | 0.4 | 0.0 | 0.0 | 0.0 | 2.0 | 0.0 | |
| protect | 71.6 | 95.2 | 18.8 | 3.2 | 80.4 | 99.2 | 100.0 | 62.4 | |
| protect + passages | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.8 | |
| Concise-ctx | deployed | 0.0 | 0.4 | 3.6 | 0.0 | 0.0 | 54.0 | 7.6 | 0.0 |
| two-sided | 0.0 | 0.4 | 0.4 | 0.0 | 0.0 | 0.4 | 6.8 | 0.0 |
| Change | Responses changed (%) | Harmful + passage | |||||||
| Method | Gain | Refusal | MMLU | AdvBench | MMLU | Dolly | Gate fires (%) | Refusal | |
| Concise: plain Dolly requests, rewarded for a short answer that does not refuse | |||||||||
| Seq-GRPO | – | +73.6 | 85.1 | 27.1 | 99.9 | 99.1 | 97.4 | – | 96.4 / 93.2 |
| behind the deployed gate | 0.7 | +1.0 | +0.0 | 0.5 | 0.0 | 2.0 | 0.7 | 0.8 / 0.8 | 0.8 / 0.8 |
| behind protect | 95.1 | +70.0 | +0.0 | +0.0 | 0.0 | 0.0 | 90.9 | 95.2 / 99.6 | 92.0 / 92.8 |
| behind protect + passages | 23.3 | +17.2 | +0.0 | +0.0 | 0.0 | 0.0 | 22.7 | 0.0 / 0.0 | +0.0 / +0.0 |
| chosen gate fires (%) | deployed fires (%) | refusal, ungated | refusal, behind chosen | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Experiment | Chosen gate | HB | HB ctx. | SR | HB ctx. | SR | HB | HB ctx. | SR | HB | HB ctx. | SR |
| Concise, Qwen2.5-1.5B | protect + passages | 0.0 [1.5] | 9.0 [15.2] | 4.2 [6.7] | 38.0 | 7.6 | 79.0 | 30.0 | 86.8 | +0.0 | 2.0 | 3.5 |
| Concise-ctx, Qwen2.5-1.5B | protect + passages | 0.0 [1.5] | 1.0 [4.7] | 0.0 [1.0] | 38.0 | 0.0 | 51.0 | 27.0 | 50.3 | +0.0 | +0.0 | +0.0 |
| SQuAD 2.0, Qwen2.5-1.5B | protect + passages | 0.0 [1.5] | 0.0 [3.0] | 0.0 [1.0] | 0.0 | 0.0 | 1.5 | +4.0 | 19.1 | +0.0 | +0.0 | +0.0 |
| NQ, Qwen2.5-1.5B | two-sided | 0.0 [1.5] | 0.0 [3.0] | 0.0 [1.0] | 0.0 | 0.0 | 41.0 | 20.0 | 28.1 | +0.0 | +0.0 | +0.0 |
| IF, Qwen2.5-1.5B | two-sided + remedy | 0.0 [1.5] | 0.0 [3.0] | 0.0 [1.0] | 92.0 | 1.4 | 3.5 | +5.0 | 0.7 | +0.0 | +0.0 | +0.0 |
| deployed gate | two-sided gate, with the remedy on IF | ||||||||||||
| Model | Task | Kept | CP | MMLU | JB | Kept | Chg. | CP | MMLU | JB | |||
| Qwen2.5-1.5B | IF | +38.7 | 100.0 | +38.7 | 2.9 | 99.4 | 100.0 | 96.5 | +37.0 | 0.0 | 0.7 | 0.0 | 0.0 |
| Qwen2.5-1.5B | NQ | +5.2 | 92.2 | +4.7 | 5.1 | 0.0 | 0.0 | 90.7 | +4.7 | 2.8 | 4.5 | 0.0 | 0.0 |
| Qwen2.5-7B | IF | +12.9 | 100.0 | +12.9 | 3.3 | 100.0 | 100.0 | 97.6 | +12.7 | 0.0 | 0.7 | 0.0 | 0.0 |
| Qwen2.5-7B | NQ | +3.8 | 97.9 | +3.8 | 4.5 | 0.0 | 0.0 | 96.1 | +3.7 | 2.0 | 3.6 | 0.0 | 0.0 |
| OLMo-2-7B | NQ | +5.9 | 96.8 | +5.7 | 3.9 | 0.0 | 0.0 | 95.0 | +5.6 | 2.3 | 3.9 | 0.0 | 0.0 |
| harmful | benign | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Experiment | Gate | MJ en | MJ hi | MJ mid | MJ lo | HB turn 2 | HB sys. | OA en | OA other | OA turn 2 | Dolly sys. |
| Concise, Qwen2.5-1.5B | protect + passages ∗ | 31.1 [35.7] | 6.7 [8.2] | 32.2 [34.8] | 20.3 [22.6] | 0.0 [1.5] | 0.0 [1.5] | 18.1 [20.2] | 6.3 [7.7] | 4.0 [5.2] | 8.5 [11.2] |
| deployed | 1.6 | 1.4 | 0.2 | 1.3 | 32.0 | 15.5 | 5.1 | 1.2 | 67.5 | 38.8 | |
| Concise-ctx, Qwen2.5-1.5B | protect + passages ∗ | 0.0 [0.9] | 0.0 [0.3] | 0.0 [0.3] | 0.0 [0.3] | 0.0 [1.5] | 0.0 [1.5] | 0.0 [0.3] | 0.1 [0.5] | 0.0 [0.3] | 0.0 [0.7] |
| deployed | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 0.3 | 0.1 | 9.2 | |
| SQuAD 2.0, Qwen2.5-1.5B | protect + passages ∗ | 0.0 [0.9] | 0.0 [0.3] | 0.0 [0.3] | 0.0 [0.3] | 0.0 [1.5] | 0.0 [1.5] | 0.1 [0.5] | 0.0 [0.3] | 0.0 [0.3] | 0.0 [0.7] |
| refusal on fired (%) | ||||||||
|---|---|---|---|---|---|---|---|---|
| Experiment | Gate | Fired (%) | base | gated | Newly answered (%) | [95% CI] | worst pool (%) | |
| Concise, Qwen2.5-1.5B | protect + passages ∗ | 2438 | 6.5 | 94.3 | 3.1 | 5.95 | [5.08, 6.96] | xstest 22.17 |
| deployed | 2438 | 2.6 | 50.0 | 0.0 | 1.31 | [0.93, 1.85] | ext_hb_ctx 8.00 | |
| trained | 1850 | 0.0 | – | – | 0.00 | [0.00, 0.21] | xstest 0.00 | |
| Concise-ctx, Qwen2.5-1.5B | protect + passages ∗ | 2438 | 0.0 | 0.0 | 0.0 | 0.00 | [0.00, 0.16] | xstest 0.00 |
| deployed | 2438 | 1.7 | 29.3 | 0.0 | 0.49 | [0.28, 0.86] | ext_hb_ctx 12.00 | |
| Set | chosen | wide [bound] | |
|---|---|---|---|
| wide component (one row per request) | 246 | 8.1 | 0.0 [1.2] |
| HarmBench | 62 | 0.0 | 0.0 [4.7] |
| HarmBench as a second turn | 62 | 0.0 | 0.0 [4.7] |
| HarmBench behind a system prompt | 62 | 0.0 | 0.0 [4.7] |
| StrongREJECT | 90 | 2.2 | 0.0 [3.3] |
| MultiJail, English | 94 | 36.2 | 0.0 [3.1] |
| Prediction | Measured | Result | |
|---|---|---|---|
| P1 | no change where the gate is silent | 0 of 9,405 | pass |
| P2 | change firing, behind the gate | 24 of 24 checks | pass |
| P3 | held-out firing consistent with 3% | Dolly 3.5, AdvBench 0.0; 10k 2.0 | pass |
| P4 | ungated changes of Dolly | 95.8, 98.5, 93.2 | pass |
| P5 | kept within 1 point of | +23.1 vs +22.3 | pass |
| P6 | external sets: 3/5%; refusal 3 | 0.0, 0.0, 0.0; +0.0, +0.0, +0.0 | pass |