Views
No views yet
google/gemma-4-26B-A4B-it — a pair of
adapters that map residual-stream activations at layer 20 (2/3 depth; d_model 2816)
to natural-language explanations and back, plus a GRPO-tuned verbalizer.av_lora/ — the verbalizer (AV), SFT: activation → text. Reads an injected layer-20
activation (Karvonen norm-matched ADD at the layer-1 output) and describes the features the
model is "thinking about". LoRA (r=128, rsLoRA) on the text q/k/v/o projections.ar_lora/ — the reconstructor (AR), SFT: text → activation. A 21-layer truncated
backbone + Linear(d,d) value head that reconstructs the layer-20 activation from the
explanation. ar_lora_value_head.safetensors bundles the critic LoRA weights and the
value head; ar_meta.json records the truncation/final-norm config.rl_av_lora/ — the GRPO-tuned verbalizer (optional). The AV after reinforcement
learning against the frozen AR reward (reward = −log MSE of the AR's reconstruction from the
AV's sampled explanation). Drop-in replacement for av_lora/; improves the quality of the
AV's own on-policy explanations (see RL results below).1 − mse_reconstruction / mse_predict-the-mean.plots/g4a_ar_fve_saturation.png. The AV verbalizer CE loss converged 4.8 → 1.7
(plots/g4a_av_loss.png).
rl_av_lora/plots/g4a_rl_fve_trajectory.png.
Gemma4ForConditionalGeneration); porting nanoNLA required:model.language_model.layers path (transformers 5.x).Gemma4ClippableLinear,
unsupported by PEFT).use_reentrant=True (transformers-5 default is incompatible with
the in-place injection hook).training_code/nla/ (see arch_adapters.py, train_sft.py,
train_rl_self_contained.py).google/gemma-4-26B-A4B-it @ layer 20 over FineWeb (sample-10BT,
streamed). Stage-2 explanations were generated by a self-hosted Qwen3.6-35B-A3B model (the
intended Claude Sonnet 4.6 Batch-API path was unavailable due to an overnight queue outage).
Because explanations depend only on the read-window text (not the activation vector), they were
produced GPU-free and joined back to the activations by stage2 --cache-from (text-keyed): the
92.8% cache hit-rate equals the upstream keep-rate exactly, proving the CPU-reproduced prompts
aligned with the GPU extraction. Re-running stage 2 with Claude would be a drop-in quality upgrade.training_code/ contains the full nanoNLA trainer (nla/), datagen (nla/datagen/), the corpus
builder, the datagen + train shell scripts, and the datagen config. See train_sft_avar.sh and
train_rl.sh.