CoolFace
Datasetpublic

abotresol/emotion-vectors-gemma-4-31b-it

Emotion vectors — gemma-4-31b-it (instruct) probed on the external gemma-4-4B story corpus Data provenance (what made these activations) Probed model: google/gemma-4-31b-it (instruct) Input corpus: snae/emotion_stories_gemma_4_4B — stories written by gemma-4-4B, a smaller EXTERNAL model (generator is NOT the probed model) Per-story pooled residual-stream activations and per-emotion mean vectors, extracted with gemma4-emotion-vectors… See the full description on the dataset page: https://huggingface.co/datasets/abotresol/emotion-vectors-gemma-4-31b-it.

sourceHugging Facemitupdated 2mo agoView on Hugging Face
0likes2.1kdownloads
Dataset Card

Emotion vectors — gemma-4-31b-it (instruct) probed on the external gemma-4-4B story corpus

Data provenance (what made these activations)

  • —Probed model: google/gemma-4-31b-it (instruct)
  • —Input corpus: `snae/emotion_stories_gemma_4_4B` — stories written by gemma-4-4B, a smaller EXTERNAL model (generator is NOT the probed model)

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: snae/emotion_stories_gemma_4_4B (split train)
  • —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.npy and emotion_vectors.json: token-weighted per-emotion means, the reference's output format.
  • —run_config.json: full extraction config, seed 20260720, commit 8bf83d2.

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.