Transformers documentation
VideoPrism
このモデルは2024年2月20日にHF papersで公開され、2026年6月19日にHugging Face Transformersに貢献されました。
VideoPrism
VideoPrismモデルは、Google DeepMindによる論文VideoPrism: A Foundational Visual Encoder for Video Understanding(ブログ記事)で提案されました。
VideoPrismは、凍結された単一のモデルで多様な動画理解タスクに対応する汎用動画エンコーダーです。このモデルは、3600万組の高品質な動画キャプションペアと、ノイジーな並列テキスト(例:ASR文字起こし)を伴う5億8200万本の動画クリップを含む大規模な異種コーパスで事前学習されています。事前学習のアプローチは、意味的な動画埋め込みのグローバル・ローカル蒸留とトークンシャッフル方式によってマスクオートエンコーディングを改善し、動画に関連するテキストを活用しながらも、モデルが主に動画モダリティに集中できるようにします。VideoPrismは、ウェブ動画の質問応答から科学のためのコンピュータビジョンまで、4つの広範なタスクグループにまたがる33の動画理解ベンチマークのうち31で、最先端の性能を達成しています。

すべてのオリジナルのVideoPrismチェックポイントは、VideoPrismコレクション内で確認できます。
注:
- VideoPrism は、因子化された時空間エンコーダーアーキテクチャを使用し、空間トランスフォーマーと時間トランスフォーマーをそれぞれ独立して用いて動画を処理します。
- このモデルは、
VideoPrismClipModelによって動画とテキストの対照的学習をサポートしています。このモデルは、動画エンコーダーとテキストエンコーダーを組み合わせます。VideoPrismConfigをこのモデルと併せて使用する必要があります。 - 動画分類タスクには、動画エンコーダーの上に分類ヘッドを追加する
VideoPrismForVideoClassificationを使用します。このモデルにはVideoPrismVisionConfigを使用する必要があります。 - ビジョンエンコーダーは、
VideoPrismVisionModelを単体で使用することで、動画特徴量の抽出に利用できます。このモデルにはVideoPrismVisionConfigを使用する必要があります。 - ベースモデルのデフォルト入力解像度は288x288ピクセルで、1クリップあたりのフレーム数は16フレーム、大型モデルでは8フレームです。カスタム解像度と1クリップあたりのフレーム数でモデルを使用するには、interpolate_pos_encoding=Trueを設定してください。
このモデルは MHRDYN7 によって提供され、vasqu および zucchini-nlp によってレビューされました。 元のコードは こちら で確認できます。
使用例
以下のスニペットは、AutoModel クラスを使用して VideoPrismVisionModel を特徴抽出用にロードする方法を示しています。
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
クラス 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 )
パラメータ
- image_size (
Union[int, list[int], tuple[int, int]]、任意、デフォルトは288) — 各画像のサイズ(解像度)。 - num_frames (
int、任意、デフォルトは 16)— 入力動画のフレーム数です。 - tubelet_size (
List[int]、任意、デフォルトは[1, 18, 18]) — チューレットパッチのサイズです。 - num_channels (
int、任意、デフォルトは3) — 入力チャネル数。 - hidden_size (
int、任意、デフォルトは768) — 隠れ表現の次元数。 - num_attention_heads (
int、任意、デフォルトは12) — Transformerデコーダーの各アテンション層におけるアテンションヘッドの数。 - intermediate_size (
int、任意、デフォルトは3072) — MLP 表現の次元数。 - hidden_act (
str、任意、デフォルトはgelu_python) — デコーダーで使用する非線形活性化関数(関数または文字列)です。例えば、"gelu"、"relu"、"silu"などです。 - hidden_dropout_prob (
Union[float, int]、任意、デフォルト値は0.0) — embeddings、encoder、pooler 内のすべての全結合層における dropout 確率です。 - attention_probs_dropout_prob (
Union[float, int]、任意、デフォルトは0.0) — アテンション確率のドロップアウト率です。 - initializer_range (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。 - layer_norm_eps (
float、任意、デフォルトは1e-06) — レイヤーノーマル層で使用する epsilon です。 - qkv_bias (
bool、省略可、デフォルトはTrue) — クエリ、キー、バリューにバイアスを追加するかどうか。 - num_spatial_layers (
int、任意、デフォルト値は 12)— 空間トランスフォーマーブロックの数です。 - num_temporal_layers (
int、省略可能、デフォルト値は 4) — 時間方向の Transformer ブロックの数。 - attn_logit_softcapping (
float、任意、デフォルト値は 50.0) — アテンション logits の softcapping 定数です。 - num_auxiliary_layers (
int、任意、デフォルト値は 2)— 補助レイヤーの数です。これは、VideoPrismClipModel の一部である VideoPrismVideoModel で使用されます。 - apply_l2norm (
bool、省略可、デフォルトはTrue) — 出力に L2 正規化を適用するかどうか。VideoPrismClipModel の一部である VideoPrismVideoModel で使用されます。
これは VideoPrismClipModel の設定を保存するための設定クラスです。指定された引数に基づいて Videoprism モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、google/videoprism-base-f16r288 と同様の設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
VideoPrismTextConfig
class 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 )
パラメータ
- vocab_size (
int、任意、デフォルトは32000) — モデルの語彙サイズです。input_idsで表現できるトークンの種類数を定義します。 - hidden_size (
int、任意、デフォルトは768) — 隠れ表現の次元数。 - intermediate_size (
int、任意、デフォルトは3072) — MLP 表現の次元数。 - num_hidden_layers (
int、任意、デフォルトは12) — Transformer デコーダーの隠れ層の数。 - num_attention_heads (
int、任意、デフォルトは12) — Transformerデコーダーの各アテンション層におけるアテンションヘッドの数。 - max_position_embeddings (
int、任意、デフォルトは64) — このモデルが使用される可能性のある最大シーケンス長です。 - hidden_act (
str、任意、デフォルトはrelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu"など。 - layer_norm_eps (
float、任意、デフォルトは1e-06) — レイヤーノーマル層で使用する epsilon です。 - pad_token_id (
int、任意、デフォルトは0) — 語彙内でパディングに使用されるトークン ID。 - bos_token_id (
int, 省略可) — 語彙におけるストリーム開始に使用されるトークン ID。 - eos_token_id (
Union[int, list[int]], 省略可) — 語彙内でストリーム終了に使用されるトークン ID。 - attention_probs_dropout_prob (
Union[float, int]、任意、デフォルトは0.0) — アテンション確率のドロップアウト率です。 - apply_l2norm (
bool、任意、デフォルトはTrue) — VideoPrismTextEncoder の出力に L2 正規化を適用するかどうかを指定します。 - qkv_bias (
bool、省略可、デフォルトはTrue) — クエリ、キー、バリューにバイアスを追加するかどうか。 - hidden_dropout_prob (
float、任意、デフォルト値は0.0) — embeddings、encoder、pooler 内のすべての全結合層における dropout の確率。 - initializer_range (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。 - attn_logit_softcapping (
float、任意、デフォルト値は 50.0) — アテンション logits の softcapping 定数です。
これはVideoPrismClipModelの設定を保存するための設定クラスです。指定された引数に基づいてVideoprismモデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、google/videoprism-lvt-base-f16r288と類似した設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
VideoPrismConfig
クラス 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 )
これはVideoPrismClipModelの設定を保存するための設定クラスです。指定された引数に基づいてVideoprismモデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、google/videoprism-lvt-base-f16r288と類似した設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
例:
>>> 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
class 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 )
VideoPrismのトークナイザーを構築します。これは実質的に、シーケンスの末尾にEOSトークンを付加するpostprocessorを備えないT5のトークナイザーです。
このトークナイザーは、T5Tokenizerを継承しており、主要なメソッドのほとんどが含まれています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。
センチネルトークンのトークンIDを取得します。
additional_special_tokens から、sentinel トークン(extra_id トークン)のリストを取得します。
VideoPrismProcessor
class transformers.VideoPrismProcessor
< source >( video_processor = Nonetokenizer = None )
を構築します。このクラスは、ビデオプロセッサーとトークナイザーを単一のプロセッサーとしてラップします。
VideoPrismProcessor は、LlavaOnevisionVideoProcessor と VideoPrismTokenizer のすべての機能を提供します。詳細については、~LlavaOnevisionVideoProcessor および ~VideoPrismTokenizer を参照してください。
VideoPrismVisionModel
class transformers.VideoPrismVisionModel
< source >( config: VideoPrismVisionConfig )
パラメータ
- config (VideoPrismVisionConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
VideoPrismのビジョンエンコーダー本体で、特定のヘッドを付加せずに生の隠れ状態を出力します。このモデルは、VideoPrismVideoModelで使用されるバックボーンエンコーダーです。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( pixel_values_videos: typing.Optional[torch.FloatTensor] = Noneinterpolate_pos_encoding: bool | None = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithSpatialAndTemporalStates or tuple(torch.FloatTensor)
パラメータ
- pixel_values_videos (
torch.FloatTensor、形状(batch_size, num_frames, num_channels, frame_size, frame_size)、任意) — 入力動画に対応するテンソルです。動画のピクセル値は、LlavaOnevisionVideoProcessor を使用して取得できます。詳細については、LlavaOnevisionVideoProcessor.call() を参照してください(VideoPrismProcessor は、動画の処理に LlavaOnevisionVideoProcessor を使用します)。 - interpolate_pos_encoding (
bool、省略可、デフォルトはFalse) — 事前学習済みの位置エンコーディングを補間するかどうかを指定します。
戻り値
BaseModelOutputWithSpatialAndTemporalStates または tuple(torch.FloatTensor)
BaseModelOutputWithSpatialAndTemporalStates、またはtorch.FloatTensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(VideoPrismConfig)と入力に応じて、さまざまな要素で構成されます。
VideoPrismVisionModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.FloatTensor、shape(batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます)—torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます)—torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
last_temporal_hidden_state (
torch.FloatTensor、任意) — 時間エンコーダーの最後の隠れ状態です。通常、形状は(batch_size * num_patches, num_frames, hidden_size)です。last_spatial_hidden_state (
torch.FloatTensor、任意) — 空間エンコーダーの最後の隠れ状態です。通常、形状は(batch_size * num_frames, num_patches, hidden_size)です。
VideoPrismVideoModel
クラス transformers.VideoPrismVideoModel
< source >( config: VideoPrismVisionConfig )
パラメータ
- config (VideoPrismVisionConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
VideoPrismのビジョンモデルです。ビジョンエンコーダーのバックボーンに補助エンコーダー層を備え、その上にアテンションプーリングヘッドを備えています。このモデルはVideoPrismClipModelで使用されます。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( pixel_values_videos: FloatTensorinterpolate_pos_encoding: bool | None = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.FloatTensor)
パラメータ
- pixel_values_videos (
torch.FloatTensor、shape(batch_size, num_frames, num_channels, frame_size, frame_size)) — 入力動画に対応するテンソルです。動画のピクセル値は、LlavaOnevisionVideoProcessor を使用して取得できます。詳細については、LlavaOnevisionVideoProcessor.call() を参照してください(VideoPrismProcessor は、動画の処理に LlavaOnevisionVideoProcessor を使用しています)。 - interpolate_pos_encoding (
bool、省略可、デフォルトはFalse) — 事前学習済みの位置エンコーディングを補間するかどうかを指定します。
戻り値
BaseModelOutputWithPooling または tuple(torch.FloatTensor)
torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)、または BaseModelOutputWithPooling。設定(VideoPrismConfig)や入力に応じて、さまざまな要素で構成されます。
VideoPrismVideoModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.FloatTensor、shape(batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。pooler_output (
torch.FloatTensor、shape(batch_size, hidden_size)) — 補助事前学習タスクに使用される層をさらに通して処理された後、シーケンスの最初のトークン(分類トークン)の最終層の隠れ状態。例えば、BERT 系のモデルでは、線形層と tanh 活性化関数を経て処理された後の分類トークンを返します。この線形層の重みは、事前学習中の次文予測(分類)目的から学習されます。hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます)—torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます)—torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
VideoPrismTextModel
クラス transformers.VideoPrismTextModel
< source >( config: VideoPrismTextConfig )
パラメータ
- config (VideoPrismTextConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
VideoPrismのテキストエンコーダーの本体で、上部に特定のヘッドを持たず、最後の隠れ状態を出力します。このモデルはVideoPrismClipModelで使用されます。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
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.FloatTensor)
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- attention_mask (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。[0, 1]:- マスクされていないトークンに対して1
- マスクされたトークンに対しては 0 です。
- inputs_embeds (
torch.Tensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - position_ids (
torch.Tensorの形状(batch_size, sequence_length), 、省略可) — 位置埋め込みにおける各入力シーケンスのトークンの位置のインデックス。範囲[0, config.n_positions - 1].
戻り値
BaseModelOutputWithPooling または tuple(torch.FloatTensor)
torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)、または BaseModelOutputWithPooling。設定(VideoPrismConfig)や入力に応じて、さまざまな要素で構成されます。
VideoPrismTextModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.FloatTensor、shape(batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。pooler_output (
torch.FloatTensor、shape(batch_size, hidden_size)) — 補助事前学習タスクに使用される層をさらに通して処理された後、シーケンスの最初のトークン(分類トークン)の最終層の隠れ状態。例えば、BERT 系のモデルでは、線形層と tanh 活性化関数を経て処理された後の分類トークンを返します。この線形層の重みは、事前学習中の次文予測(分類)目的から学習されます。hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます)—torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます)—torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
VideoPrismClipModel
class transformers.VideoPrismClipModel
< source >( config: VideoPrismConfig )
パラメータ
- config (VideoPrismConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
VideoPrismは、動画とテキストの対照的学習用のモデルです。このモデルはVideoPrismVideoModelとVideoPrismTextModelで構成され、動画入力とテキスト入力の間の類似度スコアを計算します。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( pixel_values_videos: FloatTensorinput_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.FloatTensor)
パラメータ
- pixel_values_videos (
torch.FloatTensor、shape(batch_size, num_frames, num_channels, frame_size, frame_size)) — 入力動画に対応するテンソルです。動画のピクセル値は、LlavaOnevisionVideoProcessor を使用して取得できます。詳細については、LlavaOnevisionVideoProcessor.call() を参照してください(VideoPrismProcessor は、動画の処理に LlavaOnevisionVideoProcessor を使用しています)。 - input_ids (
torch.Tensorの形状(batch_size, sequence_length)) — 語彙における入力シーケンスのトークンインデックスです。デフォルトでは、パディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- attention_mask (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。[0, 1]:- マスクされていないトークンに対して1
- マスクされたトークンに対しては 0 です。
- interpolate_pos_encoding (
bool、省略可、デフォルトはFalse) — 事前学習済みの位置エンコーディングを補間するかどうかを指定します。 - temperature (
float, 任意) — 類似度スコアをスケーリングするための温度スカラーです。指定しない場合、スケーリングは行われません。 - return_loss (
bool、任意) — 対比損失を返すかどうかを指定します。
戻り値
VideoPrismClipOutput または tuple(torch.FloatTensor)
VideoPrismClipOutput、またはtorch.FloatTensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(VideoPrismConfig)と入力に応じて、さまざまな要素で構成されます。
VideoPrismClipModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
- logits_per_video (
torch.FloatTensor、shape(video_batch_size, text_batch_size)) —video_embedsとtext_embeds間のスケーリングされたドット積スコアです。これは動画とテキストの類似度スコアを表します。 - logits_per_text (
torch.FloatTensor、shape(text_batch_size, video_batch_size)) —text_embedsとvideo_embeds間のスケーリングされたドット積スコアです。これはテキストと動画の類似度スコアを表します。 - video_embeds (
torch.FloatTensor、shape(batch_size, output_dim)) — VideoPrismVideoModelのプーリング済み出力に投影層を適用して得られた動画埋め込みです。 - text_embeds (
torch.FloatTensor、shape(batch_size, output_dim)) — VideoPrismTextModelのプーリング出力に投影層を適用して得られるテキスト埋め込み。 - video_model_output (
~modeling_outputs.BaseModelOutputWithPooling、任意) — VideoPrismVideoModel の出力です。 - text_model_output (
~modeling_outputs.BaseModelOutputWithPooling、任意) — VideoPrismTextModel の出力です。 - loss (
torch.FloatTensor、shape(1,)、optional、return_lossがTrueの場合のみ返されます)— 動画とテキストの類似度に対する対比損失。
VideoPrismForVideoClassification
クラス transformers.VideoPrismForVideoClassification
< source >( config: VideoPrismVisionConfig )
パラメータ
- config (VideoPrismVisionConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
VideoPrism Model は、アテンションプーラーの上に線形層を配置した動画分類ヘッドを備えた transformer です。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( pixel_values_videos: FloatTensorlabels: typing.Optional[torch.LongTensor] = Noneinterpolate_pos_encoding: bool | None = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ImageClassifierOutput or tuple(torch.FloatTensor)
パラメータ
- pixel_values_videos (
torch.FloatTensor、shape(batch_size, num_frames, num_channels, frame_size, frame_size)) — 入力動画に対応するテンソルです。動画のピクセル値は、LlavaOnevisionVideoProcessor を使用して取得できます。詳細については、LlavaOnevisionVideoProcessor.call() を参照してください(VideoPrismProcessor は、動画の処理に LlavaOnevisionVideoProcessor を使用しています)。 - labels (
torch.LongTensor、shape(batch_size,)、任意) — 画像分類/回帰の損失を計算するためのラベル。インデックスは[0, ..., config.num_labels - 1]の範囲である必要があります。config.num_labels == 1の場合は回帰損失(平均二乗誤差)が計算され、config.num_labels > 1の場合は分類損失(クロスエントロピー)が計算されます。 - interpolate_pos_encoding (
bool、省略可、デフォルトはFalse) — 事前学習済みの位置エンコーディングを補間するかどうかを指定します。
戻り値
ImageClassifierOutput または tuple(torch.FloatTensor)
torch.FloatTensor のタプル、または ImageClassifierOutput(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(VideoPrismConfig)や入力に応じて、さまざまな要素で構成されます。
VideoPrismForVideoClassificationのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
torch.FloatTensor、shape(1,)、optional、labelsが指定された場合に返されます) — 分類損失(config.num_labels==1 の場合は回帰損失)。logits (
torch.FloatTensor、shape(batch_size, config.num_labels)) — SoftMax 適用前の分類スコア(config.num_labels==1 の場合は回帰スコア)。hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます) —torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力用が 1 つ、各ステージの出力用がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各ステージの出力におけるモデルの隠れ状態(特徴マップとも呼ばれます)。attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます)—torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, patch_size, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。