PEFT documentation

ミックスされたアダプタータイプ

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

ミックスされたアダプタータイプ

通常、🤗 PEFTでは異なるアダプタータイプを混在させることはできません。2つの異なるLoRAアダプター(設定オプションが異なる場合も含む)でPEFTモデルを作成することは可能ですが、LoRAアダプターとLoHaアダプターを組み合わせることはできません。ただし、PeftMixedModelを使用すれば、アダプタータイプが互換性がある限り、この混在が可能になります。混在アダプタータイプを許可する主な目的は、学習済みのアダプターを推論のために組み合わせることです。混在アダプターモデルの学習は可能ですが、テストされておらず、推奨されていません。

PEFTモデルに異なるアダプタタイプを読み込むには、PeftModelの代わりにPeftMixedModelを使用します:

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"])

両方のアダプターを有効にするには、set_adapter() メソッドを呼び出す必要があります。そうしないと、最初のアダプターのみが有効な状態になります。add_adapter() を繰り返し呼び出すことで、さらに多くのアダプターを追加できます。

PeftMixedModelは、混合アダプターの保存と読み込みをサポートしていません。アダプターは事前に学習済みである必要があり、モデルの読み込みには毎回スクリプトの実行が必要です。

ヒント

  • すべてのアダプタータイプを組み合わせることはできません。互換性のあるタイプのリストについては、peft.tuners.mixed.COMPATIBLE_TUNER_TYPESを参照してください。互換性のないアダプタータイプの組み合わせを試みると、エラーが発生します。
  • 同じタイプの複数のアダプターを組み合わせることも可能であり、設定が非常に異なるアダプターを組み合わせる場合に有用です。
  • 多数の異なるアダプターを組み合わせる場合、最もパフォーマンスの高い方法は、同じアダプタータイプを連続して追加することです。例えば、LoRA1、LoHa1、LoRA2、LoHa2の順ではなく、LoRA1、LoRA2、LoHa1、LoHa2の順で追加してください。順序は出力に影響を与える可能性がありますが、本質的に最善な順序は存在しないため、最も高速な順序を選ぶのが望ましいです。
Update on GitHub