lora_mistral_classifier¶
- torchtune.models.mistral.lora_mistral_classifier(lora_attn_modules: List[Literal['q_proj', 'k_proj', 'v_proj', 'output_proj']], apply_lora_to_mlp: bool = False, apply_lora_to_output: bool = False, *, num_classes: int, vocab_size: int, num_layers: int, num_heads: int, num_kv_heads: int, embed_dim: int, max_seq_len: int, intermediate_dim: int, attn_dropout: float = 0.0, norm_eps: float = 1e-05, rope_base: int = 10000, lora_rank: int, lora_alpha: float, lora_dropout: float = 0.0, use_dora: bool = False, quantize_base: bool = False) TransformerDecoder[source]¶
返回一个Mistral分类器的版本(一个
TransformerDecoder()的实例),其中LoRA应用于其自注意力模块中的一些线性层。- Parameters:
lora_attn_modules (List[LORA_ATTN_MODULES]) – 列出在每个自注意力块中LoRA应应用于哪些线性层。选项是
{"q_proj", "k_proj", "v_proj", "output_proj"}。apply_lora_to_mlp (bool) – 是否在每个transformer层的MLP中应用LoRA。 默认值:False
apply_lora_to_output (bool) – 是否将LoRA应用于模型的最终输出投影。 默认值:False
num_classes (int) – 分类层的类别数量。
vocab_size (int) – 词汇表中的标记数量。
num_layers (int) – transformer解码器中的层数。
num_heads (int) – 查询头的数量。对于MHA来说,这也是键和值的头的数量
num_kv_heads (int) – 键和值头的数量。用户应确保 num_heads % num_kv_heads == 0。对于标准的MHA,设置num_kv_heads == num_heads, 对于GQA,设置num_kv_heads < num_heads,对于MQA,设置num_kv_heads == 1。
embed_dim (int) – 自注意力的嵌入维度
max_seq_len (int) – 模型将运行的最大序列长度
intermediate_dim (int) – MLP的中间维度。
attn_dropout (float) – 传递给scaled_dot_product_attention的dropout值。 默认值:0.0
norm_eps (float) – RMS 范数中的 epsilon。
rope_base (int) – 旋转位置嵌入的基础值。默认值:10_000
lora_rank (int) – 每个低秩近似的秩
lora_alpha (float) – 低秩近似的缩放因子
lora_dropout (float) – LoRA 丢弃概率。默认值:0.0
use_dora (bool) – 将LoRA权重分解为幅度和方向,如“DoRA: Weight-Decomposed Low-Rank Adaptation” (https://arxiv.org/abs/2402.09353) 中所介绍。
quantize_base – (bool): 是否量化基础模型权重。仅应用于线性层中LoRA应用的基础权重。目前不支持对最终输出线性投影进行量化。
- Returns:
使用LoRA实例化Mistral分类器模型,应用于每层注意力投影的一个子集。
- Return type: