GAC: Noise-Aware Adaptive Mixing
for Hybrid SFT-RL Post-Training

Yuelin Hu1 Wei Liu2 Zhenbo Yu1,3* Zhengxue Cheng1 Li Song1*
1Shanghai Jiao Tong University  ·  2Shanghai Maritime University  ·  3Novacore
* Co-corresponding authors
Proceedings of the 2026 Conference on Empirical Methods in Natural Language Processing (EMNLP 2026) · Budapest, Hungary
TL;DR

Hybrid SFT–RL post-training uses a fixed mixing weight μ that ignores how relative signal noise evolves during training. GAC casts μ as an MSE-optimal gradient estimation problem, gives a closed-form solution, and estimates it online from three cheap coefficient-space proxies. Result: +3.8 pp over HPT across math / code / science / logic, 28% less KL drift, < 1% wall-time overhead, and gains scale with model size (1.5B → 14B).

GAC method overview

GAC treats the SFT/RL mixing weight μ as an estimation target with a closed-form MSE-optimal solution. Three coefficient-space proxies (σs², σr², Δg̃²) feed a guarded update stack (EMA → cosine-prior blend → per-step cap → clipping).

Abstract

Hybrid post-training that combines supervised fine-tuning (SFT) and on-policy reinforcement learning (RL) is the standard recipe for aligning large language models. Yet the mixing weight μ that balances the two signals is almost always a fixed, hand-tuned schedule. This is fragile: when RL noise spikes, or when the SFT expert starts pulling the policy in a direction that disagrees with the reward, a static μ over-commits to whichever side is currently less reliable.

We cast SFT–RL mixing as a minimum-mean-squared-error gradient estimation problem and derive a closed-form optimal mixing weight:

μ* = ( αtgt·Δg² + σr² ) / ( Δg² + σs² + σr² )

that balances SFT noise, RL noise, and SFT–RL disagreement. Because gradient-level quantities are prohibitively expensive at every step, we introduce three coefficient-space proxies — estimated online from tensors any GRPO/PPO trainer already computes — and wrap them in a guarded update stack: EMA smoothing, a cosine-schedule prior, per-step change capping, and hard clipping. The controller is length-invariant by construction and has less than 1% wall-time overhead.

Across math, code, science, and logic benchmarks, the noise-aware estimator alone outperforms the best rule-based baseline; the full system reaches +3.8 pp over HPT on average, while reducing KL-drift area by 28% and large |Δμ| events by more than 70%. Gains grow monotonically with model scale from Qwen2.5-1.5B to Qwen2.5-14B.

Key Highlights

Closed-form μ*

MSE-optimal derivation. No meta-learning, no bilevel optimization, no extra hyperparameter grid.

Coefficient-space proxies

Three cheap signals (σs², σr², Δg̃²) — any PPO / GRPO trainer already computes them.

Guarded controller

EMA smoothing → cosine-prior blend → per-step change cap → hard clipping. Robust to mid-training regime shifts.

< 1% wall-time overhead

Proxies computed inside the existing forward pass. No extra network eval, no shadow rollout.

Scales with model size

+2.2 pp @ 1.5B · +3.8 pp @ 7B · +3.3 pp @ 14B (AMC vs. HPT) — gains grow with model scale.

Length-invariant

Each sequence contributes exactly one scalar per proxy. Long rollouts don't get extra vote weight.

Results

Qwen2.5-7B-Instruct · mean ± std over 3 seeds · † = joint p<0.05 & Cohen's d>0.8 vs. best baseline

Table 1 · Math & knowledge reasoning

Method AMC AIME24 AIME25 MMLU-Pro
Qwen2.5-7B-Instruct43.811.76.6624.7
SFT-best55.9 ±0.715.8 ±0.815.2 ±0.638.4 ±0.5
DPO57.3 ±0.916.4 ±0.715.8 ±0.742.1 ±0.6
GRPO (pure RL)52.1 ±1.413.2 ±1.18.54 ±1.045.8 ±0.9
CHORD62.5 ±0.618.2 ±0.517.2 ±0.656.2 ±0.5
SRFT61.8 ±0.717.9 ±0.617.0 ±0.755.6 ±0.5
LUFFY63.1 ±0.618.5 ±0.517.6 ±0.656.0 ±0.5
HPT63.4 ±0.518.7 ±0.517.8 ±0.656.4 ±0.4
KL-ctrl62.8 ±0.818.4 ±0.617.6 ±0.755.8 ±0.6
GAC w/o φ65.8 ±0.520.0 ±0.519.1 ±0.657.8 ±0.4
GAC + Token-φ (Ours)67.2 ±0.4†20.8 ±0.4†19.8 ±0.5†58.6 ±0.3†
Δ vs. best baseline (HPT)+3.8+2.1+2.0+2.2

Table 2 · Code generation (pass@1 %)

MethodMBPPHumanEvalAvg.
Qwen2.5-7B-Instruct68.472.070.2
CHORD75.4 ±0.680.5 ±0.578.0
LUFFY75.8 ±0.680.9 ±0.578.4
HPT76.0 ±0.581.2 ±0.578.6
GAC + Token-φ78.8 ±0.5†83.5 ±0.4†81.2
Δ vs. HPT+2.8+2.3+2.6

Table 3 · Scaling — AMC accuracy across model sizes

Method1.5B7B14B
CHORD48.2 ±0.962.5 ±0.668.4 ±0.5
HPT49.6 ±0.863.4 ±0.570.8 ±0.4
GAC w/o φ51.4 ±0.865.8 ±0.573.2 ±0.4
GAC + Token-φ51.8 ±0.767.2 ±0.474.1 ±0.4
Δ vs. HPT+2.2+3.8+3.3

Gains grow with model size — larger models exhibit greater σs²/σr² dynamic range, giving the noise-aware controller more room to adapt.

Table 4 · Science & Logic — top-line vs. best baseline (HPT)

DomainHPTGAC + Token-φΔ
GPQA40.443.5 ±0.5†+3.1
SciBench38.741.2 ±0.5†+2.5
BBH-Logic (avg)62.665.7 ±0.5†+3.1
GAC evaluation metrics

Evaluation performance and rollout dynamics — GAC consistently leads from ~200 steps and maintains a moderate response-length regime (~1.6-2.0k tokens), avoiding the 2.5-3.0k length spikes indicative of reward hacking in baselines.

GAC μ and proxy dynamics

Controller state — μ trajectory and the three coefficient-space proxies. μ starts near 0.85 (SFT-dominated), gradually decreases to ~0.15 as training matures, and tracks σr² rather than KL — the noise-aware estimator drives μ during >93% of steps.

How It Works

Each training step, the controller performs three operations:

① Proxy estimation. Three length-invariant scalars are computed from the batch:

  • σr² — variance of sequence-level GRPO-normalized advantages. Post-normalization dispersion, not raw reward variance.
  • σs² — tail-trimmed variance of length-normalized per-sequence NLL on expert samples.
  • Δg̃² — mean squared coefficient mismatch between SFT and RL token-level gradient coefficients on shared response tokens (after within-batch z-normalization).

② Closed-form aggregation into μ*:

μ* = ( αtgt · Δg̃² + σr² ) / ( Δg̃² + σs² + σr² )

③ Guarded update:

raw μ* → EMA(β) → blend(λ) with cosine prior → clip |Δμ| ≤ c̄ → clip to [μmin, μmax]

Detailed derivation (MSE minimization, proxy-vs-oracle validation, length-invariance proofs) is in Appendices A–D of the paper.

Code & Roadmap

github.com/deepnovacore/GAC

  • RELEASED v0.1.0 2026-08 · Reference AdaptiveMuController, hybrid-loss integration, unit tests, default config, and a public evaluator covering 11 task slices across 9 dataset families (Math / Knowledge / Code / Logic).
  • RELEASED v0.1.1 2026-09 · GAC-Qwen3.5-4B checkpoint release, fixed MMLU-Pro evaluation manifest, and dataset-aware benchmark documentation.
  • COMING v0.2.0 2026-09 · Training pipeline on top of VeRL, public wandb log links.
  • COMING v0.3.0 2026-10 · ModelScope mirror, gac-core on PyPI, and expanded external verification materials.
  • COMING v0.4.0 2026-11 · Docker image, 1-command reproduction, external verification runs.

BibTeX

@inproceedings{hu2026gac,
  title     = {GAC: Noise-Aware Adaptive Mixing for Hybrid SFT-RL Post-Training},
  author    = {Hu, Yuelin and Liu, Wei and Yu, Zhenbo and Cheng, Zhengxue and Song, Li},
  booktitle = {Proceedings of the 2026 Conference on Empirical Methods in Natural Language Processing (EMNLP)},
  year      = {2026},
  address   = {Budapest, Hungary},
  url       = {https://openreview.net/forum?id=VhBpT4iq60},
}