From 83d4c6196ad90f98515c6be113cb2e957b60a832 Mon Sep 17 00:00:00 2001 From: Nick Iusiumbeli Date: Thu, 13 Aug 2026 19:22:50 +0300 Subject: [PATCH] [Bugfix] Declare SupportsEagle3 on KimiLinearForCausalLM (#52171) Signed-off-by: Nick Iusiumbeli --- tests/models/kimi_k3/test_eagle3.py | 9 +++++++++ vllm/models/kimi_k3/nvidia/model.py | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/models/kimi_k3/test_eagle3.py b/tests/models/kimi_k3/test_eagle3.py index 61a24a83e0..5f1575efef 100644 --- a/tests/models/kimi_k3/test_eagle3.py +++ b/tests/models/kimi_k3/test_eagle3.py @@ -10,6 +10,7 @@ from vllm.model_executor.models.interfaces import supports_eagle3 from vllm.models.kimi_k3.nvidia import model as kimi_model from vllm.models.kimi_k3.nvidia.model import ( KimiK3ForConditionalGeneration, + KimiLinearForCausalLM, KimiLinearModel, ) @@ -25,6 +26,14 @@ def test_kimi_k3_advertises_eagle3_support(): assert supports_eagle3(KimiK3ForConditionalGeneration) +def test_kimi_linear_advertises_eagle3_support(): + # The text-only architecture serves the same inner KimiLinearModel, which + # already carries the EagleModelMixin tap machinery - only the interface + # declaration was missing, so EAGLE3-family speculative decoding (dspark) + # was rejected at startup with "Model does not support EAGLE3 interface". + assert supports_eagle3(KimiLinearForCausalLM) + + def test_kimi_k3_uses_shared_eagle3_layer_configuration(): target = object.__new__(KimiK3ForConditionalGeneration) torch.nn.Module.__init__(target) diff --git a/vllm/models/kimi_k3/nvidia/model.py b/vllm/models/kimi_k3/nvidia/model.py index 826fb0d349..80d0106669 100644 --- a/vllm/models/kimi_k3/nvidia/model.py +++ b/vllm/models/kimi_k3/nvidia/model.py @@ -1477,7 +1477,7 @@ class KimiLinearModel(nn.Module, EagleModelMixin, SupportsQuant): class KimiLinearForCausalLM( - nn.Module, HasInnerState, SupportsPP, MixtureOfExperts, IsHybrid + nn.Module, HasInnerState, SupportsPP, MixtureOfExperts, IsHybrid, SupportsEagle3 ): def __init__(self, *, vllm_config: VllmConfig, prefix: str = ""): super().__init__()