Transformers documentation

VideoPrism

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Este modelo se publicó en HF papers el 2024-02-20 y se contribuyó a Hugging Face Transformers el 2026-06-19.

FlashAttention

VideoPrism

El modelo VideoPrism fue propuesto en el artículo VideoPrism: A Foundational Visual Encoder for Video Understanding de Google DeepMind (publicación en el blog).

VideoPrism es un codificador de video de uso general que aborda diversas tareas de comprensión de video con un único modelo congelado. El modelo se preentrena en un corpus heterogéneo a gran escala que contiene 36M de pares de video-descripción de alta calidad y 582M de clips de video con texto paralelo ruidoso (p. ej., transcripciones ASR). El enfoque de preentrenamiento mejora el auto-codificado enmascarado mediante la destilación global-local de embeddings semánticos de video y un esquema de barajado de tokens, lo que permite al modelo centrarse principalmente en la modalidad de video mientras aprovecha el texto asociado a los videos. VideoPrism logra un rendimiento líder en 31 de los 33 benchmarks de comprensión de video en cuatro amplios grupos de tareas, desde la respuesta a preguntas sobre videos de la web hasta la visión por computadora para la ciencia.

drawing

Puedes encontrar todos los puntos de control originales de VideoPrism en la colección VideoPrism.

Notas:

  • VideoPrism utiliza una arquitectura de codificador espaciotemporal factorizado, procesando los videos a través de transformadores espaciales y temporales separados.
  • El modelo admite el aprendizaje contrastivo de video y texto a través de VideoPrismClipModel, que combina un codificador de video y un codificador de texto. VideoPrismConfig debe usarse con este modelo.
  • Para tareas de clasificación de video, use VideoPrismForVideoClassification, que añade una cabeza de clasificación sobre el codificador de video. VideoPrismVisionConfig debe usarse con este modelo.
  • El codificador de visión se puede usar de forma independiente mediante VideoPrismVisionModel para extraer características de video. VideoPrismVisionConfig debe usarse con este modelo.
  • La resolución de entrada predeterminada es de 288x288 píxeles, con 16 fotogramas por clip de video para los modelos base y 8 fotogramas para los modelos grandes. Establezca interpolate_pos_encoding=True para usar los modelos con una resolución personalizada y un número de fotogramas por clip a medida.

Este modelo fue aportado por MHRDYN7 y revisado por vasqu & zucchini-nlp. El código original se puede encontrar aquí.

Ejemplo de uso

El fragmento de código siguiente muestra cómo cargar el VideoPrismVisionModel para la extracción de características usando la clase AutoModel.

import torch
from transformers import AutoModel, AutoVideoProcessor

processor = AutoVideoProcessor.from_pretrained("google/videoprism-base-f16r288", revision="refs/pr/4")
model = AutoModel.from_pretrained(
    "google/videoprism-base-f16r288",
    revision="refs/pr/4",
    device_map="auto",
    # use "flash_attention_2" for faster inference on supported hardware
    # attn_implementation="flash_attention_2" 
)

video_url = "https://huggingface.co/datasets/nateraw/kinetics-mini/resolve/main/val/archery/-Qz25rXdMjE_000014_000024.mp4"

# when do_sample_frames=True, 16/8 frames will be sampled by default depending on the checkpoint size base/large.
processed_video_inputs = processor(videos=[video_url], return_metadata=True, do_sample_frames=True)
video_metadata = processed_video_inputs["video_metadata"]
video_inputs = processed_video_inputs["pixel_values_videos"].to(model.device)
outputs = model(video_inputs)

# VideoPrism encoder outputs
encoder_outputs = outputs.last_hidden_state

VideoPrismVisionConfig

clase transformers.VideoPrismVisionConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneimage_size: int | list[int] | tuple[int, int] = 288num_frames: int = 16tubelet_size: list[int] | tuple[int, ...] = (1, 18, 18)num_channels: int = 3hidden_size: int = 768num_attention_heads: int = 12intermediate_size: int = 3072hidden_act: str = 'gelu_python'hidden_dropout_prob: float | int = 0.0attention_probs_dropout_prob: float | int = 0.0initializer_range: float = 0.02layer_norm_eps: float = 1e-06qkv_bias: bool = Truenum_spatial_layers: int = 12num_temporal_layers: int = 4attn_logit_softcapping: float = 50.0num_auxiliary_layers: int = 2apply_l2norm: bool = True )

Parámetros

  • image_size (Union[int, list[int], tuple[int, int]], opcional, valor predeterminado 288) — El tamaño (resolución) de cada imagen.
  • num_frames (int, opcional, valor predeterminado 16) — El número de fotogramas del video de entrada.
  • tubelet_size (List[int], opcional, valor predeterminado [1, 18, 18]) — El tamaño del parche de tubelet.
  • num_channels (int, opcional, valor predeterminado 3) — El número de canales de entrada.
  • hidden_size (int, opcional, valor predeterminado 768) — Dimensión de las representaciones ocultas.
  • num_attention_heads (int, opcional, valor predeterminado 12) — Número de cabezas de atención para cada capa de atención en el decodificador Transformer.
  • intermediate_size (int, opcional, valor predeterminado 3072) — Dimensión de las representaciones del MLP.
  • hidden_act (str, opcional, valor predeterminado gelu_python) — La función de activación no lineal (función o cadena) en el decodificador. Por ejemplo, "gelu", "relu", "silu", etc.
  • hidden_dropout_prob (Union[float, int], opcional, valor predeterminado 0.0) — La probabilidad de dropout para todas las capas totalmente conectadas en las incrustaciones, el codificador y el pooler.
  • attention_probs_dropout_prob (Union[float, int], opcional, valor predeterminado 0.0) — La proporción de dropout para las probabilidades de atención.
  • initializer_range (float, opcional, valor predeterminado 0.02) — La desviación estándar del truncated_normal_initializer para inicializar todas las matrices de pesos.
  • layer_norm_eps (float, opcional, valor predeterminado 1e-06) — La epsilon utilizada por las capas de normalización de capa.
  • qkv_bias (bool, opcional, valor predeterminado True) — Si se debe añadir un sesgo a las consultas, claves y valores.
  • num_spatial_layers (int, opcional, valor predeterminado 12) — Número de bloques de transformador espacial.
  • num_temporal_layers (int, opcional, valor predeterminado 4) — Número de bloques de transformer temporal.
  • attn_logit_softcapping (float, opcional, valor predeterminado 50.0) — Constante de softcapping para los logits de atención.
  • num_auxiliary_layers (int, opcional, valor predeterminado 2) — Número de capas auxiliares. Se utiliza en VideoPrismVideoModel, que forma parte de VideoPrismClipModel.
  • apply_l2norm (bool, opcional, valor predeterminado True) — Indica si se debe aplicar la normalización L2 a la salida. Esto se utiliza en VideoPrismVideoModel, que forma parte de VideoPrismClipModel.

Esta es la clase de configuración para almacenar la configuración de un VideoPrismClipModel. Se utiliza para instanciar un modelo Videoprism según los argumentos especificados, definiendo la arquitectura del modelo. Instanciar una configuración con los valores predeterminados producirá una configuración similar a la de google/videoprism-base-f16r288

Los objetos de configuración heredan de PreTrainedConfig y se pueden usar para controlar las salidas del modelo. Lea la documentación de PreTrainedConfig para obtener más información.

VideoPrismTextConfig

clase transformers.VideoPrismTextConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 32000hidden_size: int = 768intermediate_size: int = 3072num_hidden_layers: int = 12num_attention_heads: int = 12max_position_embeddings: int = 64hidden_act: str = 'relu'layer_norm_eps: float = 1e-06pad_token_id: int | None = 0bos_token_id: int | None = Noneeos_token_id: int | list[int] | None = Noneattention_probs_dropout_prob: float | int = 0.0apply_l2norm: bool = Trueqkv_bias: bool = Truehidden_dropout_prob: float = 0.0initializer_range: float = 0.02attn_logit_softcapping: float = 50.0 )

Parámetros

  • vocab_size (int, opcional, valor predeterminado 32000) — Tamaño del vocabulario del modelo. Define el número de tokens diferentes que pueden representarse mediante input_ids.
  • hidden_size (int, opcional, valor predeterminado 768) — Dimensión de las representaciones ocultas.
  • intermediate_size (int, opcional, valor predeterminado 3072) — Dimensión de las representaciones del MLP.
  • num_hidden_layers (int, opcional, valor predeterminado 12) — Número de capas ocultas en el decodificador del Transformer.
  • num_attention_heads (int, opcional, valor predeterminado 12) — Número de cabezas de atención para cada capa de atención en el decodificador Transformer.
  • max_position_embeddings (int, opcional, valor predeterminado 64) — La longitud máxima de secuencia con la que se podría utilizar este modelo.
  • hidden_act (str, opcional, valor predeterminado relu) — La función de activación no lineal (función o cadena) en el decodificador. Por ejemplo, "gelu", "relu", "silu", etc.
  • layer_norm_eps (float, opcional, valor predeterminado 1e-06) — La epsilon utilizada por las capas de normalización de capa.
  • pad_token_id (int, opcional, valor predeterminado 0) — Id del token utilizado para el relleno en el vocabulario.
  • bos_token_id (int, opcional) — Id del token utilizado para el inicio de la secuencia en el vocabulario.
  • eos_token_id (Union[int, list[int]], opcional) — Id del token utilizado para el fin de secuencia en el vocabulario.
  • attention_probs_dropout_prob (Union[float, int], opcional, valor predeterminado 0.0) — La proporción de dropout para las probabilidades de atención.
  • apply_l2norm (bool, opcional, valor predeterminado True) — Indica si se debe aplicar la normalización L2 a la salida de VideoPrismTextEncoder.
  • qkv_bias (bool, opcional, valor predeterminado True) — Si se debe añadir un sesgo a las consultas, claves y valores.
  • hidden_dropout_prob (float, opcional, valor predeterminado 0.0) — La probabilidad de dropout para todas las capas totalmente conectadas en las incrustaciones, el codificador y el pooler.
  • initializer_range (float, opcional, valor predeterminado 0.02) — La desviación estándar del truncated_normal_initializer para inicializar todas las matrices de pesos.
  • attn_logit_softcapping (float, opcional, valor predeterminado 50.0) — Constante de softcapping para los logits de atención.

Esta es la clase de configuración para almacenar la configuración de un VideoPrismClipModel. Se utiliza para instanciar un modelo Videoprism según los argumentos especificados, definiendo la arquitectura del modelo. Instanciar una configuración con los valores predeterminados producirá una configuración similar a la de google/videoprism-lvt-base-f16r288

Los objetos de configuración heredan de PreTrainedConfig y se pueden usar para controlar las salidas del modelo. Lea la documentación de PreTrainedConfig para obtener más información.

VideoPrismConfig

clase transformers.VideoPrismConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None )

Parámetros

  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig], opcional) — El objeto de configuración o el diccionario del backbone de texto.
  • vision_config (Union[dict, ~configuration_utils.PreTrainedConfig], opcional) — El objeto de configuración o el diccionario del backbone de visión.

Esta es la clase de configuración para almacenar la configuración de un VideoPrismClipModel. Se utiliza para instanciar un modelo Videoprism según los argumentos especificados, definiendo la arquitectura del modelo. Instanciar una configuración con los valores predeterminados producirá una configuración similar a la de google/videoprism-lvt-base-f16r288

Los objetos de configuración heredan de PreTrainedConfig y se pueden usar para controlar las salidas del modelo. Lea la documentación de PreTrainedConfig para obtener más información.

Ejemplo:

>>> from transformers import VideoPrismClipModel, VideoPrismConfig

>>> # Initializing a VideoPrismConfig with default values
>>> configuration = VideoPrismConfig()

>>> # Initializing a VideoPrismClipModel with the configuration
>>> model = VideoPrismClipModel(configuration)

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

VideoPrismTokenizer

clase transformers.VideoPrismTokenizer

< >

( vocab: str | list[tuple[str, float]] | None = Noneeos_token = '</s>'unk_token = '<unk>'pad_token = '<pad>'_spm_precompiled_charsmap = Noneextra_ids = 100additional_special_tokens = None**kwargs )

Construye un tokenizador VideoPrism, que es esencialmente un tokenizador T5 sin su posprocesador (que añade un token EOS al final de la secuencia).

Este tokenizador hereda de T5Tokenizer, que contiene la mayoría de los métodos principales. Los usuarios deben consultar esta superclase para obtener más información sobre dichos métodos.

get_sentinel_token_ids

< >

( )

Obtén los IDs de los tokens para los tokens centinela.

get_sentinel_tokens

< >

( )

Obtenga la lista de tokens centinela (tokens extra_id) de additional_special_tokens.

VideoPrismProcessor

clase transformers.VideoPrismProcessor

< >

( video_processor = Nonetokenizer = None )

Parámetros

  • video_processor (LlavaOnevisionVideoProcessor) — El procesador de video es una entrada obligatoria.
  • tokenizer (VideoPrismTokenizer) — El tokenizador es una entrada obligatoria.

Crea un VideoPrismProcessor que encapsula un procesador de video y un tokenizador en un único procesador.

VideoPrismProcessor ofrece todas las funcionalidades de LlavaOnevisionVideoProcessor y VideoPrismTokenizer. Consulte ~LlavaOnevisionVideoProcessor y ~VideoPrismTokenizer para obtener más información.

VideoPrismVisionModel

clase transformers.VideoPrismVisionModel

< >

( config: VideoPrismVisionConfig )

Parámetros

  • config (VideoPrismVisionConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.

El codificador de visión de VideoPrism sin ningún cabezal específico en la parte superior, que genera estados ocultos crudos. Este modelo es el codificador de base utilizado en VideoPrismVideoModel.

Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).

Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.

forward

< >

( pixel_values_videos: typing.Optional[torch.Tensor] = Noneinterpolate_pos_encoding: bool | None = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithSpatialAndTemporalStates or tuple(torch.Tensor)

Parámetros

  • pixel_values_videos (torch.Tensor de forma (batch_size, num_frames, num_channels, frame_size, frame_size), opcional) — Los tensores correspondientes al video de entrada. Los valores de píxel para videos se pueden obtener utilizando LlavaOnevisionVideoProcessor. Consulte LlavaOnevisionVideoProcessor.call() para más detalles (VideoPrismProcessor utiliza LlavaOnevisionVideoProcessor para procesar videos).
  • interpolate_pos_encoding (bool, opcional, valor predeterminado False) — Si se debe interpolar las codificaciones de posición preentrenadas.

Devuelve

BaseModelOutputWithSpatialAndTemporalStates o tuple(torch.Tensor)

Un BaseModelOutputWithSpatialAndTemporalStates o una tupla de torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios elementos según la configuración (VideoPrismConfig) y las entradas.

El método forward de VideoPrismVisionModel sobrescribe el método especial __call__.

Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de Module después en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.

  • last_hidden_state (torch.Tensor de forma (batch_size, sequence_length, hidden_size)) — Secuencia de estados ocultos en la salida de la última capa del modelo.

  • hidden_states (tuple(torch.Tensor), opcional, devuelto cuando se pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.Tensor (una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma (batch_size, sequence_length, hidden_size).

    Estados ocultos del modelo en la salida de cada capa más las salidas opcionales de la incrustación inicial.

  • attentions (tuple(torch.Tensor), opcional, se devuelve cuando se pasa output_attentions=True o cuando config.output_attentions=True) — Tupla de torch.Tensor (una por cada capa) de forma (batch_size, num_heads, sequence_length, sequence_length).

    Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.

  • last_temporal_hidden_state (torch.Tensor, opcional) — El último estado oculto del codificador temporal, típicamente de forma (batch_size * num_patches, num_frames, hidden_size).

  • last_spatial_hidden_state (torch.Tensor, opcional) — El último estado oculto del codificador espacial, típicamente de forma (batch_size * num_frames, num_patches, hidden_size).

Ejemplo:

VideoPrismVideoModel

clase transformers.VideoPrismVideoModel

< >

( config: VideoPrismVisionConfig )

Parámetros

  • config (VideoPrismVisionConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.

Modelo de video VideoPrism que consiste en el backbone del codificador de visión con capas auxiliares de codificador y una cabeza de pooling de atención en la parte superior. Este modelo se utiliza en VideoPrismClipModel.

Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).

Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.

forward

< >

( pixel_values_videos: Tensorinterpolate_pos_encoding: bool | None = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

Parámetros

Devuelve

BaseModelOutputWithPooling o tuple(torch.Tensor)

Un BaseModelOutputWithPooling o una tupla de torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios elementos según la configuración (VideoPrismConfig) y las entradas.

El método forward de VideoPrismVideoModel reemplaza el método especial __call__.

Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de Module después en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.

  • last_hidden_state (torch.Tensor de forma (batch_size, sequence_length, hidden_size)) — Secuencia de estados ocultos en la salida de la última capa del modelo.

  • pooler_output (torch.Tensor de forma (batch_size, hidden_size)) — Estado oculto de la última capa del primer token de la secuencia (token de clasificación) después de un procesamiento adicional a través de las capas utilizadas para la tarea de preentrenamiento auxiliar. Por ejemplo, para la familia de modelos BERT, esto devuelve el token de clasificación después de procesarlo a través de una capa lineal y una función de activación tanh. Los pesos de la capa lineal se entrenan a partir del objetivo de predicción de la siguiente oración (clasificación) durante el preentrenamiento.

  • hidden_states (tuple(torch.Tensor), opcional, devuelto cuando se pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.Tensor (una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma (batch_size, sequence_length, hidden_size).

    Estados ocultos del modelo en la salida de cada capa más las salidas opcionales de la incrustación inicial.

  • attentions (tuple(torch.Tensor), opcional, se devuelve cuando se pasa output_attentions=True o cuando config.output_attentions=True) — Tupla de torch.Tensor (una por cada capa) de forma (batch_size, num_heads, sequence_length, sequence_length).

    Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.

VideoPrismTextModel

clase transformers.VideoPrismTextModel

< >

( config: VideoPrismTextConfig )

Parámetros

  • config (VideoPrismTextConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.

El codificador de texto de VideoPrism sin ninguna cabeza específica en la parte superior, que genera los últimos estados ocultos. Este modelo se utiliza en VideoPrismClipModel.

Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).

Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

Parámetros

  • input_ids (torch.LongTensor de forma (batch_size, sequence_length), opcional) — Índices de los tokens de la secuencia de entrada en el vocabulario. El relleno se ignorará de forma predeterminada.

    Los índices se pueden obtener usando AutoTokenizer. Consulte PreTrainedTokenizer.encode() y PreTrainedTokenizer.call() para más detalles.

    ¿Qué son los IDs de entrada?

  • attention_mask (torch.Tensor de forma (batch_size, sequence_length), opcional) — Máscara para evitar realizar atención en los índices de tokens de relleno. Valores de máscara seleccionados en [0, 1]:
    • 1 para los tokens que no están enmascarados,
    • 0 para los tokens que están enmascarados.

    ¿Qué son las máscaras de atención?

  • inputs_embeds (torch.Tensor de forma (batch_size, sequence_length, hidden_size), opcional) — Opcionalmente, en lugar de pasar input_ids, puedes elegir pasar directamente una representación incrustada. Esto es útil si deseas tener más control sobre cómo convertir los índices de input_ids en los vectores asociados que en la matriz de búsqueda de incrustaciones interna del modelo.
  • position_ids (torch.Tensor de forma (batch_size, sequence_length), opcional) — Índices de las posiciones de los tokens de cada secuencia de entrada en los embeddings de posición. Seleccionados en el rango [0, config.n_positions - 1].

    ¿Qué son los IDs de posición?

Devuelve

BaseModelOutputWithPooling o tuple(torch.Tensor)

Un BaseModelOutputWithPooling o una tupla de torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios elementos según la configuración (VideoPrismConfig) y las entradas.

El método forward de VideoPrismTextModel reemplaza el método especial __call__.

Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de Module después en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.

  • last_hidden_state (torch.Tensor de forma (batch_size, sequence_length, hidden_size)) — Secuencia de estados ocultos en la salida de la última capa del modelo.

  • pooler_output (torch.Tensor de forma (batch_size, hidden_size)) — Estado oculto de la última capa del primer token de la secuencia (token de clasificación) después de un procesamiento adicional a través de las capas utilizadas para la tarea de preentrenamiento auxiliar. Por ejemplo, para la familia de modelos BERT, esto devuelve el token de clasificación después de procesarlo a través de una capa lineal y una función de activación tanh. Los pesos de la capa lineal se entrenan a partir del objetivo de predicción de la siguiente oración (clasificación) durante el preentrenamiento.

  • hidden_states (tuple(torch.Tensor), opcional, devuelto cuando se pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.Tensor (una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma (batch_size, sequence_length, hidden_size).

    Estados ocultos del modelo en la salida de cada capa más las salidas opcionales de la incrustación inicial.

  • attentions (tuple(torch.Tensor), opcional, se devuelve cuando se pasa output_attentions=True o cuando config.output_attentions=True) — Tupla de torch.Tensor (una por cada capa) de forma (batch_size, num_heads, sequence_length, sequence_length).

    Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.

VideoPrismClipModel

clase transformers.VideoPrismClipModel

< >

( config: VideoPrismConfig )

Parámetros

  • config (VideoPrismConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.

Modelo VideoPrism para el aprendizaje contrastivo de video y texto. Este modelo consta de un VideoPrismVideoModel y un VideoPrismTextModel, y calcula puntuaciones de similitud entre las entradas de video y texto.

Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).

Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.

forward

< >

( pixel_values_videos: Tensorinput_ids: Tensorattention_mask: typing.Optional[torch.Tensor] = Noneinterpolate_pos_encoding: bool | None = Falsetemperature: float | None = Nonereturn_loss: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → VideoPrismClipOutput or tuple(torch.Tensor)

Parámetros

  • pixel_values_videos (torch.Tensor de forma (batch_size, num_frames, num_channels, frame_size, frame_size)) — Los tensores correspondientes al video de entrada. Los valores de píxel para videos se pueden obtener utilizando LlavaOnevisionVideoProcessor. Consulte LlavaOnevisionVideoProcessor.call() para más detalles (VideoPrismProcessor utiliza LlavaOnevisionVideoProcessor para procesar videos).
  • input_ids (torch.Tensor de forma (batch_size, sequence_length)) — Índices de los tokens de la secuencia de entrada en el vocabulario. El relleno se ignorará de forma predeterminada.

    Los índices se pueden obtener usando AutoTokenizer. Consulte PreTrainedTokenizer.encode() y PreTrainedTokenizer.call() para más detalles.

    ¿Qué son los IDs de entrada?

  • attention_mask (torch.Tensor de forma (batch_size, sequence_length), opcional) — Máscara para evitar realizar atención en los índices de tokens de relleno. Valores de máscara seleccionados en [0, 1]:
    • 1 para los tokens que no están enmascarados,
    • 0 para los tokens que están enmascarados.

    ¿Qué son las máscaras de atención?

  • interpolate_pos_encoding (bool, opcional, valor predeterminado False) — Si se debe interpolar las codificaciones de posición preentrenadas.
  • temperature (float, opcional) — Un escalar de temperatura para escalar las puntuaciones de similitud. Si no se proporciona, no se aplica ningún escalado.
  • return_loss (bool, opcional) — Indica si se debe devolver la pérdida contrastiva.

Devuelve

VideoPrismClipOutput o tuple(torch.Tensor)

Un VideoPrismClipOutput o una tupla de torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios elementos según la configuración (VideoPrismConfig) y las entradas.

El método forward de VideoPrismClipModel reemplaza el método especial __call__.

Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de Module después en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.

  • logits_per_video (torch.Tensor de forma (video_batch_size, text_batch_size)) — Las puntuaciones de producto punto escalado entre video_embeds y text_embeds. Esto representa las puntuaciones de similitud entre video y texto.
  • logits_per_text (torch.Tensor de forma (text_batch_size, video_batch_size)) — Las puntuaciones de producto punto escalado entre text_embeds y video_embeds. Esto representa las puntuaciones de similitud texto-vídeo.
  • video_embeds (torch.Tensor de forma (batch_size, output_dim)) — Las incrustaciones de vídeo obtenidas al aplicar la capa de proyección a la salida agrupada de VideoPrismVideoModel.
  • text_embeds (torch.Tensor de forma (batch_size, output_dim)) — Las incrustaciones de texto obtenidas al aplicar la capa de proyección a la salida agrupada de VideoPrismTextModel.
  • video_model_output (~modeling_outputs.BaseModelOutputWithPooling, opcional) — La salida de VideoPrismVideoModel.
  • text_model_output (~modeling_outputs.BaseModelOutputWithPooling, opcional) — La salida del VideoPrismTextModel.
  • loss (torch.Tensor de forma (1,), opcional, devuelto cuando return_loss es True) — Pérdida contrastiva para la similitud entre video y texto.

Ejemplo:

VideoPrismForVideoClassification

clase transformers.VideoPrismForVideoClassification

< >

( config: VideoPrismVisionConfig )

Parámetros

  • config (VideoPrismVisionConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.

Modelo transformer de VideoPrism con una cabeza de clasificación de video en la parte superior (una capa lineal sobre el pooler de atención).

Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).

Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.

forward

< >

( pixel_values_videos: Tensorlabels: typing.Optional[torch.LongTensor] = Noneinterpolate_pos_encoding: bool | None = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ImageClassifierOutput or tuple(torch.Tensor)

Parámetros

  • pixel_values_videos (torch.Tensor de forma (batch_size, num_frames, num_channels, frame_size, frame_size)) — Los tensores correspondientes al video de entrada. Los valores de píxel para videos se pueden obtener utilizando LlavaOnevisionVideoProcessor. Consulte LlavaOnevisionVideoProcessor.call() para más detalles (VideoPrismProcessor utiliza LlavaOnevisionVideoProcessor para procesar videos).
  • labels (torch.LongTensor de forma (batch_size,), opcional) — Etiquetas para calcular la pérdida de clasificación/regresión de imágenes. Los índices deben estar en [0, ..., config.num_labels - 1]. Si config.num_labels == 1 se calcula una pérdida de regresión (pérdida de error cuadrático medio), si config.num_labels > 1 se calcula una pérdida de clasificación (entropía cruzada).
  • interpolate_pos_encoding (bool, opcional, valor predeterminado False) — Si se debe interpolar las codificaciones de posición preentrenadas.

Devuelve

ImageClassifierOutput o tuple(torch.Tensor)

Un ImageClassifierOutput o una tupla de torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios elementos según la configuración (VideoPrismConfig) y las entradas.

El método forward de VideoPrismForVideoClassification reemplaza el método especial __call__.

Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de Module después en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.

  • loss (torch.Tensor de forma (1,), opcional, se devuelve cuando se proporciona labels) — Pérdida de clasificación (o de regresión si config.num_labels==1).

  • logits (torch.Tensor de forma (batch_size, config.num_labels)) — Puntuaciones de clasificación (o de regresión si config.num_labels==1) (antes de SoftMax).

  • hidden_states (tuple(torch.Tensor), opcional, devuelto cuando se pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.Tensor (una para la salida de las incrustaciones, si el modelo tiene una capa de incrustación, + una para la salida de cada etapa) de forma (batch_size, sequence_length, hidden_size). Estados ocultos (también llamados mapas de características) del modelo en la salida de cada etapa.

  • attentions (tuple(torch.Tensor), opcional, se devuelve cuando se pasa output_attentions=True o cuando config.output_attentions=True) — Tupla de torch.Tensor (una por cada capa) de forma (batch_size, num_heads, patch_size, sequence_length).

    Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.

Ejemplo:

Update on GitHub