Instructions to use tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP") prompt = "Write a story about Einstein" messages = [{"role": "user", "content": prompt}] prompt = tokenizer.apply_chat_template( messages, add_generation_prompt=True ) text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP"
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP" } ] } } }Run Pi
# Start Pi in your project directory: pi
- MLX LM
How to use tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP", "messages": [ {"role": "user", "content": "Hello"} ] }' - Hermes Agent
How to use tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP"
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 tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP"
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 "tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
MiMo-V2.6-Flash-RL · MLX · fits a 128 GB Mac
A compressed XiaomiMiMo/MiMo-V2.6-Flash-RL (309B / 15B-active MoE) in stock mlx-lm format, sized so the text model loads on a 128 GB Apple Silicon machine (M3 Max / M4 Max / Ultra). Text model on disk: 87.4 GB (128 experts/layer, experts average 4.25 bits/weight). Bundled MTP / DFlash / vision / audio weights: 7.3 GB (not loaded for text inference).
What was done
The official checkpoint's experts are natively MXFP4 (Xiaomi trained them with MXFP4 QAT; there is no BF16 release), so 4-bit MLX conversions are lossless and anything smaller is a real re-quantization. This model was produced by a calibrated, layer-wise pipeline (PyTorch, one H200):
- REAP expert pruning: the 128 least salient experts per layer (50.0%) were removed (saliency = mean routing weight × ‖expert output‖ on calibration data, per REAP, arXiv:2510.13999); 128 of 256 experts remain in every MoE layer.
- Sensitivity-driven precision allocation (GEMQ-style, arXiv:2605.23078): for every MoE layer and projection (gate/up/down), the Hessian-weighted output error of 2-bit / 3-bit candidates was measured on calibration activations and a MILP picked the mix under the size budget. Result: 141× 4-bit mxfp4 (native).
- GPTQ (sequential, error propagated through already-compressed layers) for every projection not kept at native MXFP4, using activation Hessians weighted by routing weights.
- Attention, dense MLP (layer 0), embeddings and lm_head: 8-bit affine, group 64.
attention_value_scaleis folded intov_proj(the mlx-lm class has none). - Native MTP head (
mtp/), DFlash drafter (dflash/), vision & audio encoders (omnimodal/,audio_tokenizer/) are carried over from Vontra's conversion unchanged; the checkpoint layout is theirs, so whatever loads that model loads this one.
Calibration: 256 sequences × 2048 tokens from evol-codealpaca, Mixture-of-Thoughts, SWE-smith trajectories, glaive function calling and UltraChat, rendered with the model's chat template. Held-out evaluation uses disjoint samples from the same mix.
Quality
| Metric (held-out agentic/coding mix, 31×2048 tokens) | Original (MXFP4/FP8) | This model |
|---|---|---|
| Perplexity | 9.271 | 6.996 |
| KL(original ‖ this), mean per token | 0 | 1.2959 |
| Top-1 next-token agreement with original | 100% | 74.0% |
On-policy (40 responses sampled from the real MiMo-V2.6-Flash via API, only assistant tokens scored):
| group | tokens | original NLL | this model NLL | Δ | KL | top-1 agree |
|---|---|---|---|---|---|---|
| ALL | 24136 | 0.530 | 0.758 | +0.227 | 0.266 | 85.0% |
| code | 10627 | 0.511 | 0.742 | +0.231 | 0.261 | 85.7% |
| agent | 4786 | 0.695 | 0.933 | +0.237 | 0.302 | 82.1% |
| reasoning | 3815 | 0.313 | 0.410 | +0.097 | 0.125 | 91.3% |
| general | 4908 | 0.580 | 0.891 | +0.311 | 0.354 | 81.5% |
On-policy NLL is the most trustworthy number here: a compressed model that reproduces the original's own outputs has not drifted. Any perturbation of this MoE (even 8-bit attention) sits at KL≈0.4 on foreign text because top-8 routing flips, so only on-policy deltas are comparable across variants.
These are distribution-level numbers against the original model on the calibration domain; they are not benchmark scores. Expect a real capability loss versus the 4-bit original — measure on your task.
Running it (128 GB Mac)
pip install -U mlx-lm
# default GPU wired limit is ~75% of RAM; allow the model + KV cache
sudo sysctl iogpu.wired_limit_mb=118000
hf download tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP --local-dir MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP
python -m mlx_lm generate --model MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP --prompt "Write a Python function that checks whether an integer is prime." --max-tokens 256 --temp 0.6
Close other memory-hungry apps first. The MTP / DFlash payloads are packaged for MiMo-aware runtimes; stock mlx-lm decodes serially and does not use them yet.
Files
model-*.safetensors,model.safetensors.index.json,config.json— text model (this work)compression_alloc.json,compression_eval.json— per-layer precision map, pruned expert ids, evaluationmtp/,dflash/,omnimodal/,audio_tokenizer/— upstream auxiliary weights (Vontra)
Pipeline source: https://github.com/irvollo/mimo-mlx-compress (REAP saliency, sensitivity, MILP allocation, batched GPTQ, MLX packing).
Credits
Xiaomi MiMo team (model, MIT license); Vontra (MLX layout, MTP packaging); Cerebras (REAP); Deng et al. (GEMQ); Frantar et al. (GPTQ).
- Downloads last month
- 416
8-bit
Model tree for tacodevs/MiMo-V2.6-Flash-RL-MLX-REAP50-mxfp4-MTP
Base model
XiaomiMiMo/MiMo-V2.6-Flash-RL