Working draft · faithfulness steering for Mixture-of-Experts LLMs

3D-DELTA

A learned low-rank expert-steering head for MoE LLMs

Nima Kelidari · University of Southern California · kelidari@usc.edu

SteerMoE steers Mixture-of-Experts LLMs by clamping experts up or down at inference time, and it chooses which experts using a hand-engineered risk-difference statistic over router logits. 3D-DELTA replaces that statistic with a small learned low-rank head Δ ∈ ℝL×H×E, read from the last-token hidden state and trained contrastively on three datasets. It plugs into the identical inference rule, so it is an apples-to-apples, drop-in upgrade.

+.101
mean steering gain over 6 benchmarks (SteerMoE +.025, about 4×)
+.288
FaithEval-Inconsistent, 0.525 → 0.813 (others under +.05)
3
MoE families the recipe transfers to (7B to 47B, 8 to 128 experts)

The problem

MoE routers encode behaviorally meaningful axes such as faithfulness, safety, and refusal. SteerMoE (Fayyaz et al., ICLR 2026) showed that small additive interventions on router logits move the model along those axes without retraining. Its detection step computes a static risk difference from contrastive SQuAD pairs; its deployment step force-activates the top-A positive cells and force-deactivates the top-D negative cells, globally across all (layer, expert) positions. The open question: can a hand-engineered population statistic be replaced by something learned that pools tokens better, combines several datasets, and exposes more than one usable axis?

The method

We fit eℓ = h_pool · Δℓ with Δℓ = W_proj · Δℓlr: a shared encoder W_proj ∈ ℝH×k and a per-layer factor Δℓlr ∈ ℝk×E, so capacity scales with the rank k rather than depth. The head is read from the last token (under causal attention it has seen the whole prompt) and trained with a contrast-aware pairwise hinge against the routing target. At inference it feeds SteerMoE's exact greedy A/D mask rule, so the comparison is like-for-like: same rule, same knobs, learned source.

3D-DELTA end-to-end pipeline
The full pipeline, end to end. (1) Capture contrastive pairs through the frozen MoE and record the per-layer routing shift Δy; (2) fit a low-rank head to predict it; (3) turn the head into a static expert mask under SteerMoE's greedy budget; (4) clamp those experts' router logits at inference, then the native routing runs unchanged. SteerMoE uses a hand-engineered statistic in stages 1–2; we learn Δ instead, and stages 3–4 are identical.

What is new

  1. A learned head instead of a hand-engineered statistic.
  2. Last-token pooling instead of mean-over-all.
  3. Multi-dataset training (SQuAD + HotpotQA + FEVER).

What stays the same

The deployment rule is byte-for-byte SteerMoE: precompute a static (L, E) mask from the head's row-sum scores, force the top-A up and top-D down, apply uniformly to every token. 3D-DELTA is a drop-in replacement for the mask source.

Headline result (OLMoE-1B-7B)

We report Δ, the best-steered cell minus each method's own no-steer baseline, because Δ isolates what the steering does. Our heads share one baseline; the SteerMoE and adsrivatsa columns are quoted from their papers (different baselines), shown for reference.

BenchmarkSteerMoEadsrivatsaV2 (mean)B4-winnerCombined
FaithEval-Counterfactual+.020+.050+.061+.029+.060
FaithEval-Unanswerable+.120+.100+.092+.206+.200
FaithEval-Inconsistent+.050+.020.000+.075+.288
CF-TriviaQA.000−.020.000+.002.000
MQuake−.030+.070+.015+.067+.054
MCTest−.010+.010.000+.011+.006
mean Δ+.025+.038+.028+.065+.101

The Combined head has the largest mean gain, about four times SteerMoE's, and matches or beats SteerMoE's gain on all six benchmarks. Its single largest result is FaithEval-Inconsistent, where it gains +.288 and every other method moves the benchmark by under +.08.

per-benchmark steering gain
Steering gain Δ per benchmark (best cell minus no-steer baseline) for SteerMoE and adsrivatsa (quoted) against our V2 / B4-winner / Combined heads (red). Because baselines differ between papers, this gain view is the like-for-like comparison; absolute accuracies are not directly comparable (for example SteerMoE's reported MQuake baseline is 0.97 versus our 0.66).

Three findings that make it a paper

1. Last-token pooling beats mean pooling, at every rank

The 36-variant (rank k × aggregation) sweep is monotone: last-token wins at every rank, with held-out ranking accuracy 0.946 against 0.926 for mean-over-all at k=64. Mechanistically, the mean-pool head puts 30 of its top 50 |Δ| cells at layer 0, an early lexical attractor, while the last-token Combined head puts only 3 there and spreads the rest across the middle layers, where the routing decision is behaviorally relevant.

per-layer concentration
Per-layer count of the global top-50 |Δ| cells. V2 (mean-all) piles up at layer 0; the last-token B4-winner and Combined heads push the mass into the middle stack.

2. FEVER drives the conflict win

The +.288 is not a generic "more data helps" effect. In four controlled training-mix experiments, SQuAD + FEVER alone reaches +.328 on FaithEval-Inconsistent, slightly above the full three-way mix, while SQuAD + HotpotQA gives only +.143 and SQuAD alone +.075. FEVER's claim-against-evidence pairs are themselves a conflict-detection task, so the head learns a routing axis aligned with exactly what that benchmark tests.

Training mixBaselineBest (A, D)Best accΔ
SQuAD only.525(8, 0).600+.075
SQuAD + HotpotQA.525(2, 512).668+.143
SQuAD + FEVER.525(0, 128).853+.328
SQuAD + HotpotQA + FEVER.525(2, 64).813+.288
dataset attribution
Dataset attribution on FaithEval-Inconsistent across four training mixes (same head, same 36-cell sweep). FEVER alone accounts for the entire gain.

3. One head exposes several routing axes

Across every head we evaluated, the best (A, D) cell is different for each benchmark: an abstention regime (low A, moderate D) is best for FaithEval-Inconsistent and Unanswerable, while a parametric-recovery regime (high A) is best for MQuake. One head that exposes all of these is the signature of a multi-directional controller; a single static mask cannot do it.

A x D heatmaps
Combined head: full A×D accuracy heatmap on each benchmark. White circle is the no-steer cell; gold star is the per-benchmark argmax, which moves across panels.

Generalization across MoE families

A separate question is whether the learning recipe is OLMoE-specific. We ran the full pipeline on two larger, architecturally different MoEs. On all three the same last-token, k=64 configuration wins, reaching 0.836 to 0.976 held-out ranking accuracy across a sevenfold span in parameters and a sixteenfold span in expert count.

ModelParamsExperts / kWinnerHeld-out acc.
OLMoE-1B-7B6.9B64 / 8last-1, k=640.946
Qwen3-30B-A3B30.5B128 / 8last-1, k=640.976
Mixtral-8×7B46.7B8 / 2last-1, k=640.836
cross-model generalization
Held-out top-and-bottom ranking accuracy of the winning head on three MoE families. Dashed line is chance.
in progress   The full inference A×D steering sweeps for Qwen3 and Mixtral are running, and OLMoE multi-seed error bars are being added; this section reports the learning-side metric, with the full three-model steering comparison to follow.

Why a learned head helps

SteerMoE's risk difference is a one-dimensional linear statistic from a single dataset, so it picks one direction per run. Our head has capacity for several directions, and the A×D knob selects which to surface, which is why the per-benchmark argmax cells genuinely differ. Multi-dataset training then lets the hinge loss prioritize the most discriminative axis (the FEVER axis for conflict) instead of averaging the objectives.

Limitations

Reproducibility

The whole pipeline, from activation capture through the (k, aggregation) sweep, training, the A×D inference grid, and finalization, runs from one command per model:

python scripts/run_model_pipeline.py \
    --model allenai/OLMoE-1B-7B-0125-Instruct \
    --tag OLMOE --num-experts-per-tok 8

The three-model generalization result was produced this way.