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
    • 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

Model serving

Please refer to vLLM recipe and SGLang cookbook.

Example usage:

vLLM

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

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.

Quantization script:

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) 86.36 87.37 101.17%
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@8) 73.13 74.00 101.19%
IFBench (mean@2) 50.33 50.83 100.99%

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 with docker image vllm/vllm-openai-rocm:minimax-m31-flash.

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

evalscope eval \
  --model amd/MiniMax-M3.1-Flash-Quark-MXFP4 \
  --api-url http://localhost:8101/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

evalscope eval \
  --model amd/MiniMax-M3.1-Flash-Quark-MXFP4 \
  --api-url http://127.0.0.1:8000/v1/chat/completions \
  --datasets gpqa_diamond \
  --eval-batch-size 32 \
  --generation-config '{"temperature":1.0,"top_p":0.95,"max_tokens":200000,"timeout":7200}' \
  --work-dir logs/gpqa_diamond

AIME26

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)

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

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.0.0)

Judge configuration (aa-lcr-judge.json; replace <YOUR_SUBSCRIPTION_KEY>):

{
  "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": "<YOUR_SUBSCRIPTION_KEY>"
        }
      }
    }
  ]
}
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 32 \
  --repeats 8 \
  --generation-config '{"temperature":1.0,"top_p":0.95,"max_tokens":200000,"timeout":7200}' \
  --dataset-hub huggingface \
  --dataset-args '{"aa_lcr":{"hf_dataset_revision":"bdae010bbce259820c0e34c1d7cce210d966fb75"}}' \
  --judge "$(cat aa-lcr-judge.json)" \
  --work-dir logs/aa_lcr

IFBench

evalscope eval \
  --model amd/MiniMax-M3.1-Flash-Quark-MXFP4 \
  --api-url http://127.0.0.1:8000/v1/chat/completions \
  --datasets ifbench \
  --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 shared experts quantization and shared experts fusion can optionally be enabled:

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.

Downloads last month
2,061
Safetensors
Model size
220B params
Tensor type
F32
Β·
BF16
Β·
F8_E4M3
Β·
U8
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for amd/MiniMax-M3.1-Flash-Quark-MXFP4

Quantized
(39)
this model