abotresol/neutral-vectors-gemma-4-31b-it
Neutral-transcript vectors — gemma-4-31b-it (confound-projection inputs, E7) Data provenance (what made these activations) Probed model: google/gemma-4-31b-it (instruct) Input corpus: abotresol/neutral-transcripts-gemma-4-31b-it — emotionally neutral everyday transcripts written by the probed model; these vectors feed the neutral-PC projection (they are NOT emotion vectors) Per-story pooled residual-stream activations and per-emotion mean vectors, extracted with… See the full description on the dataset page: https://huggingface.co/datasets/abotresol/neutral-vectors-gemma-4-31b-it.
Neutral-transcript vectors — gemma-4-31b-it (confound-projection inputs, E7)
Data provenance (what made these activations)
- Probed model:
google/gemma-4-31b-it(instruct) - Input corpus: `abotresol/neutral-transcripts-gemma-4-31b-it` — emotionally neutral everyday transcripts written by the probed model; these vectors feed the neutral-PC projection (they are NOT emotion vectors)
Per-story pooled residual-stream activations and per-emotion mean vectors, extracted with gemma4-emotion-vectors scripts/extract_emotion_vectors.py (reference-faithful adaptation of sinievanderben/emotionexperiment `extractemotion_vectors.py`).
- Corpus:
results/neutral_transcripts_it/dialogues_grouped.jsonl(splittrain) - Layers: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57]
- Pooling: mean over non-pad tokens after position 50, truncation at 512, batch size 4, bf16 model, fp32 activations.
shards/<emotion>__<idx>.npy: one[layers, d_model]fp32 array per story.manifest.jsonl: per-story metadata (emotion, index, text sha1, token count).<emotion>/layer_<N>_resid.npyandemotion_vectors.json: token-weighted per-emotion means, the reference's output format.run_config.json: full extraction config, seed 20260720, commit8bf83d2.
Reproduce: uv run python scripts/extract_emotion_vectors.py
Per-story story set (added 2026-07-22)
shards/{story_id}.npy — one [n_layers, d_model] fp32 mean per story; manifest.jsonl — one row per story with its post-mask token count and content hash. The published per-emotion means are the token-weighted recombination of these; any alternative pooling (equal-weight, subsets, bootstrap) is reproducible from the shards in numpy alone. Provenance caveat: shards predate the padding-side fix (project TREE Q1.H3.E4) — the first-50-token skip fully applied only to the longest story per batch of 4.
