[Refactor] Normalize DeepSeek V4.1 model package naming (#56741)

Signed-off-by: Bugen Zhao <i@bugenzhao.com>

Bugen Zhao committed Sep 14, 2026 at 14:17 UTC cf1584f373d06f03c5662608fb80cf66c03fcb1d
44 files changed +71 -72
.buildkite/test_areas/distributed.yaml
+1 -1
@@ -208,7 +208,7 @@ steps:
208 - tests/distributed/test_utils
209 - tests/distributed/test_engram_dp_shard.py
210 - vllm/config/engram.py
211 - - vllm/models/deepseek_v4_1/
211 + - vllm/models/deepseek_v41/
212 commands:
213 # https://github.com/NVIDIA/nccl/issues/1838
214 - export NCCL_CUMEM_HOST_ENABLE=0
.github/mergify.yml
+2 -3
@@ -343,9 +343,8 @@ pull_request_rules:
343 conditions:
344 - label != stale
345 - or:
346 - # The 4.1 sources spell the model three ways: deepseek_v4_1 (models),
347 - # deepseek_v41 (most) and deepseekv41 (tool parsers).
348 - - files~=^vllm/models/deepseek_v4_1/
346 + # The 4.1 sources use deepseek_v41 and deepseekv41 (tool parsers).
347 + - files~=^vllm/models/deepseek_v41/
348 - files~=^vllm/(?:parser|tokenizers|reasoning|transformers_utils/configs)/deepseek_v41.*\.py
349 - files~=^vllm/tool_parsers/deepseekv41.*\.py
350 - files~=^rust/src/(?:chat|parser)/src/.*deepseek_v41
tests/distributed/test_engram_dp_shard.py
+5 -5
@@ -39,9 +39,9 @@ from vllm.distributed.parallel_state import (
39 initialize_model_parallel,
40 )
41 from vllm.forward_context import set_forward_context
42 -from vllm.models.deepseek_v4_1.common.engram import EngramLayout
43 -from vllm.models.deepseek_v4_1.nvidia import engram as engram_ops
44 -from vllm.models.deepseek_v4_1.nvidia.engram import (
42 +from vllm.models.deepseek_v41.common.engram import EngramLayout
43 +from vllm.models.deepseek_v41.nvidia import engram as engram_ops
44 +from vllm.models.deepseek_v41.nvidia.engram import (
45 Engram,
46 ParallelEngramEmbedding,
47 engram_head_shard_rank,
@@ -473,8 +473,8 @@ def _check_dummy_hash_model_forward(
473 vllm_config, engram, head_sizes, weight, scales, dp_shared_memory
474 ):
475 """A metadata-less replica joins DP sharding but skips a shared lookup."""
476 - from vllm.models.deepseek_v4_1.common.engram import NgramHashState
477 - from vllm.models.deepseek_v4_1.nvidia import model as model_ops
476 + from vllm.models.deepseek_v41.common.engram import NgramHashState
477 + from vllm.models.deepseek_v41.nvidia import model as model_ops
478
479 dp_rank = vllm_config.parallel_config.data_parallel_rank
480 if dp_shared_memory and dp_rank != 1:
tests/kernels/core/test_fused_q_kv_rmsnorm.py
+4 -4
@@ -125,7 +125,7 @@ def test_fused_q_kv_rmsnorm_quant_matches_separate(num_tokens, q_size, dtype):
125 from vllm.model_executor.layers.quantization.utils.mxfp8_utils import (
126 mxfp8_e4m3_quantize,
127 )
128 - from vllm.models.deepseek_v4_1.common.ops.query_quant import (
128 + from vllm.models.deepseek_v41.common.ops.query_quant import (
129 fused_q_kv_rmsnorm_quant,
130 )
131
@@ -198,15 +198,15 @@ def test_shared_query_quant_preserves_projection(
198 mxfp8_e4m3_quantize,
199 )
200 from vllm.model_executor.layers.quantization.utils.quant_utils import kNvfp4Dynamic
201 - from vllm.models.deepseek_v4_1.attention import (
201 + from vllm.models.deepseek_v41.attention import (
202 DeepseekV4Attention,
203 DeepseekV4Indexer,
204 )
205 - from vllm.models.deepseek_v4_1.common.ops.query_quant import (
205 + from vllm.models.deepseek_v41.common.ops.query_quant import (
206 can_fuse_query_quant,
207 fused_q_kv_rmsnorm_quant,
208 )
209 - from vllm.models.deepseek_v4_1.quant_config import DeepseekV4FP8Config
209 + from vllm.models.deepseek_v41.quant_config import DeepseekV4FP8Config
210
211 cls: (
212 type[FlashInferCutedslMxfp8LinearKernel]
tests/kernels/test_compressor_kv_cache.py
+5 -5
@@ -65,7 +65,7 @@ def test_v41_fused_save_compress_and_insert(
65 a Torch reference with BF16 rounding before RoPE. Replays change both
66 inputs and history so stale scratch/cache values cannot satisfy the test.
67 """
68 - from vllm.models.deepseek_v4_1.common.ops.fused_compress_quant_cache import (
68 + from vllm.models.deepseek_v41.common.ops.fused_compress_quant_cache import (
69 fused_save_compress_norm,
70 rope_quant_insert,
71 )
@@ -226,7 +226,7 @@ def test_v41_rope_insert_plain_row(compress_ratio: int, store_fp8: bool):
226 Non-boundary positions, negative slots and untouched rows must keep their
227 prior contents.
228 """
229 - from vllm.models.deepseek_v4_1.common.ops.fused_compress_quant_cache import (
229 + from vllm.models.deepseek_v41.common.ops.fused_compress_quant_cache import (
230 rope_quant_insert,
231 )
232
@@ -301,7 +301,7 @@ def test_v41_compressor_metadata_maps_tokens_to_their_ring():
301 capacity`` and keep padding tokens at PAD."""
302 from unittest.mock import MagicMock
303
304 - from vllm.models.deepseek_v4_1.compressor import CompressorMetadataBuilder
304 + from vllm.models.deepseek_v41.compressor import CompressorMetadataBuilder
305 from vllm.v1.attention.backend import CommonAttentionMetadata
306 from vllm.v1.kv_cache_interface import CircularBufferSpec
307
@@ -351,11 +351,11 @@ def test_v41_compressor_metadata_maps_tokens_to_their_ring():
351 def test_v41_attention_joins_cache_writes_before_consumption(use_aux, use_graph):
352 """Both reused-event joins must publish this forward's states and cache rows."""
353 from vllm.forward_context import ForwardContext, override_forward_context
354 - from vllm.models.deepseek_v4_1.attention import (
354 + from vllm.models.deepseek_v41.attention import (
355 DeepseekV4Attention,
356 DeepseekV4Indexer,
357 )
358 - from vllm.models.deepseek_v4_1.compressor import DeepseekCompressor
358 + from vllm.models.deepseek_v41.compressor import DeepseekCompressor
359
360 torch.manual_seed(43)
361 raw = torch.randn(19, 1024, device="cuda")
tests/kernels/test_engram.py
+6 -6
@@ -7,15 +7,15 @@ from types import SimpleNamespace
7 import pytest
8 import torch
9
10 -from vllm.models.deepseek_v4_1.common import engram as engram_ops
11 -from vllm.models.deepseek_v4_1.common.engram import (
10 +from vllm.models.deepseek_v41.common import engram as engram_ops
11 +from vllm.models.deepseek_v41.common.engram import (
12 Engram as CommonEngram,
13 )
14 -from vllm.models.deepseek_v4_1.common.engram import (
14 +from vllm.models.deepseek_v41.common.engram import (
15 NgramHashState,
16 )
17 -from vllm.models.deepseek_v4_1.nvidia import engram as nvidia_engram_ops
18 -from vllm.models.deepseek_v4_1.nvidia.engram import Engram, ParallelEngramEmbedding
17 +from vllm.models.deepseek_v41.nvidia import engram as nvidia_engram_ops
18 +from vllm.models.deepseek_v41.nvidia.engram import Engram, ParallelEngramEmbedding
19 from vllm.platforms import current_platform
20
21
@@ -503,7 +503,7 @@ def test_lookback_window_reproduces_single_instance(runner, capture):
503 @pytest.mark.skipif(not current_platform.is_cuda(), reason="CUDA required")
504 def test_v2_model_state_gathers_lookback_window():
505 """The window is gathered on device from the runner's token history."""
506 - from vllm.models.deepseek_v4_1.nvidia.model_state import DeepseekV41ModelState
506 + from vllm.models.deepseek_v41.nvidia.model_state import DeepseekV41ModelState
507
508 depth, max_num_reqs, max_model_len = 3, 4, 16
509 state = DeepseekV41ModelState.__new__(DeepseekV41ModelState)
tests/kernels/test_fused_indexer_q_rope_quant.py
+3 -3
@@ -359,7 +359,7 @@ def test_indexer_k_inserts_only_valid_groups_into_padded_pages(
359 num_tokens, compress_ratio, use_fp4, cache_dtype
360 ):
361 """Insert group ends and preserve skipped slots, graph rows, and page padding."""
362 - from vllm.models.deepseek_v4_1.common.ops.indexer_k_store import (
362 + from vllm.models.deepseek_v41.common.ops.indexer_k_store import (
363 indexer_k_norm_rope_store,
364 )
365
@@ -442,7 +442,7 @@ def test_indexer_k_inserts_only_valid_groups_into_padded_pages(
442 @torch.inference_mode()
443 def test_indexer_k_cuda_graph_replay_reads_current_projection(use_fp4):
444 """Replay must consume updated keys and slot mapping through the captured API."""
445 - from vllm.models.deepseek_v4_1.common.ops.indexer_k_store import (
445 + from vllm.models.deepseek_v41.common.ops.indexer_k_store import (
446 indexer_k_norm_rope_store,
447 )
448
@@ -501,7 +501,7 @@ def test_indexer_k_store_roundtrips_through_rocm_gather(block_size, compress_rat
501 ``block_size > 1``, so a row-major store would feed the indexer permuted
502 key bytes and randomize its top-k. Assert the write/read pair is exact.
503 """
504 - from vllm.models.deepseek_v4_1.common.ops.indexer_k_store import (
504 + from vllm.models.deepseek_v41.common.ops.indexer_k_store import (
505 indexer_k_norm_rope_store,
506 )
507 from vllm.v1.attention.ops.rocm_aiter_mla_sparse import (
tests/kernels/test_mhc_kernels.py
+3 -3
@@ -32,7 +32,7 @@ from vllm.models.deepseek_v4.nvidia.model import (
32 DeepseekV4DecoderLayer,
33 DeepseekV4Model,
34 )
35 -from vllm.models.deepseek_v4_1.nvidia.model import (
35 +from vllm.models.deepseek_v41.nvidia.model import (
36 DeepseekV4DecoderLayer as DeepseekV41DecoderLayer,
37 )
38 from vllm.platforms import current_platform
@@ -104,7 +104,7 @@ def test_hc_collapse_custom_op_supports_compile():
104 @pytest.mark.parametrize("num_tokens", [1, 7])
105 def test_v41_dspark_head_collapses_with_last_ffn_mix(num_tokens, monkeypatch):
106 """Match reference DSparkBlock.forward_head's hc_pre before its RMSNorm."""
107 - from vllm.models.deepseek_v4_1.nvidia import dspark
107 + from vllm.models.deepseek_v41.nvidia import dspark
108
109 set_random_seed(0)
110 hidden_size, hc_mult = 5120, 4
@@ -296,7 +296,7 @@ def test_deepseek_v41_decoder_mixes_match_torch(
296 return post, res, decoder.attn_norm(collapsed), pre
297
298 monkeypatch.setattr(
299 - "vllm.models.deepseek_v4_1.nvidia.model.mhc_pre_delayed_tilelang",
299 + "vllm.models.deepseek_v41.nvidia.model.mhc_pre_delayed_tilelang",
300 reference,
301 )
302 expected = decoder(x, positions, None, **kwargs)
tests/models/test_deepseek_v4_mega_moe.py
+2 -2
@@ -18,8 +18,8 @@ from vllm.models.deepseek_v4.nvidia.model import (
18 )
19 from vllm.models.deepseek_v4.nvidia.mtp import DeepSeekV4MTP
20 from vllm.models.deepseek_v4.nvidia.ops.prepare_megamoe import prepare_megamoe_inputs
21 -from vllm.models.deepseek_v4_1.common.mm_preprocess import IMAGE_SENTINEL_BASE_ID
22 -from vllm.models.deepseek_v4_1.nvidia.model import DeepseekV4MoE as DeepseekV41MoE
21 +from vllm.models.deepseek_v41.common.mm_preprocess import IMAGE_SENTINEL_BASE_ID
22 +from vllm.models.deepseek_v41.nvidia.model import DeepseekV4MoE as DeepseekV41MoE
23 from vllm.platforms import current_platform
24 from vllm.transformers_utils.configs.deepseek_v41 import DeepseekV41Config
25
tests/models/test_dspark_mla.py
+1 -1
@@ -216,7 +216,7 @@ def test_v41_dspark_loads_linear_scales(
216 """Checkpoint ``.scale`` maps to the quant method's scale parameter and
217 loads untouched. MXFP8 block-scale expansion lives in the KMxfp8Static
218 loader (see tests/quantization/test_modelopt.py), not in load_weights."""
219 - from vllm.models.deepseek_v4_1.nvidia import dspark
219 + from vllm.models.deepseek_v41.nvidia import dspark
220
221 mxfp8 = scale_dtype != torch.float32
222 scale_name = "weight_scale" if mxfp8 else "weight_scale_inv"
tests/quantization/test_fp8.py
+6 -6
@@ -77,8 +77,8 @@ def test_deepseek_v41_mxfp8_scale_loading(
77 MergedColumnParallelLinear,
78 RowParallelLinear,
79 )
80 - from vllm.models.deepseek_v4_1 import quant_config as quant_module
81 - from vllm.models.deepseek_v4_1.nvidia import model as model_module
80 + from vllm.models.deepseek_v41 import quant_config as quant_module
81 + from vllm.models.deepseek_v41.nvidia import model as model_module
82
83 default_vllm_config.model_config = SimpleNamespace(dtype=torch.bfloat16)
84 quant_config = quant_module.DeepseekV4FP8Config(
@@ -214,8 +214,8 @@ def test_deepseek_v41_vl_mapper_routes_linear_scales(
214 """The VL wrapper must map ``.scale`` keys to the parameter the linear
215 quant method registers, as the text model does. A hardcoded
216 ``weight_scale_inv`` raised KeyError for native MXFP8 checkpoints."""
217 - from vllm.models.deepseek_v4_1.nvidia import model as model_module
218 - from vllm.models.deepseek_v4_1.nvidia import vl_model as vl_module
217 + from vllm.models.deepseek_v41.nvidia import model as model_module
218 + from vllm.models.deepseek_v41.nvidia import vl_model as vl_module
219
220 vllm_config = SimpleNamespace(
221 quant_config=SimpleNamespace(weight_block_size=weight_block_size)
@@ -318,8 +318,8 @@ def test_mxfp8_bmm_loads_and_projects_grouped_weights(
318 compute_fp8_einsum_recipe,
319 deep_gemm_fp8_o_proj,
320 )
321 - from vllm.models.deepseek_v4_1.nvidia.model import DeepseekV4Model
322 - from vllm.models.deepseek_v4_1.quant_config import DeepseekV4FP8Config
321 + from vllm.models.deepseek_v41.nvidia.model import DeepseekV4Model
322 + from vllm.models.deepseek_v41.quant_config import DeepseekV4FP8Config
323 from vllm.utils.deep_gemm import is_deep_gemm_supported
324
325 if not is_deep_gemm_supported() or not current_platform.is_device_capability_family(
tests/v1/attention/test_indexer_deepseek_v4_slot_mapping.py
+1 -1
@@ -8,7 +8,7 @@ import torch
8
9 from tests.v1.attention.utils import create_vllm_config
10 from vllm.models.deepseek_v4.sparse_mla import DeepseekV4SparseMLABackend
11 -from vllm.models.deepseek_v4_1.sparse_mla import (
11 +from vllm.models.deepseek_v41.sparse_mla import (
12 DeepseekV4SparseMLABackend as DeepseekV41SparseMLABackend,
13 )
14 from vllm.v1.attention.backend import CommonAttentionMetadata
vllm/model_executor/layers/quantization/__init__.py
+1 -1
@@ -120,7 +120,7 @@ def get_quantization_config(quantization: str) -> type[QuantizationConfig]:
120 # The v4.1 class is the v4 one extended to accept model_type
121 # "deepseek_v41" and its 32x32 MXFP8 linear layout. V4.1 has
122 # platform-specific implementations for both CUDA and ROCm.
123 - from vllm.models.deepseek_v4_1 import (
123 + from vllm.models.deepseek_v41 import (
124 DeepseekV4FP8Config as DeepseekV41FP8Config,
125 )
126
vllm/model_executor/models/registry.py
+2 -2
@@ -377,7 +377,7 @@ _MULTIMODAL_MODELS = {
377 "DeepseekV4ForConditionalGeneration",
378 ),
379 "DeepseekV41ForCausalLM": (
380 - "vllm.models.deepseek_v4_1",
380 + "vllm.models.deepseek_v41",
381 "DeepseekV41ForCausalLM",
382 ),
383 "Dots3NoteForCausalLM": (
@@ -645,7 +645,7 @@ _SPECULATIVE_DECODING_MODELS = {
645 "DFlashMuseGlimmerAssistantModel": ("qwen3_dflash", "DFlashQwen3ForCausalLM"),
646 "DSparkDraftModel": ("vllm.models.deepseek_v4", "DSparkDeepseekV4ForCausalLM"),
647 "DSparkV41DraftModel": (
648 - "vllm.models.deepseek_v4_1",
648 + "vllm.models.deepseek_v41",
649 "DSparkDeepseekV4ForCausalLM",
650 ),
651 "Qwen3DSparkModel": ("qwen3_dspark", "Qwen3DSparkForCausalLM"),
vllm/models/deepseek_v41/__init__.py renamed
vllm/models/deepseek_v41/amd/__init__.py renamed
vllm/models/deepseek_v41/amd/dspark.py renamed
vllm/models/deepseek_v41/amd/model.py renamed
+2 -2
@@ -54,8 +54,8 @@ from vllm.models.common.ops.sequence_parallel import (
54 from vllm.models.deepseek_v4.amd.model import (
55 DeepseekV4MoE as DeepseekV4MoEBase,
56 )
57 -from vllm.models.deepseek_v4_1.amd.rocm import DeepseekV41ROCMAiterMLAAttention
58 -from vllm.models.deepseek_v4_1.attention import DeepseekV4Attention
57 +from vllm.models.deepseek_v41.amd.rocm import DeepseekV41ROCMAiterMLAAttention
58 +from vllm.models.deepseek_v41.attention import DeepseekV4Attention
59 from vllm.sequence import IntermediateTensors
60 from vllm.utils.math_utils import cdiv
61 from vllm.v1.attention.backends.registry import AttentionBackendEnum
vllm/models/deepseek_v41/amd/rocm.py renamed
+3 -3
@@ -13,9 +13,9 @@ from vllm.distributed import (
13 )
14 from vllm.forward_context import get_forward_context
15 from vllm.logger import init_logger
16 -from vllm.models.deepseek_v4_1.attention import DeepseekV4Attention
17 -from vllm.models.deepseek_v4_1.common.ops import dequantize_and_gather_k_cache
18 -from vllm.models.deepseek_v4_1.sparse_mla import (
16 +from vllm.models.deepseek_v41.attention import DeepseekV4Attention
17 +from vllm.models.deepseek_v41.common.ops import dequantize_and_gather_k_cache
18 +from vllm.models.deepseek_v41.sparse_mla import (
19 DeepseekV4FlashMLAMetadata,
20 DeepseekV4SparseMLABackend,
21 DeepseekV4SparseMLAMetadataBuilder,
vllm/models/deepseek_v41/amd/vl_model.py renamed
vllm/models/deepseek_v41/attention.py renamed
+7 -7
@@ -26,7 +26,7 @@ from vllm.model_executor.layers.linear import (
26 )
27 from vllm.model_executor.layers.sparse_attn_indexer import SparseAttnIndexer
28 from vllm.models.common.ops import fused_q_kv_rmsnorm
29 -from vllm.models.deepseek_v4_1.common.ops import (
29 +from vllm.models.deepseek_v41.common.ops import (
30 MXFP4_BLOCK_SIZE,
31 fused_indexer_q_rope_quant,
32 indexer_k_norm_rope_store,
@@ -49,8 +49,8 @@ from vllm.model_executor.layers.attention_layer_base import AttentionLayerBase
49 from vllm.model_executor.layers.layernorm import RMSNorm
50 from vllm.model_executor.layers.quantization import QuantizationConfig
51 from vllm.model_executor.models.utils import extract_layer_index
52 -from vllm.models.deepseek_v4_1.common.rope import build_deepseek_v4_rope
53 -from vllm.models.deepseek_v4_1.compressor import DeepseekCompressor
52 +from vllm.models.deepseek_v41.common.rope import build_deepseek_v4_rope
53 +from vllm.models.deepseek_v41.compressor import DeepseekCompressor
54 from vllm.triton_utils import tl, triton
55 from vllm.utils.multi_stream_utils import (
56 execute_in_parallel,
@@ -156,7 +156,7 @@ class DeepseekV4Attention(nn.Module, AttentionLayerBase, ABC):
156 ``DeepseekV4FlashInferSM120Attention`` /
157 ``DeepseekV4FlashInferMLAAttention`` (CUDA) or
158 ``DeepseekV41ROCMAiterMLAAttention`` (ROCm) — selected by the platform-specific
159 - deepseek_v4_1 model module. The base is never instantiated directly.
159 + deepseek_v41 model module. The base is never instantiated directly.
160 """
161
162 # Provided by the platform subclass.
@@ -536,7 +536,7 @@ class DeepseekV4Attention(nn.Module, AttentionLayerBase, ABC):
536 "FLASHMLA_SPARSE_DSV41",
537 "ROCM_FLASHMLA_SPARSE_DSV4",
538 ):
539 - from vllm.models.deepseek_v4_1.common.ops.cache_utils import (
539 + from vllm.models.deepseek_v41.common.ops.cache_utils import (
540 _COMBINE_TOPK_SWA_INDICES_KERNEL,
541 )
542
@@ -581,7 +581,7 @@ class DeepseekV4Attention(nn.Module, AttentionLayerBase, ABC):
581
582 @cached_property
583 def _can_fuse_query_quant(self) -> bool:
584 - from vllm.models.deepseek_v4_1.common.ops.query_quant import (
584 + from vllm.models.deepseek_v41.common.ops.query_quant import (
585 can_fuse_query_quant,
586 )
587
@@ -600,7 +600,7 @@ class DeepseekV4Attention(nn.Module, AttentionLayerBase, ABC):
600 """
601 qr, kv = qr_kv.split([self.q_lora_rank, self.head_dim], dim=-1)
602 if self.q_lora_rank % 32 == 0 and self._can_fuse_query_quant:
603 - from vllm.models.deepseek_v4_1.common.ops.query_quant import (
603 + from vllm.models.deepseek_v41.common.ops.query_quant import (
604 fused_q_kv_rmsnorm_quant,
605 )
606
vllm/models/deepseek_v41/common/__init__.py renamed
vllm/models/deepseek_v41/common/engram.py renamed
vllm/models/deepseek_v41/common/mm_preprocess.py renamed
vllm/models/deepseek_v41/common/ops/__init__.py renamed
vllm/models/deepseek_v41/common/ops/cache_utils.py renamed
vllm/models/deepseek_v41/common/ops/fused_compress_quant_cache.py renamed
vllm/models/deepseek_v41/common/ops/indexer_k_store.py renamed
vllm/models/deepseek_v41/common/ops/query_quant.py renamed
vllm/models/deepseek_v41/common/rope.py renamed
vllm/models/deepseek_v41/compressor.py renamed
+1 -1
@@ -12,7 +12,7 @@ from vllm.forward_context import get_forward_context
12 from vllm.model_executor.layers.attention_layer_base import AttentionLayerBase
13 from vllm.model_executor.layers.layernorm import RMSNorm
14 from vllm.model_executor.layers.linear import MergedColumnParallelLinear
15 -from vllm.models.deepseek_v4_1.common.ops.fused_compress_quant_cache import (
15 +from vllm.models.deepseek_v41.common.ops.fused_compress_quant_cache import (
16 fused_save_compress_norm,
17 rope_quant_insert,
18 )
vllm/models/deepseek_v41/nvidia/__init__.py renamed
vllm/models/deepseek_v41/nvidia/dspark.py renamed
vllm/models/deepseek_v41/nvidia/engram.py renamed
+3 -3
@@ -23,16 +23,16 @@ from vllm.distributed.parallel_state import GroupCoordinator
23 from vllm.forward_context import get_forward_context
24 from vllm.logger import init_logger
25 from vllm.model_executor.utils import set_weight_attrs
26 -from vllm.models.deepseek_v4_1.common.engram import (
26 +from vllm.models.deepseek_v41.common.engram import (
27 DEAD_ID,
28 EngramLayout,
29 _engram_head_shard_weight_loader,
30 _engram_select_rows,
31 )
32 -from vllm.models.deepseek_v4_1.common.engram import (
32 +from vllm.models.deepseek_v41.common.engram import (
33 Engram as BaseEngram,
34 )
35 -from vllm.models.deepseek_v4_1.common.engram import (
35 +from vllm.models.deepseek_v41.common.engram import (
36 ParallelEngramEmbedding as BaseParallelEngramEmbedding,
37 )
38 from vllm.utils.platform_utils import is_uva_available
vllm/models/deepseek_v41/nvidia/flashinfer_sparse.py renamed
+3 -3
@@ -13,12 +13,12 @@ from vllm.models.deepseek_v4.nvidia.ops.o_proj import (
13 compute_fp8_einsum_recipe,
14 deep_gemm_fp8_o_proj,
15 )
16 -from vllm.models.deepseek_v4_1.attention import DeepseekV4Attention
17 -from vllm.models.deepseek_v4_1.common.ops import (
16 +from vllm.models.deepseek_v41.attention import DeepseekV4Attention
17 +from vllm.models.deepseek_v41.common.ops import (
18 build_flashinfer_mixed_sparse_indices,
19 compute_global_topk_indices_and_lens,
20 )
21 -from vllm.models.deepseek_v4_1.sparse_mla import (
21 +from vllm.models.deepseek_v41.sparse_mla import (
22 DeepseekV4FlashMLAMetadata,
23 DeepseekV4SparseMLABackend,
24 DeepseekV4SparseMLAMetadataBuilder,
vllm/models/deepseek_v41/nvidia/flashmla.py renamed
+3 -3
@@ -10,13 +10,13 @@ from vllm.models.deepseek_v4.nvidia.ops.o_proj import (
10 compute_fp8_einsum_recipe,
11 deep_gemm_fp8_o_proj,
12 )
13 -from vllm.models.deepseek_v4_1.attention import DeepseekV4Attention
14 -from vllm.models.deepseek_v4_1.common.ops import (
13 +from vllm.models.deepseek_v41.attention import DeepseekV4Attention
14 +from vllm.models.deepseek_v41.common.ops import (
15 combine_topk_swa_indices,
16 compute_global_topk_indices_and_lens,
17 dequantize_and_gather_k_cache,
18 )
19 -from vllm.models.deepseek_v4_1.sparse_mla import (
19 +from vllm.models.deepseek_v41.sparse_mla import (
20 DeepseekV4FlashMLABackend,
21 DeepseekV4FlashMLAMetadata,
22 DeepseekV41SparseSWAMetadataBuilder,
vllm/models/deepseek_v41/nvidia/model.py renamed
+3 -3
@@ -63,12 +63,12 @@ from vllm.models.deepseek_v4.nvidia.model import (
63 from vllm.models.deepseek_v4.nvidia.model import (
64 make_deepseek_v4_expert_params_mapping,
65 )
66 -from vllm.models.deepseek_v4_1.attention import DeepseekV4Attention
67 -from vllm.models.deepseek_v4_1.nvidia.flashinfer_sparse import (
66 +from vllm.models.deepseek_v41.attention import DeepseekV4Attention
67 +from vllm.models.deepseek_v41.nvidia.flashinfer_sparse import (
68 DeepseekV4FlashInferMLAAttention,
69 DeepseekV4FlashInferSM120Attention,
70 )
71 -from vllm.models.deepseek_v4_1.nvidia.flashmla import DeepseekV4FlashMLAAttention
71 +from vllm.models.deepseek_v41.nvidia.flashmla import DeepseekV4FlashMLAAttention
72 from vllm.platforms import current_platform
73 from vllm.sequence import IntermediateTensors
74 from vllm.utils.math_utils import cdiv
vllm/models/deepseek_v41/nvidia/model_state.py renamed
vllm/models/deepseek_v41/nvidia/vl_model.py renamed
vllm/models/deepseek_v41/quant_config.py renamed
vllm/models/deepseek_v41/sparse_mla.py renamed
vllm/transformers_utils/configs/deepseek_v41.py
+1 -1
@@ -12,7 +12,7 @@ class DeepseekV41Config(PretrainedConfig):
12 tower under ``vision_config``. The vLLM model code (ported from
13 ``deepseek_v4``) reads flat attributes, so both sub-configs are flattened
14 onto the top level here: text fields are exposed as-is, vision fields
15 - with the ``vision_*`` naming used by ``deepseek_v4_1.common.vision``.
15 + with the ``vision_*`` naming used by ``deepseek_v41.common.vision``.
16 """
17
18 model_type = "deepseek_v41"
vllm/v1/attention/backends/mla/sparse_swa.py
+1 -1
@@ -49,7 +49,7 @@ _LAYER_TYPE_C128A = "c128a"
49 # v4.1 ratio-1 / ratio-2 indexer layers: same indexer-path shape as C4A, but
50 # their compressed page block is block_size // ratio, so each gets its own plan.
51 # v4.1 builders classify layer types themselves (ratio 0 is SWA-only there); see
52 -# deepseek_v4_1/sparse_mla.py.
52 +# deepseek_v41/sparse_mla.py.
53 _LAYER_TYPE_C1A = "c1a"
54 _LAYER_TYPE_C2A = "c2a"
55
vllm/v1/attention/backends/registry.py
+2 -2
@@ -108,10 +108,10 @@ class AttentionBackendEnum(Enum, metaclass=_AttentionBackendEnumMeta):
108 # layer). Separate names from DSV4 so a V4.1 model never resolves the
109 # V4.0 backend classes through this enum.
110 FLASHMLA_SPARSE_DSV41 = (
111 - "vllm.models.deepseek_v4_1.sparse_mla.DeepseekV4FlashMLABackend"
111 + "vllm.models.deepseek_v41.sparse_mla.DeepseekV4FlashMLABackend"
112 )
113 FLASHINFER_MLA_SPARSE_DSV41 = (
114 - "vllm.models.deepseek_v4_1.nvidia.flashinfer_sparse."
114 + "vllm.models.deepseek_v41.nvidia.flashinfer_sparse."
115 "DeepseekV4FlashInferMLASparseBackend"
116 )
117 B12X = "vllm.v1.attention.backends.b12x.B12xPagedAttentionBackend"