Skip to content

[Chore] Use upstream Transformers MiniMaxM3VLConfig - #61813

Open
hmellor wants to merge 2 commits into
vllm-project:mainfrom
hmellor:unvendor-minimax-m3
Open

hmellor wants to merge 2 commits into
vllm-project:mainfrom
hmellor:unvendor-minimax-m3

Conversation

@hmellor

@hmellor hmellor commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

Overview

Split from #60823: replaces the vendored MiniMax-M3 config and ports the MiniMax-M3 code to the upstream Transformers MiniMaxM3VLConfig schema.

Related PRs:

Claims

Validation

nvidia/MiniMax-M3-NVFP4 on 8x B200, main (b965ee564d) on GPUs 0-3 vs this branch on GPUs 4-7, TP4 each, transformers 5.19.0, FlashInfer autotuning off.

Check main This PR
GSM8k, 5-shot, 1319 questions, 2 runs 0.875, 0.870 0.870, 0.871
GPQA Diamond, 8 repeats 0.686 0.691
Greedy decode, 5 prompts (up to ~56k chars) x 64 tokens bit-identical logprobs

Config and meta-device model dumps with the transformers-upgrade skill's scripts, for MiniMaxAI/MiniMax-M3, MiniMaxAI/MiniMax-M3-MXFP8, nvidia/MiniMax-M3-NVFP4 and amd/MiniMax-M3-MXFP4: 0 diffs in parameters and module attributes, for both the main model and the MTP draft (--speculative-config '{"method": "mtp", "num_speculative_tokens": 1}'), including a draft loaded from a synthetic standalone MTP checkpoint in the old schema. lukealonso/MiniMax-M3-NVFP4 goes from the error above to building. The config diffs are only the schema renames. MTP was not served: no public MiniMax-M3 checkpoint ships MTP weights. The ROCm path was not served either; it is covered by the meta-device build and test_fused_shared_expert.py, which builds the AMD MiniMaxM3Model.

vllm serve nvidia/MiniMax-M3-NVFP4 --trust-remote-code --tensor-parallel-size 4 \
  --max-model-len 65536 --reasoning-parser minimax_m3 \
  --kernel-config '{"enable_flashinfer_autotune": false}'
python tests/evals/gsm8k/gsm8k_eval.py --port <port> --num-shots 5 --max-tokens 512
OPENAI_API_KEY=EMPTY python tests/evals/gpt_oss/run_gpqa_eval.py --model nvidia/MiniMax-M3-NVFP4 \
  --reasoning-effort high --base-url http://localhost:<port>/v1 --n-threads 128 --max-output-tokens 32768
pytest tests/kernels/attention/test_minimax_m3.py tests/model_executor/layers/test_fused_shared_expert.py
# main: 1 failed (test_fmha_sm100_indexer_matches_reference), 223 passed; this PR: 224 passed
pytest tests/transformers_utils/test_minimax_m3_config.py  # 1 passed
pytest tests/transformers_utils tests/config tests/models/test_registry.py tests/test_config.py
# main and this PR: the same 11 failed, 1237 passed (GPUs hidden for this run)

Pull Request Checklist
  • I used vLLM's /pr-checklist skill. (Mandatory for agents, optional for humans).

  • AI assistance was used during the creation of this PR.

  • Design Fit: Minimizes impact on core components, reuses existing functionality, and justifies added complexity.

  • Testing and Validation: Validates the change and ensures any added tests are meaningful and reliable, with CI coverage or documented CI resource constraints and validation performed outside CI.

  • Code Quality and Style: Keeps code and comments clear and concise, and updates relevant documentation and examples.

  • Pull Request Contents: Includes a brief summary and relevant links, supports claims with evidence, explains root causes and implementation trade-offs, and follows the contributing guide.

🤖 Generated with Claude Code

Split from vllm-project#60823. Deletes the vendored MiniMax-M3 config and ports the
model code to the upstream Transformers schema.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

hmellor added a commit to hmellor/vllm that referenced this pull request Oct 15, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
@mergify mergify Bot added the minimax label Oct 15, 2026
Standalone MTP checkpoints (model_type minimax_m3_mtp) copy the main
model's per-layer lists, which upstream MiniMaxM3VLTextConfig rejects for
a 1-layer config. A small subclass keeps the leading entries.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
@mergify

mergify Bot commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

This pull request has merge conflicts that must be resolved before it can be
merged. Please rebase the PR, @hmellor.

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase label Oct 20, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant