MiMo-7B:从预训练到强化学习,解锁语言模型的推理潜能

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 目前,大多数成功的 强化学习 工作,包括开源研究,都依赖于相对较大的基础模型,例如 32B 模型,特别是在增强代码推理能力方面。业内普遍认为在一个小模型中同时提升数学和代码能力是具有挑战性的。然而,小米MiMo研究团队相信 RL 训练的推理模型的有效性取决于基础模型固有的推理潜力。为了完全解锁语言模型的推理潜力,不仅需要关注后训练,还需要针对推理定制预训练策略。

引言

目前,大多数成功的 强化学习 工作,包括开源研究,都依赖于相对较大的基础模型,例如 32B 模型,特别是在增强代码推理能力方面。业内普遍认为在一个小模型中同时提升数学和代码能力是具有挑战性的。然而,小米MiMo研究团队相信 RL 训练的推理模型的有效性取决于基础模型固有的推理潜力。为了完全解锁语言模型的推理潜力,不仅需要关注后训练,还需要针对推理定制预训练策略。

MiMo-7B,这是一系列从零开始训练并为推理任务而生的模型。MiMo-7B-Base 的 RL 实验表明,MiMo-7B模型具有非凡的推理潜力,甚至超过了更大的 32B 模型。此外,研究团队在冷启动的 SFT 模型上进行了 RL 训练,生成了 MiMo-7B-RL,旨在通过强化学习(RL)提升数学推理和代码生成能力。模型的设计目标是解决复杂任务,特别是在长上下文理解和多步推理方面表现出色,与 OpenAI o1-mini 的性能相匹配。

image.gif 编辑

研究团队开源了 MiMo-7B 系列,包括基础模型、SFT 模型、从基础模型训练的 RL 模型以及从 SFT 模型训练的 RL 模型的Checkpoint。 研究团队相信这份报告及这些模型将为开发强大的推理 LLM 提供有价值的见解,从而造福更广泛的社区。

模型亮点

  • 预训练:为推理而生的基础模型
  • 优化了数据预处理流程,增强了文本提取工具包,并应用多维度数据过滤以提高预训练数据中的推理模式密度。同时,还采用多种策略生成大量多样化的合成推理数据。
  • 采用三阶段的数据混合策略进行预训练。总体而言,MiMo-7B-Base 在大约 25 万亿个令牌上进行了预训练。
  • 将多令牌预测作为额外的训练目标纳入其中,这增强了模型性能并加速了推理过程。
  • 后训练方案:开创性的推理模型
  • 研究团队精心挑选了 130K 个数学和代码问题作为强化学习训练数据,这些问题可以通过基于规则的验证器进行验证。每个问题都经过仔细清理和难度评估,以确保质量。仅使用基于规则的准确性奖励来避免潜在的奖励漏洞。
  • 为了缓解具有挑战性的代码问题的稀疏奖励问题,研究团队引入了由测试难度驱动的代码奖励。通过对不同难度级别的测试用例分配细粒度分数,可以更有效地通过密集奖励信号优化策略。
  • 对简单问题实施了数据重采样策略,以提高展开采样效率并稳定策略更新,特别是在强化学习训练的后期阶段。
  • 强化学习基础设施
  • 研究团队开发了一个Seamless Rollout引擎,以加速强化学习训练和验证。该设计集成了连续rollout、异步奖励计算和提前终止,以最小化 GPU 空闲时间,实现了 2.29倍 的更快训练速度和 1.96倍的更快验证速度。
  • 同时,在 vLLM 中支持 MTP,并增强了 RL 系统中推理引擎的鲁棒性。

模型结构

MiMo-7B 的 MTP 层在预训练和 SFT 期间进行调优,并在强化学习期间冻结。使用一层 MTP 进行推测解码时,接受率约为 90%。

image.gif 编辑

模型链接:https://modelscope.cn/collections/MiMo-7edb0ab729c744

模型评估

基准测试

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

通用

             

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

数学

             

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

代码

             

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

数学

       

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

代码

       

LiveCodeBench v5

(Pass@1)

32.9

49.1

52.3

57.8

LiveCodeBench v6

(Pass@1)

29.1

42.9

45.5

49.3

评估是在 temperature=0.6 的条件下进行的。

AIME24 和 AIME25 是基于 32 次重复的平均得分。LiveCodeBench v5 (20240801-20250201),LiveCodeBench v6 (20250201-20250501),GPQA-Diamond 和 IF-Eval 是基于 8 次重复的平均得分。MATH500 和 SuperGPQA 是单次运行的结果。

最佳实践

模型推理

使用transformers推理

from modelscope import AutoModel, AutoModelForCausalLM, AutoTokenizer
model_id = "XiaomiMiMo/MiMo-7B-Base"
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]))

image.gif

模型部署

SGLang 推理

感谢 SGLang 团队的贡献,我们在 24 小时内支持了 SGLang 主流中的 MiMo,MTP 即将到来。

示例脚本

# Install the latest SGlang from main branch
python3 -m uv pip install "sglang[all] @ git+https://github.com/sgl-project/sglang.git/@main#egg=sglang&subdirectory=python"
# Launch SGLang Server
SGLANG_USE_MODELSCOPE=true python3 -m sglang.launch_server --model-path XiaomiMiMo/MiMo-7B-RL --host 0.0.0.0 --trust-remote-code

image.gif

模型微调

ms-swift已经支持了MiMo-7B系列模型的微调。ms-swift是魔搭社区官方提供的大模型与多模态大模型训练部署框架。ms-swift开源地址:https://github.com/modelscope/ms-swift

我们将展示可运行的微调demo,并给出自定义数据集的格式。

在开始微调之前,请确保您的环境已准备妥当。

# pip install git+https://github.com/modelscope/ms-swift.git
git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
pip install -e .

image.gif

自定义数据集格式如下,指定--dataset <dataset-path>即可开始训练:

# 通用格式
{"messages": [
    {"role": "system", "content": "<system-prompt>"},
    {"role": "user", "content": "<query1>"},
    {"role": "assistant", "content": "<response1>"}
]}
# 思考数据集格式
{"messages": [
    {"role": "user", "content": "浙江的省会在哪"},
    {"role": "assistant", "content": "<think>\n...\n</think>\n\n浙江的省会在杭州。"}
]}

image.gif

我们以 XiaomiMiMo/MiMo-7B-RL 模型为例,使用自我认知数据集进行训练。由于自我认知数据集不含思考链路,可以通过在训练时指定--loss_scale ignore_empty_think忽略<think>\n\n</think>\n\n的损失计算,缓解模型推理能力的下降。

CUDA_VISIBLE_DEVICES=0 \
swift sft \
    --model XiaomiMiMo/MiMo-7B-RL \
    --train_type lora \
    --dataset 'liucong/Chinese-DeepSeek-R1-Distill-data-110k-SFT#1000' \
              'swift/self-cognition:empty_think#500' \
    --torch_dtype bfloat16 \
    --num_train_epochs 1 \
    --per_device_train_batch_size 1 \
    --per_device_eval_batch_size 1 \
    --learning_rate 1e-4 \
    --lora_rank 8 \
    --lora_alpha 32 \
    --target_modules all-linear \
    --gradient_accumulation_steps 16 \
    --eval_steps 50 \
    --save_steps 50 \
    --save_total_limit 2 \
    --logging_steps 5 \
    --max_length 2048 \
    --output_dir output \
    --warmup_ratio 0.05 \
    --dataloader_num_workers 4 \
    --loss_scale ignore_empty_think \
    --model_author swift \
    --model_name swift-robot

image.gif

训练显存占用:

image.gif 编辑

训练效果展示:

image.gif 编辑

训练完成后,使用以下命令对训练后的权重进行推理,这里的`--adapters`需要替换成训练生成的last checkpoint文件夹。

CUDA_VISIBLE_DEVICES=0 \
swift infer \
    --adapters output/vx-xxx/checkpoint-xxx \
    --stream true \
    --max_new_tokens 2048 \
    --temperature 0

image.gif

推送模型到ModelScope:

CUDA_VISIBLE_DEVICES=0 \
swift export \
    --adapters output/vx-xxx/checkpoint-xxx \
    --push_to_hub true \
    --hub_model_id '<your-model-id>' \
    --hub_token '<your-sdk-token>'

image.gif

目录
相关文章
|
1月前
|
人工智能 自然语言处理 测试技术
UGMathBench:评估语言模型数学推理能力的动态基准测试数据集
近年来,人工智能蓬勃发展,自然语言模型(LLM)进展显著。语言模型被广泛应用于自动翻译、智能客服、甚至医疗、金融、天气等领域。而研究者们仍在不断努力,致力于提高语言模型的规模和性能。随着语言模型的蓬勃发展,评估一个语言模型的性能变得越来越重要。其中一个重要的评估指标,就是衡量语言模型的推理能力和解决数学问题的能力。
179 38
|
30天前
|
监控 Kubernetes Go
日志采集效能跃迁:iLogtail 到 LoongCollector 的全面升级
LoongCollector 在日志场景中实现了全面的重磅升级,从功能、性能、稳定性等各个方面均进行了深度优化和提升,本文我们将对 LoongCollector 的升级进行详细介绍。
281 86
|
30天前
|
人工智能 资源调度 监控
LangChain脚本如何调度及提效?
本文介绍了通过任务调度系统SchedulerX管理LangChain脚本的方法。LangChain是开源的大模型开发框架,支持快速构建AI应用,而SchedulerX可托管AI任务,提供脚本版本管理、定时调度、资源优化等功能。文章重点讲解了脚本管理和调度、Prompt管理、资源利用率提升、限流控制、失败重试、依赖编排及企业级可观测性等内容。同时展望了AI任务调度的未来需求,如模型Failover、Tokens限流等,并提供了相关参考链接。
178 28
LangChain脚本如何调度及提效?
|
30天前
|
人工智能 监控 安全
面对MCP"工具投毒",我们该如何应对
本文探讨了MCP(Model Context Protocol)的安全风险与防护措施。MCP作为AI系统与外部工具交互的标准框架,虽提升了插件兼容性,但也带来了“工具投毒”等安全威胁。攻击者可通过篡改工具描述,诱导模型执行非授权操作,如读取敏感文件。文章详细分析了攻击原理,并通过复刻实验展示了如何利用MCP客户端/服务器代码实现此类攻击。为应对风险,提出了基于大模型智能评估和eBPF技术的两种安全可观测方案:前者通过内置评估模板检测潜在威胁,后者实时监控系统运行时行为,结合两者可有效提升MCP系统的安全性。
637 92
面对MCP"工具投毒",我们该如何应对
|
1月前
|
机器学习/深度学习 设计模式 人工智能
深度解析Agent实现,定制自己的Manus
文章结合了理论分析与实践案例,旨在帮助读者系统地认识AI Agent的核心要素、设计模式以及未来发展方向。
796 99
深度解析Agent实现,定制自己的Manus
|
1月前
|
人工智能 文字识别 安全
亚太唯一|阿里云实人认证获权威机构认可
构筑Deepfake下金融安全新防线
1509 72
|
1月前
|
机器学习/深度学习 人工智能 数据库
RAG 2.0 深入解读
本文从RAG 2.0 面临的主要挑战和部分关键技术来展开叙事,还包括了RAG的技术升级和关键技术等。
431 84
|
1月前
|
机器学习/深度学习 存储 人工智能
浅入浅出——生成式 AI
团队做 AI 助理,而我之前除了使用一些 AI 类产品,并没有大模型相关的积累。故先补齐一些基本概念,避免和团队同学沟通起来一头雾水。这篇文章是学习李宏毅老师《生成式 AI 导论》的学习笔记。
240 27
浅入浅出——生成式 AI
|
1月前
|
人工智能 安全 应用服务中间件
阿里巴巴 MCP 分布式落地实践:快速转换 HSF 到 MCP server
本文分享了阿里巴巴内部将大规模HSF服务快速转换为MCP Server的实践经验,通过Higress网关实现MCP协议卸载,无需修改代码即可接入MCP生态。文章分析了MCP生态面临的挑战,如协议快速迭代和SDK不稳定性,并详细介绍了操作步骤及组件功能。强调MCP虽非终极解决方案,但作为AI业务工程化的起点具有重要意义。最后总结指出,MCP只是AI原生应用发展的第一步,未来还有更多可能性值得探索。
700 48
|
1月前
|
人工智能 API 开发者
用Qwen3+MCPs实现AI自动发布小红书笔记!支持图文和视频
魔搭自动发布小红书MCP,是魔搭开发者小伙伴实现的小红书笔记自动发布器,可以通过这个MCP自动完成小红书标题、内容和图片的发布。
731 41

热门文章

最新文章