Skip to content

[vLLM-ATOM] Support EAGLE3 spec decoding for MiniMax-M3#1518

Draft
kliuae wants to merge 36 commits into
ROCm:mainfrom
kliuae:kliuae/plugin_m3_eagle
Draft

[vLLM-ATOM] Support EAGLE3 spec decoding for MiniMax-M3#1518
kliuae wants to merge 36 commits into
ROCm:mainfrom
kliuae:kliuae/plugin_m3_eagle

Conversation

@kliuae

@kliuae kliuae commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Motivation

This PR adds EAGLE 3/3.1 speculative decoding support for MiniMax-M3 in vllm-atom.
It depends on and currently contains changes from #1201, and will be rebased once the dependency gets merged.

Technical Details

Test Plan

Target model: MiniMaxAI/MiniMax-M3-MXFP8
Draft model: Inferact/MiniMax-M3-EAGLE3

Server command

VLLM_ROCM_USE_AITER=1 VLLM_USE_V1=1 \
vllm serve MiniMaxAI/MiniMax-M3-MXFP8 \
    --host localhost \
    --port 8000 \
    --no-trust-remote-code \
    --dtype auto \
    --kv-cache-dtype auto \
    --max-model-len 32768 \
    --max-num-batched-tokens 32768 \
    --no-enable-prefix-caching \
    --compilation-config '{"cudagraph_mode": "FULL_AND_PIECEWISE"}' \
    --tensor-parallel-size 4 \
    --block-size 128 \
    --additional-config '{"online_quant_config": {"global_quant_config": "ptpc_fp8", "exclude_layer": ["lm_head", "model.embed_tokens", "vision_tower", "multi_modal_projector", "patch_merge_mlp", "*block_
sparse_moe"]}}' \
    --language-model-only \
    --speculative-config.method eagle3 \
    --speculative-config.model Inferact/MiniMax-M3-EAGLE3 \
    --speculative-config.num_speculative_tokens 3

lm_eval

lm_eval --model local-completions --model_args model=MiniMaxAI/MiniMax-M3-MXFP8,base_url=http://0.0.0.0:8000/v1/completions,tokenizer_backend=None,tokenized_requests=False,num_concurrent=128,max_retries=10,max_gen_toks=2048,timeout=60000 --batch_size auto --tasks gsm8k --num_fewshot 20

Test Result

lm_eval, EAGLE=3

Tasks Version Filter n-shot Metric Value Stderr
gsm8k 3 flexible-extract 20 exact_match _ 0.9431 _ 0.0064
strict-match 20 exact_match _ 0.9431 _ 0.0064

gsm8k: Per-position acceptance rate: 0.876, 0.752, 0.626, Avg Draft acceptance rate: 75.1%

Submission Checklist

kliuae and others added 30 commits June 13, 2026 00:18
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Signed-off-by: miloice <kuanfu.liu@embeddedllm.com>
Signed-off-by: miloice <kuanfu.liu@embeddedllm.com>
Signed-off-by: miloice <kuanfu.liu@embeddedllm.com>
Fix PTPC FP8 MoE loading to preserve offline checkpoint bits and wire MiniMax-M3 sparse MHA metadata/backend support for vLLM serving.

Co-authored-by: Cursor <cursoragent@cursor.com>
Reuse vLLM-provided output buffers in sparse MHA prefill/decode and align the adapter with the page-shuffled KV cache layout used by MiniMax-M3 serving.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep mixed decode/prefill/extend batches phase-local and separate index-cache top-k metadata from main KV-cache sparse block emission to prevent cross-request fp8 accuracy drift.
Route MiniMax-M3 vLLM-plugin attention through the vendored community implementation by default so serving has a stable correctness baseline while the ATOM plugin attention integration is debugged.
Remove the community MiniMax-M3 vLLM backend and registry switches so serving uses ATOM-owned dense and sparse attention paths.
Keep MiniMax-M3 sparse attention on the dedicated adapter path and rename the backend metadata pieces to match their model-specific ownership.
Restore the model-local sparse attention implementation to match main so the vLLM PR only carries the adapter-side changes needed for MiniMax-M3.
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Co-authored-by: whx-sjtu <xiaowang990929@gmail.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
kliuae added 6 commits July 6, 2026 23:51
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
Signed-off-by: kliuae <kuanfu.liu@embeddedllm.com>
@zufayu zufayu requested a review from ZhangLirong-amd July 8, 2026 10:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants