Transformers 文档

AIMv2

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

该模型于 2024 年 11 月 21 日在 HF papers 上发表,并于 2025 年 7 月 8 日贡献给 Hugging Face Transformers。

AIMv2

概述

AIMv2 模型由 Enrico Fini、Mustafa Shukor、Xiujun Li、Philipp Dufter、Michal Klein、David Haldimann、Sai Aitharaju、Victor Guilherme Turrisi da Costa、Louis Béthune、Zhe Gan、Alexander T Toshev、Marcin Eichner、Moin Nabi、Yinfei Yang、Joshua M. Susskind 和 Alaaeldin El-Nouby 在多模态自回归视觉编码器预训练 (Multimodal Autoregressive Pre-training of Large Vision Encoders) 一文中提出。

论文摘要如下:

我们提出了一种用于大规模视觉编码器预训练的新型方法。基于近期视觉模型自回归预训练的进展,我们将此框架扩展到多模态场景(即图像和文本)。在本文中,我们介绍了 AIMV2,这是一个通用的视觉编码器系列,其特点是预训练过程简单、可扩展性强,并在各种下游任务中表现优异。这是通过将视觉编码器与多模态解码器配对,自回归地生成原始图像块和文本标记来实现的。我们的编码器不仅在多模态评估中表现出色,在定位、接地和分类等视觉基准测试中也表现优异。值得注意的是,我们的 AIMV2-3B 编码器在冻结主干的情况下,在 ImageNet-1k 上达到了 89.5% 的准确率。此外,在各种场景下的多模态图像理解方面,AIMV2 的表现持续优于最先进的对比学习模型(如 CLIP、SigLIP)。

该模型由 Yaswanth Gali 贡献。原始代码可以在 这里 找到。

用法示例

以下是使用特定检查点(checkpoint)对调整大小后的图像和原始分辨率图像进行图像特征提取的示例

import requests
from PIL import Image

from transformers import AutoImageProcessor, AutoModel


url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)

processor = AutoImageProcessor.from_pretrained("apple/aimv2-large-patch14-native")
model = AutoModel.from_pretrained("apple/aimv2-large-patch14-native", device_map="auto")

inputs = processor(images=image, return_tensors="pt").to(model.device)
outputs = model(**inputs)

以下是一个执行零样本(zero-shot)分类的检查点示例

import requests
from PIL import Image

from transformers import AutoModel, AutoProcessor


url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
text = ["Picture of a dog.", "Picture of a cat.", "Picture of a horse."]

processor = AutoProcessor.from_pretrained("apple/aimv2-large-patch14-224-lit")
model = AutoModel.from_pretrained("apple/aimv2-large-patch14-224-lit", device_map="auto")

inputs = processor(
    images=image,
    text=text,
    add_special_tokens=True,
    truncation=True,
    padding=True,
    return_tensors="pt",
)
outputs = model(**inputs)
probs = outputs.logits_per_image.softmax(dim=-1)

Aimv2Config

class transformers.Aimv2Config

< >

( transformers_version: str | None = None architectures: list[str] | None = None output_hidden_states: bool | None = False return_dict: bool | None = True dtype: typing.Union[str, ForwardRef('torch.dtype'), NoneType] = None chunk_size_feed_forward: int = 0 is_encoder_decoder: bool = False id2label: dict[int, str] | dict[str, str] | None = None label2id: dict[str, int] | dict[str, str] | None = None problem_type: typing.Optional[typing.Literal['regression', 'single_label_classification', 'multi_label_classification']] = None text_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None vision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None initializer_factor: float = 1.0 projection_dim: int = 512 logit_scale_init_value: float = 2.6592 max_logit_scale: float = 100.0 )

参数

  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig], 可选) — 文本主干(text backbone)的配置对象或字典。
  • vision_config (Union[dict, ~configuration_utils.PreTrainedConfig], 可选) — 视觉主干(vision backbone)的配置对象或字典。
  • initializer_factor (float, 可选,默认为 1.0) — 用于初始化所有权重矩阵的因子(应保持为 1,内部用于初始化测试)。
  • projection_dim (int, 可选,默认为 512) — 文本和视觉投影层的维度。
  • logit_scale_init_value (float, 可选,默认为 2.6592) — logit_scale 参数的初始值。
  • max_logit_scale (float, 可选,默认为 100.0) — 要使用的最大 logit 比例。

这是用于存储 Aimv2Model 配置的配置类。它根据指定的参数实例化一个 Aimv2 模型,定义模型架构。使用默认值实例化配置将产生与 apple/aimv2-large-patch14-224-lit 类似的配置。

配置对象继承自 PreTrainedConfig,可用于控制模型输出。阅读 PreTrainedConfig 的文档以获取更多信息。

示例

>>> from transformers import Aimv2Config, Aimv2Model

>>> # Initializing a Aimv2Config with apple/aimv2-large-patch14-224-lit style configuration
>>> configuration = Aimv2Config()

>>> # Initializing a Aimv2Model (with random weights) from the apple/aimv2-large-patch14-224-lit style configuration
>>> model = Aimv2Model(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

>>> # We can also initialize a Aimv2Config from a Aimv2TextConfig and a Aimv2VisionConfig
>>> from transformers import Aimv2TextConfig, Aimv2VisionConfig

>>> # Initializing a AIMv2Text and AIMv2Vision configuration
>>> config_text = Aimv2TextConfig()
>>> config_vision = Aimv2VisionConfig()

>>> config = Aimv2Config(text_config=config_text, vision_config=config_vision)

Aimv2TextConfig

class transformers.Aimv2TextConfig

< >

( transformers_version: str | None = None architectures: list[str] | None = None output_hidden_states: bool | None = False return_dict: bool | None = True dtype: typing.Union[str, ForwardRef('torch.dtype'), NoneType] = None chunk_size_feed_forward: int = 0 is_encoder_decoder: bool = False id2label: dict[int, str] | dict[str, str] | None = None label2id: dict[str, int] | dict[str, str] | None = None problem_type: typing.Optional[typing.Literal['regression', 'single_label_classification', 'multi_label_classification']] = None vocab_size: int = 49408 hidden_size: int = 768 intermediate_size: int = 2048 num_hidden_layers: int = 12 num_attention_heads: int = 6 max_position_embeddings: int = 77 hidden_act: str = 'silu' attention_dropout: float | int = 0.0 eos_token_id: int | list[int] | None = 49407 rms_norm_eps: float = 1e-05 qkv_bias: bool = False mlp_bias: bool = False initializer_range: float = 0.02 )

参数

  • vocab_size (int, 可选,默认为 49408) — 模型的词汇表大小。定义了可以由 input_ids 表示的不同标记(token)的数量。
  • hidden_size (int, 可选,默认为 768) — 隐藏层表示的维度。
  • intermediate_size (int, 可选,默认为 2048) — MLP 表示的维度。
  • num_hidden_layers (int, 可选,默认为 12) — Transformer 解码器中的隐藏层数量。
  • num_attention_heads (int, 可选,默认为 6) — Transformer 解码器中每个注意力层的注意力头数量。
  • max_position_embeddings (int, 可选,默认为 77) — 此模型可能使用的最大序列长度。
  • hidden_act (str, 可选,默认为 silu) — 解码器中的非线性激活函数(函数或字符串)。例如:"gelu", "relu", "silu" 等。
  • attention_dropout (Union[float, int], 可选,默认为 0.0) — 注意力概率的丢弃(dropout)率。
  • eos_token_id (Union[int, list[int]], 可选,默认为 49407) — 词汇表中用于表示流结束(end-of-stream)的标记 ID。
  • rms_norm_eps (float, 可选,默认为 1e-05) — RMS 归一化层使用的 epsilon 值。
  • qkv_bias (bool, 可选,默认为 False) — 是否为查询(queries)、键(keys)和值(values)添加偏置(bias)。
  • mlp_bias (bool, 可选,默认为 False) — MLP 层中的 up_proj、down_proj 和 gate_proj 层是否使用偏置。
  • initializer_range (float, 可选,默认为 0.02) — 用于初始化所有权重矩阵的 truncated_normal_initializer 的标准差。

这是用于存储 Aimv2Model 配置的配置类。它根据指定的参数实例化一个 Aimv2 模型,定义模型架构。使用默认值实例化配置将产生与 apple/aimv2-large-patch14-224-lit 类似的配置。

配置对象继承自 PreTrainedConfig,可用于控制模型输出。阅读 PreTrainedConfig 的文档以获取更多信息。

示例

>>> from transformers import Aimv2TextConfig, Aimv2TextModel

>>> # Initializing a Aimv2TextConfig with google/aimv2-base-patch16-224 style configuration
>>> configuration = Aimv2TextConfig()

>>> # Initializing a Aimv2TextModel (with random weights) from the google/aimv2-base-patch16-224 style configuration
>>> model = Aimv2TextModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

Aimv2VisionConfig

class transformers.Aimv2VisionConfig

< >

( transformers_version: str | None = None architectures: list[str] | None = None output_hidden_states: bool | None = False return_dict: bool | None = True dtype: typing.Union[str, ForwardRef('torch.dtype'), NoneType] = None chunk_size_feed_forward: int = 0 is_encoder_decoder: bool = False id2label: dict[int, str] | dict[str, str] | None = None label2id: dict[str, int] | dict[str, str] | None = None problem_type: typing.Optional[typing.Literal['regression', 'single_label_classification', 'multi_label_classification']] = None hidden_size: int = 1024 intermediate_size: int = 2816 num_hidden_layers: int = 24 num_attention_heads: int = 8 num_channels: int = 3 image_size: int | list[int] | tuple[int, int] = 224 patch_size: int | list[int] | tuple[int, int] = 14 hidden_act: str = 'silu' attention_dropout: float | int = 0.0 rms_norm_eps: float = 1e-05 qkv_bias: bool = False mlp_bias: bool = False initializer_range: float = 0.02 use_head: bool = True is_native: bool = False )

参数

  • hidden_size (int, 可选, 默认为 1024) — 隐藏层表示的维度。
  • intermediate_size (int, 可选, 默认为 2816) — MLP 表示的维度。
  • num_hidden_layers (int, 可选, 默认为 24) — Transformer 解码器中的隐藏层数量。
  • num_attention_heads (int, 可选, 默认为 8) — Transformer 解码器中每个注意力层的注意力头数。
  • num_channels (int, 可选, 默认为 3) — 输入通道的数量。
  • image_size (Union[int, list[int], tuple[int, int]], 可选, 默认为 224) — 每张图像的大小(分辨率)。
  • patch_size (Union[int, list[int], tuple[int, int]], 可选, 默认为 14) — 每个补丁(patch)的大小(分辨率)。
  • hidden_act (str, 可选, 默认为 silu) — 解码器中的非线性激活函数(函数或字符串)。例如:"gelu", "relu", "silu" 等。
  • attention_dropout (Union[float, int], 可选, 默认为 0.0) — 注意力概率的丢弃率。
  • rms_norm_eps (float, 可选, 默认为 1e-05) — RMS 归一化层使用的 epsilon 值。
  • qkv_bias (bool, 可选, 默认为 False) — 是否在查询(queries)、键(keys)和值(values)中添加偏置。
  • mlp_bias (bool, 可选, 默认为 False) — 在 MLP 层中的 up_proj、down_proj 和 gate_proj 层是否使用偏置。
  • initializer_range (float, 可选, 默认为 0.02) — 用于初始化所有权重矩阵的截断正态分布初始化器的标准差。
  • use_head (str, 可选, 默认为 True) — 是否使用注意力池化头(Attention Pooling Head)。
  • is_native (str, 可选, 默认为 False) — 是否使用针对图像原生分辨率训练的检查点(checkpoint)。

这是用于存储 Aimv2Model 配置的配置类。它根据指定的参数实例化一个 Aimv2 模型,定义模型架构。使用默认值实例化配置将产生与 apple/aimv2-large-patch14-224-lit 类似的配置。

配置对象继承自 PreTrainedConfig,可用于控制模型输出。阅读 PreTrainedConfig 的文档以获取更多信息。

示例

>>> from transformers import SiglipVisionConfig, SiglipVisionModel

>>> # Initializing a Aimv2VisionConfig with apple/aimv2-large-patch14-224 style configuration
>>> configuration = Aimv2VisionConfig()

>>> # Initializing a Aimv2VisionModel (with random weights) from the apple/aimv2-large-patch14-224 style configuration
>>> model = Aimv2VisionModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

Aimv2Model

class transformers.Aimv2Model

< >

( config: Aimv2Config )

参数

  • config (Aimv2Config) — 包含模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。请查看 from_pretrained() 方法以加载模型权重。

裸的 Aimv2 模型,输出原始隐藏状态,顶部没有任何特定的头(head)。

该模型继承自 PreTrainedModel。请查看超类文档以了解该库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝头部等)。

此模型也是一个 PyTorch torch.nn.Module 子类。像普通的 PyTorch Module 一样使用它,并参考 PyTorch 文档了解一般用法和行为的所有相关信息。

forward

< >

( input_ids: torch.LongTensor | None = None pixel_values: torch.FloatTensor | None = None attention_mask: torch.Tensor | None = None **kwargs: typing_extensions.Unpack[transformers.utils.generic.TransformersKwargs] ) Aimv2Outputtuple(torch.FloatTensor)

参数

  • input_ids (形状为 (batch_size, sequence_length)torch.LongTensor, 可选) — 词汇表中输入序列标记的索引。默认情况下,填充(padding)将被忽略。

    索引可以使用 AutoTokenizer 获取。详情请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 ID?

  • pixel_values (形状为 (batch_size, num_channels, image_size, image_size)torch.FloatTensor, 可选) — 对应于输入图像的张量。像素值可以使用 image_processor_class 获取。详情请参阅 image_processor_class.__call__processor_class 使用 image_processor_class 处理图像)。
  • attention_mask (形状为 (batch_size, sequence_length)torch.Tensor, 可选) — 用于避免对填充标记索引执行注意力计算的掩码。掩码值选自 [0, 1]

    • 1 表示未遮蔽的标记,
    • 0 表示被遮蔽的标记。

    什么是注意力掩码?

返回

Aimv2Outputtuple(torch.FloatTensor)

一个 Aimv2Outputtorch.FloatTensor 的元组(如果传入 return_dict=Falseconfig.return_dict=False),根据配置(None)和输入,包含各种元素。

Aimv2Model 的前向传播方法,覆盖了 __call__ 特殊方法。

虽然 forward pass 的实现需要在此函数中定义,但你应该在之后调用 Module 实例而不是这个,因为前者负责运行预处理和后处理步骤,而后者会静默地忽略它们。

  • loss (torch.FloatTensor,形状为 (1,), 可选, 当 return_lossTrue 时返回) — 图像-文本相似度的对比损失。
  • logits_per_image (torch.FloatTensor of shape (image_batch_size, text_batch_size)) — image_embedstext_embeds 之间的缩放点积分数。这代表了图像-文本相似度分数。
  • logits_per_text (torch.FloatTensor of shape (text_batch_size, image_batch_size)) — text_embedsimage_embeds 之间的缩放点积分数。这代表了文本-图像相似度分数。
  • text_embeds (形状为 (batch_size, output_dim)torch.FloatTensor) — 通过将投影层应用于 Aimv2TextModel 的池化输出来获得的文本嵌入。
  • image_embeds (形状为 (batch_size, output_dim)torch.FloatTensor) — 通过将投影层应用于 Aimv2VisionModel 的池化输出来获得的图像嵌入。
  • text_model_output (~modeling_outputs.BaseModelOutputWithPooling, 默认为 None) — Aimv2TextModel 的输出。
  • vision_model_output (~modeling_outputs.BaseModelOutputWithPooling, 默认为 None) — Aimv2VisionModel 的输出。

示例

>>> from PIL import Image
>>> import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, Aimv2Model

>>> model = Aimv2Model.from_pretrained("apple/aimv2-large-patch14-224-lit")
>>> processor = AutoProcessor.from_pretrained("apple/aimv2-large-patch14-224-lit")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> inputs = processor(
...     text=["a photo of a cat", "a photo of a dog"], images=image, return_tensors="pt", padding=True
... )

>>> outputs = model(**inputs)
>>> logits_per_image = outputs.logits_per_image  # this is the image-text similarity score
>>> probs = logits_per_image.softmax(dim=1)  # we can take the softmax to get the label probabilities

get_text_features

< >

( input_ids: Tensor attention_mask: torch.Tensor | None = None position_ids: torch.Tensor | None = None **kwargs: typing_extensions.Unpack[transformers.utils.generic.TransformersKwargs] ) BaseModelOutputWithPoolingtuple(torch.FloatTensor)

参数

  • input_ids (形状为 (batch_size, sequence_length)torch.Tensor) — 词汇表中输入序列标记的索引。默认情况下,填充(padding)将被忽略。

    索引可以使用 AutoTokenizer 获取。详情请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 ID?

  • attention_mask (torch.Tensor,形状为 (batch_size, sequence_length)可选) — 用于避免对填充标记索引执行注意力计算的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示未被屏蔽的标记,
    • 0 表示被屏蔽的标记。

    什么是注意力掩码?

  • position_ids (torch.Tensor,形状为 (batch_size, sequence_length)可选) — 每个输入序列标记在位置嵌入中的位置索引。在范围 [0, config.n_positions - 1] 内选择。

    什么是位置 ID?

返回

BaseModelOutputWithPooling or tuple(torch.FloatTensor)

一个 BaseModelOutputWithPooling 或一个 torch.FloatTensor 元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),包含根据配置(Aimv2Config)和输入而定的各种元素。

  • last_hidden_state (torch.FloatTensor, 形状为 (batch_size, sequence_length, hidden_size)) — 模型最后一层输出的隐藏状态序列。

  • pooler_output (torch.FloatTensor,形状为 (batch_size, hidden_size)) — 序列第一个 token(分类 token)在进一步通过用于辅助预训练任务的层后的最后一个隐藏状态。例如,对于 BERT 系列模型,这会返回经过线性层和 tanh 激活函数处理后的分类 token。线性层的权重是通过预训练期间的下一句预测(分类)目标来训练的。

  • hidden_states (tuple(torch.FloatTensor), optional, 当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 的元组(一个用于嵌入层的输出,如果模型有嵌入层;+一个用于每个层的输出),形状为 (batch_size, sequence_length, hidden_size)

    模型在每个层输出的隐藏状态以及可选的初始嵌入输出。

  • attentions (tuple(torch.FloatTensor), optional, 当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组(每个层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。

示例

>>> import torch
>>> from transformers import AutoTokenizer, Aimv2Model

>>> model = Aimv2Model.from_pretrained("openai/aimv2-vit-base-patch32")
>>> tokenizer = AutoTokenizer.from_pretrained("openai/aimv2-vit-base-patch32")

>>> inputs = tokenizer(["a photo of a cat", "a photo of a dog"], padding=True, return_tensors="pt")

>>> with torch.inference_mode():
...     text_features = model.get_text_features(**inputs)

get_image_features

< >

( pixel_values: FloatTensor interpolate_pos_encoding: bool = False **kwargs: typing_extensions.Unpack[transformers.utils.generic.TransformersKwargs] ) BaseModelOutputWithPoolingtuple(torch.FloatTensor)

参数

  • pixel_values (torch.FloatTensor,形状为 (batch_size, num_channels, image_size, image_size)) — 对应于输入图像的张量。像素值可以使用 CLIPImageProcessor 获取。有关详细信息,请参阅 CLIPImageProcessor.__call__()CLIPProcessor 使用 CLIPImageProcessor 处理图像)。
  • interpolate_pos_encoding (bool可选,默认为 False) — 是否插值预训练的位置编码。

返回

BaseModelOutputWithPooling or tuple(torch.FloatTensor)

一个 BaseModelOutputWithPooling 或一个 torch.FloatTensor 元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),包含根据配置(Aimv2Config)和输入而定的各种元素。

  • last_hidden_state (torch.FloatTensor, 形状为 (batch_size, sequence_length, hidden_size)) — 模型最后一层输出的隐藏状态序列。

  • pooler_output (torch.FloatTensor,形状为 (batch_size, hidden_size)) — 序列第一个 token(分类 token)在进一步通过用于辅助预训练任务的层后的最后一个隐藏状态。例如,对于 BERT 系列模型,这会返回经过线性层和 tanh 激活函数处理后的分类 token。线性层的权重是通过预训练期间的下一句预测(分类)目标来训练的。

  • hidden_states (tuple(torch.FloatTensor), optional, 当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 的元组(一个用于嵌入层的输出,如果模型有嵌入层;+一个用于每个层的输出),形状为 (batch_size, sequence_length, hidden_size)

    模型在每个层输出的隐藏状态以及可选的初始嵌入输出。

  • attentions (tuple(torch.FloatTensor), optional, 当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组(每个层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。

示例

>>> import torch
>>> from transformers import AutoProcessor, Aimv2Model
>>> from transformers.image_utils import load_image

>>> model = Aimv2Model.from_pretrained("openai/aimv2-vit-base-patch32")
>>> processor = AutoProcessor.from_pretrained("openai/aimv2-vit-base-patch32")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = load_image(url)

>>> inputs = processor(images=image, return_tensors="pt")

>>> with torch.inference_mode():
...     image_features = model.get_image_features(**inputs)

Aimv2VisionModel

class transformers.Aimv2VisionModel

< >

( config: Aimv2VisionConfig )

参数

  • config (Aimv2VisionConfig) — 具有所有模型参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,仅加载配置。查看 from_pretrained() 方法以加载模型权重。

来自 AIMv2 的视觉模型,顶部没有任何头部(head)或投影层。

该模型继承自 PreTrainedModel。请查看超类文档以了解该库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝头部等)。

此模型也是一个 PyTorch torch.nn.Module 子类。像普通的 PyTorch Module 一样使用它,并参考 PyTorch 文档了解一般用法和行为的所有相关信息。

forward

< >

( pixel_values **kwargs: typing_extensions.Unpack[transformers.utils.generic.TransformersKwargs] ) BaseModelOutputWithPoolingtuple(torch.FloatTensor)

参数

  • pixel_values (形状为 (batch_size, num_channels, image_size, image_size)) — 对应于输入图像的张量。像素值可以使用 CLIPImageProcessor 获取。有关详细信息,请参阅 CLIPImageProcessor.__call__()CLIPProcessor 使用 CLIPImageProcessor 处理图像)。

返回

BaseModelOutputWithPooling or tuple(torch.FloatTensor)

一个 BaseModelOutputWithPooling 或一个 torch.FloatTensor 元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),包含根据配置(Aimv2Config)和输入而定的各种元素。

Aimv2VisionModel 的前向传播方法,覆盖了 __call__ 特殊方法。

虽然 forward pass 的实现需要在此函数中定义,但你应该在之后调用 Module 实例而不是这个,因为前者负责运行预处理和后处理步骤,而后者会静默地忽略它们。

  • last_hidden_state (torch.FloatTensor, 形状为 (batch_size, sequence_length, hidden_size)) — 模型最后一层输出的隐藏状态序列。

  • pooler_output (torch.FloatTensor,形状为 (batch_size, hidden_size)) — 序列第一个 token(分类 token)在进一步通过用于辅助预训练任务的层后的最后一个隐藏状态。例如,对于 BERT 系列模型,这会返回经过线性层和 tanh 激活函数处理后的分类 token。线性层的权重是通过预训练期间的下一句预测(分类)目标来训练的。

  • hidden_states (tuple(torch.FloatTensor), optional, 当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 的元组(一个用于嵌入层的输出,如果模型有嵌入层;+一个用于每个层的输出),形状为 (batch_size, sequence_length, hidden_size)

    模型在每个层输出的隐藏状态以及可选的初始嵌入输出。

  • attentions (tuple(torch.FloatTensor), optional, 当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组(每个层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。

示例

>>> from PIL import Image
>>> import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, Siglip2VisionModel

>>> model = Aimv2VisionModel.from_pretrained("apple/aimv2-large-patch14-native")
>>> processor = AutoProcessor.from_pretrained("apple/aimv2-large-patch14-native")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> inputs = processor(images=image, return_tensors="pt")

>>> outputs = model(**inputs)
>>> last_hidden_state = outputs.last_hidden_state
>>> pooled_output = outputs.pooler_output  # pooled features

Aimv2TextModel

class transformers.Aimv2TextModel

< >

( config: Aimv2TextConfig )

参数

  • config (Aimv2TextConfig) — 具有所有模型参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,仅加载配置。查看 from_pretrained() 方法以加载模型权重。

来自 AIMv2 的文本模型,顶部没有任何头部(head)或投影层。

该模型继承自 PreTrainedModel。请查看超类文档以了解该库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝头部等)。

此模型也是一个 PyTorch torch.nn.Module 子类。像普通的 PyTorch Module 一样使用它,并参考 PyTorch 文档了解一般用法和行为的所有相关信息。

forward

< >

( input_ids attention_mask: torch.Tensor | None = None **kwargs: typing_extensions.Unpack[transformers.utils.generic.TransformersKwargs] ) BaseModelOutputWithPoolingtuple(torch.FloatTensor)

参数

返回

BaseModelOutputWithPooling or tuple(torch.FloatTensor)

一个 BaseModelOutputWithPooling 或一个 torch.FloatTensor 元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),包含根据配置(Aimv2Config)和输入而定的各种元素。

Aimv2TextModel 的前向传播方法,覆盖了 __call__ 特殊方法。

虽然 forward pass 的实现需要在此函数中定义,但你应该在之后调用 Module 实例而不是这个,因为前者负责运行预处理和后处理步骤,而后者会静默地忽略它们。

  • last_hidden_state (torch.FloatTensor, 形状为 (batch_size, sequence_length, hidden_size)) — 模型最后一层输出的隐藏状态序列。

  • pooler_output (torch.FloatTensor,形状为 (batch_size, hidden_size)) — 序列第一个 token(分类 token)在进一步通过用于辅助预训练任务的层后的最后一个隐藏状态。例如,对于 BERT 系列模型,这会返回经过线性层和 tanh 激活函数处理后的分类 token。线性层的权重是通过预训练期间的下一句预测(分类)目标来训练的。

  • hidden_states (tuple(torch.FloatTensor), optional, 当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 的元组(一个用于嵌入层的输出,如果模型有嵌入层;+一个用于每个层的输出),形状为 (batch_size, sequence_length, hidden_size)

    模型在每个层输出的隐藏状态以及可选的初始嵌入输出。

  • attentions (tuple(torch.FloatTensor), optional, 当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组(每个层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。

在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.