Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions src/transformers/lib_integrations/peft/peft_mixin.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
from accelerate import dispatch_model
from accelerate.utils import get_balanced_memory, infer_auto_device_map

# Minimum PEFT version supported for the integration
MIN_PEFT_VERSION = "0.5.0"

logger = logging.get_logger(__name__)

Expand Down Expand Up @@ -113,7 +115,7 @@ def load_adapter(
offload_index (`int`, `optional`):
`offload_index` argument to be passed to `accelerate.dispatch_model` method.
"""
check_peft_version(min_version="0.4.0")
check_peft_version(min_version=MIN_PEFT_VERSION)

adapter_name = adapter_name if adapter_name is not None else "default"

Expand Down Expand Up @@ -198,7 +200,7 @@ def add_adapter(self, adapter_config, adapter_name: Optional[str] = None) -> Non
adapter_name (`str`, *optional*, defaults to `"default"`):
The name of the adapter to add. If no name is passed, a default name is assigned to the adapter.
"""
check_peft_version(min_version="0.4.0")
check_peft_version(min_version=MIN_PEFT_VERSION)

from peft import PeftConfig, inject_adapter_in_model

Expand Down Expand Up @@ -229,7 +231,7 @@ def set_adapter(self, adapter_name: str) -> None:
adapter_name (`str`):
The name of the adapter to set.
"""
check_peft_version(min_version="0.4.0")
check_peft_version(min_version=MIN_PEFT_VERSION)
if not self._hf_peft_config_loaded:
raise ValueError("No adapter loaded. Please load an adapter first.")
elif adapter_name not in self.peft_config:
Expand Down Expand Up @@ -258,7 +260,7 @@ def disable_adapters(self) -> None:

Disable all adapters that are attached to the model. This leads to inferring with the base model only.
"""
check_peft_version(min_version="0.4.0")
check_peft_version(min_version=MIN_PEFT_VERSION)

if not self._hf_peft_config_loaded:
raise ValueError("No adapter loaded. Please load an adapter first.")
Expand All @@ -276,7 +278,7 @@ def enable_adapters(self) -> None:

Enable adapters that are attached to the model. The model will use `self.active_adapter()`
"""
check_peft_version(min_version="0.4.0")
check_peft_version(min_version=MIN_PEFT_VERSION)

if not self._hf_peft_config_loaded:
raise ValueError("No adapter loaded. Please load an adapter first.")
Expand All @@ -294,7 +296,7 @@ def active_adapter(self) -> str:

Gets the current active adapter of the model.
"""
check_peft_version(min_version="0.4.0")
check_peft_version(min_version=MIN_PEFT_VERSION)

if not is_peft_available():
raise ImportError("PEFT is not available. Please install PEFT to use this function: `pip install peft`.")
Expand All @@ -320,7 +322,7 @@ def get_adapter_state_dict(self, adapter_name: Optional[str] = None) -> dict:
adapter_name (`str`, *optional*):
The name of the adapter to get the state dict from. If no name is passed, the active adapter is used.
"""
check_peft_version(min_version="0.4.0")
check_peft_version(min_version=MIN_PEFT_VERSION)

if not self._hf_peft_config_loaded:
raise ValueError("No adapter loaded. Please load an adapter first.")
Expand Down
2 changes: 1 addition & 1 deletion src/transformers/utils/peft_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def check_peft_version(min_version: str) -> None:
if not is_peft_available():
raise ValueError("PEFT is not installed. Please install it with `pip install peft`")

is_peft_version_compatible = version.parse(importlib.metadata.version("peft")) <= version.parse(min_version)
is_peft_version_compatible = version.parse(importlib.metadata.version("peft")) >= version.parse(min_version)

if not is_peft_version_compatible:
raise ValueError(
Expand Down