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 适配器的基础层

合并

< >

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

参数

  • safe_merge (bool, 可选) — 如果为 True,合并操作将在原始权重的副本中执行,并在合并权重之前检查 NaNs。如果您想检查合并操作是否会产生 NaNs,这将非常有用。默认为 False
  • adapter_names (List[str], 可选) — 应该合并的适配器名称列表。如果为 None,则将合并所有活动的适配器。默认为 None

将活动的适配器权重合并到基础权重中

取消合并

< >

( )

此方法从基础权重中取消合并所有已合并的适配器层。

LycorisTuner

class peft.tuners.lycoris_utils.LycorisTuner

< >

( model config adapter_name low_cpu_mem_usage: bool = False )

参数

  • model (torch.nn.Module) — 要适配的模型。
  • config (LoraConfig) — Lora 模型的配置。
  • adapter_name (str) — 适配器的名称,默认为 "default"
  • low_cpu_mem_usage (bool, optional, 默认为 False) — 在 meta 设备上创建空的适配器权重。有助于加速加载过程。

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], *optional*) — 应该合并的适配器名称列表。 如果为 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 上更新