PEFT documentation

Tipos de adaptador mistos

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

Tipos de adaptador mistos

Normalmente, não é possível misturar diferentes tipos de adaptador no 🤗 PEFT. Você pode criar um modelo PEFT com dois adaptadores LoRA diferentes (que podem ter opções de configuração distintas), mas não é possível combinar um adaptador LoRA e um adaptador LoHa. Com o PeftMixedModel, no entanto, isso funciona, desde que os tipos de adaptador sejam compatíveis. O principal objetivo de permitir tipos de adaptador mistos é combinar adaptadores treinados para inferência. Embora seja possível treinar um modelo de adaptador misto, isso não foi testado e não é recomendado.

Para carregar diferentes tipos de adaptadores em um modelo PEFT, use PeftMixedModel em vez 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"])

O método set_adapter() é necessário para ativar ambos os adaptadores; caso contrário, apenas o primeiro adaptador ficaria ativo. Você pode continuar adicionando mais adaptadores chamando add_adapter() repetidamente.

PeftMixedModel não suporta salvar e carregar adaptadores mistos. Os adaptadores devem já ter sido treinados, e a carga do modelo requer a execução de um script a cada vez.

Dicas

  • Nem todos os tipos de adaptador podem ser combinados. Consulte peft.tuners.mixed.COMPATIBLE_TUNER_TYPES para obter uma lista dos tipos compatíveis. Um erro será lançado se você tentar combinar tipos de adaptador incompatíveis.
  • É possível misturar vários adaptadores do mesmo tipo, o que pode ser útil para combinar adaptadores com configurações muito diferentes.
  • Se você deseja combinar muitos adaptadores diferentes, a maneira mais performática de fazê-lo é adicionar consecutivamente os mesmos tipos de adaptadores. Por exemplo, adicione LoRA1, LoRA2, LoHa1, LoHa2 nessa ordem, em vez de LoRA1, LoHa1, LoRA2 e LoHa2. Embora a ordem possa afetar a saída, não existe uma ordem melhor inerente, então o ideal é escolher a mais rápida.
Update on GitHub