小米MiMo-7B系列模型从零开始训练,专为推理任务设计。实验显示,MiMo-7B-Base模型推理潜能很强,超过不少320亿参数的大模型,对冷启动的SFT模型进行强化学习训练后得到MiMo-7B-RL,在数学和代码推理任务上表现出色,能和OpenAI o1-mini媲美。
米MiMo-7B系列模型包括基础模型、SFT模型、基于基础模型训练的RL模型,还有基于SFT模型训练的RL模型的检查点。
预训练:为推理而生的基础模型
优化数据预处理流程,改进文本提取工具,多维筛选数据,增加预训练数据中的推理模式,用多种方法生成大量不同的推理数据。
预训练采用三阶段数据混合策略,MiMo-7B-Base模型在约25万亿词元上进行训练,将多词预测(Multiple-Token Prediction,MTP)作为额外训练目标,提升模型性能,加快推理速度。
微调:打造推理模型新方法
挑选13万个数学和代码问题作为RL训练数据,用基于规则的验证器检查,清理数据、评估难度,保证质量,只用基于规则的准确率奖励,避免奖励作弊问题。
针对复杂代码问题奖励稀疏的情况,引入测试难度驱动的代码奖励机制,按测试用例难度打分,用密集奖励信号优化策略,对简单问题采用数据重采样策略,在RL训练后期提高采样效率,稳定策略更新。
RL基础设施
开发Seamless Rollout Engine,加速RL训练和验证,集成连续滚动、异步奖励计算和提前终止功能,减少GPU空闲时间,训练速度提升2.29倍,验证速度提升1.96倍。
在vLLM中支持MTP,增强RL系统中推理引擎的稳健性。
MiMo-7B的MTP层在预训练和SFT阶段进行调整,RL阶段冻结,有一个MTP层用于推测解码时,接受率约90%。
MiMo-7B系列模型可在HuggingFace和ModelScope平台下载:
模型 | 描述 | HuggingFace下载链接 | ModelScope下载链接 |
---|---|---|---|
MiMo-7B-Base | 基础模型,推理潜能出色 | 🤗 XiaomiMiMo/MiMo-7B-Base | 🤖️ XiaomiMiMo/MiMo-7B-Base |
MiMo-7B-RL-Zero | 基于基础模型训练的RL模型 | 🤗 XiaomiMiMo/MiMo-7B-RL-Zero | 🤖️ XiaomiMiMo/MiMo-7B-RL-Zero |
MiMo-7B-SFT | 基于基础模型训练的SFT模型 | 🤗 XiaomiMiMo/MiMo-7B-SFT | 🤖️ XiaomiMiMo/MiMo-7B-SFT |
MiMo-7B-RL | 基于SFT模型训练的RL模型,性能优异,与OpenAI o1-mini相当 | 🤗 XiaomiMiMo/MiMo-7B-RL | 🤖️ XiaomiMiMo/MiMo-7B-RL |
在多个基准测试中,MiMo-7B-RL在数学和代码推理任务上表现亮眼:
基准测试 | GPT-4o-0513 | Claude-3.5-Sonnet-1022 | OpenAI o1-mini | QwQ-32B-Preview | R1-Distill-Qwen-14B | R1-Distill-Qwen-7B | MiMo-7B-RL |
---|---|---|---|---|---|---|---|
General | |||||||
GPQA Diamond(Pass@1) | 49.9 | 65.0 | 60.0 | 54.5 | 59.1 | 49.1 | 54.4 |
SuperGPQA(Pass@1) | 42.4 | 48.2 | 45.2 | 43.6 | 40.6 | 28.9 | 40.5 |
DROP(3-shot F1) | 83.7 | 88.3 | 83.9 | 71.2 | 85.5 | 77.0 | 78.7 |
MMLU-Pro(EM) | 72.6 | 78.0 | 80.3 | 52.0 | 68.8 | 53.5 | 58.6 |
IF-Eval(Prompt Strict) | 84.3 | 86.5 | 84.8 | 40.4 | 78.3 | 60.5 | 61.0 |
Mathematics | |||||||
MATH-500(Pass@1) | 74.6 | 78.3 | 90.0 | 90.6 | 93.9 | 92.8 | 95.8 |
AIME 2024(Pass@1) | 9.3 | 16.0 | 63.6 | 50.0 | 69.7 | 55.5 | 68.2 |
AIME 2025(Pass@1) | 11.6 | 7.4 | 50.7 | 32.4 | 48.2 | 38.8 | 55.4 |
Code | |||||||
LiveCodeBench v5(Pass@1) | 32.9 | 38.9 | 53.8 | 41.9 | 53.1 | 37.6 | 57.8 |
LiveCodeBench v6(Pass@1) | 30.9 | 37.2 | 46.8 | 39.1 | 31.9 | 23.9 | 49.3 |
MiMo-7B系列模型内部对比:
基准测试 | MiMo-7B-Base | MiMo-7B-RL-Zero | MiMo-7B-SFT | MiMo-7B-RL |
---|---|---|---|---|
Mathematics | ||||
MATH500(Pass@1) | 37.4 | 93.6 | 93.0 | 95.8 |
AIME 2024(Pass@1) | 32.9 | 56.4 | 58.7 | 68.2 |
AIME 2025(Pass@1) | 24.3 | 46.3 | 44.3 | 55.4 |
Code | ||||
LiveCodeBench v5(Pass@1) | 32.9 | 49.1 | 52.3 | 57.8 |
LiveCodeBench v6(Pass@1) | 29.1 | 42.9 | 45.5 | 49.3 |
评估时温度参数设为0.6 ,AIME24和AIME25取32次重复实验的平均分;LiveCodeBench v5(20240801 - 20250201)、LiveCodeBench v6(20250201 - 20250501)、GPQA-Diamond和IF-Eval取8次重复实验的平均分;MATH500和SuperGPQA只运行一次。
SGLang推理
SGLang团队对MiMo提供了支持,不久后还会支持MTP。
安装和启动SGLang服务器的示例脚本:
# 从主分支安装最新的SGlang
python3 -m uv pip install "sglang[all] @ git+https://github.com/sgl-project/sglang.git/@main#egg=sglang&subdirectory=python"
# 启动SGLang服务器
python3 -m sglang.launch_server --model-path XiaomiMiMo/MiMo-7B-RL --host 0.0.0.0 --trust-remote-code
详细用法参考SGLang文档。
vLLM推理
推荐使用小米基于vLLM 0.7.3开发的分支进行MiMo-MTP推理。
示例脚本:
from vllm import LLM, SamplingParams
model_path = "/path/to/MiMo"
llm = LLM(
model=model_path,
trust_remote_code=True,
num_speculative_tokens=1,
disable_log_stats=False
)
sampling_params = SamplingParams(temperature=0.6)
conversation = [
{
"role": "system",
"content": ""
},
{
"role": "user",
"content": "Write an essay about the importance of higher education."
},
]
outputs = llm.chat(conversation,
sampling_params=sampling_params,
use_tqdm=False)
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
print("=" * 80)
也可以不加载MTP参数,为MiMo注册vLLM加载器。把registry/register_mimo_in_vllm.py
复制到指定目录,导入并使用:
import register_mimo_in_vllm
from vllm import LLM, SamplingParams
model_path = "/path/to/MiMo"
llm = LLM(
model=model_path,
trust_remote_code=True,
# num_speculative_tokens=1,
disable_log_stats=False
)
sampling_params = SamplingParams(temperature=0.6)
HuggingFace推理
示例脚本:
from transformers import AutoModel, AutoModelForCausalLM, AutoTokenizer
model_id = "XiaomiMiMo/MiMo-7B-RL"
model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(model_id)
inputs = tokenizer(["Today is"], return_tensors='pt')
output = model.generate(**inputs, max_new_tokens = 100)
print(tokenizer.decode(output.tolist()[0]))
建议使用小米基于vLLM 0.7.3开发的分支,系统提示词留空。目前暂未用其他推理引擎验证MiMo,欢迎基于Huggingface仓库中的模型定义进行相关开发。
引用
如需引用MiMo,使用以下格式:
@misc{xiaomi2025mimo,
title={MiMo: Unlocking the Reasoning Potential of Language Model – From Pretraining to Posttraining},
author={{Xiaomi LLM-Core Team}},
year={2025},
primaryClass={cs.CL},
url={https://github.com/XiaomiMiMo/MiMo},
}