Skip to content

Qwen3.6-27B NVFP4 checkpoints fail because dense loader requires BF16 lm_head #164

Description

@rohitpaul

Problem

The Qwen3.6 dense loader fails to load two common 27B NVFP4 checkpoints:

  • nvidia/Qwen3.6-27B-NVFP4
  • unsloth/Qwen3.6-27B-NVFP4

Both fail with:

server: fatal: vt: dense loader: expected BF16 for lm_head.weight
at include/vllm/model_executor/models/dense_weight_loaders.h:83

Cause

LoadQwen3_5Dense() always loads an explicit lm_head.weight using the BF16-only LoadBf16Transposed() path.

However, these checkpoints use different quantized output heads:

  • NVIDIA: ModelOpt NVFP4, U8 [248320, 2560], with weight_scale and weight_scale_2
  • Unsloth: FP8, F8_E4M3 [248320, 5120], with weight_scale

Model revisions tested:

  • NVIDIA: 0893e1606ff3d5f97a441f405d5fc541a6bdf404
  • Unsloth: ccdaab7e68af2409599b8949a8f2685703c9bae5

Environment

  • RTX 5090 (sm_120a)
  • CUDA 13.0.2
  • vllm.cpp commit 0e3bf3c0

Expected behavior

Support the quantized lm_head formats used by these NVFP4 checkpoints, or document the exact supported checkpoint/revision and return a clearer unsupported-format error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions