Transformers documentation
VideoPrism
이 모델은 2024-02-20에 HF papers에 게시되었으며, 2026-06-19에 Hugging Face Transformers에 기여되었습니다.
VideoPrism
VideoPrism 모델은 Google DeepMind의 논문 VideoPrism: A Foundational Visual Encoder for Video Understanding(블로그 포스트)에서 제안되었습니다.
VideoPrism은 단일 고정(frozen) 모델로 다양한 영상 이해 작업을 처리하는 범용 영상 인코더입니다. 이 모델은 3,600만 개의 고품질 영상-캡션 쌍과 노이즈가 있는 병렬 텍스트(예: ASR 전사본)가 포함된 5억 8,200만 개의 영상 클립으로 구성된 대규모 이질적 코퍼스에서 사전 학습되었습니다. 사전 학습 방식은 의미론적 영상 임베딩의 전역-로컬 증류(global-local distillation)와 토큰 셔플링(token shuffling) 스킴을 통해 마스크 오토인코딩(masked autoencoding)을 개선하여, 모델이 텍스트와 연관된 정보를 활용하면서 주로 영상 모달리티에 집중할 수 있도록 합니다. VideoPrism은 웹 영상 질의응답부터 과학을 위한 컴퓨터 비전까지 네 가지 광범위한 작업 그룹에 걸친 33개의 영상 이해 벤치마크 중 31개에서 최첨단(state-of-the-art) 성능을 달성했습니다.

모든 원본 VideoPrism 체크포인트는 VideoPrism 컬렉션에서 찾을 수 있습니다.
참고:
- VideoPrism은 인자화된 공간-시간 인코더 아키텍처를 사용하며, 영상을 별도의 공간 트랜스포머와 시간 트랜스포머를 통해 처리합니다.
VideoPrismClipModel을 통해 모델은 비디오 인코더와 텍스트 인코더를 결합하여 비디오-텍스트 대비 학습을 지원합니다. 이 모델에는VideoPrismConfig를 사용해야 합니다.- 비디오 분류 작업에는 비디오 인코더 위에 분류 헤드를 추가하는
VideoPrismForVideoClassification를 사용합니다. 이 모델에는VideoPrismVisionConfig를 반드시 사용해야 합니다. - 비전 인코더는
VideoPrismVisionModel을 통해 단독으로 사용되어 비디오 특징을 추출할 수 있습니다. 이 모델에는VideoPrismVisionConfig를 사용해야 합니다. - 기본 모델의 기본 입력 해상도는 288x288 픽셀이며, 비디오 클립당 프레임 수는 기본 모델의 경우 16개, 대형 모델의 경우 8개입니다. 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
class 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 decoder의 각 attention layer에 사용할 attention head의 수입니다. - intermediate_size (
int, 선택 사항, 기본값3072) — MLP 표현의 차원입니다. - hidden_act (
str, 선택 사항, 기본값gelu_python) — 디코더에서 사용되는 비선형 활성화 함수(함수 또는 문자열)입니다. 예를 들어,"gelu","relu","silu"등이 있습니다. - hidden_dropout_prob (
Union[float, int], 선택 사항, 기본값0.0) — 임베딩, 인코더, 풀러의 모든 완전 연결 계층에 적용되는 드롭아웃 확률입니다. - attention_probs_dropout_prob (
Union[float, int], 선택 사항, 기본값0.0) — Attention 확률에 적용할 dropout 비율입니다. - initializer_range (
float, 선택 사항, 기본값0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다. - layer_norm_eps (
float, 선택 사항, 기본값1e-06) — 레이어 정규화 레이어에서 사용되는 epsilon 값입니다. - qkv_bias (
bool, 선택 사항, 기본값True) — 쿼리, 키, 값에 bias를 추가할지 여부. - num_spatial_layers (
int, 선택 사항, 기본값 12) — 공간 변환 블록의 수입니다. - num_temporal_layers (
int, 선택 사항, 기본값 4) — 시간적 transformer 블록의 수입니다. - attn_logit_softcapping (
float, 선택 사항, 기본값 50.0) — attention logits에 적용되는 softcapping 상수입니다. - num_auxiliary_layers (
int, 선택 사항, 기본값 2) — 보조 레이어의 수입니다. VideoPrismClipModel의 일부인 VideoPrismVideoModel에서 사용됩니다. - apply_l2norm (
bool, 선택 사항, 기본값True) — 출력에 L2 정규화를 적용할지 여부입니다. VideoPrismClipModel의 일부인 VideoPrismVideoModel에서 사용됩니다.
이것은 VideoPrismClipModel의 구성을 저장하기 위한 구성 클래스입니다. 지정된 인자에 따라 Videoprism 모델을 초기화하여 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 구성을 초기화하면 google/videoprism-base-f16r288와 유사한 구성이 생성됩니다.
Configuration 객체는 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 decoder의 각 attention layer에 사용할 attention head의 수입니다. - 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) — Attention 확률에 적용할 dropout 비율입니다. - apply_l2norm (
bool, 선택 사항, 기본값True) — VideoPrismTextEncoder의 출력에 L2 정규화를 적용할지 여부입니다. - qkv_bias (
bool, 선택 사항, 기본값True) — 쿼리, 키, 값에 bias를 추가할지 여부. - hidden_dropout_prob (
float, 선택 사항, 기본값0.0) — 임베딩, 인코더, 풀러의 모든 완전 연결 계층에 적용되는 dropout 확률입니다. - initializer_range (
float, 선택 사항, 기본값0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다. - attn_logit_softcapping (
float, 선택 사항, 기본값 50.0) — attention logits에 적용되는 softcapping 상수입니다.
이것은 VideoPrismClipModel의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Videoprism 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 google/videoprism-lvt-base-f16r288와 유사한 설정이 생성됩니다.
Configuration 객체는 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와 유사한 설정이 생성됩니다.
Configuration 객체는 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
클래스 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
클래스 transformers.VideoPrismProcessor
< source >( video_processor = Nonetokenizer = None )
비디오 프로세서와 토크나이저를 단일 프로세서로 래핑하는 VideoPrismProcessor를 생성합니다.
VideoPrismProcessor는 LlavaOnevisionVideoProcessor와 VideoPrismTokenizer의 모든 기능을 제공합니다. 자세한 내용은 ~LlavaOnevisionVideoProcessor와 ~VideoPrismTokenizer를 참고하세요.
VideoPrismVisionModel
class transformers.VideoPrismVisionModel
< source >( config: VideoPrismVisionConfig )
매개변수
- config (VideoPrismVisionConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
VideoPrism 비전 인코더의 기본 버전으로, 상단에 특정 헤드가 없이 원시 hidden-states를 출력합니다. 이 모델은 VideoPrismVideoModel에서 백본 인코더로 사용됩니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
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)
매개변수
- pixel_values_videos (
torch.Tensor, shape(batch_size, num_frames, num_channels, frame_size, frame_size), 선택 사항) — 입력 비디오에 해당하는 텐서입니다. 비디오의 픽셀 값은 LlavaOnevisionVideoProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 LlavaOnevisionVideoProcessor.call()를 참조하세요 (VideoPrismProcessor는 비디오 처리에 LlavaOnevisionVideoProcessor를 사용합니다). - interpolate_pos_encoding (
bool, 선택 사항, 기본값False) — 사전 학습된 위치 인코딩을 보간할지 여부입니다.
반환값
BaseModelOutputWithSpatialAndTemporalStates 또는 tuple(torch.Tensor)
BaseModelOutputWithSpatialAndTemporalStates 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(VideoPrismConfig)과 입력에 따라 다양한 요소를 포함합니다.
VideoPrismVisionModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
last_temporal_hidden_state (
torch.Tensor, 선택 사항) — temporal encoder의 마지막 hidden state로, 일반적으로(batch_size * num_patches, num_frames, hidden_size)형태입니다.last_spatial_hidden_state (
torch.Tensor, 선택 사항) — 공간 인코더의 마지막 hidden state로, 일반적으로(batch_size * num_frames, num_patches, hidden_size)형태입니다.
VideoPrismVideoModel
class transformers.VideoPrismVideoModel
< source >( config: VideoPrismVisionConfig )
매개변수
- config (VideoPrismVisionConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
보조 인코더 레이어와 상단의 attention pooling head를 갖춘 vision encoder backbone으로 구성된 VideoPrism 비디오 모델입니다. 이 모델은 VideoPrismClipModel에서 사용됩니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( pixel_values_videos: Tensorinterpolate_pos_encoding: bool | None = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
매개변수
- pixel_values_videos (
torch.Tensor, shape(batch_size, num_frames, num_channels, frame_size, frame_size)) — 입력 비디오에 해당하는 텐서입니다. 비디오의 픽셀 값은 LlavaOnevisionVideoProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 LlavaOnevisionVideoProcessor.call()를 참조하세요 (VideoPrismProcessor는 비디오 처리에 LlavaOnevisionVideoProcessor를 사용합니다). - interpolate_pos_encoding (
bool, 선택 사항, 기본값False) — 사전 학습된 위치 인코딩을 보간할지 여부입니다.
반환값
BaseModelOutputWithPooling 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 BaseModelOutputWithPooling입니다. return_dict=False가 전달되었거나 config.return_dict=False인 경우, 구성(VideoPrismConfig)과 입력에 따라 다양한 요소로 구성됩니다.
VideoPrismVideoModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.pooler_output (
torch.Tensor, shape(batch_size, hidden_size)) — 보조 사전 학습 작업을 위해 사용되는 레이어들을 통해 추가 처리된 시퀀스의 첫 번째 토큰(분류 토큰)의 마지막 레이어 hidden-state입니다. 예를 들어 BERT 계열 모델의 경우, 선형 레이어와 tanh 활성화 함수를 통해 처리된 후의 분류 토큰을 반환합니다. 선형 레이어의 가중치는 사전 학습 동안 다음 문장 예측(분류) 목적 함수를 통해 학습됩니다.hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
VideoPrismTextModel
클래스 transformers.VideoPrismTextModel
< source >( config: VideoPrismTextConfig )
매개변수
- config (VideoPrismTextConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
특정 헤드가 위에 없는 맨 VideoPrism 텍스트 인코더로, 마지막 hidden states를 출력합니다. 이 모델은 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.Tensor)
매개변수
- input_ids (
torch.LongTensor형상이(batch_size, sequence_length), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.
- attention_mask (
torch.Tensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- inputs_embeds (
torch.Tensor, shape(batch_size, sequence_length, hidden_size), 선택) —input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다input_ids인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다. - position_ids (
torch.Tensor의 shape(batch_size, sequence_length), , 선택 사항) — 입력 시퀀스 토큰의 위치 임베딩에서 각 토큰의 위치 인덱스. 범위는[0, config.n_positions - 1].
반환값
BaseModelOutputWithPooling 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 BaseModelOutputWithPooling입니다. return_dict=False가 전달되었거나 config.return_dict=False인 경우, 구성(VideoPrismConfig)과 입력에 따라 다양한 요소로 구성됩니다.
VideoPrismTextModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.pooler_output (
torch.Tensor, shape(batch_size, hidden_size)) — 보조 사전 학습 작업을 위해 사용되는 레이어들을 통해 추가 처리된 시퀀스의 첫 번째 토큰(분류 토큰)의 마지막 레이어 hidden-state입니다. 예를 들어 BERT 계열 모델의 경우, 선형 레이어와 tanh 활성화 함수를 통해 처리된 후의 분류 토큰을 반환합니다. 선형 레이어의 가중치는 사전 학습 동안 다음 문장 예측(분류) 목적 함수를 통해 학습됩니다.hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
VideoPrismClipModel
클래스 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: 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)
매개변수
- pixel_values_videos (
torch.Tensor, shape(batch_size, num_frames, num_channels, frame_size, frame_size)) — 입력 비디오에 해당하는 텐서입니다. 비디오의 픽셀 값은 LlavaOnevisionVideoProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 LlavaOnevisionVideoProcessor.call()를 참조하세요 (VideoPrismProcessor는 비디오 처리에 LlavaOnevisionVideoProcessor를 사용합니다). - input_ids (
torch.Tensor의 shape(batch_size, sequence_length)) — 어휘 사전에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 Padding은 무시됩니다.AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.
- attention_mask (
torch.Tensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- interpolate_pos_encoding (
bool, 선택 사항, 기본값False) — 사전 학습된 위치 인코딩을 보간할지 여부입니다. - temperature (
float, 선택 사항) — 유사도 점수를 스케일링하는 temperature 스칼라 값입니다. 제공되지 않으면 스케일링이 적용되지 않습니다. - return_loss (
bool, 선택) — contrastive loss를 반환할지 여부.
반환값
VideoPrismClipOutput 또는 tuple(torch.Tensor)
VideoPrismClipOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(VideoPrismConfig)과 입력에 따라 다양한 요소를 포함합니다.
VideoPrismClipModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
- logits_per_video (
torch.Tensor, shape(video_batch_size, text_batch_size)) —video_embeds와text_embeds사이의 스케일된 도트 프로덕트 점수입니다. 이는 비디오-텍스트 유사도 점수를 나타냅니다. - logits_per_text (
torch.Tensor, shape(text_batch_size, video_batch_size)) —text_embeds와video_embeds사이의 스케일된 도트 프로덕트 점수입니다. 이는 텍스트-비디오 유사도 점수를 나타냅니다. - video_embeds (
torch.Tensor, shape(batch_size, output_dim)) — VideoPrismVideoModel의 풀링된 출력에 투영 계층을 적용하여 얻은 비디오 임베딩입니다. - text_embeds (
torch.Tensor, shape(batch_size, output_dim)) — VideoPrismTextModel의 풀링된 출력에 투영 계층을 적용하여 얻은 텍스트 임베딩입니다. - video_model_output (
~modeling_outputs.BaseModelOutputWithPooling, 선택) — VideoPrismVideoModel의 출력입니다. - text_model_output (
~modeling_outputs.BaseModelOutputWithPooling, 선택) — VideoPrismTextModel의 출력입니다. - loss (
torch.Tensor, shape(1,), 선택,return_loss가True일 때 반환됨) — 비디오-텍스트 유사도를 위한 Contrastive loss.
VideoPrismForVideoClassification
class transformers.VideoPrismForVideoClassification
< source >( config: VideoPrismVisionConfig )
매개변수
- config (VideoPrismVisionConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
VideoPrism Model은 attention pooler 위에 linear layer를 배치한 video classification head를 갖춘 transformer입니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
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)
매개변수
- pixel_values_videos (
torch.Tensor, 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.Tensor)
torch.Tensor의 튜플 또는 ImageClassifierOutput입니다. return_dict=False가 전달되었거나 config.return_dict=False인 경우, 구성(VideoPrismConfig)과 입력에 따라 다양한 요소를 포함합니다.
VideoPrismForVideoClassification의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
loss (
torch.Tensor, shape(1,), 선택 사항,labels이 제공될 때 반환됨) — 분류 (또는 config.num_labels==1인 경우 회귀) 손실.logits (
torch.Tensor, shape(batch_size, config.num_labels)) — SoftMax 적용 전 분류(또는 config.num_labels==1인 경우 회귀) 점수.hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩의 출력에 대한 것 1개 + 각 단계의 출력에 대한 것 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다. 각 단계의 출력에서 모델의 히든 스테이트(피처 맵이라고도 함).attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, patch_size, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.