lora_llama3_2_vision_decoder¶
- torchtune.models.llama3_2_vision.lora_llama3_2_vision_decoder(decoder_lora: bool, fusion_lora: bool, 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, *, vocab_size: int, num_layers: int, fusion_interval: int, num_special_tokens: int, num_heads: int, num_kv_heads: int, embed_dim: int, max_seq_len: int, encoder_max_seq_len: int, rope_base: int = 500000.0, intermediate_dim: Optional[int] = None, lora_rank: int = 8, lora_alpha: float = 16, lora_dropout: float = 0.0, use_dora: bool = False, quantize_base: bool = False) TransformerDecoder [source]¶
构建与 Llama3 模型关联的解码器,并添加融合的交叉注意力层。这包括:- 词汇嵌入 - num_layers 个因果自注意力块 - 每隔 fusion_interval 个层添加一个融合的交叉注意力层 - 应用于 Transformer 输出的 RMS Norm 层 - 最终投影到词汇空间
- 参数:
decoder_lora (bool) – 是否将 LoRA 应用于语言解码器
fusion_lora (bool) – 是否将 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
apply_lora_to_output (bool) – 是否将 LoRA 应用于模型的最终输出投影。默认为 False
vocab_size (int) – 词汇表中的标记数量。
num_layers (int) – Transformer 解码器中的层数。
fusion_interval (int) – 融合层之间的层间隔数。
num_special_tokens (int) – 为融合模型添加的特殊标记数量。
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) – 自注意力的嵌入维度。
intermediate_dim (Optional[int]) – MLP 的中间维度。如果未指定,则使用
scale_hidden_dim_for_mlp()
计算。lora_rank (int) – 每个低秩近似的秩
lora_alpha (float) – 低秩近似的缩放因子
lora_dropout (float) – LoRA 丢弃概率。默认为 0.0
use_dora (bool) – 是否使用 DoRA 层而不是 LoRA 层。默认为
False
。quantize_base – (bool):是否量化基础模型权重。仅应用于 LoRA 应用到的线性层内的基础权重。目前不支持量化最终输出线性投影。
- 返回值:
Llama 3.2 视觉解码器的实例化。
- 返回类型: