快捷方式

lora_gemma

torchtune.models.gemma.lora_gemma(lora_attn_modules: List[Literal['q_proj', 'k_proj', 'v_proj', 'output_proj']], apply_lora_to_mlp: bool = False, *, vocab_size: int, num_layers: int, num_heads: int, head_dim: int, num_kv_heads: int, embed_dim: int, intermediate_dim: int, max_seq_len: int, attn_dropout: float = 0.0, norm_eps: float = 1e-06, rope_base: int = 10000, norm_embeddings: bool = True, lora_rank: int, lora_alpha: float, lora_dropout: float = 0.0, use_dora: bool = False, quantize_base: bool = False) TransformerDecoder[源代码]

根据传入的配置返回应用了 LoRA 的 Gemma 版本。注意:不支持输出投影 LoRA,因为它与词元嵌入相关联。

参数:
  • lora_attn_modules (List[LORA_ATTN_MODULES]) – LoRA 应应用于每个自注意力块中的哪些线性层的列表。选项为 {"q_proj", "k_proj", "v_proj", "output_proj"}

  • apply_lora_to_mlp (bool) – 是否将 LoRA 应用于每个 Transformer 层的 MLP。默认值:False

  • vocab_size (int) – 词汇表中的标记数量。

  • num_layers (int) – Transformer 解码器中的层数。

  • num_heads (int) – 查询头的数量。对于 MHA,这同时也是键和值的头的数量。

  • head_dim (int) – 头的维度。

  • num_kv_heads (int) – 键和值的头的数量。

  • embed_dim (int) – 自注意力机制的嵌入维度。

  • intermediate_dim (int) – MLP 的中间维度。

  • max_seq_len (int) – 模型运行的最大序列长度。

  • attn_dropout (float) – 传递给 scaled_dot_product_attention 的 dropout 值。默认值:0.0

  • norm_eps (float) – RMS 规范化中的 epsilon。默认值:1e-6

  • rope_base (int) – 旋转位置嵌入的基础。默认值:10_000

  • norm_embeddings (bool) – 是否在自注意力和 MLP 层之前应用层规范化。默认值:True

  • lora_rank (int) – 每个低秩近似的秩。

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

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

  • use_dora (bool) – 将 LoRA 权重分解为幅度和方向,如“DoRA: Weight-Decomposed Low-Rank Adaptation” (https://arxiv.org/abs/2402.09353) 中所述。

  • quantize_base – (bool): 是否对基础模型权重进行量化。仅应用于 LoRA 应用到的线性层中的基础权重。目前,最终输出线性投影不支持量化。

返回:

将 LoRA 应用于每层中一部分注意力投影的 Gemma 模型的实例。

返回类型:

TransformerDecoder

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

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

查看教程

资源

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

查看资源