MiniMax-M3 开源实测:部署、推理与基准测试全记录
官方给出了 MiniMax-M3 与多款主流模型的对比,在编码、Cowork、GUI、多模态与推理等多个维度均具备竞争力,其中OmniDocBench(91.6)、SpreadSheetBench-v1(89.4)、VideoMME(85.4)、Video-MMMU(84.6)、BrowseComp(83.5)等多模态与协作类任务表现尤为亮眼,编码上SWE-Bench Verified也达到80.5。
伴随权重开源,两大主流推理引擎也第一时间放出了 MiniMax-M3 的专用镜像:
| 推理引擎 | 镜像标签 | 时间 |
|---|---|---|
| vLLM | vllm/vllm-openai:minimax-m3 | 6 月 12 日(开源当天) |
| SGLang | lmsysorg/sglang:dev-minimax-m3 | 6 月 15 日 |
需要说明的是,目前两者均为针对 MiniMax-M3 的专用/开发镜像,两大引擎主线版本对 M3 的正式支持仍需等待一段时间。本文采用 vLLM 的专用镜像进行部署与测试。
vLLM 官方镜像地址为vllm/vllm-openai:minimax-m3,我们已第一时间同步至国内镜像,方便大家拉取:
swr.cn-south-1.myhuaweicloud.com/gpustack/vllm-openai:minimax-m3本文的测试环境与配置如下:
| 项目 | 内容 |
|---|---|
| 测试环境 | 四卡NVIDIA H20-3e 141G(Driver 590.48.01 / CUDA 13.1) |
| 测试模型 | MiniMax/MiniMax-M3-MXFP8 |
| 草稿模型(投机解码) | Inferact/MiniMax-M3-EAGLE3 |
| 参考文档 | MiniMaxAI/MiniMax-M3 | vLLM Recipes |
全文分为以下几个部分:
- 环境准备 —— GPUStack 安装
- 下载权重与镜像
- 添加 vLLM 版本
- 部署 MiniMax-M3
- 对话实测
- 基准测试
- 小结
一、环境准备 —— GPUStack 安装
GPUStack 是一个开源 GPU 集群管理与 AI 模型服务平台,旨在高效部署 AI 模型。它可以配置并编排多种推理引擎——如 vLLM、SGLang、TensorRT-LLM,甚至自定义引擎——以在 GPU 集群上实现最佳性能。核心功能包括多异构 GPU 集群池化调度、可插拔推理引擎架构、Day 0 模型支持、性能优化配置(低延迟/高吞吐),以及企业级运维能力,如故障恢复、负载均衡、监控与权限管理。
在部署 MiniMax-M3 之前,需先完成 GPUStack 控制面的安装,并将 GPU 节点纳入管理。本文不再展开安装细节,可参考下方教程完成部署:
TODO: <在公众号编辑器中插入 之前已发布的《GPUStack v2.1.2 安装教程》的链接>
完成安装并接入 GPU 节点后,即可进入下一步,准备 MiniMax-M3 的权重与镜像。
二、下载权重与镜像
国内环境推荐从ModelScope(魔搭)下载权重。本文使用 MXFP8 量化版本以适配四卡 H20-3e 的显存与性能。
下载主模型权重:
本文同时使用 EAGLE3 草稿模型进行投机解码加速,因此一并下载草稿模型:
拉取 vLLM 专用镜像(国内同步地址):
docker pull swr.cn-south-1.myhuaweicloud.com/gpustack/vllm-openai:minimax-m3也可使用 vLLM 官方镜像
vllm/vllm-openai:minimax-m3,国内网络环境下推荐使用上述同步地址以加速拉取。
三、添加 vLLM 版本
GPUStack 支持可插拔的推理引擎架构,允许自定义推理后端及其版本,用于引入 GPUStack 未内置的 vLLM / SGLang / MindIE 版本,或接入其他自定义推理引擎镜像。
由于 MiniMax-M3 当前依赖 vLLM 的专用镜像,这里将其作为 vLLM 的自定义版本添加到 GPUStack 的推理后端中。
在推理后端菜单,编辑 vLLM,在版本配置中选择添加版本,按实际情况填写镜像地址:
| 配置 | 值 |
|---|---|
| 版本 | minimax-m3 |
| 镜像名称 | swr.cn-south-1.myhuaweicloud.com/gpustack/vllm-openai:minimax-m3 |
| 入口点(Entrypoint) | vllm serve |
| 运行命令(Run Command) | {{model_path}} --port {{port}} --host {{worker_ip}} --served-model-name {{model_name}} |
| 框架 | CUDA |
其中
{{model_path}}、{{port}}、{{worker_ip}}、{{model_name}}为 GPUStack 的模板变量,部署时会自动注入,无需手动修改。
也可以切换到 YAML 模式,直接导入以下配置:
version_configs: minimax-m3: image_name: swr.cn-south-1.myhuaweicloud.com/gpustack/vllm-openai:minimax-m3 run_command: "{{model_path}} --port {{port}} --host {{worker_ip}} --served-model-name {{model_name}}" entrypoint: "vllm serve" custom_framework: cuda env: {}注意:如果当前已有其它自定义版本,需要将其它版本一同写入
version_configs中一起导入。
四、部署 MiniMax-M3
GPUStack 支持从 Hugging Face、ModelScope 在线下载并部署,也支持从本地路径部署(离线环境推荐此方式)。本文使用前面已下载到本地的权重进行部署。
导航到模型文件页面,点击前面下载的模型权重右侧的小火箭部署按钮,即可开始部署:
在部署配置中,推理后端选择vLLM,版本选择前面添加的minimax-m3自定义版本:
接着参考 vLLM Recipes 文档 配置后端启动参数。本文在四卡 H20-3e 上采用张量并行,并启用基于 EAGLE3 的投机解码,参数示例如下:
--tensor-parallel-size=4 --enable-auto-tool-choice --tool-call-parser=minimax_m3 --reasoning-parser=minimax_m3 --block-size=128 --speculative-config '{"method":"eagle3","model":"/var/lib/gpustack/cache/model_scope/Inferact/MiniMax-M3-EAGLE3","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' --gpu-memory-utilization=0.96 --max-model-len=64K --disable-access-log-for-endpoints=/health,/metrics,/ping --mm-encoder-attn-backend=FLASHINFER --mm-processor-cache-type=shm --mm-encoder-tp-mode=data各组参数的作用简述如下:
- 张量并行:
--tensor-parallel-size=4将模型切分到四张 H20-3e 上并行推理。 - 工具调用与思考解析:
--enable-auto-tool-choice配合--tool-call-parser=minimax_m3启用工具调用能力;--reasoning-parser=minimax_m3用于解析模型的思考(thinking)内容。 - 投机解码(EAGLE3):
--speculative-config启用基于 EAGLE3 草稿模型的投机解码,以提升解码速度,其中num_speculative_tokens为每步推测的 token 数。 - 显存与上下文:
--gpu-memory-utilization=0.96控制显存占用上限,--max-model-len=64K设置上下文长度(M3 原生支持 1M,可按需调大,但会相应增加显存开销)。 - 多模态编码器:
--mm-encoder-tp-mode=data让体量较小的视觉编码器采用数据并行而非张量并行,避免不必要的 TP 通信开销;--mm-processor-cache-type=shm启用基于主机共享内存的多模态处理器缓存;--mm-encoder-attn-backend=FLASHINFER指定编码器注意力后端(NVIDIA 上使用 FlashInfer,AMD 上对应 AITER FlashAttention)。
关于草稿模型路径:
--speculative-config中的model需填写 EAGLE3 草稿模型的实际路径。本文中的/var/lib/gpustack/cache/model_scope/Inferact/MiniMax-M3-EAGLE3是前文通过 GPUStack 从 ModelScope 下载后的默认缓存位置,请按你的实际下载路径填写。
以上参数为示例,量化方式、并行规模、投机解码 token 数、上下文长度(
--max-model-len)、显存占用(--gpu-memory-utilization)等请结合实际硬件,并以 MiniMaxAI/MiniMax-M3 | vLLM Recipes 的最新说明为准。
采样参数方面,官方推荐
temperature=1.0、top_p=0.95、top_k=40。这些可在请求中传入,也可在 GPUStack 试验场中配置;若实测效果不理想,建议优先向官方推荐值对齐。
关于上下文长度(
--max-model-len)的说明:本文设置为64K,主要是受限于显存——在开启多模态功能的情况下,实测剩余显存已不足以支撑一个 128K 上下文的请求,故演示中设为 64K。当前推理镜像尚不支持--kv-cache-dtype=fp8来节省 KV Cache 显存,待 vLLM 推出支持该特性的新版本后,大家可自行尝试,以在开启多模态的同时获得更长的上下文。此外,在当前版本的实际使用中,对于Agent 场景64K 往往是不够的。如果你的场景以文本为主、不需要多模态,推荐关闭多模态支持以释放显存换取更长上下文:去掉上面三项
--mm-*参数,并添加--language-model-only。在此配置下,实测可支持256K的上下文长度。
关于参数中的
k与K:vLLM 参数里小写k表示 1000,大写K表示 1024。例如--max-model-len=64K即 64 × 1024 = 65536。
