Views
No views yet
PATCHES.md):1docker run --rm --gpus all --ipc=host -p 8000:8000 \
2 -v /path/to/MiMo-V2.5-AWQ-int4:/model:ro \
3 -v /path/to/vllm-patches/mimo_v2.py:/usr/local/lib/python3.12/dist-packages/vllm/model_executor/models/mimo_v2.py:ro \
4 -v /path/to/vllm-patches/mimo_v2_omni.py:/usr/local/lib/python3.12/dist-packages/vllm/model_executor/models/mimo_v2_omni.py:ro \
5 vllm/vllm-openai:v0.21.0 \
6 --model /model \
7 --served-model-name mimo-v2.5 \
8 --tensor-parallel-size 8 \
9 --enable-expert-parallel \
10 --enable-prefix-caching \
11 --reasoning-parser qwen3 \
12 --enable-auto-tool-choice --tool-call-parser qwen3_xml \
13 --trust-remote-code \
14 --max-model-len 262144 \
15 --gpu-memory-utilization 0.90--tensor-parallel-size 4. (The patches are correct at both; see the QKV note in PATCHES.md.)temperature 1.0, top_p 0.95 (the model's shipped generation_config.json; thinking-mode on).--max-model-len can be raised toward the native 1,048,576 as VRAM allows.| file | what |
|---|---|
model-0000{1..4}-of-00004.safetensors | int4 weights (W4A16) |
config.json, recipe.yaml | quant config + the full quantization recipe |
modeling_mimo_v2.py, configuration_mimo_v2.py | model code (--trust-remote-code) |
tokenizer*, chat_template.jinja, preprocessor_config.json | tokenizer + chat / vision preprocessing |
vllm-patches/mimo_v2.py, vllm-patches/mimo_v2_omni.py | the two vLLM serving patches — mount over the image copies |
vllm-patches/PATCHES.md | full patch writeup + validation |
mlp.experts.*_proj) are quantized to 4-bit. Everything quality-sensitive stays high-precision: attention, the router/gate, shared paths, embeddings & lm_head, MTP, and the vision + audio towers are all left untouched. In addition, layer-41's experts are kept at bf16 (a composite carve-out — that one layer quantized worst).llm-compressor recipe (group-wise AWQ, smoothing maps, ignore list) is in recipe.yaml.qkv_proj is pre-sharded for TP-4; a naive chunk() silently corrupts K/V at TP-8. The patch de-shards to canonical Q/K/V then re-shards for the serving TP — exact at TP-4, correct at TP-8 for both full and sliding-window layers.mimo_v2_omni.py) — matches the checkpoint's own LayerNorm + biased-linear merger (vLLM's copy used RMSNorm + bias-less).NB=4, the quant-time TP the fused QKV is pre-sharded for) are in PATCHES.md. Bind-mounting is the zero-rebuild path; baking the two files into a derived image is the clean end-state.