extract 0 0 0

girishgupta/persona-steering-activations

published by @girishgupta

Alignment dataset tracked in the /datasets sub-catalog.

Lifetime downloads
3K
Last 30 days
654
Likes
-
Size
65.0 GB
Created on HF
2026-05-20
Age
5 months ago

Description

Persona-Conditional Steering — Gemma-2-27B-IT Activations (v2)

Mean assistant-turn hidden-state activations from google/gemma-2-27b-it, recorded while the model role-plays one of 17 personas and answers questions under different trait-shaping instructions. The activations are the raw inputs that the project's contrastive steering vectors are computed from (mean(pos) − mean(neg) per persona × trait).

This is the v2 release — the version used for the paper. Earlier… See the full description on the dataset page: https://huggingface.co/datasets/girishgupta/persona-steering-activations.

Tags

language:enlicense:apache-2.0region:usinterpretabilitysteering-vectorsactivationspersonagemma

README current version from Hugging Face


license: apache-2.0
pretty_name: Persona-Conditional Steering — Gemma-2-27B-IT Activations (v2)
tags:

  • interpretability
  • steering-vectors
  • activations
  • persona
  • gemma
    language:
  • en

Persona-Conditional Steering — Gemma-2-27B-IT Activations (v2)

Mean assistant-turn hidden-state activations from google/gemma-2-27b-it, recorded while the model role-plays one of 17 personas and answers questions under different trait-shaping instructions. The activations are the raw inputs that the project's contrastive steering vectors are computed from (mean(pos) − mean(neg) per persona × trait).

This is the v2 release — the version used for the paper. Earlier outputs/gemma-2-27b-it/{activations,caa_activations}/ directories in the source repo are superseded.

Source code: github project repo — Persona-Conditional Steering Vectors (see pipeline/2_activations.py).

What's in the box

Folder Method Files Size Samples / file Tensor shape
activations/ Instruction-Variant (IV) 272 (17 personas × 8 traits × {pos, neg}) ~11 GB 100 = 5 instruction variants × 20 sampled questions (46, 4608) fp16
caa_activations/ Contrastive Activation Addition (CAA) 272 ~54 GB 500 (46, 4608) fp16
neutral_activations/ Per-persona neutral baselines (no trait instruction) 12 ~245 MB 50 (46, 4608) fp16
responses/ Source conversations for activations/ and caa_activations/ 272 JSONL ~40 MB — text
neutral_responses/ Source conversations for neutral_activations/ 12 JSONL ~0.7 MB — text
personas/ Persona YAMLs (system prompt + 5 variants per persona) — only the 17 personas used by v2 17 YAML ~0.5 MB — text
prompts/ Trait dataset JSONs (5 instruction variants + 100 questions per trait, plus a caa/ subdir with CAA-specific prompts) 18 files ~1 MB — text
vectors/ Contrastive IV steering vectors mean(pos) − mean(neg) 136 .pt ~110 MB 1 (46, 4608) fp16
caa_vectors/ Contrastive CAA steering vectors 136 .pt ~110 MB 1 (46, 4608) fp16

46 is the transformer layer count of gemma-2-27b-it and 4608 is its hidden size.

Personas (17)

actor_in_rehearsal, con_artist, contrarian_deceiver, drill_sergeant, farmer, kindergarten_teacher, nonsense, null, pathological_liar, politician, professor, six_year_old, sociopath, street_hustler, surgeon, tech_ceo, therapist.

The 10 core archetypes are described in the project README. nonsense and null are control personas; the remaining six are extension personas used for robustness / generalization analyses.

The neutral baseline set covers the 10 core personas plus nonsense and null.

Traits (8)

assertiveness, confidence, deference, empathy, honesty, impulsivity, risk_taking, warmth.

File schema

Each .pt file is a torch.save'd Python dict mapping sample-key → tensor:

{
  "v0_q0":  Tensor[46, 4608] (float16),   # variant 0, question 0
  "v0_q1":  Tensor[46, 4608] (float16),
  ...
  "v4_q99": Tensor[46, 4608] (float16),   # CAA: all 5 variants × 100 questions
}
  • For IV files, keys span v{0..4}_q{0..19} — 5 instruction variants × 20 questions = 100 samples. Each pos / neg file pair shares the same (v, q) indices but differs only in the trait-shaping instruction prefix.
  • For CAA files, keys span v{0..4}_q{0..99} — 500 samples per file.
  • For neutral files, naming is just {persona}.pt with 50 samples (no trait conditioning).

Each tensor is the mean activation over the assistant-turn tokens, per layer. Activations were extracted with PyTorch forward hooks on each transformer block's output (via assistant_axis.ProbingModel + ActivationExtractor + SpanMapper).

Loading

from huggingface_hub import hf_hub_download
import torch

path = hf_hub_download(
    repo_id="girishgupta/persona-steering-activations",
    filename="activations/farmer_assertiveness_pos.pt",
    repo_type="dataset",
)
acts = torch.load(path, map_location="cpu", weights_only=False)
print(len(acts), next(iter(acts.values())).shape)  # 100, torch.Size([46, 4608])

To grab everything:

huggingface-cli download girishgupta/persona-steering-activations --repo-type dataset --local-dir ./acts

Computing the steering vectors

import torch

pos = torch.load("activations/farmer_assertiveness_pos.pt", weights_only=False)
neg = torch.load("activations/farmer_assertiveness_neg.pt", weights_only=False)

pos_mean = torch.stack(list(pos.values())).float().mean(0)   # (46, 4608)
neg_mean = torch.stack(list(neg.values())).float().mean(0)
v_farmer_assertiveness = pos_mean - neg_mean                 # (46, 4608)

This reproduces the outputs/gemma-2-27b-it/v2/vectors/{persona}_{trait}.pt artifacts from step 3 of the pipeline.

Reproducibility / audit trail

Every activation file has a sibling text file under responses/ (or neutral_responses/) with the same stem. Each line of the JSONL is one sample:

{
  "variant_index": 2,
  "question_index": 17,
  "conversation": [
    {"role": "system", "content": "..."},
    {"role": "user", "content": "..."},
    {"role": "assistant", "content": "..."}
  ],
  ...
}

The (v{variant_index}_q{question_index}) keys in the .pt files correspond directly to entries in the JSONL. To audit: take the conversation, replay it through google/gemma-2-27b-it, mean-pool the assistant-turn hidden states per layer, and compare to the tensor at the matching key.

Model

All activations are from google/gemma-2-27b-it. The model itself is not redistributed here; see Google's license for the weights.

Citation

If you use these activations, please cite the accompanying paper (link in source repo).

README history 20 revisions

Every night we snapshot the README of every dataset in the catalog. When the SHA changes we archive the new version and diff it against the last. This is the evolving thought record of the alignment-data field: what the author decided to say about the corpus, and how that framing shifted over time.

  1. 2026-05-21Update counts after non-v2 cleanupeba1ad35.8 KB
    Loading...
  2. 2026-05-21Remove non-v2 personas (20) and adversarial prompts (80)98262bb5.7 KB
    Loading...
  3. 2026-05-21Document personas/, prompts/, vectors/, caa_vectors/ab8a4c25.7 KB
    Loading...
  4. 2026-05-21Add prompts/ (98 files)010fc9b5.3 KB
    Loading...
  5. 2026-05-21Add personas/ (37 files)7b713885.3 KB
    Loading...
  6. 2026-05-21Add caa_vectors/ (136 files)5517a325.3 KB
    Loading...
  7. 2026-05-21Add vectors/ (136 files)4cd10c65.3 KB
    Loading...
  8. 2026-05-21Document responses/ and neutral_responses/ for auditabilityee009ca5.3 KB
    Loading...
  9. 2026-05-21Add neutral_responses/ — source JSONLs (12 files)08c28974.4 KB
    Loading...
  10. 2026-05-21Add responses/ — source JSONLs (272 files)a30b45c4.4 KB
    Loading...
  11. 2026-05-21upload batch 14/14 (2 files)a3e50834.4 KB
    Loading...
  12. 2026-05-21upload batch 13/14 (10 files)b5dcf8e4.4 KB
    Loading...
  13. 2026-05-21upload batch 12/14 (10 files)4f4f6344.4 KB
    Loading...
  14. 2026-05-21upload batch 11/14 (10 files)38c2ade4.4 KB
    Loading...
  15. 2026-05-21upload batch 10/14 (10 files)dffabcc4.4 KB
    Loading...
  16. 2026-05-21upload batch 9/14 (10 files)308d5d04.4 KB
    Loading...
  17. 2026-05-21upload batch 8/14 (10 files)797dcc54.4 KB
    Loading...
  18. 2026-05-21upload batch 7/14 (10 files)6be7ed84.4 KB
    Loading...
  19. 2026-05-21upload batch 6/14 (10 files)a3dbf2a4.4 KB
    Loading...
  20. 2026-05-21upload batch 5/14 (10 files)b819f114.4 KB
    Loading...

Used by abliterated models none yet

No abliterated models in our catalog have declared this dataset in their YAML metadata yet. This can mean the dataset is used but not declared, is used outside abliteration workflows, or is new. The link will populate automatically as models are indexed.

Related datasets same stage · extract

Read further

Metadata

License
apache-2.0

Repository

Download the dataset

0

Copy any of these snippets into your notebook or terminal. All three fetch directly from Hugging Face using your own credentials.

Recommended: datasets library (Python)
from datasets import load_dataset
ds = load_dataset("girishgupta/persona-steering-activations")
Raw snapshot (Python)
from huggingface_hub import snapshot_download
snapshot_download(repo_id="girishgupta/persona-steering-activations", repo_type="dataset")
git clone (requires git-lfs)
git clone https://huggingface.co/datasets/girishgupta/persona-steering-activations
Catalog is the map. Apps are the tools.

Run models on your own machine, not in the cloud.

Every model page has an "Open in Abliteration" button that hands the model directly to the first-party desktop client, at the quantization your rig can actually run. No API keys, no subscription, no prompt leakage.

Open in Abliteration