MiMo: Unlocking the Reasoning Potential of Language Model – From Pretraining to Posttraining
MiMo: Unlocking the Reasoning Potential of Language Model – From Pretraining to Posttraining
作者/机构: LLM-Core Xiaomi
A1 主要贡献
本文介绍了为推理任务而生的 7B 参数大规模语言模型 MiMo-7B,其在预训练和后训练阶段都进行了优化。研究的核心问题是如何通过预训练和后训练策略的协同优化,充分释放小规模语言模型的推理潜力,使其在数学、代码和通用推理任务上达到甚至超越更大规模模型的性能。
预训练:为推理而生的基础模型
* 数据处理优化:优化了数据预处理流程,增强了文本提取工具包,并应用多维度数据过滤,以提高预训练数据中推理模式的密度。同时,采用多种策略生成了大量多样化的合成推理数据。
* 三阶段数据混合策略:预训练采用了三阶段数据混合策略。MiMo-7B-Base 总共在约 25 万亿个 token 上进行了预训练。
* 多词元预测(MTP):将多词元预测(Multiple-Token Prediction)作为一个额外的训练目标,这不仅增强了模型性能,还加速了推理过程。
后训练方案:开创性的推理模型
* 高质量 RL 数据集:精心整理了 130K 个可由基于规则的验证器验证的数学和代码问题作为强化学习(RL)训练数据。每个问题都经过仔细清洗和难度评估以确保质量。训练中仅使用基于规则的准确性奖励,以避免潜在的奖励操纵(reward hacking)。
* 测试难度驱动的奖励机制:为了缓解高难度代码问题中的稀疏奖励问题,引入了一种由测试用例难度驱动的代码奖励机制。通过为不同难度的测试用例分配细粒度的分数,策略可以通过更密集的奖励信号得到更有效的优化。
* 数据重采样策略:实施了一种数据重采样策略,以提高 rollout 采样的效率并稳定策略更新,尤其是在 RL 训练的后期阶段。
RL 基础设施
* 无缝 Rollout 引擎:开发了一个无缝 Rollout 引擎(Seamless Rollout Engine)来加速 RL 训练和验证。该设计集成了连续 rollout、异步奖励计算和提前终止,以最小化 GPU 空闲时间,实现了 2.29 倍的训练加速和 1.96 倍的验证加速。
* vLLM 增强:在 vLLM 中支持 MTP,并增强了 RL 系统中推理引擎的鲁棒性。
评估结果摘要
* MiMo-7B-Base:在通用知识和编码任务上优于现有的 7B 参数级开源模型。在 BBH 上取得 75.2 分,展现了卓越的推理能力。在 SuperGPQA 上的强劲表现进一步突显了其处理复杂研究生水平问题的能力。
* MiMo-7B-RL-Zero:在数学和代码任务上的 RL 训练性能超过了 32B 基础模型,这突显了其在 RL 训练中的效率和潜力。
* MiMo-7B-RL:取得了优异的推理性能。在 AIME 2025 上得分 55.4,比 o1-mini 高出 4.7 分。在算法代码生成任务中,MiMo-7B-RL 在 LiveCodeBench v5 和最新的 v6 版本上均显著优于 OpenAI o1-mini,展现了强大而稳定的能力,同时保持了有竞争力的通用性能。
A2 方法细节
2. 预训练
本节详细介绍了在 MiMo-7B 预训练过程中增强推理能力的策略,包括预训练数据构建、模型架构设计和超参数设置,并展示了 MiMo-7B-Base 模型的推理潜力。
2.1 预训练数据
预训练语料库构成 MiMo-7B 的预训练语料库整合了包括网页、学术论文、书籍、编程代码和合成数据在内的多种来源。研究团队认为,在预训练阶段加入更多具有高质量推理模式的数据,可以显著增强最终语言模型的推理潜力。为实现此目标,首先优化了自然文本预处理流程以提高质量和推理数据密度;其次,利用先进的推理模型生成了广泛的合成推理数据;最后,实施了三阶段数据混合策略,以最大化模型在各种任务和领域中的推理潜力。
更好的推理数据提取 网页天然包含高密度推理模式的内容,如编程教程和数学博客。然而,常用的提取器(如 Trafilatura 【4, Trafilatura: A web scraping library and command-line tool for text discovery and extraction, 2021, ACL】)常常无法保留网页中嵌入的数学公式和代码片段。为了解决这个限制,团队开发了一种新的 HTML 提取工具,专门针对数学内容【39, 46, 85】、代码块和论坛网站进行了优化。对于论文和书籍,增强了 PDF 解析工具包以更好地处理 STEM 和代码内容。通过这些优化的提取工具,成功为后续处理阶段保留了大量的推理模式。
快速全局去重 数据去重在提高训练效率和减少过拟合方面起着重要作用。团队在所有网页转储数据上采用了 URL 去重和 MinHash 去重【6, On the resemblance and containment of documents, 1997, IEEE】。通过极致的工程优化,一天之内即可完成这个全局去重过程。由于去重算法对高质量和低质量文本一视同仁,缺乏内容感知,因此后续根据多维度质量分数调整了最终的数据分布。
多维度数据过滤 具有丰富推理模式的高质量预训练数据对于开发具有强大推理能力的模型至关重要。研究发现,常用的基于启发式规则的过滤器【47, 48】会错误地过滤掉包含大量数学和代码内容的高质量网页。为了解决这一限制,团队转而微调小型 LLM 作为数据质量标注器,进行领域分类和多维度质量评估。
合成推理数据 推理模式的另一个关键来源是由先进推理模型生成的合成数据。团队采用多种策略来生成多样化的合成推理响应。首先,选择标有高推理深度的 STEM 内容,并提示模型基于源材料进行有见地的分析和深度思考。其次,收集数学和代码问题,并提示推理模型解决它们。此外,还加入了通用领域的查询,特别是创意写作任务。值得注意的是,初步实验表明,与非推理数据不同,合成推理数据可以进行极高轮次的训练而没有过拟合风险。
三阶段数据混合 为了优化预训练数据分布,最终模型训练采用了三阶段数据混合策略:
* 阶段 1:纳入除推理任务查询的合成响应外的所有数据源。对广告、新闻、招聘信息以及知识密度和推理深度不足的材料等过度表示的内容进行降采样。同时,对来自专业领域的优质数据进行升采样。
* 阶段 2:在阶段 1 精选的分布基础上,将数学和代码相关数据显著增加到混合数据的约 70%。这种方法旨在增强专业技能而不损害通用语言能力【84, Deepseekcoder-v2: Breaking the barrier of closed-source models in code intelligence, 2024】。前两个阶段使用 8,192 token 的上下文长度进行训练。
* 阶段 3:为了提升解决复杂任务的能力,进一步加入了约 10% 的数学、代码和创意写作查询的合成响应。同时,在最后阶段将上下文长度从 8,192 扩展到 32,768。
通过这个过程,构建了一个包含约 25 万亿 token 的大规模高质量预训练数据集。
2.2 模型架构
基础架构 MiMo-7B 遵循通用的仅解码器 Transformer 架构【49, 69】,并包含了分组查询注意力(GQA)【1, GQA: Training generalized multi-query transformer models from multi-head checkpoints, 2023】、前置 RMSNorm(pre-RMSNorm)【83, Root mean square layer normalization, 2019】、SwiGLU 激活函数【10, Language modeling with gated convolutional networks, 2017】和旋转位置嵌入(RoPE)【61, Roformer: Enhanced transformer with rotary position embedding, 2024】,这与 Llama【15, 68】和 Qwen【74】等模型相似。推理模型由于其冗长的自回归生成过程,常常面临推理速度瓶颈,尽管其推理路径中连续的 token 之间观察到高度相关和可预测性。
MTP 模块 受 DeepSeek-V3【34, Deepseek-v3 technical report, 2024a】的启发,模型将多词元预测(MTP)【14, Better & faster large language models via multi-token prediction, 2024】作为一个额外的训练目标。这种方法使模型能够进行策略性地预先规划并生成有助于更准确、可能更快地预测未来 token 的表示。如图 2 所示,团队为预训练和推理实现了不同的 MTP 设置。在预训练期间,仅使用单个 MTP 层,因为初步研究表明多个 MTP 层不会带来进一步的改进。相反,团队发现多个并行的 MTP 层通过推测解码能显著加速推理。为了实现这一点,在预训练后,将预训练的单个 MTP 层复制成两个相同的副本。然后,在主模型和第一个 MTP 层冻结的情况下,微调两个新的 MTP 层以加速推理。
MTP 推理加速 在推理过程中,这些 MTP 层可用于推测解码【31, 73】以减少生成延迟。团队在 AIME24 基准测试上评估了 MTP 层的性能。第一个 MTP 层实现了约 90% 的极高接受率,而即便是第三个 MTP 层也保持了超过 75% 的接受率。这种高接受率使得 MiMo-7B 能够提供更快的解码速度,特别是在需要极长输出的推理场景中。
2.3 超参数
模型超参数 Transformer 层数设置为 36,隐藏维度为 4,096。FFN 的中间隐藏维度设置为 11,008。注意力头的数量为 32,键值组(key-value groups)的数量为 8。
训练超参数 优化方面,使用 AdamW【40, Decoupled weight decay regularization, 2019】,其中 $\beta_1 = 0.9$,$\beta_2 = 0.95$,权重衰减为 0.1。应用了梯度裁剪,最大范数为 1.0。在前两个预训练阶段,最大序列长度为 8,192 token,RoPE base 为 10,000。阶段 3 将这些参数分别扩展到 32,768 token 和 640,000。学习率调度在阶段 1 开始,在前 84B token 内从 0 线性预热到 1.07 × 10⁻⁴,然后在 10.2T token 内保持 1.07 × 10⁻⁴ 不变,最后在 7.5T token 内通过余弦衰减到 3 × 10⁻⁵。这个 3 × 10⁻⁵ 的学习率在整个阶段 2(4T tokens)和阶段 3 的前 1.5T tokens 期间保持不变。随后,学习率在最后 500B tokens 内通过余弦调度衰减到 1 × 10⁻⁵。在前 168B token 内,实施了线性批大小预热至 2,560,并在阶段 1 和阶段 2 的剩余时间内保持该值。在阶段 3,批大小固定为 640。MTP 损失权重在前 10.3T token 设置为 0.3,然后在预训练的剩余时间内减少到 0.1。
3. 后训练
在预训练阶段之后,对 MiMo-7B-Base 进行了后训练。具体来说,通过直接对 MiMo-7B-Base 进行强化学习开发了 MiMo-7B-RL-Zero,以及从 MiMo-7B 的 SFT 版本训练得到了 MiMo-7B-RL。
3.1 监督微调
SFT 数据 SFT 数据由开源数据和专有的蒸馏数据组合而成。为确保最佳质量和多样性,实施了三阶段预处理流程。首先,消除了所有与评估基准有 16-gram 重叠的训练查询,以防止数据泄露。然后,排除了语言混合或响应不完整的样本。最后,将每个查询的响应数量上限设为八个,以在保持多样性和防止冗余之间取得平衡。经过此预处理后,最终的 SFT 数据集包含约 50 万个样本。
SFT 超参数 使用 3 × 10⁻⁵ 的恒定学习率和 128 的批大小对 MiMo-7B-Base 模型进行微调。在训练期间,样本被打包到最大长度 32,768 token。
3.2 RL 数据管理
数据构成 使用两类可验证的问题,即数学和代码,来构建 RL 训练数据。初步研究表明,高质量的问题集在稳定 RL 训练过程和进一步增强 LLM 的推理能力方面起着关键作用。
数学数据 数学问题集来源于多种渠道,包括开源数据集和专有收集的竞赛级问题集。为降低奖励操纵的风险,使用 LLM 过滤掉基于证明和多项选择的问题。与最近将问题修改为整数答案的方法不同,保留了原始问题以最小化奖励操纵。此外,进行了全局 n-gram 去重,并仔细地对问题集与评估基准进行了去污染处理。使用基于模型的难度评估来进一步提高数据集的质量。最初,过滤掉了先进推理模型无法解决的问题,识别出那些过难或答案错误的问题。对于剩余问题,对 MiMo-7B 的 SFT 版本进行了 16 次 rollout,并排除了通过率超过 90% 的问题。值得注意的是,这个过程从原始问题集中移除了大约 50% 的简单问题。数据清洗后,建立了一个包含 10 万个问题的数学训练集。
代码数据 对于编码问题,策划了一个高质量的训练集,包含开源数据集和新收集的问题集。移除了没有测试用例的问题。对于有黄金解法的问题,排除了黄金解法未能通过所有测试用例的问题。对于没有黄金解法的问题,则丢弃了在先进推理模型的 16 次 rollout 中没有任何测试用例能被解决的问题。与数学数据类似,利用 MiMo-7B 的 SFT 版本过滤掉在所有 16 次 rollout 中都完美解决的简单问题。这个严格的清洗过程产生了 3 万个代码问题。在每个 RL 迭代中,评估数千个问题以计算奖励,每个问题可能包含数百个测试用例。为了提高奖励计算效率并消除 GPU 空闲时间,开发了一个在线评测环境,能够并行执行极高数量的单元测试。
奖励函数 在训练过程中仅使用基于规则的准确性奖励。对于数学数据,使用基于规则的 Math-Verify 库来评估响应的正确性。对于代码问题,实施了 3.3.1 节详述的测试难度驱动的奖励。没有引入额外的奖励,如格式奖励和长度惩罚奖励。
3.3 RL 训练方案
核心算法 采用了一个修改版的组相对策略优化(GRPO)【59, Deepseekmath: Pushing the limits of mathematical reasoning in open language models, 2024】,并结合了研究界最近提出的改进【22, 76】。对于每个问题 p,算法从旧策略 $\pi_{old}$ 中采样一组响应 $\{y_1, y_2, ..., y_N\}$,并通过最大化以下目标来更新策略 $\pi_\theta$:
其中 $c_{low}$ 和 $c_{high}$ 是超参数。$A_{p,i}$ 是优势(advantage),由同一组中响应的奖励 $\{r_1, r_2, ..., r_N\}$ 计算得出:
算法改进 在原始 GRPO 算法的基础上,整合了近期研究的几项增强功能:
* 移除 KL 损失:【18, 22】的研究表明,简单地移除 KL 损失能有效释放策略模型的全部潜力,而不会损害训练稳定性。
* 动态采样:【76】提出,在 RL rollout 阶段,过采样并过滤掉通过率为 1 和 0 的提示,使得批次中所有提示都具有有效梯度,同时保持批次大小一致。该策略在策略训练过程中自动校准问题难度。
* Clip-Higher:【76】提出,增加公式 1 中的上裁剪边界 $c_{high}$,同时保持下裁剪边界 $c_{low}$ 固定。这可以缓解熵收敛问题,并促进策略探索新的解决方案。
在训练过程中,识别出影响模型性能的两个关键挑战:代码问题的稀疏奖励和动态采样的效率下降。因此,分别提出了测试复杂度驱动的奖励函数和简单数据重采样方法。
3.3.1 测试难度驱动的奖励
问题与动机 当前,对于算法代码生成任务,现有的 RL 工作(如 Deepseek-R1【17】)采用基于规则的奖励策略,即只有当生成的代码通过了给定问题的所有测试用例时,解决方案才会获得奖励。然而,对于困难的算法问题,模型可能永远不会收到任何奖励,这使其无法从这些挑战性案例中学习,并降低了动态采样的训练效率。
IOI 计分规则启发 为了解决这个限制,提出了一种新的奖励机制,即测试难度驱动的奖励。其设计灵感来源于国际信息学奥林匹克竞赛(IOI)【24, International olympiad in informatics, 2024】的计分规则。在 IOI 比赛中,每个完整的问题被分成多个子任务,参赛者成功完成每个子任务都会获得分数。每个子任务都会有不同难度的测试。为子任务分配不同的分数能更好地反映人类解决问题的方式。对于有挑战性的问题,模型仍然可以通过解决部分子任务来获得部分分数,这使得在训练中能更好地利用这些困难样本。
基于通过率分配难度 提出了一种根据测试用例的难度进行分组的技术。利用多个模型对每个问题进行多次 rollout,并计算每个测试用例在所有模型生成的解决方案中的通过率。然后,根据它们的通过率将测试用例聚类到不同的难度级别,较低的通过率表示较高的难度。图 5 的左侧部分展示了某个问题的每个测试用例的通过率和难度级别。结果显示出测试难度的明显分层,并表明能力更强的模型实现了更高的通过率。
奖励规则 在将测试用例分类到不同难度级别后,基于这些难度级别设计了两种奖励方案:严格方案和宽松方案。
1. 严格奖励 (Strict Reward):在该方案下,一个解决方案只有在通过了该难度组以及所有更低难度组中的所有测试时,才能获得该难度级别对应的奖励。
2. 宽松奖励 (Soft Reward):相比之下,宽松奖励方案将每个组的总分平均分配给其下的测试用例。最终的奖励是所有通过的测试用例的分数之和。
图 5 的右侧部分比较了两种奖励方案与没有测试难度驱动奖励的基线所达到的性能。
3.3.2 简单数据过滤与重采样
问题背景 在 RL 训练期间,随着策略的改进,越来越多的问题达到了 1 的完美通过率。在动态采样机制下,这些问题随后会从用于策略更新的批次中被过滤掉。这种过滤导致采样效率急剧下降,因为需要更多的 rollout 来构建一个固定大小的批次。一个直接解决此效率问题的方法是从训练数据中完全移除具有完美通过率的问题。然而,初步研究表明,这种方法会给策略更新带来显著的不稳定性。
解决方案 为了在不冒策略崩溃风险的情况下提高采样效率,开发了一种简单数据重采样策略。在训练过程中,维护一个简单数据池,用于存储具有完美通过率的问题。在执行 rollout 时,有概率 p(实验中为 10%)从这个简单数据池中采样数据。该策略有效地稳定了策略更新,同时提高了采样效率,尤其是在 RL 训练的后期阶段。
3.3.3 超参数
在实验中,训练批大小为 512,actor 的 mini-batch 大小为 32。每个训练迭代执行 16 次梯度更新,学习率为 1e-6。最大序列长度设置为 32,768 token,以支持复杂的推理任务。在训练阶段,temperature 和 top-p 参数均配置为 1.0,以促进输出的多样性。
3.4 RL 基础设施
系统概览 开发了无缝 Rollout 引擎并增强了 vLLM 的鲁棒性,以实现高效的基于动态采样的 RL 训练。RL 系统基于 verl 【60, Hybridflow: A flexible and efficient rlhf framework, 2024】(一个开源的 RL 训练库)构建。该库使用 Ray 【44, Ray: A distributed framework for emerging {AI} applications, 2018】来管理计算和通信,在 Ray Actors 中实现 rollout 和训练阶段,并通过 Ray Objects 交换训练数据。尽管 verl 支持各种 RL 算法的灵活实现,但它在 rollout 和奖励计算阶段都存在 GPU 空闲时间的问题。由于响应长度的偏斜,观察到大多数 GPU 在等待少数长序列 rollout worker 时保持空闲,导致计算资源浪费和训练过程缓慢。为了同时优化 GPU 利用率和减少样本浪费,开发了无缝 Rollout 引擎,它在执行异步奖励计算的同时,机会性地将样本批次填充到 rollout 中。系统建立在 vLLM 推理引擎【29, Efficient memory management for large language model serving with pagedattention, 2023】之上,并与开源社区合作,增强了 vLLM 在 verl 框架内“外部启动”模式的鲁棒性。此外,在 vLLM 中实现了 MTP,以支持 MiMo-7B 和 MiMo-7B-RL。
3.4.1 无缝 Rollout 引擎
核心设计 无缝 Rollout 引擎通过高效的任务调度优化 rollout worker 的 GPU 利用率,在连续操作期间最小化空闲时间。该引擎包括以下组件:(a) 连续 rollout,(b) 异步奖励计算,和 (c) 提前终止。它在训练中实现了 2.29 倍的加速,在验证中实现了 1.96 倍的加速。
连续 Rollout 无缝 Rollout 引擎的核心在于主动处理已完成的 rollout 任务并启动新的 rollout。与朴素的动态采样实现(延迟奖励计算直到所有 rollout worker 完成)不同,无缝 Rollout 引擎消除了生成和奖励阶段之间的同步障碍。它主动监控已完成的 worker,立即计算它们的奖励,并按需触发新的 rollout。计算奖励后,更新有效样本数量和当前步骤的通过率统计数据,然后根据这些统计数据,如果活动任务不足以满足训练需求,则启动新的 rollout 任务。如图 6 所示,无缝 Rollout 引擎在完成 rollout 任务 ③④①⑥ 后启动一个新任务以满足需求,而在完成任务 ②⑤⑦ 后,它预测正在进行的任务足以满足需求,因此不安排额外的任务。
异步奖励计算 虽然数学数据的奖励计算很快,但评测代码相关数据会产生显著开销,导致 GPU 长时间空闲。此外,朴素奖励计算的顺序性未能利用现代处理单元的多处理能力。为解决这些问题,采用 Ray 启动异步奖励计算,这有助于并发管理 rollout 和奖励任务。任务完成后,系统动态地将 rollout 输出转发用于奖励评估,或聚合结果以更新样本状态,如图 6 所示。为代码特定的奖励计算分配了专用服务器,以防止 rollout 管道中的瓶颈。
提前终止 当有效样本数量超过所需的训练批大小时,对正在进行的任务进行仔细管理变得至关重要。突然终止正在进行的任务往往会抑制长序列响应的生成,这可能会破坏 RL 训练动态的稳定性。为在减轻这种延迟的同时保持数据分布的完整性,实施了先进先出(first-in-first-out)的选择策略。仅当有效样本数满足批次要求且在这些选定样本之前启动的所有任务都已完成时,才会终止正在进行的任务。在图 6 中,最后一个 rollout 被中止,因为较早的样本已经达到了所需的批次大小。
实验分析 随机选择一个 5 步的训练轨迹来评估无缝 Rollout 引擎的性能。实验在 256 个 H20 GPU 上进行,结果见表 2。所有三个组件都有助于加快动态采样并减少 GPU 空闲时间。尽管没有动态采样的实验可以实现更高的吞吐量,但由于存在大量零梯度训练样本,它会导致显著的样本效率低下。配备所有三个组件的无缝 Rollout 引擎,与静态采样相比,实现了可比较的单步训练时间,同时表现出优越的样本效率。通过连续 rollout 和动态启动调度,无缝 Rollout 引擎将样本浪费率降低到约 15%。
加速验证 在验证期间,可以直接使用无缝 Rollout 引擎流式处理 rollout 和奖励任务。实现利用了异步奖励计算,实现了 1.96 倍的加速,同时将空闲 GPU 时间减少到 25%,如表 3 所示。值得注意的是,实验结果展示了无缝 Rollout 引擎在静态采样方面的潜力,如果验证数据集足够大,可以通过优化验证的批大小和采用连续 rollout 来实现进一步的加速。
3.4.2 基于 vLLM 的推理引擎
功能扩展 RL 系统采用 vLLM【29, Efficient memory management for large language model serving with pagedattention, 2023】作为推理引擎。为了适应模型的新特性,对该框架进行了扩展,增加了额外的功能。
MTP 支持 如 2.2 节所述,模型集成了 MTP 模块以增强性能。为模型实现并开源了 MTP 支持,从而为配备 MTP 的架构实现高效推理。
更好的鲁棒性 在 verl 中,vLLM 使用外部启动模式部署,这在某些场景下可能表现出不稳定性。增强了引擎的鲁棒性以解决这些问题。在抢占期间清除了前缀缓存中计算的块,以保持 KVCache 的一致性。在增加调度器步骤数时禁用了异步输出处理,以确保兼容性并优化性能。
A7 补充细节
3.6 讨论
本节分享了在探索 MiMo-7B 后训练过程中的见解和观察。
SFT 用于格式对齐 在从 MiMo-7B-Base 开始的 RL 训练初期,观察到模型主要学习适应答案提取函数,例如数学问题的 “\boxed{}”。因此,研究了一种“轻量级”SFT 来帮助基础模型与预期的答案格式对齐。然而,如图 7 所示,由此产生的 MiMo-7B-RL-LiteSFT 模型在推理潜力和最终性能上都失败了。虽然 MiMo-7B-RL-LiteSFT 的初始性能高于 MiMo-7B-RL-Zero,但在仅 500 步后就落后于基础模型的轨迹。此外,与经历了“更重”SFT 的 MiMo-7B-RL 相比,MiMo-7B-RL-LiteSFT 表现出类似的增长趋势,但由于其较差的起点而显著表现不佳,最终导致了较差的最终结果。
不同领域间的干扰 在从 MiMo-7B-Base 进行 RL 训练的后期阶段,保持数学和编码任务之间的性能平衡被证明是具有挑战性的。在训练步骤 2000 到 2500 之间,模型在代码问题上表现出持续改进,而其在数学推理任务上的性能则出现波动和下降。相比之下,在从 SFT 模型开始的 RL 训练中,两个领域都显示出一致的改进。对模型输出的分析表明,具有强大探索能力的基础模型倾向于对数学问题的奖励进行操纵。然而,对于代码问题,基于测试用例的验证器使得奖励利用变得困难得多。这凸显了高质量数学问题集对于确保稳健的 RL 训练的迫切需求。
语言混合惩罚 类似于 DeepSeek-R1-Zero,在对 MiMo-7B-Base 进行 RL 训练期间也观察到了语言混合问题。为了缓解这个问题,在奖励函数中引入了语言混合惩罚。然而,发现设计这样一个惩罚函数是具有挑战性的。虽然在英文响应中检测中文字符很简单,但反过来则要困难得多,因为数学公式和代码本身就包含英文字词。结果,该惩罚不仅未能完全解决语言混合问题,还引入了奖励操纵的风险,例如无论问题语言如何,总是生成英文响应。
SFT 数据规模的影响 在初步实验的基础上,研究将 SFT 数据集从约 50 万个实例大幅扩展到 600 万个。经验观察到,SFT 数据的大幅扩展导致模型在推理能力和泛化对话能力方面有显著提升,而没有损害其后续 RL 的潜力。如表 6 所示,使用 600 万 SFT 实例训练的模型在数学推理、代码推理、科学推理和通用对话能力等领域,相较于使用 50 万实例训练的对应模型,表现出显著的进步。重要的是,在增强的 SFT 阶段之后,随后用 RL 进行微调的模型也表现出持续的性能提升。
采用扩展生成预算的在线策略 RL 先前的经验研究表明,GRPO 的普通实现非常容易出现性能过早饱和。为了缓解这个问题,采用了在线策略(on-policy)RL 算法,这与 MiMo-VL-7B-RL 【63】中使用的方法类似。使用在线策略 RL 进行训练被证明非常稳定,同时也使模型效能在整个学习过程中持续增长。进一步扩展研究发现,在在线策略 RL 训练期间,持续提高生成长度预算能一致地提升模型性能。具体来说,RL 训练协议包括系统地将模型的生成长度从 32K 增加到 38K,再到 48K。这种生成预算的逐步扩展对于 7B 模型最终在数学推理上达到与 Deepseek-R1 相媲美的性能至关重要。MiMo-7B-RL-0530 模型已开源并公开可用。
A4 实验
实验环境
- 数据集:
- 预训练评估:BBH, MMLU, MMLU-Redux, MMLU-Pro, ARC, HellaSwag, PIQA, TriviaQA, NaturalQuestions, GPQA, SuperGPQA, DROP, RACE, AIME, GSM8K, MATH, LiveCodeBench, HumanEval, HumanEval+, MBPP, MBPP+, CRUXEval, WinoGrande, AGIEval, C-Eval, CMMLU, RULER。
- 后训练评估:MMLU-Pro, GPQA Diamond, SuperGPQA, IFEval, DROP, MATH500, AIME 2024 & 2025, LiveCodeBench v5 & v6。
- 模型架构:MiMo-7B 是一个 7B 参数的仅解码器 Transformer 模型。包含 36 个 Transformer 层,隐藏维度为 4,096,FFN 中间维度为 11,008,32 个注意力头和 8 个键值组。采用了 GQA, pre-RMSNorm, SwiGLU 激活函数和 RoPE。
- 硬件配置:RL 训练和验证在 256 个 H20 GPU 上进行。
- 软件配置:RL 框架基于 verl、Ray 和 vLLM 构建。
实验结果
预训练评估结果
MiMo-7B-Base 在预训练后展现出强大的潜力,在多个基准测试中优于同等规模的开源模型。
- 通用推理:在 BBH 上得分 75.2,超过 Qwen2.5-7B 约 5 分。在 SuperGPQA 上的结果显示了其解决研究生水平问题的强大能力。在 DROP 阅读理解基准上同样优于其他模型(见表 1)。
- 代码和数学推理:在 LiveCodeBench v5 上得分 32.9,远超 Llama-3.1-8B 和 Qwen-2.5-7B。在 AIME 2024 上得分 32.9,显著优于其他同等规模的基础模型(见表 1)。
- 推理能力上限:通过 pass@k 指标评估,MiMo-7B-Base 在所有基准和 k 值上都显著高于包括 32B 基线在内的所有对比模型,特别是在 LiveCodeBench 上,性能差距随 k 增大而稳步扩大,证明了其卓越的推理潜力(见图 3)。
- 长上下文理解:在 RULER 基准测试中,MiMo-7B-Base 在 32K 上下文窗口内的“大海捞针”(NIAH)任务上实现了近乎完美的检索性能。在需要长上下文推理的任务(如 CWE, FWE, VT)上也表现出色,验证了预训练策略的有效性(见图 4)。
后训练评估结果
经过后训练的 MiMo-7B-RL 模型在多个推理基准上取得了顶尖性能。
- 综合性能:在数学推理方面,MiMo-7B-RL 在同参数规模模型中达到顶级水平。在算法代码生成任务上,表现尤为出色,LiveCodeBench v5 和 v6 的得分均显著超过 OpenAI o1-mini 和 QwQ-32B-Preview。同时,模型保持了强大的通用性能,超过了 QwQ-32B-Preview 和 DeepSeek-R1-Distill-Qwen-7B(见表 4)。
- 不同 RL 路径对比:MiMo-7B-RL-Zero(从 Base 模型直接 RL)展现了强大的增长趋势。然而,MiMo-7B-RL(从 SFT 模型开始 RL)达到了更高的性能上限,在所有评估基准上均取得了最佳结果(见表 5)。
A5 结论
本文介绍了 MiMo-7B 系列大语言模型,通过优化的预训练和后训练过程,释放了其先进的推理能力。在预训练阶段接触了多样化的推理模式后,MiMo-7B-Base 拥有了卓越的推理潜力,表现优于规模大得多的模型。在后训练阶段,借助强大高效的 RL 框架,训练出了 MiMo-7B-RL-Zero 和 MiMo-7B-RL,它们在数学、代码和通用任务上展现了卓越的推理能力。希望这项工作能为开发更强大的推理模型提供有价值的见解。
A6 附录
贡献与致谢
我们衷心感谢所有贡献者,包括未在论文中列出的各位,感谢他们宝贵的支持和努力。每个角色中的作者按其名字的字母顺序排列。
核心贡献者
Bingquan Xia, Bowen Shen, Cici, Dawei Zhu, Di Zhang, Gang Wang, Hailin Zhang, Huaqiu Liu, Jiebao Xiao, Jinhao Dong, Liang Zhao, Peidian Li, Peng Wang, Shihua Yu, Shimao Chen, Weikun Wang, Wenhan Ma, Xiangwei Deng, Yi Huang, Yifan Song, Zihan Jiang
贡献者
Bowen Ye, Can Cai, Chenhong He, Dong Zhang, Duo Zhang, Guoan Wang, Hao Tian, Haochen Zhao, Heng Qu, Hongshen Xu, Jun Shi, Kainan Bao, Kai Fang, Kang Zhou, Kangyang Zhou, Lei Li, Menghang Zhu, Nuo Chen, Qiantong Wang, Shaohui Liu, Shicheng Li, Shuhao Gu, Shuhuai Ren, Shuo Liu, Sirui Deng, Weiji Zhuang, Weiwei Lv, Wenyu Yang, Xin Zhang, Xing Yong, Xing Zhang, Xingchen Song, Xinzhe Xu, Xu Wang, Yihan Yan, Yu Tu, Yuanyuan Tian, Yudong Wang, Yue Yu, Zhenru Lin, Zhichao Song, Zihao Yue
💬 评论讨论
欢迎在这里分享您的想法和见解!