High-Performance Hyperbolic Sparse Autoencoders for Mechanistic Interpretability
Project description
HyperSAE: High-Performance Hyperbolic Sparse Autoencoders
hypersae is a high-performance mechanistic interpretability engine designed to extract hierarchical concept ontologies from Large Language Models (LLMs). By decoupling hyperbolic geometry from the forward pass, it provides the zero-latency execution of standard Euclidean Sparse Autoencoders alongside the semantic mapping power of Riemannian negative curvature.
Installation
Install directly via PyPI:
pip install hypersae
Or install locally from source:
git clone https://github.com/vishal-dehurdle/hypersae.git
cd hypersae
pip install -e .
1. Core Architecture: Decoupled Weight-Space Regularization
To preserve high GPU throughput and model compatibility, hypersae separates execution into two computational speeds:
- The Fast-Path (Euclidean Forward Pass): The massive volume of active token data remains entirely in flat, high-speed Euclidean space ($\mathbb{R}^d$). This avoids the latency of Riemannian manifolds, respects base model normalizations (e.g.,
RMSNorm), and maintains direct causal steering compatibility. - The Slow-Path (Hyperbolic Weight Regularization): The structural, hierarchical relationships of concepts are enforced exclusively in the dictionary parameter space during optimization via Poincaré ball projections $(\mathcal{B}^d, g_{\mathbf{x}})$.
graph TD
subgraph Fast_Path["Fast-Path: Euclidean Forward Pass (bfloat16)"]
X["Normalized Token Activations x"] --> ENC["Euclidean Encoder"]
ENC --> F["Sparse Activations f"]
F --> DEC["Euclidean Decoder (W_dec)"]
DEC --> X_HAT["Reconstructed Activations x̂"]
end
subgraph Slow_Path["Slow-Path: Hyperbolic Weight Optimization (Upcast to float32)"]
W_dec["Decoder Weights (W_dec)"] & R_depth["Depth Scalars (r_i)"] --> MAP["Poincaré Manifold Projection"]
MAP --> H_coords["Hyperbolic Coordinates (h_i)"]
H_coords --> MOCO["CoActivation Queue"]
MOCO --> LOSS["Asymmetric Poincaré Entailment Loss"]
end
LOSS -.->|"Dual-Optimizer Update (AdamW / RiemannianAdam)"| W_dec
2. Empirical Benchmark Results (Gemma-2-2B Layer 13)
Evaluated at scale on Google Gemma-2-2B Layer 13 residual stream activations ($d=2304$, dict size $M=16384$) streaming over 20M tokens of FineWeb-Edu on an NVIDIA L4 GPU cluster:
Downstream Reasoning Retention (Single-Token Substitution)
| Benchmark | Gemma-2-2B Baseline | FlatSAE (Baseline) | HyperSAE (Ours) | Relative Retained Capacity |
|---|---|---|---|---|
| GPQA Diamond | 66.67% | 100.00% | 100.00% | 100% Accuracy Preserved |
| MMLU-Pro (12,032 Questions) | 17.69% | 16.11% | 16.26% | HyperSAE Retains Superior Accuracy (+0.15%) |
Pareto Reconstruction & Sparsity Performance
| Model Architecture | $L_1$ Penalty | Active Features / Token ($L_0$) | Reconstruction MSE ($\downarrow$) | CE Loss Recovery % ($\uparrow$) | CE Loss with Hook |
|---|---|---|---|---|---|
| HyperSAE (Ours) | 0.005 |
54.2 | 4.1232 | 78.9% | 6.1164 |
| FlatSAE (Baseline) | 0.005 |
52.4 | 4.5724 | 75.5% | 6.3861 |
| HyperSAE (Ours) | 0.001 |
988.8 | 1.3965 | 97.7% | 4.6036 |
| FlatSAE (Baseline) | 0.001 |
744.5 | 1.7364 | 97.2% | 4.6499 |
| HyperSAE (Ours) | 0.0005 |
2285.4 | 0.7666 | 98.1% | 4.5721 |
| FlatSAE (Baseline) | 0.0005 |
1511.8 | 1.0112 | 97.0% | 4.6608 |
Key Takeaway: HyperSAE achieves a 9.8% reduction in reconstruction MSE and a +3.4% boost in Cross-Entropy Loss Recovery over flat SAEs at matching sparsity ($L_0 \approx 53$).
3. Quickstart Example
import torch
from hypersae import HyperSAE, TriPartiteLoss, HyperSAETrainer
device = "cuda" if torch.cuda.is_available() else "cpu"
# 1. Instantiate HyperSAE for Gemma-2-2B (d_model=2304, dict_size=16384)
sae = HyperSAE(d_model=2304, dict_size=16384).to(device)
# 2. Forward pass on residual stream batch
x = torch.randn(64, 2304, device=device)
x_hat, f = sae(x)
# 3. Compute TriPartite Loss (MSE + L1 Sparsity + Poincaré Entailment)
loss_fn = TriPartiteLoss(l1_coeff=0.005, poincare_coeff=0.01)
loss, metrics = loss_fn(x, x_hat, f, sae)
print(f"Total Loss: {loss.item():.4f}")
print(f"Reconstruction MSE: {metrics['mse']:.4f}")
print(f"L0 Sparsity: {metrics['l0']:.1f} active features/token")
# 4. Export learned hierarchical ontology graph
dag = sae.export_ontology_graph(K=0.5)
print(f"Extracted Taxonomy DAG: {dag.number_of_nodes()} nodes, {dag.number_of_edges()} edges")
4. Software Architecture
hypersae.HyperSAE: Core model module implementing linear forward pass and learnable radial depths $r_i \in [0, 1)$.hypersae.FlatSAE: Standard Euclidean baseline for benchmark comparison.hypersae.TriPartiteLoss: Loss orchestrator combining MSE, $L_1$ sparsity, and Poincaré cone entailment penalties.hypersae.CoActivationQueue: Asynchronous GPU memory queue tracking feature co-occurrences without $\mathcal{O}(M^2)$ memory growth.hypersae.hooks: PyTorch and TransformerLens forward hook utilities for steering and intervention.
5. Research Papers & Publications
- Theoretical Paper: Escaping Flatland: Weight-Space Regularization and Hyperbolic Geometry in Mechanistic Interpretability
- Empirical Paper: Hyperbolic Sparse Autoencoders: Empirical Validation of Poincaré Manifold Geometry on LLM Activations
License
This project is licensed under the MIT License — see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hypersae-0.1.0.tar.gz.
File metadata
- Download URL: hypersae-0.1.0.tar.gz
- Upload date:
- Size: 39.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83e3c8117a1256ec6a8c4180450ca0ca3bb6aca74dbc97658f3294f64ab1ee11
|
|
| MD5 |
1827285a130852cf74f4e9ce36c8041c
|
|
| BLAKE2b-256 |
9fae22a09bd3f86501d68000013ef2e606b9c566c7a9534a4c2d2a97665e209c
|
Provenance
The following attestation bundles were made for hypersae-0.1.0.tar.gz:
Publisher:
release.yml on vishal-dehurdle/hypersae
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hypersae-0.1.0.tar.gz -
Subject digest:
83e3c8117a1256ec6a8c4180450ca0ca3bb6aca74dbc97658f3294f64ab1ee11 - Sigstore transparency entry: 2327925430
- Sigstore integration time:
-
Permalink:
vishal-dehurdle/hypersae@8ae32ddb073c0fce534d3c0ec265729815efc226 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/vishal-dehurdle
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8ae32ddb073c0fce534d3c0ec265729815efc226 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hypersae-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hypersae-0.1.0-py3-none-any.whl
- Upload date:
- Size: 18.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47235ab3360be0f486dbc80ef691f2fb089980316b36804aaa2b64f4c83c8e92
|
|
| MD5 |
6eebe23056a9d66e37518f92fc1f72f2
|
|
| BLAKE2b-256 |
376e2058b97ba4c132f15618c5bd7cb8c7d47cfffbc11c147e5dc6d2ad84217d
|
Provenance
The following attestation bundles were made for hypersae-0.1.0-py3-none-any.whl:
Publisher:
release.yml on vishal-dehurdle/hypersae
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hypersae-0.1.0-py3-none-any.whl -
Subject digest:
47235ab3360be0f486dbc80ef691f2fb089980316b36804aaa2b64f4c83c8e92 - Sigstore transparency entry: 2327925468
- Sigstore integration time:
-
Permalink:
vishal-dehurdle/hypersae@8ae32ddb073c0fce534d3c0ec265729815efc226 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/vishal-dehurdle
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8ae32ddb073c0fce534d3c0ec265729815efc226 -
Trigger Event:
push
-
Statement type: