跳到内容

MiMo-V2-Flash 使用指南

简介

MiMo-V2-Flash 是一个拥有 3090 亿总参数和 150 亿激活参数的 MoE 语言模型。该模型专为高速推理和代理工作流而设计,采用了一种新颖的混合注意力架构和多令牌预测 (MTP) 技术,实现了最先进的性能,同时显著降低了推理成本。

安装 vLLM

uv venv
source .venv/bin/activate
uv pip install vllm --extra-index-url https://wheels.vllm.ai/nightly

运行 MiMo-V2-Flash

像这样运行 TP

vllm serve XiaomiMiMo/MiMo-V2-Flash \
    --host 0.0.0.0 \
    --port 9001 \
    --seed 1024 \
    --served-model-name mimo_v2_flash \
    --tensor-parallel-size 4 \
    --trust-remote-code \
    --gpu-memory-utilization 0.9 \
    --generation-config vllm

像这样运行 Tool Call

vllm serve XiaomiMiMo/MiMo-V2-Flash \
    --host 0.0.0.0 \
    --port 9001 \
    --seed 1024 \
    --served-model-name mimo_v2_flash \
    --tensor-parallel-size 4 \
    --trust-remote-code \
    --gpu-memory-utilization 0.9 \
    --tool-call-parser qwen3_xml \
    --reasoning-parser qwen3 \
    --generation-config vllm

像这样运行 DP/TP/EP

vllm serve XiaomiMiMo/MiMo-V2-Flash \
    --host 0.0.0.0 \
    --port 9001 \
    --seed 1024 \
    --served-model-name mimo_v2_flash \
    --data-parallel-size 2 \
    --tensor-parallel-size 4 \
    --enable-expert-parallel \
    --trust-remote-code \
    --gpu-memory-utilization 0.9 \
    --generation-config vllm

  • 您可以设置 --max-model-len 来节省内存。对于大多数场景,--max-model-len=65536 通常效果不错,最大值为 128k。
  • 您可以设置 --max-num-batched-tokens 来平衡吞吐量和延迟,数值越高意味着吞吐量越高但延迟也越高。--max-num-batched-tokens=32768 通常适用于提示密集型工作负载。但您可以将其减少到 16k 和 8k 以减少激活内存使用并降低延迟。
  • vLLM 默认使用 90% 的 GPU 内存,您可以设置 --gpu-memory-utilization=0.95 来最大化 KVCache。
  • 请务必按照命令行说明操作,以确保工具调用功能已正确启用。

curl 示例

您可以运行以下 curl 命令

curl -X POST https://:9001/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "mimo_v2_flash",
        "messages": [
            {
                "role": "user",
                "content": "Hello MiMo!"
            }
        ],
        "chat_template_kwargs": {
            "enable_thinking": true
        }
    }'
  • 设置 "enable_thinking": false 或删除 chat_template_kwargs 部分以禁用思考模式。

基准测试

对于基准测试,通过向服务器命令添加 --no-enable-prefix-caching 来禁用前缀缓存。

基准测试

# Prompt-heavy benchmark (8k/1k)
vllm bench serve \
  --model XiaomiMiMo/MiMo-V2-Flash \
  --dataset-name random \
  --random-input-len 8000 \
  --random-output-len 1000 \
  --request-rate 3 \
  --num-prompts 1800 \
  --ignore-eos

基准测试配置

通过调整输入/输出长度测试不同的工作负载

  • 提示密集型:8000 输入 / 1000 输出
  • 解码密集型:1000 输入 / 8000 输出
  • 平衡型:1000 输入 / 1000 输出

预期输出

目前仅支持基本运行,许多功能(如 MTP)尚未添加,因此性能测试将在稍后进行。

准确性

GSM8K

脚本

lm_eval \
    --model local-chat-completions \
    --tasks gsm8k \
    --num_fewshot 5 \
    --apply_chat_template \
    --model_args model=mimo_v2_flash,base_url=http://0.0.0.0:9001/v1/chat/completions,num_concurrent=100,max_retries=20,tokenized_requests=False,tokenizer_backend=none,max_gen_toks=256
结果
|Tasks|Version|     Filter     |n-shot|  Metric   |   |Value |   |Stderr|
|-----|------:|----------------|-----:|-----------|---|-----:|---|-----:|
|gsm8k|      3|flexible-extract|     5|exact_match|↑  |0.9128|±  |0.0078|
|     |       |strict-match    |     5|exact_match|↑  |0.9075|±  |0.0080|

待办事项

  • [ ] 支持 MTP。
  • [ ] 提供压力测试性能数据。