PEFT 文档

模型合并

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

模型合并

PEFT 提供了几个内部实用工具,用于使用 TIES 和 DARE 方法合并 LoRA 适配器

peft.utils.merge_utils.prune

< >

( tensor: Tensor density: float method: 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: Tensor method: 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: Tensor majority_sign_mask: Tensor ) torch.Tensor

参数

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

返回值

torch.Tensor

合并后的张量。

使用不相交合并来合并任务张量。

peft.utils.merge_utils.task_arithmetic

< >

( task_tensors: typing.List[torch.Tensor] weights: Tensor ) torch.Tensor

参数

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

返回值

torch.Tensor

合并后的张量。

使用 task arithmetic 合并任务张量。

peft.utils.merge_utils.ties

< >

( task_tensors: typing.List[torch.Tensor] weights: Tensor density: float majority_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: typing.List[torch.Tensor] weights: Tensor density: 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: typing.List[torch.Tensor] weights: Tensor density: float majority_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 合并任务张量。

< > 在 GitHub 上更新