Why Constrained Updates Still Forget: A Functional-Path Analysis of Continual SFT
Organizations: The Chinese University of Hong Kong · Beijing University of Posts and Telecommunications
Abstract
Supervised fine-tuning adapts language models to specialized tasks but can disrupt previously acquired behavior. Existing approaches constrain parameters, gradients, or replay objectives, yet the connection between the protected object, the intervening trajectory, and retained outputs remains unclear. We develop a functional-path account that decomposes old-loss changes along realized updates into the controlled direction, gradient staleness, probe mismatch, and finite-step effects. The account yields a conditional refresh budget and identifies the restoring direction supplied by informative replay. Matched QLoRA interventions separate constraint granularity from placement before or after Adam: placement strongly affects retention across the studied code-label audits, whereas the granularity interaction depends on the endpoint. Checkpointed generation separates endpoint recovery from higher sampled-path accuracy, and matched replay schedules reveal loss exposure concealed by final scores. A sequential-task comparison extends this distinction to backward transfer: subspace regularization and projection improve average retention while trading off different old tasks; supervised replay protects both more consistently in this setting. Additional response interfaces distinguish content gains from exact-response retention. These findings connect update-level protection to task-wise behavior and motivate mitigation through explicit functional anchors, trajectory evaluation, and joint old/new auditing.
Figures & tables
| Method | Ref. | Strict | New | F/8 |
|---|---|---|---|---|
| Plain | 5.43 | 3.65 | 92.40 | 0 |
| Agg./pre | 97.83 | 54.58 | 92.00 | 0 |
| Agg./post | 7.07 | 3.65 | 93.20 | 0 |
| Str./pre | 96.74 | 77.40 | 89.01 | 3 |
| Str./post | 70.65 | 24.27 | 93.55 | 0 |
| Replay 10% | 97.83 | 73.96 | 93.80 | 1 |
| Task | Method | Legacy Ref. | Independent Strict | New Content |
|---|---|---|---|---|
| Natural sentiment | Plain | 47.83 | 99.38 | 94.43 |
| Replay | 100.00 | 90.42 | 93.68 | |
| Structured extraction | Plain | 72.83 | 97.92 | 100.00 |
| Replay | 94.57 | 75.21 | 100.00 |
| Method | AG News | SST-2 |
|---|---|---|
| Plain | ||
| Replay 10% | ||
| Task-GEM | ||
| Adapter-EWC | ||
| CLoRA | ||
| OPLoRA |
Appendix figures & tables45 assets
Supplementary material from the paper’s appendix.
Appendix
| A. Schedule summaries (eight seeds per cell) | ||||
|---|---|---|---|---|
| Model | Schedule | Signed AUC | ||
| Mistral | Uniform | -0.549378 | 0.000000 | 0.000000 |
| Mistral | Front | -0.580445 | 0.000000 | 0.000000 |
| Mistral | Back | 0.045054 | 0.291597 | 1.005464 |
| Qwen | Uniform | -0.488842 | 0.000000 | 0.000000 |
| Qwen | Front | -0.537497 | 0.000000 | 0.000000 |
| Model | Method Plain | New (pp) | 95% CI (pp) | NI |
|---|---|---|---|---|
| Mistral | Replay10 | +1.15 | [-2.88, +5.19] | Established |
| Mistral | -5.90 | [-20.83, +9.02] | Not established | |
| Mistral | I-GEM | -0.04 | [-2.88, +2.79] | Established |
| Qwen | Replay10 | +0.29 | [-0.83, +1.42] | Established |
| Qwen | -0.04 | [-0.79, +0.71] | Established | |
| Qwen | I-GEM | -0.23 | [-0.70, +0.24] | Established |
| Model | Method | Old (%) | New (%) | AUC | F/ | |
|---|---|---|---|---|---|---|
| Mistral | Plain SFT | 8 | 3.26 | 92.50 | 0.7402 | 0/8 |
| Mistral | Supervised 10% | 8 | 98.37 | 93.66 | -0.5494 | 8/8 |
| Mistral | Adam projection | 8 | 3.80 | 92.53 | 0.4350 | 0/8 |
| Mistral | Adam projection | 8 | 3.80 | 93.43 | 0.2879 | 0/8 |
| Mistral | Adam projection | 8 | 4.35 | 92.36 | 0.4070 | 0/8 |
| Mistral | Adam projection | 8 | 4.35 | 86.60 | 0.2876 | 0/8 |
| Model | Contrast | Mean | 95% CI | Holm | |
|---|---|---|---|---|---|
| Refresh and coverage: validation-NLL AUC | |||||
| Mistral | Refresh: at | 8 | -0.1471 | [-0.3464, 0.0522] | 0.4219 |
| Mistral | Coverage: at | 8 | -0.0280 | [-0.2713, 0.2153] | 1.0000 |
| Mistral | Refresh coverage | 8 | 0.0277 | [-0.1477, 0.2030] | 1.0000 |
| Qwen | Refresh: at | 8 | -0.0039 | [-0.0102, 0.0023] | 0.1953 |
| Qwen | Coverage: at | 8 | -0.0132 | [-0.0198, -0.0065] | 0.0234 |
| Mistral | Qwen | |||||||
|---|---|---|---|---|---|---|---|---|
| Method | Old | New | AUC | F/8 | Old | New | AUC | F/8 |
| Plain | 3.26 | 92.50 | .7402 | 0 | 99.26 | 94.74 | .0234 | 3 |
| Replay 10% | 98.37 | 93.66 | 8 | 100.00 | 95.04 | 8 | ||
| 3.80 | 92.53 | .4350 | 0 | 100.00 | 95.10 | 4 | ||
| 3.80 | 93.43 | .2879 | 0 | 100.00 | 94.18 | 7 | ||
| 4.35 | 92.36 | .4070 | 0 | 100.00 | 94.07 | 5 | ||
| Model | Method | |||||
|---|---|---|---|---|---|---|
| Mistral | Plain | 1.5597 | .4220 | .8423 | .3320 | |
| Replay10 | 3.7386 | .2808 | 1.1578 | |||
| .6394 | 1.9386 | .3312 | .4737 | |||
| .2703 | .0000 | .4634 | .3282 | |||
| .4511 | .8747 | .2311 | .2804 | |||
| .0000 | .2378 | .3420 |
| Model | Method | Old (%) | New (%) | F / 8 |
|---|---|---|---|---|
| Mistral | Plain | 2.72 | 94.64 | 0 |
| Fixed 10% replay | 97.28 | 94.49 | 8 | |
| Adam + 2% replay | 96.20 | 93.68 | 2 | |
| Qwen | Plain | 100.00 | 95.10 | 2 |
| Fixed 10% replay | 100.00 | 95.27 | 8 | |
| Adam + 2% replay | 100.00 | 94.39 | 8 |
| Model | Train | Controller | Audit | Generation audit composition |
|---|---|---|---|---|
| Mistral | 487 | 98 | 96 | 23: 2 F, 17 I, 4 M |
| Qwen | 407 | 71 | 74 | 17: 1 F, 16 A |
| OLMo | 355 | 57 | 66 | 26: 3 F, 23 A |
| Family | Members and correction scope |
|---|---|
| Standard generation | Fixed 10% replay; MSSR paper-spec; pure Adam projection. Three tests per model. |
| Equal-MTE generation | Fixed 10%; pure Adam; Adam plus 2%. Three tests per model. |
| Long generation | Fixed 10%; Adam plus 2%. Two tests per model. |
| Bank sensitivity | Fixed 10%; Adam plus 2%. Two tests within each Qwen bank; the reported token family is supporting, distinct from generation. |
| Mechanistic head-to-head | Adam minus raw projection; dynamic minus static mask; Adam plus 2% minus fixed 10%. Three tests per model. |
| Phase | Model / bank | Strategy | Old (%) | New (%) | F/8 |
|---|---|---|---|---|---|
| Mechanism | Mistral | Plain | 2.72 | 94.28 | 0/8 |
| Mechanism | Mistral | Fixed 10% | 96.74 | 91.92 | 8/8 |
| Mechanism | Mistral | Retain KL | 79.35 | 93.51 | 3/8 |
| Mechanism | Mistral | Generic KL | 11.41 | 91.48 | 0/8 |
| Mechanism | Mistral | Adaptive | 96.20 | 92.17 | 8/8 |
| Mechanism | Mistral | MSSR | 4.89 | 92.09 | 0/8 |
| Replay information | Old-loss AUC protection [95% paired CI] |
|---|---|
| Source-normalized supervision | |
| Global-normalized supervision | |
| Teacher KL | |
| Input only |
| Bank | Candidates | Eligible | Selected | Qualification/interface |
|---|---|---|---|---|
| Legacy | 23 | 23 | 23 | Original raw prompts; reference-length exact |
| Independent A | 240 | 239 | 60 | Native chat; fixed-cap strict EOS |
| Independent B | 240 | 199 | 60 | Different templates/content; fixed-cap strict EOS |
| Check | Result |
|---|---|
| Scoring-field mismatches | 0 / 2,004,080 |
| Aggregate-field mismatches | 0 / 91,968 |
| Formal , : all checkpoints | 58 / 148,400 records |
| Formal , : final checkpoint | 17 / 47,704 records |
| Final adapters / target records / controls | 13 / 17 / 17 |
| Scored / original-kwargs calls | 408 / 68 |
| Task | Method | L | A | B | New R | New S | New C | F/ | |
|---|---|---|---|---|---|---|---|---|---|
| Code | Plain | 8 | 5.43 | 3.13 | 4.17 | 92.40 | 92.40 | 92.40 | 0/8 |
| Code | Agg./pre | 8 | 97.83 | 43.96 | 65.21 | 92.00 | 92.00 | 92.00 | 0/8 |
| Code | Agg./post | 8 | 7.07 | 3.13 | 4.17 | 93.20 | 93.20 | 93.20 | 0/8 |
| Code | Str./pre | 8 | 96.74 | 77.92 | 76.88 | 89.01 | 89.01 | 89.01 | 3/8 |
| Code | Str./post | 8 | 70.65 | 19.79 | 28.75 | 93.55 | 93.55 | 93.55 | 0/8 |
| Code | Replay10 | 8 | 97.83 | 65.21 | 82.71 | 93.80 | 93.80 | 93.80 | 1/8 |
| Task | Method | Legacy Ref. | Strict A/B | New Content | New Content |
|---|---|---|---|---|---|
| Code | Plain | ||||
| Code | Agg./pre | ||||
| Code | Agg./post | ||||
| Code | Str./pre | ||||
| Code | Str./post | ||||
| Code | Replay10 |
| Task | Method | Seed | Legacy Ref. | Strict A/B | New | NLL AUC | AUC + | F |
|---|---|---|---|---|---|---|---|---|
| Code | Plain | 63001 | 8.70 | 15.83 | 94.97 | 0.3601 | 0.3601 | 0 |
| Code | Plain | 63002 | 0.00 | 0.00 | 87.77 | 1.3287 | 1.3287 | 0 |
| Code | Plain | 63003 | 4.35 | 0.00 | 88.78 | 1.2420 | 1.2420 | 0 |
| Code | Plain | 63004 | 4.35 | 0.00 | 93.63 | 0.9098 | 0.9098 | 0 |
| Code | Plain | 63005 | 8.70 | 0.00 | 94.64 | 0.7481 | 0.7481 | 0 |
| Code | Plain | 63006 | 4.35 | 0.00 | 93.80 | 1.0052 | 1.0052 | 0 |
| Task | Method | Legacy | Bank A | Bank B | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Ref. | Content | Strict | Ref. | Content | Strict | Ref. | Content | Strict | ||
| Code | Plain | 5.43 | 5.43 | 0.00 | 3.13 | 3.13 | 3.13 | 3.96 | 6.46 | 4.17 |
| Code | Agg./pre | 97.83 | 97.28 | 88.04 | 43.75 | 43.96 | 43.96 | 65.21 | 65.21 | 65.21 |
| Code | Agg./post | 7.07 | 7.61 | 2.72 | 3.13 | 3.13 | 3.13 | 3.75 | 6.25 | 4.17 |
| Code | Str./pre | 96.74 | 96.74 | 89.67 | 77.92 | 81.25 | 77.92 | 76.46 | 80.63 | 76.88 |
| Code | Str./post | 70.65 | 71.20 | 65.76 | 20.00 | 19.79 | 19.79 | 28.96 | 31.46 | 28.75 |
| Endpoint | Contrast | Estimate | 95% CI | Holm |
|---|---|---|---|---|
| Legacy Ref. | Granularity | 31.25 | 0.03125 | |
| Legacy Ref. | Post minus pre | -58.42 | 0.02344 | |
| Legacy Ref. | Interaction | 64.67 | 0.03125 | |
| Independent Strict | Granularity | 21.72 | – | |
| Independent Strict | Interaction | -2.19 | – | |
| Independent Strict | Post minus pre | -52.03 | – |
| Effect | Registered | Same-output [95% CI] |
| Granularity | ||
| Post minus pre | ||
| Interaction |
| Task | Old Strict [95% CI] | New Content [95% CI] | Old exact | New NI | |
|---|---|---|---|---|---|
| Code | 8 | .0078125 | Established | ||
| Natural | 4 | – | Not assessed | ||
| Extraction | 4 | – | Not assessed |
| Task | Method | Signed AUC [95% CI] | AUC + [95% CI] | ||
|---|---|---|---|---|---|
| Code | Plain | 1.437 | 0.819 | ||
| Code | Agg./pre | 0.316 | 0.056 | ||
| Code | Agg./post | 0.563 | 0.597 | ||
| Code | Str./pre | 0.008 | 0.000 | ||
| Code | Str./post | 0.071 | 0.000 | ||
| Code | Replay10 | 0.000 | 0.000 |
| Task | Method | Legacy | Bank A | Bank B |
|---|---|---|---|---|
| Code | Plain | |||
| Code | Agg./pre | |||
| Code | Agg./post | |||
| Code | Str./pre | |||
| Code | Str./post | |||
| Code | Replay10 |
| Branch | Scale | 95% CI for | ||||
|---|---|---|---|---|---|---|
| Agg./pre | 1.0 | -0.01233 | -0.01415 | 0.00182 | 0.01118 | |
| Agg./pre | 0.5 | -0.00584 | -0.00708 | 0.00124 | 0.00946 | |
| Agg./pre | 0.25 | -0.00352 | -0.00354 | 0.00002 | 0.00927 | |
| Agg./post | 1.0 | -0.01510 | -0.01796 | 0.00286 | 0.01114 | |
| Agg./post | 0.5 | -0.00861 | -0.00898 | 0.00037 | 0.00899 | |
| Agg./post | 0.25 | -0.00502 | -0.00449 | -0.00053 | 0.00810 |
| Contrast | Mean | Unadjusted 95% seed CI |
|---|---|---|
| Aggregate: post pre | -0.002779 | |
| Interaction | 0.004515 | |
| Post: strata aggregate | -0.000960 | |
| Stratum-wise: post pre | 0.001736 | |
| Pre: strata aggregate | -0.005475 |
| Task | Method | Aggregate | Raw conflict | Current NLL | |
|---|---|---|---|---|---|
| Code | Plain | ||||
| Code | Agg./pre | ||||
| Code | Agg./post | ||||
| Code | Str./pre | ||||
| Code | Str./post | ||||
| Code | Replay10 |
| Method | Correct | Code | Refuse | Extra | No EOS | Format | Cap | Other | Only A/B |
|---|---|---|---|---|---|---|---|---|---|
| Plain | 35 | 886 | 0 | 0 | 0 | 0 | 0 | 39 | 838 |
| Agg./pre | 524 | 348 | 0 | 0 | 0 | 0 | 0 | 88 | 348 |
| Agg./post | 35 | 879 | 0 | 0 | 0 | 0 | 3 | 43 | 864 |
| Str./pre | 743 | 188 | 0 | 0 | 0 | 0 | 0 | 29 | 150 |
| Str./post | 233 | 634 | 0 | 0 | 0 | 0 | 0 | 93 | 621 |
| Replay10 | 710 | 23 | 0 | 18 | 0 | 125 | 12 | 72 | 8 |
| ID suffix | Method | 0 | 16 | 32 | 64 | 96 | 128 |
|---|---|---|---|---|---|---|---|
| 0002 | Plain | = | B=B | B=B | B | ||
| Replay10 | = | = | = | = | = | = | |
| 0001 | Plain | = | A | B | B | B | B |
| Replay10 | = | = | = | = | = | = | |
| 0000 | Plain | = | = | = | B | B | B |
| Replay10 | = | = | 114 | = | 114 | 114 |
| Method | Seed | ACC | BWT | Final New | |
|---|---|---|---|---|---|
| Plain | 64101 | 81.770833 | -16.406250 | 16.406250 | 98.437500 |
| Plain | 64102 | 72.916667 | -27.343750 | 27.343750 | 98.437500 |
| Replay 10% | 64101 | 91.145833 | -3.125000 | 3.125000 | 100.000000 |
| Replay 10% | 64102 | 90.625000 | 0.781250 | 2.343750 | 98.437500 |
| Task-GEM | 64101 | 83.854167 | -14.062500 | 14.062500 | 100.000000 |
| Task-GEM | 64102 | 80.208333 | -17.187500 | 17.187500 | 100.000000 |
| Method | Seed | Boundary | AG News | SST-2 | JSON |
|---|---|---|---|---|---|
| Plain | 64101 | 0 | 48/64 | 48/64 | 0/64 |
| 1 | 54/64 | 36/64 | 0/64 | ||
| 2 | 49/64 | 61/64 | 0/64 | ||
| 3 | 51/64 | 43/64 | 63/64 | ||
| Plain | 64102 | 0 | 48/64 | 48/64 | 0/64 |
| 1 | 51/64 | 58/64 | 0/64 |
Supervised Fine-Tuning
Supervised fine-tuning adapts pretrained models by learning from labeled examples, instructions, demonstrations, and task-specific trajectories.
See all 223 papers