Steered paraphrase pretraining: what changes, and where the gains come from

Small LMs pretrained on FAQ paraphrases generated with activation steering (register or wiki direction). Results summary; every number below is computed from the CSVs in data/.

Summary

  1. Benchmarks: macro-score changes range from +0.01 (not significant, Llama wiki α35) to +1.03 points; only Qwen2 1.7B register α35 is clearly above seed noise. Register leads wiki, by margins within seed noise.
  2. Language modelling: every steered model lowers held-out loss by ~1–2% perplexity, wiki most and α35 least: the reverse of the benchmark ranking.
  3. Mechanism (loss): gains on hard/rare tokens and layout; α35 gives up gains on function words and prose.
  4. Mechanism (benchmarks): gains are on the gold answer, not on reading the context. Steered models prefer short span answers, most at α35, and this roughly tracks the benchmark gains.
  5. Data: steering makes FAQ answers open more directly and contain more numbers that are not in the source document; register and wiki data are nearly identical. What separates register from wiki is not known.

Setup

1 · Benchmarks: gains, but mostly within seed noise (1 seed only)

Paper-style evaluation (lighteval, 3-shot, cloze formulation, prob_norm_token), every question of every task, paired bootstrap against each architecture's base model. Bars show the change in the macro score with its 95% CI; the shaded band is the seed-to-seed standard deviation of this score reported by the finephrase paper (0.16–0.49 points). One seed per model.

seed-to-seed SD of this score: 0.16–0.49 points (finephrase paper, Table 21)-0.200.20.40.60.811.2Δ macro score vs base (points)Llama 1B · register α15Llama 1B · register α15 — +0.45 [+0.38, +0.51]+0.45Llama 1B · register α35Llama 1B · register α35 — +0.38 [+0.31, +0.46]+0.38Llama 1B · wiki α15Llama 1B · wiki α15 — +0.33 [+0.26, +0.40]+0.33Llama 1B · wiki α35Llama 1B · wiki α35 — +0.01 [-0.06, +0.08]+0.01Qwen2 1.7B · register α15Qwen2 1.7B · register α15 — +0.65 [+0.58, +0.72]+0.65Qwen2 1.7B · register α35Qwen2 1.7B · register α35 — +1.03 [+0.95, +1.11]+1.03Qwen2 1.7B · wiki α15Qwen2 1.7B · wiki α15 — +0.36 [+0.29, +0.43]+0.36Qwen2 1.7B · wiki α35Qwen2 1.7B · wiki α35 — +0.64 [+0.57, +0.72]+0.64

Direct comparisons (macro Δ, points, 95% CI)

contrastLlama 1BQwen2 1.7B
register − wiki, α15+0.12 [+0.06, +0.19]+0.29 [+0.22, +0.36]
register − wiki, α35+0.38 [+0.31, +0.44]+0.38 [+0.31, +0.46]
α35 − α15, register-0.06 [-0.13, +0.01]+0.37 [+0.30, +0.45]
α35 − α15, wiki-0.32 [-0.38, -0.26]+0.28 [+0.21, +0.35]

Register beats wiki in all four comparisons, but each margin (≤ 0.38) is within the noise expected between two single-seed models (√2 × seed SD ≈ 0.23–0.69). α35 helps Qwen but not Llama.

Per task

WikiTableQTREB-QADROPSQuADv2TriviaQAXCSQAARC-EasyARC-ChallengeOpenBookQAHellaSwagPIQAWinoGrandeMMLU-ReduxGSM8KLAMBADA
Llama 1B · register α15+0.50†+0.09+2.13†+1.50†+0.17†+0.88†+0.56†+0.40†+0.18†+0.15†+0.23†+0.39†+0.28†-0.55†+0.24
Llama 1B · register α35+2.52†+0.88†+2.81†+0.54†+0.69†+1.21†+0.84†+0.33†+0.28†+0.07†+0.08†+0.28†+0.33†-2.35†-0.86†
Llama 1B · wiki α15+0.39†+0.94†+1.51†+1.36†+0.53†+0.70†+0.54†+0.31†+0.12†+0.04†+0.25†+0.57†+0.06-1.11†-0.26
Llama 1B · wiki α35+0.84†-0.16+2.26†-0.94†+0.79†+1.28†+1.04†+0.35†+0.20†+0.09†+0.34†+0.42†+0.35†-2.51†+0.25
Qwen2 1.7B · register α15+2.35†+0.96†+2.18†+0.51†+0.27†+0.10+0.33†+0.23†+0.20†+0.18†+0.09†-0.04+0.14†+0.47†+0.05
Qwen2 1.7B · register α35+4.32†+1.65†+2.75†-0.10+0.09+0.60†+0.42†+0.37†+0.53†+0.15†+0.00+0.34†+0.28†+0.87†-0.86†
Qwen2 1.7B · wiki α15+1.90†+0.91†-0.71†-0.96†+0.15†+0.56†+0.48†+0.30†+0.38†+0.23†+0.12†+0.04+0.13+0.80†+0.53†
Qwen2 1.7B · wiki α35+3.43†+1.60†+2.77†-1.57†+0.22†+0.34†+0.41†+0.38†+0.42†+0.21†+0.19†+0.28†-0.00-0.03-0.08

Δ prob_norm_token × 100 vs base, full evaluation sets. † = significant after BH correction (q < 0.05). Blue = better than base, red = worse. Hover a cell for its value.

Sources: aggregates, task deltas, contrasts (and the qwen files); write-up LIGHTEVAL_NALL.md.

2 · Held-out loss: every model improves, wiki most, α35 least

Per-domain held-out loss, recomputed on the full evaluation splits (the final_eval.json written at the end of training held the FineWeb loss under every domain name). Paired bootstrap over sequences.

FineWebWikipediaarXivHackerNewsStackExchangeFreeLawGutenbergMean
Llama 1B · register α15+0.62†+1.38†+3.70†+1.73†+2.90†+1.08†+1.63†+1.86†
Llama 1B · register α35-0.29†+1.27†+2.75†+2.52†+2.54†+0.20†+0.34†+1.33†
Llama 1B · wiki α15+0.32†+1.78†+4.80†+1.74†+2.99†+1.13†+1.49†+2.04†
Llama 1B · wiki α35-0.36†+2.90†+5.60†+1.84†+2.95†+0.35†+0.48†+1.96†
Qwen2 1.7B · register α15+0.51†+1.26†+3.22†+1.62†+2.66†+1.10†+1.22†+1.66†
Qwen2 1.7B · register α35-0.44†+1.03†+2.17†+2.02†+2.18†+0.18†+0.33†+1.07†
Qwen2 1.7B · wiki α15+0.40†+1.69†+4.20†+1.11†+3.10†+1.33†+1.54†+1.91†
Qwen2 1.7B · wiki α35-0.40†+2.50†+4.80†+1.11†+2.83†+0.52†+0.25†+1.66†

Δ loss vs base in centi-nats (nats × 100) on the full held-out splits; positive = lower loss than base. † = BH q < 0.05.

Sources: ppl_deltas.csv, ppl_contrasts.csv; write-up PPL_FINDINGS.md.

3 · Where the loss gains come from

All 10 models scored on identical tokens (7 domains × 1,024 sequences × 2,048 tokens). Median over the 7 domains of the mean Δ per token group, centi-nats (L = Llama, Q = Qwen):

token groupL register α15L register α35L wiki α15L wiki α35Q register α15Q register α35Q wiki α15Q wiki α35
easiest 20% of tokens-0.02+0.06-0.03-0.04+0.04+0.03-0.10-0.12
hardest 20% of tokens+2.98+4.02+3.78+4.95+3.05+4.38+5.67+3.81
tokens unseen in base training corpus+9.44+8.96+10.45+11.55+5.48+2.15+7.88+7.87
100 most frequent tokens+0.84+0.84+0.81+0.26+0.38+0.37+0.17+0.07
function words+0.97+0.04+0.91+0.17+0.96-0.11+0.74-0.21
whitespace / layout+7.30+10.81+5.19+12.28+5.48+9.45+6.40+10.37

α35 predicts words worse than base on FineWeb and FreeLaw

domainwords, α15 modelswords, α35 modelswhitespace, α35 models
FineWeb+0.35 to +0.58-0.39 to -0.21-1.9 to -0.3
FreeLaw+0.21 to +0.84-1.10 to -0.50+12.3 to +16.6
Gutenberg+0.80 to +1.98-0.82 to +0.23+2.6 to +12.4
arXiv+3.25 to +4.42+1.82 to +5.28+9.4 to +17.2

Δ on non-whitespace tokens, derived from the total Δ and the whitespace share/Δ ((total − s·Δws)/(1 − s)); ranges over register and wiki in both architectures, centi-nats.

The steered training text is less predictable

NLL change of the synthetic training text vs the base corpus on common tokens, under two outside scorers (negative = less predictable): Qwen2.5-1.5B register α15 -0.11, register α35 -0.28, wiki α15 -0.11, wiki α35 -0.25; Pythia-1.4B register α15 -0.07, register α35 -0.21, wiki α15 -0.07, wiki α35 -0.19 nats. α35 corpora are 2–3× further from base than α15; register and wiki corpora are nearly identical. The less predictable corpora give the smaller loss gains (α35 < α15).

Sources: attribution (llama/qwen), token_overall.csv, token_special.csv, token_calib_quintiles.csv, corpus predictability (qwen/pythia); write-up FINDINGS_all_arms.md.

4 · Benchmark gains are on the answer, not on reading the input

All 10 models were re-scored on the exact lighteval prompts (3-shot) plus the gold answer, for 1,500 items each of WikiTableQ, SQuADv2 and DROP, all 490 TREB-QA, and 2,000 each of TriviaQA and LAMBADA. Our answer log-probabilities reproduce lighteval's per item (correlation ≥ 0.9999).

gold answer tokensquestion + passage/table tokens
024681012Δ loss vs base, centi-nats (mean over 5 QA tasks)Llama 1B · register α15Llama 1B · register α15 — gold answer: +5.13+5.13Llama 1B · register α15 — question + passage/table: +1.16+1.16Llama 1B · register α35Llama 1B · register α35 — gold answer: +10.81+10.81Llama 1B · register α35 — question + passage/table: +0.65+0.65Llama 1B · wiki α15Llama 1B · wiki α15 — gold answer: +7.47+7.47Llama 1B · wiki α15 — question + passage/table: +1.46+1.46Llama 1B · wiki α35Llama 1B · wiki α35 — gold answer: +4.68+4.68Llama 1B · wiki α35 — question + passage/table: +2.40+2.40Qwen2 1.7B · register α15Qwen2 1.7B · register α15 — gold answer: +6.36+6.36Qwen2 1.7B · register α15 — question + passage/table: +0.61+0.61Qwen2 1.7B · register α35Qwen2 1.7B · register α35 — gold answer: +11.20+11.20Qwen2 1.7B · register α35 — question + passage/table: +0.78+0.78Qwen2 1.7B · wiki α15Qwen2 1.7B · wiki α15 — gold answer: +3.84+3.84Qwen2 1.7B · wiki α15 — question + passage/table: +1.40+1.40Qwen2 1.7B · wiki α35Qwen2 1.7B · wiki α35 — gold answer: +8.72+8.72Qwen2 1.7B · wiki α35 — question + passage/table: +2.03+2.03

Register vs wiki at α35: better answers, worse reading

taskLlama 1B: answer / contextQwen2 1.7B: answer / context
WikiTableQ+8.3† / -1.4†+3.0† / -0.6†
DROP+4.4† / -2.3†+5.4† / -0.9†
SQuADv2+6.1† / -2.3†+1.7 / -1.9†
TriviaQA+4.1† / -2.2†+3.9† / -2.8†
TREB-QA+7.7† / -0.6†-1.5 / -0.1
LAMBADA-8.6† / +0.1-4.7† / -0.3

Loss difference register α35 − wiki α35 (positive = register lower loss), centi-nats; † = BH q < 0.05.

Sources: bench_answer.csv, bench_segments.csv, bench_contrasts.csv, bench_link.csv, bench_sanity.csv; write-up FINDINGS_benchmark_and_format.md.

5 · What steering changes in the training answers

All synthetic corpora rewrite the same FineWeb documents as FAQs (SmolLM2-1.7B-Instruct, FAQ prompt). 15,000 source documents rewritten by every corpus, compared paired; document-format rows from 20,000 documents per corpus.

baseregister α15register α35wiki α15wiki α35
words per document320337416314390
Q/A pairs per document5.86.16.96.06.7
words per answer43.644.754.042.550.7
answer opens with a short sentence (≤ 8 words)13.7%18.3%24.8%17.9%23.4%
answer first restates the question44.8%44.5%39.0%43.3%38.7%
compact Q↵A: layout (benchmark style)43.6%40.4%33.1%40.5%38.4%
answer numbers not supported by the source19.6%27.1%41.9%27.7%43.7%
answer numbers that are list numbering10.9%11.5%10.4%10.1%7.5%
paired difference (points)register − wiki, α15register − wiki, α35
answer starts with yes/no-1.4†-3.1†
answer starts with a content word+0.9†+2.2†
answer opens with a short sentence+0.5+1.8†
answer starts with words/number from the source+1.2†+1.7†

† = 95% bootstrap CI over documents excludes 0. Benchmark gold answers are 1–2 words and almost never start with yes/no, so register's direction is closer to them, but the gap is small.

Sources: answers_content.csv, answers_contrasts.csv, answers_numbers.csv, corpus_format.csv; write-up FINDINGS_answer_content.md.

6 · Steered models prefer to answer with a short span

On 2,500 benchmark items (500 per QA task), the probability that the first token after Answer: starts a span (a number, name or word) rather than a sentence ("The", "It", "Yes", …), and the models' own greedy answers. 0-shot = question with its passage/table only; 3-shot = the benchmark prompt.

0-shot (question only)3-shot (benchmark prompt)
0246810Δ probability that the answer starts with a span (percentage points vs base)Llama 1B · register α15Llama 1B · register α15 — 0-shot: +2.81 [+2.43, +3.24]+2.81Llama 1B · register α15 — 3-shot: +2.19 [+1.83, +2.52]+2.19Llama 1B · register α35Llama 1B · register α35 — 0-shot: +8.77 [+8.28, +9.27]+8.77Llama 1B · register α35 — 3-shot: +4.94 [+4.52, +5.38]+4.94Llama 1B · wiki α15Llama 1B · wiki α15 — 0-shot: +1.73 [+1.30, +2.14]+1.73Llama 1B · wiki α15 — 3-shot: +2.28 [+1.94, +2.61]+2.28Llama 1B · wiki α35Llama 1B · wiki α35 — 0-shot: +5.30 [+4.86, +5.76]+5.30Llama 1B · wiki α35 — 3-shot: +1.74 [+1.38, +2.13]+1.74Qwen2 1.7B · register α15Qwen2 1.7B · register α15 — 0-shot: +3.86 [+3.42, +4.29]+3.86Qwen2 1.7B · register α15 — 3-shot: +2.86 [+2.46, +3.26]+2.86Qwen2 1.7B · register α35Qwen2 1.7B · register α35 — 0-shot: +7.62 [+7.12, +8.17]+7.62Qwen2 1.7B · register α35 — 3-shot: +4.36 [+3.92, +4.79]+4.36Qwen2 1.7B · wiki α15Qwen2 1.7B · wiki α15 — 0-shot: +0.47 [+0.03, +0.90]+0.47Qwen2 1.7B · wiki α15 — 3-shot: +3.00 [+2.62, +3.40]+3.00Qwen2 1.7B · wiki α35Qwen2 1.7B · wiki α35 — 0-shot: +6.91 [+6.47, +7.38]+6.91Qwen2 1.7B · wiki α35 — 3-shot: +5.74 [+5.30, +6.14]+5.74
L register α15L register α35L wiki α15L wiki α35Q register α15Q register α35Q wiki α15Q wiki α35
benchmark gain, 5 QA tasks (points)+0.94+1.58+1.15+0.61+1.30+1.72+0.31+1.44
Δ P(span), 0-shot (points)+2.8+8.8+1.7+5.3+3.9+7.6+0.5+6.9

Sources: preference.csv, preference_vs_base.csv, bench_answer.csv; write-up FINDINGS_answer_content.md.

7 · What is shown and what is not

statementstatusevidence
Steered models improve held-out loss; wiki more than register; α35 less than α15shown§2
Loss gains sit on hard/rare tokens and whitespace; α35 loses function words and prose wordsshown§3
Benchmark gains are on the gold answer, not on reading the contextshown§4
At α35, training answers open more directly and contain more added numbersshown§5
Register and wiki training data are nearly identicalshown§3, §5
Steered models prefer span answers (0-shot and 3-shot)shown§6
Register models prefer spans more than wiki modelsonly 0-shot§6
The span preference follows the benchmark gainspartly (ρ 0.43–0.81, exceptions)§6
Register really beats wiki on benchmarksnot established (within seed noise)§1
The changed training answers cause the span preference, or the preference causes the gainsnot shown (correlational, one seed)—

Caveats

Next

A temperature-matched baseline (unsteered generator at T ≈ 1.08, matched to register α35's predictability) is being generated; it tests whether the effects come from the steering direction or just from less predictable text. Extra seeds would settle register vs wiki. See RUN_PLAN.md.