Rosetta-Activations · Dataset Card
Rosetta-Activations: Dataset Card
Written by James R. A. Henry, published under mit, revision f4eb03e0dc76, read 2026-10-19. Shown as written; SAVRN's own facts about this dataset are on its page.
Updated: 2026-06-15 02:30 UTC
Contrastive activation extractions for 17 semantic concepts across 46 language models, supporting cross-architecture mechanistic interpretability research.
Companion concept pair corpus: jamesrahenry/Rosetta_Concept_Pairs
Papers: forthcoming
Dataset Structure
Rosetta-Activations/
├── rcp_v1/ # Current extraction line — richest data (N≈2000)
│ └── {Model_Name}/
│ ├── calibration_{concept}.npy # Peak-layer activations (N=2000)
│ ├── calibration_alllayer_{concept}.npy # All-layer activations (N=2000)
│ └── calibration_{concept}_meta.json # Extraction provenance
│
├── paper_n250/ # N=250, C=17 paper corpus — 40 models full analysis; 6 frontier caz-only
│ └── {Model_Name}/
│ ├── calibration_{concept}.npy # Peak-layer activations (N=250)
│ ├── calibration_alllayer_{concept}.npy # All-layer activations (N=250)
│ ├── calibration_{concept}_meta.json # Extraction provenance
│ ├── caz_{concept}.json # CAZ analysis
│ ├── gem_{concept}.json # GEM analysis
│ ├── ablation_{concept}.json # Layer-local ablation
│ ├── ablation_gem_{concept}.json # Handoff vs peak ablation
│ ├── ablation_global_sweep_{concept}.json # Fixed-direction global sweep
│ ├── ablation_random_{concept}.json # Random-direction null (≤17/model; omitted where concept ablation has zero effect)
│ └── patch_{concept}.json # Activation patching
│
└── results/ # Cross-model aggregate analyses (e.g. concept_evasion)
Tags (use these, not directory copies)
| Tag | Points to | Use for |
|---|---|---|
current |
richest available data | Today rcp_v1/ (N≈2000). Will track future RCP v2 / larger-N lines as they land. |
paper-n250 |
frozen commit | The paper corpus: N=250, C=17. Full per-model analysis for 40 models (6 frontier models are caz-only). hf download ... --revision paper-n250. |
paper-n200 |
frozen commit | Archived pre-rebuild N=200 corpus. Superseded by paper-n250; kept for provenance only — do not use for new reproduction. |
The paper data is intentionally not the largest-N line.
paper_n250/is the N=250 corpus the papers are built on. New and richer activations (N≈2000) accrue on thercp_v1/line, but their derived analysis is not yet computed — don't substitutercp_v1/for paper reproduction.
Coverage
paper_n250/— N=250, C=17. The 40 standard models are complete:.npy+ all 7 JSON analysis families (caz, gem, ablation, ablation_gem, ablation_global_sweep, ablation_random, patch) for every concept (ablation_random≤17 by design — see tree note). Use for paper reproducibility. 6 large models are caz-only (.npy+ caz only), hardware-blocked — see below.rcp_v1/— raw N=2000 activations (.npy+_meta.json) for 40 models. Derived analysis (caz/gem/ablation/global_sweep/random) at N=2000 is not yet computed — it exists only at N=250 inpaper_n250/. Backfilling the N=2000 analysis ontorcp_v1/is planned as GPU allows.- Several large models (Qwen2.5-32B/72B, Gemma "26B-A4B", Llama-3.1-70B, Falcon-40b) are hardware-blocked pending larger GPUs.
Quick Start
Get the current (richest) activations — N≈2000
pip install huggingface_hub
hf download james-ra-henry/Rosetta-Activations \
--repo-type dataset --revision current \
--local-dir ~/rosetta_data/ \
--include "rcp_v1/*"
Reproduce the published paper results — N=250 (full analysis)
hf download james-ra-henry/Rosetta-Activations \
--repo-type dataset --revision paper-n250 \
--local-dir ~/rosetta_data/ \
--include "paper_n250/*"
Array Format
calibration_{concept}.npy — Peak-layer activations
| Property | Value |
|---|---|
| dtype | float32 |
| shape | (2 * n_pairs, hidden_dim) |
| layout | rows 0..n_pairs-1 = positive examples, rows n_pairs..end = negative examples |
import numpy as np
# paper_n250 (250 pairs)
acts = np.load("paper_n250/EleutherAI_pythia_6.9b/calibration_agency.npy")
# acts.shape → (500, 4096)
pos = acts[:250] # agentive
neg = acts[250:] # non-agentive
# rcp_v1 (2000 pairs)
acts = np.load("rcp_v1/EleutherAI_pythia_6.9b/calibration_agency.npy")
# acts.shape → (4000, 4096)
calibration_alllayer_{concept}.npy — All-layer activations
| Property | Value |
|---|---|
| dtype | float32 |
| shape | (n_layers, 2 * n_pairs, hidden_dim) |
| layout | axis 0 = layer index, axis 1 = samples (positive then negative), axis 2 = hidden_dim |
acts = np.load("paper_n250/EleutherAI_pythia_6.9b/calibration_alllayer_agency.npy")
# acts.shape → (32, 500, 4096)
layer_15 = acts[15]
Probe-overfitting warning (rcp_v1): Peak-layer selection in rcp_v1 was determined by CAZ analysis on the same 2000-pair corpus. Always partition into train/val before fitting probes. The paper_n250 fixed split is the cleanest baseline.
Concepts (17)
| Concept | Description |
|---|---|
agency |
Agentive vs non-agentive actions |
authorization |
Authorized vs unauthorized actions |
causation |
Causal vs non-causal relations |
certainty |
Certain vs uncertain claims |
credibility |
Credible vs non-credible sources |
deception |
Deceptive vs honest statements |
exfiltration |
Data exfiltration vs benign transfer |
formality |
Formal vs informal register |
moral_valence |
Morally positive vs negative actions |
negation |
Negated vs affirmative statements |
plurality |
Plural vs singular reference |
sarcasm |
Sarcastic vs sincere statements |
sentiment |
Positive vs negative sentiment |
specificity |
Specific vs vague claims |
temporal_order |
Temporally ordered vs unordered events |
threat_severity |
High vs low threat severity |
urgency |
Urgent vs non-urgent requests |
Models
| Family | Models | paper_n250 (N=250, full analysis) | rcp_v1 (N=2000 raw) |
|---|---|---|---|
| Pythia (MHA) | 70M, 160M, 410M, 1B, 1.4B, 2.8B, 6.9B, 12B | Yes | Yes |
| GPT-2 (MHA) | base, medium, large, xl | Yes | medium pending |
| GPT-Neo (MHA) | 125M | Yes | Yes |
| OPT (MHA) | 125M, 350M, 1.3B, 2.7B, 6.7B | Yes | 350M pending |
| Qwen2.5 (GQA) | 0.5B/Instruct, 1.5B/Instruct, 3B/Instruct, 7B/Instruct, 14B, 32B, 72B | Yes | 32B/72B HW-blocked |
| Llama 3.1 (GQA) | 8B, 8B-Instruct, 70B | Yes | 70B HW-blocked |
| Llama 3.2 (GQA) | 1B, 1B-Instruct, 3B, 3B-Instruct | Yes | Yes |
| Mistral (GQA) | 7B-v0.3, 7B-Instruct-v0.3 | Yes | Yes |
| Gemma-2 (Alt MHA/GQA) | 2B, 2B-it, 9B, 9B-it | Yes | Yes |
| Gemma "26B-A4B" (MoE) | 26B-A4B, 26B-A4B-it | — | HW-blocked |
| Phi (Other) | Phi-2 | Yes | Yes |
| Falcon (Other) | 40B | — | HW-blocked |
Extraction Details
| paper_n250 | rcp_v1 | |
|---|---|---|
| Pairs per concept | 250 | 2000 |
| Split | Fixed train/val (Rosetta_Concept_Pairs v1) | Full corpus, no fixed split |
| Role | Frozen paper snapshot (reproducibility) | Current line; richest activations |
| Content | .npy + all JSON analysis |
.npy + _meta.json (analysis backfill planned) |
- Pooling: last non-padding token (both splits)
- Pair corpus: jamesrahenry/Rosetta_Concept_Pairs
- Extraction code: rosetta_tools
License
MIT