Skip to content

Commit

Permalink
[PEFT] Fix peft version (#25710)
Browse files Browse the repository at this point in the history
* fix peft version

* address comments

* adapt suggestion
  • Loading branch information
younesbelkada authored Aug 24, 2023
1 parent 8fff61b commit 70b49f0
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
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

0 comments on commit 70b49f0

Please sign in to comment.