AI个人学习
和实操指南

MiMo:高效数学推理与代码生成的小型开源模型

综合介绍

MiMo 是小米公司开发的一个开源大语言模型项目,专注于数学推理和代码生成。核心产品是 MiMo-7B 系列模型,包含基础模型 (Base)、监督微调模型 (SFT)、从基础模型训练的强化学习模型 (RL-Zero) 和从 SFT 模型训练的强化学习模型 (RL)。这些 70 亿参数模型通过优化预训练数据、多重令牌预测 (MTP) 和强化学习,展现出媲美更大模型的推理能力。MiMo-7B-RL 在数学和代码任务中性能突出,可匹敌 OpenAI o1-mini。模型支持 vLLM 和 SGLang 推理引擎,并在 Hugging Face 和 ModelScope 提供下载。小米开源 MiMo,旨在推动高效推理模型的发展。

MiMo:高效数学推理与代码生成的小型开源模型-1


 

功能列表

  • 数学推理:解决 AIME、MATH-500 等数学竞赛题目,支持复杂问题推理。
  • 代码生成:生成 Python、C++ 等高质量代码,适用于 LiveCodeBench 编程任务。
  • 多重令牌预测 (MTP):预测多个令牌,推理接受率约 90%,提升速度和准确性。
  • 开源模型支持:提供 MiMo-7B 系列模型 (Base、SFT、RL-Zero、RL),供开发者自由使用。
  • 高效推理引擎:支持小米定制 vLLM 和 SGLang,优化推理性能。
  • 强化学习优化:基于 13 万数学和代码问题数据集,提升模型推理能力。
  • 无缝回滚引擎:加速强化学习训练,训练速度提升 2.29 倍,验证速度提升 1.96 倍。
  • 灵活部署:支持 Hugging Face Transformers、vLLM 和 SGLang 多种部署方式。

 

使用帮助

安装与部署

MiMo-7B 模型无需独立软件安装,但需配置推理环境。以下为详细部署步骤,推荐使用 Python 3.8 或更高版本。

1. 环境准备

确保系统安装了 Python 和 pip。建议使用虚拟环境以避免依赖冲突:

python3 -m venv mimo_env
source mimo_env/bin/activate

2. 安装依赖

MiMo 推荐使用小米定制的 vLLM 分支,支持 MTP 功能。安装命令如下:

pip install torch transformers
pip install "vllm @ git+https://github.com/XiaomiMiMo/vllm.git@feat_mimo_mtp_stable_073"

若使用 SGLang,执行:

python3 -m pip install "sglang[all] @ git+https://github.com/sgl-project/sglang.git@main#egg=sglang&subdirectory=python"

3. 下载模型

MiMo-7B 模型托管在 Hugging Face 和 ModelScope。以下以 MiMo-7B-RL 为例:

from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "XiaomiMiMo/MiMo-7B-RL"
model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(model_id)

模型文件约 14GB,确保有足够存储空间。ModelScope 下载方式类似,替换 model_id 为对应地址。

4. 启动推理服务

使用 vLLM 启动推理服务器(推荐):

python3 -m vllm.entrypoints.api_server --model XiaomiMiMo/MiMo-7B-RL --host 0.0.0.0 --trust-remote-code

或使用 SGLang:

python3 -m sglang.launch_server --model-path XiaomiMiMo/MiMo-7B-RL --host 0.0.0.0 --trust-remote-code

服务器启动后,可通过 API 或命令行与模型交互。

主要功能操作

数学推理

MiMo-7B-RL 在数学推理任务中表现卓越,特别是在 AIME 和 MATH-500 数据集上。用户可输入数学问题,模型生成解答。例如:

from vllm import LLM, SamplingParams
llm = LLM(model="XiaomiMiMo/MiMo-7B-RL", trust_remote_code=True)
sampling_params = SamplingParams(temperature=0.6)
outputs = llm.generate(["Solve: 2x + 3 = 7"], sampling_params)
print(outputs[0].outputs[0].text)

操作提示

  • 使用 temperature=0.6 平衡生成质量和多样性。
  • 复杂问题可分步输入,确保描述清晰。
  • 支持 AIME 2024 (68.2% Pass@1)、AIME 2025 (55.4% Pass@1) 和 MATH-500 (95.8% Pass@1)。

代码生成

MiMo-7B-RL 可生成高质量代码,支持 Python、C++ 等语言,适用于 LiveCodeBench v5 (57.8% Pass@1) 和 v6 (49.3% Pass@1)。示例:

from vllm import LLM, SamplingParams
llm = LLM(model="XiaomiMiMo/MiMo-7B-RL", trust_remote_code=True)
sampling_params = SamplingParams(temperature=0.6)
outputs = llm.generate(["Write a Python function to calculate factorial"], sampling_params)
print(outputs[0].outputs[0].text)

操作提示

  • 提供具体任务描述,如函数输入输出要求。
  • 检查生成代码的语法完整性。
  • 适合算法设计和编程竞赛任务。

多重令牌预测 (MTP)

MTP 是 MiMo 的核心特色,通过预测多个令牌加速推理,接受率约 90%。启用 MTP 需使用小米定制 vLLM:

from vllm import LLM, SamplingParams
llm = LLM(model="XiaomiMiMo/MiMo-7B-RL", trust_remote_code=True, num_speculative_tokens=1)
sampling_params = SamplingParams(temperature=0.6)
outputs = llm.generate(["Write a Python script"], sampling_params)
print(outputs[0].outputs[0].text)

操作提示

  • 设置 num_speculative_tokens=1 启用 MTP。
  • MTP 在高吞吐量场景下效果最佳。
  • MTP 层在预训练和 SFT 阶段调整,RL 阶段冻结。

无缝回滚引擎

MiMo 开发了无缝回滚引擎,优化强化学习训练。用户无需直接操作此功能,但其效果体现在模型性能上:

  • 训练速度提升 2.29 倍,验证速度提升 1.96 倍。
  • 集成连续回滚、异步奖励计算和早期终止,减少 GPU 空闲时间。

推理引擎选择

  • vLLM(推荐):小米定制 vLLM(基于 vLLM 0.7.3)支持 MTP,性能最优。适合高性能推理需求。
  • SGLang:支持主流推理,MTP 支持即将上线。适合快速部署。
  • Hugging Face Transformers:适合简单测试或本地调试,但不支持 MTP。

注意事项

  • 系统提示:推荐使用空系统提示以获得最佳性能。
  • 硬件要求:建议使用单 GPU(如 NVIDIA A100 40GB),CPU 推理需至少 32GB 内存。
  • 评估设置:所有评估使用 temperature=0.6。AIME 和 LiveCodeBench 采用多次运行平均值。
  • 社区支持:如遇问题,可在 GitHub 提交 issue 或联系 mimo@xiaomi.com

 

应用场景

  1. 学术研究
    MiMo-7B 模型适合研究人员探索数学推理和代码生成算法。开发者可基于开源模型进行微调,研究预训练和强化学习策略。
  2. 编程教育
    教师可使用 MiMo 生成编程练习题解答,学生可验证代码逻辑或学习算法实现。
  3. 竞赛训练
    MiMo 支持 AIME 和 MATH-500 数学竞赛题目,适合学生备战数学和编程竞赛。
  4. AI 开发
    开发者可基于 MiMo-7B 构建定制化应用,如自动化代码审查工具或数学求解器。

 

QA

  1. MiMo-7B 系列有哪些模型?
    MiMo-7B 包括基础模型 (Base)、监督微调模型 (SFT)、从基础模型训练的强化学习模型 (RL-Zero) 和从 SFT 模型训练的强化学习模型 (RL)。RL 版本性能最佳。
  2. 如何选择推理引擎?
    推荐小米定制 vLLM(支持 MTP,性能最优)。SGLang 适合快速部署,Hugging Face Transformers 适合简单测试。
  3. MTP 如何提升性能?
    MTP 通过预测多个令牌,推理接受率达 90%,显著提升速度,适合高吞吐量场景。
  4. 模型支持多语言吗?
    MiMo 主要优化数学和代码任务,支持英文和部分中文输入,未明确支持其他语言。
  5. 硬件要求是什么?
    单 GPU(如 NVIDIA A100 40GB)可运行 MiMo-7B-RL。CPU 推理需至少 32GB 内存,但速度较慢。
未经允许不得转载:首席AI分享圈 » MiMo:高效数学推理与代码生成的小型开源模型
zh_CN简体中文