PEFT documentation

Méthodes utilitaires

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.21.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Méthodes utilitaires

Une collection de fonctions utilitaires pour PEFT.

Vérifier si un modèle est un modèle PEFT

peft.helpers.check_if_peft_model

< >

( model_name_or_path: str ) → bool

Paramètres

  • model_name_or_path (str) — Identifiant du modèle à vérifier, local ou sur le Hugging Face Hub.

Retourne

bool

Vrai si le modèle est un modèle PEFT, Faux sinon.

Vérifiez si le modèle est un modèle PEFT.

Mise à l'échelle temporaire de l'adaptateur dans les modules LoraLayer

peft.helpers.rescale_adapter_scale

< >

( model: Modulemultiplier: float | int )

Paramètres

  • model — Le modèle contenant des modules LoraLayer dont l'échelle doit être ajustée.
  • multiplier (float ou int) — Le multiplicateur qui redimensionne l'attribut scaling. Doit être de type float ou int.

Lève

ValueError

  • ValueError — Si le modèle ne contient aucune instance de LoraLayer, ce qui indique que le modèle ne prend pas en charge le redimensionnement.

Gestionnaire de contexte permettant de rééchelonner temporairement l'échelle de l'adaptateur LoRA dans un modèle.

Les valeurs d'échelle d'origine sont restaurées lorsque le gestionnaire de contexte se termine. Ce gestionnaire de contexte fonctionne avec les modèles de transformers et diffusers qui ont chargé directement des adaptateurs LoRA.

Pour LoRA, appliquer ce gestionnaire de contexte avec un multiplicateur dans [0, 1] est strictement équivalent à appliquer wise-ft (voir #1940 pour plus de détails). Cela peut améliorer les performances du modèle s'il existe un décalage de distribution entre les données d'entraînement utilisées pour l'ajustement fin et les données de test utilisées lors de l'inférence.

Warning : Il a été signalé que, lors de l'utilisation du backend MPS d'Apple pour PyTorch, il est nécessaire d'ajouter un court délai de pause après la sortie du contexte avant que les échelles ne soient entièrement restaurées.

Exemple :

>>> model = ModelWithLoraLayer()
>>> multiplier = 0.5
>>> with rescale_adapter_scale(model, multiplier):
...     outputs = model(**inputs)  # Perform operations with the scaled model
>>> outputs = model(**inputs)  # The original scaling values are restored here

Gestionnaire de contexte pour désactiver le cast du type de données d'entrée dans la méthode forward des couches LoRA

peft.helpers.disable_input_dtype_casting

< >

( model: Moduleactive: bool = True )

Paramètres

  • model (nn.Module) — Le modèle contenant des modules PEFT dont le cast du dtype d'entrée doit être ajusté.
  • active (bool) — Indique si le gestionnaire de contexte est actif (par défaut) ou inactif.

Le gestionnaire de contexte désactive le cast du type de données d'entrée vers le type de données du poids.

Gestionnaire de contexte permettant de mettre en cache DoRA (plus rapide lors de l'inférence mais nécessitant plus de mémoire)

classe peft.helpers.DoraCaching

< >

( enabled: bool = True )

Gestionnaire de contexte permettant d’activer la mise en cache de DoRA, ce qui améliore la vitesse de l’inférence DoRA au détriment de la mémoire.

Avec la mise en cache active, le poids LoRA matérialisé (B @ A) et la norme du poids (poids de base + poids LoRA) sont mis en cache.

Même dans le contexte de la mise en cache, si le modèle est en mode d’entraînement, la mise en cache est désactivée. Lorsque le modèle passe en mode d’entraînement, le cache est effacé.

Exemple :

>>> from peft.helpers import DoraCaching

>>> model.eval()  # put in eval model for caching to work

>>> with DoraCaching():  # use as a context manager
...     output = model(inputs)

>>> dora_caching = DoraCaching()
>>> dora_caching(enabled=True)  # permanently enable caching
>>> output = model(inputs)
>>> dora_caching(enabled=False)  # permanently disable caching
>>> output = model(inputs)

Sélection de la cible KappaTune

KappaTuneSelector et find_kappa_target_modules implémentent un processus général de sélection des cibles issu de l'article KappaTune.

La méthode identifie les modules présentant une plus grande flexibilité (entropie différentielle de sortie plus élevée) et une moindre spécialisation (sensibilité plus faible aux directions d'entrée spécifiques).

Ces propriétés font des modules sélectionnés de bons candidats pour atténuer l'oubli catastrophique dans toute méthode d'adaptation qui ajoute des paramètres entraînables, y compris LoRA, DoRA, LoHa, AdaLoRA, et même l'ajustement fin direct des poids d'origine.

classe peft.helpers.KappaTuneSelector

< >

( model: Modulemax_dim_size_to_analyze: int = 16384moe_param_suffixes: tuple[str, ...] | None = Noneshow_progress: bool = True )

Utilitaire léger pour calculer les nombres de conditionnement par module / par paramètre et retourner les meilleures cibles LoRA.

Prend en charge :

  • Modules nn.Linear classiques (target_modules dans LoraConfig)
  • Poids MoE fusionnés modernes stockés sous forme de nn.Parameter 3D (gate_up_proj / down_proj, gate_proj / up_proj, etc.) utilisés dans Llama-4, Qwen2_MoE, Qwen3_MoE, Mixtral, OLMoE et des modèles similaires. Ils sont retournés via target_parameters.

Remarques :

  • Le calcul du nombre de condition nécessite l’exécution d’une SVD et peut prendre plusieurs minutes sur des modèles très volumineux. Une barre de progression peut être affichée/désactivée via show_progress.

peft.find_kappa_target_modules

< >

( model: Moduletop_p: float = 0.2max_dim_size_to_analyze: int = 16384moe_param_suffixes: tuple[str, ...] | None = Noneshow_progress: bool = True )

Paramètres

  • model (nn.Module) — Modèle de base dont les poids seront analysés pour les nombres conditionnels.
  • top_p (float, facultatif) — Sélectionne la fraction supérieure de modules/paramètres candidats ayant les nombres de conditionnement les plus faibles.
  • max_dim_size_to_analyze (int, optionnel) — Limite supérieure de la dimension maximale de la matrice analysée via SVD. Valeur par défaut : 16384.
  • moe_param_suffixes (Optional[tuple[str, …]], optionnel) — Suffixes de noms de paramètres utilisés pour identifier les tenseurs MoE fusionnés qui doivent être retournés via target_parameters. Si None, des valeurs par défaut appropriées sont utilisées.
  • show_progress (bool, optionnel) — Indique s'il faut afficher une barre de progression pendant le calcul des nombres de condition (basés sur la SVD) sur les tenseurs/modules candidats. À désactiver dans les environnements CI ou autres environnements non interactifs. Valeur par défaut : True.

Fonction pratique en une ligne pour la sélection de la cible KappaTune. Renvoie à la fois target_modules et target_parameters.

Update on GitHub