Repository navigation
[Bugfix][GLM-5.3-Flash] Restore MTP index sharing across draft iterations - #61079
Merged
Merged
Conversation
…ions The MTP proposers read `index_share_for_mtp_iteration` from the draft config. For GLM-5.3-Flash that flag lives on `text_config`, and since the switch to the upstream Transformers config (vllm-project#57387) the composite config no longer forwards text-config attributes, so the flag read back as False and every draft iteration recomputed the sparse indexer top-k. Promote the flag onto the draft config in the `glm5_next` override, as the Qwen4-Exp override already does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Canlin <canlinguosdu@gmail.com>
gcanlin
marked this pull request as ready for review
October 11, 2026 11:59
gcanlin
requested review from
ProExpertProg,
WoosukKwon,
houseroad,
mgoin,
robertgshaw2-redhat,
tlrmchlsmth,
yewentao256 and
youkaichao
as code owners
October 11, 2026 11:59
Isotr0py
enabled auto-merge (squash)
October 11, 2026 17:07
Member
|
/ci run --allow-stale |
|
✅ Triggered Buildkite CI #94085 for commit
|
5 of 6 tasks
JaredforReal
approved these changes
Oct 12, 2026
JaredforReal
left a comment
Contributor
There was a problem hiding this comment.
LGTM, thanks for fixing~ @gcanlin
Contributor
Author
|
/ci retry |
|
✅ Queued 3 failed job(s) for retry in Buildkite CI #94085. |
6 tasks done
michael-gpu
pushed a commit
to practical-inference/vllm-ampere-extended
that referenced
this pull request
Oct 20, 2026
…ions (vllm-project#61079) Signed-off-by: Canlin <canlinguosdu@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
GLM-5.3-Flash's checkpoint sets
index_share_for_mtp_iteration: true: the MTP head computes the sparse indexer top-k on draft step 0 and reuses it on the later steps. Since #57387 the flag is no longer visible on the draft config, so sharing has been silently off. This restores it.Not a duplicate: I searched open PRs for
index_share_for_mtp_iteration,share_mtp_topk_indices,glm5_next_mtpand GLM-5.3-Flash MTP and found nothing covering this.Claims
Validation
4x B200, nightly
8cbd5d03, TP1 x DP4 with expert parallel and #60895's MegaMoE path, MTP 5, one run each.The GSM8K rows use real acceptance; the throughput rows fix it with
synthetic_acceptance_length3.61.The GPU runs switched the same proposer flag (
share_mtp_topk_indices) through a local patch that read it fromtext_config. With this PR's code I ran:tests/config/test_speculative_draft_hf_overrides.py: 17 passed; the new test fails without the change. Run against nightly8cbd5d03, whosespeculative.pyis identical tomain's.SpeculativeConfig.hf_config_overrideon the real checkpoint config:index_share_for_mtp_iterationisTrue(missing before).Commands
The remaining serve flags (CUDA graph sizes, KV offload,
--prefix-match-unit 16) are the ones listed in #60895.Details
mtp/speculator.py,llm_base_proposer.py). The in-treeGlm5NextConfigforwardedtext_configattributes to the top level; the upstream Transformers config that [Model] Use upstream GLM-5.3 and Qwen4-Exp configs and processor #57387 switched to does not. That PR movednum_nextn_predict_layerstoget_text_config()but not this flag.glm5_nextoverride, as the Qwen4-Exp override already does. An explicitindex_share_for_mtp_iterationin--speculative-configstill takes precedence.Pull Request Checklist
I used vLLM's
/pr-checklistskill. (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