Transformers documentation
VideoPrism
Este modelo se publicó en HF papers el 2024-02-20 y se contribuyó a Hugging Face Transformers el 2026-06-19.
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.

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.VideoPrismConfigdebe 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.VideoPrismVisionConfigdebe usarse con este modelo. - El codificador de visión se puede usar de forma independiente mediante
VideoPrismVisionModelpara extraer características de video.VideoPrismVisionConfigdebe 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
< source >( 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 predeterminado288) — 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 predeterminado3) — El número de canales de entrada. - hidden_size (
int, opcional, valor predeterminado768) — Dimensión de las representaciones ocultas. - num_attention_heads (
int, opcional, valor predeterminado12) — Número de cabezas de atención para cada capa de atención en el decodificador Transformer. - intermediate_size (
int, opcional, valor predeterminado3072) — Dimensión de las representaciones del MLP. - hidden_act (
str, opcional, valor predeterminadogelu_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 predeterminado0.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 predeterminado0.0) — La proporción de dropout para las probabilidades de atención. - initializer_range (
float, opcional, valor predeterminado0.02) — La desviación estándar del truncated_normal_initializer para inicializar todas las matrices de pesos. - layer_norm_eps (
float, opcional, valor predeterminado1e-06) — La epsilon utilizada por las capas de normalización de capa. - qkv_bias (
bool, opcional, valor predeterminadoTrue) — 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 predeterminadoTrue) — 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
< source >( 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 predeterminado32000) — Tamaño del vocabulario del modelo. Define el número de tokens diferentes que pueden representarse medianteinput_ids. - hidden_size (
int, opcional, valor predeterminado768) — Dimensión de las representaciones ocultas. - intermediate_size (
int, opcional, valor predeterminado3072) — Dimensión de las representaciones del MLP. - num_hidden_layers (
int, opcional, valor predeterminado12) — Número de capas ocultas en el decodificador del Transformer. - num_attention_heads (
int, opcional, valor predeterminado12) — Número de cabezas de atención para cada capa de atención en el decodificador Transformer. - max_position_embeddings (
int, opcional, valor predeterminado64) — La longitud máxima de secuencia con la que se podría utilizar este modelo. - hidden_act (
str, opcional, valor predeterminadorelu) — 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 predeterminado1e-06) — La epsilon utilizada por las capas de normalización de capa. - pad_token_id (
int, opcional, valor predeterminado0) — 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 predeterminado0.0) — La proporción de dropout para las probabilidades de atención. - apply_l2norm (
bool, opcional, valor predeterminadoTrue) — Indica si se debe aplicar la normalización L2 a la salida de VideoPrismTextEncoder. - qkv_bias (
bool, opcional, valor predeterminadoTrue) — Si se debe añadir un sesgo a las consultas, claves y valores. - hidden_dropout_prob (
float, opcional, valor predeterminado0.0) — La probabilidad de dropout para todas las capas totalmente conectadas en las incrustaciones, el codificador y el pooler. - initializer_range (
float, opcional, valor predeterminado0.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
< source >( 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
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.configVideoPrismTokenizer
clase transformers.VideoPrismTokenizer
< source >( 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.
Obtén los IDs de los tokens para los tokens centinela.
Obtenga la lista de tokens centinela (tokens extra_id) de additional_special_tokens.
VideoPrismProcessor
clase transformers.VideoPrismProcessor
< source >( video_processor = Nonetokenizer = None )
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
< source >( 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
< source >( 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.Tensorde 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 predeterminadoFalse) — 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
Moduledespué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.Tensorde 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 pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.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 pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.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).
VideoPrismVideoModel
clase transformers.VideoPrismVideoModel
< source >( 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
< source >( pixel_values_videos: Tensorinterpolate_pos_encoding: bool | None = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
Parámetros
- pixel_values_videos (
torch.Tensorde 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). - interpolate_pos_encoding (
bool, opcional, valor predeterminadoFalse) — Si se debe interpolar las codificaciones de posición preentrenadas.
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
Moduledespué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.Tensorde forma(batch_size, sequence_length, hidden_size)) — Secuencia de estados ocultos en la salida de la última capa del modelo.pooler_output (
torch.Tensorde 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 pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.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 pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.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
< source >( 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
< source >( 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.LongTensorde 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.
- attention_mask (
torch.Tensorde 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.
- inputs_embeds (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Opcionalmente, en lugar de pasarinput_ids, puedes elegir pasar directamente una representación incrustada. Esto es útil si deseas tener más control sobre cómo convertir los índices deinput_idsen los vectores asociados que en la matriz de búsqueda de incrustaciones interna del modelo. - position_ids (
torch.Tensorde 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].
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
Moduledespué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.Tensorde forma(batch_size, sequence_length, hidden_size)) — Secuencia de estados ocultos en la salida de la última capa del modelo.pooler_output (
torch.Tensorde 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 pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.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 pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.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
< source >( 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
< source >( 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.Tensorde 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.Tensorde 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.
- attention_mask (
torch.Tensorde 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.
- interpolate_pos_encoding (
bool, opcional, valor predeterminadoFalse) — 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
Moduledespué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.Tensorde forma(video_batch_size, text_batch_size)) — Las puntuaciones de producto punto escalado entrevideo_embedsytext_embeds. Esto representa las puntuaciones de similitud entre video y texto. - logits_per_text (
torch.Tensorde forma(text_batch_size, video_batch_size)) — Las puntuaciones de producto punto escalado entretext_embedsyvideo_embeds. Esto representa las puntuaciones de similitud texto-vídeo. - video_embeds (
torch.Tensorde 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.Tensorde 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.Tensorde forma(1,), opcional, devuelto cuandoreturn_lossesTrue) — Pérdida contrastiva para la similitud entre video y texto.
VideoPrismForVideoClassification
clase transformers.VideoPrismForVideoClassification
< source >( 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
< source >( 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.Tensorde 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.LongTensorde 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]. Siconfig.num_labels == 1se calcula una pérdida de regresión (pérdida de error cuadrático medio), siconfig.num_labels > 1se calcula una pérdida de clasificación (entropía cruzada). - interpolate_pos_encoding (
bool, opcional, valor predeterminadoFalse) — 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
Moduledespué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.Tensorde forma(1,), opcional, se devuelve cuando se proporcionalabels) — Pérdida de clasificación (o de regresión si config.num_labels==1).logits (
torch.Tensorde 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 pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.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 pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.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.