# PE Audio Video

[PE Audio Video](https://huggingface.co/papers/2504.13181) — это совместная аудиовидеоветвь семейства Perception Encoder от Meta. Она кодирует аудиопоток и видеопоток вместе с общей текстовой башней, формируя контрастивные эмбеддинги для каждой парной комбинации: аудио-текст, видео-текст, аудио-видео и аудио+текст-видео, за один прямой проход.

Внутри модель выравнивает последовательность признаков видео по временному разрешению аудио с помощью интерполяции ближайшего соседа, благодаря чему клипы с различными частотами кадров и частотами дискретизации остаются синхронизированными. Веса текстового энкодера связаны между аудио- и видеоветвями.

Все официальные контрольные точки 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/ru/model_doc/pe_audio_video#transformers.PeAudioVideoModel) требует как минимум два из `input_ids`, `input_values`, `pixel_values_videos` — если переданы только два, вызывается подмодель только для аудио или только для видео. Передача всех трёх активирует совместный путь аудио-видео-текст и полный набор матриц логитов в `PeAudioVideoOutput`.
- Для аудио используется `padding_mask`, а для видео — `padding_mask_videos` одновременно. Это независимые маски; не путайте их с `attention_mask`, которая зарезервирована для текстовой башни.
- Выравнивание аудио и видео выполняется поэлементно внутри `_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]`, *необязательный*) : Объект конфигурации или словарь текстового бэкбона.

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)

Объекты конфигурации наследуются от [PreTrainedConfig](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig) и могут использоваться для управления выводами модели. Подробнее см. в документации [PreTrainedConfig](/docs/transformers/main/ru/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]`, *необязательный*) : Объект конфигурации или словарь аудио-бэкбона.

video_config (`Union[PreTrainedConfig, dict]`, *необязательный*) : Конфигурация для видео-энкодера. Если передан словарь, он используется для создания экземпляра [PeVideoEncoderConfig](/docs/transformers/main/ru/model_doc/pe_video#transformers.PeVideoEncoderConfig).

hidden_size (`int`, *optional*, по умолчанию `1792`) : Размерность скрытых представлений.

intermediate_size (`int`, *необязательный*, по умолчанию `4800`) : Размерность представлений MLP.

num_hidden_layers (`int`, *необязательный*, по умолчанию `6`) : Количество скрытых слоев в декодере Transformer.

num_attention_heads (`int`, *необязательный*, по умолчанию `14`) : Количество голок внимания для каждого слоя внимания в декодере Transformer.

num_key_value_heads (`int`, *optional*) : Это количество ключевых и value-голов, которое следует использовать для реализации Grouped Query Attention. Если `num_key_value_heads=num_attention_heads`, модель будет использовать Multi Head Attention (MHA), если `num_key_value_heads=1` — Multi Query Attention (MQA), в противном случае используется GQA. При конвертации multi-head checkpoint в GQA checkpoint каждая группа ключевых и value-голов должна быть построена путем усреднения (meanpooling) всех исходных голов в этой группе. Подробнее см. в [этой статье](https://huggingface.co/papers/2305.13245). Если значение не указано, по умолчанию используется `num_attention_heads`.

head_dim (`int`, *необязательный*, по умолчанию `128`) : Размер измерения головы внимания. Если 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`) : Значение epsilon, используемое слоями нормализации rms.

rope_parameters (`Union[~modeling_rope_utils.RopeParameters, dict]`, *optional*) : Словарь, содержащий параметры конфигурации для вложений RoPE. Словарь должен содержать значение для `rope_theta` и, при необходимости, параметры, используемые для масштабирования, если вы хотите использовать RoPE с более длинными `max_position_embeddings`.

attention_bias (`bool`, *необязательный*, по умолчанию `False`) : Использовать ли смещение (bias) в слоях проекции запроса, ключа, значения и вывода при само-внимании.

attention_dropout (`Union[float, int]`, *необязательный*, по умолчанию `0.0`) : Коэффициент dropout для вероятностей внимания.

Это класс конфигурации для хранения настроек модели PeAudioVideoModel. Он используется для создания модели Pe Audio Video в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации [facebook/pe-av-large](https://huggingface.co/facebook/pe-av-large)

Объекты конфигурации наследуются от [PreTrainedConfig](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig) и могут использоваться для управления выводами модели. Подробнее см. в документации [PreTrainedConfig](/docs/transformers/main/ru/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/ru/model_doc/pe_audio_video#transformers.PeAudioVideoEncoderConfig)) : класс конфигурации модели со всеми параметрами модели. Инициализация с файлом конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод [from_pretrained()](/docs/transformers/main/ru/main_classes/model#transformers.PreTrainedModel.from_pretrained) для загрузки весов модели.

Модель PeAudioVideo Encoder.

Эта модель наследуется от [PreTrainedModel](/docs/transformers/main/ru/main_classes/model#transformers.PreTrainedModel). Общие методы, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка головок и т. д.), описаны в документации родительского класса.

Эта модель также является подклассом [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации 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` формы `(batch_size, sequence_length)`, *необязательно*) : Значения типа float входной необработанной звуковой волны. Значения можно получить, загрузив аудиофайл `.flac` или `.wav` в массив типа `list[float]`, `numpy.ndarray` или `torch.Tensor`, *например*, с помощью библиотеки torchcodec (`pip install torchcodec`) или библиотеки soundfile (`pip install soundfile`). Для подготовки массива в `input_values` следует использовать [AutoProcessor](/docs/transformers/main/ru/model_doc/auto#transformers.AutoProcessor) для выравнивания и преобразования в тензор типа `torch.Tensor`. Подробности см. в [PeAudioVideoProcessor.__call__()](/docs/transformers/main/ru/main_classes/processors#transformers.ProcessorMixin.__call__).

pixel_values_videos (`torch.Tensor` формы `(batch_size, num_frames, num_channels, frame_size, frame_size)`, *необязательный*) : Тензоры, соответствующие входному видео. Значения пикселей для видео можно получить с помощью [PeVideoVideoProcessor](/docs/transformers/main/ru/model_doc/pe_video#transformers.PeVideoVideoProcessor). Подробности см. в [PeVideoVideoProcessor.__call__()](/docs/transformers/main/ru/model_doc/molmo2#transformers.Molmo2VideoProcessor.__call__) ([PeAudioVideoProcessor](/docs/transformers/main/ru/model_doc/pe_audio_video#transformers.PeAudioVideoProcessor) использует [PeVideoVideoProcessor](/docs/transformers/main/ru/model_doc/pe_video#transformers.PeVideoVideoProcessor) для обработки видео).

padding_mask (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для исключения применения внимания к заполняющим токенам в `input_values`. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.

padding_mask_videos (`torch.Tensor` формы `(batch_size, num_frames)`, *необязательный*) : Маска для исключения кадров видео с заполнением из внимания. Значения маски выбираются из `[0, 1]`:  - 1 для кадров, которые **не замаскированы**, - 0 для кадров, которые **замаскированы**.

**Возвращает:** `PeAudioVideoEncoderOutput` или `tuple(torch.Tensor)`

`PeAudioVideoEncoderOutput` или кортеж `torch.Tensor` (если передано `return_dict=False` или если `config.return_dict=False`), содержащий различные элементы в зависимости от конфигурации ([PeAudioVideoConfig](/docs/transformers/main/ru/model_doc/pe_audio_video#transformers.PeAudioVideoConfig)) и входных данных.

Метод forward класса [PeAudioVideoEncoder](/docs/transformers/main/ru/model_doc/pe_audio_video#transformers.PeAudioVideoEncoder) переопределяет специальный метод `__call__`.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр `Module`, а не эту функцию, поскольку первый выполняет шаги предварительной и постобработки, тогда как второй молча их игнорирует.

- **last_hidden_state** (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`) -- Последовательность скрытых состояний на выходе последнего слоя модели.
- **pooler_output** (`torch.Tensor` формы `(batch_size, hidden_size)`) -- Скрытое состояние последнего слоя для первого токена последовательности (токен классификации) после дополнительной обработки слоями, используемыми для вспомогательной задачи предварительного обучения. Например, для моделей семейства BERT это возвращает токен классификации после обработки линейным слоем и функцией активации tanh. Веса линейного слоя обучаются по задаче предсказания следующего предложения (классификации) во время предварительного обучения.
- **hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или когда `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

  Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
- **attentions** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_attentions=True` или при `config.output_attentions=True`) -- Кортеж `torch.Tensor` (по одному на каждый слой) формы `(batch_size, num_heads, sequence_length, sequence_length)`.

  Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
- **audio_model_output** (`BaseModelOutputWithPooling`, *необязательный*) -- Выход аудиоконвейера, содержащий последнее скрытое состояние, агрегированный выход, а также необязательные скрытые состояния и внимания. Подробности см. в [BaseModelOutputWithPooling](/docs/transformers/main/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling).
- **video_model_output** (`BaseModelOutputWithPooling`, *необязательный*) -- Выход видео-энкодера, содержащий последнее скрытое состояние, агрегированный выход, а также необязательные скрытые состояния и внимания. Подробности см. в [BaseModelOutputWithPooling](/docs/transformers/main/ru/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` формы `(batch_size, sequence_length)`, *необязательный*) : Индексы токенов входной последовательности в словаре. По умолчанию заполнение (padding) игнорируется. Индексы можно получить с помощью [AutoTokenizer](/docs/transformers/main/ru/model_doc/auto#transformers.AutoTokenizer). Подробности см. в [PreTrainedTokenizer.encode()](/docs/transformers/main/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) и [PreTrainedTokenizer.__call__()](/docs/transformers/main/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__). [Что такое входные идентификаторы?](../glossary#input-ids)

pixel_values_videos (`torch.Tensor` формы `(batch_size, num_frames, num_channels, frame_size, frame_size)`, *необязательный*) : Тензоры, соответствующие входному видео. Значения пикселей для видео можно получить с помощью [PeVideoVideoProcessor](/docs/transformers/main/ru/model_doc/pe_video#transformers.PeVideoVideoProcessor). Подробности см. в [PeVideoVideoProcessor.__call__()](/docs/transformers/main/ru/model_doc/molmo2#transformers.Molmo2VideoProcessor.__call__) ([PeAudioVideoProcessor](/docs/transformers/main/ru/model_doc/pe_audio_video#transformers.PeAudioVideoProcessor) использует [PeVideoVideoProcessor](/docs/transformers/main/ru/model_doc/pe_video#transformers.PeVideoVideoProcessor) для обработки видео).

input_values (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательно*) : Значения типа float входной необработанной звуковой волны. Значения можно получить, загрузив аудиофайл `.flac` или `.wav` в массив типа `list[float]`, `numpy.ndarray` или `torch.Tensor`, *например*, с помощью библиотеки torchcodec (`pip install torchcodec`) или библиотеки soundfile (`pip install soundfile`). Для подготовки массива в `input_values` следует использовать [AutoProcessor](/docs/transformers/main/ru/model_doc/auto#transformers.AutoProcessor) для выравнивания и преобразования в тензор типа `torch.Tensor`. Подробности см. в [PeAudioVideoProcessor.__call__()](/docs/transformers/main/ru/main_classes/processors#transformers.ProcessorMixin.__call__).

attention_mask (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../glossary#attention-mask)

padding_mask_videos (`torch.Tensor` формы `(batch_size, num_frames)`, *необязательный*) : Маска для исключения кадров видео с заполнением из внимания. Значения маски выбираются из `[0, 1]`:  - 1 для кадров, которые **не замаскированы**, - 0 для кадров, которые **замаскированы**.

padding_mask (`torch.Tensor` формы `(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/ru/model_doc/pe_audio_video#transformers.PeAudioVideoConfig)) и входных данных.

Метод forward модели [PeAudioVideoModel](/docs/transformers/main/ru/model_doc/pe_audio_video#transformers.PeAudioVideoModel) переопределяет специальный метод `__call__`.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр `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`, *необязательный*) -- Соединённые эмбеддинги видео и текста. Форма `(batch_size, sequence_length, hidden_size)`.
- **text_outputs** (`MaskedLMOutput`, *необязательный*) -- Выходные данные модели для текстового энкодера. Включает скрытые состояния, внимания и, при необходимости, потерю.
- **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_audio_plus_text_video** (`torch.Tensor`, *необязательный*) -- Логиты сходности между объединёнными (аудио + текст) эмбеддингами и эмбеддингами видео.
- **logits_video_plus_text_audio** (`torch.Tensor`, *необязательный*) -- Логиты сходности между объединёнными (видео + текст) эмбеддингами и аудио-эмбеддингами.
- **audio_text_loss** (`torch.Tensor`, *необязательный*) -- Контрастивная потеря, вычисленная между аудио- и текстовыми представлениями.
- **video_text_loss** (`torch.Tensor`, *необязательный*) -- Контрастивная функция потерь, вычисленная между представлениями видео и текста.
- **audio_video_loss** (`torch.Tensor`, *необязательный*) -- Контрастивная потеря, вычисленная между аудио- и видеопредставлениями.
- **audio_video_text_loss** (`torch.Tensor`, *необязательный*) -- Совместная функция потерь для модальностей аудио, видео и текста.
- **audio_plus_text_video_loss** (`torch.Tensor`, *необязательный*) -- Потери между слиянными (аудио + текст) представлениями и видео.
- **video_plus_text_audio_loss** (`torch.Tensor`, *необязательный*) -- Потери между слиянными (видео + текст) представлениями и аудио.
- **loss** (`torch.Tensor`, *необязательный*) -- Суммарная функция потерь для всех модальностей.

