Transformers documentation
PE 오디오 비디오
이 모델은 2025-04-17에 HF papers에 게시되었으며 2025-12-16에 Hugging Face Transformers에 기여되었습니다. 이 모델은 2025-04-17에 공개되었으며 2025-12-16에 Hugging Face Transformers에 추가되었습니다.
PE 오디오 비디오
PE Audio Video는 Meta의 Perception Encoder 계열에서 오디오와 비디오를 함께 처리하는 브랜치입니다. 공유 텍스트 타워와 함께 오디오 및 비디오 스트림을 인코딩하여, 단일 포워드 패스에서 오디오-텍스트, 비디오-텍스트, 오디오-비디오, 오디오+텍스트-비디오를 포함한 모든 쌍별 조합에 대한 대비 임베딩을 생성합니다.
모델 내부에서는 최근접 이웃 보간(nearest-neighbor interpolation)을 통해 비디오 특징 시퀀스를 오디오의 시간 해상도에 정렬하므로, 프레임 레이트와 샘플 레이트가 다른 클립도 동기 상태를 유지합니다. 텍스트 인코더 가중치는 오디오 및 비디오 분기 간에 공유됩니다.
공식 PE Audio Video 체크포인트는 모두 perception-encoder-audio-visual 컬렉션에서 찾을 수 있습니다.
빠른 시작
import torch
from datasets import load_dataset
from transformers import AutoProcessor, PeAudioVideoModel
from transformers.video_utils import load_video
processor = AutoProcessor.from_pretrained("facebook/pe-av-large")
model = PeAudioVideoModel.from_pretrained(
"facebook/pe-av-large",
device_map="auto",
)
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
audio = ds[0]["audio"]["array"]
video, _ = load_video("https://huggingface.co/datasets/hf-internal-testing/fixtures_videos/resolve/main/tennis.mp4")
labels = ["a person playing tennis with background crowd", "a dog barking in a park"]
audio_inputs = processor.feature_extractor(audio, sampling_rate=48_000, return_tensors="pt").to(model.device)
video_inputs = processor.video_processor(video, num_frames=16, return_tensors="pt").to(model.device)
text_inputs = processor.tokenizer(labels, padding=True, return_tensors="pt").to(model.device)
inputs = {**audio_inputs, **video_inputs, **text_inputs}
with torch.no_grad():
outputs = model(**inputs)
print("audio-text:", outputs.logits_audio_text.sigmoid().tolist())
print("video-text:", outputs.logits_video_text.sigmoid().tolist())
print("audio-video:", outputs.logits_audio_video.sigmoid().tolist())사용 팁 및 참고 사항
- PeAudioVideoModel은
input_ids,input_values,pixel_values_videos중 최소 두 개를 요구합니다. 두 개만 전달하면 오디오 전용 또는 비디오 전용 서브 모델로 분기됩니다. 세 개를 모두 전달하면 오디오-비디오-텍스트 통합 경로가 실행되며PeAudioVideoOutput의 전체 logit 행렬 세트가 반환됩니다. - Audio는
padding_mask를, video는padding_mask_videos를 동시에 사용합니다. 이들은 독립적인 마스크이므로, text tower에 할당된attention_mask와 혼동하지 마세요. - Audio–video alignment은
_align_video_hidden_state내에서 배치 요소별로 수행되므로, 오디오/비디오 길이가 크게 다른 배치의 경우 벡터화 대신 반복 처리됩니다. 처리량을 유지하려면 배치 항목의 길이를 대략 균일하게 유지하세요. - 텍스트 타워의 가중치는
_tied_weights_keys를 통해 브랜치 간에 공유됩니다. 오디오와 비디오 부분에 대해 별도의 텍스트 인코더를 로드하려는 시도는 하지 마십시오.
PeAudioVideoConfig
클래스 transformers.PeAudioVideoConfig
< 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 = Noneaudio_video_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetie_word_embeddings: bool = True )
이것은 PeAudioVideoModel의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Pe Audio Video 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 facebook/pe-av-large와 유사한 설정이 생성됩니다.
Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.
>>> from transformers import PeAudioVideoModel, PeAudioVideoConfig
>>> # Initializing a PeAudioVideoModel style configuration
>>> configuration = PeAudioVideoConfig()
>>> # Initializing a model from the pe-av-large style configuration
>>> model = PeAudioModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configPeAudioVideoEncoderConfig
class transformers.PeAudioVideoEncoderConfig
< 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 = Noneaudio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevideo_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonehidden_size: int = 1792intermediate_size: int = 4800num_hidden_layers: int = 6num_attention_heads: int = 14num_key_value_heads: int | None = Nonehead_dim: int = 128hidden_act: str = 'silu'max_position_embeddings: int = 10000initializer_range: float = 0.02rms_norm_eps: float = 1e-05rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falseattention_dropout: float | int = 0.0 )
매개변수
- audio_config (
Union[dict, ~configuration_utils.PreTrainedConfig], 선택) — 오디오 백본의 config 객체 또는 사전입니다. - video_config (
Union[PreTrainedConfig, dict], 선택) — 비디오 인코더의 설정입니다. 사전이 제공되면 PeVideoEncoderConfig를 인스턴스화하는 데 사용됩니다. - hidden_size (
int, 선택 사항, 기본값1792) — 숨겨진 표현의 차원입니다. - intermediate_size (
int, 선택 사항, 기본값4800) — MLP 표현의 차원입니다. - num_hidden_layers (
int, 선택 사항, 기본값6) — Transformer decoder의 숨겨진 레이어 수입니다. - num_attention_heads (
int, 선택 사항, 기본값14) — Transformer decoder의 각 attention layer에 사용할 attention head의 수입니다. - num_key_value_heads (
int, 선택 사항) — Grouped Query Attention 구현에 사용할 key_value 헤드 수입니다.num_key_value_heads=num_attention_heads인 경우 모델은 Multi Head Attention(MHA)을 사용하고,num_key_value_heads=1인 경우 모델은 Multi Query Attention(MQA)을 사용하며, 그 외에는 GQA가 사용됩니다. 멀티 헤드 체크포인트를 GQA 체크포인트로 변환할 때, 각 그룹의 key 및 value 헤드는 해당 그룹 내 모든 원래 헤드를 meanpooling하여 구성해야 합니다. 자세한 내용은 이 논문을 확인하세요. 지정되지 않으면num_attention_heads가 기본값으로 사용됩니다. - head_dim (
int, 선택 사항, 기본값128) — Attention head의 차원입니다. None인 경우 hidden_size // num_attention_heads 값이 기본값으로 사용됩니다. - hidden_act (
str, 선택 사항, 기본값silu) — 디코더의 비선형 활성화 함수(함수 또는 문자열)입니다. 예를 들어,"gelu","relu","silu"등이 있습니다. - max_position_embeddings (
int, 선택 사항, 기본값10000) — 이 모델이 사용될 수 있는 최대 시퀀스 길이입니다. - initializer_range (
float, 선택 사항, 기본값0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다. - rms_norm_eps (
float, 선택 사항, 기본값1e-05) — rms 정규화 레이어에서 사용되는 epsilon 값입니다. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], 선택) — RoPE 임베딩의 구성 매개변수를 포함하는 사전입니다. 사전에는rope_theta값이 포함되어야 하며, 더 긴max_position_embeddings로 RoPE를 사용하려는 경우 스케일링에 사용되는 매개변수를 선택적으로 포함할 수 있습니다. - attention_bias (
bool, 선택 사항, 기본값False) — 자기 주의(self-attention) 시 query, key, value 및 출력 투영 계층에 bias를 사용할지 여부입니다. - attention_dropout (
Union[float, int], 선택 사항, 기본값0.0) — Attention 확률에 적용할 dropout 비율입니다.
이것은 PeAudioVideoModel의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Pe Audio Video 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 facebook/pe-av-large와 유사한 설정이 생성됩니다.
Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.
>>> from transformers import PeAudioVideoEncoder, PeAudioVideoEncoderConfig
>>> # Initializing a PeAudioVideoEncoder style configuration
>>> configuration = PeAudioVideoEncoderConfig()
>>> # Initializing a model from the pe-av-large style configuration
>>> model = PeAudioVideoEncoder(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configPeAudioVideoProcessor
class transformers.PeAudioVideoProcessor
< source >( feature_extractor = Nonevideo_processor = Nonetokenizer = None**kwargs )
PeAudioVideoEncoder
class transformers.PeAudioVideoEncoder
< source >( config: PeAudioVideoEncoderConfig )
매개변수
- config (PeAudioVideoEncoderConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
PeAudioVideo Encoder 모델입니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( input_values: typing.Optional[torch.Tensor] = Nonepixel_values_videos: typing.Optional[torch.Tensor] = Nonepadding_mask: typing.Optional[torch.Tensor] = Nonepadding_mask_videos: typing.Optional[torch.Tensor] = None**kwargs ) → PeAudioVideoEncoderOutput or tuple(torch.Tensor)
매개변수
- input_values (
torch.Tensor, shape(batch_size, sequence_length), 선택 사항) — 입력 원시 음성 파형의 부동소수점 값..flac또는.wav오디오 파일을list[float],numpy.ndarray또는torch.Tensor타입의 배열로 로드하여 값을 얻을 수 있으며, 예를 들어 torchcodec 라이브러리(pip install torchcodec)나 soundfile 라이브러리(pip install soundfile)를 사용할 수 있습니다.input_values로 배열을 준비하려면 패딩 및torch.Tensor타입의 텐서 변환을 위해 AutoProcessor를 사용해야 합니다. 자세한 내용은 PeAudioVideoProcessor.call()를 참조하세요. - pixel_values_videos (
torch.Tensor, shape(batch_size, num_frames, num_channels, frame_size, frame_size), 선택 사항) — 입력 비디오에 해당하는 텐서입니다. 비디오의 픽셀 값은 PeVideoVideoProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 PeVideoVideoProcessor.call()를 참조하세요 (PeAudioVideoProcessor는 비디오 처리에 PeVideoVideoProcessor를 사용합니다). - padding_mask (
torch.Tensor의 shape가(batch_size, sequence_length), 선택 사항) — 의 padding 샘플에 attention을 수행하지 않도록 하는 마스크input_values. 에서 선택된 마스크 값[0, 1]:- 마스크가 적용되지 않은 샘플의 경우 1
- 마스크된 샘플의 경우 0
- padding_mask_videos (
torch.Tensorshape(batch_size, num_frames), 선택 사항) — 패딩 비디오 프레임에 대한 attention을 수행하지 않도록 하는 마스크. 값은[0, 1]:- 마스크가 적용되지 않은 프레임에 대해 1
- 마스크된 프레임에 대해 0
반환값
PeAudioVideoEncoderOutput 또는 tuple(torch.Tensor)
PeAudioVideoEncoderOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(PeAudioVideoConfig)과 입력에 따라 다양한 요소를 포함합니다.
PeAudioVideoEncoder의 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 가중치.
audio_model_output (
BaseModelOutputWithPooling, 선택 사항) — 오디오 인코더의 출력으로, 마지막 hidden state, pooled output, 그리고 선택 사항인 hidden states 및 attentions를 포함합니다. 자세한 내용은 BaseModelOutputWithPooling을 참조하세요.video_model_output (
BaseModelOutputWithPooling, 선택) — 비디오 인코더의 출력으로, 마지막 hidden state, pooled output, 그리고 선택적인 hidden states 및 attentions를 포함합니다. 자세한 내용은 BaseModelOutputWithPooling을 참조하세요.
PeAudioVideoModel
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Nonepixel_values_videos: typing.Optional[torch.Tensor] = Noneinput_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonepadding_mask_videos: typing.Optional[torch.Tensor] = Nonepadding_mask: typing.Optional[torch.Tensor] = Nonereturn_loss = False**kwargs ) → PeAudioVideoOutput or tuple(torch.Tensor)
매개변수
- input_ids (
torch.Tensor의 shape(batch_size, sequence_length), , 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.
- pixel_values_videos (
torch.Tensor, shape(batch_size, num_frames, num_channels, frame_size, frame_size), 선택 사항) — 입력 비디오에 해당하는 텐서입니다. 비디오의 픽셀 값은 PeVideoVideoProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 PeVideoVideoProcessor.call()를 참조하세요 (PeAudioVideoProcessor는 비디오 처리에 PeVideoVideoProcessor를 사용합니다). - input_values (
torch.Tensor, shape(batch_size, sequence_length), 선택 사항) — 입력 원시 음성 파형의 부동소수점 값입니다..flac또는.wav오디오 파일을list[float],numpy.ndarray또는torch.Tensor타입의 배열로 로드하여 값을 얻을 수 있으며, 예를 들어 torchcodec 라이브러리(pip install torchcodec)나 soundfile 라이브러리(pip install soundfile)를 사용할 수 있습니다.input_values로 배열을 준비하려면 패딩 및torch.Tensor타입의 텐서 변환을 위해 AutoProcessor를 사용해야 합니다. 자세한 내용은 PeAudioVideoProcessor.call()를 참조하세요. - attention_mask (
torch.Tensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- padding_mask_videos (
torch.Tensorshape(batch_size, num_frames), 선택 사항) — 패딩 비디오 프레임에 대한 attention을 수행하지 않도록 하는 마스크. 값은[0, 1]:- 마스크가 적용되지 않은 프레임에 대해 1
- 마스크된 프레임에 대해 0
- padding_mask (
torch.Tensor의 shape가(batch_size, sequence_length), 선택 사항) — 의 padding 샘플에 attention을 수행하지 않도록 하는 마스크input_values. 에서 선택된 마스크 값[0, 1]:- 마스크가 적용되지 않은 샘플의 경우 1
- 마스크된 샘플의 경우 0
- return_loss (
bool, 선택 사항) — 손실을 반환할지 여부입니다.
반환값
PeAudioVideoOutput 또는 tuple(torch.Tensor)
PeAudioVideoOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(PeAudioVideoConfig)과 입력에 따라 다양한 요소를 포함합니다.
PeAudioVideoModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
- audio_embeds (
torch.Tensor, 선택 사항) — 오디오 모달리티 임베딩. 형태는(batch_size, sequence_length, hidden_size)입니다. - video_embeds (
torch.Tensor, 선택 사항) — 비디오 모달리티 임베딩. 형태는(batch_size, sequence_length, hidden_size)입니다. - audio_video_embeds (
torch.Tensor, 선택 사항) — 융합 모듈이 생성한 오디오-비디오 결합 임베딩. 형태는(batch_size, sequence_length, hidden_size)입니다. - text_audio_embeds (
torch.Tensor, 선택 사항) — 텍스트-오디오 결합 임베딩. 형태는(batch_size, sequence_length, hidden_size)입니다. - text_video_embeds (
torch.Tensor, 선택) — 텍스트-비디오 결합 임베딩. 형태는(batch_size, sequence_length, hidden_size)입니다. - text_audio_video_embeds (
torch.Tensor, 선택 사항) — 텍스트, 오디오, 비디오의 세 가지 모달리티를 결합한 통합 임베딩. 형태는(batch_size, sequence_length, hidden_size)입니다. - audio_plus_text_embeds (
torch.Tensor, 선택 사항) — 오디오와 텍스트 임베딩의 결합(예: 연결 또는 가산 융합). 형태는(batch_size, sequence_length, hidden_size)입니다. - video_plus_text_embeds (
torch.Tensor, 선택 사항) — 비디오와 텍스트 임베딩의 결합. Shape(batch_size, sequence_length, hidden_size). - text_outputs (
MaskedLMOutput, 선택) — 텍스트 인코더의 모델 출력입니다. hidden states, attentions, 그리고 선택적으로 loss를 포함합니다. - audio_outputs (
BaseModelOutputWithPooling, 선택 사항) — 오디오 인코더의 모델 출력으로, 마지막 숨겨진 상태와 풀링된 출력을 포함합니다. - video_outputs (
BaseModelOutputWithPooling, 선택) — 비디오 인코더의 모델 출력으로, 마지막 hidden state와 pooled output을 포함합니다. - audio_video_outputs (
BaseModelOutputWithPooling, 선택 사항) — 오디오-비디오 통합 인코더의 모델 출력입니다. - logits_audio_text (
torch.Tensor, 선택) — 오디오 임베딩과 텍스트 임베딩 간의 유사도 logits. Shape(batch_size, batch_size). - logits_video_text (
torch.Tensor, 선택 사항) — 비디오 임베딩과 텍스트 임베딩 간의 유사도 logits. Shape(batch_size, batch_size). - logits_audio_video (
torch.Tensor, 선택 사항) — 오디오 임베딩과 비디오 임베딩 간의 유사도 logits. Shape(batch_size, batch_size). - logits_audio_video_text (
torch.Tensor, 선택 사항) — 오디오, 비디오, 텍스트 모달리티 간의 유사도 logits입니다. - logits_audio_plus_text_video (
torch.Tensor, 선택) — 융합된 (오디오 + 텍스트) 임베딩과 비디오 임베딩 간의 유사도 logits입니다. - logits_video_plus_text_audio (
torch.Tensor, 선택 사항) — 융합된 (video + text) 임베딩과 audio 임베딩 간의 유사도 logits입니다. - audio_text_loss (
torch.Tensor, 선택) — 오디오와 텍스트 표현 사이에 계산된 대조적 손실(contrastive loss). - video_text_loss (
torch.Tensor, 선택 사항) — 비디오와 텍스트 표현 사이에 계산된 대조 손실(contrastive loss). - audio_video_loss (
torch.Tensor, 선택 사항) — 오디오와 비디오 표현 사이에 계산된 대조적 손실(contrastive loss). - audio_video_text_loss (
torch.Tensor, 선택 사항) — 오디오, 비디오, 텍스트 모달리티에 대한 결합 손실입니다. - audio_plus_text_video_loss (
torch.Tensor, 선택) — 융합된(오디오 + 텍스트) 표현과 비디오 간의 손실. - video_plus_text_audio_loss (
torch.Tensor, 선택) — 융합된(비디오 + 텍스트) 표현과 오디오 사이의 손실입니다. - loss (
torch.Tensor, 선택 사항) — 모든 모달리티별 손실을 결합한 손실입니다.