--- base_model: - MiniMaxAI/MiniMax-M3.1-Flash license: other license_name: minimax-community license_link: LICENSE --- # Model Overview - **Model Architecture:** MiniMaxM3SparseForConditionalGeneration - **Input:** Text, Image, Video - **Output:** Text - **Supported Hardware Microarchitecture:** AMD MI350/MI355 - **ROCm**: 7.2.3 - **PyTorch**: 2.13.0 - **Transformers**: 5.19.0 - **Operating System(s):** Linux - **Inference Engine:** vLLM, SGLang - **Model Optimizer:** [AMD-Quark](https://quark.docs.amd.com/latest/index.html) - **Routed-expert weight quantization:** OCP MXFP4, Static - **Routed-expert activation quantization:** OCP MXFP4, Dynamic - **All other layers**: unchanged precision compared to base [MiniMaxAI/MiniMax-M3.1-Flash](https://huggingface.co/MiniMaxAI/MiniMax-M3.1-Flash) # Model serving Please refer to [vLLM recipe](https://recipes.vllm.ai/) and [SGLang cookbook](https://docs.sglang.io/cookbook/autoregressive/MiniMax/MiniMax-M3.1). Example usage: ## vLLM ```bash VLLM_ROCM_USE_AITER=1 \ vllm serve amd/MiniMax-M3.1-Flash-Quark-MXFP4 \ --tensor-parallel-size 4 \ --reasoning-parser minimax_m3 \ --block-size 128 \ --speculative-config '{"method":"dspark","model":"amd/MiniMax-M3.1-Flash-Quark-MXFP4/dspark","num_speculative_tokens":7,"attention_backend":"FLASHINFER_TS","kv_cache_dtype":"fp8","draft_sample_method":"probabilistic","rejection_sample_method":"block"}' \ --disable-hybrid-kv-cache-manager ``` ## SGLang ```bash SGLANG_USE_AITER=1 \ sglang serve \ --trust-remote-code \ --model-path amd/MiniMax-M3.1-Flash-Quark-MXFP4 \ --reasoning-parser minimax-m3 \ --tool-call-parser minimax-m3 \ --tp 4 \ --speculative-algorithm DSPARK \ --speculative-use-block-verification \ --cuda-graph-backend-prefill breakable \ --fp8-gemm-backend aiter \ --chunked-prefill-size 32768 \ --max-running-requests 128 \ --cuda-graph-max-bs-decode 128 \ --mem-fraction-static 0.8 \ --tokenizer-worker-num 8 \ --host 0.0.0.0 \ --port 30000 ``` # Model Quantization The model's routed experts were quantized from NVFP4 to MXFP4 using [AMD-Quark](https://quark.docs.amd.com/latest/index.html). **Quantization script:** ```bash python quantize_quark.py \ --model_dir MiniMaxAI/MiniMax-M3.1-Flash \ --quant_scheme mxfp4 \ --output_dir amd/MiniMax-M3.1-Flash-Quark-MXFP4 \ --skip_evaluation --model_export hf_format --file2file_quantization \ --exclude_layers \ '*lm_head' \ '*vision_tower*' \ '*multi_modal_projector*' \ '*patch_merge_mlp*' \ '*self_attn*' \ '*block_sparse_moe.gate' \ 'language_model.model.layers.[0-2].mlp.*' \ '*block_sparse_moe.shared_experts.*' \ '*dspark*' \ --keep_excluded_layers_as_original_model_state ``` # Evaluation The model was evaluated using vLLM and EvalScope. ### Accuracy | **Benchmark** | **MiniMax/MiniMax-M3.1-Flash** | **amd/MiniMax-M3.1-Flash-Quark-MXFP4 (this model)** | **Recovery** | | --- | --- | --- | --- | | GSM8K (4-shot) | 97.20 | 96.90 | 99.69% | | GPQA Diamond (mean@8) | 87.69 | 87.63 | 99.93% | | AIME26 (mean@16) | 93.54 | 93.75 | 100.22% | | MMMU Pro, standard (mean@1) | 79.19 | 79.13 | 99.92% | | MMMU Pro, vision (mean@1) | 76.99 | 77.57 | 100.75% | | SciCode, subproblem (mean@8) | 48.11 | 49.27 | 102.41% | | AA-LCR (mean@16) | 76.75 | 77.00 | 100.33% | | IFBench (mean@5) | 50.53 | 52.87 | 104.62% | Note: Results may vary from run to run. ### Reproduction The following results were obtained using vLLM and EvalScope `1.14.1`. #### Launching server We launch the vLLM server using the [vLLM Recipes](https://recipes.vllm.ai/MiniMaxAI/MiniMax-M3.1-Flash?hardware=mi355x&variant=mxfp4) with docker image `vllm/vllm-openai-rocm:minimax-m31-flash`. ```bash VLLM_ROCM_USE_AITER=1 \ VLLM_ROCM_USE_AITER_FUSION_SHARED_EXPERTS=0 \ VLLM_ROCM_USE_AITER_MOE=1 \ vllm serve amd/MiniMax-M3.1-Flash-Quark-MXFP4 \ --block-size 128 \ --disable-hybrid-kv-cache-manager \ --tensor-parallel-size 4 \ --kv-cache-dtype nvfp4 \ --attention-config '{"indexer_kv_dtype": "nvfp4", "indexer_decode_cp": true}' \ --moe-backend aiter \ --tool-call-parser minimax_m3 \ --enable-auto-tool-choice \ --reasoning-parser minimax_m3 ``` #### Evaluating model in a new terminal **GSM8K** ```bash evalscope eval \ --model amd/MiniMax-M3.1-Flash-Quark-MXFP4 \ --api-url http://localhost:8000/v1/chat/completions \ --api-key EMPTY \ --datasets gsm8k \ --dataset-hub huggingface \ --dataset-args '{"gsm8k":{"dataset_id":"openai/gsm8k"}}' \ --dataset-dir hf_hub_cache \ --eval-batch-size 32 \ --generation-config '{"temperature":1,"top_p":1,"max_tokens":8192,"timeout":60000,"extra_body":{"chat_template_kwargs":{"thinking_mode":"enabled"}}}' \ --work-dir logs/gsm8k ``` **GPQA Diamond** ```bash evalscope eval \ --model amd/MiniMax-M3.1-Flash-Quark-MXFP4 \ --api-url http://127.0.0.1:8000/v1/chat/completions \ --datasets gpqa_diamond \ --repeats 8 \ --eval-batch-size 32 \ --generation-config '{"temperature":1.0,"top_p":0.95,"max_tokens":200000,"timeout":7200}' \ --work-dir logs/gpqa_diamond ``` **AIME26** ```bash evalscope eval \ --model amd/MiniMax-M3.1-Flash-Quark-MXFP4 \ --api-url http://127.0.0.1:8000/v1/chat/completions \ --datasets aime26 \ --repeats 16 \ --dataset-args '{"aime26":{"aggregation":"mean_and_pass_at_k","primary_metric":{"name":"accuracy","aggregation":"mean"}}}' \ --eval-batch-size 32 \ --generation-config '{"temperature":1.0,"top_p":0.95,"max_tokens":200000,"timeout":7200}' \ --work-dir logs/aime26 ``` **MMMU Pro (standard& vision)** ```bash evalscope eval \ --model amd/MiniMax-M3.1-Flash-Quark-MXFP4 \ --api-url http://127.0.0.1:8000/v1/chat/completions \ --datasets mmmu_pro \ --dataset-args '{"mmmu_pro":{"extra_params":{"dataset_format":"standard (10 options)"}}}' \ --eval-batch-size 32 \ --generation-config '{"temperature":1.0,"top_p":0.95,"max_tokens":200000,"timeout":7200}' \ --work-dir logs/mmmu_pro_standard evalscope eval \ --model amd/MiniMax-M3.1-Flash-Quark-MXFP4 \ --api-url http://127.0.0.1:8000/v1/chat/completions \ --datasets mmmu_pro \ --dataset-args '{"mmmu_pro":{"extra_params":{"dataset_format":"vision"}}}' \ --eval-batch-size 32 \ --generation-config '{"temperature":1.0,"top_p":0.95,"max_tokens":200000,"timeout":7200}' \ --work-dir logs/mmmu_pro_vision ``` **SciCode** ```bash evalscope eval \ --model amd/MiniMax-M3.1-Flash-Quark-MXFP4 \ --api-url http://127.0.0.1:8000/v1/chat/completions \ --datasets scicode \ --eval-batch-size 32 \ --repeats 8 \ --generation-config '{"temperature":0.0,"top_p":0.95,"max_tokens":200000,"timeout":7200}' \ --dataset-args '{"scicode":{"review_timeout":1800,"extra_params":{"provide_background":true}}}' \ --sandbox '{"enabled":true,"engine":"docker","pool_size":4}' \ --work-dir logs/scicode ``` **AA-LCR (v1.1)** Judge configuration (aa-lcr-judge.json; replace ``): ```json { "strategy": "llm", "models": [ { "model_id": "gpt-5.6-luna", "api_url": "https://llm-api.amd.com/openai/responses", "api_key": "EMPTY", "eval_type": "openai_responses_api", "generation_config": { "reasoning_effort": "medium", "max_tokens": 4096, "timeout": 7200, "extra_query": { "api-version": "2025-04-01-preview" }, "extra_headers": { "Ocp-Apim-Subscription-Key": "" } } } ] } ``` ```bash evalscope eval \ --model amd/MiniMax-M3.1-Flash-Quark-MXFP4 \ --api-url http://127.0.0.1:8000/v1/chat/completions \ --datasets aa_lcr \ --eval-batch-size 64 \ --repeats 16 \ --generation-config '{"temperature":1.0,"top_p":0.95,"max_tokens":200000,"timeout":43200}' \ --dataset-hub huggingface \ --dataset-args '{"aa_lcr":{"hf_dataset_revision":"9a77ef56b717057ade24ceab4d273712a0b4f19e"}}' \ --judge "$(cat aa-lcr-judge.json)" \ --work-dir logs/aa_lcr ``` **IFBench** ```bash evalscope eval \ --model amd/MiniMax-M3.1-Flash-Quark-MXFP4 \ --api-url http://127.0.0.1:8000/v1/chat/completions \ --datasets ifbench \ --repeats 5 \ --eval-batch-size 32 \ --generation-config '{"temperature":1.0,"top_p":0.95,"max_tokens":200000,"timeout":7200}' \ --dataset-args '{"ifbench":{"primary_metric":"prompt_level_loose"}}' \ --work-dir logs/ifbench ``` # Others ## Experimental MXFP4 shared experts MXFP4 [online](https://docs.vllm.ai/en/stable/features/quantization/online/) shared experts quantization and shared experts fusion can optionally be enabled: ```bash VLLM_ROCM_USE_AITER=1 VLLM_ROCM_USE_AITER_FUSION_SHARED_EXPERTS=1 vllm serve \ amd/MiniMax-M3.1-Flash-Quark-MXFP4 \ ... \ --quantization-config.targets '{"*shared_expert*": "mxfp4"}' ``` but is experimental and not the recommended default setup. # License Modifications Copyright(c) 2026 Advanced Micro Devices, Inc. All rights reserved.