MiMo-V2-Pro 测评:同一模型,两种结局

起因

上一篇 MiniMax-M2.7 的评测发出后,很多读者留言希望我测试 MiMo-V2-Pro。作为当前国产推理模型的代表之一,MiMo-V2-Pro 在各大榜单上表现亮眼,自然是大家最关注的选手之一。

任务和上次完全一致:在 MNN 推理引擎中从零添加 LFM2 模型支持。这是一个 Tier 6 级别的任务——需要跨语言(Python 导出 + C++ 推理)、理解新的模型架构(ShortConv 短卷积门控线性注意力)、实现自定义算子,端到端跑通模型导出和推理。

先说结论:MiMo-V2-Pro 在 Claude Code 环境下 28 分钟完成实现,提醒一次后自主修复通过,在这个任务上接近 Claude Opus 4.6,代表了当前国产模型在复杂工程任务上的领先水平

声明:我先后使用了 opencode 和 Claude Code 两个工具进行测试。opencode 使用的是免费额度,速度较慢;Claude Code 是自费充值 token,速度快且效果稳定。我对 opencode 使用经验有限,首测结果可能不完全反映 MiMo-V2-Pro 在该工具上的最佳表现,这里仅做记录对比。

测试结果

MiMo-V2-Pro 经历了两次测试,结果截然不同。

首测:opencode(免费额度)

指标 数据
工具 opencode
耗时 约 11 小时
Token 755K input + 141K output + 58M cache read
花费 ¥0(免费额度)
代码变更 8 文件,+1618 / -1024
结果 导出失败

opencode 环境下的 MiMo-V2-Pro 产出了大量代码,但质量堪忧:model_mapper.py 多了 1329 行(大部分是格式化噪音),transformers.py 多了 675 行,还动了 model.py 265 行。代码量大但有效改动少,最终连 ONNX 导出都没跑通。

如果只看这个结果,MiMo-V2-Pro 的表现甚至不如 M2.7(后者至少导出成功了)。但我总觉得这不像是模型本身的能力问题——代码里的架构理解是对的(选择复用 LinearAttention、卷积方向正确),只是执行质量差。于是我决定换个环境重测。

重测:Claude Code(充值 token)

指标 数据
工具 Claude Code
耗时(API) 28 分 40 秒
耗时(Wall) 38 分 44 秒
Token 11.1M input + 85.7K output + 9.6M cache read
花费 ¥25.68(账户实际扣费)
代码变更 6 文件,+297 / -44
结果 提醒一次后通过

第一次实现就能导出、能推理,但输出乱码。我只告诉它”测试输出是乱码”,没有做任何方向性引导(没有指出哪个文件有问题、没有提示 bug 类型)——它自己定位了问题并修复,第二次输出完全正确:

我是一个人工智能助手。它通过自然语言处理技术来理解和回应用户的询问。

同一个模型,换了工具环境,从”11 小时导出失败”变成”28 分钟提醒一次通过”。

代码分析

以下分析基于重测(Claude Code)的代码,修改共 6 个文件、+297/-44 行。

架构决策正确:复用现有的 FusedLinearAttention 管线,通过 attn_type == "short_conv" 分支区分,没有创建新算子、没有动 schema。相比 M2.7 创建全新 ShortConv 算子的方案,MiMo 的路径更轻量,也更符合 MNN 的设计理念。

Python 导出完整:模型映射、ONNX 自定义算子、导出路径三个环节都正确处理,仅用 +46 行完成映射、+4 行改动 custom_op。

C++ 实现规范:卷积方向正确(cross-correlation,与 PyTorch nn.Conv1d 一致),多线程并行,状态管理完备。存在 batch > 1 时的指针偏移小 bug,不影响标准 LLM 推理。

三模型对比

指标 Claude Opus 4.6 MiMo-V2-Pro(重测) MiniMax-M2.7
最终结果 完全通过 提醒一次后通过 导出成功,推理失败
工具 Claude Code Claude Code Claude Code
耗时(API) 14 分 30 秒 28 分 40 秒 53 分 31 秒
Token 用量 15.5K in + 40.1K out 11.1M in + 85.7K out 35.6M in + 107.8K out
花费 ~¥45 $62.44 ¥29(Coding Plan)
代码变更 +414 / -40(~7 文件) +297 / -44(6 文件) +451 / -14(9 文件)
架构决策 复用 LinearAttention 复用 LinearAttention 创建新 ShortConv 算子
卷积方向 ✅ 正确 ✅ 正确 ❌ 内外重复
ONNX 导出
C++ 推理 ❌ 推理失败
自主调试 不需要(一次通过) ✅ 仅告知乱码,自行定位修复 未验证

关键差异分析

Opus 4.6 vs MiMo-V2-Pro:两者的架构决策一致(都复用 LinearAttention),代码质量接近。核心差距在于 Opus 一次通过不需要人工干预,而 MiMo 首次输出乱码需要提醒一次。这说明 Opus 在实现完成后会主动验证结果的正确性,而 MiMo 缺少这一步。此外,Opus 的 token 效率远高于 MiMo(15.5K vs 11.1M input)。

MiMo-V2-Pro vs M2.7:差距体现在架构决策上。M2.7 选择创建全新的 ShortConv 算子,修改了 FlatBuffers schema、新增了 ONNX 自定义算子和 op 注册——这条路更重、更容易出错。M2.7 的 Python 导出管线实际上更完整(处理了 full_attn_idxslayer_types 等细节),但 C++ 卷积实现有 bug,最终推理失败。MiMo 选了更轻的路,反而走通了。

两次测试的代码对比

维度 opencode 首测 Claude Code 重测
代码量 +1618/-1024(8 文件) +297/-44(6 文件)
格式噪音 大量(model_mapper +1329 行) 几乎没有
架构决策 正确(复用 LinearAttention) 正确(复用 LinearAttention)
ONNX 导出 不完整 完整
C++ 卷积方向 正确 正确
多线程
导出成功
推理成功 ✅(提醒一次)

两次测试中 MiMo 的架构理解是一致的(都选择复用 LinearAttention,卷积方向都正确),说明模型本身的能力没有问题。差距主要体现在代码组织和执行效率上——opencode 环境下产生了大量低效的格式化改动,有效代码被淹没;Claude Code 环境下改动精准,每一行都有意义。

结论

MiMo-V2-Pro 在 Claude Code 环境下的表现让人刮目相看:28 分钟完成实现,提醒一次后自主修复并通过——这是继 Claude Opus 4.6 之后,第二个在这个任务上成功跑通的模型

与 M2.7 相比,MiMo 的架构决策更轻量准确,代码更精简,最终走完了 M2.7 没走完的路。与 Opus 相比,MiMo 的差距主要在”最后一公里”的自主验证上——如果它能在输出结果后自己跑一遍验证,可能就不需要那次提醒了。

同时,这次测试也再次验证了一个规律:工具环境对模型发挥的影响是决定性的。 同一个模型在 opencode 下 11 小时导出失败,在 Claude Code 下 28 分钟提醒一次通过。模型能力是基础,但工具链的质量决定了这个能力能发挥几成。当然,我对 opencode 使用经验有限,这个结论仅供参考。

下一篇文章将加入 GPT-5.4、GLM-5、Kimi-K2.5、Qwen 等更多模型的测试数据,做一次完整的横向对比。敬请期待。




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • MNN 任务实测:七个模型,三个梯队
  • 如何设计端侧高性能 Tokenizer?MNN 重构实践与思考
  • GPT-5.4-Pro & MiMo-V2-Pro 参战:谁能挑战 Claude?
  • MiniMax-M2.7 实测:离 Claude 还有多远?
  • 2026.03.13 奔波的一天