diff --git a/.buildkite/test_areas/distributed.yaml b/.buildkite/test_areas/distributed.yaml index 070664ac7a..3ea26ce89c 100644 --- a/.buildkite/test_areas/distributed.yaml +++ b/.buildkite/test_areas/distributed.yaml @@ -208,7 +208,7 @@ steps: - tests/distributed/test_utils - tests/distributed/test_engram_dp_shard.py - vllm/config/engram.py - - vllm/models/deepseek_v4_1/ + - vllm/models/deepseek_v41/ commands: # https://github.com/NVIDIA/nccl/issues/1838 - export NCCL_CUMEM_HOST_ENABLE=0 diff --git a/.github/mergify.yml b/.github/mergify.yml index ba3a69ee35..1267f0264d 100644 --- a/.github/mergify.yml +++ b/.github/mergify.yml @@ -343,9 +343,8 @@ pull_request_rules: conditions: - label != stale - or: - # The 4.1 sources spell the model three ways: deepseek_v4_1 (models), - # deepseek_v41 (most) and deepseekv41 (tool parsers). - - files~=^vllm/models/deepseek_v4_1/ + # The 4.1 sources use deepseek_v41 and deepseekv41 (tool parsers). + - files~=^vllm/models/deepseek_v41/ - files~=^vllm/(?:parser|tokenizers|reasoning|transformers_utils/configs)/deepseek_v41.*\.py - files~=^vllm/tool_parsers/deepseekv41.*\.py - files~=^rust/src/(?:chat|parser)/src/.*deepseek_v41 diff --git a/tests/distributed/test_engram_dp_shard.py b/tests/distributed/test_engram_dp_shard.py index ebb0254289..35ffc659d4 100644 --- a/tests/distributed/test_engram_dp_shard.py +++ b/tests/distributed/test_engram_dp_shard.py @@ -39,9 +39,9 @@ from vllm.distributed.parallel_state import ( initialize_model_parallel, ) from vllm.forward_context import set_forward_context -from vllm.models.deepseek_v4_1.common.engram import EngramLayout -from vllm.models.deepseek_v4_1.nvidia import engram as engram_ops -from vllm.models.deepseek_v4_1.nvidia.engram import ( +from vllm.models.deepseek_v41.common.engram import EngramLayout +from vllm.models.deepseek_v41.nvidia import engram as engram_ops +from vllm.models.deepseek_v41.nvidia.engram import ( Engram, ParallelEngramEmbedding, engram_head_shard_rank, @@ -473,8 +473,8 @@ def _check_dummy_hash_model_forward( vllm_config, engram, head_sizes, weight, scales, dp_shared_memory ): """A metadata-less replica joins DP sharding but skips a shared lookup.""" - from vllm.models.deepseek_v4_1.common.engram import NgramHashState - from vllm.models.deepseek_v4_1.nvidia import model as model_ops + from vllm.models.deepseek_v41.common.engram import NgramHashState + from vllm.models.deepseek_v41.nvidia import model as model_ops dp_rank = vllm_config.parallel_config.data_parallel_rank if dp_shared_memory and dp_rank != 1: diff --git a/tests/kernels/core/test_fused_q_kv_rmsnorm.py b/tests/kernels/core/test_fused_q_kv_rmsnorm.py index 7e5e410487..3d0e2ac11e 100644 --- a/tests/kernels/core/test_fused_q_kv_rmsnorm.py +++ b/tests/kernels/core/test_fused_q_kv_rmsnorm.py @@ -125,7 +125,7 @@ def test_fused_q_kv_rmsnorm_quant_matches_separate(num_tokens, q_size, dtype): from vllm.model_executor.layers.quantization.utils.mxfp8_utils import ( mxfp8_e4m3_quantize, ) - from vllm.models.deepseek_v4_1.common.ops.query_quant import ( + from vllm.models.deepseek_v41.common.ops.query_quant import ( fused_q_kv_rmsnorm_quant, ) @@ -198,15 +198,15 @@ def test_shared_query_quant_preserves_projection( mxfp8_e4m3_quantize, ) from vllm.model_executor.layers.quantization.utils.quant_utils import kNvfp4Dynamic - from vllm.models.deepseek_v4_1.attention import ( + from vllm.models.deepseek_v41.attention import ( DeepseekV4Attention, DeepseekV4Indexer, ) - from vllm.models.deepseek_v4_1.common.ops.query_quant import ( + from vllm.models.deepseek_v41.common.ops.query_quant import ( can_fuse_query_quant, fused_q_kv_rmsnorm_quant, ) - from vllm.models.deepseek_v4_1.quant_config import DeepseekV4FP8Config + from vllm.models.deepseek_v41.quant_config import DeepseekV4FP8Config cls: ( type[FlashInferCutedslMxfp8LinearKernel] diff --git a/tests/kernels/test_compressor_kv_cache.py b/tests/kernels/test_compressor_kv_cache.py index 082a60b7a5..0f1976cf68 100644 --- a/tests/kernels/test_compressor_kv_cache.py +++ b/tests/kernels/test_compressor_kv_cache.py @@ -65,7 +65,7 @@ def test_v41_fused_save_compress_and_insert( a Torch reference with BF16 rounding before RoPE. Replays change both inputs and history so stale scratch/cache values cannot satisfy the test. """ - from vllm.models.deepseek_v4_1.common.ops.fused_compress_quant_cache import ( + from vllm.models.deepseek_v41.common.ops.fused_compress_quant_cache import ( fused_save_compress_norm, rope_quant_insert, ) @@ -226,7 +226,7 @@ def test_v41_rope_insert_plain_row(compress_ratio: int, store_fp8: bool): Non-boundary positions, negative slots and untouched rows must keep their prior contents. """ - from vllm.models.deepseek_v4_1.common.ops.fused_compress_quant_cache import ( + from vllm.models.deepseek_v41.common.ops.fused_compress_quant_cache import ( rope_quant_insert, ) @@ -301,7 +301,7 @@ def test_v41_compressor_metadata_maps_tokens_to_their_ring(): capacity`` and keep padding tokens at PAD.""" from unittest.mock import MagicMock - from vllm.models.deepseek_v4_1.compressor import CompressorMetadataBuilder + from vllm.models.deepseek_v41.compressor import CompressorMetadataBuilder from vllm.v1.attention.backend import CommonAttentionMetadata from vllm.v1.kv_cache_interface import CircularBufferSpec @@ -351,11 +351,11 @@ def test_v41_compressor_metadata_maps_tokens_to_their_ring(): def test_v41_attention_joins_cache_writes_before_consumption(use_aux, use_graph): """Both reused-event joins must publish this forward's states and cache rows.""" from vllm.forward_context import ForwardContext, override_forward_context - from vllm.models.deepseek_v4_1.attention import ( + from vllm.models.deepseek_v41.attention import ( DeepseekV4Attention, DeepseekV4Indexer, ) - from vllm.models.deepseek_v4_1.compressor import DeepseekCompressor + from vllm.models.deepseek_v41.compressor import DeepseekCompressor torch.manual_seed(43) raw = torch.randn(19, 1024, device="cuda") diff --git a/tests/kernels/test_engram.py b/tests/kernels/test_engram.py index c7e08ced82..c2a7607cba 100644 --- a/tests/kernels/test_engram.py +++ b/tests/kernels/test_engram.py @@ -7,15 +7,15 @@ from types import SimpleNamespace import pytest import torch -from vllm.models.deepseek_v4_1.common import engram as engram_ops -from vllm.models.deepseek_v4_1.common.engram import ( +from vllm.models.deepseek_v41.common import engram as engram_ops +from vllm.models.deepseek_v41.common.engram import ( Engram as CommonEngram, ) -from vllm.models.deepseek_v4_1.common.engram import ( +from vllm.models.deepseek_v41.common.engram import ( NgramHashState, ) -from vllm.models.deepseek_v4_1.nvidia import engram as nvidia_engram_ops -from vllm.models.deepseek_v4_1.nvidia.engram import Engram, ParallelEngramEmbedding +from vllm.models.deepseek_v41.nvidia import engram as nvidia_engram_ops +from vllm.models.deepseek_v41.nvidia.engram import Engram, ParallelEngramEmbedding from vllm.platforms import current_platform @@ -503,7 +503,7 @@ def test_lookback_window_reproduces_single_instance(runner, capture): @pytest.mark.skipif(not current_platform.is_cuda(), reason="CUDA required") def test_v2_model_state_gathers_lookback_window(): """The window is gathered on device from the runner's token history.""" - from vllm.models.deepseek_v4_1.nvidia.model_state import DeepseekV41ModelState + from vllm.models.deepseek_v41.nvidia.model_state import DeepseekV41ModelState depth, max_num_reqs, max_model_len = 3, 4, 16 state = DeepseekV41ModelState.__new__(DeepseekV41ModelState) diff --git a/tests/kernels/test_fused_indexer_q_rope_quant.py b/tests/kernels/test_fused_indexer_q_rope_quant.py index 73b147584c..8770882ddf 100644 --- a/tests/kernels/test_fused_indexer_q_rope_quant.py +++ b/tests/kernels/test_fused_indexer_q_rope_quant.py @@ -359,7 +359,7 @@ def test_indexer_k_inserts_only_valid_groups_into_padded_pages( num_tokens, compress_ratio, use_fp4, cache_dtype ): """Insert group ends and preserve skipped slots, graph rows, and page padding.""" - from vllm.models.deepseek_v4_1.common.ops.indexer_k_store import ( + from vllm.models.deepseek_v41.common.ops.indexer_k_store import ( indexer_k_norm_rope_store, ) @@ -442,7 +442,7 @@ def test_indexer_k_inserts_only_valid_groups_into_padded_pages( @torch.inference_mode() def test_indexer_k_cuda_graph_replay_reads_current_projection(use_fp4): """Replay must consume updated keys and slot mapping through the captured API.""" - from vllm.models.deepseek_v4_1.common.ops.indexer_k_store import ( + from vllm.models.deepseek_v41.common.ops.indexer_k_store import ( indexer_k_norm_rope_store, ) @@ -501,7 +501,7 @@ def test_indexer_k_store_roundtrips_through_rocm_gather(block_size, compress_rat ``block_size > 1``, so a row-major store would feed the indexer permuted key bytes and randomize its top-k. Assert the write/read pair is exact. """ - from vllm.models.deepseek_v4_1.common.ops.indexer_k_store import ( + from vllm.models.deepseek_v41.common.ops.indexer_k_store import ( indexer_k_norm_rope_store, ) from vllm.v1.attention.ops.rocm_aiter_mla_sparse import ( diff --git a/tests/kernels/test_mhc_kernels.py b/tests/kernels/test_mhc_kernels.py index 7f0515d11a..46f311dfe6 100644 --- a/tests/kernels/test_mhc_kernels.py +++ b/tests/kernels/test_mhc_kernels.py @@ -32,7 +32,7 @@ from vllm.models.deepseek_v4.nvidia.model import ( DeepseekV4DecoderLayer, DeepseekV4Model, ) -from vllm.models.deepseek_v4_1.nvidia.model import ( +from vllm.models.deepseek_v41.nvidia.model import ( DeepseekV4DecoderLayer as DeepseekV41DecoderLayer, ) from vllm.platforms import current_platform @@ -104,7 +104,7 @@ def test_hc_collapse_custom_op_supports_compile(): @pytest.mark.parametrize("num_tokens", [1, 7]) def test_v41_dspark_head_collapses_with_last_ffn_mix(num_tokens, monkeypatch): """Match reference DSparkBlock.forward_head's hc_pre before its RMSNorm.""" - from vllm.models.deepseek_v4_1.nvidia import dspark + from vllm.models.deepseek_v41.nvidia import dspark set_random_seed(0) hidden_size, hc_mult = 5120, 4 @@ -296,7 +296,7 @@ def test_deepseek_v41_decoder_mixes_match_torch( return post, res, decoder.attn_norm(collapsed), pre monkeypatch.setattr( - "vllm.models.deepseek_v4_1.nvidia.model.mhc_pre_delayed_tilelang", + "vllm.models.deepseek_v41.nvidia.model.mhc_pre_delayed_tilelang", reference, ) expected = decoder(x, positions, None, **kwargs) diff --git a/tests/models/test_deepseek_v4_mega_moe.py b/tests/models/test_deepseek_v4_mega_moe.py index d3d9ccabad..0d3c2b6583 100644 --- a/tests/models/test_deepseek_v4_mega_moe.py +++ b/tests/models/test_deepseek_v4_mega_moe.py @@ -18,8 +18,8 @@ from vllm.models.deepseek_v4.nvidia.model import ( ) from vllm.models.deepseek_v4.nvidia.mtp import DeepSeekV4MTP from vllm.models.deepseek_v4.nvidia.ops.prepare_megamoe import prepare_megamoe_inputs -from vllm.models.deepseek_v4_1.common.mm_preprocess import IMAGE_SENTINEL_BASE_ID -from vllm.models.deepseek_v4_1.nvidia.model import DeepseekV4MoE as DeepseekV41MoE +from vllm.models.deepseek_v41.common.mm_preprocess import IMAGE_SENTINEL_BASE_ID +from vllm.models.deepseek_v41.nvidia.model import DeepseekV4MoE as DeepseekV41MoE from vllm.platforms import current_platform from vllm.transformers_utils.configs.deepseek_v41 import DeepseekV41Config diff --git a/tests/models/test_dspark_mla.py b/tests/models/test_dspark_mla.py index 0d1507a033..d30eb9e7c9 100644 --- a/tests/models/test_dspark_mla.py +++ b/tests/models/test_dspark_mla.py @@ -216,7 +216,7 @@ def test_v41_dspark_loads_linear_scales( """Checkpoint ``.scale`` maps to the quant method's scale parameter and loads untouched. MXFP8 block-scale expansion lives in the KMxfp8Static loader (see tests/quantization/test_modelopt.py), not in load_weights.""" - from vllm.models.deepseek_v4_1.nvidia import dspark + from vllm.models.deepseek_v41.nvidia import dspark mxfp8 = scale_dtype != torch.float32 scale_name = "weight_scale" if mxfp8 else "weight_scale_inv" diff --git a/tests/quantization/test_fp8.py b/tests/quantization/test_fp8.py index a91c99bf53..65e119b083 100644 --- a/tests/quantization/test_fp8.py +++ b/tests/quantization/test_fp8.py @@ -77,8 +77,8 @@ def test_deepseek_v41_mxfp8_scale_loading( MergedColumnParallelLinear, RowParallelLinear, ) - from vllm.models.deepseek_v4_1 import quant_config as quant_module - from vllm.models.deepseek_v4_1.nvidia import model as model_module + from vllm.models.deepseek_v41 import quant_config as quant_module + from vllm.models.deepseek_v41.nvidia import model as model_module default_vllm_config.model_config = SimpleNamespace(dtype=torch.bfloat16) quant_config = quant_module.DeepseekV4FP8Config( @@ -214,8 +214,8 @@ def test_deepseek_v41_vl_mapper_routes_linear_scales( """The VL wrapper must map ``.scale`` keys to the parameter the linear quant method registers, as the text model does. A hardcoded ``weight_scale_inv`` raised KeyError for native MXFP8 checkpoints.""" - from vllm.models.deepseek_v4_1.nvidia import model as model_module - from vllm.models.deepseek_v4_1.nvidia import vl_model as vl_module + from vllm.models.deepseek_v41.nvidia import model as model_module + from vllm.models.deepseek_v41.nvidia import vl_model as vl_module vllm_config = SimpleNamespace( quant_config=SimpleNamespace(weight_block_size=weight_block_size) @@ -318,8 +318,8 @@ def test_mxfp8_bmm_loads_and_projects_grouped_weights( compute_fp8_einsum_recipe, deep_gemm_fp8_o_proj, ) - from vllm.models.deepseek_v4_1.nvidia.model import DeepseekV4Model - from vllm.models.deepseek_v4_1.quant_config import DeepseekV4FP8Config + from vllm.models.deepseek_v41.nvidia.model import DeepseekV4Model + from vllm.models.deepseek_v41.quant_config import DeepseekV4FP8Config from vllm.utils.deep_gemm import is_deep_gemm_supported if not is_deep_gemm_supported() or not current_platform.is_device_capability_family( diff --git a/tests/v1/attention/test_indexer_deepseek_v4_slot_mapping.py b/tests/v1/attention/test_indexer_deepseek_v4_slot_mapping.py index 49462ea8fb..87df1e409c 100644 --- a/tests/v1/attention/test_indexer_deepseek_v4_slot_mapping.py +++ b/tests/v1/attention/test_indexer_deepseek_v4_slot_mapping.py @@ -8,7 +8,7 @@ import torch from tests.v1.attention.utils import create_vllm_config from vllm.models.deepseek_v4.sparse_mla import DeepseekV4SparseMLABackend -from vllm.models.deepseek_v4_1.sparse_mla import ( +from vllm.models.deepseek_v41.sparse_mla import ( DeepseekV4SparseMLABackend as DeepseekV41SparseMLABackend, ) from vllm.v1.attention.backend import CommonAttentionMetadata diff --git a/vllm/model_executor/layers/quantization/__init__.py b/vllm/model_executor/layers/quantization/__init__.py index fd1d047074..57dc237131 100644 --- a/vllm/model_executor/layers/quantization/__init__.py +++ b/vllm/model_executor/layers/quantization/__init__.py @@ -120,7 +120,7 @@ def get_quantization_config(quantization: str) -> type[QuantizationConfig]: # The v4.1 class is the v4 one extended to accept model_type # "deepseek_v41" and its 32x32 MXFP8 linear layout. V4.1 has # platform-specific implementations for both CUDA and ROCm. - from vllm.models.deepseek_v4_1 import ( + from vllm.models.deepseek_v41 import ( DeepseekV4FP8Config as DeepseekV41FP8Config, ) diff --git a/vllm/model_executor/models/registry.py b/vllm/model_executor/models/registry.py index 69dd88f349..1a5f8399b6 100644 --- a/vllm/model_executor/models/registry.py +++ b/vllm/model_executor/models/registry.py @@ -377,7 +377,7 @@ _MULTIMODAL_MODELS = { "DeepseekV4ForConditionalGeneration", ), "DeepseekV41ForCausalLM": ( - "vllm.models.deepseek_v4_1", + "vllm.models.deepseek_v41", "DeepseekV41ForCausalLM", ), "Dots3NoteForCausalLM": ( @@ -645,7 +645,7 @@ _SPECULATIVE_DECODING_MODELS = { "DFlashMuseGlimmerAssistantModel": ("qwen3_dflash", "DFlashQwen3ForCausalLM"), "DSparkDraftModel": ("vllm.models.deepseek_v4", "DSparkDeepseekV4ForCausalLM"), "DSparkV41DraftModel": ( - "vllm.models.deepseek_v4_1", + "vllm.models.deepseek_v41", "DSparkDeepseekV4ForCausalLM", ), "Qwen3DSparkModel": ("qwen3_dspark", "Qwen3DSparkForCausalLM"), diff --git a/vllm/models/deepseek_v4_1/__init__.py b/vllm/models/deepseek_v41/__init__.py similarity index 100% rename from vllm/models/deepseek_v4_1/__init__.py rename to vllm/models/deepseek_v41/__init__.py diff --git a/vllm/models/deepseek_v4_1/amd/__init__.py b/vllm/models/deepseek_v41/amd/__init__.py similarity index 100% rename from vllm/models/deepseek_v4_1/amd/__init__.py rename to vllm/models/deepseek_v41/amd/__init__.py diff --git a/vllm/models/deepseek_v4_1/amd/dspark.py b/vllm/models/deepseek_v41/amd/dspark.py similarity index 100% rename from vllm/models/deepseek_v4_1/amd/dspark.py rename to vllm/models/deepseek_v41/amd/dspark.py diff --git a/vllm/models/deepseek_v4_1/amd/model.py b/vllm/models/deepseek_v41/amd/model.py similarity index 99% rename from vllm/models/deepseek_v4_1/amd/model.py rename to vllm/models/deepseek_v41/amd/model.py index 898d3ab7a0..eaed15214f 100644 --- a/vllm/models/deepseek_v4_1/amd/model.py +++ b/vllm/models/deepseek_v41/amd/model.py @@ -54,8 +54,8 @@ from vllm.models.common.ops.sequence_parallel import ( from vllm.models.deepseek_v4.amd.model import ( DeepseekV4MoE as DeepseekV4MoEBase, ) -from vllm.models.deepseek_v4_1.amd.rocm import DeepseekV41ROCMAiterMLAAttention -from vllm.models.deepseek_v4_1.attention import DeepseekV4Attention +from vllm.models.deepseek_v41.amd.rocm import DeepseekV41ROCMAiterMLAAttention +from vllm.models.deepseek_v41.attention import DeepseekV4Attention from vllm.sequence import IntermediateTensors from vllm.utils.math_utils import cdiv from vllm.v1.attention.backends.registry import AttentionBackendEnum diff --git a/vllm/models/deepseek_v4_1/amd/rocm.py b/vllm/models/deepseek_v41/amd/rocm.py similarity index 99% rename from vllm/models/deepseek_v4_1/amd/rocm.py rename to vllm/models/deepseek_v41/amd/rocm.py index 9271e7ae5a..802a59e340 100644 --- a/vllm/models/deepseek_v4_1/amd/rocm.py +++ b/vllm/models/deepseek_v41/amd/rocm.py @@ -13,9 +13,9 @@ from vllm.distributed import ( ) from vllm.forward_context import get_forward_context from vllm.logger import init_logger -from vllm.models.deepseek_v4_1.attention import DeepseekV4Attention -from vllm.models.deepseek_v4_1.common.ops import dequantize_and_gather_k_cache -from vllm.models.deepseek_v4_1.sparse_mla import ( +from vllm.models.deepseek_v41.attention import DeepseekV4Attention +from vllm.models.deepseek_v41.common.ops import dequantize_and_gather_k_cache +from vllm.models.deepseek_v41.sparse_mla import ( DeepseekV4FlashMLAMetadata, DeepseekV4SparseMLABackend, DeepseekV4SparseMLAMetadataBuilder, diff --git a/vllm/models/deepseek_v4_1/amd/vl_model.py b/vllm/models/deepseek_v41/amd/vl_model.py similarity index 100% rename from vllm/models/deepseek_v4_1/amd/vl_model.py rename to vllm/models/deepseek_v41/amd/vl_model.py diff --git a/vllm/models/deepseek_v4_1/attention.py b/vllm/models/deepseek_v41/attention.py similarity index 98% rename from vllm/models/deepseek_v4_1/attention.py rename to vllm/models/deepseek_v41/attention.py index 9bb53526c9..131cf4d97e 100644 --- a/vllm/models/deepseek_v4_1/attention.py +++ b/vllm/models/deepseek_v41/attention.py @@ -26,7 +26,7 @@ from vllm.model_executor.layers.linear import ( ) from vllm.model_executor.layers.sparse_attn_indexer import SparseAttnIndexer from vllm.models.common.ops import fused_q_kv_rmsnorm -from vllm.models.deepseek_v4_1.common.ops import ( +from vllm.models.deepseek_v41.common.ops import ( MXFP4_BLOCK_SIZE, fused_indexer_q_rope_quant, indexer_k_norm_rope_store, @@ -49,8 +49,8 @@ from vllm.model_executor.layers.attention_layer_base import AttentionLayerBase from vllm.model_executor.layers.layernorm import RMSNorm from vllm.model_executor.layers.quantization import QuantizationConfig from vllm.model_executor.models.utils import extract_layer_index -from vllm.models.deepseek_v4_1.common.rope import build_deepseek_v4_rope -from vllm.models.deepseek_v4_1.compressor import DeepseekCompressor +from vllm.models.deepseek_v41.common.rope import build_deepseek_v4_rope +from vllm.models.deepseek_v41.compressor import DeepseekCompressor from vllm.triton_utils import tl, triton from vllm.utils.multi_stream_utils import ( execute_in_parallel, @@ -156,7 +156,7 @@ class DeepseekV4Attention(nn.Module, AttentionLayerBase, ABC): ``DeepseekV4FlashInferSM120Attention`` / ``DeepseekV4FlashInferMLAAttention`` (CUDA) or ``DeepseekV41ROCMAiterMLAAttention`` (ROCm) — selected by the platform-specific - deepseek_v4_1 model module. The base is never instantiated directly. + deepseek_v41 model module. The base is never instantiated directly. """ # Provided by the platform subclass. @@ -536,7 +536,7 @@ class DeepseekV4Attention(nn.Module, AttentionLayerBase, ABC): "FLASHMLA_SPARSE_DSV41", "ROCM_FLASHMLA_SPARSE_DSV4", ): - from vllm.models.deepseek_v4_1.common.ops.cache_utils import ( + from vllm.models.deepseek_v41.common.ops.cache_utils import ( _COMBINE_TOPK_SWA_INDICES_KERNEL, ) @@ -581,7 +581,7 @@ class DeepseekV4Attention(nn.Module, AttentionLayerBase, ABC): @cached_property def _can_fuse_query_quant(self) -> bool: - from vllm.models.deepseek_v4_1.common.ops.query_quant import ( + from vllm.models.deepseek_v41.common.ops.query_quant import ( can_fuse_query_quant, ) @@ -600,7 +600,7 @@ class DeepseekV4Attention(nn.Module, AttentionLayerBase, ABC): """ qr, kv = qr_kv.split([self.q_lora_rank, self.head_dim], dim=-1) if self.q_lora_rank % 32 == 0 and self._can_fuse_query_quant: - from vllm.models.deepseek_v4_1.common.ops.query_quant import ( + from vllm.models.deepseek_v41.common.ops.query_quant import ( fused_q_kv_rmsnorm_quant, ) diff --git a/vllm/models/deepseek_v4_1/common/__init__.py b/vllm/models/deepseek_v41/common/__init__.py similarity index 100% rename from vllm/models/deepseek_v4_1/common/__init__.py rename to vllm/models/deepseek_v41/common/__init__.py diff --git a/vllm/models/deepseek_v4_1/common/engram.py b/vllm/models/deepseek_v41/common/engram.py similarity index 100% rename from vllm/models/deepseek_v4_1/common/engram.py rename to vllm/models/deepseek_v41/common/engram.py diff --git a/vllm/models/deepseek_v4_1/common/mm_preprocess.py b/vllm/models/deepseek_v41/common/mm_preprocess.py similarity index 100% rename from vllm/models/deepseek_v4_1/common/mm_preprocess.py rename to vllm/models/deepseek_v41/common/mm_preprocess.py diff --git a/vllm/models/deepseek_v4_1/common/ops/__init__.py b/vllm/models/deepseek_v41/common/ops/__init__.py similarity index 100% rename from vllm/models/deepseek_v4_1/common/ops/__init__.py rename to vllm/models/deepseek_v41/common/ops/__init__.py diff --git a/vllm/models/deepseek_v4_1/common/ops/cache_utils.py b/vllm/models/deepseek_v41/common/ops/cache_utils.py similarity index 100% rename from vllm/models/deepseek_v4_1/common/ops/cache_utils.py rename to vllm/models/deepseek_v41/common/ops/cache_utils.py diff --git a/vllm/models/deepseek_v4_1/common/ops/fused_compress_quant_cache.py b/vllm/models/deepseek_v41/common/ops/fused_compress_quant_cache.py similarity index 100% rename from vllm/models/deepseek_v4_1/common/ops/fused_compress_quant_cache.py rename to vllm/models/deepseek_v41/common/ops/fused_compress_quant_cache.py diff --git a/vllm/models/deepseek_v4_1/common/ops/indexer_k_store.py b/vllm/models/deepseek_v41/common/ops/indexer_k_store.py similarity index 100% rename from vllm/models/deepseek_v4_1/common/ops/indexer_k_store.py rename to vllm/models/deepseek_v41/common/ops/indexer_k_store.py diff --git a/vllm/models/deepseek_v4_1/common/ops/query_quant.py b/vllm/models/deepseek_v41/common/ops/query_quant.py similarity index 100% rename from vllm/models/deepseek_v4_1/common/ops/query_quant.py rename to vllm/models/deepseek_v41/common/ops/query_quant.py diff --git a/vllm/models/deepseek_v4_1/common/rope.py b/vllm/models/deepseek_v41/common/rope.py similarity index 100% rename from vllm/models/deepseek_v4_1/common/rope.py rename to vllm/models/deepseek_v41/common/rope.py diff --git a/vllm/models/deepseek_v4_1/compressor.py b/vllm/models/deepseek_v41/compressor.py similarity index 99% rename from vllm/models/deepseek_v4_1/compressor.py rename to vllm/models/deepseek_v41/compressor.py index d09d97d04c..44440fcb61 100644 --- a/vllm/models/deepseek_v4_1/compressor.py +++ b/vllm/models/deepseek_v41/compressor.py @@ -12,7 +12,7 @@ from vllm.forward_context import get_forward_context from vllm.model_executor.layers.attention_layer_base import AttentionLayerBase from vllm.model_executor.layers.layernorm import RMSNorm from vllm.model_executor.layers.linear import MergedColumnParallelLinear -from vllm.models.deepseek_v4_1.common.ops.fused_compress_quant_cache import ( +from vllm.models.deepseek_v41.common.ops.fused_compress_quant_cache import ( fused_save_compress_norm, rope_quant_insert, ) diff --git a/vllm/models/deepseek_v4_1/nvidia/__init__.py b/vllm/models/deepseek_v41/nvidia/__init__.py similarity index 100% rename from vllm/models/deepseek_v4_1/nvidia/__init__.py rename to vllm/models/deepseek_v41/nvidia/__init__.py diff --git a/vllm/models/deepseek_v4_1/nvidia/dspark.py b/vllm/models/deepseek_v41/nvidia/dspark.py similarity index 100% rename from vllm/models/deepseek_v4_1/nvidia/dspark.py rename to vllm/models/deepseek_v41/nvidia/dspark.py diff --git a/vllm/models/deepseek_v4_1/nvidia/engram.py b/vllm/models/deepseek_v41/nvidia/engram.py similarity index 99% rename from vllm/models/deepseek_v4_1/nvidia/engram.py rename to vllm/models/deepseek_v41/nvidia/engram.py index b141b6c349..624a36c214 100644 --- a/vllm/models/deepseek_v4_1/nvidia/engram.py +++ b/vllm/models/deepseek_v41/nvidia/engram.py @@ -23,16 +23,16 @@ from vllm.distributed.parallel_state import GroupCoordinator from vllm.forward_context import get_forward_context from vllm.logger import init_logger from vllm.model_executor.utils import set_weight_attrs -from vllm.models.deepseek_v4_1.common.engram import ( +from vllm.models.deepseek_v41.common.engram import ( DEAD_ID, EngramLayout, _engram_head_shard_weight_loader, _engram_select_rows, ) -from vllm.models.deepseek_v4_1.common.engram import ( +from vllm.models.deepseek_v41.common.engram import ( Engram as BaseEngram, ) -from vllm.models.deepseek_v4_1.common.engram import ( +from vllm.models.deepseek_v41.common.engram import ( ParallelEngramEmbedding as BaseParallelEngramEmbedding, ) from vllm.utils.platform_utils import is_uva_available diff --git a/vllm/models/deepseek_v4_1/nvidia/flashinfer_sparse.py b/vllm/models/deepseek_v41/nvidia/flashinfer_sparse.py similarity index 99% rename from vllm/models/deepseek_v4_1/nvidia/flashinfer_sparse.py rename to vllm/models/deepseek_v41/nvidia/flashinfer_sparse.py index 802ddede9c..7bed50bde7 100644 --- a/vllm/models/deepseek_v4_1/nvidia/flashinfer_sparse.py +++ b/vllm/models/deepseek_v41/nvidia/flashinfer_sparse.py @@ -13,12 +13,12 @@ from vllm.models.deepseek_v4.nvidia.ops.o_proj import ( compute_fp8_einsum_recipe, deep_gemm_fp8_o_proj, ) -from vllm.models.deepseek_v4_1.attention import DeepseekV4Attention -from vllm.models.deepseek_v4_1.common.ops import ( +from vllm.models.deepseek_v41.attention import DeepseekV4Attention +from vllm.models.deepseek_v41.common.ops import ( build_flashinfer_mixed_sparse_indices, compute_global_topk_indices_and_lens, ) -from vllm.models.deepseek_v4_1.sparse_mla import ( +from vllm.models.deepseek_v41.sparse_mla import ( DeepseekV4FlashMLAMetadata, DeepseekV4SparseMLABackend, DeepseekV4SparseMLAMetadataBuilder, diff --git a/vllm/models/deepseek_v4_1/nvidia/flashmla.py b/vllm/models/deepseek_v41/nvidia/flashmla.py similarity index 98% rename from vllm/models/deepseek_v4_1/nvidia/flashmla.py rename to vllm/models/deepseek_v41/nvidia/flashmla.py index 86d8fb2031..ec834aa80d 100644 --- a/vllm/models/deepseek_v4_1/nvidia/flashmla.py +++ b/vllm/models/deepseek_v41/nvidia/flashmla.py @@ -10,13 +10,13 @@ from vllm.models.deepseek_v4.nvidia.ops.o_proj import ( compute_fp8_einsum_recipe, deep_gemm_fp8_o_proj, ) -from vllm.models.deepseek_v4_1.attention import DeepseekV4Attention -from vllm.models.deepseek_v4_1.common.ops import ( +from vllm.models.deepseek_v41.attention import DeepseekV4Attention +from vllm.models.deepseek_v41.common.ops import ( combine_topk_swa_indices, compute_global_topk_indices_and_lens, dequantize_and_gather_k_cache, ) -from vllm.models.deepseek_v4_1.sparse_mla import ( +from vllm.models.deepseek_v41.sparse_mla import ( DeepseekV4FlashMLABackend, DeepseekV4FlashMLAMetadata, DeepseekV41SparseSWAMetadataBuilder, diff --git a/vllm/models/deepseek_v4_1/nvidia/model.py b/vllm/models/deepseek_v41/nvidia/model.py similarity index 99% rename from vllm/models/deepseek_v4_1/nvidia/model.py rename to vllm/models/deepseek_v41/nvidia/model.py index 0868089da6..df12a9d9bb 100644 --- a/vllm/models/deepseek_v4_1/nvidia/model.py +++ b/vllm/models/deepseek_v41/nvidia/model.py @@ -63,12 +63,12 @@ from vllm.models.deepseek_v4.nvidia.model import ( from vllm.models.deepseek_v4.nvidia.model import ( make_deepseek_v4_expert_params_mapping, ) -from vllm.models.deepseek_v4_1.attention import DeepseekV4Attention -from vllm.models.deepseek_v4_1.nvidia.flashinfer_sparse import ( +from vllm.models.deepseek_v41.attention import DeepseekV4Attention +from vllm.models.deepseek_v41.nvidia.flashinfer_sparse import ( DeepseekV4FlashInferMLAAttention, DeepseekV4FlashInferSM120Attention, ) -from vllm.models.deepseek_v4_1.nvidia.flashmla import DeepseekV4FlashMLAAttention +from vllm.models.deepseek_v41.nvidia.flashmla import DeepseekV4FlashMLAAttention from vllm.platforms import current_platform from vllm.sequence import IntermediateTensors from vllm.utils.math_utils import cdiv diff --git a/vllm/models/deepseek_v4_1/nvidia/model_state.py b/vllm/models/deepseek_v41/nvidia/model_state.py similarity index 100% rename from vllm/models/deepseek_v4_1/nvidia/model_state.py rename to vllm/models/deepseek_v41/nvidia/model_state.py diff --git a/vllm/models/deepseek_v4_1/nvidia/vl_model.py b/vllm/models/deepseek_v41/nvidia/vl_model.py similarity index 100% rename from vllm/models/deepseek_v4_1/nvidia/vl_model.py rename to vllm/models/deepseek_v41/nvidia/vl_model.py diff --git a/vllm/models/deepseek_v4_1/quant_config.py b/vllm/models/deepseek_v41/quant_config.py similarity index 100% rename from vllm/models/deepseek_v4_1/quant_config.py rename to vllm/models/deepseek_v41/quant_config.py diff --git a/vllm/models/deepseek_v4_1/sparse_mla.py b/vllm/models/deepseek_v41/sparse_mla.py similarity index 100% rename from vllm/models/deepseek_v4_1/sparse_mla.py rename to vllm/models/deepseek_v41/sparse_mla.py diff --git a/vllm/transformers_utils/configs/deepseek_v41.py b/vllm/transformers_utils/configs/deepseek_v41.py index 0be36d2480..8f33245cd6 100644 --- a/vllm/transformers_utils/configs/deepseek_v41.py +++ b/vllm/transformers_utils/configs/deepseek_v41.py @@ -12,7 +12,7 @@ class DeepseekV41Config(PretrainedConfig): tower under ``vision_config``. The vLLM model code (ported from ``deepseek_v4``) reads flat attributes, so both sub-configs are flattened onto the top level here: text fields are exposed as-is, vision fields - with the ``vision_*`` naming used by ``deepseek_v4_1.common.vision``. + with the ``vision_*`` naming used by ``deepseek_v41.common.vision``. """ model_type = "deepseek_v41" diff --git a/vllm/v1/attention/backends/mla/sparse_swa.py b/vllm/v1/attention/backends/mla/sparse_swa.py index f47554d81f..62c3921b5e 100644 --- a/vllm/v1/attention/backends/mla/sparse_swa.py +++ b/vllm/v1/attention/backends/mla/sparse_swa.py @@ -49,7 +49,7 @@ _LAYER_TYPE_C128A = "c128a" # v4.1 ratio-1 / ratio-2 indexer layers: same indexer-path shape as C4A, but # their compressed page block is block_size // ratio, so each gets its own plan. # v4.1 builders classify layer types themselves (ratio 0 is SWA-only there); see -# deepseek_v4_1/sparse_mla.py. +# deepseek_v41/sparse_mla.py. _LAYER_TYPE_C1A = "c1a" _LAYER_TYPE_C2A = "c2a" diff --git a/vllm/v1/attention/backends/registry.py b/vllm/v1/attention/backends/registry.py index 085f2358fa..571566db1f 100644 --- a/vllm/v1/attention/backends/registry.py +++ b/vllm/v1/attention/backends/registry.py @@ -108,10 +108,10 @@ class AttentionBackendEnum(Enum, metaclass=_AttentionBackendEnumMeta): # layer). Separate names from DSV4 so a V4.1 model never resolves the # V4.0 backend classes through this enum. FLASHMLA_SPARSE_DSV41 = ( - "vllm.models.deepseek_v4_1.sparse_mla.DeepseekV4FlashMLABackend" + "vllm.models.deepseek_v41.sparse_mla.DeepseekV4FlashMLABackend" ) FLASHINFER_MLA_SPARSE_DSV41 = ( - "vllm.models.deepseek_v4_1.nvidia.flashinfer_sparse." + "vllm.models.deepseek_v41.nvidia.flashinfer_sparse." "DeepseekV4FlashInferMLASparseBackend" ) B12X = "vllm.v1.attention.backends.b12x.B12xPagedAttentionBackend"