CoolFace
Datasetpublic

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

Emotion vectors from fixed-prompt DeepSeek stories Per-emotion vectors for google/gemma-4-31b-it, built from stories written by deepseek-v4-pro under one fixed instruction. These were the strongest detection vectors in the project's comparison of story sources: 9 of 20 layers cleared a bar fixed before scoring, against 5 for the model's own writing. 12 emotions, 20 layers, 5,376 dimensions per layer, from 3,070 stories. Contents Path Shape Contents… See the full description on the dataset page: https://huggingface.co/datasets/abotresol/emotion-deepseek-vectors-gemma-4-31b-it.

sourceHugging Facemitupdated 2mo agoView on Hugging Face
0likes358downloads
Dataset Card

Emotion vectors from fixed-prompt DeepSeek stories

Per-emotion vectors for google/gemma-4-31b-it, built from stories written by deepseek-v4-pro under one fixed instruction. These were the strongest detection vectors in the project's comparison of story sources: 9 of 20 layers cleared a bar fixed before scoring, against 5 for the model's own writing.

12 emotions, 20 layers, 5,376 dimensions per layer, from 3,070 stories.

Contents

PathShapeContents
emotion_means.npzsee belowthe per-emotion mean vectors
shards/<emotion>__<idx>.npy[20, 5376] float32one story, before averaging

emotion_means.npz holds three arrays: emotions [12] (the names), layers [20] (which layers were captured), and means [12, 20, 5376].

python
import numpy as np

z = np.load("emotion_means.npz")
emotions, layers, means = z["emotions"], z["layers"], z["means"]
afraid = means[list(emotions).index("afraid")]   # [20, 5376]
layer_33 = afraid[list(layers).index(33)]        # [5376]

The 3,070 per-story shards are published so the means can be recomputed, resampled or subsetted without a GPU. The project's sample-size curve is built that way.

Reading a vector back

Use a centered cosine, not a raw dot product: subtract the mean over the emotion set first, or a direction that is large everywhere wins by default. emotion_vectors.q3_conventions in the project repository is the reference implementation, including the layer set the published numbers use.

Provenance and limits

Produced for gemma4-emotion-vectors, a 2-3 day replication of Anthropic's emotion-vector work on Gemma 4 31B. It is a research sprint, not a reviewed publication, and the write-up grades each finding by how far it was actually tested.

Two limits worth stating before anyone builds on this:

  • —These vectors describe a model reading emotion in text. That is a different claim from the model having emotions, and the distinction is easy to lose.
  • —How well emotion vectors work depends heavily on who wrote the stories they were built from. Holding everything else fixed, story source moved the number of working layers from 1 to 9 out of 20. Compare vector sets before trusting one.

Licence

MIT, matching the project repository. Model weights and third-party corpora carry their own licences.