Buckets:
| # ALIGN | |
| [ALIGN](https://huggingface.co/papers/2102.05918) é pré-treinado em um conjunto de dados de 1,8 bilhão de pares de texto alternativo e imagem com ruído, para demonstrar que a escala pode compensar o ruído. Ele utiliza uma arquitetura de codificador duplo, [EfficientNet](./efficientnet) para imagens e [BERT](./bert) para texto, e uma perda contrastiva para alinhar embeddings de imagem–texto semelhantes, enquanto afasta embeddings diferentes. Uma vez treinado, o ALIGN pode codificar qualquer imagem e legendas candidatas em um espaço vetorial compartilhado para recuperação ou classificação zero-shot, sem exigir rótulos adicionais. Essa abordagem centrada na escala reduz os custos de curadoria do conjunto de dados e impulsiona a recuperação de imagem–texto e a classificação zero-shot no ImageNet com resultados de estado da arte. | |
| Você pode encontrar todos os checkpoints originais do ALIGN na organização [Kakao Brain](https://huggingface.co/kakaobrain?search_models=align). | |
| > [!TIP] | |
| > Clique nos modelos ALIGN na barra lateral à direita para ver mais exemplos de como aplicar o ALIGN a diferentes tarefas relacionadas a visão e texto. | |
| O exemplo abaixo demonstra a classificação de imagens zero-shot com [Pipeline](/docs/transformers/main/pt/main_classes/pipelines#transformers.Pipeline) ou a classe [AutoModel](/docs/transformers/main/pt/model_doc/auto#transformers.AutoModel). | |
| ```python | |
| from transformers import pipeline | |
| pipeline = pipeline( | |
| task="zero-shot-image-classification", | |
| model="kakaobrain/align-base", | |
| device=0, | |
| ) | |
| candidate_labels = [ | |
| "a photo of a dog", | |
| "a photo of a cat", | |
| "a photo of a person" | |
| ] | |
| pipeline("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg", candidate_labels=candidate_labels) | |
| ``` | |
| ```python | |
| import requests | |
| import torch | |
| from PIL import Image | |
| from transformers import AutoModelForZeroShotImageClassification, AutoProcessor | |
| processor = AutoProcessor.from_pretrained("kakaobrain/align-base") | |
| model = AutoModelForZeroShotImageClassification.from_pretrained("kakaobrain/align-base", device_map="auto") | |
| url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg" | |
| image = requests.get(url, stream=True) | |
| inputs = Image.open(image.raw).convert("RGB") | |
| image_inputs = processor(images=inputs, return_tensors="pt").to(model.device) | |
| with torch.no_grad(): | |
| image_embeds = model.get_image_features(**image_inputs) | |
| candidate_labels = ["a photo of a dog", "a photo of a cat", "a photo of a person"] | |
| text_inputs = processor(text=candidate_labels, padding=True, return_tensors="pt").to(model.device) | |
| with torch.no_grad(): | |
| text_embeds = model.get_text_features(**text_inputs) | |
| image_embeds = image_embeds / image_embeds.norm(p=2, dim=-1, keepdim=True) | |
| text_embeds = text_embeds / text_embeds.norm(p=2, dim=-1, keepdim=True) | |
| logits = (image_embeds @ text_embeds.T) * 100.0 | |
| probs = logits.softmax(dim=-1).cpu().squeeze() | |
| for label, score in zip(candidate_labels, probs): | |
| print(f"{label:20s} → {score.item():.4f}") | |
| ``` | |
| ## Observações | |
| - O ALIGN projeta os recursos de texto e visuais no espaço latente e o produto escalar entre os recursos de imagem e texto projetados é usado como a pontuação de similaridade. O exemplo abaixo demonstra como calcular a pontuação de similaridade entre imagem e texto com [AlignProcessor](/docs/transformers/main/pt/model_doc/align#transformers.AlignProcessor) e [AlignModel](/docs/transformers/main/pt/model_doc/align#transformers.AlignModel). | |
| ```py | |
| # Example of using ALIGN for image-text similarity | |
| from transformers import AlignProcessor, AlignModel | |
| import torch | |
| from PIL import Image | |
| import requests | |
| from io import BytesIO | |
| # Load processor and model | |
| processor = AlignProcessor.from_pretrained("kakaobrain/align-base") | |
| model = AlignModel.from_pretrained("kakaobrain/align-base", device_map="auto") | |
| # Download image from URL | |
| url = "https://huggingface.co/roschmid/dog-races/resolve/main/images/Golden_Retriever.jpg" | |
| response = requests.get(url) | |
| image = Image.open(BytesIO(response.content)) # Convert the downloaded bytes to a PIL Image | |
| texts = ["a photo of a cat", "a photo of a dog"] | |
| # Process image and text inputs | |
| inputs = processor(images=image, text=texts, return_tensors="pt").to(model.device) | |
| # Get the embeddings | |
| with torch.no_grad(): | |
| outputs = model(**inputs) | |
| image_embeds = outputs.image_embeds | |
| text_embeds = outputs.text_embeds | |
| # Normalize embeddings for cosine similarity | |
| image_embeds = image_embeds / image_embeds.norm(dim=1, keepdim=True) | |
| text_embeds = text_embeds / text_embeds.norm(dim=1, keepdim=True) | |
| # Calculate similarity scores | |
| similarity_scores = torch.matmul(text_embeds, image_embeds.T) | |
| # Print raw scores | |
| print("Similarity scores:", similarity_scores) | |
| # Convert to probabilities | |
| probs = torch.nn.functional.softmax(similarity_scores, dim=0) | |
| print("Probabilities:", probs) | |
| # Get the most similar text | |
| most_similar_idx = similarity_scores.argmax().item() | |
| print(f"Most similar text: '{texts[most_similar_idx]}'") | |
| ``` | |
| ## Recursos | |
| - Consulte o post no blog [Kakao Brain’s Open Source ViT, ALIGN, and the New COYO Text-Image Dataset](https://huggingface.co/blog/vit-align) para mais detalhes. | |
| ## AlignConfig[[transformers.AlignConfig]] | |
| #### transformers.AlignConfig[[transformers.AlignConfig]] | |
| ```python | |
| transformers.AlignConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = 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: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, text_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, vision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, projection_dim: int = 640, temperature_init_value: float = 1.0, initializer_range: float = 0.02) | |
| ``` | |
| [Origem](https://github.com/huggingface/transformers/blob/main/src/transformers/models/align/configuration_align.py#L157) | |
| **Parâmetros:** | |
| text_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *opcional*) : O objeto de configuração ou dicionário do backbone de texto. | |
| vision_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *opcional*) : O objeto de configuração ou dicionário do backbone de visão. | |
| projection_dim (`int`, *opcional*, padrão `640`) : Dimensionalidade das camadas de projeção de texto e visão. | |
| temperature_init_value (`float`, *opcional*, padrão 1.0) : O valor inicial do parâmetro *temperature*. O padrão é utilizado conforme a implementação original do ALIGN. | |
| initializer_range (`float`, *opcional*, padrão `0.02`) : O desvio padrão do truncated_normal_initializer para inicializar todas as matrizes de pesos. | |
| Esta é a classe de configuração para armazenar a configuração de um AlignModel. Ela é usada para instanciar um modelo Align de acordo com os argumentos especificados, definindo a arquitetura do modelo. Instanciar uma configuração com os padrões resultará em uma configuração semelhante à do [kakaobrain/align-base](https://huggingface.co/kakaobrain/align-base) | |
| Os objetos de configuração herdam de [PreTrainedConfig](/docs/transformers/main/pt/main_classes/configuration#transformers.PreTrainedConfig) e podem ser usados para controlar as saídas do modelo. Leia a documentação de [PreTrainedConfig](/docs/transformers/main/pt/main_classes/configuration#transformers.PreTrainedConfig) para mais informações. | |
| Exemplo: | |
| ```python | |
| >>> from transformers import AlignConfig, AlignModel | |
| >>> # Initializing a AlignConfig with kakaobrain/align-base style configuration | |
| >>> configuration = AlignConfig() | |
| >>> # Initializing a AlignModel (with random weights) from the kakaobrain/align-base style configuration | |
| >>> model = AlignModel(configuration) | |
| >>> # Accessing the model configuration | |
| >>> configuration = model.config | |
| >>> # We can also initialize a AlignConfig from a AlignTextConfig and a AlignVisionConfig | |
| >>> from transformers import AlignTextConfig, AlignVisionConfig | |
| >>> # Initializing ALIGN Text and Vision configurations | |
| >>> config_text = AlignTextConfig() | |
| >>> config_vision = AlignVisionConfig() | |
| >>> config = AlignConfig(text_config=config_text, vision_config=config_vision) | |
| ``` | |
| ## AlignTextConfig[[transformers.AlignTextConfig]] | |
| #### transformers.AlignTextConfig[[transformers.AlignTextConfig]] | |
| ```python | |
| transformers.AlignTextConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = 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: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, vocab_size: int = 30522, hidden_size: int = 768, num_hidden_layers: int = 12, num_attention_heads: int = 12, intermediate_size: int = 3072, hidden_act: str = 'gelu', hidden_dropout_prob: float | int = 0.1, attention_probs_dropout_prob: float | int = 0.1, max_position_embeddings: int = 512, type_vocab_size: int = 2, initializer_range: float = 0.02, layer_norm_eps: float = 1e-12, pad_token_id: int | None = 0, bos_token_id: int | None = None, eos_token_id: int | list[int] | None = None) | |
| ``` | |
| [Origem](https://github.com/huggingface/transformers/blob/main/src/transformers/models/align/configuration_align.py#L27) | |
| **Parâmetros:** | |
| vocab_size (`int`, *opcional*, padrão `30522`) : Tamanho do vocabulário do modelo. Define o número de tokens diferentes que podem ser representados pelos `input_ids`. | |
| hidden_size (`int`, *opcional*, padrão `768`) : Dimensão das representações ocultas. | |
| num_hidden_layers (`int`, *opcional*, padrão `12`) : Número de camadas ocultas no decodificador do Transformer. | |
| num_attention_heads (`int`, *opcional*, padrão `12`) : Número de cabeças de atenção para cada camada de atenção no decodificador do Transformer. | |
| intermediate_size (`int`, *opcional*, padrão `3072`) : Dimensão das representações do MLP. | |
| hidden_act (`str`, *opcional*, padrão `gelu`) : A função de ativação não linear (função ou string) no decodificador. Por exemplo, `"gelu"`, `"relu"`, `"silu"`, etc. | |
| hidden_dropout_prob (`Union[float, int]`, *opcional*, padrão `0.1`) : A probabilidade de dropout para todas as camadas totalmente conectadas nos embeddings, encoder e pooler. | |
| attention_probs_dropout_prob (`Union[float, int]`, *opcional*, padrão `0.1`) : A taxa de dropout para as probabilidades de atenção. | |
| max_position_embeddings (`int`, *opcional*, padrão `512`) : O comprimento máximo de sequência com o qual este modelo pode ser utilizado. | |
| type_vocab_size (`int`, *opcional*, padrão `2`) : O tamanho do vocabulário dos `token_type_ids`. | |
| initializer_range (`float`, *opcional*, padrão `0.02`) : O desvio padrão do truncated_normal_initializer para inicializar todas as matrizes de pesos. | |
| layer_norm_eps (`float`, *opcional*, padrão `1e-12`) : O epsilon usado pelas camadas de normalização de camada. | |
| pad_token_id (`int`, *opcional*, padrão `0`) : ID do token usado para preenchimento no vocabulário. | |
| bos_token_id (`int`, *opcional*) : ID do token usado para o início do fluxo no vocabulário. | |
| eos_token_id (`Union[int, list[int]]`, *opcional*) : ID do token usado para o fim do fluxo no vocabulário. | |
| Esta é a classe de configuração para armazenar a configuração de um AlignModel. Ela é usada para instanciar um modelo Align de acordo com os argumentos especificados, definindo a arquitetura do modelo. Instanciar uma configuração com os padrões resultará em uma configuração semelhante à do [kakaobrain/align-base](https://huggingface.co/kakaobrain/align-base) | |
| Os objetos de configuração herdam de [PreTrainedConfig](/docs/transformers/main/pt/main_classes/configuration#transformers.PreTrainedConfig) e podem ser usados para controlar as saídas do modelo. Leia a documentação de [PreTrainedConfig](/docs/transformers/main/pt/main_classes/configuration#transformers.PreTrainedConfig) para mais informações. | |
| Exemplo: | |
| ```python | |
| >>> from transformers import AlignTextConfig, AlignTextModel | |
| >>> # Initializing a AlignTextConfig with kakaobrain/align-base style configuration | |
| >>> configuration = AlignTextConfig() | |
| >>> # Initializing a AlignTextModel (with random weights) from the kakaobrain/align-base style configuration | |
| >>> model = AlignTextModel(configuration) | |
| >>> # Accessing the model configuration | |
| >>> configuration = model.config | |
| ``` | |
| ## AlignVisionConfig[[transformers.AlignVisionConfig]] | |
| #### transformers.AlignVisionConfig[[transformers.AlignVisionConfig]] | |
| ```python | |
| transformers.AlignVisionConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = 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: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, num_channels: int = 3, image_size: int | list[int] | tuple[int, int] = 600, width_coefficient: float = 2.0, depth_coefficient: float = 3.1, depth_divisor: int = 8, kernel_sizes: list[int] | tuple[int, ...] = (3, 3, 5, 3, 5, 5, 3), in_channels: list[int] | tuple[int, ...] = (32, 16, 24, 40, 80, 112, 192), out_channels: list[int] | tuple[int, ...] = (16, 24, 40, 80, 112, 192, 320), depthwise_padding: list | tuple[int, ...] = (), strides: list[int] | tuple[int, ...] = (1, 2, 2, 2, 1, 2, 1), num_block_repeats: list[int] | tuple[int, ...] = (1, 2, 2, 3, 3, 4, 1), expand_ratios: list[int] | tuple[int, ...] = (1, 6, 6, 6, 6, 6, 6), squeeze_expansion_ratio: float = 0.25, hidden_act: str = 'swish', hidden_dim: int = 2560, pooling_type: str = 'mean', initializer_range: float = 0.02, batch_norm_eps: float = 0.001, batch_norm_momentum: float = 0.99, drop_connect_rate: float | int = 0.2) | |
| ``` | |
| [Origem](https://github.com/huggingface/transformers/blob/main/src/transformers/models/align/configuration_align.py#L66) | |
| **Parâmetros:** | |
| num_channels (`int`, *opcional*, padrão `3`) : O número de canais de entrada. | |
| image_size (`Union[int, list[int], tuple[int, int]]`, *opcional*, padrão `600`) : O tamanho (resolução) de cada imagem. | |
| width_coefficient (`float`, *opcional*, padrão 2.0) : Coeficiente de escala para a largura da rede em cada estágio. | |
| depth_coefficient (`float`, *opcional*, padrão 3.1) : Coeficiente de escala para a profundidade da rede em cada estágio. | |
| depth_divisor (`int`, *opcional*, padrão 8) : Uma unidade de largura da rede. | |
| kernel_sizes (`list[int]`, *opcional*, padrão `[3, 3, 5, 3, 5, 5, 3]`) : Lista de tamanhos de kernel a serem usados em cada bloco. | |
| in_channels (`list[int]`, *opcional*, padrão `[32, 16, 24, 40, 80, 112, 192]`) : Lista de tamanhos de canais de entrada a serem usados em cada bloco para as camadas convolucionais. | |
| out_channels (`list[int]`, *opcional*, padrão `[16, 24, 40, 80, 112, 192, 320]`) : Lista de tamanhos de canais de saída a serem usados em cada bloco para as camadas convolucionais. | |
| depthwise_padding (`list[int]`, *opcional*, padrão `[]`) : Lista de índices de blocos com preenchimento quadrado. | |
| strides (`list[int]`, *opcional*, padrão `[1, 2, 2, 2, 1, 2, 1]`) : Lista de tamanhos de passo a serem usados em cada bloco para as camadas convolucionais. | |
| num_block_repeats (`list[int]`, *opcional*, padrão `[1, 2, 2, 3, 3, 4, 1]`) : Lista com o número de vezes que cada bloco deve ser repetido. | |
| expand_ratios (`list[int]`, *opcional*, padrão `[1, 6, 6, 6, 6, 6, 6]`) : Lista dos coeficientes de escala de cada bloco. | |
| squeeze_expansion_ratio (`float`, *opcional*, padrão 0.25) : Razão de expansão do squeeze. | |
| hidden_act (`str`, *opcional*, padrão `swish`) : A função de ativação não linear (função ou string) no decodificador. Por exemplo, `"gelu"`, `"relu"`, `"silu"`, etc. | |
| hidden_dim (`int`, *opcional*, padrão 1280) : A dimensão oculta da camada antes da cabeça de classificação. | |
| pooling_type (`str` ou `function`, *opcional*, padrão `"mean"`) : Tipo de pooling final a ser aplicado antes da cabeça de classificação densa. As opções disponíveis são [`"mean"`, `"max"`] | |
| initializer_range (`float`, *opcional*, padrão `0.02`) : O desvio padrão do truncated_normal_initializer para inicializar todas as matrizes de pesos. | |
| batch_norm_eps (`float`, *opcional*, padrão `0.001`) : O epsilon usado pelas camadas de normalização de lote. | |
| batch_norm_momentum (`float`, *opcional*, padrão 0.99) : O momento usado pelas camadas de normalização de lote. | |
| drop_connect_rate (`float`, *opcional*, padrão 0.2) : A taxa de descarte para conexões de atalho. | |
| Esta é a classe de configuração para armazenar a configuração de um AlignModel. Ela é usada para instanciar um modelo Align de acordo com os argumentos especificados, definindo a arquitetura do modelo. Instanciar uma configuração com os padrões resultará em uma configuração semelhante à do [kakaobrain/align-base](https://huggingface.co/kakaobrain/align-base) | |
| Os objetos de configuração herdam de [PreTrainedConfig](/docs/transformers/main/pt/main_classes/configuration#transformers.PreTrainedConfig) e podem ser usados para controlar as saídas do modelo. Leia a documentação de [PreTrainedConfig](/docs/transformers/main/pt/main_classes/configuration#transformers.PreTrainedConfig) para mais informações. | |
| Exemplo: | |
| ```python | |
| >>> from transformers import AlignVisionConfig, AlignVisionModel | |
| >>> # Initializing a AlignVisionConfig with kakaobrain/align-base style configuration | |
| >>> configuration = AlignVisionConfig() | |
| >>> # Initializing a AlignVisionModel (with random weights) from the kakaobrain/align-base style configuration | |
| >>> model = AlignVisionModel(configuration) | |
| >>> # Accessing the model configuration | |
| >>> configuration = model.config | |
| ``` | |
| ## AlignProcessor[[transformers.AlignProcessor]] | |
| #### transformers.AlignProcessor[[transformers.AlignProcessor]] | |
| ```python | |
| transformers.AlignProcessor(image_processor, tokenizer) | |
| ``` | |
| [Origem](https://github.com/huggingface/transformers/blob/main/src/transformers/models/align/processing_align.py#L33) | |
| **Parâmetros:** | |
| image_processor (`EfficientNetImageProcessor`) : O processador de imagem é uma entrada obrigatória. | |
| tokenizer (`BertTokenizer`) : O tokenizer é uma entrada obrigatória. | |
| Constrói um AlignProcessor que encapsula um processador de imagem e um tokenizer em um único processador. | |
| [AlignProcessor](/docs/transformers/main/pt/model_doc/align#transformers.AlignProcessor) oferece todas as funcionalidades de [EfficientNetImageProcessor](/docs/transformers/main/pt/model_doc/efficientnet#transformers.EfficientNetImageProcessor) e [BertTokenizer](/docs/transformers/main/pt/model_doc/lxmert#transformers.BertTokenizer). Consulte [~EfficientNetImageProcessor](/docs/transformers/main/pt/model_doc/efficientnet#transformers.EfficientNetImageProcessor) e [~BertTokenizer](/docs/transformers/main/pt/model_doc/lxmert#transformers.BertTokenizer) para mais informações. | |
| #### __call__[[transformers.AlignProcessor.__call__]] | |
| ```python | |
| __call__(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None, text: str | list[str] | list[list[str]] | None = None, videos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]], NoneType] = None, audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None, **kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'>) | |
| ``` | |
| [Origem](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L653) | |
| **Parâmetros:** | |
| images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`, *opcional*) : Imagem a ser pré-processada. Espera uma única imagem ou um lote de imagens com valores de pixel variando de 0 a 255. Se estiver passando imagens com valores de pixel entre 0 e 1, defina `do_rescale=False`. | |
| text (`Union[str, list[str], list[list[str]]]`, *opcional*) : A sequência ou lote de sequências a ser codificada. Cada sequência pode ser uma string ou uma lista de strings (string pretokenizada). Se você passar uma entrada pretokenizada, defina `is_split_into_words=True` para evitar ambiguidade com entradas em lote. | |
| videos (`Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor], list[list[PIL.Image.Image]], list[list[numpy.ndarray]], list[list[torch.Tensor]], ~video_utils.URL, list[~video_utils.URL], list[list[~video_utils.URL]], ~video_utils.Path, list[~video_utils.Path], list[list[~video_utils.Path]]]`, *opcional*) : Vídeo para pré-processar. Espera um único vídeo ou um lote de vídeos com valores de pixel variando de 0 a 255. Se estiver passando vídeos com valores de pixel entre 0 e 1, defina `do_rescale=False`. | |
| audio (`Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]]`, *opcional*) : O áudio ou lote de áudios a ser preparado. Cada áudio pode ser um array NumPy ou um tensor PyTorch. No caso de um array NumPy/tensor PyTorch, cada áudio deve ter a forma (C, T), onde C é o número de canais e T é o comprimento de amostras do áudio. | |
| return_tensors (`str` ou [TensorType](/docs/transformers/main/pt/internal/file_utils#transformers.TensorType), *opcional*) : Se definido, retornará tensores de um framework específico. Os valores aceitos são: - `'pt'`: Retorna objetos `torch.Tensor` do PyTorch. - `'np'`: Retorna objetos `np.ndarray` do NumPy. | |
| - ****kwargs** ([ProcessingKwargs](/docs/transformers/main/pt/main_classes/processors#transformers.ProcessingKwargs), *opcional*) : Opções de processamento adicionais para cada modalidade (texto, imagens, vídeos, áudio). Os parâmetros específicos do modelo estão listados acima; consulte a classe TypedDict para a lista completa de argumentos suportados. | |
| ## AlignModel[[transformers.AlignModel]] | |
| #### transformers.AlignModel[[transformers.AlignModel]] | |
| ```python | |
| transformers.AlignModel(config: AlignConfig) | |
| ``` | |
| [Origem](https://github.com/huggingface/transformers/blob/main/src/transformers/models/align/modeling_align.py#L988) | |
| **Parâmetros:** | |
| config ([AlignConfig](/docs/transformers/main/pt/model_doc/align#transformers.AlignConfig)) : Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método [from_pretrained()](/docs/transformers/main/pt/main_classes/model#transformers.PreTrainedModel.from_pretrained) para carregar os pesos do modelo. | |
| O modelo Align sem processamento adicional, que produz estados ocultos brutos sem nenhuma cabeça específica no topo. | |
| Este modelo herda de [PreTrainedModel](/docs/transformers/main/pt/main_classes/model#transformers.PreTrainedModel). Consulte a documentação da classe pai para os métodos genéricos que a biblioteca implementa para todos os seus modelos (como download ou salvamento, redimensionamento dos embeddings de entrada, poda de cabeças, etc.). | |
| Este modelo também é uma subclasse de [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) do PyTorch. Use-o como um Módulo PyTorch regular e consulte a documentação do PyTorch para todos os assuntos relacionados ao uso e comportamento gerais. | |
| #### forward[[transformers.AlignModel.forward]] | |
| ```python | |
| forward(input_ids: typing.Optional[torch.LongTensor] = None, pixel_values: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, token_type_ids: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.Tensor] = None, inputs_embeds: typing.Optional[torch.Tensor] = None, return_loss: bool | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>) | |
| ``` | |
| [Origem](https://github.com/huggingface/transformers/blob/main/src/transformers/models/align/modeling_align.py#L1084) | |
| **Parâmetros:** | |
| input_ids (`torch.LongTensor` de forma `(batch_size, sequence_length)`, *opcional*) : Índices dos tokens da sequência de entrada no vocabulário. O preenchimento (padding) será ignorado por padrão. Os índices podem ser obtidos usando [AutoTokenizer](/docs/transformers/main/pt/model_doc/auto#transformers.AutoTokenizer). Consulte [PreTrainedTokenizer.encode()](/docs/transformers/main/pt/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) e [PreTrainedTokenizer.__call__()](/docs/transformers/main/pt/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) para mais detalhes. [O que são IDs de entrada?](../glossary#input-ids) | |
| pixel_values (`torch.Tensor` de forma `(batch_size, num_channels, image_size, image_size)`, *opcional*) : Os tensores correspondentes às imagens de entrada. Os valores de pixels podem ser obtidos usando [EfficientNetImageProcessor](/docs/transformers/main/pt/model_doc/efficientnet#transformers.EfficientNetImageProcessor). Veja [EfficientNetImageProcessor.__call__()](/docs/transformers/main/pt/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) para detalhes ([AlignProcessor](/docs/transformers/main/pt/model_doc/align#transformers.AlignProcessor) usa [EfficientNetImageProcessor](/docs/transformers/main/pt/model_doc/efficientnet#transformers.EfficientNetImageProcessor) para processar imagens). | |
| attention_mask (`torch.Tensor` de forma `(batch_size, sequence_length)`, *opcional*) : Máscara para evitar a execução de atenção nos índices de tokens de preenchimento. Valores de máscara selecionados em `[0, 1]`: - 1 para tokens que **não estão mascarados**, - 0 para tokens que **estão mascarados**. [O que são máscaras de atenção?](../glossary#attention-mask) | |
| token_type_ids (`torch.Tensor` de forma `(batch_size, sequence_length)`, *opcional*) : Índices de tokens de segmento para indicar as primeiras e segundas partes das entradas. Os índices são selecionados em `[0, 1]`: - 0 corresponde a um token de *frase A*, - 1 corresponde a um token de *frase B*. [O que são IDs de tipo de token?](../glossary#token-type-ids) | |
| position_ids (`torch.Tensor` de forma `(batch_size, sequence_length)`, *opcional*) : Índices das posições dos tokens de cada sequência de entrada nos embeddings de posição. Selecionados no intervalo `[0, config.n_positions - 1]`. [O que são IDs de posição?](../glossary#position-ids) | |
| inputs_embeds (`torch.Tensor` de forma `(batch_size, sequence_length, hidden_size)`, *opcional*) : Opcionalmente, em vez de passar `input_ids`, você pode escolher passar diretamente uma representação incorporada. Isso é útil se você quiser ter mais controle sobre como converter os índices de `input_ids` nos vetores associados do que a matriz de busca de incorporação interna do modelo. | |
| return_loss (`bool`, *opcional*) : Se deve ou não retornar a perda contrastiva. | |
| **Retorna:** `AlignOutput` ou `tuple(torch.Tensor)` | |
| Um `AlignOutput` ou uma tupla de `torch.Tensor` (se `return_dict=False` for passado ou quando `config.return_dict=False`) contendo vários elementos, dependendo da configuração ([AlignConfig](/docs/transformers/main/pt/model_doc/align#transformers.AlignConfig)) e das entradas. | |
| O método forward do [AlignModel](/docs/transformers/main/pt/model_doc/align#transformers.AlignModel) sobrescreve o método especial `__call__`. | |
| Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de `Module` em seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente. | |
| - **loss** (`torch.Tensor` de forma `(1,)`, *opcional*, retornado quando `return_loss` é `True`) -- Perda contrastiva para similaridade entre imagem e texto. | |
| - **logits_per_image** (`torch.Tensor` de forma `(image_batch_size, text_batch_size)`) -- As pontuações de produto escalar escalonado entre `image_embeds` e `text_embeds`. Isso representa as pontuações de similaridade entre imagem e texto. | |
| - **logits_per_text** (`torch.Tensor` de forma `(text_batch_size, image_batch_size)`) -- As pontuações de produto escalar escalonado entre `text_embeds` e `image_embeds`. Isso representa as pontuações de similaridade entre texto e imagem. | |
| - **text_embeds** (`torch.Tensor` de forma `(batch_size, output_dim`) -- Os embeddings de texto obtidos ao aplicar a camada de projeção à saída agregada do [AlignTextModel](/docs/transformers/main/pt/model_doc/align#transformers.AlignTextModel). | |
| - **image_embeds** (`torch.Tensor` de forma `(batch_size, output_dim`) -- A saída de [AlignVisionModel](/docs/transformers/main/pt/model_doc/align#transformers.AlignVisionModel). | |
| - **text_model_output** (`~modeling_outputs.BaseModelOutputWithPooling`, *opcional*) -- A saída do [AlignTextModel](/docs/transformers/main/pt/model_doc/align#transformers.AlignTextModel). | |
| - **vision_model_output** (`~modeling_outputs.BaseModelOutputWithPoolingAndNoAttention`, *opcional*) -- A saída do [AlignVisionModel](/docs/transformers/main/pt/model_doc/align#transformers.AlignVisionModel). | |
| Exemplos: | |
| ```python | |
| >>> import torch | |
| >>> from transformers import AutoProcessor, AlignModel | |
| >>> from transformers.image_utils import load_image | |
| >>> model = AlignModel.from_pretrained("kakaobrain/align-base") | |
| >>> processor = AutoProcessor.from_pretrained("kakaobrain/align-base") | |
| >>> url = "http://images.cocodataset.org/val2017/000000039769.jpg" | |
| >>> image = load_image(url) | |
| >>> inputs = processor( | |
| ... images=image, text=["a photo of a cat", "a photo of a dog"], return_tensors="pt", padding=True | |
| ... ) | |
| >>> with torch.inference_mode(): | |
| ... 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[[transformers.AlignModel.get_text_features]] | |
| ```python | |
| get_text_features(input_ids: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, token_type_ids: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.Tensor] = None, inputs_embeds: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>) | |
| ``` | |
| [Origem](https://github.com/huggingface/transformers/blob/main/src/transformers/models/align/modeling_align.py#L1021) | |
| **Parâmetros:** | |
| input_ids (`torch.Tensor` de forma `(batch_size, sequence_length)`, *opcional*) : Índices dos tokens da sequência de entrada no vocabulário. O preenchimento (padding) será ignorado por padrão. Os índices podem ser obtidos usando [AutoTokenizer](/docs/transformers/main/pt/model_doc/auto#transformers.AutoTokenizer). Consulte [PreTrainedTokenizer.encode()](/docs/transformers/main/pt/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) e [PreTrainedTokenizer.__call__()](/docs/transformers/main/pt/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) para mais detalhes. [O que são IDs de entrada?](../glossary#input-ids) | |
| attention_mask (`torch.Tensor` de forma `(batch_size, sequence_length)`, *opcional*) : Máscara para evitar a execução de atenção nos índices de tokens de preenchimento. Valores de máscara selecionados em `[0, 1]`: - 1 para tokens que **não estão mascarados**, - 0 para tokens que **estão mascarados**. [O que são máscaras de atenção?](../glossary#attention-mask) | |
| token_type_ids (`torch.Tensor` de forma `(batch_size, sequence_length)`, *opcional*) : Índices de tokens de segmento para indicar as primeiras e segundas partes das entradas. Os índices são selecionados em `[0, 1]`: - 0 corresponde a um token de *frase A*, - 1 corresponde a um token de *frase B*. [O que são IDs de tipo de token?](../glossary#token-type-ids) | |
| position_ids (`torch.Tensor` de forma `(batch_size, sequence_length)`, *opcional*) : Índices das posições dos tokens de cada sequência de entrada nos embeddings de posição. Selecionados no intervalo `[0, config.n_positions - 1]`. [O que são IDs de posição?](../glossary#position-ids) | |
| inputs_embeds (`torch.Tensor` de forma `(batch_size, sequence_length, hidden_size)`, *opcional*) : Opcionalmente, em vez de passar `input_ids`, você pode escolher passar diretamente uma representação incorporada. Isso é útil se você quiser ter mais controle sobre como converter os índices de `input_ids` nos vetores associados do que a matriz de busca de incorporação interna do modelo. | |
| **Retorna:** [BaseModelOutputWithPooling](/docs/transformers/main/pt/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) ou `tuple(torch.Tensor)` | |
| Um [BaseModelOutputWithPooling](/docs/transformers/main/pt/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) ou uma tupla de `torch.Tensor` (se `return_dict=False` for passado ou quando `config.return_dict=False`) contendo vários elementos, dependendo da configuração ([AlignConfig](/docs/transformers/main/pt/model_doc/align#transformers.AlignConfig)) e das entradas. | |
| - **last_hidden_state** (`torch.Tensor` de forma `(batch_size, sequence_length, hidden_size)`) -- Sequência de estados ocultos na saída da última camada do modelo. | |
| - **pooler_output** (`torch.Tensor` de forma `(batch_size, hidden_size)`) -- Estado oculto da última camada do primeiro token da sequência (token de classificação) após processamento adicional pelas camadas usadas para a tarefa de pré-treinamento auxiliar. Por exemplo, para modelos da família BERT, isso retorna o token de classificação após o processamento por uma camada linear e uma função de ativação tanh. Os pesos da camada linear são treinados a partir do objetivo de previsão da próxima frase (classificação) durante o pré-treinamento. | |
| - **hidden_states** (`tuple(torch.Tensor)`, *opcional*, retornado quando `output_hidden_states=True` é passado ou quando `config.output_hidden_states=True`) -- Tupla de `torch.Tensor` (um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) com a forma `(batch_size, sequence_length, hidden_size)`. | |
| Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial. | |
| - **attentions** (`tuple(torch.Tensor)`, *opcional*, retornado quando `output_attentions=True` é passado ou quando `config.output_attentions=True`) -- Tupla de `torch.Tensor` (um para cada camada) com a forma `(batch_size, num_heads, sequence_length, sequence_length)`. | |
| Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nas cabeças de autoatenção. | |
| Exemplos: | |
| ```python | |
| >>> import torch | |
| >>> from transformers import AutoTokenizer, AlignModel | |
| >>> model = AlignModel.from_pretrained("kakaobrain/align-base") | |
| >>> tokenizer = AutoTokenizer.from_pretrained("kakaobrain/align-base") | |
| >>> 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[[transformers.AlignModel.get_image_features]] | |
| ```python | |
| get_image_features(pixel_values: Tensor, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>) | |
| ``` | |
| [Origem](https://github.com/huggingface/transformers/blob/main/src/transformers/models/align/modeling_align.py#L1059) | |
| **Parâmetros:** | |
| pixel_values (`torch.Tensor` de forma `(batch_size, num_channels, image_size, image_size)`) : Os tensores correspondentes às imagens de entrada. Os valores de pixels podem ser obtidos usando [EfficientNetImageProcessor](/docs/transformers/main/pt/model_doc/efficientnet#transformers.EfficientNetImageProcessor). Consulte [EfficientNetImageProcessor.__call__()](/docs/transformers/main/pt/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) para mais detalhes ([AlignProcessor](/docs/transformers/main/pt/model_doc/align#transformers.AlignProcessor) usa [EfficientNetImageProcessor](/docs/transformers/main/pt/model_doc/efficientnet#transformers.EfficientNetImageProcessor) para processar imagens). | |
| **Retorna:** [BaseModelOutputWithPooling](/docs/transformers/main/pt/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) ou `tuple(torch.Tensor)` | |
| Um [BaseModelOutputWithPooling](/docs/transformers/main/pt/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) ou uma tupla de `torch.Tensor` (se `return_dict=False` for passado ou quando `config.return_dict=False`) contendo vários elementos, dependendo da configuração ([AlignConfig](/docs/transformers/main/pt/model_doc/align#transformers.AlignConfig)) e das entradas. | |
| - **last_hidden_state** (`torch.Tensor` de forma `(batch_size, sequence_length, hidden_size)`) -- Sequência de estados ocultos na saída da última camada do modelo. | |
| - **pooler_output** (`torch.Tensor` de forma `(batch_size, hidden_size)`) -- Estado oculto da última camada do primeiro token da sequência (token de classificação) após processamento adicional pelas camadas usadas para a tarefa de pré-treinamento auxiliar. Por exemplo, para modelos da família BERT, isso retorna o token de classificação após o processamento por uma camada linear e uma função de ativação tanh. Os pesos da camada linear são treinados a partir do objetivo de previsão da próxima frase (classificação) durante o pré-treinamento. | |
| - **hidden_states** (`tuple(torch.Tensor)`, *opcional*, retornado quando `output_hidden_states=True` é passado ou quando `config.output_hidden_states=True`) -- Tupla de `torch.Tensor` (um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) com a forma `(batch_size, sequence_length, hidden_size)`. | |
| Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial. | |
| - **attentions** (`tuple(torch.Tensor)`, *opcional*, retornado quando `output_attentions=True` é passado ou quando `config.output_attentions=True`) -- Tupla de `torch.Tensor` (um para cada camada) com a forma `(batch_size, num_heads, sequence_length, sequence_length)`. | |
| Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nas cabeças de autoatenção. | |
| Exemplos: | |
| ```python | |
| >>> import torch | |
| >>> from transformers import AutoProcessor, AlignModel | |
| >>> from transformers.image_utils import load_image | |
| >>> model = AlignModel.from_pretrained("kakaobrain/align-base") | |
| >>> processor = AutoProcessor.from_pretrained("kakaobrain/align-base") | |
| >>> 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) | |
| ``` | |
| ## AlignTextModel[[transformers.AlignTextModel]] | |
| #### transformers.AlignTextModel[[transformers.AlignTextModel]] | |
| ```python | |
| transformers.AlignTextModel(config: AlignTextConfig, add_pooling_layer: bool = True) | |
| ``` | |
| [Origem](https://github.com/huggingface/transformers/blob/main/src/transformers/models/align/modeling_align.py#L805) | |
| **Parâmetros:** | |
| config ([AlignTextConfig](/docs/transformers/main/pt/model_doc/align#transformers.AlignTextConfig)) : Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método [from_pretrained()](/docs/transformers/main/pt/main_classes/model#transformers.PreTrainedModel.from_pretrained) para carregar os pesos do modelo. | |
| add_pooling_layer (`bool`, *opcional*, padrão `True`) : Se deve adicionar uma camada de pooling | |
| O modelo de texto do ALIGN sem nenhum head ou projeção no topo. | |
| Este modelo herda de [PreTrainedModel](/docs/transformers/main/pt/main_classes/model#transformers.PreTrainedModel). Consulte a documentação da classe pai para os métodos genéricos que a biblioteca implementa para todos os seus modelos (como download ou salvamento, redimensionamento dos embeddings de entrada, poda de cabeças, etc.). | |
| Este modelo também é uma subclasse de [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) do PyTorch. Use-o como um Módulo PyTorch regular e consulte a documentação do PyTorch para todos os assuntos relacionados ao uso e comportamento gerais. | |
| #### forward[[transformers.AlignTextModel.forward]] | |
| ```python | |
| forward(input_ids: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, token_type_ids: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.Tensor] = None, inputs_embeds: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>) | |
| ``` | |
| [Origem](https://github.com/huggingface/transformers/blob/main/src/transformers/models/align/modeling_align.py#L836) | |
| **Parâmetros:** | |
| input_ids (`torch.Tensor` de forma `(batch_size, sequence_length)`, *opcional*) : Índices dos tokens da sequência de entrada no vocabulário. O preenchimento (padding) será ignorado por padrão. Os índices podem ser obtidos usando [AutoTokenizer](/docs/transformers/main/pt/model_doc/auto#transformers.AutoTokenizer). Consulte [PreTrainedTokenizer.encode()](/docs/transformers/main/pt/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) e [PreTrainedTokenizer.__call__()](/docs/transformers/main/pt/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) para mais detalhes. [O que são IDs de entrada?](../glossary#input-ids) | |
| attention_mask (`torch.Tensor` de forma `(batch_size, sequence_length)`, *opcional*) : Máscara para evitar a execução de atenção nos índices de tokens de preenchimento. Valores de máscara selecionados em `[0, 1]`: - 1 para tokens que **não estão mascarados**, - 0 para tokens que **estão mascarados**. [O que são máscaras de atenção?](../glossary#attention-mask) | |
| token_type_ids (`torch.Tensor` de forma `(batch_size, sequence_length)`, *opcional*) : Índices de tokens de segmento para indicar as primeiras e segundas partes das entradas. Os índices são selecionados em `[0, 1]`: - 0 corresponde a um token de *frase A*, - 1 corresponde a um token de *frase B*. [O que são IDs de tipo de token?](../glossary#token-type-ids) | |
| position_ids (`torch.Tensor` de forma `(batch_size, sequence_length)`, *opcional*) : Índices das posições dos tokens de cada sequência de entrada nos embeddings de posição. Selecionados no intervalo `[0, config.n_positions - 1]`. [O que são IDs de posição?](../glossary#position-ids) | |
| inputs_embeds (`torch.Tensor` de forma `(batch_size, sequence_length, hidden_size)`, *opcional*) : Opcionalmente, em vez de passar `input_ids`, você pode escolher passar diretamente uma representação incorporada. Isso é útil se você quiser ter mais controle sobre como converter os índices de `input_ids` nos vetores associados do que a matriz de busca de incorporação interna do modelo. | |
| **Retorna:** [BaseModelOutputWithPooling](/docs/transformers/main/pt/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) ou `tuple(torch.Tensor)` | |
| Um [BaseModelOutputWithPooling](/docs/transformers/main/pt/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) ou uma tupla de `torch.Tensor` (se `return_dict=False` for passado ou quando `config.return_dict=False`) contendo vários elementos, dependendo da configuração ([AlignConfig](/docs/transformers/main/pt/model_doc/align#transformers.AlignConfig)) e das entradas. | |
| O método forward do [AlignTextModel](/docs/transformers/main/pt/model_doc/align#transformers.AlignTextModel) substitui o método especial `__call__`. | |
| Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de `Module` em seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente. | |
| - **last_hidden_state** (`torch.Tensor` de forma `(batch_size, sequence_length, hidden_size)`) -- Sequência de estados ocultos na saída da última camada do modelo. | |
| - **pooler_output** (`torch.Tensor` de forma `(batch_size, hidden_size)`) -- Estado oculto da última camada do primeiro token da sequência (token de classificação) após processamento adicional pelas camadas usadas para a tarefa de pré-treinamento auxiliar. Por exemplo, para modelos da família BERT, isso retorna o token de classificação após o processamento por uma camada linear e uma função de ativação tanh. Os pesos da camada linear são treinados a partir do objetivo de previsão da próxima frase (classificação) durante o pré-treinamento. | |
| - **hidden_states** (`tuple(torch.Tensor)`, *opcional*, retornado quando `output_hidden_states=True` é passado ou quando `config.output_hidden_states=True`) -- Tupla de `torch.Tensor` (um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) com a forma `(batch_size, sequence_length, hidden_size)`. | |
| Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial. | |
| - **attentions** (`tuple(torch.Tensor)`, *opcional*, retornado quando `output_attentions=True` é passado ou quando `config.output_attentions=True`) -- Tupla de `torch.Tensor` (um para cada camada) com a forma `(batch_size, num_heads, sequence_length, sequence_length)`. | |
| Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nas cabeças de autoatenção. | |
| Exemplos: | |
| ```python | |
| >>> from transformers import AutoTokenizer, AlignTextModel | |
| >>> model = AlignTextModel.from_pretrained("kakaobrain/align-base") | |
| >>> tokenizer = AutoTokenizer.from_pretrained("kakaobrain/align-base") | |
| >>> inputs = tokenizer(["a photo of a cat", "a photo of a dog"], padding=True, return_tensors="pt") | |
| >>> outputs = model(**inputs) | |
| >>> last_hidden_state = outputs.last_hidden_state | |
| >>> pooled_output = outputs.pooler_output # pooled (EOS token) states | |
| ``` | |
| ## AlignVisionModel[[transformers.AlignVisionModel]] | |
| #### transformers.AlignVisionModel[[transformers.AlignVisionModel]] | |
| ```python | |
| transformers.AlignVisionModel(config: AlignVisionConfig) | |
| ``` | |
| [Origem](https://github.com/huggingface/transformers/blob/main/src/transformers/models/align/modeling_align.py#L911) | |
| **Parâmetros:** | |
| config ([AlignVisionConfig](/docs/transformers/main/pt/model_doc/align#transformers.AlignVisionConfig)) : Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método [from_pretrained()](/docs/transformers/main/pt/main_classes/model#transformers.PreTrainedModel.from_pretrained) para carregar os pesos do modelo. | |
| O modelo de visão do ALIGN sem nenhum cabeçalho ou projeção no topo. | |
| Este modelo herda de [PreTrainedModel](/docs/transformers/main/pt/main_classes/model#transformers.PreTrainedModel). Consulte a documentação da classe pai para os métodos genéricos que a biblioteca implementa para todos os seus modelos (como download ou salvamento, redimensionamento dos embeddings de entrada, poda de cabeças, etc.). | |
| Este modelo também é uma subclasse de [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) do PyTorch. Use-o como um Módulo PyTorch regular e consulte a documentação do PyTorch para todos os assuntos relacionados ao uso e comportamento gerais. | |
| #### forward[[transformers.AlignVisionModel.forward]] | |
| ```python | |
| forward(pixel_values: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>) | |
| ``` | |
| [Origem](https://github.com/huggingface/transformers/blob/main/src/transformers/models/align/modeling_align.py#L939) | |
| **Parâmetros:** | |
| pixel_values (`torch.Tensor` de forma `(batch_size, num_channels, image_size, image_size)`, *opcional*) : Os tensores correspondentes às imagens de entrada. Os valores de pixels podem ser obtidos usando [EfficientNetImageProcessor](/docs/transformers/main/pt/model_doc/efficientnet#transformers.EfficientNetImageProcessor). Consulte [EfficientNetImageProcessor.__call__()](/docs/transformers/main/pt/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) para obter detalhes ([AlignProcessor](/docs/transformers/main/pt/model_doc/align#transformers.AlignProcessor) usa [EfficientNetImageProcessor](/docs/transformers/main/pt/model_doc/efficientnet#transformers.EfficientNetImageProcessor) para processar imagens). | |
| **Retorna:** `BaseModelOutputWithPoolingAndNoAttention` ou `tuple(torch.Tensor)` | |
| Um `BaseModelOutputWithPoolingAndNoAttention` ou uma tupla de `torch.Tensor` (se `return_dict=False` for passado ou quando `config.return_dict=False`) contendo vários elementos, dependendo da configuração ([AlignConfig](/docs/transformers/main/pt/model_doc/align#transformers.AlignConfig)) e das entradas. | |
| O método forward do [AlignVisionModel](/docs/transformers/main/pt/model_doc/align#transformers.AlignVisionModel) sobrescreve o método especial `__call__`. | |
| Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de `Module` em seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente. | |
| - **last_hidden_state** (`torch.Tensor` de forma `(batch_size, num_channels, height, width)`) -- Sequência de estados ocultos na saída da última camada do modelo. | |
| - **pooler_output** (`torch.Tensor` de forma `(batch_size, hidden_size)`) -- Estado oculto da última camada após uma operação de pooling nas dimensões espaciais. | |
| - **hidden_states** (`tuple(torch.Tensor)`, *opcional*, retornado quando `output_hidden_states=True` é passado ou quando `config.output_hidden_states=True`) -- Tupla de `torch.Tensor` (um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) com a forma `(batch_size, num_channels, height, width)`. | |
| Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial. | |
| Exemplos: | |
| ```python | |
| >>> from PIL import Image | |
| >>> from huggingface_hub.utils import httpx | |
| >>> from io import BytesIO | |
| >>> from transformers import AutoProcessor, AlignVisionModel | |
| >>> model = AlignVisionModel.from_pretrained("kakaobrain/align-base") | |
| >>> processor = AutoProcessor.from_pretrained("kakaobrain/align-base") | |
| >>> 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 CLS states | |
| ``` | |
Xet Storage Details
- Size:
- 52.4 kB
- Xet hash:
- 4577ccf34b68c14894ade6fc81840edaa6f90d8340db25abb7cdfc52c3271881
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.