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 提供了若干内部实用工具,用于通过 TIES 和 DARE 方法将 LoRA 适配器合并。

peft.utils.merge_utils.prune

< >

( tensor: Tensordensity: floatmethod: typing.Literal['magnitude', 'random']rescale: bool = False ) → torch.Tensor

参数

  • tensor (torch.Tensor) — 要剪枝的张量。
  • density (float) —要保留的值的比例。应在 [0,1] 范围内。
  • method (str) — 用于剪枝的方法。应为 [“magnitude”, “random”] 之一。
  • rescale (bool) —是否对结果进行重新缩放,以保持原始张量的期望值不变。

返回值

torch.Tensor

经过剪枝的张量。

根据 method 对任务张量的值进行剪枝。

peft.utils.merge_utils.calculate_majority_sign_mask

< >

( tensor: Tensormethod: typing.Literal['total', 'frequency'] = 'total' ) → torch.Tensor

参数

  • tensor (torch.Tensor) — 用于获取掩码的张量。
  • method (str) —用于获取掩码的方法。应为 [“total”, “frequency”] 之一。

返回值

torch.Tensor

多数符号掩码。

获取任务张量中多数符号的掩码。任务张量在维度 0 上进行堆叠。

peft.utils.merge_utils.disjoint_merge

< >

( task_tensors: Tensormajority_sign_mask: Tensor ) → torch.Tensor

参数

  • task_tensors (torch.Tensor) —要合并的任务张量。
  • majority_sign_mask (torch.Tensor) — 任务张量中多数符号的掩码。

返回值

torch.Tensor

合并后的张量。

使用不相交合并(disjoint merge)合并任务张量。

peft.utils.merge_utils.task_arithmetic

< >

( task_tensors: listweights: Tensor ) → torch.Tensor

参数

  • task_tensors(List[torch.Tensor]) —要合并的任务张量。
  • weights (torch.Tensor) — 任务张量的权重。

返回值

torch.Tensor

合并后的张量。

使用task arithmetic合并任务张量。

peft.utils.merge_utils.ties

< >

( task_tensors: listweights: Tensordensity: floatmajority_sign_method: typing.Literal['total', 'frequency'] = 'total' ) → torch.Tensor

参数

  • task_tensors(List[torch.Tensor]) —要合并的任务张量。
  • weights (torch.Tensor) — 任务张量的权重。
  • density (float) —要保留的值的比例。应在 [0,1] 范围内。
  • majority_sign_method (str) — 用于获取多数符号掩码的方法。应为 [“total”, “frequency”] 之一。

返回值

torch.Tensor

合并后的张量。

使用 ties 合并任务张量。

peft.utils.merge_utils.dare_linear

< >

( task_tensors: listweights: Tensordensity: float ) → torch.Tensor

参数

  • task_tensors(List[torch.Tensor]) —要合并的任务张量。
  • weights (torch.Tensor) — 任务张量的权重。
  • density (float) —要保留的值的比例。应在 [0,1] 范围内。

返回值

torch.Tensor

合并后的张量。

使用 dare linear 合并任务张量。

peft.utils.merge_utils.dare_ties

< >

( task_tensors: listweights: Tensordensity: floatmajority_sign_method: typing.Literal['total', 'frequency'] = 'total' ) → torch.Tensor

参数

  • task_tensors(List[torch.Tensor]) —要合并的任务张量。
  • weights (torch.Tensor) — 任务张量的权重。
  • density (float) —要保留的值的比例。应在 [0,1] 范围内。
  • majority_sign_method (str) — 用于获取多数符号掩码的方法。应为 [“total”, “frequency”] 之一。

返回值

torch.Tensor

合并后的张量。

使用 dare ties 合并任务张量。

Update on GitHub