1. Model Introduction
MiMo-V2.5-Pro and MiMo-V2.5 are next-generation Mixture-of-Experts models from the XiaomiMiMo Team.| Variant | Total params | Active (MoE) | Modalities |
|---|---|---|---|
| MiMo-V2.5-Pro | 1.02T | 42B | Text (multimodal planned) |
| MiMo-V2.5 | 310B | 15B | Text, Image, Video, Audio |
- Hybrid Attention Architecture: Interleaves Sliding Window Attention (SWA) and Global Attention (GA) for reduced KV cache while preserving long-context capability.
- Multi-Token Prediction (MTP): 3-layer MTP module accelerates decoding. Both variants support EAGLE speculative decoding with MTP weights.
- 1M-Token Context: Both variants support up to 1 million token context windows.
- Agentic Capabilities: Post-training with large-scale agentic RL achieves strong performance on coding, reasoning, and tool-use benchmarks.
- MiMo-V2.5 Multimodal (V2.5 only): Native omnimodal architecture with a 729M-param ViT Vision Encoder (28 layers: 24 SWA + 4 Full) and a 261M-param Audio Transformer (24 layers: 12 SWA + 12 Full); supports image, video, and audio understanding via standard OpenAI-compatible multimodal API.
2. SGLang Installation
Refer to the official SGLang installation guide. Docker Image: All variants (MiMo-V2.5 310B and MiMo-V2.5-Pro 1.02T) uselmsysorg/sglang:latest, which ships CUDA 13.0 and runs on both Hopper (H100 / H200) and Blackwell (B200 / GB300).
TPU (sgl-jax): MiMo-V2.5-Pro can also be served on TPU via the JAX-based sgl-jax runtime. The container image and pip install steps are listed in §3.3 TPU Deployment.
3. Model Deployment
3.1 Basic Configuration
Use the selector below to generate the deployment command for your variant and hardware.3.2 Configuration Tips
MiMo-V2.5-Pro (1.02T):- B200: single node, TP=8 (verified). Uses
--attention-backend fa4+--moe-runner-backend flashinfer_trtllm+--mem-fraction-static 0.8. Set--swa-full-tokens-ratio 0.1to keep KV-cache footprint within 192 GB HBM. - GB300: 2 nodes, TP=8 (verified). Same Blackwell stack as B200; multi-node interconnect requires
NCCL_MNNVL_ENABLE=1 NCCL_CUMEM_ENABLE=1. Default SWA ratio is fine. - H100/H200: 2 nodes × 8 GPUs (TP=16, not yet verified). Uses the Hopper stack (
fa3+ DeepEP + EAGLE multi-layer); fits with--mem-fraction-static 0.7and--swa-full-tokens-ratio 0.3. DeepEP dispatch tuning:SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=256avoids memory spikes during prefill. - EAGLE speculative decoding (3 steps, topk=1) typically yields a 2–3× decode speedup. Requires
--enable-multi-layer-eagle(both Hopper and Blackwell). See §5.4 for acceptance-rate behavior on natural text vs random prompts.
- The checkpoint has a TP=4-interleaved fused
qkv_proj; attention-TP per DP group must be 4. Use--dp = TP / 4; for TP > 4 this also requires DP-attention. Total GPUs must be a multiple of 4. A bare--tp 8without--dp 2will fail to load withMiMoV2 fused qkv_proj checkpoint is TP=4-interleaved; got attention tp_size=8. - Single-node deployments: H100/H200 8× GPUs (
--tp 8 --dp 2), B200 4× GPUs (--tp 4, dp=1, no DP-attn flag needed), GB300 4× GPUs (--tp 4, single NVL4 node). FP8 quantization. - On Blackwell, pass
--attention-backend fa4: MiMoV2’s asymmetric KV (head_dim192 /v_head_dim128) fails on the SM100 defaulttrtllm_mha, which requires equal K/V widths. - On Blackwell, pass
--mm-attention-backend fa4for the V2.5 vision encoder. The checkpoint config requests FlashAttention-3 internally, but SGLang rejects FA3 on Blackwell and expects FA4 for multimodal attention. - On Blackwell, pass
--moe-runner-backend flashinfer_trtllm; the defaultautofalls through to the triton fused-MoE runner, ~12% slower at bs=1 decode. --enable-dp-lm-headand--mm-enable-dp-encoderare required whenever--enable-dp-attentionis on, to keep LM head and encoder sharding consistent.- EAGLE MTP uses the checkpoint’s MTP weights. Enable with
--speculative-algorithm EAGLEand--enable-multi-layer-eagle(both Hopper and Blackwell). - Multimodal: Supports image, video, and audio understanding; see Section 4.3 for invocation examples.
- DeepEP replaces the default MoE all-to-all dispatch with a fused DeepEP backend; it lowers expert dispatch latency and memory traffic, so it pays off under high concurrency / throughput-bound workloads on H100/H200. Under concurrency=1 / latency-bound workloads the gain is negligible — leave it off.
- Enabling adds
--moe-a2a-backend deepep+--moe-dense-tp-size 1(and--ep <tp>for Pro) plusSGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=256env to cap the dispatch buffer. Requirespip install deep_ep(not part of the default sglang install). - On Blackwell (B200, GB300) the verified MoE backend is
flashinfer_trtllm; the DeepEP toggle is a no-op there.
3.3 TPU Deployment (MiMo-V2.5-Pro, sgl-jax)
MiMo-V2.5-Pro can also be served on TPU via sgl-jax. The runtime is a separate JAX-based stack (sgl_jax.launch_server); pick TPU v7x or TPU v6e in the panel above to generate the launch command. Verified topologies:
v7x exposes 2 logical JAX devices per chip, soAll nodes must sit in the same TPU slice and reach each other on the JAX init port (--tp-size = 16 chips × 2 = 32. v6e exposes 1 device per chip, so--tp-size = 64. Always set--tp-sizeto the total JAX device count across all nodes, not the chip count.
20000) and the TPU process port (8471).
Step 1 — Launch the JAX TPU container on every node:
Command
The image is pinned to jax0.8.1-rev1 to keep the JAX runtime aligned with sgl-jax’s TPU extras.
Step 2 — Clone and install sgl-jax (inside the container):
Command
4. Model Invocation
4.1 Basic Usage
See Basic API Usage.4.2 Reasoning Output
Both variants support hybrid thinking mode. Thinking content is separated via the reasoning parser. Thinking Mode (default):Example
Example
4.3 Multimodal Invocation (V2.5 only)
Image Understanding:Example
Example
Video decoding requiresAudio Understanding:decord(pip install decord); SGLang’s MiMo-V2.5 multimodal processor usesdecord.VideoReaderfor frame extraction.
Example
4.4 Tool Calling
Example
5. Benchmark
Accuracy numbers come fromsglang.test.run_eval (GSM8K standard 5-shot, MMMU validation split). Speed numbers come from sglang.bench_serving with generated random prompts; text runs use 1024 input tokens and 1024 output tokens per request, and the image run uses 2 random 720p images per request.
5.1 Accuracy Benchmark
5.1.1 GSM8K
Standard 5-shot,temperature=0, max_tokens=4096, model defaults to thinking-on (responses contain <think>...</think> and the eval extracts the trailing number via regex). Server launch: see Section 3.
Benchmark Command:
Command
run_eval.pyautomatically appends/v1to--base-url; pass the barehost:portURL (without trailing/v1), otherwise requests resolve to/v1/v1/chat/completionsand 404.
- Test Results:
- MiMo-V2.5-Pro (FP8, 8× B200)
- MiMo-V2.5 (FP8, 8× H200)
- MiMo-V2.5-Pro (FP8, 8× B200)
5.1.2 MMMU (V2.5 only)
MMMU/MMMU validation split (multi-discipline multimodal), concurrency=16, default sampling.
- Benchmark Command:
Command
- Test Results:
- MiMo-V2.5 (FP8)
- MiMo-V2.5 (FP8)
5.2 Speed Benchmark — MiMo-V2.5-Pro
Test Environment:- Hardware: NVIDIA B200 GPU (8×)
- Model:
XiaomiMiMo/MiMo-V2.5-Pro(FP8) - Tensor Parallelism: 8 (single-node,
--moe-runner-backend flashinfer_trtllm,--attention-backend fa4,--mem-fraction-static 0.8,--swa-full-tokens-ratio 0.1) - Recipe: Blackwell verified baseline (EAGLE off for this benchmark — see note below)
- sglang version: 0.5.11
The numbers in §5.2 are the no-EAGLE baseline onrandom 1024/1024. On uniform-random token streams the MiMo-V2.5-Pro 3-layer MTP draft has very low accept-rate (~0.13–0.27 vs ~0.75 on natural-text prompts, see §5.4) — there’s no token-co-occurrence signal for the draft to model — so EAGLE here adds verify overhead without recovering enough draft tokens to be a net win on this workload. EAGLE MTP itself works on B200 +--enable-multi-layer-eagle(see §3 deployment command and §5.4 for an acceptance profile on natural text).
5.2.1 Latency-Sensitive Benchmark
- Model Deployment Command: see the command panel above.
- Benchmark Command:
Command
- Test Results:
Output
5.2.2 Throughput-Sensitive Benchmark
- Model Deployment Command: see the command panel above.
- Benchmark Command:
Command
- Test Results:
Output
5.3 Speed Benchmark — MiMo-V2.5
Test Environment:- Hardware: NVIDIA H200 GPU (8×)
- Model:
XiaomiMiMo/MiMo-V2.5(FP8) - Tensor Parallelism: 8 (DP-attention with
--dp 2) - Recipe: Balanced (DP-attn + EAGLE MTP)
- sglang version:
0.0.0.dev1+g7d99af439(lmsysorg/sglang:dev-mimo-v2.5)
5.3.1 Latency-Sensitive Benchmark
- Model Deployment Command: select MiMo-V2.5, H200, and EAGLE MTP in the command panel above.
- Benchmark Command:
Command
- Test Results:
Output
5.3.2 Throughput-Sensitive Benchmark
- Model Deployment Command: select MiMo-V2.5, H200, and EAGLE MTP in the command panel above.
- Benchmark Command:
Command
- Test Results:
Output
5.3.3 Multimodal (Image) Benchmark
- Model Deployment Command: select MiMo-V2.5, H200, and EAGLE MTP in the command panel above.
- Benchmark Command:
Command
- Test Results:
Output
5.4 Multi-Layer EAGLE Acceptance Profile — MiMo-V2.5-Pro
Pro’s 3-layer MTP behaves very differently on natural text vs uniform-random token streams. The §5.2 benchmarks userandom 1024/1024, which collapses accept-rate; this section measures the same server on GSM8K so the acceptance number is comparable to real workloads.
Test Environment:
- Hardware: NVIDIA B200 GPU (8×)
- Model:
XiaomiMiMo/MiMo-V2.5-Pro(FP8) - Tensor Parallelism: 8 (single-node,
--moe-runner-backend flashinfer_trtllm,--attention-backend fa4,--mem-fraction-static 0.8,--swa-full-tokens-ratio 0.1) - Recipe: 3-layer EAGLE —
--enable-multi-layer-eagle --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4(top-1, max accept length 4)
Command
accept_rate and accept_length rows below are not part of run_eval’s own output — they were aggregated from the server-side Decode batch ... accept rate: X accept len: Y log lines emitted during the GSM8K run (307 batches total).
GSM8K Score: 0.97 (194 / 200), output throughput ≈ 635 tok/s end-to-end on this single-server run.
The accept-rate gap is intrinsic to MTP-style speculative decoding: the draft model is trained on natural-language token distributions and has no useful signal on uniform-random byte sequences. Workloads with structure (chat, code, reasoning traces) should expect the GSM8K-class number; the random-prompt baseline in §5.2 is a worst case for draft acceptance.
5.5 Long-Context Prefill & MTP Decode — MiMo-V2.5-Pro (Reference)
Reference numbers from the day0 enablement PR, collected on a 2-node Hopper deployment with the EP=16, DP=2, TP=16 recipe (--moe-a2a-backend deepep, --attention-backend fa3, --enable-multi-layer-eagle). The setup, parallelism, and benchmark methodology all differ from §5.2 (Blackwell TP=8 with random 1024/1024), so treat these as a separate operating point — long-context prefill scaling and the MTP decode speedup — rather than a comparison against §5.2.
Test Environment:
- Hardware: NVIDIA Hopper GPU (2 nodes × 8 GPUs, GPU SKU intentionally not disclosed)
- Model:
XiaomiMiMo/MiMo-V2.5-Pro(FP8) - Parallelism:
--tp 16 --dp 2 --ep 16 --moe-dense-tp-size 1 --enable-dp-attention - Recipe: Hopper EP16 (DeepEP + EAGLE multi-layer MTP)
5.5.1 Long-Context Prefill Throughput
Test setting:chunked_prefill_size=32K, random_output_len=1, cache flushed before every run. For input lengths ≥ 512K the workload was split into two requests routed to distinct DP ranks and the per-node throughput was read from bench_serving output.
- Benchmark Command:
Command
- Test Results — single-node prefill throughput, cache-miss:
Prefill throughput stays within ~10% of peak from 4K up to 32K and degrades gracefully past 128K, confirming the hybrid SWA+GA attention works correctly at 1M context.
5.5.2 Decode Throughput — MTP Speedup
Test setting: fixed 16K input / 1K output, varying batch size per DP rank, with and without the 3-layer MTP module.MTP accept length is the average number of draft tokens accepted per step under EAGLE speculative decoding. TPS below is per-request output tokens/sec (i.e. single-user perceived speed); the rightmost column is aggregated single-node decode throughput (= TPS × batch size).
- Test Results — single-node decode throughput:
Summary — MTP on / off:
The 3-layer MTP module delivers ~2× decode throughput at accept length 3 and ~2.5–2.7× at accept length 4 — the same order of magnitude as the “2–3× decode speedup” guidance in §3.2.
