PEFT documentation
ミックスされたアダプタータイプ
はじめに
ガイド
設定とモデル統合 メモリ効率の良い学習モデルのマージ量子化カスタムモデルアダプター注入PEFT メソッドの組み合わせtorch.compilePEFTへの貢献トラブルシューティングPEFTチェックポイント形式
分散学習
メソッド
API リファレンス
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).
ミックスされたアダプタータイプ
通常、🤗 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の順で追加してください。順序は出力に影響を与える可能性がありますが、本質的に最善な順序は存在しないため、最も高速な順序を選ぶのが望ましいです。