lora_llama3_2_vision_encoder¶
- torchtune.models.llama3_2_vision.lora_llama3_2_vision_encoder(encoder_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, *, patch_size: int, num_heads: int, clip_embed_dim: int, clip_num_layers: int, clip_hidden_states: Optional[List[int]], num_layers_projection: int, decoder_embed_dim: int, tile_size: int, max_num_tiles: int = 4, in_channels: int = 3, lora_rank: int = 8, lora_alpha: float = 16, lora_dropout: float = 0.0, use_dora: bool = False, quantize_base: bool = False) Llama3VisionEncoder [源代码]¶
通过将 CLIP 图像模型与额外的投影头融合模块相结合来构建 Llama 3.2 视觉编码器。这包括:- 空间位置编码- CLIP 模型主干- CLIP 上的投影头- 最终投影到令牌嵌入维度
- 参数:
encoder_lora (bool) – 是否将 LoRA 应用于 CLIP 编码器
fusion_lora (bool) – 是否将 LoRA 应用于投影头
lora_attn_modules (列表[LORA_ATTN_MODULES]) – 每个自注意力块中应应用 LoRA 的线性层列表。选项包括
{"q_proj", "k_proj", "v_proj", "output_proj"}
。apply_lora_to_mlp (布尔值) – 是否将 LoRA 应用于每个 Transformer 层的 MLP。默认值:False
apply_lora_to_output (布尔值) – 是否将 LoRA 应用于模型的最终输出投影。默认值:False
patch_size (整数) – 每个补丁的大小。用于将图块划分为补丁。例如,对于
patch_size=40
,形状为 (400, 400) 的图块将具有 10x10 网格的补丁,每个补丁形状为 (40, 40)。num_heads (整数) – 每个 Transformer 层中的注意力头数量。
clip_embed_dim (整数) – CLIP 中每个补丁嵌入的维数。
clip_num_layers (整数) – Transformer 层的数量。
clip_hidden_states (可选[列表[整数]]) – 要返回给编码器投影头的 CLIP 隐藏层的索引。它将返回视觉 Transformer 层的中间结果,这些结果将与 CLIP 输出连接并输入投影头。例如,
clip_hidden_states=[0,3]
将返回嵌入在经过第一层和第四层之前的结果。num_layers_projection (整数) – 投影头中 Transformer 层的数量。
decoder_embed_dim (整数) – 解码器最终输出嵌入的维数。
tile_size (整数) – 您的图像图块的大小,如果图像提前进行了图块裁剪。否则,输入图像的大小。在这种情况下,该函数将您的图像视为单个图块。
max_num_tiles (整数) – 可以处理的图块的最大数量。这用于确定位置嵌入的大小。
in_channels (整数) – 图像输入通道的数量。
lora_rank (整数) – 每个低秩近似的秩
lora_alpha (浮点数) – 低秩近似的缩放因子
lora_dropout (浮点数) – LoRA 丢弃概率。默认值:0.0
use_dora (布尔值) – 是否使用 DoRA 层而不是 LoRA 层。默认值为
False
。quantize_base – (布尔值): 是否量化基本模型权重。仅应用于 LoRA 应用到的线性层内的基本权重。目前不支持对最终输出线性投影进行量化。
- 返回:
Llama 3.2 视觉编码器的实例化。
- 返回类型: