lora_gemma2¶
- torchtune.models.gemma2.lora_gemma2(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, hidden_capping_value: float = 50.0, final_capping_value: float = 30.0, sliding_window_size: int = 4096, query_pre_attn_scalar: Optional[int] = None, lora_rank: int, lora_alpha: float, lora_dropout: float = 0.0, use_dora: bool = False, quantize_base: bool = False) TransformerDecoder [source]¶
根据传入的配置返回应用了 LoRA 的 Gemma 版本。注意:输出投影 LoRA 不受支持,因为它与 token 嵌入绑定。
- 参数:
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) – 词汇表中的 token 数量。
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
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 – (布尔值): 是否对基础模型权重进行量化。仅应用于 LoRA 应用到的线性层中的基础权重。当前不支持对最终输出线性投影进行量化。
- 返回:
Gemma 模型的实例化,其中 LoRA 已应用于每层注意力投影的子集。
- 返回类型: