vllm-project/vllm · error · ValueError
dspark_draft_topk is only supported by Qwen3DSparkModel
Error message
dspark_draft_topk is only supported by Qwen3DSparkModel
What it means
Raised when dspark_draft_topk is active (user-set or defaulted from hf_config) but the draft model's architectures list does not contain Qwen3DSparkModel. Only the Qwen3DSpark draft head implements the top-k restricted draft vocabulary, so other DSpark drafts reject the option.
Source
Thrown at vllm/config/speculative.py:1114
if dspark_draft_topk is None:
dspark_draft_topk = getattr(
hf_config, "dspark_draft_topk", None
)
if dspark_draft_topk is not None:
draft_vocab_size = (
getattr(hf_config, "draft_vocab_size", None)
or hf_config.vocab_size
)
if not 1 <= dspark_draft_topk <= draft_vocab_size:
raise ValueError(
"dspark_draft_topk must be between 1 and the "
f"draft vocabulary size ({draft_vocab_size})"
)
if (
"Qwen3DSparkModel"
not in self.draft_model_config.architectures
):
raise ValueError(
"dspark_draft_topk is only supported by "
"Qwen3DSparkModel"
)
hf_config.dspark_draft_topk = dspark_draft_topk
self.draft_tensor_parallel_size = (
SpeculativeConfig._verify_and_get_draft_tp(
self.target_parallel_config,
self.draft_tensor_parallel_size,
self.draft_model_config.hf_config,
)
)
self.draft_model_config.max_model_len = (
SpeculativeConfig._maybe_override_draft_max_model_len(
self.max_model_len,
self.draft_model_config.max_model_len,
self.target_model_config.max_model_len,
)View on GitHub (pinned to c794754062)
Solutions
- Remove dspark_draft_topk from the config when the draft is not Qwen3DSparkModel
- Switch the draft model to a Qwen3DSparkModel checkpoint to use top-k drafting
Example fix
# before
speculative_config={"method": "dspark", "model": "my-k3-draft", "dspark_draft_topk": 4}
# after
speculative_config={"method": "dspark", "model": "my-k3-draft"} Defensive patterns
Strategy: validation
Validate before calling
if topk is not None and "Qwen3DSparkModel" not in draft_config.architectures:
raise ValueError("dspark_draft_topk requires a Qwen3DSparkModel draft") Type guard
def supports_dspark_topk(draft_architectures: list[str]) -> bool:
return "Qwen3DSparkModel" in draft_architectures Prevention
- Check draft_model_config.architectures from the checkpoint before applying method-specific options
- Keep DSpark top-k configs pinned to the Qwen3 DSpark model family in your config registry
When it happens
Trigger: speculative_config={'method': 'dspark', 'model': '<non-Qwen3DSpark draft>', 'dspark_draft_topk': 4}; or a K3DSparkModel draft whose checkpoint config carries a leftover dspark_draft_topk field.
Common situations: Pointing dspark_draft_topk at a custom/fine-tuned DSpark draft that is not based on Qwen3DSparkModel; config copied from a Qwen3 DSpark deployment and reused with another draft.
Related errors
- dspark_draft_topk must be between 1 and the draft vocabulary
- target_model_config must be present for dspark
- MLA DSpark does not currently support decode context paralle
- dspark_draft_topk is only supported by DSpark
- Adaptive verification only supported with DSpark
AI-assisted analysis of vllm-project/vllm@c794754062 (2026-08-14).
Data as JSON: /api/errors/42d0b9dfc54dd3e6.
Report an issue: GitHub.