快捷方式

LoRALinear

class torchtune.modules.peft.LoRALinear(in_dim: int, out_dim: int, rank: int, alpha: float, dropout: float = 0.0, use_bias: bool = False, quantize_base: bool = False)[source]

LoRA:大型语言模型的低秩自适应 中介绍的 LoRA 线性层。

LoRA 通过低秩近似来扰动给定层,其中只有秩分解矩阵是可训练的。在线性层中,而不是 \(x \mapsto W_0x\),LoRALinear 层定义为 \(x \mapsto W_0x + (\alpha / r)BAx\),其中 \(r\) 是矩阵 \(A\)\(B\) 的秩,而 \(\alpha\) 是一个缩放因子。与原始实现一样,我们在乘以低秩矩阵之前支持 dropout。

参数:
  • in_dim (int) – 输入维度

  • out_dim (int) – 输出维度

  • rank (int) – 低秩近似的秩

  • alpha (float) – 低秩近似的缩放因子

  • dropout (float) – dropout 概率。默认值:0.0

  • use_bias (bool) – 是否在原始线性层中包含偏差。默认值:False

  • quantize_base (bool) – 是否量化基本线性权重。默认值:False

adapter_params() List[str][source]

将 lora_a.weight 和 lora_b.weight 作为适配器参数返回。如果启用了偏差,还会返回 lora_a.bias 和 lora_b.bias。

forward(x: Tensor) Tensor[source]
参数:

x (torch.Tensor) – 形状为 (..., in_dim) 的输入张量

返回值:

形状为 (..., out_dim) 的输出张量

返回类型:

torch.Tensor

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源