PEFT 文件

LyCORIS

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

LyCORIS

LyCORIS(Lora beYond Conventional methods, Other Rank adaptation Implementations for Stable diffusion)是類似 LoRA 的矩陣分解介面卡,它修改 UNet 的交叉注意力層。LoHaLoKr 方法繼承自此處的 `Lycoris` 類。

LycorisConfig

class peft.tuners.lycoris_utils.LycorisConfig

< >

( task_type: typing.Union[str, peft.utils.peft_types.TaskType, NoneType] = None peft_type: typing.Union[str, peft.utils.peft_types.PeftType, NoneType] = None auto_mapping: typing.Optional[dict] = None base_model_name_or_path: typing.Optional[str] = None revision: typing.Optional[str] = None inference_mode: bool = False rank_pattern: Optional[dict] = <factory> alpha_pattern: Optional[dict] = <factory> )

LyCORIS 類介面卡的基礎配置

LycorisLayer

class peft.tuners.lycoris_utils.LycorisLayer

< >

( base_layer: nn.Module )

LyCORIS 類介面卡的基礎層

merge

< >

( safe_merge: bool = False adapter_names: Optional[list[str]] = None )

引數

  • safe_merge (bool, 可選) — 如果為 True,合併操作將在原始權重的副本中執行,並在合併權重之前檢查是否存在 NaN。如果你想檢查合併操作是否會產生 NaN,這會很有用。預設為 False
  • adapter_names (List[str], 可選) — 應合併的介面卡名稱列表。如果為 None,則所有活動的介面卡都將被合併。預設為 None

將活動的介面卡權重合併到基礎權重中

unmerge

< >

( )

此方法將所有已合併的介面卡層從基礎權重中分離出來。

LycorisTuner

class peft.tuners.lycoris_utils.LycorisTuner

< >

( model peft_config: Union[PeftConfig, dict[str, PeftConfig]] adapter_name: str low_cpu_mem_usage: bool = False state_dict: Optional[dict[str, torch.Tensor]] = None )

引數

  • model (torch.nn.Module) — 要適配的模型。
  • config (LoraConfig) — Lora 模型的配置。
  • adapter_name (str) — 介面卡的名稱,預設為 "default"
  • low_cpu_mem_usage (bool, 可選, 預設為 False) — 在元裝置上建立空的介面卡權重。有助於加快載入過程。

LyCORIS 類介面卡的基礎調諧器

delete_adapter

< >

( adapter_name: str )

引數

  • adapter_name (str) — 要刪除的介面卡的名稱。

刪除一個現有的介面卡。

disable_adapter_layers

< >

( )

停用所有介面卡。

停用所有介面卡後,模型輸出對應於基礎模型的輸出。

enable_adapter_layers

< >

( )

啟用所有介面卡。

如果您之前停用了所有介面卡並希望重新啟用它們,請呼叫此函式。

merge_and_unload

< >

( progressbar: bool = False safe_merge: bool = False adapter_names: Optional[list[str]] = None )

引數

  • progressbar (bool) — 是否顯示指示解除安裝和合並過程的進度條
  • safe_merge (bool) — 是否啟用安全合併檢查,以檢查介面卡權重中是否存在潛在的 NaN
  • adapter_names (List[str], 可選) — 應合併的介面卡名稱列表。如果為 None,所有活動的介面卡都將被合併。預設為 None

此方法將介面卡層合併到基礎模型中。如果有人想將基礎模型用作獨立模型,則需要此操作。

set_adapter

< >

( adapter_name: str | list[str] )

引數

  • adapter_name (strlist[str]) — 要啟用的介面卡名稱。

設定活動的介面卡。

此外,此函式將把指定的介面卡設定為可訓練的(即 requires_grad=True)。如果不希望如此,請使用以下程式碼。

>>> for name, param in model_peft.named_parameters():
...     if ...:  # some check on name (ex. if 'lora' in name)
...         param.requires_grad = False

unload

< >

( )

透過移除所有 lora 模組而不進行合併,來恢復基礎模型。這將返回原始的基礎模型。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.