# Prism: a sparse-autoencoder atlas of a language model’s features

By Lucas Espindola · https://lucasespindola.com/prism · in the site's terminal: `app prism`

Prism splits a small language model’s residual stream into thousands of features with a TopK sparse autoencoder, in your browser: a ready-made atlas of 2,048 features for TinyStories-3M’s layer 4, or one you train on your own device for any layer. You browse the features as a map, see the story text that fires each one and the words it pushes the model toward, watch every word you type split into its features, and clamp a feature on or cut it out while the model writes, next to the untouched original.

## How it works

1. Open the ready-made atlas, or grow one for any layer on your device. Each dot on the map is a feature, placed near the features whose directions it shares.
2. Hover a word in the story to see the features that fire on it, or click a feature for the contexts that fire it hardest and a logit lens: the words its direction pushes toward and away from.
3. Steer a feature: clamp it at every token to a multiple of its peak, or set it to 0 to cut it out, and the story is written again beside the original from the same random numbers.

## Privacy and limits

- Everything runs in your browser: prompts and steering stay on your device unless you share a recipe link.
- Growing an atlas reads TinyStories and trains on your device, from about a minute to several, depending on the model, the layer and the dictionary size.
- The logit lens skips the later layers, so it’s a hint, not the whole effect; steering a feature shows the effect.

## Models

- [TinyStories (Eldan & Li 2023)](https://huggingface.co/roneneldan/TinyStories-3M)
