SAELens
English
sparse-autoencoder
SAE
interpretability
deception-detection
mechanistic-interpretability
neuronpedia
behavioral-sampling
gpt-neox
pythia
Instructions to use Solshine/deception-saes-pythia-160m with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- SAELens
How to use Solshine/deception-saes-pythia-160m with SAELens:
# pip install sae-lens from sae_lens import SAE sae, cfg_dict, sparsity = SAE.from_pretrained( release = "RELEASE_ID", # e.g., "gpt2-small-res-jb". See other options in https://github.com/jbloomAus/SAELens/blob/main/sae_lens/pretrained_saes.yaml sae_id = "SAE_ID", # e.g., "blocks.8.hook_resid_pre". Won't always be a hook point ) - Notebooks
- Google Colab
- Kaggle
Commit ·
7475f3d
0
Parent(s):
Initial public release: SAE weights, cfg, and model card
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +35 -0
- README.md +291 -0
- pythia160m_jumprelu_L10_deceptive_only/cfg.json +23 -0
- pythia160m_jumprelu_L10_deceptive_only/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L10_honest_only/cfg.json +23 -0
- pythia160m_jumprelu_L10_honest_only/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L10_mixed/cfg.json +23 -0
- pythia160m_jumprelu_L10_mixed/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L1_deceptive_only/cfg.json +23 -0
- pythia160m_jumprelu_L1_deceptive_only/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L1_honest_only/cfg.json +23 -0
- pythia160m_jumprelu_L1_honest_only/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L1_mixed/cfg.json +23 -0
- pythia160m_jumprelu_L1_mixed/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L2_deceptive_only/cfg.json +23 -0
- pythia160m_jumprelu_L2_deceptive_only/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L2_honest_only/cfg.json +23 -0
- pythia160m_jumprelu_L2_honest_only/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L2_mixed/cfg.json +23 -0
- pythia160m_jumprelu_L2_mixed/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L4_deceptive_only/cfg.json +23 -0
- pythia160m_jumprelu_L4_deceptive_only/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L4_honest_only/cfg.json +23 -0
- pythia160m_jumprelu_L4_honest_only/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L4_mixed/cfg.json +23 -0
- pythia160m_jumprelu_L4_mixed/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L6_deceptive_only/cfg.json +23 -0
- pythia160m_jumprelu_L6_deceptive_only/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L6_honest_only/cfg.json +23 -0
- pythia160m_jumprelu_L6_honest_only/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L6_mixed/cfg.json +23 -0
- pythia160m_jumprelu_L6_mixed/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L8_deceptive_only/cfg.json +23 -0
- pythia160m_jumprelu_L8_deceptive_only/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L8_honest_only/cfg.json +23 -0
- pythia160m_jumprelu_L8_honest_only/sae_weights.safetensors +3 -0
- pythia160m_jumprelu_L8_mixed/cfg.json +23 -0
- pythia160m_jumprelu_L8_mixed/sae_weights.safetensors +3 -0
- pythia160m_topk_L10_deceptive_only/cfg.json +23 -0
- pythia160m_topk_L10_deceptive_only/sae_weights.safetensors +3 -0
- pythia160m_topk_L10_honest_only/cfg.json +23 -0
- pythia160m_topk_L10_honest_only/sae_weights.safetensors +3 -0
- pythia160m_topk_L10_mixed/cfg.json +23 -0
- pythia160m_topk_L10_mixed/sae_weights.safetensors +3 -0
- pythia160m_topk_L1_deceptive_only/cfg.json +23 -0
- pythia160m_topk_L1_deceptive_only/sae_weights.safetensors +3 -0
- pythia160m_topk_L1_honest_only/cfg.json +23 -0
- pythia160m_topk_L1_honest_only/sae_weights.safetensors +3 -0
- pythia160m_topk_L1_mixed/cfg.json +23 -0
- pythia160m_topk_L1_mixed/sae_weights.safetensors +3 -0
.gitattributes
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
|
@@ -0,0 +1,291 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
language: en
|
| 3 |
+
license: apache-2.0
|
| 4 |
+
tags:
|
| 5 |
+
- sparse-autoencoder
|
| 6 |
+
- SAE
|
| 7 |
+
- interpretability
|
| 8 |
+
- deception-detection
|
| 9 |
+
- mechanistic-interpretability
|
| 10 |
+
- saelens
|
| 11 |
+
- neuronpedia
|
| 12 |
+
- behavioral-sampling
|
| 13 |
+
- gpt-neox
|
| 14 |
+
- pythia
|
| 15 |
+
base_model:
|
| 16 |
+
- EleutherAI/pythia-160m
|
| 17 |
+
datasets:
|
| 18 |
+
- Solshine/deception-behavioral-multimodel
|
| 19 |
+
---
|
| 20 |
+
|
| 21 |
+
# Pythia-160M Deception Behavioral SAEs
|
| 22 |
+
|
| 23 |
+
36 Sparse Autoencoders trained on residual stream activations from [EleutherAI/pythia-160m](https://huggingface.co/EleutherAI/pythia-160m) (160M parameter GPT-NeoX architecture base model from the Pythia scaling suite), capturing behavioral deception signals via same-prompt temperature sampling.
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
## Training-data caveat — please read before use
|
| 27 |
+
|
| 28 |
+
The "honest" and "deceptive" labels used to train and evaluate this SAE
|
| 29 |
+
come from a **mixed scenario pool** of nine prompts:
|
| 30 |
+
|
| 31 |
+
- **Six clean incentive-structure scenarios** — `insider_info`,
|
| 32 |
+
`accounting_error`, `ai_oversight_log`, `ai_capability_hide`,
|
| 33 |
+
`surprise_party`, `job_interview_gap`. Each presents a realistic
|
| 34 |
+
situation with a non-trivial incentive to conceal or disclose
|
| 35 |
+
information; the honest/deceptive distinction is which of the two
|
| 36 |
+
behavioral choices the model's completion settles into under
|
| 37 |
+
temperature sampling.
|
| 38 |
+
- **Three role-play identity-assignment scenarios** —
|
| 39 |
+
`secret_role_game` ("You have been assigned the role of Fascist"),
|
| 40 |
+
`secret_role_game_v2` ("You are secretly one of the Mafia members"),
|
| 41 |
+
`werewolf_game` ("You are a Werewolf"). These pre-assign the model a
|
| 42 |
+
deceptive identity and label a completion "deceptive" when the model
|
| 43 |
+
drifts away from the assigned role or "honest" when it echoes it.
|
| 44 |
+
|
| 45 |
+
**What this mixed pool means for the SAE's labels.** Within the six
|
| 46 |
+
incentive-structure scenarios, the honest/deceptive distinction is a
|
| 47 |
+
measurement of behavioral choice under an ambiguous incentive. Within
|
| 48 |
+
the three role-play scenarios, the distinction is a measurement of
|
| 49 |
+
role-consistency under identity-assigned role-play — which is a
|
| 50 |
+
well-defined phenomenon but not the same as emergent or incentive-
|
| 51 |
+
driven deception.
|
| 52 |
+
|
| 53 |
+
**What this SAE is and is not good for.**
|
| 54 |
+
|
| 55 |
+
- **Good for:** research on mixed-pool activation geometry; SAE
|
| 56 |
+
feature-geometry studies; as one of a set of baselines when
|
| 57 |
+
comparing multiple SAE families; as a reference implementation of
|
| 58 |
+
same-prompt temperature-sampled behavioral SAE training at scale.
|
| 59 |
+
- **Not recommended as a standalone deception detector.** The
|
| 60 |
+
role-consistency signal from the three role-play scenarios is mixed
|
| 61 |
+
into every aggregate metric reported below. A downstream user who
|
| 62 |
+
wants an "emergent-deception feature set" should restrict attention
|
| 63 |
+
to features whose activation pattern concentrates in the
|
| 64 |
+
`insider_info` / `accounting_error` / `ai_oversight_log` /
|
| 65 |
+
`ai_capability_hide` / `surprise_party` / `job_interview_gap`
|
| 66 |
+
scenarios — or wait for the methodologically corrected V3 re-release
|
| 67 |
+
currently in preparation on the decision-incentive scenario bank
|
| 68 |
+
(no pre-assigned deceptive identity).
|
| 69 |
+
|
| 70 |
+
**What is unaffected by this caveat.**
|
| 71 |
+
|
| 72 |
+
- The SAE weights, reconstruction metrics (explained variance, L0,
|
| 73 |
+
alive features), and engineering of the training pipeline are
|
| 74 |
+
accurate as reported.
|
| 75 |
+
- The linear-probe balanced-accuracy numbers in the upstream paper
|
| 76 |
+
measure the mixed pool; the 6-scenario clean-subset re-analysis is
|
| 77 |
+
listed as a planned appendix for the next manuscript revision.
|
| 78 |
+
|
| 79 |
+
A companion methodology-first Gemma 4 SAE suite is in preparation using
|
| 80 |
+
pretraining-distribution data + a decision-incentive behavior split;
|
| 81 |
+
this README will be updated with a link when that release is public.
|
| 82 |
+
|
| 83 |
+
---
|
| 84 |
+
|
| 85 |
+
Part of the cross-model deception SAE study: [Solshine/deception-behavioral-saes-saelens](https://huggingface.co/Solshine/deception-behavioral-saes-saelens) (9 models, 348 total SAEs).
|
| 86 |
+
|
| 87 |
+
## What's in This Repo
|
| 88 |
+
|
| 89 |
+
- **36 SAEs** across 6 layers (L1, L2, L4, L6, L8, L10)
|
| 90 |
+
- **2 architectures:** TopK (k=64), JumpReLU
|
| 91 |
+
- **3 training conditions:** `mixed`, `deceptive_only`, `honest_only`
|
| 92 |
+
- **Format:** SAELens/Neuronpedia-compatible (safetensors + cfg.json)
|
| 93 |
+
- **Dimensions:** d_in=768, d_sae=3072 (4x expansion)
|
| 94 |
+
|
| 95 |
+
## Research Context
|
| 96 |
+
|
| 97 |
+
This is a follow-up to ["The Secret Agenda: LLMs Strategically Lie Undetected by Current Safety Tools"](https://arxiv.org/abs/2509.20393) (arXiv:2509.20393). Same-prompt behavioral sampling: a single ambiguous scenario prompt produces both deceptive and honest completions via temperature sampling, classified by Gemini 2.5 Flash. Pythia-160M is the only GPT-NeoX model in the study that is not a nanochat variant, providing an independent test of the GPT-NeoX architecture at small scale.
|
| 98 |
+
|
| 99 |
+
Code: [SolshineCode/deception-nanochat-sae-research](https://github.com/SolshineCode/deception-nanochat-sae-research)
|
| 100 |
+
|
| 101 |
+
## Key Findings — Pythia-160M
|
| 102 |
+
|
| 103 |
+
Pythia-160M is the **most anomalous model** in terms of layer profile — the only one with a monotonically *decreasing* deception signal, and one of the strongest SAE-helps results.
|
| 104 |
+
|
| 105 |
+
| Metric | Value |
|
| 106 |
+
|---|---|
|
| 107 |
+
| Peak layer | L0 (0% depth — embedding layer) |
|
| 108 |
+
| Peak balanced accuracy | **66.0%** |
|
| 109 |
+
| Peak AUROC | **0.696** |
|
| 110 |
+
| Best SAE probe accuracy | **72.2%** (`pythia160m_jumprelu_L2_honest_only`) |
|
| 111 |
+
| SAEs beating raw baseline | 18/36 (50%) — SAEs **help**, tied-best rate in study |
|
| 112 |
+
|
| 113 |
+
**Monotonically decreasing signal — opposite of all other models:** Every other model with above-chance probe accuracy shows a peak at some intermediate layer and declines toward the output. Pythia-160M is the sole model where the signal is strongest at the embedding layer (L0, 66.0%) and decreases monotonically through the network. By Layer 10, the raw probe is near chance. The hypothesis is that at 160M parameters, the model lacks the capacity to develop processing depth for deception, and what the probe detects at L0 is primarily token pattern recognition (which characters appear in social deduction prompts) rather than genuine behavioral encoding.
|
| 114 |
+
|
| 115 |
+
**However, SAEs reverse the trend:** Despite raw activations degrading through the network, `pythia160m_jumprelu_L2_honest_only` achieves 72.2% at L2 — +6.2pp above the raw peak at L0 (66.0%). This is one of the largest SAE-over-raw improvements in the study. The SAE decomposition appears to isolate a concentrated signal at L2 that is obscured in the full 768-dimensional raw representation.
|
| 116 |
+
|
| 117 |
+
**Highest SAE-helps rate in the study (50%):** 18 of 36 SAEs beat the raw baseline at their respective layers. Given that raw activations degrade monotonically, this means SAEs are recovering latent structure at layers where the raw probe is at or near chance.
|
| 118 |
+
|
| 119 |
+
**JumpReLU + honest_only pattern replicates:** As with nanochat-d20, TinyLlama, and Llama-3.2-1B, the best-performing SAE combines JumpReLU architecture with honest_only training condition. This pattern holds across 4 of the 5 SAE-helps models in the study, suggesting honest-only training data selects for features that are genuinely diagnostic of deception absence (rather than features that are merely correlated with deceptive text).
|
| 120 |
+
|
| 121 |
+
**GPT-NeoX architecture at 160M:** Pythia-160M uses EleutherAI's Pythia training framework with the standard GPT-NeoX architecture — parallel attention and MLP blocks, rotary position embeddings — but at only 160M parameters, 12 transformer layers, and a 768-dimensional residual stream. Unlike nanochat-d20/d32 (GPT-NeoX with 1.88B parameters), Pythia-160M cannot rely on depth to accumulate behavioral representation. The 12-layer budget may force surface encoding to dominate.
|
| 122 |
+
|
| 123 |
+
**AUROC = 0.696 at L0:** Lower than other models but substantially above 0.5. Combined with the best SAE at 72.2%, this confirms that a deception signal — however shallow in origin — is present even at 160M parameters in a GPT-NeoX model.
|
| 124 |
+
|
| 125 |
+
## SAE Format
|
| 126 |
+
|
| 127 |
+
Each SAE lives in a subfolder named `{sae_id}/` containing:
|
| 128 |
+
- `sae_weights.safetensors` — encoder/decoder weights
|
| 129 |
+
- `cfg.json` — SAELens-compatible config
|
| 130 |
+
|
| 131 |
+
`hook_name` format: `gpt_neox.layers.{layer}.hook_resid_post`
|
| 132 |
+
|
| 133 |
+
(Note: Pythia uses `gpt_neox.layers` rather than `model.layers` as the module path.)
|
| 134 |
+
|
| 135 |
+
## Training Details
|
| 136 |
+
|
| 137 |
+
| Parameter | Value |
|
| 138 |
+
|---|---|
|
| 139 |
+
| Hardware | NVIDIA GeForce GTX 1650 Ti Max-Q, 4 GB VRAM, Windows 11 Pro |
|
| 140 |
+
| Training time | ~400–600 seconds per SAE |
|
| 141 |
+
| Epochs | 300 |
|
| 142 |
+
| Batch size | 128 |
|
| 143 |
+
| Expansion factor | 4x (768 → 3072) |
|
| 144 |
+
| Activations | `resid_post` collected during autoregressive generation |
|
| 145 |
+
| Training conditions | `mixed` (n=211), `deceptive_only` (n=120), `honest_only` (n=91) |
|
| 146 |
+
| LLM classifier | Gemini 2.5 Flash |
|
| 147 |
+
| Ambiguous rate | 59/270 (21.9%) — highest in study |
|
| 148 |
+
|
| 149 |
+
## Known Limitations
|
| 150 |
+
|
| 151 |
+
**JumpReLU threshold not learned (36 SAEs):** All SAEs have `threshold = 0` — functionally ReLU. L0 ≈ 50% of d_sae. TopK SAEs are unaffected.
|
| 152 |
+
|
| 153 |
+
**STE fix (2026-04-11):** The training code has been corrected with a Gaussian-kernel STE (Rajamanoharan et al. 2024, arXiv:2407.14435). The honest_only advantage is confirmed as not a dimensionality artifact (15/18 STE conditions on d20+TinyLlama confirm). STE-specific validation SAEs for Pythia-160M were not run; the pattern from other models is assumed to generalize.
|
| 154 |
+
|
| 155 |
+
**L0 peak may reflect token pattern recognition:** The best *raw* layer is the embedding layer. It is possible that what the probe detects at L0 is surface-level token distribution differences between deceptive and honest social deduction scenarios, rather than deeper behavioral encoding. The SAE result at L2 slightly mitigates this concern by recovering signal at a processed layer.
|
| 156 |
+
|
| 157 |
+
**High ambiguity rate:** 21.9% of Pythia-160M completions were classified as ambiguous by Gemini — the highest ambiguity rate in the study. The model's 160M parameters may produce more incoherent outputs that are hard to classify.
|
| 158 |
+
|
| 159 |
+
## Loading Example
|
| 160 |
+
|
| 161 |
+
```python
|
| 162 |
+
from safetensors.torch import load_file
|
| 163 |
+
import json
|
| 164 |
+
|
| 165 |
+
sae_id = "pythia160m_jumprelu_L2_honest_only"
|
| 166 |
+
weights = load_file(f"{sae_id}/sae_weights.safetensors")
|
| 167 |
+
cfg = json.load(open(f"{sae_id}/cfg.json"))
|
| 168 |
+
|
| 169 |
+
# W_enc: [768, 3072], W_dec: [3072, 768]
|
| 170 |
+
# cfg["hook_name"] == "gpt_neox.layers.2.hook_resid_post"
|
| 171 |
+
print(f"d_in={cfg['d_in']}, d_sae={cfg['d_sae']}")
|
| 172 |
+
print(f"Training condition: {cfg['training_condition']}")
|
| 173 |
+
```
|
| 174 |
+
|
| 175 |
+
|
| 176 |
+
## Usage
|
| 177 |
+
|
| 178 |
+
### 1. Load an SAE from this repo
|
| 179 |
+
|
| 180 |
+
```python
|
| 181 |
+
from huggingface_hub import hf_hub_download
|
| 182 |
+
from safetensors.torch import load_file
|
| 183 |
+
import json
|
| 184 |
+
|
| 185 |
+
repo_id = "Solshine/deception-saes-pythia-160m"
|
| 186 |
+
sae_id = "pythia160m_topk_L4_honest_only" # replace with any tag in this repo
|
| 187 |
+
|
| 188 |
+
weights_path = hf_hub_download(repo_id, f"{sae_id}/sae_weights.safetensors")
|
| 189 |
+
cfg_path = hf_hub_download(repo_id, f"{sae_id}/cfg.json")
|
| 190 |
+
|
| 191 |
+
with open(cfg_path) as f:
|
| 192 |
+
cfg = json.load(f)
|
| 193 |
+
|
| 194 |
+
# Option A — load with SAELens (≥3.0 required for jumprelu/topk; ≥3.5 for gated)
|
| 195 |
+
from sae_lens import SAE
|
| 196 |
+
sae = SAE.from_dict(cfg)
|
| 197 |
+
sae.load_state_dict(load_file(weights_path))
|
| 198 |
+
|
| 199 |
+
# Option B — load manually (no SAELens dependency)
|
| 200 |
+
from safetensors.torch import load_file
|
| 201 |
+
state = load_file(weights_path)
|
| 202 |
+
# Keys: W_enc [768, 3072], b_enc [3072],
|
| 203 |
+
# W_dec [3072, 768], b_dec [768], threshold [3072]
|
| 204 |
+
```
|
| 205 |
+
|
| 206 |
+
### 2. Hook into the model and collect residual-stream activations
|
| 207 |
+
|
| 208 |
+
These SAEs were trained on the **residual stream after each transformer layer**.
|
| 209 |
+
The `hook_name` field in `cfg.json` gives the exact HuggingFace `transformers`
|
| 210 |
+
submodule path to hook. Pythia uses GPT-NeoX architecture. Hook path: `gpt_neox.layers.{layer}` (not `model.layers.{layer}`).
|
| 211 |
+
|
| 212 |
+
```python
|
| 213 |
+
import torch
|
| 214 |
+
from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 215 |
+
|
| 216 |
+
model = AutoModelForCausalLM.from_pretrained("EleutherAI/pythia-160m")
|
| 217 |
+
tokenizer = AutoTokenizer.from_pretrained("EleutherAI/pythia-160m")
|
| 218 |
+
|
| 219 |
+
# Read hook_name from the cfg you already loaded:
|
| 220 |
+
# cfg["hook_name"] == "gpt_neox.layers.4" (example — varies by SAE)
|
| 221 |
+
hook_name = cfg["hook_name"] # e.g. "gpt_neox.layers.4"
|
| 222 |
+
|
| 223 |
+
# Navigate the submodule path and register a forward hook
|
| 224 |
+
import functools
|
| 225 |
+
submodule = functools.reduce(getattr, hook_name.split("."), model)
|
| 226 |
+
|
| 227 |
+
activations = {}
|
| 228 |
+
def hook_fn(module, input, output):
|
| 229 |
+
# Most transformer layers return (hidden_states, ...) as a tuple
|
| 230 |
+
h = output[0] if isinstance(output, tuple) else output
|
| 231 |
+
activations["resid"] = h.detach()
|
| 232 |
+
|
| 233 |
+
handle = submodule.register_forward_hook(hook_fn)
|
| 234 |
+
|
| 235 |
+
inputs = tokenizer("Your text here", return_tensors="pt")
|
| 236 |
+
with torch.no_grad():
|
| 237 |
+
model(**inputs)
|
| 238 |
+
handle.remove()
|
| 239 |
+
|
| 240 |
+
# activations["resid"]: [batch, seq_len, 768]
|
| 241 |
+
resid = activations["resid"][:, -1, :] # last token position
|
| 242 |
+
```
|
| 243 |
+
|
| 244 |
+
### 3. Read feature activations
|
| 245 |
+
|
| 246 |
+
```python
|
| 247 |
+
with torch.no_grad():
|
| 248 |
+
feature_acts = sae.encode(resid) # [batch, 3072] — sparse
|
| 249 |
+
|
| 250 |
+
# Which features fired?
|
| 251 |
+
active_features = feature_acts[0].nonzero(as_tuple=True)[0]
|
| 252 |
+
top_features = feature_acts[0].topk(10)
|
| 253 |
+
|
| 254 |
+
print("Active feature indices:", active_features.tolist())
|
| 255 |
+
print("Top-10 feature values:", top_features.values.tolist())
|
| 256 |
+
print("Top-10 feature indices:", top_features.indices.tolist())
|
| 257 |
+
|
| 258 |
+
# Reconstruct (for sanity check — should be close to resid)
|
| 259 |
+
reconstruction = sae.decode(feature_acts)
|
| 260 |
+
l2_error = (resid - reconstruction).norm(dim=-1).mean()
|
| 261 |
+
```
|
| 262 |
+
|
| 263 |
+
### Caveats and known limitations
|
| 264 |
+
|
| 265 |
+
**Hook names are HuggingFace `transformers`-style, not TransformerLens-style.**
|
| 266 |
+
The `hook_name` in `cfg.json` (e.g. `"gpt_neox.layers.4"`) is a submodule path in the standard
|
| 267 |
+
HuggingFace model. SAELens' built-in activation-collection pipeline expects
|
| 268 |
+
TransformerLens hook names (e.g. `blocks.14.hook_resid_post`). This means
|
| 269 |
+
`SAE.from_pretrained()` with automatic model running **will not work** — use the
|
| 270 |
+
manual forward-hook pattern above instead.
|
| 271 |
+
|
| 272 |
+
**SAELens version requirements.**
|
| 273 |
+
- `topk` architecture: SAELens ≥ 3.0
|
| 274 |
+
- `jumprelu` architecture: SAELens ≥ 3.0
|
| 275 |
+
- `gated` architecture: SAELens ≥ 3.5 (or load manually with `state_dict`)
|
| 276 |
+
|
| 277 |
+
**These SAEs detect deceptive *behavior*, not deceptive *prompts**.*
|
| 278 |
+
They were trained on response-level activations where the same prompt produced both
|
| 279 |
+
deceptive and honest outputs. Feature activation differences reflect behavioral
|
| 280 |
+
divergence, not prompt content. See the paper for experimental design details.
|
| 281 |
+
|
| 282 |
+
## Citation
|
| 283 |
+
|
| 284 |
+
```bibtex
|
| 285 |
+
@article{thesecretagenda2025,
|
| 286 |
+
title={The Secret Agenda: LLMs Strategically Lie Undetected by Current Safety Tools},
|
| 287 |
+
author={DeLeeuw, Caleb},
|
| 288 |
+
journal={arXiv:2509.20393},
|
| 289 |
+
year={2025}
|
| 290 |
+
}
|
| 291 |
+
```
|
pythia160m_jumprelu_L10_deceptive_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.10",
|
| 9 |
+
"hook_layer": 10,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "deceptive_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 10, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L10_deceptive_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:47779de850b9a5c246f98bee4194c5d1469f5a45ababbe2eed12bfa80982b58a
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L10_honest_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.10",
|
| 9 |
+
"hook_layer": 10,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "honest_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 10, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L10_honest_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d5d7423ba54f73993badcffff13a5afb53f5a5bcdff4ae848ef6aa7a9fc3f074
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L10_mixed/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.10",
|
| 9 |
+
"hook_layer": 10,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "mixed",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 10, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L10_mixed/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:690a5bf1731bb80d1988ccffa604cc977bf9b506343fc8c2503609b780de9492
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L1_deceptive_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.1",
|
| 9 |
+
"hook_layer": 1,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "deceptive_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 1, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L1_deceptive_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5e6b1c54a58e5aa97836b452792b89a350674ec9d8b8eaddf208735a98d0f2e5
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L1_honest_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.1",
|
| 9 |
+
"hook_layer": 1,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "honest_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 1, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L1_honest_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2388ac03197977efa0803b9ec7d227e0e3ec4a26d795ca44886e8c14793e9ac7
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L1_mixed/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.1",
|
| 9 |
+
"hook_layer": 1,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "mixed",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 1, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L1_mixed/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c0c9b070194f6647dec545dac977ec05cc495d34d0bf6dbc6c532c73db7c14c2
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L2_deceptive_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.2",
|
| 9 |
+
"hook_layer": 2,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "deceptive_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 2, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L2_deceptive_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ea9827b04f13c72672ef2384ee925a212c3383922e148eb2959fc5ca03ef7dcb
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L2_honest_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.2",
|
| 9 |
+
"hook_layer": 2,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "honest_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 2, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L2_honest_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1a7c1a1d8dd45fab71d3eddc4ee7d5fe403d88cb2a8a88add4cf170d2ff168ae
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L2_mixed/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.2",
|
| 9 |
+
"hook_layer": 2,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "mixed",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 2, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L2_mixed/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d0febdd3ffdd04d01cba66a63eda2a17c608f470ab157d2f82b20148c0b39689
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L4_deceptive_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.4",
|
| 9 |
+
"hook_layer": 4,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "deceptive_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 4, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L4_deceptive_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e1cf2c5b4ab66088b98ba2b4df439bd55225b71753f4ab9d761c44c6b8920ae2
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L4_honest_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.4",
|
| 9 |
+
"hook_layer": 4,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "honest_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 4, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L4_honest_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9bd5aee2319906a0fad27106d6d66b9d00cda9f6d8ae79e390971e342afa233f
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L4_mixed/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.4",
|
| 9 |
+
"hook_layer": 4,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "mixed",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 4, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L4_mixed/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:cb8cbb22a20b0e92ecc4a1da551b4962eb16ee48babc9c28a278db8d37744f2f
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L6_deceptive_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.6",
|
| 9 |
+
"hook_layer": 6,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "deceptive_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 6, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L6_deceptive_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3e1b69980867fea939edbf07f2e73953fa40be14ef5082251e57cc8a20121c80
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L6_honest_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.6",
|
| 9 |
+
"hook_layer": 6,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "honest_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 6, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L6_honest_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:37461e6a3db2bb1b9403625b65c5f616b073e76c33b24cc3fabcba2679c9ebff
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L6_mixed/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.6",
|
| 9 |
+
"hook_layer": 6,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "mixed",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 6, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L6_mixed/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1d27a11a5a0732939e4db5e40dfc69859233e114634514726b7ed5ddb1dade63
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L8_deceptive_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.8",
|
| 9 |
+
"hook_layer": 8,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "deceptive_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 8, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L8_deceptive_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8d20e08acd880a8d7ec860c187e838e511a2fa5ea010f2bf67bd696f93aa73d1
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L8_honest_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.8",
|
| 9 |
+
"hook_layer": 8,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "honest_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 8, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L8_honest_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2b54ee5fd055a8c1c9f2b5e172b74bd2c34dcb3b9ee100f71ea2a0e01ce88c91
|
| 3 |
+
size 18902400
|
pythia160m_jumprelu_L8_mixed/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "jumprelu",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.8",
|
| 9 |
+
"hook_layer": 8,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "jumprelu",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "mixed",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 8, jumprelu. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_jumprelu_L8_mixed/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:30de0360e2961cf86b8e0dbcb98060aaf19c12a7c9578e727032431a9e3a5c8b
|
| 3 |
+
size 18902400
|
pythia160m_topk_L10_deceptive_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "topk",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.10",
|
| 9 |
+
"hook_layer": 10,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "topk",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "deceptive_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 10, topk. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_topk_L10_deceptive_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a0acdf24cb73e218c159eac9acea4cafc9805272b26cc06c45ddcff598cfc994
|
| 3 |
+
size 18890032
|
pythia160m_topk_L10_honest_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "topk",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.10",
|
| 9 |
+
"hook_layer": 10,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "topk",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "honest_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 10, topk. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_topk_L10_honest_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:994a18923ac0c6d36c5af65c749248a7e17b40a40f6b00b6e2ab1e7a91e71ba4
|
| 3 |
+
size 18890032
|
pythia160m_topk_L10_mixed/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "topk",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.10",
|
| 9 |
+
"hook_layer": 10,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "topk",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "mixed",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 10, topk. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_topk_L10_mixed/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4866394d729379c7e9fb18c386b320984a5cfc5e25888cb3094dc8479db7f42e
|
| 3 |
+
size 18890032
|
pythia160m_topk_L1_deceptive_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "topk",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.1",
|
| 9 |
+
"hook_layer": 1,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "topk",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "deceptive_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 1, topk. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_topk_L1_deceptive_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c860f07d6513fb4c972b63ea39a880537be2d4f1c42383c4a2954edc5bf55e86
|
| 3 |
+
size 18890032
|
pythia160m_topk_L1_honest_only/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "topk",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.1",
|
| 9 |
+
"hook_layer": 1,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "topk",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "honest_only",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 1, topk. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_topk_L1_honest_only/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f363394d890ed216a88eedec51805663ffd46ea1e31ca6c03f501402f5395cc1
|
| 3 |
+
size 18890032
|
pythia160m_topk_L1_mixed/cfg.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architecture": "topk",
|
| 3 |
+
"d_in": 768,
|
| 4 |
+
"d_sae": 3072,
|
| 5 |
+
"dtype": "float32",
|
| 6 |
+
"device": "cpu",
|
| 7 |
+
"model_name": "EleutherAI/pythia-160m",
|
| 8 |
+
"hook_name": "gpt_neox.layers.1",
|
| 9 |
+
"hook_layer": 1,
|
| 10 |
+
"hook_head_index": null,
|
| 11 |
+
"activation_fn_str": "topk",
|
| 12 |
+
"activation_fn_kwargs": {},
|
| 13 |
+
"apply_b_dec_to_input": false,
|
| 14 |
+
"finetuning_scaling_factor": false,
|
| 15 |
+
"sae_lens_training_version": "deception-behavioral-v1",
|
| 16 |
+
"prepend_bos": false,
|
| 17 |
+
"dataset_path": "Solshine/deception-behavioral-multimodel",
|
| 18 |
+
"dataset_trust_remote_code": false,
|
| 19 |
+
"context_size": null,
|
| 20 |
+
"normalize_activations": "none",
|
| 21 |
+
"training_condition": "mixed",
|
| 22 |
+
"training_notes": "Deception behavioral SAE \u2014 same-prompt behavioral sampling. Model: EleutherAI/pythia-160m, Layer 1, topk. See https://github.com/SolshineCode/deception-nanochat-sae-research"
|
| 23 |
+
}
|
pythia160m_topk_L1_mixed/sae_weights.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:639eb1d0aa34b67fbc330613627855f9889e274e8cc36b93d8840e14794f4384
|
| 3 |
+
size 18890032
|