# PE 오디오 비디오

[PE Audio Video](https://huggingface.co/papers/2504.13181)는 Meta의 Perception Encoder 계열의 오디오-비디오 통합 브랜치입니다. 오디오와 비디오 스트림을 공유 텍스트 타워와 함께 인코딩하여, 단일 포워드 패스에서 오디오-텍스트, 비디오-텍스트, 오디오-비디오, 오디오+텍스트-비디오의 모든 쌍별 조합에 대한 대비 임베딩을 생성합니다.

모델은 내부적으로 최근접 이웃 보간을 통해 비디오 특징 시퀀스를 오디오의 시간 해상도에 정렬하므로, 프레임 레이트와 샘플 레이트가 다른 클립도 동기 상태를 유지합니다. 텍스트 인코더 가중치는 오디오 및 비디오 브랜치 간에 공유됩니다.

공식 PE Audio Video 체크포인트는 모두 [perception-encoder-audio-visual](https://huggingface.co/collections/facebook/perception-encoder-audio-visual) 컬렉션에서 찾을 수 있습니다.

## 빠른 시작

```py
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](/docs/transformers/main/ko/model_doc/pe_audio_video#transformers.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]]

#### transformers.PeAudioVideoConfig[[transformers.PeAudioVideoConfig]]

```python
transformers.PeAudioVideoConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, text_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, audio_video_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, tie_word_embeddings: bool = True)
```

[소스](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio_video/configuration_pe_audio_video.py#L78)

**매개변수:**

text_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *선택*) : 텍스트 백본의 config 객체 또는 사전입니다.

audio_video_config (`dict` 또는 `PreTrainedConfig`, *선택 사항*) : 오디오-비디오 인코더 구성 요소의 설정입니다.

tie_word_embeddings (`bool`, *선택 사항*, 기본값 `True`) : 모델의 `tied_weights_keys` 매핑에 따라 가중치 임베딩을 묶을지 여부.

이것은 PeAudioVideoModel의 구성을 저장하기 위한 구성 클래스입니다. 지정된 인자에 따라 Pe Audio Video 모델을 인스턴스화하여 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 구성을 인스턴스화하면 [facebook/pe-av-large](https://huggingface.co/facebook/pe-av-large)와 유사한 구성이 생성됩니다.

Configuration 객체는 [PreTrainedConfig](/docs/transformers/main/ko/main_classes/configuration#transformers.PreTrainedConfig)를 상속하며, 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 [PreTrainedConfig](/docs/transformers/main/ko/main_classes/configuration#transformers.PreTrainedConfig)의 문서를 참고하세요.

```python
>>> 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.config
```

## PeAudioVideoEncoderConfig[[transformers.PeAudioVideoEncoderConfig]]

#### transformers.PeAudioVideoEncoderConfig[[transformers.PeAudioVideoEncoderConfig]]

```python
transformers.PeAudioVideoEncoderConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, audio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, video_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, hidden_size: int = 1792, intermediate_size: int = 4800, num_hidden_layers: int = 6, num_attention_heads: int = 14, num_key_value_heads: int | None = None, head_dim: int = 128, hidden_act: str = 'silu', max_position_embeddings: int = 10000, initializer_range: float = 0.02, rms_norm_eps: float = 1e-05, rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = None, attention_bias: bool = False, attention_dropout: float | int = 0.0)
```

[소스](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio_video/configuration_pe_audio_video.py#L26)

**매개변수:**

audio_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *선택*) : 오디오 백본의 config 객체 또는 사전입니다.

video_config (`Union[PreTrainedConfig, dict]`, *선택 사항*) : 비디오 인코더의 설정입니다. 사전이 제공되면 [PeVideoEncoderConfig](/docs/transformers/main/ko/model_doc/pe_video#transformers.PeVideoEncoderConfig)를 인스턴스화하는 데 사용됩니다.

hidden_size (`int`, *선택 사항*, 기본값 `1792`) : 숨겨진 표현의 차원.

intermediate_size (`int`, *선택 사항*, 기본값 `4800`) : MLP 표현의 차원.

num_hidden_layers (`int`, *선택 사항*, 기본값 `6`) : Transformer 디코더의 숨겨진 레이어 수.

num_attention_heads (`int`, *선택 사항*, 기본값 `14`) : Transformer 디코더의 각 어텐션 레이어에 사용되는 어텐션 헤드 수입니다.

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하여 구성해야 합니다. 자세한 내용은 [이 논문](https://huggingface.co/papers/2305.13245)을 참고하세요. 지정되지 않으면 기본값으로 `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 normalization 레이어에서 사용되는 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 및 output projection layer에 bias를 사용할지 여부.

attention_dropout (`Union[float, int]`, *선택 사항*, 기본값 `0.0`) : attention 확률에 적용할 dropout 비율입니다.

이것은 PeAudioVideoModel의 구성을 저장하기 위한 구성 클래스입니다. 지정된 인자에 따라 Pe Audio Video 모델을 인스턴스화하여 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 구성을 인스턴스화하면 [facebook/pe-av-large](https://huggingface.co/facebook/pe-av-large)와 유사한 구성이 생성됩니다.

Configuration 객체는 [PreTrainedConfig](/docs/transformers/main/ko/main_classes/configuration#transformers.PreTrainedConfig)를 상속하며, 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 [PreTrainedConfig](/docs/transformers/main/ko/main_classes/configuration#transformers.PreTrainedConfig)의 문서를 참고하세요.

```python
>>> 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.config
```

## PeAudioVideoProcessor[[transformers.PeAudioVideoProcessor]]

#### transformers.PeAudioVideoProcessor[[transformers.PeAudioVideoProcessor]]

```python
transformers.PeAudioVideoProcessor(feature_extractor = None, video_processor = None, tokenizer = None, **kwargs)
```

[소스](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio_video/processing_pe_audio_video.py#L17)

## PeAudioVideoEncoder[[transformers.PeAudioVideoEncoder]]

#### transformers.PeAudioVideoEncoder[[transformers.PeAudioVideoEncoder]]

```python
transformers.PeAudioVideoEncoder(config: PeAudioVideoEncoderConfig)
```

[소스](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio_video/modeling_pe_audio_video.py#L554)

**매개변수:**

config ([PeAudioVideoEncoderConfig](/docs/transformers/main/ko/model_doc/pe_audio_video#transformers.PeAudioVideoEncoderConfig)) : 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 [from_pretrained()](/docs/transformers/main/ko/main_classes/model#transformers.PreTrainedModel.from_pretrained) 메서드를 확인하세요.

PeAudioVideo Encoder 모델입니다.

이 모델은 [PreTrainedModel](/docs/transformers/main/ko/main_classes/model#transformers.PreTrainedModel)에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대해서는 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module)의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법과 동작에 관한 모든 사항은 PyTorch 문서를 참조하세요.

#### forward[[transformers.PeAudioVideoEncoder.forward]]

```python
forward(input_values: typing.Optional[torch.Tensor] = None, pixel_values_videos: typing.Optional[torch.Tensor] = None, padding_mask: typing.Optional[torch.Tensor] = None, padding_mask_videos: typing.Optional[torch.Tensor] = None, **kwargs)
```

[소스](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio_video/modeling_pe_audio_video.py#L573)

**매개변수:**

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](/docs/transformers/main/ko/model_doc/auto#transformers.AutoProcessor)를 사용해야 합니다. 자세한 내용은 [PeAudioVideoProcessor.__call__()](/docs/transformers/main/ko/main_classes/processors#transformers.ProcessorMixin.__call__)를 참조하세요.

pixel_values_videos (`torch.Tensor`, shape `(batch_size, num_frames, num_channels, frame_size, frame_size)`, *선택 사항*) : 입력 비디오에 해당하는 텐서입니다. 비디오의 픽셀 값은 [PeVideoVideoProcessor](/docs/transformers/main/ko/model_doc/pe_video#transformers.PeVideoVideoProcessor)를 사용하여 얻을 수 있습니다. 자세한 내용은 [PeVideoVideoProcessor.__call__()](/docs/transformers/main/ko/model_doc/molmo2#transformers.Molmo2VideoProcessor.__call__)를 참조하세요 ([PeAudioVideoProcessor](/docs/transformers/main/ko/model_doc/pe_audio_video#transformers.PeAudioVideoProcessor)는 비디오 처리에 [PeVideoVideoProcessor](/docs/transformers/main/ko/model_doc/pe_video#transformers.PeVideoVideoProcessor)를 사용합니다).

padding_mask (`torch.Tensor`, shape `(batch_size, sequence_length)`, *선택 사항*) : `input_values`의 패딩 샘플에 대해 어텐션을 수행하지 않도록 하는 마스크입니다. `[0, 1]`에서 선택된 마스크 값: - **마스크되지 않은** 샘플은 1, - **마스크된** 샘플은 0.

padding_mask_videos (`torch.Tensor`, shape `(batch_size, num_frames)`, *선택 사항*) : 패딩 비디오 프레임에 대한 attention 수행을 방지하기 위한 마스크. `[0, 1]`에서 선택된 마스크 값: - **마스크되지 않은** 프레임은 1, - **마스크된** 프레임은 0.

**반환값:** `PeAudioVideoEncoderOutput` 또는 `tuple(torch.Tensor)`

`PeAudioVideoEncoderOutput` 또는 `torch.Tensor`의 튜플(`return_dict=False`가 전달되었거나 `config.return_dict=False`인 경우)로, 구성([PeAudioVideoConfig](/docs/transformers/main/ko/model_doc/pe_audio_video#transformers.PeAudioVideoConfig))과 입력에 따라 다양한 요소를 포함합니다.

[PeAudioVideoEncoder](/docs/transformers/main/ko/model_doc/pe_audio_video#transformers.PeAudioVideoEncoder)의 forward 메서드는 `__call__` 특수 메서드를 오버라이드합니다.

`Module` 인스턴스는 전처리 및 후처리 단계를 실행하는 것을 처리하지만, 이 함수는 해당 단계를 조용히 무시하므로, 순전파(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`, *선택 사항*) -- 오디오 인코더의 출력으로, 마지막 숨겨진 상태, 풀링된 출력, 선택적인 숨겨진 상태와 어텐션을 포함합니다. 자세한 내용은 [BaseModelOutputWithPooling](/docs/transformers/main/ko/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling)을 참조하세요.
- **video_model_output** (`BaseModelOutputWithPooling`, *선택 사항*) -- 비디오 인코더의 출력으로, 마지막 숨겨진 상태, 풀링된 출력, 선택적인 숨겨진 상태와 어텐션을 포함합니다. 자세한 내용은 [BaseModelOutputWithPooling](/docs/transformers/main/ko/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling)을 참조하세요.

## PeAudioVideoModel[[transformers.PeAudioVideoModel]]

#### transformers.PeAudioVideoModel[[transformers.PeAudioVideoModel]]

```python
transformers.PeAudioVideoModel(config: PeAudioVideoConfig)
```

[소스](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio_video/modeling_pe_audio_video.py#L738)

#### forward[[transformers.PeAudioVideoModel.forward]]

```python
forward(input_ids: typing.Optional[torch.Tensor] = None, pixel_values_videos: typing.Optional[torch.Tensor] = None, input_values: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, padding_mask_videos: typing.Optional[torch.Tensor] = None, padding_mask: typing.Optional[torch.Tensor] = None, return_loss = False, **kwargs)
```

[소스](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pe_audio_video/modeling_pe_audio_video.py#L879)

**매개변수:**

input_ids (`torch.Tensor`, shape `(batch_size, sequence_length)`, *선택 사항*) : 어휘(input sequence tokens)의 인덱스입니다. 기본적으로 패딩은 무시됩니다. [AutoTokenizer](/docs/transformers/main/ko/model_doc/auto#transformers.AutoTokenizer)를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 [PreTrainedTokenizer.encode()](/docs/transformers/main/ko/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) 및 [PreTrainedTokenizer.__call__()](/docs/transformers/main/ko/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__)를 참조하세요. [입력 ID란 무엇인가요?](../glossary#input-ids)

pixel_values_videos (`torch.Tensor`, shape `(batch_size, num_frames, num_channels, frame_size, frame_size)`, *선택 사항*) : 입력 비디오에 해당하는 텐서입니다. 비디오의 픽셀 값은 [PeVideoVideoProcessor](/docs/transformers/main/ko/model_doc/pe_video#transformers.PeVideoVideoProcessor)를 사용하여 얻을 수 있습니다. 자세한 내용은 [PeVideoVideoProcessor.__call__()](/docs/transformers/main/ko/model_doc/molmo2#transformers.Molmo2VideoProcessor.__call__)를 참조하세요 ([PeAudioVideoProcessor](/docs/transformers/main/ko/model_doc/pe_audio_video#transformers.PeAudioVideoProcessor)는 비디오 처리에 [PeVideoVideoProcessor](/docs/transformers/main/ko/model_doc/pe_video#transformers.PeVideoVideoProcessor)를 사용합니다).

input_values (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*) : 입력 원시 음성 웨이브폼의 부동소수점 값. `.flac` 또는 `.wav` 오디오 파일을 `list[float]`, `numpy.ndarray` 또는 `torch.Tensor` 타입의 배열로 로드하여 값을 얻을 수 있습니다. *e.g.* torchcodec 라이브러리(`pip install torchcodec`) 또는 soundfile 라이브러리(`pip install soundfile`)를 통해 가능합니다. `input_values`로 배열을 준비하려면 패딩 및 `torch.Tensor` 타입의 텐서 변환을 위해 [AutoProcessor](/docs/transformers/main/ko/model_doc/auto#transformers.AutoProcessor)를 사용해야 합니다. 자세한 내용은 [PeAudioVideoProcessor.__call__()](/docs/transformers/main/ko/main_classes/processors#transformers.ProcessorMixin.__call__)를 참조하세요.

attention_mask (`torch.Tensor`, shape `(batch_size, sequence_length)`, *선택 사항*) : 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크입니다. `[0, 1]`에서 선택된 마스크 값: - **마스크되지 않은** 토큰은 1, - **마스크된** 토큰은 0. [attention 마스크란?](../glossary#attention-mask)

padding_mask_videos (`torch.Tensor`, shape `(batch_size, num_frames)`, *선택 사항*) : 패딩 비디오 프레임에 대한 attention 수행을 방지하기 위한 마스크. `[0, 1]`에서 선택된 마스크 값: - **마스크되지 않은** 프레임은 1, - **마스크된** 프레임은 0.

padding_mask (`torch.Tensor`, shape `(batch_size, sequence_length)`, *선택 사항*) : `input_values`의 패딩 샘플에 대해 어텐션을 수행하지 않도록 하는 마스크입니다. `[0, 1]`에서 선택된 마스크 값: - **마스크되지 않은** 샘플은 1, - **마스크된** 샘플은 0.

return_loss (`bool`, *선택 사항*) : 손실을 반환할지 여부.

**반환값:** `PeAudioVideoOutput` 또는 `tuple(torch.Tensor)`

`PeAudioVideoOutput` 또는 `torch.Tensor`의 튜플(`return_dict=False`가 전달되었거나 `config.return_dict=False`인 경우)로, 구성([PeAudioVideoConfig](/docs/transformers/main/ko/model_doc/pe_audio_video#transformers.PeAudioVideoConfig))과 입력에 따라 다양한 요소를 포함합니다.

[PeAudioVideoModel](/docs/transformers/main/ko/model_doc/pe_audio_video#transformers.PeAudioVideoModel)의 forward 메서드는 `__call__` 특수 메서드를 오버라이드합니다.

`Module` 인스턴스는 전처리 및 후처리 단계를 실행하는 것을 처리하지만, 이 함수는 해당 단계를 조용히 무시하므로, 순전파(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`, *선택 사항*) -- 오디오와 텍스트 임베딩의 결합(예: 연결(concatenation) 또는 가산(fusion) 결합). 형태는 `(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`, *선택 사항*) -- 비디오 인코더의 모델 출력으로, 마지막 숨겨진 상태와 풀링된 출력을 포함합니다.
- **audio_video_outputs** (`BaseModelOutputWithPooling`, *선택 사항*) -- 오디오-비디오 통합 인코더의 모델 출력입니다.
- **logits_audio_text** (`torch.Tensor`, *선택 사항*) -- 오디오 임베딩과 텍스트 임베딩 간의 유사도 로짓. 형태는 `(batch_size, batch_size)`입니다.
- **logits_video_text** (`torch.Tensor`, *선택 사항*) -- 비디오와 텍스트 임베딩 간의 유사도 로짓. 형태는 `(batch_size, batch_size)`입니다.
- **logits_audio_video** (`torch.Tensor`, *선택 사항*) -- 오디오 임베딩과 비디오 임베딩 간의 유사도 로짓. 형태는 `(batch_size, batch_size)`입니다.
- **logits_audio_video_text** (`torch.Tensor`, *선택 사항*) -- 오디오, 비디오, 텍스트 모달리티 간의 유사도 logits.
- **logits_audio_plus_text_video** (`torch.Tensor`, *선택 사항*) -- 융합된 (오디오 + 텍스트) 임베딩과 비디오 임베딩 간의 유사도 로짓입니다.
- **logits_video_plus_text_audio** (`torch.Tensor`, *선택 사항*) -- 융합된 (비디오 + 텍스트) 임베딩과 오디오 임베딩 간의 유사도 로짓.
- **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`, *선택 사항*) -- 모든 모달리티별 손실을 결합한 손실입니다.

