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, **quantization_kwargs) Llama3VisionEncoder [source]¶
通过将 CLIP 图像模型与额外的投影头融合模块相结合,构建 Llama 3.2 视觉编码器。 这包括: - 空间位置编码 - CLIP 模型骨干网络 - CLIP 之上的投影头 - 最终投影到 token 嵌入维度
- 参数:
encoder_lora (bool) – 是否将 LoRA 应用于 CLIP 编码器
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
patch_size (int) – 每个 patch 的大小。用于将 tile 分割成 patch。例如,对于
patch_size=40
,形状为 (400, 400) 的 tile 将具有 10x10 的 patch 网格,每个 patch 的形状为 (40, 40)。num_heads (int) – 每个 Transformer 层中的注意力头数。
clip_embed_dim (int) – CLIP 中每个 patch 嵌入的维度。
clip_num_layers (int) – Transformer 层的数量。
clip_hidden_states (Optional[List[int]]) – 要返回到编码器投影头的 CLIP 隐藏层索引。它将返回视觉 Transformer 层的中间结果,这些结果将与 CLIP 输出连接,并输入到投影头中。例如,
clip_hidden_states=[0,3]
将返回通过第一层和第四层之前的嵌入。num_layers_projection (int) – 投影头中 Transformer 层的数量。
decoder_embed_dim (int) – 解码器的最终输出嵌入的维度。
tile_size (int) – 图像 tile 的大小(如果图像已预先进行 tile 裁剪)。否则,为输入图像的大小。在这种情况下,该函数会将您的图像视为单个 tile。
max_num_tiles (int) – 可以处理的最大 tile 数量。这用于确定位置嵌入的大小。
in_channels (int) – 图像输入通道数。
lora_rank (int) – 每个低秩近似的秩
lora_alpha (float) – 低秩近似的缩放因子
lora_dropout (float) – LoRA dropout 概率。默认值:0.0
use_dora (bool) – 是否使用 DoRA 层代替 LoRA 层。默认值为
False
。quantize_base – (bool):是否量化基础模型权重。仅应用于应用 LoRA 的线性层中的基础权重。当前不支持量化最终输出线性投影。
- 返回:
Llama 3.2 视觉编码器的实例化。
- 返回类型: