MicroT-test1 Logo

MicroT-test1-10K-Discord-Dialogues

Parameters Architecture FMSP

Micro Transformer β€” Reference Baseline
Vanilla Attention β€’ RoPE β€’ Byte-Level β€’ Decoder-Only

GitHub


πŸ“‹ Overview

MicroT-test1-10K-Discord-Dialogues is a 9,808-parameter vanilla decoder-only transformer β€” multi-head causal self-attention with RoPE β€” pretrained on Discord conversation data and fine-tuned with FMSP on 9,012 general-knowledge QA pairs.

This is the 10K member of the MicroT-test1 family: the registered attention-based reference baseline of the MicroMixer-4 project. MicroMixer-4's chassis is a pure MLP-Mixer with no attention; MicroT-test1 exists so that "Mixer vs Transformer at the same parameter count" is a fair, controlled comparison. It is deliberately boring β€” the standard 2018–2020 transformer recipe parameterized down to the sub-1M regime: no flash attention, no SwiGLU, no ALiBi, no QKNorm, no sliding window, no MQA/GQA, no MoE.

At this size: the structural floor β€” 2 blocks and a tied embedding that alone is ~42% of the budget; generations are degenerate loops.


πŸ—οΈ Architecture

graph TD
    A[Byte Input] --> B[Embed 256β†’16]
    B --> C[Transformer Block Γ— 2]
    C --> D[RMSNorm]
    D --> E[LM Head Tied with Embed]
    E --> F[Byte Output]

    subgraph "Transformer Block (pre-norm)"
        X[Input 16] --> N1[RMSNorm]
        N1 --> AT["MHA 1 heads Γ— d_head 16<br/>RoPE ΞΈ=10000 on q,k Β· causal SDPA"]
        AT --> R1[+ residual]
        R1 --> N2[RMSNorm]
        N2 --> MLP["GELU MLP 16β†’56β†’16"]
        MLP --> R2[+ residual]
    end

    style A fill:#007BFF,color:#fff
    style F fill:#00D620,color:#fff
    style AT fill:#FF6600,color:#fff

Model Configuration

Parameter Value
Total Parameters9,808
Hidden Dimension (d_model)16
Attention Heads1 (d_head = 16 at every size)
Number of Blocks2
FFN Hidden56
Position EncodingRoPE ΞΈ=10000 on q/k only (non-persistent buffers)
AttentionCausal MHA via F.scaled_dot_product_attention(is_causal=True)
ActivationGELU
BiasesNone β€” no bias parameters anywhere
NormalizationRMSNorm (pre-norm)
Max Sequence Length1024
Vocabulary Size256 (byte-level)
Output HeadTied with input embedding

Core Components

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         Transformer Block (Γ—2)               β”‚
β”‚  h = h + MHA(RMSNorm(h))    # RoPE q/k, causalβ”‚
│  h = h + MLP(RMSNorm(h))    # GELU d→ffn→d   │
β”‚  no biases, no flash, no tricks β€” vanilla     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The d_head=16 contract is hard-asserted across all six sizes so that attention-head behavior is comparable at every budget and never confounds the memorization measurements.


🎯 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 a serst the a serst the a serst the a serst the a serst the the the the the the the th…

fails β€” degenerate repetition; no memorization at 10K (EM = 0)

[Prompt] User: Who painted The Starry Night?
Assistant:
[Output] The a serst and the a serst the a serst the a serst the a serst the the the the the the th…

fails β€” identical loop on every trained question

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 a serst the a serst the a serst the a serst the a serst the the the the the the the th…

degenerate β€” the model does not engage the question at all

[Prompt] User: Who composed the Symphony of Hollow Dawn?
Assistant:
[Output] The a serst the a serst the a serst the a serst the a serst the the the the the the the th…

degenerate β€” byte-identical loop regardless of input


πŸ“Š Results

Pretraining (Discord-Dialogues 200K, V76 recipe, 3 epochs)

Metric 1 ep 2 ep 3 ep
Val PPL 5.76 5.62 5.48

Identical recipe to MicroMixer-4: AdamW lr 3e-3 Β· WSD (warmup 500) Β· wd 0.01 Β· bs 16 Β· seq 1024 Β· seed 42.

FMSP fine-tuning (small-qa-en-10k, P05 recipe, 10 epochs)

Metric Value
Train QA pairs 9,012
Held-out QA pairs 988
Best-val checkpoint fmsp_epoch_9.safetensors (val loss 1.7520)
freeze_fraction 0.05 (true freeze)
Loss answer-only CE + probe KL (weight 0.5)

Evaluation battery (post-FMSP)

Axis MicroT-test1-10K MicroMixer-4-10K (Mixer, same budget)
3ep Val PPL 5.48 5.49
Chatter fluency d2 (cycles) 0.463 (7/9) 0.359 (7/9)
Full-988 EM (3-seed mean) 0.0 (0/0/0) 0.0 (0/0/0)
Q-relevance echo / hijack % 0.0 / 0.0 ‑ 0.0 / 0.0 ‑
OOD hijack % 0.0% ‑ 0.0% ‑
Unanswerable fabrication /18 0 ‑ 0 ‑
Discord PPL (forgetting) 6.79 6.70

‑ where marked: degenerate-pass β€” the model does not engage the question at all, so there is nothing to hijack or fabricate with. Not boundary discipline.

MicroT-test1 family (same protocol, all sizes)

Size Params 3ep Val PPL Chatter d2 Full-988 EM qrel echo/hijack OOD hijack
1M 996,736 3.08 0.838 653.3 94.0 / 5.0 8.5%
500K 498,528 3.20 0.738 396.7 73.0 / 16.0 11.9%
300K 297,680 3.39 0.840 42.0 24.0 / 54.0 18.6%
100K 97,872 3.77 0.582 0.0 8.0 / 74.0 67.8%
50K 49,888 4.05 0.553 0.0 4.0 / 38.0 23.7%
10K 9,808 5.48 0.463 0.0 0.0 / 0.0 ‑ 0.0% ‑

πŸ“š Training Data

  1. Pretraining: Discord-Dialogues β€” 200K multi-turn Discord conversations, User:/Assistant: format, 1024-byte sequences, 3 epochs.
  2. FMSP fine-tuning: small-qa-en-10k β€” 10K general-knowledge QA pairs, split 9,012 train / 988 held-out. 10 epochs under the P05 recipe (5% of parameters frozen-true, answer-only CE, probe-KL 0.5).

πŸ”§ Usage

Files in this repository

  • fmsp_epoch_{0..9}.safetensors β€” per-epoch FMSP weights (pickle-free safetensors). fmsp_epoch_9.safetensors is the best-val checkpoint for this size.

Load and generate (local clone)

import torch
from safetensors.torch import load_file
from src.model_v88_transformer import MicroMixerV88Transformer, v88_transformer_10k
from src.fmsp import attach_adapter
from src.tokenizer import ByteTokenizer

# Clone the code repository first:
# git clone https://github.com/llaa33219/MicroMixer-4.git && cd MicroMixer-4

cfg = v88_transformer_10k()
model = MicroMixerV88Transformer(cfg)
attach_adapter(model, d_model=cfg.d_model, rank=16)   # FMSP adapter (trained weights are in the file)
model.load_state_dict(load_file("fmsp_epoch_9.safetensors"), strict=True)
model.eval()

tok = ByteTokenizer()
prompt = "User: Who painted the Mona Lisa?\n\nAssistant: "
ids = tok.encode(prompt)
if ids and ids[-1] == tok.eos_token_id:
    ids = ids[:-1]                       # ByteTokenizer appends EOS; the prompt must end open
ids = torch.tensor([ids])
with torch.no_grad():
    out = model.generate(
        ids, max_new_tokens=200,
        temperature=0.0,                 # greedy β€” used for all reported numbers
        repetition_penalty=1.2,
        no_repeat_ngram_size=4,
        eos_token_id=tok.eos_token_id,
    )
print(tok.decode(out[0].tolist()))

Load from Hugging Face Hub (no clone of the weights needed)

import torch
from huggingface_hub import hf_hub_download
from safetensors.torch import load_file
from src.model_v88_transformer import MicroMixerV88Transformer, v88_transformer_10k
from src.fmsp import attach_adapter

REPO = "llaa33219/MicroT-test1-10K"

cfg = v88_transformer_10k()
model = MicroMixerV88Transformer(cfg)
attach_adapter(model, d_model=cfg.d_model, rank=16)
model.load_state_dict(
    load_file(hf_hub_download(REPO, "fmsp_epoch_9.safetensors")), strict=True)
model.eval()
# ... generate as above

⚠️ Limitations

Limitation Description
Micro parameters 9,808 parameters; capacity is the binding constraint on every axis
Reference baseline, not a product Exists to score the Mixer against attention at matched budget
Knows only what it memorized Knowledge is limited to the 9,012 trained QA pairs + Discord pretraining 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

MicroT-test1 (V88) is the transformer control group of the MicroMixer-4 project β€” vanilla attention at the same six budgets as the V87 CCD-Mixer (MicroMixer-4 family), trained and evaluated under byte-identical recipes. The registered verdict: attention is the better raw LM and raw memorizer at β‰₯500K and holds boundary discipline one halving further down; the Mixer's defensible win is anti-collapse chatter fluency at the top end (family-record 0.912 at 500K). Full comparison: V88_README.md in the repository.


GitHub

Part of the MicroMixer-4 research project β€” V88 transformer reference (MicroT-test1), 10K preset

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Datasets used to train llaa33219/MicroT-test1-10K-Discord-Dialogues

Collection including llaa33219/MicroT-test1-10K-Discord-Dialogues