Views
No views yet
Read this before using it. This model has a 582-token vocabulary and was trained on 21MB of templated coding-assistant dialogue. It produces fluent short replies in that one register and knows nothing else. It has no world knowledge, cannot follow instructions it has not seen phrased, and cannot produce a word outside its vocabulary. It is a research artifact demonstrating that this architecture trains and generates — not an assistant.
you: hello
model: Hello. Tell me what you need and I will do my best to help.
you: can you help me with tests
model: Understood. Yes. I can add unit tests and integration tests based on your code.
you: why is my script failing
model: Check the traceback first, then we can isolate the failing function.
you: what is your name
model: I am your local coding assistant for this project.
you: write a unit test for login
model: Okay. I can do that. Share expected behavior and edge cases for login.MiMoMixModel from mimomix_core.py, a decoder-only transformer
combining:LLLG at 4 layers, 64-token window), each head carrying a learnable
attention sink so it can place mass in a null slot instead of being forced to
normalise over real tokens.| property | value |
|---|---|
| parameters | 3,076,521 total / 1,292,829 active per token |
| layers | 4 (LLLG), hidden 192, 6 heads, 2 KV heads |
| experts | 8 routed, top-2, plus 1 shared |
| context | 128 tokens |
| vocabulary | 582 word types |
| measurement | value |
|---|---|
| validation loss | 0.2351 (0.339 bits/token) |
| perplexity | 1.27 (uniform baseline 6.37) |
| held-out vocabulary coverage | 1.0000 |
| MTP acceptance length | 2.429 — 7 trunk forwards vs 17 for plain greedy |
| speculative output identical to greedy | true |
| MoE routing entropy | 1.000 normalised, 0 starved experts |
| serving throughput | 55–75 tokens/second, CPU |
talk_results.json.databases/llm_chat.db from the Supermix repository — 120,000 (user, response)
pairs of synthetic coding-assistant dialogue, 21.0M characters, 4.62M word
tokens, and 292 distinct word types. Prompt tokens are masked out of the loss
so the model learns to produce replies rather than echo the user.transformers model, so the modules ship with
the weights:1pip install torch huggingface_hub
2python example.py1import torch, mimomix_decoding as decoding, mimomix_text as text_utils
2from mimomix_core import MiMoMixConfig, MiMoMixModel
3
4payload = torch.load("v57_talk_v2.pt", map_location="cpu", weights_only=False)
5model = MiMoMixModel(MiMoMixConfig(**payload["config"]))
6model.load_state_dict(payload["state_dict"])
7model.eval()
8tokenizer = text_utils.WordTokenizer.from_dict(payload["tokenizer"])
9
10ids, _ = tokenizer.encode_turn("can you help me with tests", None)
11out = decoding.speculative_generate(
12 model, torch.tensor([ids]), max_new_tokens=48, eos_token_id=text_utils.EOS
13)
14print(tokenizer.decode(out.new_tokens[0].tolist()).strip())speculative_generate uses the MTP depths as a draft model. For greedy decoding
this is provably token-identical to one-at-a-time generation, so it only changes
cost — swap in decoding.greedy_generate and compare. For varied output, sample
from the logits yourself; the bundled decoder is greedy by design, because that
is what makes the equivalence guarantee checkable.<unk>. Check with tokenizer.unknown_rate(text).docs/V57_TALKING_MIMOMIX.md and docs/V53_MIMOMIX_ARCHITECTURE.md
in the source repository.