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

Signed-off-by: Bugen Zhao <i@bugenzhao.com>
This commit is contained in:
Bugen Zhao
2026-09-13 23:17:50 -07:00
committed by GitHub
parent 10e8d5614c
commit cf1584f373
44 changed files with 71 additions and 72 deletions
+1 -1
View File
@@ -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
+2 -3
View File
@@ -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
+5 -5
View File
@@ -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:
@@ -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]
+5 -5
View File
@@ -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")
+6 -6
View File
@@ -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)
@@ -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 (
+3 -3
View File
@@ -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)
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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"
+6 -6
View File
@@ -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(
@@ -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
@@ -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,
)
+2 -2
View File
@@ -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"),
@@ -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
@@ -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,
@@ -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,
)
@@ -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,
)
@@ -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
@@ -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,
@@ -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,
@@ -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
@@ -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"
+1 -1
View File
@@ -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"
+2 -2
View File
@@ -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"