
RuntimeError: start (0) + length (17408) exceeds dimension size (8704)”
快速结论:该报错出现在加载 nvidia/Qwen3.6-27B-NVFP4 模型时,优先排查 vLLM 镜像是否为较新版本(0.22+ / nightly),旧版镜像缺少混合精度 W4A16 NVFP4 层派发逻辑。
问题场景
用户尝试用 vLLM 加载 nvidia/Qwen3.6-27B-NVFP4(Dense 架构,混合精度 W4A16_NVFP4 + FP8),启动命令如下:
vllm serve nvidia/Qwen3.6-27B-NVFP4 \
--quantization modelopt \
--trust-remote-code \
--max-model-len 65536 \
--kv-cache-dtype fp8
在权重加载阶段报错。同镜像加载 MoE 模型 nvidia/Qwen3.6-35B-A3B-NVFP4 没有问题。
报错原文
WARNING [qwen3_5.py:435] Parameter layers.0.mlp.down_proj.input_scale not found in params_dict, skip loading
...
File ".../vllm/model_executor/models/qwen3_5.py", line 443, in load_weights
weight_loader(param, loaded_weight)
File ".../vllm/model_executor/layers/linear.py", line 1529, in weight_loader_v2
param.load_row_parallel_weight(loaded_weight=loaded_weight)
File ".../vllm/model_executor/parameter.py", line 222, in load_row_parallel_weight
loaded_weight = loaded_weight.narrow(...)
RuntimeError: start (0) + length (17408) exceeds dimension size (8704).
17408 = FFN intermediate_size;8704 = 17408 / 2 = NVFP4 打包后的实际维度。vLLM 将已打包的 W4A16_NVFP4 权重当作未量化完整张量加载,导致 narrow() 越界。
原因分析
根本原因:旧版 vLLM 镜像(0.19.x)缺少 W4A16_NVFP4 混合精度 Dense 层的派发逻辑。
ModelOptMixedPrecisionConfig 的 per-layer 路由依赖 PR #42566(2026-05-22 合并),该 PR 在 MoE 模型上验证充分,但 Dense Linear 路径(如 mlp.down_proj)的 W4A16_NVFP4 层未被正确路由到 ModelOptNvFp4W4A16LinearMethod,导致降级到未量化加载器,从而触发 out-of-range 错误。该问题在 v0.23.x / nightly 版本中已修复。
关键复现条件:
- vLLM 版本
0.19.2rc1.dev134(vllm/vllm-openai:cu130-nightly 旧镜像) - 模型量化为
"quant_algo": "MIXED_PRECISION",其中mlp.down_proj使用W4A16_NVFP4 - 用户误以为容器内为
0.23.1rc1.dev515(实际是另一服务的版本)
环境排查
- vLLM 版本:
vllm serve启动时日志首行需确认。旧版镜像vllm/vllm-openai:cu130-nightly报告v0.19.2rc1.dev134,新版vllm/vllm-openai:nightly应为0.22+/0.23.x。 - 模型架构:确认
config.json中architectures为["Qwen3_5ForConditionalGeneration"](多模态)还是["Qwen3_5ForCausalLM"](纯文本)。当前修复版本正确解析多模态架构下的model.language_model.前缀。 - 量化配置:检查
config.json中quantization_config.quantized_layers的 per-layer 条目,确认mlp.down_proj的quant_algo为W4A16_NVFP4。 - 硬件:GB10 / DGX Spark(sm_121),不支持原生 FP4,期望走 Marlin W4A16 路径。
解决步骤
- 确认 vLLM 镜像版本:运行
vllm serve --version或查看启动日志。若版本低于 0.22,请升级。 - 更新镜像:拉取最新 nightly 镜像:
docker pull vllm/vllm-openai:nightly或者使用固定版本如
vllm/vllm-openai:0.23.0(确保包含 #42566)。 - 重新启动服务,保持原参数:
vllm serve nvidia/Qwen3.6-27B-NVFP4 \ --quantization modelopt \ --trust-remote-code \ --max-model-len 65536 \ --kv-cache-dtype fp8 - 可选:如仍报错,可尝试
--quantization modelopt_fp4,但新版镜像应自动识别modelopt_mixed。
验证方法
服务启动后,加载进度正常完成,无 RuntimeError: start (0) + length (17408) exceeds dimension size (8704) 错误。可尝试发送推理请求确认模型正常响应。

![[Bug]: Using claude-sonnet-5 throws "LLM must be a FunctionCallingLLM"](https://www.chat-gpts.plus/wp-content/uploads/2026/07/22216-7a1b3db7-768x403.jpg)
![[Bug]: Citation Query Engine Refine Templates are missing "existing answer" and "new answer" verbiage.](https://www.chat-gpts.plus/wp-content/uploads/2026/07/22218-01e9a1d1-768x403.jpg)
