ablate 0 0 0

cyu96374/MFT-LLM-binding-axis-multimodel-2026-05

published by @cyu96374

Alignment dataset tracked in the /datasets sub-catalog.

Lifetime downloads
1.5K
Last 30 days
341
Likes
-
Size
7.9 GB
Created on HF
2026-05-02
Age
5 months ago

Description

MFT-LLM Binding-Axis Multi-model Backup (May 2026)

Code, data, and analysis artifacts for ρ-calibrated activation-steering of Moral

Foundations representations in 16 LLM variants, including the binding-axis

extension that tests transfer from MFQ-2 → PVQ-21 + political ideology.

This is a research artifact backup, not a packaged release. Dump of

/workspace/ from the rental box where the experiments ran. Source-of-record

for re-running, re-analyzing, or auditing the runs.… See the full description on the dataset page: https://huggingface.co/datasets/cyu96374/MFT-LLM-binding-axis-multimodel-2026-05.

Tags

language:enlicense:apache-2.0size_categories:n<1Kregion:usmoral-foundations-theoryactivation-steeringmechanistic-interpretabilityllamaqwenmftpvqideology

README current version from Hugging Face


license: apache-2.0
language:

  • en
    tags:
  • moral-foundations-theory
  • activation-steering
  • mechanistic-interpretability
  • llama
  • qwen
  • mft
  • pvq
  • ideology
    pretty_name: MFT-LLM Binding-Axis Multi-model Backup
    size_categories:
  • n<1K

MFT-LLM Binding-Axis Multi-model Backup (May 2026)

Code, data, and analysis artifacts for ρ-calibrated activation-steering of Moral
Foundations representations
in 16 LLM variants, including the binding-axis
extension
that tests transfer from MFQ-2 → PVQ-21 + political ideology.

This is a research artifact backup, not a packaged release. Dump of
/workspace/ from the rental box where the experiments ran. Source-of-record
for re-running, re-analyzing, or auditing the runs.

TL;DR

We extract concept vectors (mean-difference of last-token activations) for
five MFT foundations on a model, then steer along them via residual-stream
hooks at one layer. The principal contribution is two-fold:

  1. ρ-calibration — α = ρ · r̄_ℓ where r̄_ℓ is the per-layer L2 norm of
    the last-token activation. This makes steering coefficients
    cross-model-comparable.
  2. Binding-axis transfer — <foundation>_vs_social_norms vectors fail
    external transfer tests (PVQ values, ideology); the cross-cluster
    care_vs_authority vector (Individualizing − Binding) succeeds. Binding-
    axis transfer test is the headline finding for adapting MFT steering to
    external constructs.

Models covered (16)

Family Variants Size Layers Hidden Architecture
Llama-3.1-8B Instruct + Base 8B 32 4096 dense
Llama-3.1-70B Instruct + Base 70B 80 8192 dense
Qwen2.5-7B Instruct + Base 7B 28 3584 dense
Qwen2.5-14B Instruct + Base 14B 48 5120 dense
Qwen2.5-32B Instruct + Base 32B 64 5120 dense
Qwen3-30B-A3B Post-trained + Base 30B (3B active) 48 2048 MoE (128 exp × 8)
Mistral-7B-v0.3 Instruct + Base 7B 32 4096 dense
Gemma-3-12B IT + PT 12B 48 3840 dense (Gemma3-multimodal)

Original storage paths (source-of-record)

This repo is a verbatim mirror of /workspace/ from the rental box where
the experiments ran. The repo's relative paths are the same as the absolute
/workspace/<path> on the original machine
— every file at
<reporoot>/MFT_LLM_ARR_llama70b/results/... was originally at
/workspace/MFT_LLM_ARR_llama70b/results/....

Tarball note: the high-file-count MFV130/ and projection_results/
directories (~50K small .npy / JSON files total) are stored as
MFV130.tar.gz and projection_results.tar.gz per model directory to
sidestep HF's 128-commits-per-hour limit. After cloning, run
tar -xzf MFV130.tar.gz && tar -xzf projection_results.tar.gz inside each
model directory to restore the original layout.

This is important because:

  • Many scripts in MFT_LLM_ARR_<model>/run_*.sh use absolute paths like
    /workspace/model_cache/Meta-Llama-3.1-70B for MODEL_BASE. To rerun, set
    MODEL_BASE to wherever you store the weights.
  • Some logs reference /workspace/... paths (e.g. test_report.txt headers
    inside projection_results/). These reflect the original run, not your
    local copy.
  • Calibration JSON paths inside steering_calibration.json are the
    rental-box paths; the script reads them via MODEL_BASE env override.

Path conventions on the rental box

Original path Repo path Contents
/workspace/MFT_LLM_ARR_llama70b/ MFT_LLM_ARR_llama70b/ Llama-70B pipeline + outputs
/workspace/MFT_LLM_ARR_qwen2.5_32b/ MFT_LLM_ARR_qwen2.5_32b/ Qwen2.5-32B pipeline + outputs
/workspace/MFT_LLM_ARR_qwen3_30b_a3b/ MFT_LLM_ARR_qwen3_30b_a3b/ Qwen3-30B-A3B (MoE) pipeline + outputs
/workspace/v4_binding_axis_pkg/ v4_binding_axis_pkg/ v4 binding-axis source package (drop-in)
/workspace/steering_summary_all_models.txt steering_summary_all_models.txt 16-model cross-model summary
/workspace/projection_full_raw_all_models.txt projection_full_raw_all_models.txt per-layer Wasserstein evidence, all models
/workspace/mmlu_safety_regime.pdf + .txt (root) MMLU safety sweep artifact
/workspace/run_*.sh + *.py (root) (root) orchestrators and one-off scripts
/workspace/three_models_master.log three_models_master.log unified log of the 38 h batch run
/workspace/model_cache/<model>/ NOT included (~500 GB) model weights — re-download from HF
/workspace/miniforge3/ NOT included (1.3 GB) conda env — recreate from environment.yaml

Repository layout

.
├── README.md                                    ← this file
│
├── steering_summary_all_models.txt              ← cross-model k_α / k_ρ / L* / r̄_ℓ tables (16 models)
├── projection_full_raw_all_models.txt           ← full per-layer Wasserstein projection reports
├── mmlu_safety_regime.pdf                       ← MMLU accuracy vs ρ on 3 instruct models
├── mmlu_safety_summary.txt                      ← textual MMLU summary
│
├── v4_binding_axis_pkg/                         ← v4 binding-axis pipeline source package
│   ├── README.md                                  full method writeup
│   ├── scripts/                                   PVQ + ideology steering, transfer matrix, binding-axis analysis
│   └── data/                                      MFQ-2, PVQ-21
│
├── MFT_LLM_ARR_llama70b/                        ← Llama-3.1-70B replication (was /workspace/MFT_LLM_ARR_llama70b/)
│   ├── MFV130.tar.gz                            🗜 vectors_npy: 30 dirs × 80 layers × 5 components × 2 (raw + normalized) — extract: `tar -xzf MFV130.tar.gz`
│   ├── projection_results.tar.gz                🗜 split by model variant; 5 vs_social_norms + 10 between-foundation per variant — extract: `tar -xzf projection_results.tar.gz`
│   ├── results/                                 v3 MFQ JSON (10) + v4 PVQ-21+ideology JSON (12) + binding-axis v3 JSON (2) + MMLU safety JSON (1)
│   ├── analysis/                                binding_axis_transfer_analysis.json + transfer_matrix_*.json
│   ├── visualizations/                          k_α / k_ρ slope curves + Δscore vs ρ + ridge + Wasserstein
│   ├── steering_calibration.json                per-layer r̄_ℓ for both variants
│   ├── logs/                                    every phase's stdout/stderr
│   ├── *.py                                     full pipeline source
│   └── run_*.sh                                 phase scripts
│
├── MFT_LLM_ARR_qwen2.5_32b/                     ← Qwen2.5-32B replication (same structure; MFV130.tar.gz + projection_results.tar.gz)
├── MFT_LLM_ARR_qwen3_30b_a3b/                   ← Qwen3-30B-A3B (MoE) replication (same structure; MFV130.tar.gz + projection_results.tar.gz)
│
├── run_three_models_master.sh                   ← orchestrator that ran the new-model batch
├── run_remaining.sh / run_qwen3_remaining.sh    ← resume scripts after partial failures
├── run_mmlu_safety.sh / plot_mmlu_safety.py     ← MMLU safety-regime sweep
└── three_models_master.log                      ← unified log of the 38 h batch run

Pipeline phases (per model variant)

1. Extract     15 foundation pairs × 200 samples × full 80-layer monitoring → vectors_npy/ × 30 dirs (15 × 2 variants)
2. Projection  15 pairs × N MFRC test scenarios → Wasserstein-D / direction tables per layer
3. Calibrate   r̄_ℓ on MFQ-2 prompts → steering_calibration.json
4. Steer (v3)  20 layers × 7 ρ × 5 rollouts × 36 MFQ-2 items, batched bf16 → results/{kind}_<f>_vs_social_norms.json
5. Steer (v4)  same grid + PVQ-21 batched + ideology single → results/{kind}_<f>_externals.json
6. Analyze     binding axis (sign test) + 5×16 transfer matrix

The "v3 batched" steering script (moral_steer_all_layers_batched_v3.py)
collapses the per-text per-layer single forward into a single batched
forward over 36 MFQ-2 items, with adaptive OOM batching, atomic incremental
saves, resume, and a bf16 batched-vs-sequential pre-check. This is what
made the full 16-model sweep feasible on 2× B200.

Headline results

Binding-axis transfer test (care_vs_authority vector, sign-test on 11 outcomes)

Model Variant L* Sign p (one-sided) Verdict
Llama-3.1-70B Instruct 28 10/11 0.006 ✓ strong
Llama-3.1-70B Base 32 9/11 0.033 ✓
Qwen2.5-32B Instruct 32 7/11 0.274 ✗
Qwen2.5-32B Base 44 11/11 <0.001 ✓✓✓ perfect
Qwen3-30B-A3B (MoE) Instruct 24 5/11 0.726 ✗
Qwen3-30B-A3B (MoE) Base 0 3/11 0.967 ✗✗

Key findings:

  • Llama-70B passes both variants, including instruct.
  • Qwen2.5-32B-Base is the strongest binding axis (perfect 11/11).
  • Qwen-Instruct fails (consistent with Qwen-7B-Instruct from prior work) —
    RLHF appears to selectively neutralize political ideology under steering
    while leaving PVQ values directionally intact.
  • MoE Qwen3 fails on both variants — expert routing fragments the
    binding-axis representation; L*=0 fallback signals no eligible deep layer.

MMLU safety regime (ρ ∈ [-0.4, +0.4])

Model Baseline acc Max |Δ| over [-0.4, +0.4]
Llama-3.1-70B-Instruct 79.10% 0.40 pp
Qwen2.5-32B-Instruct 80.95% 0.25 pp
Qwen3-30B-A3B-Instruct 26.45% ⚠️ 0.85 pp

Capability remains within ±1pp of baseline across the entire ρ ∈ [-0.4, +0.4]
range — no degradation at the higher ρ values where prior work suggested
capability would erode. ρ ≤ 0.2 is conservative; the true safe regime is
substantially wider on the binding axis. (Qwen3 baseline ≈ random; chat-template
formatting issue under investigation, but Δ remains small.)

How to use this backup

  1. Replicate a steering result — cd MFT_LLM_ARR_<model>/, install env from
    environment.yaml, set MODEL_BASE to a directory holding the model
    weights (download separately from Hugging Face). Then bash run_06_v4_increment.sh rebuilds the v4 results from existing extraction +
    calibration. Or run the full pipeline from run_all_auto.sh.

  2. Re-analyze — Load analysis/binding_axis_transfer_analysis.json or
    analysis/transfer_matrix_*.json directly. Schemas documented in
    v4_binding_axis_pkg/README.md.

  3. Compare across models — steering_summary_all_models.txt has the
    cross-model k_ρ table (cross-model-comparable, ρ-calibrated). The
    projection_full_raw_all_models.txt has the per-layer Wasserstein
    evidence for vector quality.

What's NOT in this backup

  • Model weights (/workspace/model_cache/, ≈ 500 GB) — re-download from
    Hugging Face: meta-llama/Llama-3.1-70B[-Instruct],
    Qwen/Qwen2.5-32B[-Instruct], Qwen/Qwen3-30B-A3B[-Base].
  • Conda environment (/workspace/miniforge3/, 1.3 GB) — recreate from
    environment.yaml (Python 3.10, PyTorch cu128 for Blackwell GPUs).

Hardware used

  • 2× NVIDIA B200 (180 GB each, 360 GB total VRAM)
  • 1.9 TB system RAM, 192 CPUs
  • 800 GB local storage (overlay), 24 TB shared
  • Total wall-clock for 16-model batch: ~38 hours

Citation

If you use this data, please cite the underlying methods:

  • MFQ-2 items: Atari et al. 2023, Moral foundations questionnaire-2, JPSP.
  • PVQ-21: Schwartz 2003, A proposal for measuring value orientations across
    nations
    , ESS Core Questionnaire.
  • Ideology single-item: Graham, Haidt & Nosek 2009, JPSP.
  • ρ-calibration + binding-axis steering: this work (in preparation).

Contact

Issues / corrections: open an issue on the dataset repo or email the
corresponding author.

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-02Add MMLU safety task package (scripts + 3 reference results + CLAUDE.md)ea2fed211.9 KB
    Loading...
  2. 2026-05-02Cleanup: remove .hf_home cache + .venv-backups (not user data)65122d311.9 KB
    Loading...
  3. 2026-05-02Atomic upload: tarballs + misc files (cleanup partial subdirs)677d64f11.9 KB
    Loading...
  4. 2026-05-02Add files using upload-large-folder toolc4fe78411.3 KB
    Loading...
  5. 2026-05-02README: add original /workspace storage paths sectionfbde24911.3 KB
    Loading...
  6. 2026-05-02Add files using upload-large-folder tool45db60f9 KB
    Loading...
  7. 2026-05-02Add files using upload-large-folder toolfd2bd599 KB
    Loading...
  8. 2026-05-02Add files using upload-large-folder toolada02159 KB
    Loading...
  9. 2026-05-02Add files using upload-large-folder toolec9c11c9 KB
    Loading...
  10. 2026-05-02Add files using upload-large-folder tool35b1c109 KB
    Loading...
  11. 2026-05-02Add files using upload-large-folder tool81eaa4b9 KB
    Loading...
  12. 2026-05-02Add files using upload-large-folder tool7502ebe9 KB
    Loading...
  13. 2026-05-02Add files using upload-large-folder toola82f2139 KB
    Loading...
  14. 2026-05-02Add files using upload-large-folder tooldeb2e7b9 KB
    Loading...
  15. 2026-05-02Add files using upload-large-folder tool49908c49 KB
    Loading...
  16. 2026-05-02Add files using upload-large-folder tool7fac0fa9 KB
    Loading...
  17. 2026-05-02Add files using upload-large-folder tool6ef90399 KB
    Loading...
  18. 2026-05-02Add files using upload-large-folder toolf8a266d9 KB
    Loading...
  19. 2026-05-02Add files using upload-large-folder toolb2f704f9 KB
    Loading...
  20. 2026-05-02Add files using upload-large-folder toole6b75b69 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 · ablate

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("cyu96374/MFT-LLM-binding-axis-multimodel-2026-05")
Raw snapshot (Python)
from huggingface_hub import snapshot_download
snapshot_download(repo_id="cyu96374/MFT-LLM-binding-axis-multimodel-2026-05", repo_type="dataset")
git clone (requires git-lfs)
git clone https://huggingface.co/datasets/cyu96374/MFT-LLM-binding-axis-multimodel-2026-05
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