Skip to content

Commit 379ea28

Browse files
sadeghja1070claudejeejeeleeDarkLight1337
authored
Add LoRA support for DeepSeek models (V2, V3, R1-0528) (#23971)
Signed-off-by: sadeghja1070 <[email protected]> Signed-off-by: Jee Jee Li <[email protected]> Co-authored-by: Claude <[email protected]> Co-authored-by: Jee Jee Li <[email protected]> Co-authored-by: Cyrus Leung <[email protected]>
1 parent 3a6acad commit 379ea28

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

docs/models/supported_models.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -335,9 +335,9 @@ th {
335335
| `CohereForCausalLM`, `Cohere2ForCausalLM` | Command-R, Command-A | `CohereLabs/c4ai-command-r-v01`, `CohereLabs/c4ai-command-r7b-12-2024`, `CohereLabs/c4ai-command-a-03-2025`, `CohereLabs/command-a-reasoning-08-2025`, etc. | ✅︎ | ✅︎ | ✅︎ |
336336
| `DbrxForCausalLM` | DBRX | `databricks/dbrx-base`, `databricks/dbrx-instruct`, etc. | | ✅︎ | ✅︎ |
337337
| `DeciLMForCausalLM` | DeciLM | `nvidia/Llama-3_3-Nemotron-Super-49B-v1`, etc. | ✅︎ | ✅︎ | ✅︎ |
338-
| `DeepseekForCausalLM` | DeepSeek | `deepseek-ai/deepseek-llm-67b-base`, `deepseek-ai/deepseek-llm-7b-chat`, etc. | | ✅︎ | ✅︎ |
339-
| `DeepseekV2ForCausalLM` | DeepSeek-V2 | `deepseek-ai/DeepSeek-V2`, `deepseek-ai/DeepSeek-V2-Chat`, etc. | | ✅︎ | ✅︎ |
340-
| `DeepseekV3ForCausalLM` | DeepSeek-V3 | `deepseek-ai/DeepSeek-V3-Base`, `deepseek-ai/DeepSeek-V3`, etc. | | ✅︎ | ✅︎ |
338+
| `DeepseekForCausalLM` | DeepSeek | `deepseek-ai/deepseek-llm-67b-base`, `deepseek-ai/deepseek-llm-7b-chat`, etc. | ✅︎ | ✅︎ | ✅︎ |
339+
| `DeepseekV2ForCausalLM` | DeepSeek-V2 | `deepseek-ai/DeepSeek-V2`, `deepseek-ai/DeepSeek-V2-Chat`, etc. | ✅︎ | ✅︎ | ✅︎ |
340+
| `DeepseekV3ForCausalLM` | DeepSeek-V3 | `deepseek-ai/DeepSeek-V3`, `deepseek-ai/DeepSeek-R1`, `deepseek-ai/DeepSeek-V3.1`, etc. | ✅︎ | ✅︎ | ✅︎ |
341341
| `Dots1ForCausalLM` | dots.llm1 | `rednote-hilab/dots.llm1.base`, `rednote-hilab/dots.llm1.inst`, etc. | | ✅︎ | ✅︎ |
342342
| `Ernie4_5ForCausalLM` | Ernie4.5 | `baidu/ERNIE-4.5-0.3B-PT`, etc. | ✅︎ | ✅︎ | ✅︎ |
343343
| `Ernie4_5_MoeForCausalLM` | Ernie4.5MoE | `baidu/ERNIE-4.5-21B-A3B-PT`, `baidu/ERNIE-4.5-300B-A47B-PT`, etc. |✅︎| ✅︎ | ✅︎ |

vllm/model_executor/models/deepseek.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
from vllm.model_executor.sampling_metadata import SamplingMetadata
5353
from vllm.sequence import IntermediateTensors
5454

55-
from .interfaces import SupportsPP
55+
from .interfaces import SupportsLoRA, SupportsPP
5656
from .utils import (AutoWeightsLoader, extract_layer_index,
5757
is_pp_missing_parameter,
5858
make_empty_intermediate_tensors_factory, make_layers,
@@ -439,7 +439,11 @@ def load_weights(self, weights: Iterable[tuple[str,
439439
return loaded_params
440440

441441

442-
class DeepseekForCausalLM(nn.Module, SupportsPP):
442+
class DeepseekForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
443+
packed_modules_mapping = {
444+
"qkv_proj": ["q_proj", "k_proj", "v_proj"],
445+
"gate_up_proj": ["gate_proj", "up_proj"],
446+
}
443447

444448
def __init__(self, *, vllm_config: VllmConfig, prefix: str = ""):
445449
super().__init__()

vllm/model_executor/models/deepseek_v2.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
from vllm.model_executor.sampling_metadata import SamplingMetadata
5757
from vllm.sequence import IntermediateTensors
5858

59-
from .interfaces import MixtureOfExperts, SupportsPP
59+
from .interfaces import MixtureOfExperts, SupportsLoRA, SupportsPP
6060
from .utils import (PPMissingLayer, is_pp_missing_parameter,
6161
make_empty_intermediate_tensors_factory, make_layers,
6262
maybe_prefix)
@@ -727,7 +727,8 @@ def forward(
727727
return hidden_states
728728

729729

730-
class DeepseekV2ForCausalLM(nn.Module, SupportsPP, MixtureOfExperts):
730+
class DeepseekV2ForCausalLM(nn.Module, SupportsPP, MixtureOfExperts,
731+
SupportsLoRA):
731732
packed_modules_mapping = {
732733
"gate_up_proj": ["gate_proj", "up_proj"],
733734
}

0 commit comments

Comments
 (0)