ITADN

[sglang issue] qwen3.5-fp8-mi355x-sglang: Qwen3.5-397B-A17B-FP8 fails at model init (sglang treats text-only checkpoint as VL)

#1363Closedandyluo7 创建于 2026-05-13
A
andyluo7commented
## Summary Loading `Qwen/Qwen3.5-397B-A17B-FP8` with the SGLang ROCm image pinned in `amd-master.yaml` for `qwen3.5-fp8-mi355x-sglang` fails immediately at model init. SGLang's `qwen3_5.py` model class forces VL (vision-language) handling for this checkpoint, but the checkpoint's `vision_config` is a plain `dict`, not the typed config object that `Qwen3VLMoeVisionModel.__init__` expects. ## Repro Use the sweep config exactly as `amd-master.yaml` specifies: - image: `lmsysorg/sglang-rocm:v0.5.10rc0-rocm720-mi35x-20260414` - model: `Qwen/Qwen3.5-397B-A17B-FP8` - launcher: `benchmarks/single_node/agentic/qwen3.5_fp8_mi355x.sh` (TP=8, EP=1) ```bash podman run ... -e MODEL=Qwen/Qwen3.5-397B-A17B-FP8 -e TP=8 -e EP_SIZE=1 \ -e CONC=8 -e RESULT_DIR=... \ ... lmsysorg/sglang-rocm:v0.5.10rc0-rocm720-mi35x-20260414 \ /workspace/benchmarks/single_node/agentic/qwen3.5_fp8_mi355x.sh ``` ## Failure ``` [2026-05-13 04:29:35 TP0] Load weight begin. avail mem=276.89 GB [2026-05-13 04:29:35 TP0] Detected fp8 checkpoint. [2026-05-13 04:29:35 TP0] Scheduler hit an exception: Traceback (most recent call last): File ".../sglang/srt/managers/scheduler.py", line 3712, in run_scheduler_process ... File ".../sglang/srt/model_loader/loader.py", line 281, in _initialize_model return model_class(**kwargs) File ".../sglang/srt/models/qwen3_5.py", line 1490, in __init__ super().__init__(config, quant_config, prefix, language_model_cls) File ".../sglang/srt/models/qwen3_vl.py", line 1080, in __init__ self.visual = Qwen3VLMoeVisionModel( File ".../sglang/srt/models/qwen3_vl.py", line 307, in __init__ self.hidden_size = vision_config.hidden_size AttributeError: 'dict' object has no attribute 'hidden_size' ``` `Qwen/Qwen3.5-397B-A17B-FP8` is a text-only MoE — it should not go through the VL path at all. The model class in SGLang is forcing VL handling for the entire `Qwen3.5*` family. ## Likely root cause (not verified) The image bundles SGLang `v0.5.10rc0` (April 14 2026 build). Either: - Upstream SGLang `qwen3_5.py` model registry routes all `Qwen3.5*` checkpoints through `Qwen3VLForConditionalGeneration` regardless of whether `vision_config` is present - OR the HF checkpoint's config schema changed and the older SGLang doesn't know to convert `dict` → `Qwen3VLVisionConfig` before init ## Suggested fix Either: 1. Bump the `qwen3.5-fp8-mi355x-sglang` image to a newer SGLang ROCm build that handles text-only Qwen3.5 properly 2. Add a workaround flag in the launcher (e.g. `--model-impl Qwen3MoeForCausalLM`) to bypass the VL detection 3. File the corresponding fix upstream in sgl-project/sglang ## Workaround (none yet) The launcher has no flag to skip VL detection. As of now, qwen3.5-fp8-mi355x-sglang in v0.2 cannot be benchmarked — the agentic-coding sweep entry is dead code until the image or launcher is updated. ## Environment - Branch: `chore/agentx-v0.2-aiperf-testing` (tip `c8dfb585`) - Image: `lmsysorg/sglang-rocm:v0.5.10rc0-rocm720-mi35x-20260414` (id `f66d0b281937`, 4 weeks old) - Model: `Qwen/Qwen3.5-397B-A17B-FP8` (HF, snapshot `ea5b4f81096f3901c91dea97f81324302495781d`) - Hardware: AAC1 MI355X (gfx950), TP=8 spans all 8 GPUs on a single node Discovered while validating the v0.2 launcher matrix on AAC1 — companion to issues #1358, #1359, #1360 (vllm/MiniMax issues found in the same campaign).
关闭于 2026-05-13 1 条评论