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。
- 参数:
- 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)
的输出张量- 返回类型: