MicroMixer-4-10K-SmolTalk2 is a 9,666-parameter pure MLP-Mixer causal language model — no attention, no recurrence, no SSM — pretrained on SmolTalk2 conversation data (instead of the project's Discord-Dialogues baseline) and then fine-tuned with FMSP on 9,012 general-knowledge QA pairs.
This is the 10K member of the MicroMixer-4 (V87 Final) family: part of the project's dataset-efficiency comparison study — six parameter budgets × two architectures × two open pretraining corpora (UltraChat 200k and SmolTalk2), all fine-tuned with the identical P05 FMSP recipe at seed 42. Analysis.
The backbone is V87 Final, the project's champion architecture — a CCD-Mixer (Content-gated mixture of shared-weight Dilated convolutions) crowned overall champion of the 1M architecture census (V86), frozen as the final chassis and scaled to six parameter budgets. The 10K preset reproduces the champion recipe verbatim at its budget.
🏗️ Architecture
mermaid
1graph TD
2 A[Byte Input]--> B[Embed 256→16 NoPE]3 B --> C[CCD-Mixer Block × 2]4 C --> D[RMSNorm]5 D --> E[LM Head Tied with Embed]6 E --> F[Byte Output]78subgraph"CCD-Mixer Block"9 X[Input 16]--> U["Linear d→2d → split v, g"]10 U --> RP[Full RoPE on v AND g]11 RP --> M["Shared-weight dilated conv<br/>dilations 1·2·4·8, k=33"]12 M --> G["Per-position 4-way gate<br/>softmax(Linear_dil(x)/τ)"]13 G --> O["W_o(v ⊙ g) — zero-init"]14 O --> SW[SwiGLU Channel-Mix]15 SW --> RM[ReMixerLayer sidecar]16end1718style A fill:#007BFF,color:#fff19style F fill:#00D620,color:#fff20style G fill:#AE00FF,color:#fff21style M fill:#FF6600,color:#fff
Model Configuration
Parameter
Value
Hidden Dimension (d_model)
16
Number of Blocks
2
Token-Mix
GLCTokenMixCCD (content-gated mixture of shared-weight dilated causal conv)
Dilations
(1, 2, 4, 8) — one shared depthwise kernel, zero extra conv params
Depthwise Kernel Size
33
RoPE
Full RoPE on both v and g (V76 "RPG" pattern)
Channel-Mix
SwiGLU
Sidecar
ReMixerLayer per block (label_dim 16, pool_heads 4)
Max Sequence Length
1024
Vocabulary Size
256 (byte-level)
Position Encoding
RoPE inside token-mix only; no position embedding table
Normalization
RMSNorm (pre-norm)
Output Head
Tied with input embedding
Zero-Init
W_o, dil_gate, log_τ — silent at init
Core Components
┌──────────────────────────────────────────────────────────────┐
│ CCD-Mixer Block (×2) │
│ u = Linear(d → 2d)(x) │
│ v, g = u.chunk(2) │
│ v = RoPE(v) g = RoPE(g) ← full-RoPE (RPG) │
│ y_d = CausalDSConv(v, dilation=d) for d ∈ (1,2,4,8) │
│ └── ONE shared depthwise kernel │
│ w(t) = softmax(Linear_dil(x)_t / τ) ← per-position │
│ v = Σ_d w_d(t) · y_d(t) time-varying filter │
│ out = W_o(v ⊙ g) ← W_o zero-init │
│ then SwiGLU channel-mix + ReMixerLayer sidecar │
└──────────────────────────────────────────────────────────────┘
The token-mix is non-LTI (time-varying): the per-position gate remixes four dilated views of the same kernel at every byte, which is the mechanism that breaks the periodic-orbit collapse that pure LTI mixers fall into — without attention and without a position table.
🎯 Generation Examples
Questions the model was trained on (FMSP train set, 9,012 QA pairs — greedy decoding, repetition_penalty=1.2, no_repeat_ngram_size=4):
[Prompt] User: Who painted the Mona Lisa?
Assistant:
[Output] The the a stand the and the a stand the a stand the a stand the and the a stand the a stand the…
degenerate — collapses into a repeating token loop; no real answer
[Prompt] User: Who painted The Starry Night?
Assistant:
[Output] The the a stand the a stand the a stand the a stand the a stand the a stand the a stand the a s…
degenerate — collapses into a repeating token loop; no real answer
Questions the model has never seen and cannot answer (unanswerable probe — the correct behavior is to decline; the model's actual behavior is shown):
[Prompt] User: Who painted the Glimmering Frostberry?
Assistant:
[Output] The the a stand the a stand the a stand the a stand the a stand the a stand the a stand the a s…
degenerate — collapses into a repeating token loop on out-of-distribution input
[Prompt] User: Who composed the Symphony of Hollow Dawn?
Assistant:
[Output] The the the a starge and the a stand the stand the to the stand the a stand the stand the to th…
degenerate — collapses into a repeating token loop on out-of-distribution input
📊 Results
Pretraining (SmolTalk2, V76 recipe, 3 epochs)
Metric
1 ep
2 ep
3 ep
Val PPL
6.37
6.22
6.00
AdamW lr 3e-3 · WSD (warmup 500) · wd 0.01 · bs 16 · seq 1024 · seed 42 · plain CE on non-pad bytes.
Single-seed run (seed 42); the discord-pretrained cards report a 3-seed mean for Full-988 EM. ‡ where marked: degenerate-pass.
MicroMixer-4 SmolTalk2 family (same protocol, all sizes)
Size
Params
3ep Val PPL
Chatter d2
Full-988 EM
qrel echo/hijack
OOD hijack
1M
996,873
2.23
0.960
739
100.0 / 0.0
47.5%
500K
491,742
2.42
0.906
481
61.0 / 32.0
49.2%
300K
292,525
2.61
0.900
133
18.0 / 63.0
57.6%
100K
95,084
3.16
0.518
0
7.0 / 76.0
66.1%
50K
48,684
3.66
0.480
0
9.0 / 49.0
64.4%
10K
9,666
6.00
0.426
0
0.0 / 0.0
0.0%
Seed-42 single runs (pretrained on SmolTalk2; the discord-pretrained families report 3-seed EM means).
📚 Training Data
Pretraining: SmolTalk2 — 200K-cap sample of the smoltalk_smollm3_smol_magpie_ultra_no_think split (200K of 406,843; Apache 2.0), ~6-turn multi-turn conversations with no reasoning traces and system messages excluded, flattened to User:/Assistant: format, 1024-byte sequences, 3 epochs.
9,666 parameters; capacity is the binding constraint on every axis
Knows only what it memorized
Knowledge is limited to the 9,012 trained QA pairs + the pretraining-corpus distribution
Does not abstain
Unknown questions are answered with fabrication or degeneration, not refusal — see the examples above
Byte-level noise
256-vocab byte tokenizer; PPL not comparable to BPE baselines
Research use only
Architecture/scaling research artifact, not a production model
🧬 Context
This is the 10K SmolTalk2-pretrained arm of the dataset-efficiency comparison study (24 arms: {V87, V88} × {UltraChat, SmolTalk2} × six sizes) in the MicroMixer-4 project. Each arm swaps the Discord-Dialogues pretraining baseline for an open corpus (SmolTalk2) and reruns the identical P05 FMSP recipe at seed 42. Sibling repos: llaa33219/MicroMixer-4-{1M..10K}-{UltraChat,SmolTalk2} and llaa33219/MicroT-test1-{1M..10K}-{UltraChat,SmolTalk2}; the discord-pretrained baselines are llaa33219/MicroMixer-4-{1M..10K} and llaa33219/MicroT-test1-{1M..10K}. Full analysis: DATASET_COMPARISON_ANALYSIS.md.