Llama3视觉变换¶
- class torchtune.models.llama3_2_vision.Llama3VisionTransform(path: str, *, tile_size: int, patch_size: int, max_num_tiles: int = 4, special_tokens_path: Optional[str] = None, max_seq_len: Optional[int] = None, image_mean: Optional[Tuple[float, float, float]] = None, image_std: Optional[Tuple[float, float, float]] = None, prompt_template: Optional[PromptTemplate] = None)[source]¶
此转换结合了Llama 3.2 Vision不同模态的转换。它由以下转换组成: -
torchtune.models.llama3.Llama3Tokenizer-torchtune.models.clip.CLIPImageTransform-torchtune.modules.transforms.VisionCrossAttentionMask此转换可以用作配方和生成中分词器的直接替换,但处理来自__call__方法的额外转换。
- Parameters:
path (str) – 预训练的tiktoken分词器文件的路径。
tile_size (int) – 将图像分割成的小块的大小。
patch_size (int) – 在CLIP视觉变换器模型中使用的补丁大小。这用于计算每张图像的图像嵌入数量。
max_num_tiles (int) – 仅在未提供possible_resolutions时使用。 将图像分割成的最大瓦片数。 这将用于生成possible_resolutions, 例如,如果max_num_tiles = 2且tile_size = 224,则生成[(224, 224), (224, 448), (448, 224)]。 默认值为4。
special_tokens_path (Optional[str]) – 指向Hugging Face模型文件中包含所有注册特殊标记的
tokenizer.json的路径,或者结构类似的本地json文件。默认为None,以使用规范的Llama3特殊标记。max_seq_len (可选[int]) – 用于对单个消息列表进行标记化的最大序列长度,超过此长度后输入将被截断。默认值为 None。
prompt_template (Optional[PromptTemplate]) –
用于根据角色格式化消息的模板。这用于在实际消息周围添加结构化文本。结构化文本在三种场景中使用:
特定任务的模板,用于在训练后为模型准备特定任务
模型特定的模板,每当模型被提示时都需要,例如Llama2和Mistral中的[INST]标签
社区标准化的模板,例如
ChatMLTemplate
额外的文本仍将作为普通文本进行标记化,而不是作为特殊标记。默认值为None。
示例
>>> model_transform = Llama3VisionTransform("/path/to/tokenizer.model", tile_size=224, patch_size=14) >>> transformed_data = model_transform({"messages": user_message, "images": [img1, img2]}) >>> print(transformed_data["tokens"]) [1, 31587, 29644, 102, 2] >>> print(transformed_data["images"][0].shape) torch.Size([4, 3, 224, 224])
- decode(token_ids: List[int], truncate_at_eos: bool = True, skip_special_tokens: bool = True) str[source]¶
将一系列令牌ID解码为字符串。