Instructions to use Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX 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("Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX") 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 Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX"
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX 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 "Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX"
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 Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX
Run Hermes
hermes
- OpenClaw new
How to use Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX"
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 "Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX" \ --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"
- MLX LM
How to use Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX", "messages": [ {"role": "user", "content": "Hello"} ] }'
MiMo-V2.5-Text-Only-oQ4-MLX
A text-only, mixed-precision MLX quantization of
XiaomiMiMo/MiMo-V2.5, produced
with oMLX's oQ4 quantizer.
MiMo-V2.5 is a sparse Mixture-of-Experts model with 310B total and 15B activated parameters, a hybrid sliding-window and global attention stack, and a 1M token context window. This artifact contains the language backbone only.
| Size on disk | 164.59 GiB across 30 shards |
| Tensors | 1244 |
| Average precision | approximately 4.6 bits per weight |
| Model type | mimo_v2 (MiMoV2ForCausalLM) |
| Layers | 48 (1 dense, 47 MoE), 9 global attention, 39 sliding window |
| Quantizer | oMLX v0.5.4.dev1, oQ4 |
Text-only
The vendored mlx-lm MiMo-V2 implementation exposes the language backbone only,
so the vision tower, audio encoder, speech embeddings and MTP heads are dropped
during conversion. Verified against model.safetensors.index.json:
| Tensor prefix | Count in this artifact |
|---|---|
visual. |
0 |
audio_encoder. |
0 |
speech_embeddings. |
0 |
model.mtp. |
0 |
This model cannot process images, video or audio, and it carries no speculative-decoding heads. If you need the omnimodal capabilities, use the upstream checkpoint with a runtime that supports them.
config.json still carries some multimodal metadata (vision_model_type,
processor_config) and a preprocessor_config.json is present, both inherited
from the base checkpoint. No weights back them.
Quantization profile
oQ is sensitivity-driven mixed precision rather than a uniform cast. The base
grid is 4-bit, group_size 64, affine, with 197 modules promoted to 8-bit.
| Component | Modules | Precision |
|---|---|---|
MoE expert stacks (switch_mlp gate / up / down, 47 layers) |
141 | 4-bit, group 64, affine |
Attention projections (q_proj, k_proj, v_proj, o_proj, 48 layers) |
192 | 8-bit, group 64, affine |
| Dense MLP (layer 0) | 3 | 8-bit |
embed_tokens, lm_head |
2 | 8-bit |
MoE routers (mlp.gate.weight), norms, attention sink biases |
133 | bfloat16, not quantized |
Keeping every attention projection and the embedding and output layers at 8-bit is where most of the extra budget goes. The MoE expert weights carry the bulk of the parameters and are the part that is quantized to 4 bits.
The sensitivity map used for this conversion was measured, not inferred from layer position. The source is a native FP8 checkpoint whose bf16 calibration footprint (about 587 GB) exceeds what fits alongside the quantizer, so oMLX auto-built a uniform 4-bit proxy on disk and measured sensitivity against that:
oQ4: calibration footprint (586.8 GB) exceeds 75% of calibration capacity
(488.0 GB; limit=366.0 GB, system available=489.9 GB, Metal available=488.0 GB).
Full-model calibration will use a proxy.
Attention layout
MiMo-V2.5 stores attention as a single fused qkv_proj that is already sharded
for tensor parallelism, with a block-128 weight_scale_inv whose padding is
interleaved per shard rather than trailing. Dequantizing that as one block grid
crosses shard boundaries and silently produces wrong weights on the 9 global
attention layers, which are the only ones that carry padding.
This artifact was produced with a shard-aware dequant, and the fused tensors are
fully resolved into split projections: 0 remaining qkv_proj tensors, and 48
each of q_proj, k_proj, v_proj and o_proj.
Requirements
mlx-lm does not yet ship a MiMo-V2 implementation upstream (ml-explore/mlx-lm#1219 is open), so this checkpoint needs a runtime that provides it. oMLX vendors that patch and is the runtime this artifact was built and tested with.
Apple silicon with enough unified memory to hold 164.59 GiB of weights plus KV cache. This was built and tested on a 512 GB M3 Ultra.
config.json declares an auto_map, so loading through Transformers would
require trust_remote_code=True. The MLX path resolves the model class from the
runtime instead.
Reproducing
Built with oMLX v0.5.4.dev1 plus two fixes that this conversion depends on:
- jundot/omlx#2417 budgets FP8 calibration on the bf16 footprint, and dequantizes the fused QKV per tensor parallel shard. Without the budget fix the proxy is never built and the process is killed partway through calibration. Without the dequant fix conversion aborts on the 9 global attention layers.
- jundot/omlx#2416 routes text-only
multimodal bases through mlx-lm. MiMo-V2.5 ships a
vision_config, so without this the calibration load is handed to mlx-vlm and fails.
Verification
- Converts, loads and generates coherent output including a reasoning trace.
- No vision, audio, speech or MTP tensors remain, and no fused
qkv_projtensors remain (both checked against the tensor index). - Per-module precision assignments in
config.jsonreconcile exactly with the scale and bias tensor counts in the index: 338 quantized modules, 197 at 8-bit and 141 at 4-bit.
No benchmark scores are claimed here. Quantization changes model behaviour, and the upstream evaluation numbers do not transfer to a 4-bit derivative.
License and attribution
The base model is MIT licensed and this derivative follows the same license. Review the upstream model card for intended use and limitations.
This is an unofficial community quantization. It is not affiliated with, sponsored by, or endorsed by Xiaomi.
- Downloads last month
- 91
4-bit
Model tree for Blightbow/MiMo-V2.5-Text-Only-oQ4-MLX
Base model
XiaomiMiMo/MiMo-V2.5