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用のヘルパー関数のコレクションです。

モデルがPEFTモデルかどうかを確認する

peft.helpers.check_if_peft_model

< >

( model_name_or_path: str ) → bool

パラメータ

  • model_name_or_path (str) — 確認するモデルの ID。ローカルまたは Hugging Face Hub 上のものを指定できます。

戻り値

bool

モデルがPEFTモデルの場合はTrue、それ以外の場合はFalse。

モデルがPEFTモデルかどうかを確認します。

LoraLayerモジュールにおけるアダプタスケールの一時的な再スケーリング

peft.helpers.rescale_adapter_scale

< >

( model: Modulemultiplier: float | int )

パラメータ

  • model — スケーリングを調整する LoraLayer モジュールを含むモデル。
  • multiplier (floatまたはint) — scaling属性を再スケーリングするための乗数。型はfloatまたはintである必要があります。

例外

ValueError

  • ValueError — モデルにLoraLayerのインスタンスが含まれていない場合。これは、モデルがスケーリングに対応していないことを示します。

モデル内のLoRAアダプターのスケーリングを一時的に再スケーリングするためのコンテキストマネージャー。

コンテキストマネージャーが終了すると、元のスケーリング値が復元されます。このコンテキストマネージャーは、LoRA アダプターを直接読み込んだ transformers および diffusers のモデルで動作します。

LoRAの場合、乗数が[0, 1]の範囲にあるこのコンテキストマネージャを適用することは、wise-ftを適用することと厳密に同等です(詳細は#1940を参照)。ファインチューニングに使用した学習データと、推論時に使用したテストデータ間に分布シフトがある場合、モデルの性能を向上させる可能性があります。

警告: AppleのPyTorch用MPSバックエンドを使用する場合、スケールが完全に復元される前にコンテキストを終了すると、短いスリープ時間を追加する必要があると報告されています。

例:

>>> 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

LoRA層のforwardメソッドにおける入力dtypeキャストを無効にするコンテキストマネージャー

peft.helpers.disable_input_dtype_casting

< >

( model: Moduleactive: bool = True )

パラメータ

  • model (nn.Module) — 入力 dtype のキャストを調整する PEFT モジュールを含むモデル。
  • active (bool) — コンテキストマネージャーがアクティブ(デフォルト)か、非アクティブかを指定します。

Context managerは、入力dtypeを重みのdtypeにキャストすることを無効にします。

DoRAのキャッシュを有効にするコンテキストマネージャー(推論時に高速化されるが、より多くのメモリを必要とする)

クラス peft.helpers.DoraCaching

< >

( enabled: bool = True )

DoRAのキャッシュを有効にするコンテキストマネージャーです。メモリを消費する代わりに、DoRA推論の速度を向上させます。

アクティブなキャッシュが有効な場合、マテリアライズされたLoRA重み(B @ A)と重みのノルム(ベース重み + LoRA重み)がキャッシュされます。

キャッシュのコンテキスト内であっても、モデルがトレーニングモードにある場合、キャッシュは無効になります。モデルがトレーニングモードに切り替わると、キャッシュはクリアされます。

例:

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

KappaTuneのターゲット選択

KappaTuneSelector と find_kappa_target_modules は、KappaTune論文から一般的なターゲット選択プロセスを実装しています。

このメソッドは、より高い柔軟性(より高い出力微分エントロピー)と、より低い特異性(特定の入力方向に対する低い感度)を備えたモジュールを特定します。

これらの特性により、選択されたモジュールは、LoRA、DoRA、LoHa、AdaLoRA、さらには元の重みの直接ファインチューニングを含む、学習可能なパラメータを追加するあらゆる適応手法において、カタストロフィック・フォーゲッティングを軽減するための優れた候補となります。

class peft.helpers.KappaTuneSelector

< >

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

モジュールごと/パラメータごとの条件数を計算し、最適なLoRAターゲットを返す軽量ユーティリティです。

サポート:

  • 従来のnn.Linearモジュール(LoraConfigのtarget_modules)
  • Llama-4、Qwen2_MoE、Qwen3_MoE、Mixtral、OLMoE などのモデルで使用される、3 次元の nn.Parameter として保存された最新の融合 MoE 重み(gate_up_proj / down_proj、gate_proj / up_proj など)です。これらは target_parameters を介して返されます。

注:

  • 条件数の計算にはSVDの実行が必要であり、非常に大きなモデルでは数分かかる場合があります。進捗バーの表示/非表示は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 )

パラメータ

  • model (nn.Module) — 条件数を解析する対象となるベースモデル。
  • top_p (float, 任意) — 条件数が最も小さい上位の割合の候補モジュール/パラメータを選択します。
  • max_dim_size_to_analyze (int, 任意) — SVD によって解析される行列の最大次元の上限です。デフォルト値は 16384 です。
  • moe_param_suffixes (Optional[tuple[str, …]], optional) — target_parameters 経由で返すべき融合 MoE テンソルを識別するために使用されるパラメータ名のサフィックスです。 None の場合、適切なデフォルト値が使用されます。
  • show_progress (bool, optional) — 候補テンソル/モジュール全体で条件数(SVDベース)を計算する際に、プログレスバーを表示するかどうか。CIなどの非対話環境では無効にしてください。デフォルトはTrueです。

KappaTuneのターゲット選択のための一行で使える便利関数です。target_modulesとtarget_parametersの両方を返します。

Update on GitHub