misc 0 0 0

plastic-labs/personality-steering

published by @plastic-labs

Alignment dataset tracked in the /datasets sub-catalog.

Lifetime downloads
796
Last 30 days
53
Likes
1
Size
152.3 GB
Created on HF
2026-01-05
Age
9 months ago

Description

Personality Steering Dataset

This dataset contains pre-computed steering vectors and hidden activations for personality control in Large

Language Models, based on the Big Five personality framework.

Dataset Description

This dataset supports the paper Linear Personality Probing and Steering in LLMs: A Big Five

Study and contains:

Steering vectors - Pre-computed directions for personality control

Hidden activations - Model activations from 406 pop culture… See the full description on the dataset page: https://huggingface.co/datasets/plastic-labs/personality-steering.

Tags

language:ensize_categories:100B<n<1Tarxiv:2512.17639region:us

README current version from Hugging Face


language:

  • en
    pretty_name: personality steering data
    size_categories:
  • 100B<n<1T

Personality Steering Dataset

This dataset contains pre-computed steering vectors and hidden activations for personality control in Large
Language Models, based on the Big Five personality framework.

Dataset Description

This dataset supports the paper Linear Personality Probing and Steering in LLMs: A Big Five
Study
and contains:

  1. Steering vectors - Pre-computed directions for personality control
  2. Hidden activations - Model activations from 406 pop culture characters responding to personality
    inventories
  3. Adjective activations - Activations from personality adjectives for validation

Dataset Structure

  personality-steering/
  ├── steering_vecs/
  │   ├── steering_directions_regression_prompt_mean.pkl
  │   ├── steering_directions_regression_last_token.pkl
  │   ├── steering_directions_regression_gen_mean.pkl
  │   ├── steering_directions_svd_prompt_mean.pkl
  │   ├── steering_directions_svd_last_token.pkl
  │   └── steering_directions_svd_gen_mean.pkl
  ├── data_steering_direction_Llama-3.1-8B-Instruct.zarr/
  │   ├── data/
  │   │   ├── hiddens_last          (33, 203010, 1, 4096) - Last token activations
  │   │   ├── hiddens_prompt_mean   (33, 203010, 1, 4096) - Mean prompt activations
  │   │   ├── hiddens_gen_mean      (33, 203010, 1, 4096) - Mean generation activations
  │   │   ├── trait_scores          (20300, 5) - Big Five scores per character
  │   │   ├── item_scores           (20300,) - Individual item responses
  │   │   └── [index arrays]
  │   └── entities/
  │       ├── character_names       (406,) - Pop culture character names
  │       ├── franchises            (406,) - Source franchises
  │       ├── char_desc_text        (20301,) - Character personality descriptions
  │       ├── big_five_items        (50,) - IPIP-50 questionnaire items
  │       ├── alpaca_instructions   (10,) - Instructions used for generation
  │       ├── gen_explanations_text (203010,) - Generated responses
  │       ├── trait_names           (5,) - ["Extraversion", "Emotional Stab.", ...]
  │       └── likert_scale          (5,) - Response scale labels
  └── adjectives_Llama-3.1-8B-Instruct.zarr/
      └── [Similar structure with adjective data]
  

Fields and Dimensions

Steering Vectors (steering_vecs/*.pkl)

  • Shape: (33, 4096 or 4097, 5) - (layers, hidden_dim, seq_len, traits)
  • Format: Numpy arrays stored in pickle
  • Variants:
    • regression_* - Computed via linear regression
    • svd_* - Computed via singular value decomposition
    • *_prompt_mean - From mean of input prompt activations
    • *_last_token - From last token activations
    • *_gen_mean - From mean of generated answer activations

Hidden Activations

  • Dimensions: (num_layers=33, num_samples, seq_len=1, hidden_dim=4096)
  • dtype: float16
  • Samples: 203,010 total
    • 406 characters × 50 IPIP items × 10 Alpaca instructions
    • Plus 1 neutral/unsteered baseline per block

Trait Scores

  • Shape: (20300, 5)
  • Range: 10-50 per trait (sum of 10 items scored 1-5)
  • Traits: Extraversion, Emotional Stability, Agreeableness, Conscientiousness, Openness

Characters

  • Count: 406 pop culture characters
  • Sources: Movies, TV shows, books, games
  • Examples: Tony Soprano, Harry Potter, Daenerys Targaryen, etc.

Data Generation

The dataset was created by:

  1. Character Selection: 406 diverse pop culture characters selected for personality diversity
  2. Personality Assessment: Each character prompted to respond to items from a 50 item Big Five Test
  3. Response Generation: Responses generated across 10 different Alpaca instruction templates
  4. Activation Extraction: Hidden states captured at multiple points (prompt, last token, generation)
  5. Steering Vector Computation: Directions computed via regression and SVD

Model used: meta-llama/Llama-3.1-8B-Instruct

Loading the Dataset

from huggingface_hub import snapshot_download
import zarr
import pickle
import os

# Download entire dataset
data_dir = "./data"
repo_path = snapshot_download(
    repo_id="plastic-labs/personality-steering",
    repo_type="dataset",
    local_dir=data_dir
)

# Load steering vectors
with open(os.path.join(data_dir, "steering_vecs/steering_directions_regression_prompt_mean.pkl"), 'rb') as f:
    steering_vecs = pickle.load(f)

# Open zarr dataset
z = zarr.open(os.path.join(data_dir, "data_steering_direction_Llama-3.1-8B-Instruct.zarr"), mode='r')

# Access data
character_names = z['entities/character_names'][:]
trait_scores = z['data/trait_scores'][:]
hiddens_last = z['data/hiddens_last']  # Memory-mapped, load slices as needed

# Example: Get activations for first character
char_activations = hiddens_last[:, :50, 0, :]  # All layers, first 50 items

Use Cases

- Personality steering - Control LLM personality expression during generation
- Interpretability research - Study how personality is encoded in model activations
- Character simulation - Generate text matching specific personality profiles
- Psychological AI - Develop models with controllable personality traits
- Bias analysis - Investigate personality-related biases in LLMs

Data Sample Indices

Samples are organized in blocks:
- Blocks: 10 blocks of 20,301 samples each
- Block structure: Index 0 = neutral baseline, indices 1-20,300 = character responses
- Character ordering: Each character responds to all 50 IPIP items before the next character
- Mapping: sample_idx = block_idx * 20301 + char_idx * 50 + item_idx + 1

Citation

@article{personality-steering-2025,
  title={Linear Personality Probing and Steering in LLMs: A Big Five Study},
  author={Michel Frising and Daniel Balcells},
  journal={arXiv preprint arXiv:2512.17639},
  year={2025}
}

Acknowledgments

- IPIP-50 personality inventory (https://ipip.ori.org/index.htm)
- OpenPsychometrics for normative data (https://openpsychometrics.org/)
- PlasticLabs for graciously sponsoring this research

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-01-15Update README.md3a645a26.4 KB
    Loading...
  2. 2026-01-15Create README.md4654d976.4 KB
    Loading...
  3. 2026-01-09Upload folder using huggingface_hub1f718ac0 B
    Loading...
  4. 2026-01-09Upload folder using huggingface_hubc1235aa0 B
    Loading...
  5. 2026-01-09Upload folder using huggingface_hub6a85b890 B
    Loading...
  6. 2026-01-08Add files using upload-large-folder tool1aa14580 B
    Loading...
  7. 2026-01-08Add files using upload-large-folder tool7d6f18f0 B
    Loading...
  8. 2026-01-05Add files using upload-large-folder tool381c32f0 B
    Loading...
  9. 2026-01-05Add files using upload-large-folder tool656935c0 B
    Loading...
  10. 2026-01-05Add files using upload-large-folder toolbf2a64b0 B
    Loading...
  11. 2026-01-05Add files using upload-large-folder tool25717f20 B
    Loading...
  12. 2026-01-05Add files using upload-large-folder tool953548c0 B
    Loading...
  13. 2026-01-05Add files using upload-large-folder tool6e996780 B
    Loading...
  14. 2026-01-05Add files using upload-large-folder toolaa1a9040 B
    Loading...
  15. 2026-01-05Add files using upload-large-folder toolbf412510 B
    Loading...
  16. 2026-01-05Add files using upload-large-folder toole4f3e1e0 B
    Loading...
  17. 2026-01-05Add files using upload-large-folder toolb31f4eb0 B
    Loading...
  18. 2026-01-05Add files using upload-large-folder tool948d2990 B
    Loading...
  19. 2026-01-05Add files using upload-large-folder tool94d7e020 B
    Loading...
  20. 2026-01-05Add files using upload-large-folder toola0f6bb60 B
    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 · misc

Read further

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("plastic-labs/personality-steering")
Raw snapshot (Python)
from huggingface_hub import snapshot_download
snapshot_download(repo_id="plastic-labs/personality-steering", repo_type="dataset")
git clone (requires git-lfs)
git clone https://huggingface.co/datasets/plastic-labs/personality-steering
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