Sparse but Wrong: Incorrect L0 Leads to Incorrect Features in Sparse Autoencoders

## Abstract

Abstract Sparse Autoencoders (SAEs) extract features from LLM internal activations, meant to correspond to interpretable concepts. A core SAE training hyperparameter is L0: how many SAE features should fire per token on average. Existing work compares SAE algorithms using sparsity–reconstruction tradeoff plots, implying L0 is a free parameter with no single correct value aside from its effect on reconstruction. In this work we study the effect of L0 on SAEs, and show that if L0 is not set correctly, the SAE fails to disentangle the underlying features of the LLM. If L0 is too low, the SAE will mix correlated features to improve reconstruction. If L0 is too high, the SAE finds degenerate solutions that also mix features. Further, we present a proxy metric that can help guide the search for the correct L0 for an SAE on a given training distribution. We show that our method finds the correct L0 in toy models and coincides with peak sparse probing performance in LLM SAEs. We find that most commonly used SAEs have an L0 that is too low. Our work shows that L0 must be set correctly to train SAEs with correct features.

## 1 Introduction

It is theorized that Large Language Models (LLMs) represent concepts as linear directions in representation space, known as the Linear Representation Hypothesis (LRH) (Elhage et al., 2022; Park et al., 2024). These concepts are nearly orthogonal linear directions, allowing the LLM to represent many more concepts than there are neurons, a phenomenon known as superposition (Elhage et al., 2022). However, superposition poses a challenge for interpretability, as neurons in the LLM are polysemantic, firing on many different concepts.

Sparse autoencoders (SAEs) are meant to reverse superposition, and extract interpretable, monosemantic latent features (Cunningham et al., 2024; Bricken et al., 2023) using sparse dictionary learning (Olshausen & Field, 1997). SAEs have the advantage of being unsupervised, and can be scaled to millions of neurons in its hidden layer (hereafter called “latents”(^1^11We use latents to prevent overloading the term feature, which we reserve for human-interpretable concepts the SAE may capture. This breaks from earlier usage which used feature for both (Elhage et al., 2022), but aligns with the terminology in (Lieberum et al., 2024) and makes the distinction more clear.)). When training an SAE, practitioners must decide on the sparsity of SAE, measured in terms of L0, or how many latents activate on average for a given input. (^2^22TopK and BatchTopK SAEs (Gao et al., 2024; Bussmann et al., 2024) set the L0 ($K$) directly, whereas L1 and JumpReLU (Cunningham et al., 2024; Bricken et al., 2023; Rajamanoharan et al., 2024) adjust it via a coefficient in the loss. In any case, all SAE trainers must decide on the target L0.) L0 is typically considered a neutral design choice: most of the literature evaluates SAEs at a range of L0 values, referring to this as a “sparsity–reconstruction tradeoff” (Gao et al., 2024; Rajamanoharan et al., 2024). While most practitioners would expect that too high an L0 will break the SAE (afterall, it is called a sparse autoencoder), the implication of “sparsity–reconstruction tradeoff” plots is that any sufficiently low L0 is equally valid.

However, recent work shows the same trend: low L0 SAEs perform worse on downstream tasks Kantamneni et al. (2025); Bussmann et al. (2025). What causes this degraded performance at low L0? In this work, we explore the effect of L0 on SAEs. We begin with toy model experiments using synthetic data, and show that if the L0 is too low, the SAE can “cheat” by mixing together components of correlated features, achieving better reconstruction compared to an SAE with correct, disentangled features. We consider this to be a manifestation of feature hedging (Chanin et al., 2025), where the SAE abuses feature correlations to compensate for insufficient resources to model the underlying features monsemantically. This mixing of correlated features into SAE latents affects both positively and negatively correlated features, meaning that in low L0 SAEs, nearly all latents are both less interpretable and more noisy than an SAE with a correctly set L0.

Our findings also show that “sparsity–reconstruction tradeoff” plots, commonly used to assess SAE architectures, are not a sound method of evaluating SAEs. We demonstrate using toy model experiments that at low L0, an SAE with ground-truth correct latents achieves worse reconstruction than an SAE that mixes correlated features. Thus, if we had an SAE training method that resulted in perfect SAEs, “sparsity–reconstruction tradeoff” plots would cause us to reject that method.

Finally, we develop a proxy metric based on projections between the SAE decoder and training activations that can detect if L0 is too low. We validate these findings on Gemma-2-2b (Team et al., 2024), demonstrating that decoder patterns similar to what we observe in our toy model experiments also manifests in LLM SAEs. We further validate that the optimal L0 we find with our method in Gemma-2-2b matches peak performance on sparse probing tasks (Kantamneni et al., 2025).

Our findings are of direct importance to anyone using SAEs in practice, showing that L0 must be set correctly for SAEs to learn correct features. Furthermore, our work implies that most SAEs used by researchers today have too low an L0.

Code is available at [https://github.com/chanind/sparse-but-wrong-paper](https://github.com/chanind/sparse-but-wrong-paper)

Figure: Figure 1: When SAE L0 is too low (left) or too high (right), the SAE mixes together correlated features, ruining monsemanticity. Only at the correct L0 (middle), the SAE learns correct features.
Refer to caption: x1.png

## 2 Background

##### Sparse autoencoders (SAEs).

An SAE decomposes an input activation $\mathbf{x}\in\mathbb{R}^{d}$ into a hidden state, $\mathbf{a}$, consisting of $h$ hidden neurons, called “latents”. An SAE is composed of an encoder $\mathbf{W}_{\text{\text{enc}}}\in\mathbb{R}^{h\times d}$, a decoder $\mathbf{W}_{\text{\text{dec}}}\in\mathbb{R}^{d\times h}$, a decoder bias $\mathbf{b}_{\text{\text{dec}}}\in\mathbb{R}^{d}$, and encoder bias $\mathbf{b}_{\text{\text{enc}}}\in\mathbb{R}^{h}$, and a nonlinearity $\sigma$, typically ReLU or a variant like JumpReLU (Rajamanoharan et al., 2024), TopK (Gao et al., 2024) or BatchTopK (Bussmann et al., 2024). The decoder is sometimes called the dictionary, in reference to sparse dictionary learning. We use both terms interchangeably.

$$ $\displaystyle\mathbf{a}=$ $\displaystyle\sigma(\mathbf{W}_{\text{\text{enc}}}(\mathbf{x}-\mathbf{b}_{\text{\text{dec}}})+\mathbf{b}_{\text{\text{enc}}})$ (1) $\displaystyle\hat{\mathbf{x}}=$ $\displaystyle\mathbf{W}_{\text{\text{dec}}}\mathbf{a}+\mathbf{b}_{\text{\text{dec}}}$ (2) $$

In this work we focus on BatchTopK and JumpReLU SAEs as these are both considered SOTA architectures. The JumpReLU activation is a modified ReLU with a threshold parameter $\tau>0$, so $\text{JumpReLU}_{\tau}(x)=x\cdot\mathbf{1}_{x>\tau}$. The BatchTopK activation function selects the top $b\times k$ activations across a batch of size $b$, allowing variance in the $k$ selected per sample in the batch. After training, a BatchTopK SAE is converted to a JumpReLU SAE with a global $\tau$. We follow the JumpReLU training procedure outlined by Anthropic (Conerly et al., 2025).

SAEs are trained as follows, with an auxiliary loss $\mathcal{L}_{p}$ to revive dead latents with corresponding coefficient $\lambda_{p}$. JumpReLU SAEs also have a sparsity loss $\mathcal{L}_{s}$ and corresponding coefficient $\lambda_{s}$.

$$ $\displaystyle\mathcal{L}=\lVert\mathbf{x}-\hat{\mathbf{x}}\rVert_{2}^{2}+\lambda_{s}\mathcal{L}_{s}+\lambda_{p}\mathcal{L}_{p}$ (3) $$

The formulation of $\mathcal{L}_{s}$ and $\mathcal{L}_{p}$ for JumpReLU and BatchTopK SAEs is shown in Appendix [A.1](https://arxiv.org/html/2508.16560v2#A1.SS1).

## 3 Toy model experiments

The Linear Representation Hypothesis (LRH) (Elhage et al., 2022; Park et al., 2024) states that LLMs represent concepts (alternatively referred to as “features”) as (nearly) orthogonal linear directions in representation space. Thus, the hidden activations in an LLM are simply the sum all the firing feature vectors (a feature direction with a positive, non-zero magnitude) that are being represented. While an LLM can represent a potentially large number of concepts this way, in any given activation, only a small number of concepts are actively represented.

For instance, if we inspect a hidden activation from within an LLM at the token “_Canada”, we may expect this activation to be a sum of feature vectors representing concepts like “country”, “North America”, “starts with C”, “noun”, etc… The job of a sparse autoencoder is to recover these “true feature” directions in its dictionary.

In a real LLM, we do not have ground-truth knowledge of the “true features” the model is representing, so we do not know if the SAE has learned the correct features. Fortunately, it is easy to create a toy model setup that follows the requirements of the LRH while providing ground-truth knowledge of the underlying true features.

Our toy model has a set of feature embeddings $\mathbf{F}\in\mathbb{R}^{g\times d}$, where $d$ is the input dimension of our SAE, and $g$ is the number of features. All features are orthogonal, so $f_{i}\cdot f_{j}=0$ for $i\neq j$. Each feature $f_{i}$ fires with probability $p_{i}$, mean magnitude $\mu_{i}$, and magnitude standard deviation $\sigma_{i}$. Feature activations follow a correlated Bernoulli process controlled by correlation matrix $C$, with final magnitudes given by $m_{i}=a_{i}\cdot\text{ReLU}(\mu_{i}+\sigma_{i}\epsilon_{i})$, where $a_{i}$ indicates whether feature $i$ is active and $\epsilon_{i}\sim\mathcal{N}(0,1)$. Training activations for an SAE, $x\in\mathbb{R}^{d}$, are thus generated as $x=\sum_{i=1}^{n}m_{i}f_{i}$

In these toy model experiments, we mainly focus on BatchTopK SAEs (Bussmann et al., 2024) as this enables direct control of L0. Additionally, we validate our results with JumpReLU SAEs. We train SAEs on 15M synthetic samples with batch size 500 using SAELens (Bloom et al., 2024).

Throughout this section we will use the following terminology:

##### True L0

In toy models we have complete control over which features fire, so we know how many features are firing on average. We refer to this as the true L0 of the toy model.

##### Ground-truth SAE

Since we know the ground-truth features in our toy models, we can construct an SAE that perfectly captures these features. We refer to this as the ground-truth SAE. This is an SAE where $g=h$, $\mathbf{W}_{\text{enc}}=\mathbf{F}^{T}$, $\mathbf{W}_{\text{dec}}=\mathbf{F}$, $\mathbf{b}_{\text{enc}}=0$, $\mathbf{b}_{\text{dec}}=0$.

### 3.1 Low L0 SAEs mix correlated and anti-correlated features

We begin with a small toy model with 5 true features ($g=5$) in an input space of $d=20$. We set each $p_{i}=0.4$ such that on average $2$ features are active per input, for a true L0 of 2. We begin with a simple correlation pattern between features, where $f_{0}$ is positively correlated with every feature $f_{1}$ through $f_{4}$, but otherwise there are no other correlations. We then train an SAE with $L0=2$, matching the true L0 of the model, and an SAE with slightly lower value of $L0=1.8$ (BatchTopK SAEs permit setting fractional L0). For the $L0=1.8$ SAE, we initialize it to the ground-truth solution, ensuring that the result of training is due to gradient pressure rather than just being a local minimum. We show the toy model feature correlation matrix as well as decoder cosine similarity plots with the true features for both SAEs in Figure [2](https://arxiv.org/html/2508.16560v2#S3.F2).

When the SAE L0 matches the true L0, we see that the SAE perfectly learns the underlying true features. However, when SAE L0 is smaller than the true L0, the resulting SAE latents mix feature components together based on the correlation matrix. The latents tracking features $f_{1}$ through $f_{4}$ all mix in a positive component of $f_{0}$, but they have no components of each other.

Next, we invert the correlation, i.e. each feature $f_{1}$ through $f_{4}$ is negatively correlated with $f_{0}$ instead, while keeping everything else unchanged. We show the correlation matrix and SAE decoder cosine similarity with true features plots in Figure [3](https://arxiv.org/html/2508.16560v2#S3.F3).

Now, we see the same pattern as with positive correlations except inverted. The latents tracking features $f_{1}$ through $f_{4}$ mix in a negative component of $f_{0}$, but have no component of each other.

This pattern is problematic because it means that if our L0 is too low, every SAE latent will contain positive components of every positively correlated feature, and negative components of every negatively correlated feature in the model. Negative correlations are particularly bad, as negative correlations are prevalent throughout language. For instance, we may expect a nonsensical negative component of “Harry Potter” to appear in the latent for “French poetry”, since Harry Potter has nothing to do with French poetry. This will result in highly polysemantic and noisy SAE latents.

Figure: Figure 2: (left) Toy model feature correlation matrix showing positive correlations between features. (middle) SAE decoder cosine similarities with true feature when SAE L0 = 2, matching the true L0 of the toy model. (right) SAE decoder cosine similarities with true features when SAE L0 = 1.8. When L0 is too low, the SAE mixes components of features based on their firing correlations.
Refer to caption: x4.png

Figure: Figure 3: (left) Toy model feature correlation matrix showing negative correlations between features. (middle) SAE decoder cosine similarities with true feature when SAE L0 = 2, matching the true L0 of the toy model. (right) SAE decoder cosine similarities with true features when SAE L0 = 1.8,. When L0 is too low, the SAE mixes negative components of anti-correlated features.
Refer to caption: x7.png

### 3.2 Larger toy model experiments

Next, we scale up to a larger toy model with 50 true features ($g=50$) in input space of $d=100$. We set $p_{0}=0.345$ and linearly decrease to $p_{49}=0.05$, so firing probability decreases with feature number. The true L0 of this model is 11. We randomly generate a correlation matrix, so the firings of each feature are correlated with other features. Feature correlations are shown in Appendix [A.2](https://arxiv.org/html/2508.16560v2#A1.SS2).

We train SAEs with L0 values that are too small ($L0=5$), exactly correct ($L0=11$), and too large ($L0=18$). Results are shown in Figure [1](https://arxiv.org/html/2508.16560v2#S1.F1). When the SAE L0 matches the true L0, the SAE exactly learns the true features. When SAE L0 is too low, the SAE mixes components of correlated features together, particularly breaking latents tracking high-frequency features. When L0 is too high, the SAE learns degenerate solutions that mix features together. The further SAE L0 is from the true L0, the worse the SAE. Interestingly, when L0 is too high the SAE still learns many correct latents, but when L0 is too low, every latent in the SAE is affected.

### 3.3 MSE loss incentivizes low-L0 SAEs to mix correlated features

Why do SAEs with low L0 not learn the true features? We construct a ground-truth SAE and set $L0=5$, to match the low L0 SAE from Figure [1](https://arxiv.org/html/2508.16560v2#S1.F1). We generate 100k synthetic training samples and calculate the Mean Square Error (MSE) of both these SAEs. The trained SAE with incorrect latents achieves a MSE of $2.73$, while the ground-truth SAE achieves a much worse MSE of $4.88$. Thus, MSE loss actively incentivizes low L0 SAEs to learn incorrect latents.

### 3.4 The sparsity–reconstruction tradeoff

It is common practice to evaluate SAE architectures using a sparsity–reconstruction tradeoff plot (Cunningham et al., 2024; Gao et al., 2024; Rajamanoharan et al., 2024), where the assumption is that having better reconstruction at a given sparsity is inherently better, and indicates that the SAE is correct. Afterall, we train SAEs to reconstruct inputs, so surely an SAE that has better reconstruction must therefore be a better SAE than one that has lower reconstruction?

Sadly, this is not the case. As we discussed in Section [3.3](https://arxiv.org/html/2508.16560v2#S3.SS3), when the L0 of the SAE is lower than optimal, the SAE can find ways to “cheat” by engaging in feature hedging (Chanin et al., 2025), and get a better MSE score by mixing components of correlated features together. This results in an SAE where the latents are not monosemantic, and do not track ground-truth features.

Figure: Figure 4: Sparsity ($L0$, lower is better) vs reconstruction (variance explained, higher is better) for learned SAEs and a ground-truth SAE. When L0 is less than the true L0 of the toy model (the dotted line), the trained SAE gets better reconstruction than the ground-truth SAE. Sparsity–reconstruction plots like this lead us to the incorrect conclusion that the ground-truth SAE is a worse SAE.
Refer to caption: x10.png

We next explore the sparsity–reconstruction tradeoff by training SAEs on our toy model at various L0s. Since we know the ground-truth features in our toy model, we construct a ground-truth SAE that perfectly represents these features. We vary the L0 of the ground truth SAE while leaving the encoder and decoder fixed at the correct features. We plot the variance explained vs L0 in Figure [4](https://arxiv.org/html/2508.16560v2#S3.F4) for both SAEs. When the SAE L0 is lower than the true L0 of the toy model, the ground-truth SAE scores worse on reconstruction than the trained SAE! If we had an SAE training technique that gave us the ground truth correct SAE for a given LLM, sparsity–reconstruction plots would cause us to discard the correct SAE in favor of an incorrect SAE that mixes features together.

Figure: Figure 5: SAE decoder cosine similarity with true features for the learned SAEs with L0=1 (left) and L0=2 (middle), compared with the ground-truth SAE (right). The learned SAEs score much better than the ground truth SAE on variance explained, despite their corrupted, polysemantic latents.
Refer to caption: x11.png

We show the cosine similarity of the SAE decoder latents with the ground truth features for the SAEs learned with L0=1 and L0=2 compared with the ground-truth SAE in Figure [5](https://arxiv.org/html/2508.16560v2#S3.F5). Both these SAEs outperform the ground-truth SAE on variance explained by over 2x despite learning horribly polysemantic latents bearing little resemblance to the underlying true features of the model.

### 3.5 Detecting the true L0 using the SAE decoder

Figure: Figure 6: Idealized histogram of decoder projections on input activations demonstrating the intuition behind our $n$^th decoder projection metric, $s_{n}^{\text{dec}}$. For an arbitrary input, most latents should be non-active and thus have low projection. When SAE latents are monosemantic, we expect non-active latents to have a near-zero projection on arbitrary input activations. However, if SAE latents mix positive and negative components of many underlying features, then those latents will have larger projections on arbitrary inputs that contains those features. By picking an $N$ less than $h/2$, a smaller $s_{n}^{\text{dec}}$ means latents have smaller projection on arbitrary inputs and thus are more monosemantic.
Refer to caption: x14.png

Figure [1](https://arxiv.org/html/2508.16560v2#S1.F1) reveals that the SAE decoder latents contain mixes of underlying features, both when the L0 is too high and also when it is too low. As the SAE approaches the correct L0, each SAE latent has fewer components of multiple true features mixed in, becoming more monosemantic. Thus, we expect that when the SAE is at the correct L0, most latents should have near zero projection on arbitrary training inputs, because they usually do not contain the feature being tracked by that latent. If we are far from the correct L0, then SAE latents contain components of many underlying features, and we expect latents to project more strongly on arbitrary training inputs.

We now define a metric we call $n$^th decoder projection score, or $s_{n}^{\text{\text{dec}}}$, that we can use to find the optimal L0 of the SAE. Given SAE inputs $\mathbf{x}\in\mathbb{R}^{b\times d}$ where $b$ is the batch size and $d$ is the input dimension, we first compute the decoder projections for all latents:

$$ $\mathbf{Z}=(\mathbf{x}-\mathbf{b}_{\text{\text{dec}}})\mathbf{W}_{\text{\text{dec}}}^{\top}\in\mathbb{R}^{b\times h}$ (4) $$

where $\mathbf{b}_{\text{\text{dec}}}\in\mathbb{R}^{d}$ is the decoder bias and $\mathbf{W}_{\text{\text{dec}}}\in\mathbb{R}^{d\times h}$ is the decoder weight matrix with $h$ latent dimensions. To aggregate across the batch, we flatten $\mathbf{Z}$ to obtain $\mathbf{z}\in\mathbb{R}^{bh}$ and sort these values in descending order to get $\mathbf{z}_{\downarrow}$. The $n$^th decoder projection is then defined as:

$$ $s_{n}^{\text{\text{dec}}}=\mathbf{z}_{\downarrow}[n\cdot b]$ (5) $$

where $n\in\{1,2,\ldots,h\}$ indexes the latent by its ranking. The multiplication by $b$ accounts for the batch dimension, effectively selecting the $n$^th highest projection value when considering all samples in the batch. For this to work $n$ should be sufficiently larger than a reasonable guess at the correct L0, as in a perfect SAE, the decoder for these latents should be uncorrelated with input activations. Empirically, picking $n$ up to about $\nicefrac{{h}}{{2}}$ seems to work well.

Figure: Figure 7: $n$^th decoder projection vs SAE L0 for $n=12$ (left) and $n=18$ (right) on our toy model SAEs. The true L0, 11, is marked by a dotted line on the plots. Both settings of $n$ are minimized at the true L0, but the slopes of the metric change depending on N. The shaded area is 1 stdev.
Refer to caption: x15.png

We calculate $s_{n}^{\text{\text{dec}}}$ for $n=12$ and $n=18$, varying SAE L0 from 2 to 25 with 5 seeds per L0 in Figure [7](https://arxiv.org/html/2508.16560v2#S3.F7). The metric is minimized at the true L0, 11, in both cases, although the shape changes depending on $n$. In both cases, the slope of $s_{n}^{\text{\text{dec}}}$ is flat when L0 is slightly higher than the true L0.

##### Alternative metric: decoder pairwise cosine similarity

We find that $s_{n}^{\text{\text{dec}}}$ is not the only metric that works to locate the ideal L0. Taking the mean cosine similarity between every latent in the decoder also works well. We focus on $s_{n}^{\text{\text{dec}}}$ as it allows for more interesting analysis, but we do not feel either metric is inherently better than the other, and recommend practitioners experiment with both. We explore this alternative metric further in Appendix [A.5](https://arxiv.org/html/2508.16560v2#A1.SS5).

### 3.6 JumpReLU SAE experiments

So far, we have only investigated BatchTopK SAES due to their ease of setting L0. We now validate that these same conclusions apply to JumpReLU SAEs. We train JumpReLU saes with a range of $\lambda_{s}$ to control the sparsity of the SAEs. We show plots of $\lambda_{s}$ vs L0 $n$^th decoder projection vs L0 for these SAEs in Figure [8](https://arxiv.org/html/2508.16560v2#S3.F8). We see that $n$^th decoder projection vs L0 broadly follows the same pattern as we saw for BatchTopK SAEs, and is minimized at and slightly above the correct L0.

Figure: Figure 8: (left) L0 coefficient $\lambda_{s}$ vs L0 for JumpReLU SAEs. (right) $n$^th decoder projection vs L0 for JumpReLU SAEs. The true L0, 11, is marked by a dotted line on the plot.
Refer to caption: x17.png

Interestingly, we see that the L0 does not change linearly with $\lambda_{s}$, but instead “sticks” near the correct L0. This is a testament to Anthropic’s JumpReLU SAE training method (Conerly et al., 2025), as a wide range of sparsity coefficients $\lambda_{s}$ cause the SAE to naturally find the correct L0.

## 4 LLM experiments

We train a series of BatchTopK SAEs (Bussmann et al., 2024) with $h=32768$ on Gemma-2-2b (Team et al., 2024) and Llama-3.2-1b (Dubey et al., 2024) varying L0 and calculate $s_{n}^{\text{\text{dec}}}$. Each SAE is trained on 500M tokens from the Pile (Gao et al., 2020) using SAELens (Bloom et al., 2024). We also calculate k-sparse probing performance for these SAEs using the benchmark from Kantamneni et al. (2025), consisting of over 100 sparse probing tasks. Results are shown in Figure [9](https://arxiv.org/html/2508.16560v2#S4.F9) for $n=16000$. We find that using $n$ near $h/2$ seems to achieve best results in our LLM experiments.

Figure: Figure 9: $n$ = 16k decoder projection vs SAE L0 and K-sparse probing F1 vs L0 with 3 seeds per L0. (left) Gemma-2-2b layer 5 BatchTopK results. (right) Llama-3.2-1b layer 7 BatchTopK SAEs. In both cases, peak sparse probing performance occurs in the elbow just before $s_{n}^{\text{\text{dec}}}$ jumps due to low L0, although the shapes of the $s_{n}^{\text{\text{dec}}}$ plots vary at high L0.
Refer to caption: x19.png

The Llama SAE $s_{n}^{\text{dec}}$ plot looks very similar to the toy model, with a clear minimum point. The Gemma-2-2b layer 5 SAEs also show a sharp increase in $s_{n}^{\text{dec}}$ at low L0 as we saw in toy models, but has a long shallow region with the global minimum actually appearing in that shallow region. In both cases, the “elbow” in the $s_{n}^{\text{dec}}$ plots just before the jump due to low L0 is around L0 200, and this also corresponds to peak sparse probing performance. More plots and analysis of $s_{n}^{\text{dec}}$ curves are shown in Appendix [A.9](https://arxiv.org/html/2508.16560v2#A1.SS9).

Figure: Figure 10: Gemma-2-2b layer 12, with (left) $n$^th decoder projection and K-sparse probing F1 for BatchTopK and JumpReLU SAEs, and (right) normalized decoder projection histograms for BatchTopK SAEs. The histograms are truncated to -20 and 40 to highlight projections near the origin.
Refer to caption: x21.png

### 4.1 JumpReLU vs BatchTopK SAEs

We next explore how JumpReLU and BatchTopK SAEs compare with $n$^th decoder projection plots. We train a suite of SAEs on 1B tokens on Gemma-2-2b layer 12. We plot $s_{n}^{\text{dec}}$ for a range N values as well as k-sparse probing results for JumpReLU and BatchTopK SAEs in Figure [10](https://arxiv.org/html/2508.16560v2#S4.F10) (left).

JumpReLU and BatchTopK SAEs behave similarly at low L0, with the high $s_{n}^{\text{dec}}$ at low L0 corresponding to poor sparse-probing performance. However, we see notable differences at high L0. The BatchTopK SAEs have a global $s_{n}^{\text{dec}}$ minimum around 200-250 no matter the N value, but JumpReLU SAEs only have a clear $s_{n}^{\text{dec}}$ minimum at 200-250 when $n=16000$ (about $h/2$). As we saw in Figure [9](https://arxiv.org/html/2508.16560v2#S4.F9) as well, using the “elbow” of the plots just before $s_{n}^{\text{dec}}$ jumps due to low L0 seems to correspond to peak k-sparse probing performance.

For JumpReLU SAEs, we see that $s_{n}^{\text{dec}}$ does not rise much at high L0, and indeed, JumpReLU SAEs also perform much better than BatchTopK SAEs at sparse probing when L0 is high. We suspect this is due to JumpReLU SAEs being able to “stick” near the correct threshold per latent like we saw in our toy models section. We investigate the differences in learned SAEs between JumpReLU and BatchTopK further in Appendix [A.10](https://arxiv.org/html/2508.16560v2#A1.SS10).

### 4.2 Can L0 be both too low and too high simultaneously?

In Figure [10](https://arxiv.org/html/2508.16560v2#S4.F10) (right), we plot decoder histogram projection plots for BatchTopK SAEs on Gemma-2-2b layer 12 with L0 10, 200, 750, and 2000. As we expected from Figure [6](https://arxiv.org/html/2508.16560v2#S3.F6), when L0 is very low (10) or very high (2000), we see a wide gaussian around 0, indicating that decoder latents are mixing correlated features together. At L0=200, we see a much more narrow distribution around 0, as we expect when near the correct L0. However, at L0=750, we see an interesting phenomenon, where there is an even narrower distribution than at L0=200, but also a large hump starting at projection above 10 (more visible in the log plot).

We suspect this indicates at L0=750, some latents become more monosemantic while other latents mix underlying features becoming less monosemantic. This likely means that the L0 is too high for some latents while simultaneously being too low for other latents. There is no reason why every latent has the same optimal L0 threshold, so there is likely a range of L0s where some latents are firing more than they ideally should while other latents are firing less than they ideally should. We also suspect this is part of why JumpReLU SAEs seem to perform much better at high L0, since JumpReLU SAEs can adjust firing threshold per-latent while BatchTopK SAEs cannot.

## 5 Related work

Chanin et al. (2025) explores feature hedging, showing SAEs mix correlated features into latents if the SAE is too narrow. We consider our work a version of feature hedging due to low L0. Till (2024) shows SAEs may increase sparsity by inventing features. Chanin et al. (2024) discuss the problem of feature absorption, where SAEs can improve their sparsity score by mixing hierarchical features together. Engels et al. (2024) investigates SAE errors and finds that SAE error may be pathological and non-linear. Engels et al. (2025) find that not all underlying LLM features themselves are linear, demonstrating circular embeddings of some concepts. Wu et al. (2025) and Kantamneni et al. (2025) both investigate empirical SAE performance, finding SAEs underperform relative to supervised baselines, but do not offer theoretical explanations as to why SAEs underperform.

## 6 Discussion

While most practitioners of SAEs understand that having too high L0 is problematic, our work shows that having too low of L0 is perhaps even worse. Our work has several important implications for the field. First, the L0 used by most SAEs is lower than it ideally should be, as a cursory search of open source SAEs on Neuronpedia (Lin, 2023) shows L0 less than 100 is very common even for SAEs trained on large models (see Appendix [A.7](https://arxiv.org/html/2508.16560v2#A1.SS7)). We further show that the sparsity–reconstruction tradeoff, as commonly discussed by most SAE papers (Cunningham et al., 2024; Gao et al., 2024; Rajamanoharan et al., 2024), is misleading: when L0 is too low, an SAE with a correct dictionary achieves worse reconstruction than an incorrect SAE that mixes correlated features.

We presented a metric based on the correlation between the SAE decoder and input activations, $s_{n}^{\text{\text{dec}}}$, that can give us hints about the correct L0 for a given SAE. However, we do not view this as a perfect guide. As we saw in our results, while low L0 SAEs consistently have very high $s_{n}^{\text{\text{dec}}}$, the metric is not always high at high L0 (although it usually is). Still, we feel that this metric is a useful guide to avoid L0 that is clearly too low, and we hope this investigation into correlation-based SAE quality metrics can be built on further in future work.

While our metric currently requires training a sweep over L0 to optimize, we are hopeful that it may be possible to optimize this metric automatically during training (steps towards this are discussed in Appendix [A.6](https://arxiv.org/html/2508.16560v2#A1.SS6)). We further encourage anyone implementing ideas from this work to also experiment with our alternative metric, decoder pairwise cosine similarity, discussed in Appendix [A.5](https://arxiv.org/html/2508.16560v2#A1.SS5).

#### Acknowledgments

David Chanin was supported thanks to EPSRC EP/S021566/1 and the Machine Learning Alignment and Theory Scholars (MATS) program. We are grateful to Henning Bartsch for feedback during the project.

## References

- Bloom et al. (2024)
Joseph Bloom, Curt Tigges, Anthony Duong, and David Chanin.
Saelens.
[https://github.com/jbloomAus/SAELens](https://github.com/jbloomAus/SAELens), 2024.
- Bricken et al. (2023)
Trenton Bricken, Adly Templeton, Joshua Batson, Brian Chen, Adam Jermyn, Tom Conerly, Nick Turner, Cem Anil, Carson Denison, Amanda Askell, et al.
Towards monosemanticity: Decomposing language models with dictionary learning.
*Transformer Circuits Thread*, 2, 2023.
- Bussmann et al. (2024)
Bart Bussmann, Patrick Leask, and Neel Nanda.
Batchtopk sparse autoencoders.
*arXiv preprint arXiv:2412.06410*, 2024.
- Bussmann et al. (2025)
Bart Bussmann, Noa Nabeshima, Adam Karvonen, and Neel Nanda.
Learning multi-level features with matryoshka sparse autoencoders.
*arXiv preprint arXiv:2503.17547*, 2025.
- Chanin et al. (2024)
David Chanin, James Wilken-Smith, Tomáš Dulka, Hardik Bhatnagar, and Joseph Bloom.
A is for absorption: Studying feature splitting and absorption in sparse autoencoders.
*arXiv preprint arXiv:2409.14507*, 2024.
- Chanin et al. (2025)
David Chanin, Tomáš Dulka, and Adrià Garriga-Alonso.
Feature hedging: Correlated features break narrow sparse autoencoders.
*arXiv preprint arXiv:2505.11756*, 2025.
- Conerly et al. (2025)
Tom Conerly, Hoagy Cunningham, Adly Templeton, Jack Lindsey, Basil Hosmer, and Adam Jermyn.
Dictionary learning optimization techniques.
[https://transformer-circuits.pub/2025/january-update](https://transformer-circuits.pub/2025/january-update), 2025.
- Cunningham et al. (2024)
Hoagy Cunningham, Logan Riggs Smith, Aidan Ewart, Robert Huben, and Lee Sharkey.
Sparse autoencoders find highly interpretable features in language models.
In *The Twelfth International Conference on Learning Representations*, 2024.
URL [https://openreview.net/forum?id=F76bwRSLeK](https://openreview.net/forum?id=F76bwRSLeK).
- Dubey et al. (2024)
Abhimanyu Dubey, Abhinav Jauhri, Abhinav Pandey, Abhishek Kadian, Ahmad Al-Dahle, Aiesha Letman, Akhil Mathur, Alan Schelten, Amy Yang, Angela Fan, Anirudh Goyal, Anthony Hartshorn, Aobo Yang, Archi Mitra, Archie Sravankumar, Artem Korenev, Arthur Hinsvark, Arun Rao, Aston Zhang, Aurelien Rodriguez, Austen Gregerson, Ava Spataru, Baptiste Roziere, Bethany Biron, Binh Tang, Bobbie Chern, Charlotte Caucheteux, Chaya Nayak, Chloe Bi, Chris Marra, Chris McConnell, Christian Keller, Christophe Touret, Chunyang Wu, Corinne Wong, Cristian Canton Ferrer, Cyrus Nikolaidis, Damien Allonsius, Daniel Song, Danielle Pintz, Danny Livshits, David Esiobu, Dhruv Choudhary, Dhruv Mahajan, Diego Garcia-Olano, Diego Perino, Dieuwke Hupkes, Egor Lakomkin, Ehab AlBadawy, Elina Lobanova, Emily Dinan, Eric Michael Smith, Filip Radenovic, Frank Zhang, Gabriel Synnaeve, Gabrielle Lee, Georgia Lewis Anderson, Graeme Nail, Gregoire Mialon, Guan Pang, Guillem Cucurell, Hailey Nguyen, Hannah Korevaar, Hu Xu, Hugo Touvron, Iliyan Zarov,
Imanol Arrieta Ibarra, Isabel Kloumann, Ishan Misra, Ivan Evtimov, Jade Copet, Jaewon Lee, Jan Geffert, Jana Vranes, Jason Park, Jay Mahadeokar, Jeet Shah, Jelmer van der Linde, Jennifer Billock, Jenny Hong, Jenya Lee, Jeremy Fu, Jianfeng Chi, Jianyu Huang, Jiawen Liu, Jie Wang, Jiecao Yu, Joanna Bitton, Joe Spisak, Jongsoo Park, Joseph Rocca, Joshua Johnstun, Joshua Saxe, Junteng Jia, Kalyan Vasuden Alwala, Kartikeya Upasani, Kate Plawiak, Ke Li, Kenneth Heafield, Kevin Stone, Khalid El-Arini, Krithika Iyer, Kshitiz Malik, Kuenley Chiu, Kunal Bhalla, Lauren Rantala-Yeary, Laurens van der Maaten, Lawrence Chen, Liang Tan, Liz Jenkins, Louis Martin, Lovish Madaan, Lubo Malo, Lukas Blecher, Lukas Landzaat, Luke de Oliveira, Madeline Muzzi, Mahesh Pasupuleti, Mannat Singh, Manohar Paluri, Marcin Kardas, Mathew Oldham, Mathieu Rita, Maya Pavlova, Melanie Kambadur, Mike Lewis, Min Si, Mitesh Kumar Singh, Mona Hassan, Naman Goyal, Narjes Torabi, Nikolay Bashlykov, Nikolay Bogoychev, Niladri Chatterji, Olivier
Duchenne, Onur Çelebi, Patrick Alrassy, Pengchuan Zhang, Pengwei Li, Petar Vasic, Peter Weng, Prajjwal Bhargava, Pratik Dubal, Praveen Krishnan, Punit Singh Koura, Puxin Xu, Qing He, Qingxiao Dong, Ragavan Srinivasan, Raj Ganapathy, Ramon Calderer, Ricardo Silveira Cabral, Robert Stojnic, Roberta Raileanu, Rohit Girdhar, Rohit Patel, Romain Sauvestre, Ronnie Polidoro, Roshan Sumbaly, Ross Taylor, Ruan Silva, Rui Hou, Rui Wang, Saghar Hosseini, Sahana Chennabasappa, Sanjay Singh, Sean Bell, Seohyun Sonia Kim, Sergey Edunov, Shaoliang Nie, Sharan Narang, Sharath Raparthy, Sheng Shen, Shengye Wan, Shruti Bhosale, Shun Zhang, Simon Vandenhende, Soumya Batra, Spencer Whitman, Sten Sootla, Stephane Collot, Suchin Gururangan, Sydney Borodinsky, Tamar Herman, Tara Fowler, Tarek Sheasha, Thomas Georgiou, Thomas Scialom, Tobias Speckbacher, Todor Mihaylov, Tong Xiao, Ujjwal Karn, Vedanuj Goswami, Vibhor Gupta, Vignesh Ramanathan, Viktor Kerkez, Vincent Gonguet, Virginie Do, Vish Vogeti, Vladan Petrovic, Weiwei Chu,
Wenhan Xiong, Wenyin Fu, Whitney Meers, Xavier Martinet, Xiaodong Wang, Xiaoqing Ellen Tan, Xinfeng Xie, Xuchao Jia, Xuewei Wang, Yaelle Goldschlag, Yashesh Gaur, Yasmine Babaei, Yi Wen, Yiwen Song, Yuchen Zhang, Yue Li, Yuning Mao, Zacharie Delpierre Coudert, Zheng Yan, Zhengxing Chen, Zoe Papakipos, Aaditya Singh, Aaron Grattafiori, Abha Jain, Adam Kelsey, Adam Shajnfeld, Adithya Gangidi, Adolfo Victoria, Ahuva Goldstand, Ajay Menon, Ajay Sharma, Alex Boesenberg, Alex Vaughan, Alexei Baevski, Allie Feinstein, Amanda Kallet, Amit Sangani, Anam Yunus, Andrei Lupu, Andres Alvarado, Andrew Caples, Andrew Gu, Andrew Ho, Andrew Poulton, Andrew Ryan, Ankit Ramchandani, Annie Franco, Aparajita Saraf, Arkabandhu Chowdhury, Ashley Gabriel, Ashwin Bharambe, Assaf Eisenman, Azadeh Yazdan, Beau James, Ben Maurer, Benjamin Leonhardi, Bernie Huang, Beth Loyd, Beto De Paola, Bhargavi Paranjape, Bing Liu, Bo Wu, Boyu Ni, Braden Hancock, Bram Wasti, Brandon Spence, Brani Stojkovic, Brian Gamido, Britt Montalvo, Carl
Parker, Carly Burton, Catalina Mejia, Changhan Wang, Changkyu Kim, Chao Zhou, Chester Hu, Ching-Hsiang Chu, Chris Cai, Chris Tindal, Christoph Feichtenhofer, Damon Civin, Dana Beaty, Daniel Kreymer, Daniel Li, Danny Wyatt, David Adkins, David Xu, Davide Testuggine, Delia David, Devi Parikh, Diana Liskovich, Didem Foss, Dingkang Wang, Duc Le, Dustin Holland, Edward Dowling, Eissa Jamil, Elaine Montgomery, Eleonora Presani, Emily Hahn, Emily Wood, Erik Brinkman, Esteban Arcaute, Evan Dunbar, Evan Smothers, Fei Sun, Felix Kreuk, Feng Tian, Firat Ozgenel, Francesco Caggioni, Francisco Guzmán, Frank Kanayet, Frank Seide, Gabriela Medina Florez, Gabriella Schwarz, Gada Badeer, Georgia Swee, Gil Halpern, Govind Thattai, Grant Herman, Grigory Sizov, Guangyi, Zhang, Guna Lakshminarayanan, Hamid Shojanazeri, Han Zou, Hannah Wang, Hanwen Zha, Haroun Habeeb, Harrison Rudolph, Helen Suk, Henry Aspegren, Hunter Goldman, Ibrahim Damlaj, Igor Molybog, Igor Tufanov, Irina-Elena Veliche, Itai Gat, Jake Weissman, James
Geboski, James Kohli, Japhet Asher, Jean-Baptiste Gaya, Jeff Marcus, Jeff Tang, Jennifer Chan, Jenny Zhen, Jeremy Reizenstein, Jeremy Teboul, Jessica Zhong, Jian Jin, Jingyi Yang, Joe Cummings, Jon Carvill, Jon Shepard, Jonathan McPhie, Jonathan Torres, Josh Ginsburg, Junjie Wang, Kai Wu, Kam Hou U, Karan Saxena, Karthik Prasad, Kartikay Khandelwal, Katayoun Zand, Kathy Matosich, Kaushik Veeraraghavan, Kelly Michelena, Keqian Li, Kun Huang, Kunal Chawla, Kushal Lakhotia, Kyle Huang, Lailin Chen, Lakshya Garg, Lavender A, Leandro Silva, Lee Bell, Lei Zhang, Liangpeng Guo, Licheng Yu, Liron Moshkovich, Luca Wehrstedt, Madian Khabsa, Manav Avalani, Manish Bhatt, Maria Tsimpoukelli, Martynas Mankus, Matan Hasson, Matthew Lennie, Matthias Reso, Maxim Groshev, Maxim Naumov, Maya Lathi, Meghan Keneally, Michael L. Seltzer, Michal Valko, Michelle Restrepo, Mihir Patel, Mik Vyatskov, Mikayel Samvelyan, Mike Clark, Mike Macey, Mike Wang, Miquel Jubert Hermoso, Mo Metanat, Mohammad Rastegari, Munish Bansal, Nandhini
Santhanam, Natascha Parks, Natasha White, Navyata Bawa, Nayan Singhal, Nick Egebo, Nicolas Usunier, Nikolay Pavlovich Laptev, Ning Dong, Ning Zhang, Norman Cheng, Oleg Chernoguz, Olivia Hart, Omkar Salpekar, Ozlem Kalinli, Parkin Kent, Parth Parekh, Paul Saab, Pavan Balaji, Pedro Rittner, Philip Bontrager, Pierre Roux, Piotr Dollar, Polina Zvyagina, Prashant Ratanchandani, Pritish Yuvraj, Qian Liang, Rachad Alao, Rachel Rodriguez, Rafi Ayub, Raghotham Murthy, Raghu Nayani, Rahul Mitra, Raymond Li, Rebekkah Hogan, Robin Battey, Rocky Wang, Rohan Maheswari, Russ Howes, Ruty Rinott, Sai Jayesh Bondu, Samyak Datta, Sara Chugh, Sara Hunt, Sargun Dhillon, Sasha Sidorov, Satadru Pan, Saurabh Verma, Seiji Yamamoto, Sharadh Ramaswamy, Shaun Lindsay, Shaun Lindsay, Sheng Feng, Shenghao Lin, Shengxin Cindy Zha, Shiva Shankar, Shuqiang Zhang, Shuqiang Zhang, Sinong Wang, Sneha Agarwal, Soji Sajuyigbe, Soumith Chintala, Stephanie Max, Stephen Chen, Steve Kehoe, Steve Satterfield, Sudarshan Govindaprasad, Sumit Gupta,
Sungmin Cho, Sunny Virk, Suraj Subramanian, Sy Choudhury, Sydney Goldman, Tal Remez, Tamar Glaser, Tamara Best, Thilo Kohler, Thomas Robinson, Tianhe Li, Tianjun Zhang, Tim Matthews, Timothy Chou, Tzook Shaked, Varun Vontimitta, Victoria Ajayi, Victoria Montanez, Vijai Mohan, Vinay Satish Kumar, Vishal Mangla, Vítor Albiero, Vlad Ionescu, Vlad Poenaru, Vlad Tiberiu Mihailescu, Vladimir Ivanov, Wei Li, Wenchen Wang, Wenwen Jiang, Wes Bouaziz, Will Constable, Xiaocheng Tang, Xiaofang Wang, Xiaojian Wu, Xiaolan Wang, Xide Xia, Xilun Wu, Xinbo Gao, Yanjun Chen, Ye Hu, Ye Jia, Ye Qi, Yenda Li, Yilin Zhang, Ying Zhang, Yossi Adi, Youngjin Nam, Yu, Wang, Yuchen Hao, Yundi Qian, Yuzi He, Zach Rait, Zachary DeVito, Zef Rosnbrick, Zhaoduo Wen, Zhenyu Yang, and Zhiwei Zhao.
The llama 3 herd of models, 2024.
URL [https://arxiv.org/abs/2407.21783](https://arxiv.org/abs/2407.21783).
- Elhage et al. (2022)
Nelson Elhage, Tristan Hume, Catherine Olsson, Nicholas Schiefer, Tom Henighan, Shauna Kravec, Zac Hatfield-Dodds, Robert Lasenby, Dawn Drain, Carol Chen, et al.
Toy models of superposition.
*arXiv preprint arXiv:2209.10652*, 2022.
- Engels et al. (2024)
Joshua Engels, Logan Riggs, and Max Tegmark.
Decomposing the dark matter of sparse autoencoders.
*arXiv preprint arXiv:2410.14670*, 2024.
- Engels et al. (2025)
Joshua Engels, Eric J Michaud, Isaac Liao, Wes Gurnee, and Max Tegmark.
Not all language model features are one-dimensionally linear.
In *The Thirteenth International Conference on Learning Representations*, 2025.
URL [https://openreview.net/forum?id=d63a4AM4hb](https://openreview.net/forum?id=d63a4AM4hb).
- Gao et al. (2020)
Leo Gao, Stella Biderman, Sid Black, Laurence Golding, Travis Hoppe, Charles Foster, Jason Phang, Horace He, Anish Thite, Noa Nabeshima, Shawn Presser, and Connor Leahy.
The Pile: An 800gb dataset of diverse text for language modeling.
*arXiv preprint arXiv:2101.00027*, 2020.
- Gao et al. (2024)
Leo Gao, Tom Dupré la Tour, Henk Tillman, Gabriel Goh, Rajan Troll, Alec Radford, Ilya Sutskever, Jan Leike, and Jeffrey Wu.
Scaling and evaluating sparse autoencoders.
*arXiv preprint arXiv:2406.04093*, 2024.
- Kantamneni et al. (2025)
Subhash Kantamneni, Joshua Engels, Senthooran Rajamanoharan, Max Tegmark, and Neel Nanda.
Are sparse autoencoders useful? a case study in sparse probing.
*arXiv preprint arXiv:2502.16681*, 2025.
- Kingma & Ba (2014)
Diederik P Kingma and Jimmy Ba.
Adam: A method for stochastic optimization.
*arXiv preprint arXiv:1412.6980*, 2014.
- Lieberum et al. (2024)
Tom Lieberum, Senthooran Rajamanoharan, Arthur Conmy, Lewis Smith, Nicolas Sonnerat, Vikrant Varma, János Kramár, Anca Dragan, Rohin Shah, and Neel Nanda.
Gemma Scope: Open Sparse Autoencoders Everywhere All At Once on Gemma 2, August 2024.
- Lin (2023)
Johnny Lin.
Neuronpedia: Interactive reference and tooling for analyzing neural networks, 2023.
URL [https://www.neuronpedia.org](https://www.neuronpedia.org).
Software available from neuronpedia.org.
- Olshausen & Field (1997)
Bruno A Olshausen and David J Field.
Sparse coding with an overcomplete basis set: A strategy employed by v1?
*Vision research*, 37(23):3311–3325, 1997.
- Park et al. (2024)
Kiho Park, Yo Joong Choe, and Victor Veitch.
The linear representation hypothesis and the geometry of large language models.
In *Forty-first International Conference on Machine Learning*, 2024.
URL [https://openreview.net/forum?id=UGpGkLzwpP](https://openreview.net/forum?id=UGpGkLzwpP).
- Rajamanoharan et al. (2024)
Senthooran Rajamanoharan, Tom Lieberum, Nicolas Sonnerat, Arthur Conmy, Vikrant Varma, János Kramár, and Neel Nanda.
Jumping ahead: Improving reconstruction fidelity with jumprelu sparse autoencoders.
*arXiv preprint arXiv:2407.14435*, 2024.
- Team et al. (2024)
Gemma Team, Morgane Riviere, Shreya Pathak, Pier Giuseppe Sessa, Cassidy Hardin, Surya Bhupatiraju, Léonard Hussenot, Thomas Mesnard, Bobak Shahriari, Alexandre Ramé, Johan Ferret, Peter Liu, Pouya Tafti, Abe Friesen, Michelle Casbon, Sabela Ramos, Ravin Kumar, Charline Le Lan, Sammy Jerome, Anton Tsitsulin, Nino Vieillard, Piotr Stanczyk, Sertan Girgin, Nikola Momchev, Matt Hoffman, Shantanu Thakoor, Jean-Bastien Grill, Behnam Neyshabur, Olivier Bachem, Alanna Walton, Aliaksei Severyn, Alicia Parrish, Aliya Ahmad, Allen Hutchison, Alvin Abdagic, Amanda Carl, Amy Shen, Andy Brock, Andy Coenen, Anthony Laforge, Antonia Paterson, Ben Bastian, Bilal Piot, Bo Wu, Brandon Royal, Charlie Chen, Chintu Kumar, Chris Perry, Chris Welty, Christopher A. Choquette-Choo, Danila Sinopalnikov, David Weinberger, Dimple Vijaykumar, Dominika Rogozińska, Dustin Herbison, Elisa Bandy, Emma Wang, Eric Noland, Erica Moreira, Evan Senter, Evgenii Eltyshev, Francesco Visin, Gabriel Rasskin, Gary Wei, Glenn Cameron, Gus Martins,
Hadi Hashemi, Hanna Klimczak-Plucińska, Harleen Batra, Harsh Dhand, Ivan Nardini, Jacinda Mein, Jack Zhou, James Svensson, Jeff Stanway, Jetha Chan, Jin Peng Zhou, Joana Carrasqueira, Joana Iljazi, Jocelyn Becker, Joe Fernandez, Joost van Amersfoort, Josh Gordon, Josh Lipschultz, Josh Newlan, Ju yeong Ji, Kareem Mohamed, Kartikeya Badola, Kat Black, Katie Millican, Keelin McDonell, Kelvin Nguyen, Kiranbir Sodhia, Kish Greene, Lars Lowe Sjoesund, Lauren Usui, Laurent Sifre, Lena Heuermann, Leticia Lago, Lilly McNealus, Livio Baldini Soares, Logan Kilpatrick, Lucas Dixon, Luciano Martins, Machel Reid, Manvinder Singh, Mark Iverson, Martin Görner, Mat Velloso, Mateo Wirth, Matt Davidow, Matt Miller, Matthew Rahtz, Matthew Watson, Meg Risdal, Mehran Kazemi, Michael Moynihan, Ming Zhang, Minsuk Kahng, Minwoo Park, Mofi Rahman, Mohit Khatwani, Natalie Dao, Nenshad Bardoliwalla, Nesh Devanathan, Neta Dumai, Nilay Chauhan, Oscar Wahltinez, Pankil Botarda, Parker Barnes, Paul Barham, Paul Michel, Pengchong Jin,
Petko Georgiev, Phil Culliton, Pradeep Kuppala, Ramona Comanescu, Ramona Merhej, Reena Jana, Reza Ardeshir Rokni, Rishabh Agarwal, Ryan Mullins, Samaneh Saadat, Sara Mc Carthy, Sarah Cogan, Sarah Perrin, Sébastien M. R. Arnold, Sebastian Krause, Shengyang Dai, Shruti Garg, Shruti Sheth, Sue Ronstrom, Susan Chan, Timothy Jordan, Ting Yu, Tom Eccles, Tom Hennigan, Tomas Kocisky, Tulsee Doshi, Vihan Jain, Vikas Yadav, Vilobh Meshram, Vishal Dharmadhikari, Warren Barkley, Wei Wei, Wenming Ye, Woohyun Han, Woosuk Kwon, Xiang Xu, Zhe Shen, Zhitao Gong, Zichuan Wei, Victor Cotruta, Phoebe Kirk, Anand Rao, Minh Giang, Ludovic Peran, Tris Warkentin, Eli Collins, Joelle Barral, Zoubin Ghahramani, Raia Hadsell, D. Sculley, Jeanine Banks, Anca Dragan, Slav Petrov, Oriol Vinyals, Jeff Dean, Demis Hassabis, Koray Kavukcuoglu, Clement Farabet, Elena Buchatskaya, Sebastian Borgeaud, Noah Fiedel, Armand Joulin, Kathleen Kenealy, Robert Dadashi, and Alek Andreev.
Gemma 2: Improving open language models at a practical size, 2024.
URL [https://arxiv.org/abs/2408.00118](https://arxiv.org/abs/2408.00118).
- Till (2024)
Demian Till.
Do sparse autoencoders find true features?
*LessWrong*, 2024.
URL [https://www.lesswrong.com/posts/QoR8noAB3Mp2KBA4B/do-sparse-autoencoders-find-true-features](https://www.lesswrong.com/posts/QoR8noAB3Mp2KBA4B/do-sparse-autoencoders-find-true-features).
- Wu et al. (2025)
Zhengxuan Wu, Aryaman Arora, Atticus Geiger, Zheng Wang, Jing Huang, Dan Jurafsky, Christopher D Manning, and Christopher Potts.
Axbench: Steering llms? even simple baselines outperform sparse autoencoders.
*arXiv preprint arXiv:2501.17148*, 2025.

## Appendix A Appendix

### A.1 SAE training architecture definitions

In this work we focus on JumpReLU (Conerly et al., 2025; Rajamanoharan et al., 2024) and BatchTopK (Bussmann et al., 2024) SAEs. For BatchTopK SAEs, there is no sparsity penalty as sparsity is enforced by the BatchTopK function. The auxiliary loss $\mathcal{L}_{P}$ for BatchTopK is as follows, where $e$ is the SAE training error residual, and $\hat{e}$ is a reconstruction using the top $k_{\text{aux}}$ dead latents (meaning the latents have not fired in more than $n_{\text{dead}}$ steps during training).

$$ $\mathcal{L}_{p}=\lVert e-\hat{e}\rVert_{2}^{2}$ $$

We follow the JumpReLU training setup from Conerly et al. (2025), which involves both a sparsity loss $\mathcal{L}_{s}$ and a pre-activation loss for reviving dead latents, $\mathcal{L}_{p}$. $\mathcal{L}_{s}$ is defined as below, where $c$ is a scalar scaling factor:

$$ $\mathcal{L}_{s}=\sum_{i}\text{tanh}(c*|a_{i}|\lVert\mathbf{W}_{\text{dec},i}\rVert_{2})$ $$

The pre-activation loss $\mathcal{L}_{p}$ adds a small penalty for all dead features, where $a_{\text{pre}}$ refers to the pre-activation of the SAE passed into the JumpReLU:

$$ $\mathcal{L}_{p}=\sum_{i}\text{ReLU}(\tau_{i}-a_{\text{pre},i})\lVert\mathbf{W}_{\text{dec},i}\rVert_{2}$ $$

The JumpReLU defines a pseudo-gradient relative to the threshold $\tau$ as follows, where $\epsilon$ is the bandwidth of the estimator:

$$ $\frac{\partial\text{JumpReLU}(x,\tau)}{\partial\tau}=\begin{cases}-\frac{\tau}{\epsilon}&\text{if }-\frac{1}{2}<\frac{x-\tau}{\epsilon}<\frac{1}{2}\\ 0&\text{otherwise}\end{cases}$ $$

### A.2 Toy model SAE training details

We train on 15M samples with a batch size of 1024 for all toy model experiments, and a learning rate of 3e-4. We do not use any learning rate warm-up or decay. For all SAE latents vs true feature cosine similarity plots, we re-arrange the SAE latents so the latent indices match the feature indices in the plots, as this makes interpreting the plots easier without any loss of generality.

For the large toy model experiments in Section [3.2](https://arxiv.org/html/2508.16560v2#S3.SS2), we use a randomly generated correlation matrix and linearly decreasing feature firing probabilities, both shown in Figure [11](https://arxiv.org/html/2508.16560v2#A1.F11).

Figure: Figure 11: (left) random correlation matrix and (right) base feature firing probabilities for toy model.
Refer to caption: x22.png

### A.3 LLM SAE training details

For BatchTopK SAEs, we ensure that the decoder remains normalized with $||\mathbf{W}_{\text{dec}}||_{2}=1$ so $s_{n}^{\text{\text{dec}}}$ calculations use the same scale for every latent. We use a learning rate of $3e^{-4}$ with no warmup or decay.

For JumpReLU SAEs, we broadly follow the training procedure laid out by Conerly et al. (2025). However, we do not apply learning rate decay, and only warm $\lambda_{s}$ for 100M tokens to avoid the sparsity penalty changing throughout the majority of training. We use a learning rate of $2e^{-4}$, $c=4$, $\lambda_{p}=3e-6$ and bandwidth $\epsilon=2.0$ as recommended by (Conerly et al., 2025).

### A.4 Transitioning L0 during training

We explore the effect of transitioning the L0 of the SAE during training using the toy model from Section [3](https://arxiv.org/html/2508.16560v2#S3). This toy model has a true L0 of 11. We train BatchTopK SAEs with a final L0 of 11, but starting with L0 either too high or too low, and linearly transitioning to the correct L0 over the first 25k steps of training, leaving the SAE at the correct L0 for the final 5k steps of training. We use a starting L0 of 20 for the case where we start too high, and use a starting L0 of 2 for the case where we start too low. Results are shown in Figure [12](https://arxiv.org/html/2508.16560v2#A1.F12).

Figure: Figure 12: Transitioning L0 from too low (left) and too high (right) to the correct L0 during training. When the starting L0 is too high, the SAE still learns the correct features at the end of training. However, when L0 is too low, the SAE cannot recover fully and still learns many incorrect features at the end of training.
Refer to caption: x24.png

We see that decreasing the L0 of the SAE from a too high value to the correct value still results in the SAE learning correct features. However, when the SAE starts from a too low L0, the SAE cannot fully recover when the L0 is adjusted to the correct value later. It seems that the latents the SAE learns when L0 is too low is a local minimum that is difficult from the SAE to escape from even when the L0 is later corrected. This is likely because the latents learned when L0 is too low are optimized by gradient descent to achieve a higher MSE loss than is achievable by the correct latents under the same L0 constraint. However, when L0 is too high, there is no equivalent optimization pressure, and is thus less likely to be a local minimum.

### A.5 Alternative metric: decoder pairwise cosine similarity

We find that $n$^th decoder projection is not the only metric that works to gauge the extent to which features are being mixed across SAE latents. Simply taking the mean cosine similarity of each decoder latent with every other decoder latent seems to work as well. We call this metric decoder pairwise cosine similarity, $c$, and define it as below:

$$ $c=\frac{1}{\binom{h}{2}}\sum_{i=1}^{h-1}\sum_{j=i+1}^{h}|\cos(\mathbf{W}_{\text{dec},i},\mathbf{W}_{\text{dec},j})|$ (6) $$

where $\binom{h}{2}=\frac{h(h-1)}{2}$ is the total number of distinct pairs.

The intuition behind this metric is that if SAE decoder latents are mixing lots of positive and negative components of correlated and anti-correlated features, then each SAE latent should become less orthogonal to each other SAE latent, as many latents will likely mix together similar features. This should mean that the absolute value of the cosine similarity between arbitrary latents should also increase the worse this mixing becomes.

#### A.5.1 Toy model results

We calculate pairwise calculate similarity $c$ for each of the BatchTopK SAEs we trained on toy models from Section [3.5](https://arxiv.org/html/2508.16560v2#S3.SS5). Results are shown in Figure [13](https://arxiv.org/html/2508.16560v2#A1.F13). We see that pairwise cosine similarity is minimized at the true L0.

Figure: Figure 13: Decoder pairwise cosine similarity evaluated on 5 seeds of toy model SAEs. The true L0 is indicated with a dotted line at 11. The shaded area is 1 stdev. The metric is minimized at the true L0.
Refer to caption: x26.png

#### A.5.2 LLM SAE results

Next, we calculate pairwise cosine similarity for each LLM SAE we evaluated in the paper along with k=16 sparse probing results. Gemma-2-2b layer 5 and Llama-3.2-1b layer 7 results are shown in Figure [14](https://arxiv.org/html/2508.16560v2#A1.F14). The results roughly match what we saw with $s_{n}^{\text{dec}}$, being minimized at perhaps a slightly lower but still similar L0.

Figure: Figure 14: Decoder pairwise cosine similarity metric and k=16 sparse probing results for BatchTopK SAEs trained on Gemma-2-2b layer 5 (left) and Llama-3.2-1b layer 7 (right). The metric is roughly minimized near peak sparse-probing performance. The shaded area is 1 stdev.
Refer to caption: x27.png

Figure: Figure 15: Decoder pairwise cosine similarity metric and sparse probing results for BatchTopK and JumpReLU SAEs trained on Gemma-2-2b layer 12. The metric seems to align less well with k=16 sparse probing results (left), but aligns reasonably well with k=1 sparse probing results (right). The pairwise cosine similarity plot is repeated on both sides to make a vertical comparison with the k-sparse probing results easier.
Refer to caption: x29.png

BatchTopK and JumpReLU results for Gemma-2-2b layer 12 are shown in Figure [15](https://arxiv.org/html/2508.16560v2#A1.F15). Interestingly, the BatchTopK results seem to be minimized at a slightly earlier L0 than the JumpReLU results under this metric, which is different than the $n$^th decoder projection results from Section [4](https://arxiv.org/html/2508.16560v2#S4), where we saw both minimized at roughly the same point. We note that the decoder pairwise cosine similarity metric seems to align better with k=1 sparse probing results, while $n$^th decoder projection seems to align better with k=16 sparse probing results. We do not know if this is a meaningful difference between these metrics. It is possible that, as we saw in Section [4.2](https://arxiv.org/html/2508.16560v2#S4.SS2), there is a range of L0 values that can be too high for some latents while too low for other latents in BatchTopK SAEs, and perhaps the difference between metrics (and k=1 vs k=16 sparse probing results) relates to differences in sensitivity to this mixture of too high / too low latents. Regardless, in all cases, when L0 is low both metrics show large values, indicating high polysemanticity in SAE latents.

#### A.5.3 Which metric is better?

We choose to focus on $n$^th decoder projection in this paper since we feel it allows for more insightful interpretations of the decoder projection plots (e.g. Section [4.2](https://arxiv.org/html/2508.16560v2#S4.SS2)). However, we do not feel that either metric is inherently better or worse than the other, and we do not have a strong reason to pick either metric. We expect that when an SAE is near the correct L0, there are likely many indicators that all should point to similar results. We thus recommend that practitioners try both metrics to see which results in easier interpretation for their use-case.

### A.6 Automatically finding the correct L0 during training

A natural next step of our finding that the correct L0 occurs when Nth decoder projection, $s_{n}^{\text{\text{dec}}}$, metric is minimized is to use this to find the correct L0 automatically during training. This is a meta-learning task, as the L0 is a hyperparameter of the training process. We find there are several challenges to directly using $s_{n}^{\text{\text{dec}}}$ as an optimization target:

- •
Small gradients directly above correct L0 In our plots of $s_{n}^{\text{\text{dec}}}$ from both toy models and Gemma-2-2b, we find that the metric is relatively flat in a region start at the correct L0 and extending to higher L0 values. We thus need a way to traverse this flat region and stop once the metric starts to increase again.
- •
The impact of changing L0 is delayed We find that it takes many steps after changing L0 for $s_{n}^{\text{\text{dec}}}$ to also change, meaning it is easy to overshoot the target L0 or oscillate back and forth.
- •
Dropping L0 too low can harm the SAE As we saw in Appendix [A.4](https://arxiv.org/html/2508.16560v2#A1.SS4), if the L0 is too low the SAE can permanently end up in poor local minima. We thus want to avoid dropping below the correct L0, even temporarily, to avoid permanently breaking the SAE. We therefore need to start with L0 too high and slowly decrease it until we find the correct L0.
- •
Noise during training We find that while $s_{n}^{\text{\text{dec}}}$ shows clear trends after training for many steps, it can be noisy on each training sample. So our optimization needs to be robust to this noise.

Taking these requirements into account, we present an optimization procedure to find the L0 that minimizes $s_{n}^{\text{\text{dec}}}$ automatically during training. We first estimate the gradient of $s_{n}^{\text{\text{dec}}}$, hereafter referred to as to as the metric, $m$, with respect to L0, $\nicefrac{{dm}}{{dL0}}$. We first define an evaluation step $t$ as a set number of training steps (we evaluate every 100 training steps). At $t$ we change L0 by $\delta_{L_{0}}$. At the next evaluation step, $t+1$, we evaluate $m$. We use a sliding average of $s_{n}^{\text{\text{dec}}}$ over the past 10 training steps to calculate $m$ to help account for noise. We the estimate $\nicefrac{{dm}}{{dL0}}$ as:

$$ $\frac{dm}{dL0}=\frac{m_{t+1}-m_{t}}{\delta_{L0}}$ $$

Next, we add a small negative bias to this gradient estimate to encourage our estimate to push L0 lower even if the loss landscape is relatively flat. We use a bias magnitude $0<b<1$ that is multiplied by the magnitude of our gradient estimate, so that our biased estimate can never change the sign of the gradient estimate, but can gently nudge it to be more negative in flat, noisy regions of the loss landscape. We find $b=0.1$ works well. Thus, our biased gradient estimate $\nicefrac{{dm_{b}}}{{dL0}}$ is calculated as below:

$$ $\frac{dm_{b}}{dL0}=\frac{dm}{dL0}-b\left|\frac{dm}{dL0}\right|$ $$

We then provide this gradient to the Adam optimizer (Kingma & Ba, 2014) with default settings, and allow it to change the L0 parameter.

We add the following optional modifications to this algorithm. First, we clip the gradient estimates $\nicefrac{{dm}}{{dL0}}$ to be between -1 and 1. We also set a minimum and maximum $\delta_{L_{0}}$. The minimum is added to avoid the denominator of our gradient estimate being near 0, and the maximum is chosen to keep the L0 from changing too quickly. In practice, we find a minimum $\delta_{L_{0}}$ between 0 and 1 seems to work well, and a maximum $\delta_{L_{0}}$ between 1 and 5 seems to work well.

We find that this optimization strategy works very well in toy models, but requires a lot of hyperparameter tuning to work in real LLMs, limiting its utility. The starting L0, $n$ for $s_{n}^{\text{\text{dec}}}$, $b$, learning rate for the Adam optimizer, and min and max $\delta_{L_{0}}$ values all have a big impact on how fast and how aggressively the optimization works. The slope of $m$ around the correct L0 is shallow, so it is easy to overshoot. We also find that different values of $n$ take more or less time to converge during training. We expect it is possible to further simplify and improve this process in future work.

### A.7 L0 of open-source SAEs on Neuronpedia

We analyze common open-source SAEs as provided by Neuronpedia (Lin, 2023) and SAELens (Bloom et al., 2024). We include all SAEs cross-listed in both SAELens and Neuronpedia with an L0 reported in SAELens. We show the results as a histogram in Figure [16](https://arxiv.org/html/2508.16560v2#A1.F16). Our analysis shows that for layer 12 of Gemma-2-2b, the correct L0 should be around 200-250. However, we find that most open-source SAEs have L0 below 100, much lower than our analysis expects to be ideal.

Figure: Figure 16: L0 of SAEs on Neuronpedia with known L0 listed in SAELens.
Refer to caption: x31.png

### A.8 Limitations

We limited the scope of our investigation to features satisfying the linear representation hypothesis, and do not investigate how SAEs react if the underlying features are actually non-linear (Engels et al., 2025). However, we do not feel that non-linear features are necessary for SAEs to fail to work properly, as we demonstrate in this paper. We also do not consider the nuances of how unbalanced correlations impact the SAE, as simple correlations are already enough to cause problems. However, we do expect that different sorts of correlations may affect SAEs differently, and would encourage future work to look into this. Finally, we only investigated a few layers of popular LLMs, as running sweeps of SAE training at every layer of the LLM was too prohibitively expensive for this work. Nevertheless, we have no reason to expect any meaningfully different behavior in decoder projection at other LLM layers.

### A.9 Extended Nth decoder projection plots

In this section we document $n$^th decoder projection plots for multiple values of N for each sweep of L0 we performed. We show Llama-3.2-1b layer 7 plots in Figure [19](https://arxiv.org/html/2508.16560v2#A1.F19), Gemma-2-2b layer 5 in Figure [17](https://arxiv.org/html/2508.16560v2#A1.F17), and Gemma-2-2b layer 12 in Figure [18](https://arxiv.org/html/2508.16560v2#A1.F18). We note that in all cases, low L0 behavior is similar: no matter the value of N, $s_{n}^{\text{dec}}$ increases dramatically at low L0. However, the high L0 behavior is less consistent. We always see a similar “elbow” in the plots at roughly the same place regardless of N, but sometimes this elbow corresponds to a clear global minimum, and sometimes the high L0 behavior is very shallow. We find that using a N near $h/2$ ( 16k in our cases) seems to give the best results.

Figure: Figure 17: Extended Nth decoder projection plots. Gemma-2-2b, layer 5, 32k latents. These plots never have a clear global minimum at the “elbow” point, but the “elbow” is always at the same point regardless of choice of N.
Refer to caption: x32.png

Figure: Figure 18: Extended Nth decoder projection plots. Gemma-2-2b, layer 12, 32k latents for both JumpReLU and BatchTopK. For BatchTopK, regardless of the choice of N, all plots are minimized around the same L0 range, 200-250. For JumpReLU, there is a clear “elbow” at roughly the same L0, but this elbow is only a clear minimum at N=16k.
Refer to caption: x38.png

Figure: Figure 19: Extended Nth decoder projection plots. Llama-3.2-1b, layer 7, 32k latents. The plots begin to have a sharp minimum around N=14k, but the “elbow” of the plots before the decoder projection increases at low L0 is always around the same location.
Refer to caption: x44.png

### A.10 Extended analysis of JumpReLU vs BatchTopK dynamics

JumpReLU and BatchTopK SAEs are both considered state of the art, but we find they have notable differences in their behavior at high L0 in our experiments. In this section, we explore what maybe be causing these differences. In theory, JumpReLU and BatchTopK SAEs are very similar, as a BatchTopK SAE can be viewed as a JumpReLU SAE with a single global threshold, rather than a threshold per-latent (Bussmann et al., 2024). However, the training losses are quite different for JumpReLU vs BatchTopK. We use the JumpReLU variant laid out by Conerly et al. (2025), which allows gradients to flow through the JumpReLU threshold to the rest of the model parameters. We expect this means that JumpReLU SAEs are better able to coordinate the threshold with the rest of the model parameters, while BatchTopK cannot, as the threshold does not directly receive a gradient in BatchTopK training.

We begin by comparing the encoder bias between JumpReLU and BatchTopK in Figure [20](https://arxiv.org/html/2508.16560v2#A1.F20). We see that BatchTopK SAEs rely much more heavily on the encoder bias than JumpReLU SAEs seem to, with a much wider variance in values and a sharper decrease compared to JumpReLU. We expect this is because BatchTopK cannot coordinate the cutoff threshold with the encoder directly as JumpReLU can, since there is no gradient available to directly change the threshold of BatchTopK SAEs.

Figure: Figure 20: Mean encoder bias vs L0. Shaded area in plots corresponds to 1 stdev.
Refer to caption: x50.png

Next, we inspect the threshold values between JumpReLU and BatchTopK in Figure [21](https://arxiv.org/html/2508.16560v2#A1.F21). Here as well, we see dramatic differences between BatchTopK and JumpReLU SAEs. The threshold for BatchTopK is much higher than it is for JumpReLU, and the threshold decreases as L0 increses. This makes sense, since using a lower cutoff means more latents can fire. However, JumpReLU seems to unintuitively have the opposite trend, with the threshold actually increasing with L0. We saw in Figure [20](https://arxiv.org/html/2508.16560v2#A1.F20) that the encoder bias for JumpReLU (and BatchTopK) SAEs increases as well as L0 increases, so perhaps this increase in threshold for JumpReLU SAEs with increasing L0 is just to offset that trend somewhat. We also notice that the variance in JumpReLU SAE thresholds also increases as L0 increases, supporting our hypothesis that one of the reasons JumpReLU SAEs seem to handle high L0 better than BatchTopK is because the thresholds are able to dynamically adjust to near the correct cutoff point per latent, aleviating the situation we saw in BatchTopK SAEs where we can be at both too high and too low L0 at the same time (Section [4.2](https://arxiv.org/html/2508.16560v2#S4.SS2)).

Figure: Figure 21: Threshold vs L0 for JumpReLU and BatchTopK SAEs. Shaded area in plots corresponds to 1 stdev. Interestingly, JumpReLU threshold is much lower than the BatchTopK threshold, and actually increases as L0 increases. We plot just JumpReLU on its own (right) since it is otherwise difficult to see these trends, as the threshold is so much smaller than BatchTopK.
Refer to caption: x51.png

## Peer Reviews

confidence: 4
contribution: 1
initial_rating: 2
presentation: 2
questions: Beyond those raised in the Weaknesses section, a few remaining questions and concerns are listed by section below.

Sec 3.1-3.3:
- Why use fewer "true features" than dimensions ($g < d$) in toy settings, when one of the primary motivations of modern SAEs is that embedding vectors are expected to leverage superposition to encode (potentially exponentially) more features than embedding dimensions ($g >> d$)?
    - If experiments are repeated with $g >> d$, how similar do the results look?

Sec 3.5:
- What does it mean to "sort these values [of $\mathbf{z}$] in descending order to get $\mathbf{z}_\downarrow$"? What is "descending order" (later referred to as "ranking") in this case, and why is it necessary to sort $\mathbf{z}$ according to this ranking?
- Is there any theoretical justification supporting the proposed $s_n^{dec}$ (as defined in eqn 5) as an estimator of the ideal L0 value? (I have the same concern regarding $n = h / 2$.) From the provided explanation, it seems that the authors might have simply experimented across arbitrary L0 thresholds until finding a formula that happened to perform well in toy experiments. However, if this interpretation is correct, then it is not clear whether it is simply due to (unintentional) p-hacking -- i.e., running enough arbitrary experiments that eventually a seemingly-nontrivial pattern appears by chance.
soundness: 1
strengths: The paper indicates an important issue (feature hedging) that can arise from poor hyperparameter (L0) selection, which is relevant for practitioners to keep in mind when training SAEs. Additionally, the demonstration with toy models that popular "sparsity versus reconstruction" analyses can yield to poor L0 selection may be helpful to the SAE research community.
summary: The paper investigates the consequences of setting too low an L0 value when training Sparse AutoEncoders (SAEs). Toy experiments show evidence of feature hedging when L0 is set too low, and also indicate that "sparsity versus reconstruction" analyses in prior work can lead to choosing artificially low L0 values (and associated hedging). The authors propose a heuristic method for estimating better L0 values, and conduct several experiments that aim to validate this method.
weaknesses: It has been a well-established fact since the earliest days of machine learning that poor hyperparameter selection leads to underperforming models. It is not clear to me that the paper makes any contribution beyond showing that this is also true of the L0 hyperparameter when training SAEs.

One potential contribution of the work would be in its proposal of "metric" $s_n^{dec}$ that might be useful in estimating L0 values. However, it is not clear what $s_n^{dec}$ it is intended to measure, nor its intended utility. 
- Charitably, such a metric that estimates L0 values might be useful in reducing time and resource costs associated with SAE hyperparameter search. However, for $s_n^{dec}$ in particular, this is not possible, as computing it requires training SAEs first.
- Sec 4 does contain experiments computing $s_n^{dec}$ in the context of BatchTopK SAEs trained on two LLMs, comparing $s_n^{dec}$ and sparse probing scores across L0 values, finding that the two often peak in similar layers. However, it is not clear that analyzing $s_n^{dec}$ has any utility (in terms of theoretical understanding, practical SAE training, or any other consideration) in this setting -- if we already know sparse probing scores, what is the additional benefit of computing $s_n^{dec}$?

Finally, the paper is very light on citation and discussion of closely related prior works, such as:
- [1, 2] study feature splitting, a closely related phenomenon to hedging (as observed in this work for low-L0 SAEs).
- [3] introduces a metric and activation function to approximate the theoretically optimal L2 norm of SAE latent vectors.
- [4] studies feature hedging, as observed in this work -- while the paper cites [4] several times, the novelty of this work relative to [4] is not specified. (Optimistically, the distinction would be that this work focuses on hedging that arises from low L0 values, whereas [4] focuses on hedging due to small dictionary sizes -- however, the effect of L0 on hedging was also shown in [4] (see, e.g., sec 4.1 of [4]).)

[1] Bricken, T., Templeton, A., Batson, J., Chen, B., Jermyn, A., Conerly, T., Turner, N., Anil, C., Denison, C., Askell, A., et al. Towards monosemanticity: Decomposing language models with dictionary learning. Transformer Circuits Thread, 2, 2023. URL: https://transformer-circuits.pub/2023/monosemantic-features#phenomenology-feature-splitting               
[2] Templeton, et al., "Scaling Monosemanticity: Extracting Interpretable Features from Claude 3 Sonnet", Transformer Circuits Thread, 2024. URL: https://transformer-circuits.pub/2024/scaling-monosemanticity/#feature-survey-neighborhoods                
[3] Lee, S., Davies, A., Canby, M. E., & Hockenmaier, J. (2025). Evaluating and Designing Sparse Autoencoders by Approximating Quasi-Orthogonality. Second Conference on Language Modeling. URL: https://openreview.net/forum?id=XhdNFeMclS               
[4] Chanin, D., Dulka, T., & Garriga-Alonso, A. (2025). Feature Hedging: Correlated Features Break Narrow Sparse Autoencoders. arXiv preprint arXiv:2505.11756. URL: https://arxiv.org/abs/2505.11756

---

confidence: 3
contribution: 3
initial_rating: 6
presentation: 3
questions: 1. Provide theoretical reasoning or formal analysis for why s dec n tracks monosemanticity.
2. Explore robustness under different loss functions and decoder regularizations.
3. Extend experiments to diverse architectures and deeper layers.
soundness: 2
strengths: 1. Clear identification of a critical issue with sparsity tuning in SAEs.
2. Strong empirical evidence with both toy models and comprehensive testing of
LLMs(Gemma-2-2b and Llama-3.2-1b). Specifically, Section 3.3 shows an incorrect,
feature-mixing SAE achieving a better MSE (2.73) than the perfectly correct ground-
truth SAE (MSE 4.88).
3. The proposed (s dec n ) metric (Section 3.5) is well-motivated and is shown to be a useful
proxy for feature correctness.
4. Insightful analysis showing that reconstruction error can misleadingly favor mixed
features.
5. The authors validate their metric on LLMs by showing that the &quot;elbow&quot; of the s dec n
curve (the optimal L0) aligns with peak performance on downstream k-sparse
probing tasks.
summary: The paper investigates the problem of incorrect sparsity target (L0) in Sparse Autoencoders
(SAEs). It demonstrates that when L0 is set too low or too high, learned latents mix correlated
and anti-correlated features, losing monosemanticity. Through controlled toy models(Section 3)
and experiments on LLM activations(Section 4) (Gemma-2-2B, Llama-3.2-1B), the authors show
that reconstruction loss can favor incorrect SAEs and propose a diagnostic metric, the nth decoder
projection score (s dec n ) defined in Equation 5, for selecting appropriate L0 values.
weaknesses: 1. Lacks theoretical grounding, findings are entirely empirical.
2. Toy models assume orthogonal and linearly separable ground-truth features, which may
not represent real LLMs.
3. The metric s dec n requires manual hyperparameter tuning (choice of n, batch size). The
paper&#39;s own attempt at an automatic optimization algorithm (Appendix A.6) is admitted
to be hard and &quot;require a lot of hyper-parameter tuning to work in real LLMs limiting its
utility&quot;.
4. The authors explicitly state in Appendix A.8 that LLM experiments were limited to &quot;only
a few layers&quot; due to computational costs, so generalization to all layers remains
uncertain.

---

confidence: 3
contribution: 3
initial_rating: 4
presentation: 3
questions: - Does the degree of correlation influence the degree of mixing?

- Is there more evidence of feature mixing (/absorption) in the low L0 setting but feature splitting in the high L0 setting?

- Can you probe interaction effects (frequency and correlation?) for example, by replicating figs 2, 3 where f0 has relatively high and low frequency? 

- In cases where h/2 is not the ‘best’ n, can you add to your metric (ie with a quantitative measure to capture your finding in lower right panel of Fig 10)? If not always, then how often does it work, and in what settings?

- Add plot(s) and/or table(s) showing the SAE resulting from elbow method vs your metric(s)
soundness: 3
strengths: The authors demonstrate a key limitation of standard parameter selection practices used by SAE practitioners: that SAEs with low L0 are often selected based on sparsity-reconstruction tradeoff analyses yet impede true feature recovery.

They develop two metrics, both capturing when L0 is too low in toy models, validating the results on real data from multiple LLMs. 

They test their metrics on two SOTA SAE architectures.

The result is a timely, well-tested toolkit for SAE evaluation that can be adopted widely.
summary: Authors state that most SAE users choose the wrong sparsity, impeding the recovery of true model features. This stems from over-reliance on sparsity-reconstruction tradeoff plots during SAE parameter search, most often causing users to end up with SAE L0 that is too low. The authors explore the consequences of SAEs with low L0 relative to true L0 using toy models and find that low L0 causes 1) imperfect recovery of real features but 2) low reconstruction error. They address the mechanism, finding that low L0 SAEs mix features based on feature correlation statistics to achieve better variance explained than ground-truth SAE features. Next, they develop metrics to identify if L0 is less than true L0 in toy models. The core results are extended to real LLMs, and while true L0 is unkown for these systems, the authors’ metrics capture the L0 that results in the best sparse probing performance for LLMs.  Finally, the authors explore the differences between two SOTA SAE architectures, finding that JumpReLU SAEs are more robust to high L0 than BatchTopK SAEs, with both architectures performing similarity at lower than ‘true’ L0. High L0 is also addressed, but results are more mixed.
weaknesses: One thing that I really miss in this paper: You are saying that rate-distortion heuristics (like picking the lowest L0 with the lowest MSE) does not give the most disentangled SAE. Instead you are proposing a different heuristic. If that heuristic is better, then you should be able to just take a bunch of pretrained SAEs from SAEbench and show how your heuristic leads to a better SAE across the different metrics. What is stopping you from doing that experiment?

Please include references and look for overlap with existing literature on estimating the number of sources in ICA (https://www.nature.com/articles/s41598-023-49355-z, https://pmc.ncbi.nlm.nih.gov/articles/PMC6871474/)

Presentation consistency. 1) Would like decoder projection plots for all model types shown 2) Plot high L0 alongside low L0 throughout the main text, particularly since it differentiates the two SAE architectures at some point.

Selection of n: Though explained, selection of n seems somewhat arbitrary at times. Would be more compelling to show the average across n results, fix the main text n value to be h/2 consistently, or show a few n values flanking and including the h/2 value. Relatedly, would add h value to fig caption where n is selected for clarity. 

Alternate explanations: Feature frequency could also explain aspects of particularly low L0 performance. The left vs right side of Fig 1 (left) hints at this. Plotting feature recovery as a function of feature frequency would be helpful.

---

confidence: 4
contribution: 4
initial_rating: 8
presentation: 3
questions: What are the reconstruction values for the SAEs of Figure 5? The caption is a bit confusing. Are these related to the ones shown in Figure 4? Maybe these figures chould be shown together?
What do the authors think is the relationship, if any, between you proposed metrics of finding the optimal L0 and the ones described in 'Interpretability as Compression: Reconsidering SAE Explanations of Neural Activations with MDL-SAEs'?
What is the intuition for selecting the different values of n?
soundness: 3
strengths: Understanding what is the correct L0 to use is a very important problem, for the comunity.
Their metric seems to capture the real L0 on toy models.
This work presents convincing evidence that researchers might have been using too low of L0 when analysing LLMs.
summary: The author of this paper investigate how the sparsity of a Sparse Autoencoder influences the learned features by the SAE. The authors show in toy models how using a L0 lower than the real L0 can lead to a bad set of learned features, similarly to what happens if the SAE is trained with a very high L0. They show that in toy settings SAEs with lower than the true L0 can 'cheat' and achieve better reconstruction loss. With this in mind they propose metrics to measure if SAEs were trained with too low L0 without know the ground truth labels. They apply this method to LLMs and find that the best L0 for probing is also maximizes their metric.
weaknesses: The presentation of the paper is sightly subpar. Figures could be improved.
The paper does not discuss a relevant work 'Interpretability as Compression: Reconsidering SAE: Explanations of Neural Activations with MDL-SAEs'


Decision: Reject