[LoRA] Clarify target module matching logic (#55865)
Signed-off-by: linitra24 <renshuang.zhou@daocloud.io>
linitra24 committed
Sep 8, 2026 at 22:30 UTC
b105d8284f076be2e0e13629eed8825b791a4b14
1 file changed
+17
-25
vllm/lora/model_manager.py
+17
-25
@@ -418,16 +418,14 @@ class LoRAModelManager:
418
if isinstance(module, PPMissingLayer):
419
continue
420
421
- target_modules = self.lora_config.target_modules
422
- is_configured_target = target_modules is not None and is_in_target_modules(
423
- module_name,
424
- target_modules,
425
- self.packed_modules_mapping,
426
- )
427
- if (
428
- not self._match_target_modules(module_name, module)
429
- and not is_configured_target
430
- ):
421
+ if self.lora_config.target_modules is None:
422
+ if not is_supported_lora_module(
423
+ module_name,
424
+ module,
425
+ self.supported_lora_modules,
426
+ ):
427
+ continue
428
+ elif not self._match_target_modules(module_name):
429
continue
430
431
punica_wrapper = self._get_punica_wrapper(module_name)
@@ -574,7 +572,12 @@ class LoRAModelManager:
572
model = LoRAModel(lora_id, rank, {})
573
for module_name, module in self.model.named_modules():
574
if (
577
- not self._match_target_modules(module_name, module)
575
+ not is_supported_lora_module(
576
+ module_name,
577
+ module,
578
+ self.supported_lora_modules,
579
+ )
580
+ or not self._match_target_modules(module_name)
581
or not isinstance(module, BaseLayerWithLoRA)
582
or self._get_punica_wrapper(module_name) is None
583
):
@@ -710,27 +713,16 @@ class LoRAModelManager:
713
)
714
return adjusted_rank
715
713
- def _match_target_modules(self, module_name: str, module: nn.Module) -> bool:
714
- """Check if a module should have LoRA applied.
715
-
716
- This method first checks if the module is in vLLM's supported LoRA
717
- modules, then applies deployment-time restrictions based on
718
- LoRAConfig.target_modules.
716
+ def _match_target_modules(self, module_name: str) -> bool:
717
+ """Check if a module passes the deployment-time target filter.
718
719
Args:
720
module_name: Full dot-separated module name (e.g.,
721
"model.layers.0.self_attn.o_proj")
723
- module: Runtime module associated with ``module_name``.
722
723
Returns:
726
- True if LoRA should be applied to this module, False otherwise.
724
+ True if the module passes the filter, False otherwise.
725
"""
728
- if not is_supported_lora_module(
729
- module_name,
730
- module,
731
- self.supported_lora_modules,
732
- ):
733
- return False
726
return is_in_target_modules(
727
module_name,
728
self.lora_config.target_modules,