PEFT documentation
ヘルパーメソッド
ヘルパーメソッド
PEFT用のヘルパー関数のコレクションです。
モデルがPEFTモデルかどうかを確認する
peft.helpers.check_if_peft_model
< source >( model_name_or_path: str ) → bool
モデルがPEFTモデルかどうかを確認します。
LoraLayerモジュールにおけるアダプタスケールの一時的な再スケーリング
peft.helpers.rescale_adapter_scale
< source >( model: Modulemultiplier: float | int )
モデル内のLoRAアダプターのスケーリングを一時的に再スケーリングするためのコンテキストマネージャー。
コンテキストマネージャーが終了すると、元のスケーリング値が復元されます。このコンテキストマネージャーは、LoRA アダプターを直接読み込んだ transformers および diffusers のモデルで動作します。
LoRAの場合、乗数が[0, 1]の範囲にあるこのコンテキストマネージャを適用することは、wise-ftを適用することと厳密に同等です(詳細は#1940を参照)。ファインチューニングに使用した学習データと、推論時に使用したテストデータ間に分布シフトがある場合、モデルの性能を向上させる可能性があります。
警告: AppleのPyTorch用MPSバックエンドを使用する場合、スケールが完全に復元される前にコンテキストを終了すると、短いスリープ時間を追加する必要があると報告されています。
LoRA層のforwardメソッドにおける入力dtypeキャストを無効にするコンテキストマネージャー
peft.helpers.disable_input_dtype_casting
< source >( model: Moduleactive: bool = True )
Context managerは、入力dtypeを重みのdtypeにキャストすることを無効にします。
DoRAのキャッシュを有効にするコンテキストマネージャー(推論時に高速化されるが、より多くのメモリを必要とする)
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
< source >( 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
< source >( 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の両方を返します。