CoolFace
Datasetpublic

juiceb0xc0de/TinyMixtral-4x248M-MoE-atlas

juiceb0xc0de/TinyMixtral-4x248M-MoE-atlas A brain atlas for Isotonic/TinyMixtral-4x248M-MoE, a 12-layer sparse Mixtral-architecture MoE with four experts and top-2 routing. This is not a chat dataset or a benchmark - it is an internal-mechanics map built by running activations through a corpus of prompts and scoring what each layer, component, head, expert, and feature direction is doing. If you want to know how four experts relate to one another inside a small trained MoE… See the full description on the dataset page: https://huggingface.co/datasets/juiceb0xc0de/TinyMixtral-4x248M-MoE-atlas.

sourceHugging Faceapache-2.0updated 12d agoView on Hugging Face
0likes865downloads
Dataset Card

JuiceBoxC0de-02

juiceb0xc0de/TinyMixtral-4x248M-MoE-atlas

A brain atlas for [Isotonic/TinyMixtral-4x248M-MoE](https://huggingface.co/Isotonic/TinyMixtral-4x248M-MoE), a 12-layer sparse Mixtral-architecture MoE with four experts and top-2 routing. This is not a chat dataset or a benchmark - it is an internal-mechanics map built by running activations through a corpus of prompts and scoring what each layer, component, head, expert, and feature direction is doing.

If you want to know how four experts relate to one another inside a small trained MoE, whether a router balances load and influence the same way, or where a sparse model actually keeps its behaviorally distinctive directions, this is the dataset.

What was run

  • —Model: Isotonic/TinyMixtral-4x248M-MoE
  • —Corpus: 8,965 diverse prompts across 17 buckets
  • —Layers probed: all 12, every one of them an MoE block
  • —Passes: activation census, feature taxonomy, per-head analysis, OV-circuit SVD, logit lens, coactivation, code-analysis, two named binary contrasts, Sub-Zero surgery with capability fence
  • —Contrasts: code_vs_natural_language and authentic_vs_corporate, both across all 12 layers

Architecture notes

PropertyValue
Hidden size1,024
Layers12
Query heads32
KV heads8
GQA group size4 query heads per KV head
Head dimension32
Experts per layer4, all routed
Experts active per token2
Expert width4,096
Virtual expert bank16,384
Router logits4-wide, indexed as its own component

Every layer is an MoE block - there is no dense/sparse alternation and there are no always-on shared experts. MoE blocks are represented as a stable 16,384-coordinate virtual bank where expert e occupies e*4096, preserving expert identity across layers. Selected expert blocks hold their hidden activation multiplied by the normalized routing weight; unselected blocks are zero. That fixed layout is what makes per-expert and cross-expert questions answerable directly from the tables.

The census recovers the routing sparsity exactly: mean activation rate across routed coordinates is 0.4986 against the 0.500 that top-2-of-4 predicts.

What the tables contain

TableRowsWhat it gives you
binary_contrast_features479,328two contrasts × 239,664 features
features239,664feature taxonomy + activation stats per (layer, component, feature_idx)
compliance_behaviour_features239,664legacy mirror of the authentic-vs-corporate contrast
coactivation5,505feature-pair correlations
code_analysis2,208entangled vs selective role labels
logit_lens1,536promoted/suppressed output tokens per feature
per_head960per-head selectivity across 12 layers
compliance_behaviour_per_head960legacy mirror of per-head contrast
ov_circuits384SVD over W_V @ W_O plus QK/FC spectral metrics
subzero_capability10521 DAS axes × 5 capability domains
subzero_svs59retained bouncer singular vectors per projection
layers12layer metadata and completion flags
subzero_layer12classifier accuracy, refusal angle, and SV summary per layer

Key findings

1. The four experts still share a coordinate frame

The most informative thing in this atlas is not any single expert - it is how the experts relate to each other.

Splitting MLP feature-pair correlations three ways:

Pair typePairsMean correlation
Cross-expert, matched coordinate440.773
Cross-expert, unmatched coordinate280.170
Within a single expert1,3770.058

Coordinate i of one expert tracks coordinate i of another expert at 0.773. Two coordinates inside the same expert track each other at 0.058.

That is a shared coordinate frame. The experts have not reorganized into four independent bases - index 300 means roughly the same thing in expert 0 as it does in expert 1, while index 300 and index 900 inside expert 0 mean nothing in particular to each other.

The most common reason a model looks like this is upcycling: initializing every expert as a copy of one dense FFN, then training the router and the copies together. The atlas cannot confirm a training recipe, and this is a correlational result on a selected subset of pairs. But a shared frame across experts with no shared frame inside them is what a common initialization leaves behind, and it is worth knowing before you treat these four experts as four independent modules.

2. One expert has drifted furthest from that frame

Pooled across all 12 layers:

ExpertActivation rateDead coordsMean abs activationMean F-stat
00.49899.8%0.052114.6
10.497812.9%0.093016.3
20.500719.2%0.007520.6
30.49687.8%0.055414.5

Expert 2 is the outlier on every axis that is not load. It carries the most dead coordinates, and its mean absolute activation is roughly 7 to 12× smaller than the other three. It also holds the largest all_shared population and the weakest code-vs-language separation of the four (mean F-stat 12.6 against expert 1's 26.1).

It is also absent from the cross-expert correlation structure entirely. Every correlated cross-expert pair in the atlas is drawn from experts 0, 1, and 3 - pairings 0-1, 1-3, and 3-0. Expert 2 appears in none of them.

So three experts remain mutually aligned and one has moved away. The ordering holds at both ends of the network: ranked by dead coordinates, expert 2 is worst and expert 3 is best in the early layers (24.6% vs 8.9%) and again in the late layers (13.8% vs 6.7%). That consistency across depth is what separates a real difference from noise.

Every expert gets denser with depth, which is the general pattern here - idle capacity concentrates early.

3. The router balances how often each expert is used, not how much it matters

Expert selection is close to perfectly uniform. Activation rates sit between 0.4968 and 0.5007, and per-layer the spread never exceeds 0.489 to 0.507. For top-2-of-4 routing that is about as even as load balancing gets.

Routing weight is a different story. Mean routing weight per expert, within a single layer:

LayerExpert 0Expert 1Expert 2Expert 3
00.2820.1000.3140.304
50.1390.3870.3090.166
110.0970.3280.1760.399

At layer 11 the favoured expert receives roughly 4× the weight mass of the least favoured. The four coordinates average to 0.25 by construction, since routing weights are normalized, so only the spread is informative - and the spread is large and changes direction from layer to layer.

Even selection, uneven influence. A load-balance metric alone would call this router perfectly balanced and miss it.

4. The router is the most discriminative component and the most entangled one

ComponentMean F-statActivation rateDead coords
router90.11.0000.0%
attn33.10.49522.1%
v30.70.50420.0%
k25.70.51136.7%
heads25.60.50619.4%
q25.50.49737.0%
mlp16.50.49912.4%

The router carries a mean F-stat 2.7× the next component, never goes idle, and has no dead coordinates at all. Only 48 coordinates in the whole model, and they are the most prompt-discriminative directions in it.

It is also the least separable. Code-analysis labels split directions into selective (focused job) and entangled (mixed with other tasks), and the router is the only component with no selective directions whatsoever:

ComponentSelectiveEntangled
mlp86.4%13.6%
heads70.6%29.4%
attn69.2%30.8%
q66.9%33.1%
k64.7%35.3%
v63.9%36.1%
router0.0%100.0%

Both facts describe the same object. A router has to read the whole residual stream to decide where a token goes, so it is maximally informative and maximally mixed at the same time. Entanglement there is the component doing its job. What it implies practically is that routing directions are the wrong place to attempt clean single-behavior edits.

There is one more thing the router tells you. On the two contrasts it scores mean F-stat 40.3 for code-vs-language against 13.5 for authentic-vs-corporate - three times more responsive to what kind of content it is looking at than to what register that content is written in. This router is making a domain decision, not a style decision.

5. The behaviorally distinctive directions live in attention, not in the experts

Running both contrasts against every component:

Componentcode F-statauthentic F-statcode maxauthentic max
k74.660.91,006914
q67.462.71,056874
attn47.160.9973835
v46.754.18051,036
heads42.452.61,091832
mlp17.420.7730641

The expert bank is last on both contrasts, at roughly a quarter of the query/key F-stats. Every one of the ten strongest code separators sits in q, k, attn, or heads, and so do nine of the ten strongest style separators.

The sparse machinery holds most of the parameters. The attention machinery holds most of the distinctions. If you are looking for behavior-carrying directions in this model, the experts are not where they are concentrated.

6. Both contrasts peak early-middle and decay, with near-perfect balance

Layercode F-statauthentic F-stat
013.423.6
332.938.7
433.636.2
628.624.8
923.520.6
1120.626.1

Style separation peaks at layer 3, content separation one layer later at 4, and both fall away through the back half before a small lift at the output layer. The model resolves both questions early and stops re-representing them.

Neither contrast is lopsided. Code-leaning coordinates number 116,776 against 117,252 natural-language-leaning; authentic-leaning 118,110 against 117,455 corporate-leaning. Both axes are represented symmetrically rather than one polarity dominating.

7. The style axis rotates toward orthogonality with depth

The Sub-Zero pass records the angle between the compliance direction and the refusal direction per layer. It moves monotonically:

Layer024681011
Angle (deg)128.6122.8118.9105.299.796.495.7

It starts strongly obtuse and converges toward 90° by the output - a clean, monotonic 33-degree rotation across twelve layers, with no reversals.

Classifier accuracy on the style contrast climbs alongside it, from 0.953 at layer 0 to a perfect 1.000 at layers 8, 9, and 10. The style-carrying subspace is also densest there: layers 6 and 7 hold 10 compliance singular vectors each and layer 9 holds 9, against 0 to 4 everywhere else.

Read together, the middle-late band is where this model's register information is both most separable and most concentrated.

8. Attention becomes induction-heavy toward the output

LayerInduction scoreOV spectral concentrationOV effective rank
00.3310.2149.9
30.6350.19711.1
60.7470.14814.0
90.7330.15914.5
110.8900.19511.8

Induction rises steadily with depth and peaks at the final layer. The four strongest induction heads in the model all sit in layer 11, topping out at head 19 with 1.538, and three of those four share KV head 4 - the copy machinery is concentrated in one GQA group at the exit.

Model-wide, OV effective rank averages 12.7 out of a 32-dimensional head, or 40% of available rank, while the QK path runs far tighter at 4.9 of 32, about 15%. Routing is sharply concentrated; the value transform is not. Effective rank does not transfer across architectures without normalizing by head dimension, so treat these as fractions rather than raw numbers.

9. GQA groups carry near-duplicate signal

Query heads cluster into groups of four sharing one KV pair. In the heads component a feature index is head*32 + d, so a pair offset of 32, 64, or 96 is the same within-head dimension one, two, or three heads over - still inside the group.

OffsetPairsMean correlation
321,2200.896
647700.891
963890.896

Grouping the whole heads coactivation table the same way gives 2,400 same-group pairs at a mean correlation of 0.882, and zero pairs crossing a group boundary. No pair anywhere exceeds 0.999, so this is not literal duplication in the capture.

Four query heads reading one KV pair should correlate - that is what GQA is for. At 0.88 across matched coordinates, though, the four heads in a group are closer to one wide head than to four independent ones. heads is by a wide margin the most internally correlated component in the model; the next is q at 0.269 and mlp sits at 0.082. If you are looking for head-merging headroom, the group interior is where it lives.

10. The logit lens is head-driven and unusually legible

ComponentMean F-statMax F-stat
heads96.0160.7
attn91.2153.4
mlp71.3130.6

Attention paths outrank the expert bank here too, and the top features are cleanly interpretable rather than diffuse:

  • —Layer 11 heads 685 promotes ,", ", .", ?" - a closing-quotation feature
  • —Layer 7 heads 285 promotes Hollywood, movies, NBA, documentary, Films - entertainment and sport
  • —Layer 10 heads 112 promotes who, femin, LGBT, whom, members, women - people and identity reference

Signal concentrates in layers 7 and 11 rather than at the embedding. That is the pattern you want from a logit lens: coherent token families attached to specific late-layer directions, which makes these features directly usable as steering or probing targets.

11. Surgical damage is low across the board, on limited coverage

21 DAS axes tested against five capability domains, 105 rows:

DomainPass rateMean damageMax damage
code71.4%0.0390.233
factual71.4%0.0310.077
math71.4%0.0410.300
multilingual71.4%0.0430.235
reasoning71.4%0.0260.142

The pass rate is identical across domains because exactly six axes fail, and each fails in all five at once. There is no axis here that breaks math while sparing code.

Worth keeping in proportion: the worst single result in this atlas is 0.300 nats/token, and the 15 surviving axes average 0.024 with a maximum of 0.082. Even the failures are small in absolute terms - they fail relative to the fence, not catastrophically.

All six failures are down_proj, and layer 0 holds the two worst. The two router_proj axes both pass in every domain.

That said, this is the thinnest pass in the atlas and its coverage is partial - see the caveats before drawing conclusions about overall editability.

What Sub-Zero is measuring

The Sub-Zero pass is not a generic "find all important directions" sweep. It looks for directions that separate authentic style from corporate style, then uses DAS rotation and a capability fence to check whether removing those directions damages code, math, reasoning, factual, or multilingual ability. The rows in subzero_capability are domain-by-domain damage scores for those contrast candidate axes, not a census of every load-bearing direction in the model.

Important caveats

  • —Sub-Zero coverage is partial, and this is the biggest limitation of the atlas. Only down_proj and router_proj were probed. Mixtral expert FFNs name their projections w1/w2/w3, and only the w2 equivalent was matched - the gate and up projections of every expert went unprobed. That leaves 21 tested axes and 59 retained singular vectors. Finding 11 describes the axes that were tested, and is not a statement about the editability of the model as a whole.
  • —`coactivation` stores a selected subset of feature pairs, not a full census. The comparisons in findings 1 and 9 are relative differences within that subset. They are meaningful as contrasts; they are not population means.
  • —Upcycling is inferred, not measured. Finding 1 reports a shared coordinate frame across experts. That is an observation about the trained weights. The training recipe that produced it is outside what an activation atlas can see.
  • —Routed coordinates are zero when their expert is not selected, and the census averages over all 8,965 prompts. With top-2-of-4 routing the effect is mild - predicted 0.500 against observed 0.4986 - but per-expert statistics are per-token descriptions rather than per-parameter capability measures.
  • —No domain-specific features were resolved. The taxonomy returns zero specific_* directions across all 239,664 features. The corpus buckets are general-purpose categories, and a 248M-scale model has limited room to build dedicated detectors for them. Answering whether this model has specialized directions needs a corpus split along axes it was actually trained to distinguish.
  • —Coactivation buckets describe the prompt mix. The dominant buckets come out business (14.6%), humor (9.6%), and introspection (7.4%), with 29.4% uncategorized. Those proportions reflect the corpus, not the model's priorities.
  • —*The `compliance_behaviour_ tables are compatibility mirrors** of the labelled authenticvscorporate contrast. Their fixed historical column mapping is recorded in manifest.json. Use binarycontrastfeatures` when label-explicit semantics matter.
  • —No SAE features. The sae_features table exists but is empty for this run.
  • —Effective rank is not comparable across model families without normalizing by head dimension. This model's heads are 32-dimensional.
  • —The GQA and cross-expert results are correlational, not causal. High correlation is a strong pruning or merging signal, not proof that removal is free. That needs a fenced ablation run.
  • —No downstream benchmark is implied. The atlas describes what the tensors do on this corpus, not whether the model is good at your task.

How to use

atlas.sqlite is the primary query surface. PRAGMA integrity_check returns ok with zero foreign-key violations and zero orphaned feature, contrast, compliance, or logit rows.

python
import sqlite3
import pandas as pd

conn = sqlite3.connect("atlas.sqlite")

# how different did the four experts actually become?
df = pd.read_sql_query("""
    SELECT feature_idx / 4096 AS expert,
           AVG(activation_rate)  AS rate,
           AVG(ABS(mean_act))    AS abs_activation,
           ROUND(100.0 * SUM(taxonomy_class = 'non_activated') / COUNT(*), 1) AS pct_dead
    FROM features
    WHERE component = 'mlp'
    GROUP BY expert
    ORDER BY expert
""", conn)

The per-layer JSON under layers/, the pooled summaries under cross_layer/, and the coordinate layout in moe_layout.json mirror the same data if you would rather not open the database.

sql
-- do the experts still share one coordinate frame?
SELECT CASE
         WHEN feature_a/4096 = feature_b/4096            THEN 'within_expert'
         WHEN ABS(feature_a-feature_b) % 4096 = 0        THEN 'cross_expert_matched_coord'
         ELSE 'cross_expert_other'
       END AS pair_type,
       COUNT(*) AS pairs,
       ROUND(AVG(correlation), 3) AS mean_corr
FROM coactivation
WHERE component = 'mlp'
GROUP BY pair_type;

License

Apache 2.0, matching the source model.

Contact / more

  • —Model: https://huggingface.co/Isotonic/TinyMixtral-4x248M-MoE
  • —Atlas code: https://github.com/JuiceB0xC0de/qwip_atlas
  • —Follow: https://huggingface.co/juiceb0xc0de