Instructions to use TrevorJS/MiMo-V2.6-Flash-RL-GGUF 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 TrevorJS/MiMo-V2.6-Flash-RL-GGUF 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 TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0 # Run inference directly in the terminal: llama cli -hf TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0 # Run inference directly in the terminal: llama cli -hf TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_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 TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0 # Run inference directly in the terminal: ./llama-cli -hf TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_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 TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0 # Run inference directly in the terminal: ./build/bin/llama-cli -hf TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0
Use Docker
docker model run hf.co/TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0
- LM Studio
- Jan
- vLLM
How to use TrevorJS/MiMo-V2.6-Flash-RL-GGUF with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "TrevorJS/MiMo-V2.6-Flash-RL-GGUF" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "TrevorJS/MiMo-V2.6-Flash-RL-GGUF", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0
- Ollama
How to use TrevorJS/MiMo-V2.6-Flash-RL-GGUF with Ollama:
ollama run hf.co/TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0
- Unsloth Desktop
- Pi
How to use TrevorJS/MiMo-V2.6-Flash-RL-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_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": "TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use TrevorJS/MiMo-V2.6-Flash-RL-GGUF with Docker Model Runner:
docker model run hf.co/TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0
- Lemonade
How to use TrevorJS/MiMo-V2.6-Flash-RL-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0
Run and chat with the model
lemonade run user.MiMo-V2.6-Flash-RL-GGUF-Q8_0
List all available models
lemonade list
- Hermes Agent
How to use TrevorJS/MiMo-V2.6-Flash-RL-GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_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 TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use TrevorJS/MiMo-V2.6-Flash-RL-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_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 "TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_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"
Install from WinGet (Windows)
winget install llama.cpp
# Start a local OpenAI-compatible server with a web UI:
llama serve -hf TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0# Run inference directly in the terminal:
llama cli -hf TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0Use 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 TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0# Run inference directly in the terminal:
./llama-cli -hf TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0Build 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 TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0# Run inference directly in the terminal:
./build/bin/llama-cli -hf TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0Use Docker
docker model run hf.co/TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0MiMo-V2.6-Flash-RL GGUF for a single DGX Spark
An imatrix-calibrated IQ2 build of
XiaomiMiMo/MiMo-V2.6-Flash-RL
(309B total / 15B active MoE, 1M context) that fits and runs on one DGX Spark
(GB10, 128 GB unified memory), plus a GGUF of Xiaomi's DFlash drafter.
Converted from snapshot 3b38d063.
This is v2.1. It replaces the first upload (v1), which was 22% slower at decode and scored lower on GSM8K; see Changes from v1.
Files
| file | size | what |
|---|---|---|
MiMo-V2.6-Flash-RL-IQ2_XS_M-v2.1-*.gguf |
91.9 GiB, 10 shards | the model; load the first shard |
MiMo-V2.6-Flash-RL-DFlash-Q8_0.gguf |
2.1 GiB | DFlash speculative drafter (see DFlash) |
recipe-iq2_xs_m-v2.1.txt |
--tensor-type-file used with llama-quantize |
Text only. The vision and audio encoders convert separately (mmproj) and are not included.
Measured on a DGX Spark (GB10)
Speed
llama-bench, -fa 1 -ngl 99:
| test | -ub 512 (default) |
-ub 2048 |
-ub 4096 |
|---|---|---|---|
| pp2048 | 421.7 | 733.5 | 730.0 |
| pp8192 | 418.6 | 725.1 | 799.5 |
| pp2048 at 8K depth | 719.3 | ||
| tg32 | 32.1 |
Pass -ub 2048. The default micro-batch of 512 leaves ~45% of prefill on
the table: at 512 each of the 256 experts sees too few tokens per matmul.
Server, 512-token greedy generations, thinking off:
| config | code | reasoning | prose |
|---|---|---|---|
| no draft | 30.6 | 30.7 | 30.8 |
DFlash, 5 drafted, p_min 0.7 |
42.9 | 38.7 | 26.9 |
DFlash helps code (+40%) and reasoning (+26%) and costs prose about 13%, where the drafter is rarely right. For prose-heavy use, run without it.
A 5.5K-token prompt at -ub 2048: prefill 671 t/s without the drafter,
656 t/s with it at -b 8192 (647 at -b 2048); decode on the reply 29 vs
about 33 t/s. The drafter only reads the prompt's last 1024 positions, so
only those are fed to it; a larger -b means fewer feeds per prompt.
Quality
GSM8K, 500 items, greedy, zero-shot, thinking off. The items and prompt length are matched to the harness used for benthecarman/MiMo-V2.6-Flash-RL-exl3 (the same 500 test items, prompts totalling the same 49,205 tokens), so the columns are comparable:
| build | GSM8K |
|---|---|
| FP8 reference, unquantized (from the EXL3 card) | 96.4% |
| EXL3 2.36 bpw (from the EXL3 card) | 95.8% |
| this build (v2.1) | 95.6% (478/500) |
| v1 of this repo | 95.0% |
Perplexity on wiki.test.raw (full file, -c 512): 5.7225 ยฑ 0.034, which is
+11.2% over the BF16 reference of 5.1455 reported by
AesSedai with the same
method. Arithmetic survives this bitrate far better than perplexity suggests.
Recipe
| tensors | type |
|---|---|
| routed expert gate, up | IQ2_XS |
| routed expert down | IQ2_S |
| layer 47 routed experts (gate, up, down) | Q6_K |
| attention QKV and output | IQ4_XS |
dense FFN (layer 0, MTP blocks), MTP eh_proj |
Q6_K |
| token embeddings | Q8_0 |
| output head | Q6_K |
| router, norms, sinks, expert bias | F32 |
2.55 bits per weight overall.
Why attention is IQ4_XS: on this model the non-expert tensors are over half of what each token reads from memory at IQ2, so dropping attention from Q6_K to IQ4_XS bought 22% decode speed with no measurable GSM8K cost.
Why layer 47 is Q6_K: layer 47's expert intermediates (the input to its down projection) get large enough that a 32-value sum passes f16's 65504. In llama.cpp's CUDA kernels, Q4_K and Q5_K (and Q4_0/Q4_1/Q5_0/Q5_1/Q2_K/IQ1_S) store the activation block sum in f16, so a build with layer 47 at Q5_K turned every perplexity chunk into NaN. Q6_K and the IQ types use an f32 scale and are unaffected, so this file runs correctly on stock llama.cpp.
llama-quantize --allow-requantize \
--imatrix <imatrix.gguf> \
--tensor-type-file recipe-iq2_xs_m-v2.1.txt \
--token-embedding-type q8_0 --output-tensor-type q6_k \
MiMo-V2.6-Flash-MXFP4_MOE.gguf out.gguf IQ2_XS
--allow-requantize is required because the source experts are already
4-bit.
Calibration
The importance matrix is Baekpica's, collected from the full MXFP4 model on text and multimodal inputs. It covers 12,030 of 12,032 layer/expert slots; the two never observed are block 7 experts 13 and 184, which our own calibration runs never reached either, so they look unrouted rather than under-sampled.
Running it
Needs llama.cpp with mimo2 support, including
#28865 (older loaders
reject the per-layer sliding-window pattern).
llama-server -m MiMo-V2.6-Flash-RL-IQ2_XS_M-v2.1-00001-of-00010.gguf \
-ngl 99 -fa on -c 16384 -b 2048 -ub 2048 --jinja
Memory: about 92 GiB of weights leaves ~25 GiB on a 128 GB Spark. Contexts of
16K were fine throughout our testing. A llama-bench run with a 32K prompt
froze our machine (unified memory does not OOM-kill; it stalls), so measure
headroom before going much larger.
KV is cheap regardless of context: only 9 of the 48 layers are global attention, 22.5 KB per token at F16 (2.7 GiB at 128K); the other 39 keep a 128-token sliding window.
DFlash drafter
MiMo-V2.6-Flash-RL-DFlash-Q8_0.gguf is Xiaomi's 5-layer block-diffusion
drafter from the release's dflash/ directory, at Q8_0. Stock llama.cpp does
not run DFlash for MiMo yet. Anyone porting it should know three things the
bundled Python example leaves out, all of which this file already encodes:
- The mask token needs its learned vector. The target's embedding row for
the mask token (151675) is all zeros, never trained. The drafter was trained
with the vector in
mask_embedding.pt. This GGUF carries its owntoken_embdwith that row replaced; a runtime that embeds mask slots through the target's table feeds the drafter zeros. - Partial rotary: 64 of 128 head dimensions rotate (
partial_rotary_factor0.5);rope.dimension_countis set. - Value scale 0.612 on the attention output (
attention.value_scale).
Target features come from layers 0/11/23/35/47 (the residual stream before the
final norm), 8-token blocks, non-causal within the block, 1024-token sliding
window. --spec-draft-p-min 0.7 (cut a block at the first low-confidence
token) was the best setting we measured; without it (on v1, 7 drafted) prose ran at 0.57x.
The three MTP blocks are included in the main file but not recommended. MiMo's MTP heads are not chained: head k reads the target's hidden state, with the token k places further ahead (SGLang pairs them this way). llama.cpp's multi-head driver feeds each head the previous head's output instead, which makes heads 2 and 3 draft noise. With the pairing fixed, drafting one token gives 0.97x overall and deeper drafts are slower on this MoE, so DFlash remains the faster option.
Changes from v1
| v1 | v2.1 | |
|---|---|---|
| size | 90.1 GiB | 91.9 GiB |
| decode (tg32) | 26.3 t/s | 32.1 t/s |
| GSM8K | 95.0% | 95.6% |
| wiki PPL | 5.7824 | 5.7225 |
| attention | Q6_K | IQ4_XS |
| layer 47 experts | IQ2_XS / IQ2_S | Q6_K |
| imatrix | ours, from a Q2_K bootstrap | Baekpica's, from the full model |
Architecture notes
48 layers, 39 sliding-window (window 128) and 9 global, interleaved. 64 query heads at head_dim 192 (QK) / 128 (V); 4 KV heads on global layers, 8 on SWA. 256 routed experts, 8 active, no shared expert, sigmoid routing. Layer 0 is dense.
The release stores the routed experts as MXFP4 (one E8M0 exponent per 32
values) under quant_method: "fp8" with store_dtype: "mxfp4"; QKV is
block-scaled FP8 sharded across TP=4. llama.cpp converts it natively as of
#29257.
- Downloads last month
- 1,036
2-bit
8-bit
Model tree for TrevorJS/MiMo-V2.6-Flash-RL-GGUF
Base model
XiaomiMiMo/MiMo-V2.6-Flash-RL
Install (macOS, Linux)
# Start a local OpenAI-compatible server with a web UI: llama serve -hf TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0# Run inference directly in the terminal: llama cli -hf TrevorJS/MiMo-V2.6-Flash-RL-GGUF:Q8_0