SAE decoderesearch/olmo-3-saes layer 16 on allenai/Olmo-3-1025-7B. Each SAE concept's coverage in Dolma 3 web text (common_crawl, train split) is compared with the Pile's web text (Pile-CC). Exp 1, Torralba lab.
Jump to: Overview · Noise floor · Patterns · Sampled concepts
Overview
One dot per concept that fires often enough in both web samples to compare. The y axis is the log ratio of the concept's coverage in Dolma web to Pile web (CG paper Eq. 2); the dashed lines are the 10th and 90th percentiles that define under and over. Ringed dots are the 240 named concepts: hover to read the name, click for the full description and a link to the concept's page.
Concepts per class
Noise floor
Each concept's log ratio measured on two disjoint halves of both samples. Points far from the diagonal are concepts whose ratio depends on which documents were drawn; class labels near the cut lines can flip between halves.
Patterns
What kind of token each concept fires on most strongly, taken at its peak in every document where it fires, in Dolma web and Pile web text (weighted equally). Bars: share of concepts in each class whose most common peak token is of that type, with 95% bootstrap intervals. All 46,360 compared concepts are included, not only the named sample.
Examples (named concepts from the sample)
Topic categories of the 240 named concepts
Categories proposed by Claude Opus 5.5 from the 240 concepts' names without seeing their class; each concept was then placed in one category by Opus and, separately, by Sonnet 5.5. Bars use the Opus coding with 95% bootstrap intervals; with 80 concepts per class, only differences of about 10 points or more can be read.
Sampled concepts
80 concepts drawn at random from each of over, under and middle (row F3). Each has a name written from Pile web examples and one from Dolma web examples; the quiz columns give how well each name predicts where the concept fires in held-out Dolma web text (balanced accuracy, 0.5 = chance). Click a column header to sort, a row to open the concept.
Concept frequencies (χ) in text written unprompted by five Olmo 3 models, against Dolma, the base model's pretraining data. Mid-trained = stage1-step1413814, pretrained = main, post-trained = Olmo-3-7B-Instruct-SFT, -DPO, Instruct.
Concepts that moved most, rollouts vs Dolma
Top 10 each way by r = ln(χrollout / χDolma train), among concepts firing in at least 50 docs on each side.
Over-represented in rollouts
Under-represented in rollouts
How far concepts move from Dolma, per model
Spread of r beyond sampling noise. Post-trained models move concepts most; held-out Dolma is 0 by definition.
Per-concept χ, held-out Dolma beside a model
Spread around the line is per-concept change. Axis ranges differ between the two panels.
Reshuffling vs histogram shape
Most per-concept change swaps concepts' ranks, which a histogram of χ cannot show. Held-out Dolma shows noise alone.
Δ slope vs held-out Dolma, with 95% interval
Above 0: common concepts gain and rare concepts lose, relative to Dolma. Below 0: the reverse. Garbled = mean token NLL above held-out Dolma's 99th percentile.
Do concept names carry over to rollouts?
Gap = detection score of a name written from Dolma − score of a name written from that model's rollouts, both quizzed on held-out Dolma. Held-out Dolma favors Dolma names, so middle cells are the baseline. Not yet checked by hand against windows; intervals are per cell, uncorrected across 12 cells; unfiltered under rests on few rollout docs.
Details and checks
Methods and definitions: rollout sampling (temperature 1, no top-k or top-p), χ, r, classes (over, under, middle), Δ slope, name quiz
Rollouts. Each model writes unprompted from <|endoftext|> at temperature 1, with no top-k or top-p, although post-trained configs recommend 0.6 and 0.95. A post-trained rollout ends at the model's first <|im_end|> or <|endoftext|>. Special-token ids are removed before encoding, since Dolma's SAE inputs contain none.
χ and r. χ is a concept's coverage relative to the average concept (CG paper Eq. 2). r = ln χset − ln χtrain. All sets in a comparison use the same number of documents, since fewer documents alone steepen the curve. Slope statistics are over the slope concepts (G13).
Classes and lists. Per model, concepts with χtrain ≥ e−5 are ranked by r: lowest 10% = under, highest 10% = over, the rest = middle (CG paper Sec. 3.1, 5.1). Random lists: 80 per class. Extreme lists: the 50 highest and 50 lowest r, unfiltered and among concepts with at least 50 firing docs on both sides.
Name quiz. 200 list entries, 100 per group (base = stage1, main; instruct = SFT, DPO, Instruct). Each gets a name from Dolma windows and one from that model's rollout windows, and both are quizzed on the same held-out Dolma V windows (30 firing + 30 non-firing, balanced accuracy, Paulo et al. detection). Design: exp2_rollout_gap/design.md G70-G74. Window text stays off this page (G20).
Interactive χ curves, mid-trained and pretrained: rank curves and ratio panel, with a slider over document position
Concepts are ordered by χ in Dolma train, so a concept keeps its place across graphs and frames. Graph 1: Dolma alone (black: train; gray band: held-out V, what noise alone gives). Graph 2: rollouts alone. Graph 3: both overlaid, with the 240 named concepts on hover. Graph 4: graph 3 without the dots. Bands are the 10th-90th percentile of χ in each bin of 512 ranks, lines the median. Bottom: median log(χ / χ train) in 20 bins; a line below V at the rare end (right) and above it at the common end (left) means the model's output is more spread than its data.
Interactive χ curves, post-trained (SFT, DPO, Instruct): rank curves and ratio panel, with a slider over document position
The same graphs for the three post-training stages (design.md G30-G37). Document counts per frame are matched over Dolma V and all five models, so they are lower than in the mid-trained and pretrained charts.
Histograms of χ for each model (stage1, main, SFT, DPO, Instruct): whole document, tokens 0-256, 256-512, 512-768, 768-1024, with GIFs
CG paper Figs. 3-4 style. (a) Concepts per χ bin on linear χ and log counts. (b) The same over log10 χ. (c) Per concept, ln(χ / χ train), over the slope concepts; dashed lines are medians. Dolma V shows the width noise alone gives. In the token-window frames, the spike at the left of (b) is the smallest possible χ (concepts firing in a single document).
Curve figures for each model (stage1, main, SFT, DPO, Instruct): whole document, tokens 0-256, 256-512, 512-768, 768-1024, with GIFs for slides
Per-concept scatter and shifted histograms: held-out Dolma and all five models
Left: per concept, log10 χ in the set against log10 χ in Dolma train, with y = x (black), y = x moved by the set's median ratio (dashed) and the median in each of 20 bins (dots). Right: histograms of log10 χ: Dolma train (gray), the set as is (dotted), the set shifted by its median ratio (solid, left) and also rescaled to train's sd (solid, right). When the shifted histogram lies on train's, the histograms hide the per-concept change the scatter shows.
Shuffle vs shape table: rank-shuffle share, shape share, Spearman ρ, Var(r), trend share, excess dispersion sd
Dpair = mean r² (concepts paired by id). Dmarg = the same after sorting each side, so it sees only the two histograms. Shape share = Dmarg / Dpair; rank-shuffle share = the rest. Var(r) splits into a trend part, (b − 1)² Var(ln χtrain) from the line fit of ln χset on ln χtrain, and the scatter around that line; the trend share is the part a slope can describe. Excess dispersion sd = √(Var(r) − the set's noise − train's noise), noise from split halves, in ln units; V defines train's noise (G40, G42).
Δ slope robustness: all docs, length-matched, garbled removed, count control
Bold: bias-corrected Δ (G45). Below it: raw Δ and its 95% basic bootstrap interval (G17). Each column applies one document choice to every set, V included. Length-matched: in each length bin, every set cut to the smallest count (G43). Garbled removed: docs whose mean token NLL under the encoder model is above V's 99th percentile dropped (G58). Count control: random drops to the garbled-removed count, 20 draws (G60). Count control minus all docs is what the smaller count does alone; garbled removed minus count control is what the flag does.
Top χ-mass gainers, losers and controls: 41 moved and 20 control concepts, names from Dolma vs rollouts, quizzed on both sides
Per set, the 10 concepts that gained and the 10 that lost the most χ mass (41 distinct, each tested with the set where it moved most), plus 20 controls matched in frequency. Each was named twice by Claude Opus 5.5, from 40 Dolma V windows and from 40 rollout windows, and each name was scored by Claude Sonnet 5.5 on held-out windows from both sides. Gap on Dolma = Dolma name's score − rollout name's score, on Dolma windows; gap on rollouts = the reverse, on rollout windows. Agree = both gaps ≤ 0.13, the 95th percentile of the same gap between two human corpora in Exp 1. Not scored = fewer than 90 of 100 windows answered on a side (G47-G53).
Name check, all 12 cells: gap, mean name score, share of Dolma names below 0.6, by group and class
Pooled rows count a concept drawn in both groups twice.
Mean score of each name, per cell
Share of Dolma names scoring below 0.6, per cell
Name gap vs rollout firing docs, with splits by docs (under 40 or 40+) and by χ below e⁻⁵ in rollouts
One dot per scored check entry; hover for both names. The dashed line marks 40 docs, below which the rollout name was written from every firing doc. A large gap at few docs can come from thin evidence as well as from a change of meaning, so the two cannot be separated in that range.
Splits: rollout docs under 40 or 40+
Splits: concept below e−5 in rollouts or above
Dolma name score vs rollout name score, one dot per concept
Below the diagonal: the Dolma name scored higher. Colors follow the class.
All 200 name-check entries: Dolma name and rollout name side by side, with scores and firing docs
Noise rerun: how stable classes and extreme lists are when 20% of docs are dropped (CG paper App. B.3)
Selection counts: concepts ranked per model, firing docs of the extreme lists, reused-name sources, classes without garbled docs
All 2,200 list entries: r, noise figures, firing docs and Dolma name, filter by model, list and class
Rollout names exist only for check entries, so this table holds Dolma names. r sd and the interval come from the noise rerun; "stays" is the share of reruns in which the concept keeps its class or list.
Missing concepts: rollouts vs Dolma
A concept is missing from a set when χ < e−5, under 0.7% of the average concept. "Dolma" means our sample of 39,949 docs. Names are not yet checked against text.
Most extreme missing concepts, per model
Top 10 by r = ln(χrollout / χtrain), among concepts firing in at least 50 docs where they are present. r = −∞: χrollout = 0.
In Dolma, missing from rollouts
In rollouts, missing from Dolma
Concepts missing per model, against held-out Dolma
Dashed line: the count from sampling alone, using held-out Dolma at the same 7,985 docs.
In Dolma, missing from rollouts
In rollouts, missing from Dolma
Themes of missing concepts, per model
Share of 80 randomly drawn concepts per model. Describes these lists only, with no comparison to concepts in general.
In Dolma, missing from rollouts
In rollouts, missing from Dolma
Details and checks, missing concepts
Methods and definitions, missing concepts: e⁻⁵ cutoff, list rules, random 80, 50 most extreme, 50-doc filter, naming, theme coding
Lists. Per model, all 65,536 concepts qualify, with no firing floor on the missing side. In Dolma, missing from rollouts: χtrain ≥ e−5 and χrollout < e−5. In rollouts, missing from Dolma: the reverse. Every concept fires somewhere in our Dolma sample, so missing means weak, not absent. Our sample holds at most about 41M of the 5.93T stage 1 tokens.
Per model and group. 80 random, unfiltered; 50 most extreme, unfiltered; 50 most extreme, filtered to at least 50 firing docs on the side where the concept is present. Most extreme uses r: lowest for concepts missing from rollouts, highest for concepts missing from Dolma.
Names. Claude Opus 5.5 from up to 40 windows where the concept fires, every firing doc if fewer. Names are reused when one exists from the same kind of text, and are not scored.
Themes. Opus writes the categories from the random draws' names without seeing model or group. Opus and Sonnet 5.5 then each assign every concept separately; shares use Opus. Design: exp2_rollout_gap/design.md G87-G94. Training data outside stage 1 is not in the reference, so stage 1 is the cleanest test of concepts missing from Dolma.
All 1,800 missing-concept entries: names, r, χ, firing docs, name source, filter by model, group and list
Theme definitions and shares with 95% intervals, per model and group; Opus vs Sonnet agreement (κ)
Theme robustness: shares on concepts both coders agreed on, and without concepts that held-out Dolma also marks missing
Each cell: main share → agreed only → without those concepts. The main result keeps every concept.
Missing-concept counts: list sizes, share of dictionary, held-out Dolma baseline, χ_rollout = 0, concepts passing the 50-doc filter
Garbled-text check: share of activation from garbled docs for concepts missing from Dolma
Each concept's share of its activation from flagged docs at the matched 7,985 docs. Medians over each list, against all firing concepts in that model. A list below "all firing concepts" draws less on garbled docs than a typical concept.
Naming counts: new and reused names, sources of reused names, refused names
Most covered concepts: rollouts vs Dolma
Concepts ranked by χ within one set: Dolma train (39,949 docs) or one model's rollouts (7,985 docs). Names are not yet checked against text.
Top 10 concepts by coverage, Dolma and a model
"Stays": share of 100 reruns, each dropping 20% of docs, in which the concept stays in the top 10.
Dolma train
Rollouts
Concepts never firing in a model's rollouts (χ = 0)
Every concept fires in Dolma train. Orange: fires in rollouts outside the 7,985 compared, so its 0 comes from which docs were compared.
Details and checks, coverage lists
Methods and definitions, coverage lists: top 10, χ = 0, bottom 10 above e⁻⁵, 100 reruns, outside-rollouts check, naming
Lists. Per set: top 10 by χ; every concept with χ = 0; bottom 10 by χ among χ ≥ e−5. Ties by concept id. Top and bottom 10 follow the CG paper (Sec. 4.2.1); concepts below e−5 are the missing-concepts experiment above.
Stability. 100 reruns per set, each keeping a random 80% of the same docs (CG paper App. B.3). A concept at χ = 0 cannot move in such reruns, since a subset of the docs cannot add firing, so χ = 0 is checked against the about 2,000 rollouts per model outside the compared docs.
Names. Claude Opus 5.5 from up to 40 windows where the concept fires: Dolma text for Dolma's lists and for χ = 0 concepts, the model's rollouts for its top and bottom 10. Names are reused when one exists from the same kind of text, and are not scored. Design: exp2_rollout_gap/design.md G95-G100.
Bottom 10 concepts by coverage above e⁻⁵, per set (unstable: about 0.5% stay over reruns)
These concepts sit just above the cutoff, so a different sample of docs picks different ones. Shown for completeness only.