PEFT documentation

Types d'adaptateurs mixtes

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

Types d'adaptateurs mixtes

Normalement, il n’est pas possible de mélanger différents types d’adaptateurs dans 🤗 PEFT. Vous pouvez créer un modèle PEFT avec deux adaptateurs LoRA différents (qui peuvent avoir des options de configuration différentes), mais il n’est pas possible de combiner un adaptateur LoRA et un adaptateur LoHa. Avec PeftMixedModel, en revanche, cela fonctionne tant que les types d’adaptateurs sont compatibles. L’objectif principal de l’autorisation de types d’adaptateurs mixtes est de combiner des adaptateurs entraînés pour l’inférence. Bien qu’il soit possible d’entraîner un modèle d’adaptateurs mixtes, cela n’a pas été testé et n’est pas recommandé.

Pour charger différents types d'adaptateurs dans un modèle PEFT, utilisez PeftMixedModel au lieu de PeftModel :

from peft import PeftMixedModel

base_model = ...  # load the base model, e.g. from transformers
# load first adapter, which will be called "default"
peft_model = PeftMixedModel.from_pretrained(base_model, <path_to_adapter1>)
peft_model.load_adapter(<path_to_adapter2>, adapter_name="other")
peft_model.set_adapter(["default", "other"])

La méthode set_adapter() est nécessaire pour activer les deux adaptateurs, sinon seul le premier adaptateur serait actif. Vous pouvez continuer à ajouter des adaptateurs en appelant add_adapter() de manière répétée.

PeftMixedModel ne prend pas en charge l’enregistrement et le chargement d’adaptateurs mixtes. Les adaptateurs doivent déjà être entraînés, et le chargement du modèle nécessite l’exécution d’un script à chaque fois.

Astuces

  • Tous les types d’adaptateurs ne peuvent pas être combinés. Consultez peft.tuners.mixed.COMPATIBLE_TUNER_TYPES pour obtenir la liste des types compatibles. Une erreur sera levée si vous tentez de combiner des types d’adaptateurs incompatibles.
  • Il est possible de mélanger plusieurs adaptateurs du même type, ce qui peut être utile pour combiner des adaptateurs ayant des configurations très différentes.
  • Si vous souhaitez combiner de nombreux adaptateurs différents, la méthode la plus performante consiste à ajouter consécutivement les mêmes types d’adaptateurs. Par exemple, ajoutez LoRA1, LoRA2, LoHa1, LoHa2 dans cet ordre, plutôt que LoRA1, LoHa1, LoRA2 et LoHa2. Bien que l’ordre puisse affecter la sortie, il n’existe pas d’ordre optimal intrinsèque, il est donc préférable de choisir le plus rapide.
Update on GitHub