Instructions to use timiiowolabi/muta-compress-20260920 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use timiiowolabi/muta-compress-20260920 with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf timiiowolabi/muta-compress-20260920:Q4_0 # Run inference directly in the terminal: llama cli -hf timiiowolabi/muta-compress-20260920:Q4_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf timiiowolabi/muta-compress-20260920:Q4_0 # Run inference directly in the terminal: llama cli -hf timiiowolabi/muta-compress-20260920:Q4_0
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf timiiowolabi/muta-compress-20260920:Q4_0 # Run inference directly in the terminal: ./llama-cli -hf timiiowolabi/muta-compress-20260920:Q4_0
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf timiiowolabi/muta-compress-20260920:Q4_0 # Run inference directly in the terminal: ./build/bin/llama-cli -hf timiiowolabi/muta-compress-20260920:Q4_0
Use Docker
docker model run hf.co/timiiowolabi/muta-compress-20260920:Q4_0
- LM Studio
- Jan
- vLLM
How to use timiiowolabi/muta-compress-20260920 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "timiiowolabi/muta-compress-20260920" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "timiiowolabi/muta-compress-20260920", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/timiiowolabi/muta-compress-20260920:Q4_0
- Ollama
How to use timiiowolabi/muta-compress-20260920 with Ollama:
ollama run hf.co/timiiowolabi/muta-compress-20260920:Q4_0
- Unsloth Desktop
- Pi
How to use timiiowolabi/muta-compress-20260920 with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf timiiowolabi/muta-compress-20260920:Q4_0
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "timiiowolabi/muta-compress-20260920:Q4_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use timiiowolabi/muta-compress-20260920 with Docker Model Runner:
docker model run hf.co/timiiowolabi/muta-compress-20260920:Q4_0
- Lemonade
How to use timiiowolabi/muta-compress-20260920 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull timiiowolabi/muta-compress-20260920:Q4_0
Run and chat with the model
lemonade run user.muta-compress-20260920-Q4_0
List all available models
lemonade list
- Hermes Agent
How to use timiiowolabi/muta-compress-20260920 with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf timiiowolabi/muta-compress-20260920:Q4_0
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default timiiowolabi/muta-compress-20260920:Q4_0
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use timiiowolabi/muta-compress-20260920 with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf timiiowolabi/muta-compress-20260920:Q4_0
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "timiiowolabi/muta-compress-20260920:Q4_0" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Muta Compress โ 2026-09-20 refinement campaign
Research artifact, not a finished product. This repository holds the checkpoints and GGUFs
produced by a compression-and-refinement campaign on the Muta STEM tutor (originally a LoRA
fine-tune of Qwen/Qwen2.5-1.5B-Instruct). It is honestly a mixed result: a real, measured
speed/memory gain and capability numbers that trend the right way but aren't individually
significant, judged answer quality that is level with (not better than) the model it replaces,
two missed targets, and one clean negative result (a tutoring-scaffolding probe). Read the
whole card before trusting a number.
Full write-up, every raw measurement, and the evidence trail: RESULTS.md's 2026-09-21 entry
and docs/compression-pipeline-results.md in the
Muta repository (bench/measurements/refine-20260920/).
Current best: refine-final/gguf/refine-qat100-Q4_0.gguf
A dense 26-layer Qwen2 model, width-pruned (FFN 8960 โ 7168 by measured neuron importance), verified-distilled from a Qwen2.5-7B-Instruct teacher, then quantization-aware trained toward pure Q4_0 for 100 of a planned 362 steps (a GPU-box outage stranded the rest โ see "Known limitations" below).
| Property | Value |
|---|---|
| Parameters | 1,051,201,024 (1.05 B) |
| Layers | 26 |
| Hidden size | 1536, FFN 7168 (pruned from 8960), vocab 32,000, tied embeddings |
| Quantization | pure Q4_0 |
| File size | 592,887,552 bytes |
| sha256 | 6e10045045eada66ba21533b987a725d1c7ab573adcd26024ecd3c078a04d3fc |
| llama.cpp build | b10175, scalar/SSSE3 CPU kernels |
Measured, on the scalar llama.cpp b10175 audit build, 4 threads, GCP audit boxes (raw
evidence: bench/measurements/refine-20260920/final/):
| Metric | Value | vs. dense parent (s2-26L-Q4_0) |
|---|---|---|
| ARC-Easy-50 (audit set) | 72 | 70 |
| ARC-Easy-500 (500 held-out items) | 73.4 % | 70.0 % |
| GSM8K-100 (greedy, exact final-number match) | 53 % | 49 % |
| Decode speed | 15.51 tok/s | 13.15 tok/s |
| Peak RSS | 705.7 MB | 809.9 MB |
Blind-judge dev S_total (30 held-out prompts, campaign scoring) |
73.86 / 74.45 (two independent judge batches) | 69.54 / 69.21 (same batches, same control) |
| Judges' acc, dev (30 prompts, raw, 0โ10 scale รท10) | 31.3 / 33.7 | 32.0 / 30.7 (same two batches) |
| Judges' acc, official ten (n = 10, noisy) | 35.0 / 32.0 | 41.0 / 45.0 (same two batches) |
Read the raw Judges' rows above before crediting this model with "better answers." This is
the campaign's row of record on S_total โ +4.3 to +5.2 points over the dense parent,
graded twice by independent judge batches to guard against grader-batch noise (both landed
within 0.6 points of each other) โ but the gain is not driven by judged answer quality.
The same dense-parent answers have been graded blind four times across this campaign's chain
(dev: 28.0, 31.0, 32.0, 30.7; official: 45.0, 44.0, 41.0, 45.0) โ a โ4-point dev spread for
identical answers, this rubric's own same-batch grader-noise floor. This model's own Judges'
scores (31.3, 33.7 dev; 35.0, 32.0 official) sit inside, or below, that same spread: judged
quality is level with the parent (dev) or worse (official ten). Decomposed into the scoring
formula's own components, only โ0.6โ1.5 of the โ4.3โ5.2-point S_total gain comes from
accuracy/efficiency; โ3.7 points โ the majority โ is the pre-registered effect of crossing
the 15 tok/s speed cap alone (the spec's own "+3.7" estimate, made before any training ran).
The three capability numbers in the table above (ARC-Easy-50/500, GSM8K-100) do move in this
model's favour, but at n = 50/500/100 none individually clears conventional statistical
significance on its own (ARC-Easy-500: z โ 1.2; GSM8K-100: z โ 0.6) โ three consistent
directions, not proof of a capability win. In short: this release is faster and smaller with
capability numbers that trend the right way but aren't individually significant, and with
judged answer quality that is not measurably better than (and on the noisy official ten, is
sometimes worse than) the model it replaces.
Two other exports exist in refine-final/gguf/ for comparison: refine-distilled-Q4_0.gguf
(the same checkpoint before QAT) and refine-qat100-R1i-Q4_0.gguf (the QAT checkpoint with an
imatrix pass added โ a same-batch loss on the held-out dev prompts but a gain on the small,
noisy 10-prompt official set; inconclusive, not adopted as the current best).
How to run it (llama.cpp)
# One-shot, single turn, no system prompt:
llama-cli -m refine-qat100-Q4_0.gguf --single-turn -p "A train travels 60 miles in 1.5 hours. What is its average speed?" -n 512
# Server, OpenAI-compatible endpoint:
llama-server -m refine-qat100-Q4_0.gguf -c 4096 -t 4
The GGUF carries its own ChatML chat template (<|im_start|>role\n...<|im_end|>); any
llama.cpp front end that reads embedded templates (llama-cli --single-turn, llama-server
with a client that requests /v1/chat/completions) will render prompts correctly without extra
flags. Recommended: -t 4 on a 4-core budget machine; the audit numbers above were measured at
exactly that thread count.
The mode switch โ read this before judging tutoring behaviour
Whether you supply a system prompt changes what this model does, by design (and by training data):
No system prompt (or any system prompt other than the one below) โ the model gives a complete, worked answer โ the behaviour trained into the large majority of the corpus (single-turn verified math/science rows carry no system prompt at all).
The exact tutor system prompt below โ the model is trained to attempt a scaffolding mode โ guide the student step by step, ask before telling, rather than handing over the answer immediately:
You are Muta, a patient tutor for mathematics and science. Work step by step, show each calculation, keep explanations clear and concise, state the final answer plainly, and stop when the question is answered. Guide the student step by step; ask before telling.
This campaign's own probe shows the scaffolding mode does NOT work yet. Fifty blind-graded
MathDial-test dialogues (first tutor turn, tutor system prompt) scored the same across every
checkpoint in this chain โ dense parent 3.24/10, refine-qat100 3.26/10,
refine-qat100-R1i 3.24/10 โ and all three models "tell the answer" and/or "state a falsehood"
on 33โ40 of 50 turns. In practice, with the tutor system prompt, expect the model to lecture
through a re-derivation of the answer, not to hold back and ask questions. The working
hypothesis (untested) is that the dialogue training rows were distilled from a 7B teacher whose
own instinct is to explain everything, at only a 0.6 sampling weight (~9 % of training tokens)
โ not enough to overrule that prior. If you need reliable scaffolding behaviour, do not rely on
this system prompt working as intended; treat the "no system prompt" complete-answer mode as
the one behaviour this release actually delivers.
Known limitations
- Arithmetic is still wrong roughly half the time on GSM8K-style problems (53 % exact-match on 100 held-out grade-school math word problems). This is an improvement over the dense parent (49 %), not a solved problem.
- All accuracy numbers involving "judges'" scores come from AI graders (multiple blind LLM graders per batch, shuffled labels, fixed rubric), not humans. The 10-prompt "official" set is small and noisy; treat it as a secondary signal, not the number of record.
- This is a research artifact from a time-boxed campaign, not a finished, validated product. QAT ran 100 of a planned 362 steps (a GPU-box outage stranded the rest, permanently โ the lost training state cannot be recovered). The stage-1 termination-gate pass rate (0.900) is not backed by a file in this repository; it is a value the campaign's own controller read off the now-unreachable training box before the outage.
- The tutoring-scaffolding mode does not work โ see "The mode switch" above. Do not present this model as an adaptive Socratic tutor without further work.
- ARC-Easy-50 carries roughly ยฑ7 points of binomial sampling noise at n = 50 โ treat the 500 item ARC-Easy-500 numbers as the more reliable read of that capability.
- Imatrix quantization (the
R1ivariant) is inconclusive on the evidence gathered โ it helps on one judge batch and hurts on the other; no imatrix variant is the current best. - Judged answer quality did NOT improve over the dense parent it replaces. This model's own
Judges' scores (31.3/33.7 dev, 35.0/32.0 official) are within this rubric's own same-batch
grader noise of the parent's (32.0/30.7 dev, 41.0/45.0 official) โ level at best, and lower on
the noisy official ten. The
S_totalgain reported above is driven mostly by decode speed (crossing the 15 tok/s cap contributes โ3.7 of the โ4.3โ5.2-point gain), not by better answers. Do not market this release on judged answer quality. - A post-hoc code review found real training-data defects after this model was already
delivered (full detail in the repository's
RESULTS.md, "Post-hoc code review"): a verifier false-"correct" path for math answers, a breadth-data gold rule that could accept a number already given in the question, three MCQ false-"correct" paths, breadth questions that were never checked against benchmark test sets, and one GSM8K test item that leaked into training via a MathDial dialogue. Measured, not estimated: re-checking the verifier against the actual 54,896 trained-on rows flipped 0.40 % of verdicts (222 rows), of which an estimated โ0.033 % (โ18 rows) were genuinely wrong answers the model trained on; a worst-case contamination check found 2 of 100 GSM8K-100 and 1 of 500 ARC-Easy-500 evaluation items are near-duplicates of training pool questions, which moves neither model's reported accuracy by more than 0.1 percentage points and leaves the reported gap between them unaffected. The โ25,475 orca breadth rows could not be independently re-measured (raw generations exist only on the unreachable GPU box); the original build-time hand-check bounds their error rate at โค โ10 % at 95 % confidence, no tighter. No number in this card changed as a result of this review, the code was fixed for future use, and this checkpoint was neither regenerated nor retrained โ the numbers above are exactly what this model, warts included, was trained on and measured against.
Repository contents
| Path | Contents |
|---|---|
step2-26L-dense/ |
An earlier chain step's dense 26-layer checkpoint (bf16) + Q4_0 GGUF โ the direct ancestor of this campaign's starting point, superseded by refine-final/ below. |
step3-26L-moe-b/ |
A Mixture-of-Experts conversion of the 26-layer model โ scored below the dense 26-layer model on every axis but ARC-Easy; a recorded negative result, not recommended for use. |
step5-qat-moe-b/ |
A quantization-aware-training pass on the MoE checkpoint above โ trained but never scored (superseded before evaluation); kept for provenance only. |
refine-final/gguf/ |
The current release. refine-qat100-Q4_0.gguf (recommended, see above), refine-distilled-Q4_0.gguf (pre-QAT), refine-qat100-R1i-Q4_0.gguf (QAT + imatrix, inconclusive). |
refine-final/hf-distilled/ |
The pre-QAT checkpoint in Hugging Face transformers format (bf16), for anyone who wants to continue training or requantize with a different recipe. |
refine-final/hf-qat100/ |
The QAT-step-100 checkpoint in transformers format (bf16 master weights under fake-quant simulation), the direct source of the recommended GGUF above. |
refine-final/gguf-other/ |
Intermediate f16 GGUF exports used to build the Q4_0/R1i files (kept for reproducibility, not recommended for direct use โ much larger, no accuracy benefit demonstrated over the Q4_0 export at this model size). |
| this file | Model card. |
The training corpus (verified single-turn rows, breadth top-up, regenerated misses, tutoring
dialogues) is not published in this repository or its companion dataset repo
(timiiowolabi/muta-distillation-data, which still holds only an earlier v1 snapshot) โ the
newly built rows for this campaign exist only on a GPU box that became unreachable before they
could be backed up. See RESULTS.md's 2026-09-21 entry for the full incident record.
License and data attribution
The model weights and code in this repository are released under Apache-2.0.
Training used teacher-generated completions verified against, or dialogues drawn from, the following datasets. Attribution recorded per source (the stricter of two stated licenses is used where a dataset states more than one):
| Dataset | License | Role |
|---|---|---|
| GSM8K | MIT | Gold answers for verification; grade-school math word problems |
| ARC (AI2 Reasoning Challenge, Easy + Challenge) | CC-BY-SA-4.0 | Gold answers for verification; multiple-choice science questions |
| QASC | CC-BY-4.0 | Gold answers for verification; multi-hop science QA |
| OpenR1-Math-220k | Apache-2.0 | Gold-verified competition mathematics |
| orca-math-word-problems-200k | MIT | Breadth generation source (gold-checked final answers) |
| OpenBookQA | undeclared on its Hugging Face card (unknown); the AllenAI GitHub repository is Apache-2.0 |
Breadth generation source (4,275 gold-checked rows) |
| MathDial | CC-BY-SA-4.0 (recorded as the stricter of its two stated licenses) | Tutoring-dialogue training rows (train split only; test split held out, never trained on) |
| ConvoLearn | MIT | Tutoring-dialogue training rows (top-rated half only) |
No weights or completions from held-out evaluation material (the 10 official judge prompts, the 30 dev-judge prompts, ARC-Easy/GSM8K test items, the MathDial test split, TutorMoments) were ever used in training.
- Downloads last month
- 113
4-bit