[Fix] Fix Qwen3.5 MTP startup with HiCache - #34560
Merged
YAMY1234 merged 8 commits intoAug 14, 2026
Merged
Conversation
Contributor
|
thanks!But sidecar should not fail as a fallback path, so there are also bugs here. let me fix it. |
Contributor
Author
|
@hnyls2002 Could you take a look when convenient? This is a small, focused fix for the Qwen3.5 NEXTN + HiCache startup failure, with a regression test. Thanks! |
functionstackx
added a commit
to SemiAnalysisAI/InferenceX
that referenced
this pull request
Aug 12, 2026
Comment out the merged resident arms and the remaining HiCache concurrency points, leaving TP4/EP1 conc 16 with kv-offloading dram + hicache. This proves whether the sgl-project/sglang#34560 container patch clears the HybridLinearKVPool draft-sidecar crash on gfx950 without spending MI355X node time on already-measured resident points. 注释掉已合入的常驻分支与其余 HiCache 并发点,仅保留 TP4/EP1 并发 16 的 kv-offloading dram + hicache 配置,用于验证 sgl-project/sglang#34560 容器补丁 能否在 gfx950 上消除 HybridLinearKVPool draft sidecar 崩溃,同时避免在已测的 常驻点上占用 MI355X 节点时间。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
5 tasks
Collaborator
|
/tag-and-rerun-ci |
hzh0425
approved these changes
Aug 13, 2026
DarkraiHL
requested review from
Ying1123,
alphabetc1,
hanming-lu,
hnyls2002,
ispobock,
merrymercy,
xiezhq-hermann and
yizhang2077
as code owners
August 13, 2026 11:28
Unwrap HybridLinearKVPool before building a draft sidecar and exercise Qwen3.5 NEXTN in the HiCache E2E test. Co-authored-by: hjzhang <76768149+1e4ves@users.noreply.github.com>
DarkraiHL
force-pushed
the
fix/qwen35-hicache-mtp-draft-depth
branch
from
August 13, 2026 11:43
1292f82 to
ca20e1f
Compare
Contributor
Author
|
@1e4ves Thanks for catching the fallback-path issue. I’ve incorporated your |
huangtingwei9988
approved these changes
Aug 13, 2026
YAMY1234
approved these changes
Aug 13, 2026
Collaborator
|
/rerun-failed-ci |
YAMY1234
enabled auto-merge (squash)
August 14, 2026 02:01
huangtingwei9988
disabled auto-merge
August 14, 2026 02:09
huangtingwei9988
enabled auto-merge (squash)
August 14, 2026 02:09
huangtingwei9988
disabled auto-merge
August 14, 2026 02:09
saturn-acc
pushed a commit
to saturn-acc/sglang
that referenced
this pull request
Aug 16, 2026
Co-authored-by: hjzhang <76768149+1e4ves@users.noreply.github.com> Co-authored-by: YAMY <74099316+YAMY1234@users.noreply.github.com>
5 tasks
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.
Motivation
Qwen3.5 conditional-generation checkpoints store language-model attributes in
the nested
text_config. During MTP draft remapping, SGLang setsnum_nextn_predict_layers = 1only on the parent Hugging Face config. However,ModelConfig.num_nextn_predict_layersis derived fromhf_text_config, so thedraft depth remains
None.With NEXTN and HiCache enabled, the draft cache is therefore classified as a
sidecar instead of a packed MTP cache, and scheduler initialization fails with:
This regression was exposed by
#30393, which introduced
packed-versus-sidecar HiCache draft routing. The original Qwen3.5 support in
#18489 normalized the MTP
depth only on the parent config. This PR completes that normalization without
changing the HiCache routing behavior.
Minimal reproduction
Tested with
Qwen/Qwen3.5-397B-A17B-FP8, TP=8, on one node with 8 NVIDIA H2096 GB GPUs (Python 3.12.3, PyTorch 2.13.0+cu130, CUDA 13.0,
sglang-kernel 0.4.6.post1+cu130):
No L3 storage backend (including Mooncake) or custom HiCache I/O option is
required to reproduce the failure.
Modifications
hf_text_config.self.hf_config.num_nextn_predict_layers = 1 +self.hf_text_config.num_nextn_predict_layers = 1Accuracy Tests
with the exception above; the server never becomes healthy.
/healthreturns HTTP 200, all 8 TP schedulers remain alive, and acompletion request succeeds.
uncached multimodal requests returned HTTP 200.
reports the same stack trace, and
SemiAnalysisAI/InferenceX#2582
applies this exact fix to its Qwen3.5 NEXTN + HiCache benchmark.
Speed Tests and Profiling
Not applicable. This change only synchronizes a configuration attribute during
startup and does not modify the inference hot path.
Checklist
Review and Merge Process
/tag-and-rerun-ci,/tag-run-ci-label,/rerun-failed-ci.CI States
Latest PR Test (Base): ✅ Run #31775596976
Latest PR Test (Extra): ✅ Run #31775596847