CoolFace
Modelpublic

anicka/nla-qwen3-4b-universal-av-grpo

sourceHugging Faceapache-2.0updated 3mo agoView on Hugging Face
0likes13downloads
Model Card

NLA Activation Verbalizer — Qwen3 4B, universal, GRPO-refined

The universal SFT verbalizer sharpened with AR-native GRPO: the reward is whether an independent Activation Reconstructor can rebuild the original activation from the description alone. No semantic similarity model anywhere in the reward — faithfulness is scored in the model's own 2560-dim activation space. Smallest model in the series to date (4B), and the one that gains the most from GRPO (+31% relative round-trip vs +24% for the 7B sibling).

Part of the nla-at-home project.

What GRPO changed (eyeball version)

SFT describes the genre of the activation; GRPO quotes its content. Same activation (math text, L18):

SFT: "False" as a negation marker active, with "True" as a competing attractor · "logarithmic" and "exponential" as a contrastive pair (round-trip cos 0.69) GRPO: False statement: "The statement is false" (direct negation of the claim) · Logical structure: the quadratic equation x² + 4x + 4 = 0 has a repeated root at x = −2, which is a real number (round-trip cos 0.90)

Reward design (the recipe that worked)

reward = centered_cos(AR(desc), act) × specificity(‖AR(desc) − μ_L‖)
  • —centered cosine: per-layer mean removed from both sides — raw cosine is ~90% shared layer offset and rewards nothing.
  • —specificity: a generic description reconstructs to a small-norm centered vector; multiplying by the reconstruction norm makes genericness unprofitable in activation space, with no contrastive hacks.
  • —no hard negatives, no MiniLM in the gradient, KL anchor (β 0.01) to the base model without the adapter, repetition penalty 0.2 (the SFT stage's repetition loops were an explicit target).
  • —curriculum, not reward: an oracle compass (per-layer ridge map activation→text embedding, fit fresh on this model's AR, val top-1 0.59–0.75) selects which (layer, text) pairs are decodable enough to train on, tau 0.40→0.10. The compass never touches the reward or the eval.

Trained on 9 of 36 layers (0, 4, 9, 13, 18, 22, 26, 31, 35), group size 6, 400 samples/epoch, lr 5e-6.

Two-stage history (full provenance ships with the repo)

The original 8-epoch run was interrupted mid-epoch-4 (best: epoch 3, reward 0.5302, tau at 0.27). Training resumed from that checkpoint as a fresh GRPO run with the tau schedule continuing 0.27→0.10 over 5 epochs; best checkpoint is continuation epoch 3 (reward 0.5330). The KL anchor is the adapter-free base model in both stages, so the two stages are regularization-compatible. Curriculum consumption logs for both stages ship as trained_samples_stage1.jsonl + trained_samples.jsonl, and the eval holdout below excludes texts touched by either stage.

Evaluation — round-trip on a clean holdout

284 texts that none of AV training, AR training, or either GRPO stage ever touched (eval_holdout_ids.json = the SFT validation split minus every text either curriculum consumed). Descriptions generated greedy, reconstructed by the frozen AR, centered cosine:

layer (depth)GRPOSFTΔ
L0 (4%)0.0880.014+0.074
L4 (10%)0.2920.150+0.142
L9 (25%)0.4890.373+0.116
L13 (40%)0.5350.419+0.116
L18 (47%)0.7090.575+0.134
L22 (63%)0.6840.546+0.138
L26 (71%)0.7060.581+0.125
L31 (90%)0.6940.545+0.149
L35 (96%)0.3700.271+0.099
mean0.5080.386+0.122

GRPO wins at every depth. The extreme layers (L0, L35) stay weak for both — a property of the 4B substrate, not the training stage.

The confabulation tail

Fraction of confidently-wrong descriptions (low round-trip cosine), all nine layers / content band only (L4–L31):

cos < 0.3cos < 0.2cos < 0
GRPO (all)21.8%14.0%4.7%
SFT (all)39.4%28.1%10.9%
GRPO (L4–L31)12.7%6.9%0.6%
SFT (L4–L31)29.0%18.3%6.4%

In the content band the sign-flipped tail (cos < 0) drops 10×. Raw per-item data: roundtrip_eval.records.jsonl.

Injection protocol

Identical to the SFT card: ㈎ (id 149705), normalize TO L2 norm 150.0, depth-conditioned prompt (nearest_depth_pct(L, 36)), chat template with enable_thinking=False. GRPO-sharpened adapters are numerically touchy: use CUDA (bf16/fp16) or CPU fp32 — not MPS bf16.

Limitations

Same corpus scope as the SFT stage (safety-filtered public split). GRPO improves content specificity; it does not add knowledge of activation regions the corpus never covered. Near-input (L0) and final-layer (L35) readouts remain unreliable at this model scale.