A high-throughput and memory-efficient inference and serving engine for LLMs
Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git
Synced Nov 15, 22:15 UTC
[Misc] Improve LoRA spelling (#13831)
Jee Jee Li committed
Feb 26, 2025 at 15:43 UTC
5157338ed956a56a5607b1c353cfc9c8114bf700
25 files changed
+80
-80
benchmarks/kernels/benchmark_lora.py
+1
-1
@@ -89,7 +89,7 @@ def make_prompt_lora_mapping(num_prompts: int, num_active_loras: int,
89
sort_by_lora_id: bool,
90
device: str) -> torch.Tensor:
91
"""
92
- All prompts are mapped to a Lora ID in range [0, num_active_loras).
92
+ All prompts are mapped to a LoRA ID in range [0, num_active_loras).
93
where 0 refers to first lora, 1 refers to second lora and so on.
94
"""
95
assert num_active_loras > 0
docs/source/features/lora.md
+1
-1
@@ -170,7 +170,7 @@ Now, you can specify a base_model_name alongside the name and path using JSON fo
170
171
To provide the backward compatibility support, you can still use the old key-value format (name=path), but the `base_model_name` will remain unspecified in that case.
172
173
-## Lora model lineage in model card
173
+## LoRA model lineage in model card
174
175
The new format of `--lora-modules` is mainly to support the display of parent model information in the model card. Here's an explanation of how your current response supports this:
176
tests/core/test_scheduler.py
+1
-1
@@ -491,7 +491,7 @@ def test_prefill_schedule_max_lora():
491
lora_path="abc"))
492
scheduler.add_seq_group(seq_group)
493
# Add two more requests to verify lora is prioritized.
494
- # 0: Lora, 1: Lora, 2: regular, 3: regular
494
+ # 0: LoRA, 1: LoRA, 2: regular, 3: regular
495
# In the first iteration, index 0, 2 is scheduled.
496
# If a request is not scheduled because it hits max lora, it is
497
# prioritized. Verify that.
tests/entrypoints/openai/test_cli_args.py
+1
-1
@@ -26,7 +26,7 @@ def serve_parser():
26
return make_arg_parser(parser)
27
28
29
-### Tests for Lora module parsing
29
+### Tests for LoRA module parsing
30
def test_valid_key_value_format(serve_parser):
31
# Test old format: name=path
32
args = serve_parser.parse_args([
tests/entrypoints/openai/test_serving_models.py
+10
-10
@@ -8,8 +8,8 @@ import pytest
8
from vllm.config import ModelConfig
9
from vllm.engine.protocol import EngineClient
10
from vllm.entrypoints.openai.protocol import (ErrorResponse,
11
- LoadLoraAdapterRequest,
12
- UnloadLoraAdapterRequest)
11
+ LoadLoRAAdapterRequest,
12
+ UnloadLoRAAdapterRequest)
13
from vllm.entrypoints.openai.serving_models import (BaseModelPath,
14
OpenAIServingModels)
15
from vllm.lora.request import LoRARequest
@@ -51,7 +51,7 @@ async def test_serving_model_name():
51
@pytest.mark.asyncio
52
async def test_load_lora_adapter_success():
53
serving_models = await _async_serving_models_init()
54
- request = LoadLoraAdapterRequest(lora_name="adapter",
54
+ request = LoadLoRAAdapterRequest(lora_name="adapter",
55
lora_path="/path/to/adapter2")
56
response = await serving_models.load_lora_adapter(request)
57
assert response == LORA_LOADING_SUCCESS_MESSAGE.format(lora_name='adapter')
@@ -62,7 +62,7 @@ async def test_load_lora_adapter_success():
62
@pytest.mark.asyncio
63
async def test_load_lora_adapter_missing_fields():
64
serving_models = await _async_serving_models_init()
65
- request = LoadLoraAdapterRequest(lora_name="", lora_path="")
65
+ request = LoadLoRAAdapterRequest(lora_name="", lora_path="")
66
response = await serving_models.load_lora_adapter(request)
67
assert isinstance(response, ErrorResponse)
68
assert response.type == "InvalidUserInput"
@@ -72,14 +72,14 @@ async def test_load_lora_adapter_missing_fields():
72
@pytest.mark.asyncio
73
async def test_load_lora_adapter_duplicate():
74
serving_models = await _async_serving_models_init()
75
- request = LoadLoraAdapterRequest(lora_name="adapter1",
75
+ request = LoadLoRAAdapterRequest(lora_name="adapter1",
76
lora_path="/path/to/adapter1")
77
response = await serving_models.load_lora_adapter(request)
78
assert response == LORA_LOADING_SUCCESS_MESSAGE.format(
79
lora_name='adapter1')
80
assert len(serving_models.lora_requests) == 1
81
82
- request = LoadLoraAdapterRequest(lora_name="adapter1",
82
+ request = LoadLoRAAdapterRequest(lora_name="adapter1",
83
lora_path="/path/to/adapter1")
84
response = await serving_models.load_lora_adapter(request)
85
assert isinstance(response, ErrorResponse)
@@ -91,12 +91,12 @@ async def test_load_lora_adapter_duplicate():
91
@pytest.mark.asyncio
92
async def test_unload_lora_adapter_success():
93
serving_models = await _async_serving_models_init()
94
- request = LoadLoraAdapterRequest(lora_name="adapter1",
94
+ request = LoadLoRAAdapterRequest(lora_name="adapter1",
95
lora_path="/path/to/adapter1")
96
response = await serving_models.load_lora_adapter(request)
97
assert len(serving_models.lora_requests) == 1
98
99
- request = UnloadLoraAdapterRequest(lora_name="adapter1")
99
+ request = UnloadLoRAAdapterRequest(lora_name="adapter1")
100
response = await serving_models.unload_lora_adapter(request)
101
assert response == LORA_UNLOADING_SUCCESS_MESSAGE.format(
102
lora_name='adapter1')
@@ -106,7 +106,7 @@ async def test_unload_lora_adapter_success():
106
@pytest.mark.asyncio
107
async def test_unload_lora_adapter_missing_fields():
108
serving_models = await _async_serving_models_init()
109
- request = UnloadLoraAdapterRequest(lora_name="", lora_int_id=None)
109
+ request = UnloadLoRAAdapterRequest(lora_name="", lora_int_id=None)
110
response = await serving_models.unload_lora_adapter(request)
111
assert isinstance(response, ErrorResponse)
112
assert response.type == "InvalidUserInput"
@@ -116,7 +116,7 @@ async def test_unload_lora_adapter_missing_fields():
116
@pytest.mark.asyncio
117
async def test_unload_lora_adapter_not_found():
118
serving_models = await _async_serving_models_init()
119
- request = UnloadLoraAdapterRequest(lora_name="nonexistent_adapter")
119
+ request = UnloadLoRAAdapterRequest(lora_name="nonexistent_adapter")
120
response = await serving_models.unload_lora_adapter(request)
121
assert isinstance(response, ErrorResponse)
122
assert response.type == "NotFoundError"
tests/lora/test_layers.py
+9
-9
@@ -14,16 +14,16 @@ from vllm.config import LoRAConfig
14
from vllm.lora.fully_sharded_layers import (
15
ColumnParallelLinearWithShardedLoRA,
16
MergedColumnParallelLinearWithShardedLoRA,
17
- MergedQKVParallelLinearWithShardedLora, QKVParallelLinearWithShardedLora,
17
+ MergedQKVParallelLinearWithShardedLoRA, QKVParallelLinearWithShardedLoRA,
18
RowParallelLinearWithShardedLoRA)
19
# yapf conflicts with isort for this block
20
# yapf: disable
21
from vllm.lora.layers import (BaseLayerWithLoRA, ColumnParallelLinearWithLoRA,
22
- LinearScalingRotaryEmbeddingWithLora,
22
+ LinearScalingRotaryEmbeddingWithLoRA,
23
LogitsProcessorWithLoRA, LoRAMapping,
24
MergedColumnParallelLinearWithLoRA,
25
- MergedQKVParallelLinearWithLora,
26
- QKVParallelLinearWithLora,
25
+ MergedQKVParallelLinearWithLoRA,
26
+ QKVParallelLinearWithLoRA,
27
ReplicatedLinearWithLoRA,
28
RowParallelLinearWithLoRA,
29
VocabParallelEmbeddingWithLoRA)
@@ -866,9 +866,9 @@ def test_column_parallel_packed(dist_init, num_loras, repeats, fully_shard,
866
bias=False,
867
params_dtype=torch.float16)
868
linear.weight.data = torch.rand_like(linear.weight.data)
869
- lora_linear = (MergedQKVParallelLinearWithLora(linear)
869
+ lora_linear = (MergedQKVParallelLinearWithLoRA(linear)
870
if not fully_shard else
871
- MergedQKVParallelLinearWithShardedLora(linear))
871
+ MergedQKVParallelLinearWithShardedLoRA(linear))
872
else:
873
linear = QKVParallelLinear(4096,
874
64,
@@ -876,9 +876,9 @@ def test_column_parallel_packed(dist_init, num_loras, repeats, fully_shard,
876
bias=False,
877
params_dtype=torch.float16)
878
linear.weight.data = torch.rand_like(linear.weight.data)
879
- lora_linear = QKVParallelLinearWithLora(
879
+ lora_linear = QKVParallelLinearWithLoRA(
880
linear
881
- ) if not fully_shard else QKVParallelLinearWithShardedLora(linear)
881
+ ) if not fully_shard else QKVParallelLinearWithShardedLoRA(linear)
882
883
@dataclass
884
class FakeConfig:
@@ -1024,7 +1024,7 @@ def test_rotary_embedding_long_context(dist_init, num_loras, device,
1024
base,
1025
is_neox_style,
1026
)
1027
- lora_rope = LinearScalingRotaryEmbeddingWithLora(rope)
1027
+ lora_rope = LinearScalingRotaryEmbeddingWithLoRA(rope)
1028
lora_rope.set_mapping(punica_wrapper)
1029
lora_rope.create_lora_weights(max_loras, lora_config)
1030
linear_rope = get_rope(head_size, rotary_dim, max_position, base,
tests/lora/test_long_context.py
+2
-2
@@ -8,7 +8,7 @@ import pytest
8
9
import vllm
10
from vllm import SamplingParams
11
-from vllm.lora.layers import LinearScalingRotaryEmbeddingWithLora
11
+from vllm.lora.layers import LinearScalingRotaryEmbeddingWithLoRA
12
from vllm.lora.request import LoRARequest
13
from vllm.model_executor.layers.rotary_embedding import (
14
LinearScalingRotaryEmbedding)
@@ -151,7 +151,7 @@ def test_rotary_emb_replaced(dist_init):
151
if "rotary_emb" in module_name:
152
if "base_layer" not in module_name:
153
rotary_emb_count += 1
154
- assert isinstance(module, LinearScalingRotaryEmbeddingWithLora)
154
+ assert isinstance(module, LinearScalingRotaryEmbeddingWithLoRA)
155
else:
156
assert isinstance(module, LinearScalingRotaryEmbedding)
157
# Llama 2 has 32 layers.
vllm/engine/llm_engine.py
+1
-1
@@ -1629,7 +1629,7 @@ class LLMEngine:
1629
max_tokens_requests: List[int] = []
1630
finished_reason_requests: List[str] = []
1631
1632
- # Lora requests
1632
+ # LoRA requests
1633
running_lora_adapters = dict(
1634
collectionsCounter([
1635
running_request.lora_request.lora_name
vllm/entrypoints/openai/api_server.py
+5
-5
@@ -53,7 +53,7 @@ from vllm.entrypoints.openai.protocol import (ChatCompletionRequest,
53
EmbeddingResponse,
54
EmbeddingResponseData,
55
ErrorResponse,
56
- LoadLoraAdapterRequest,
56
+ LoadLoRAAdapterRequest,
57
PoolingChatRequest,
58
PoolingCompletionRequest,
59
PoolingRequest, PoolingResponse,
@@ -63,7 +63,7 @@ from vllm.entrypoints.openai.protocol import (ChatCompletionRequest,
63
TokenizeResponse,
64
TranscriptionRequest,
65
TranscriptionResponse,
66
- UnloadLoraAdapterRequest)
66
+ UnloadLoRAAdapterRequest)
67
from vllm.entrypoints.openai.reasoning_parsers import ReasoningParserManager
68
# yapf: enable
69
from vllm.entrypoints.openai.serving_chat import OpenAIServingChat
@@ -690,12 +690,12 @@ if envs.VLLM_TORCH_PROFILER_DIR:
690
691
if envs.VLLM_ALLOW_RUNTIME_LORA_UPDATING:
692
logger.warning(
693
- "Lora dynamic loading & unloading is enabled in the API server. "
693
+ "LoRA dynamic loading & unloading is enabled in the API server. "
694
"This should ONLY be used for local development!")
695
696
@router.post("/v1/load_lora_adapter",
697
dependencies=[Depends(validate_json_request)])
698
- async def load_lora_adapter(request: LoadLoraAdapterRequest,
698
+ async def load_lora_adapter(request: LoadLoRAAdapterRequest,
699
raw_request: Request):
700
handler = models(raw_request)
701
response = await handler.load_lora_adapter(request)
@@ -707,7 +707,7 @@ if envs.VLLM_ALLOW_RUNTIME_LORA_UPDATING:
707
708
@router.post("/v1/unload_lora_adapter",
709
dependencies=[Depends(validate_json_request)])
710
- async def unload_lora_adapter(request: UnloadLoraAdapterRequest,
710
+ async def unload_lora_adapter(request: UnloadLoRAAdapterRequest,
711
raw_request: Request):
712
handler = models(raw_request)
713
response = await handler.unload_lora_adapter(request)
vllm/entrypoints/openai/protocol.py
+2
-2
@@ -1431,12 +1431,12 @@ class DetokenizeResponse(OpenAIBaseModel):
1431
prompt: str
1432
1433
1434
-class LoadLoraAdapterRequest(BaseModel):
1434
+class LoadLoRAAdapterRequest(BaseModel):
1435
lora_name: str
1436
lora_path: str
1437
1438
1439
-class UnloadLoraAdapterRequest(BaseModel):
1439
+class UnloadLoRAAdapterRequest(BaseModel):
1440
lora_name: str
1441
lora_int_id: Optional[int] = Field(default=None)
1442
vllm/entrypoints/openai/serving_models.py
+7
-7
@@ -9,10 +9,10 @@ from typing import List, Optional, Union
9
from vllm.config import ModelConfig
10
from vllm.engine.protocol import EngineClient
11
from vllm.entrypoints.openai.protocol import (ErrorResponse,
12
- LoadLoraAdapterRequest,
12
+ LoadLoRAAdapterRequest,
13
ModelCard, ModelList,
14
ModelPermission,
15
- UnloadLoraAdapterRequest)
15
+ UnloadLoRAAdapterRequest)
16
from vllm.logger import init_logger
17
from vllm.lora.request import LoRARequest
18
from vllm.prompt_adapter.request import PromptAdapterRequest
@@ -88,7 +88,7 @@ class OpenAIServingModels:
88
if self.static_lora_modules is None:
89
return
90
for lora in self.static_lora_modules:
91
- load_request = LoadLoraAdapterRequest(lora_path=lora.path,
91
+ load_request = LoadLoRAAdapterRequest(lora_path=lora.path,
92
lora_name=lora.name)
93
load_result = await self.load_lora_adapter(
94
request=load_request, base_model_name=lora.base_model_name)
@@ -140,7 +140,7 @@ class OpenAIServingModels:
140
141
async def load_lora_adapter(
142
self,
143
- request: LoadLoraAdapterRequest,
143
+ request: LoadLoRAAdapterRequest,
144
base_model_name: Optional[str] = None
145
) -> Union[ErrorResponse, str]:
146
error_check_ret = await self._check_load_lora_adapter_request(request)
@@ -177,7 +177,7 @@ class OpenAIServingModels:
177
178
async def unload_lora_adapter(
179
self,
180
- request: UnloadLoraAdapterRequest) -> Union[ErrorResponse, str]:
180
+ request: UnloadLoRAAdapterRequest) -> Union[ErrorResponse, str]:
181
error_check_ret = await self._check_unload_lora_adapter_request(request
182
)
183
if error_check_ret is not None:
@@ -192,7 +192,7 @@ class OpenAIServingModels:
192
return f"Success: LoRA adapter '{lora_name}' removed successfully."
193
194
async def _check_load_lora_adapter_request(
195
- self, request: LoadLoraAdapterRequest) -> Optional[ErrorResponse]:
195
+ self, request: LoadLoRAAdapterRequest) -> Optional[ErrorResponse]:
196
# Check if both 'lora_name' and 'lora_path' are provided
197
if not request.lora_name or not request.lora_path:
198
return create_error_response(
@@ -214,7 +214,7 @@ class OpenAIServingModels:
214
215
async def _check_unload_lora_adapter_request(
216
self,
217
- request: UnloadLoraAdapterRequest) -> Optional[ErrorResponse]:
217
+ request: UnloadLoRAAdapterRequest) -> Optional[ErrorResponse]:
218
# Check if either 'lora_name' or 'lora_int_id' is provided
219
if not request.lora_name and not request.lora_int_id:
220
return create_error_response(
vllm/lora/fully_sharded_layers.py
+6
-6
@@ -13,8 +13,8 @@ from vllm.distributed.communication_op import (
13
from vllm.distributed.parallel_state import get_tensor_model_parallel_rank
14
from vllm.lora.layers import (ColumnParallelLinearWithLoRA,
15
MergedColumnParallelLinearWithLoRA,
16
- MergedQKVParallelLinearWithLora,
17
- QKVParallelLinearWithLora,
16
+ MergedQKVParallelLinearWithLoRA,
17
+ QKVParallelLinearWithLoRA,
18
RowParallelLinearWithLoRA)
19
20
if TYPE_CHECKING:
@@ -167,9 +167,9 @@ class MergedColumnParallelLinearWithShardedLoRA(
167
)
168
169
170
-class QKVParallelLinearWithShardedLora(QKVParallelLinearWithLora):
170
+class QKVParallelLinearWithShardedLoRA(QKVParallelLinearWithLoRA):
171
"""
172
- Differs from QKVParallelLinearWithLora by slicing the
172
+ Differs from QKVParallelLinearWithLoRA by slicing the
173
LoRA A's also.
174
175
Based on S-LoRA, slicing happens along the rank dim.
@@ -202,9 +202,9 @@ class QKVParallelLinearWithShardedLora(QKVParallelLinearWithLora):
202
)
203
204
205
-class MergedQKVParallelLinearWithShardedLora(MergedQKVParallelLinearWithLora):
205
+class MergedQKVParallelLinearWithShardedLoRA(MergedQKVParallelLinearWithLoRA):
206
"""
207
- Differs from MergedQKVParallelLinearWithLora by slicing the
207
+ Differs from MergedQKVParallelLinearWithLoRA by slicing the
208
LoRA A's also.
209
210
Based on S-LoRA, slicing happens along the rank dim.
vllm/lora/layers.py
+4
-4
@@ -363,7 +363,7 @@ class BaseLinearLayerWithLoRA(BaseLayerWithLoRA):
363
embeddings_tensor: Optional[torch.Tensor],
364
lora_bias: Optional[torch.Tensor] = None,
365
):
366
- # Except for QKVParallelLinearWithLora and
366
+ # Except for QKVParallelLinearWithLoRA and
367
# MergedColumnParallelLinearWithLoRA, all other linear LoRA layers
368
# store weights in a tuple of size 1. These two layers will
369
# override this function.
@@ -686,7 +686,7 @@ class MergedColumnParallelLinearWithLoRA(ColumnParallelLinearWithLoRA):
686
and len(packed_modules_list) == 2)
687
688
689
-class QKVParallelLinearWithLora(ColumnParallelLinearWithLoRA):
689
+class QKVParallelLinearWithLoRA(ColumnParallelLinearWithLoRA):
690
"""
691
ColumnParallelLinear layer that is specifically designed for
692
qkv_proj. Certain models, such as chatglm3 and baichuan-7b,
@@ -754,7 +754,7 @@ class QKVParallelLinearWithLora(ColumnParallelLinearWithLoRA):
754
packed_modules_list) == 1
755
756
757
-class MergedQKVParallelLinearWithLora(MergedColumnParallelLinearWithLoRA):
757
+class MergedQKVParallelLinearWithLoRA(MergedColumnParallelLinearWithLoRA):
758
"""MergedColumnParallelLinear layer that is composed of 3 sublayers (slices)
759
packed together in qkv proj fashion
760
(q_proj + k_proj + v_proj -> qkv_proj).
@@ -1120,7 +1120,7 @@ class LogitsProcessorWithLoRA(BaseLayerWithLoRA):
1120
return False
1121
1122
1123
-class LinearScalingRotaryEmbeddingWithLora(BaseLayerWithLoRA):
1123
+class LinearScalingRotaryEmbeddingWithLoRA(BaseLayerWithLoRA):
1124
"""Implements RoPE-scaled embeddings with linear scaling for
1125
multiple LoRA adapters with a specialized kernel.
1126
vllm/lora/models.py
+5
-5
@@ -20,7 +20,7 @@ from vllm.adapter_commons.utils import (add_adapter, deactivate_adapter,
20
from vllm.config import LoRAConfig
21
from vllm.logger import init_logger
22
from vllm.lora.layers import (BaseLayerWithLoRA,
23
- LinearScalingRotaryEmbeddingWithLora,
23
+ LinearScalingRotaryEmbeddingWithLoRA,
24
LoRAMapping)
25
from vllm.lora.lora import LoRALayerWeights, PackedLoRALayerWeights
26
from vllm.lora.peft_helper import PEFTHelper
@@ -201,7 +201,7 @@ class LoRAModel(AdapterModel):
201
expected_lora_modules: Name of modules that are expected to be
202
replaced by lora.
203
peft_helper: Loaded lora configuration information.
204
- lora_model_id: Lora model id. If not given, automatically set by
204
+ lora_model_id: LoRA model id. If not given, automatically set by
205
a global counter.
206
device: Device where the lora model is loaded.
207
dtype: dtype of the lora model weights.
@@ -480,9 +480,9 @@ class LoRAModelManager(AdapterModelManager):
480
from_layer(module, self.lora_slots, self.lora_config,
481
packed_moduled_lst, self.model.config))
482
483
- # LinearScalingRotaryEmbeddingWithLora is used to handle
483
+ # LinearScalingRotaryEmbeddingWithLoRA is used to handle
484
# long context lora. Register relevant metadata.
485
- if isinstance(new_module, LinearScalingRotaryEmbeddingWithLora):
485
+ if isinstance(new_module, LinearScalingRotaryEmbeddingWithLoRA):
486
self.long_lora_context = LongContextLoRAContext(
487
new_module.scaling_factors, new_module.rotary_dim)
488
self.scaling_factor_to_offset = \
@@ -527,7 +527,7 @@ class LoRAModelManager(AdapterModelManager):
527
bias_enabled = self.lora_config.bias_enabled
528
if (not self._match_target_modules(module_name)
529
or not isinstance(module, BaseLayerWithLoRA)
530
- or isinstance(module, LinearScalingRotaryEmbeddingWithLora)
530
+ or isinstance(module, LinearScalingRotaryEmbeddingWithLoRA)
531
or self._filter_unsupported_mm_module(module_name)):
532
continue
533
parts = module_name.split(".")
vllm/lora/peft_helper.py
+1
-1
@@ -42,7 +42,7 @@ class PEFTHelper:
42
43
def _validate_features(self) -> List[str]:
44
"""
45
- Check if there are any unsupported Lora features.
45
+ Check if there are any unsupported LoRA features.
46
"""
47
error_msg = []
48
if self.modules_to_save:
vllm/lora/punica_wrapper/punica_base.py
+1
-1
@@ -314,7 +314,7 @@ class PunicaWrapperBase(PunicaWrapperABC):
314
def long_lora_indices(self) -> torch.Tensor:
315
"""
316
This property provides access to the indices used for long context
317
- lora, specifically for LinearScalingRotaryEmbeddingWithLora.
317
+ lora, specifically for LinearScalingRotaryEmbeddingWithLoRA.
318
"""
319
long_lora_len = self.indices_len[4]
320
return self._long_lora_indices[:long_lora_len]
vllm/lora/utils.py
+9
-9
@@ -15,17 +15,17 @@ from vllm.logger import init_logger
15
from vllm.lora.fully_sharded_layers import (
16
ColumnParallelLinearWithShardedLoRA,
17
MergedColumnParallelLinearWithShardedLoRA,
18
- MergedQKVParallelLinearWithShardedLora, QKVParallelLinearWithShardedLora,
18
+ MergedQKVParallelLinearWithShardedLoRA, QKVParallelLinearWithShardedLoRA,
19
RowParallelLinearWithShardedLoRA)
20
# being imported for _all_lora_classes below
21
# yapf conflicts with isort for this block
22
# yapf: disable
23
from vllm.lora.layers import (BaseLayerWithLoRA, ColumnParallelLinearWithLoRA,
24
- LinearScalingRotaryEmbeddingWithLora,
24
+ LinearScalingRotaryEmbeddingWithLoRA,
25
LogitsProcessorWithLoRA,
26
MergedColumnParallelLinearWithLoRA,
27
- MergedQKVParallelLinearWithLora,
28
- QKVParallelLinearWithLora,
27
+ MergedQKVParallelLinearWithLoRA,
28
+ QKVParallelLinearWithLoRA,
29
ReplicatedLinearWithLoRA,
30
RowParallelLinearWithLoRA,
31
VocabParallelEmbeddingWithLoRA)
@@ -41,17 +41,17 @@ _all_lora_classes: Set[Type[BaseLayerWithLoRA]] = {
41
VocabParallelEmbeddingWithLoRA,
42
ColumnParallelLinearWithLoRA,
43
MergedColumnParallelLinearWithLoRA,
44
- QKVParallelLinearWithLora,
45
- MergedQKVParallelLinearWithLora,
44
+ QKVParallelLinearWithLoRA,
45
+ MergedQKVParallelLinearWithLoRA,
46
RowParallelLinearWithLoRA,
47
ReplicatedLinearWithLoRA,
48
LogitsProcessorWithLoRA,
49
ColumnParallelLinearWithShardedLoRA,
50
- QKVParallelLinearWithShardedLora,
50
+ QKVParallelLinearWithShardedLoRA,
51
MergedColumnParallelLinearWithShardedLoRA,
52
- MergedQKVParallelLinearWithShardedLora,
52
+ MergedQKVParallelLinearWithShardedLoRA,
53
RowParallelLinearWithShardedLoRA,
54
- LinearScalingRotaryEmbeddingWithLora,
54
+ LinearScalingRotaryEmbeddingWithLoRA,
55
}
56
57
vllm/spec_decode/proposer_worker_base.py
+2
-2
@@ -6,10 +6,10 @@ from typing import List, Optional, Set, Tuple
6
from vllm.model_executor.layers.sampler import SamplerOutput
7
from vllm.sequence import ExecuteModelRequest
8
from vllm.spec_decode.interfaces import SpeculativeProposer
9
-from vllm.worker.worker_base import LoraNotSupportedWorkerBase
9
+from vllm.worker.worker_base import LoRANotSupportedWorkerBase
10
11
12
-class ProposerWorkerBase(LoraNotSupportedWorkerBase, SpeculativeProposer):
12
+class ProposerWorkerBase(LoRANotSupportedWorkerBase, SpeculativeProposer):
13
"""Interface for proposer workers"""
14
15
@abstractmethod
vllm/spec_decode/spec_decode_worker.py
+2
-2
@@ -47,7 +47,7 @@ from vllm.spec_decode.util import (Timer, create_logprobs_output,
47
get_sampled_token_logprobs, nvtx_range,
48
split_batch_by_proposal_len)
49
from vllm.utils import resolve_obj_by_qualname
50
-from vllm.worker.worker_base import LoraNotSupportedWorkerBase, WorkerBase
50
+from vllm.worker.worker_base import LoRANotSupportedWorkerBase, WorkerBase
51
52
logger = init_logger(__name__)
53
@@ -118,7 +118,7 @@ def create_spec_worker(*args, **kwargs) -> "SpecDecodeWorker":
118
119
# Reminder: Please update docs/source/features/compatibility_matrix.md
120
# If the feature combo become valid
121
-class SpecDecodeWorker(LoraNotSupportedWorkerBase):
121
+class SpecDecodeWorker(LoRANotSupportedWorkerBase):
122
"""Worker which implements speculative decoding.
123
124
Speculative decoding reduces decoding per-token latency by using a proposal
vllm/transformers_utils/configs/arctic.py
+1
-1
@@ -21,7 +21,7 @@ ARCTIC_PRETRAINED_CONFIG_ARCHIVE_MAP = {
21
22
23
@dataclass
24
-class ArcticLoraConfig:
24
+class ArcticLoRAConfig:
25
lora_r: int = 64
26
lora_alpha: float = 16
27
shard_base_weights: bool = False
vllm/worker/neuron_worker.py
+2
-2
@@ -13,11 +13,11 @@ from vllm.model_executor.layers.sampler import SamplerOutput
13
from vllm.sequence import ExecuteModelRequest
14
from vllm.worker.neuron_model_runner import NeuronModelRunner
15
from vllm.worker.worker_base import (LocalOrDistributedWorkerBase,
16
- LoraNotSupportedWorkerBase, WorkerBase,
16
+ LoRANotSupportedWorkerBase, WorkerBase,
17
WorkerInput)
18
19
20
-class NeuronWorker(LoraNotSupportedWorkerBase, LocalOrDistributedWorkerBase):
20
+class NeuronWorker(LoRANotSupportedWorkerBase, LocalOrDistributedWorkerBase):
21
"""A worker class that executes the model on a group of neuron cores.
22
"""
23
vllm/worker/openvino_worker.py
+2
-2
@@ -24,7 +24,7 @@ from vllm.sampling_params import SamplingParams
24
from vllm.sequence import ExecuteModelRequest, SequenceGroupMetadata
25
from vllm.utils import bind_kv_cache
26
from vllm.worker.openvino_model_runner import OpenVINOModelRunner
27
-from vllm.worker.worker_base import LoraNotSupportedWorkerBase, WorkerBase
27
+from vllm.worker.worker_base import LoRANotSupportedWorkerBase, WorkerBase
28
29
logger = init_logger(__name__)
30
@@ -203,7 +203,7 @@ class OpenVINOCacheEngine:
203
return dtype_size * total
204
205
206
-class OpenVINOWorker(LoraNotSupportedWorkerBase):
206
+class OpenVINOWorker(LoRANotSupportedWorkerBase):
207
"""A worker class that executes the model on OpenVINO backend.
208
209
Each worker is associated with a single OpenVINO device. The worker is
vllm/worker/tpu_worker.py
+2
-2
@@ -17,13 +17,13 @@ from vllm.sequence import ExecuteModelRequest
17
from vllm.utils import STR_DTYPE_TO_TORCH_DTYPE, bind_kv_cache, get_dtype_size
18
from vllm.worker.tpu_model_runner import ExecutionMode, TPUModelRunner
19
from vllm.worker.worker_base import (LocalOrDistributedWorkerBase,
20
- LoraNotSupportedWorkerBase, WorkerBase,
20
+ LoRANotSupportedWorkerBase, WorkerBase,
21
WorkerInput)
22
23
logger = init_logger(__name__)
24
25
26
-class TPUWorker(LoraNotSupportedWorkerBase, LocalOrDistributedWorkerBase):
26
+class TPUWorker(LoRANotSupportedWorkerBase, LocalOrDistributedWorkerBase):
27
28
def __init__(
29
self,
vllm/worker/worker_base.py
+1
-1
@@ -189,7 +189,7 @@ class DelegateWorkerBase(WorkerBase):
189
return getattr(self.worker, attr)
190
191
192
-class LoraNotSupportedWorkerBase(WorkerBase):
192
+class LoRANotSupportedWorkerBase(WorkerBase):
193
"""Partial implementation of WorkerBase that raises exceptions when LoRA
194
methods are invoked.
195
"""
vllm/worker/xpu_worker.py
+2
-2
@@ -18,13 +18,13 @@ from vllm.model_executor import set_random_seed
18
from vllm.platforms import current_platform
19
from vllm.worker.cache_engine import CacheEngine
20
from vllm.worker.worker import Worker
21
-from vllm.worker.worker_base import LoraNotSupportedWorkerBase, WorkerBase
21
+from vllm.worker.worker_base import LoRANotSupportedWorkerBase, WorkerBase
22
from vllm.worker.xpu_model_runner import XPUModelRunner
23
24
logger = init_logger(__name__)
25
26
27
-class XPUWorker(LoraNotSupportedWorkerBase, Worker):
27
+class XPUWorker(LoRANotSupportedWorkerBase, Worker):
28
"""A worker class that executes (a partition of) the model on a GPU.
29
30
Each worker is associated with a single XPU device. The worker is