[Bugfix][Spec Decode] Fix EAGLE3 DeepSeek draft crash on non-YaRN rope configs (#51092)

Signed-off-by: zixi-qi <zixi@inferact.ai> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

qizixi committed Aug 4, 2026 at 23:10 UTC 4719a9b8f5cbfef78508369ba1a51abe2f5a79ce
1 file changed -9
vllm/model_executor/models/deepseek_eagle3.py
-9
@@ -3,7 +3,6 @@
3
4 """Eagle3 speculative decoding model for DeepseekV2/V3 with MLP (no MoE)."""
5
6 -import copy
6 from collections.abc import Iterable
7
8 import torch
@@ -58,7 +57,6 @@ class DeepseekV2Eagle3DecoderLayer(nn.Module):
57 quant_config = get_draft_quant_config(vllm_config)
58
59 self.hidden_size = config.hidden_size
61 - rope_scaling = getattr(config, "rope_scaling", None)
60 max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
61
62 self.layer_idx = layer_idx
@@ -68,13 +66,6 @@ class DeepseekV2Eagle3DecoderLayer(nn.Module):
66 qk_rope_head_dim = getattr(config, "qk_rope_head_dim", 0)
67 v_head_dim = getattr(config, "v_head_dim", 0)
68 kv_lora_rank = getattr(config, "kv_lora_rank", 0)
71 - config = copy.copy(config)
72 - if rope_scaling:
73 - rope_params = rope_scaling.copy()
74 - rope_params["rope_type"] = "deepseek_yarn"
75 - else:
76 - rope_params = {"rope_type": "default"}
77 - config.rope_parameters = rope_params
69 self.self_attn = DeepseekV2MLAAttention(
70 vllm_config=vllm_config,
71 config=config,