Transformers documentation
PE Audio
Эта модель была опубликована в HF papers 17.04.2025 и добавлена в Hugging Face Transformers 16.12.2025. Эта модель была выпущена 17.04.2025 и добавлена в Hugging Face Transformers 16.12.2025.
PE Audio
PE Audio — это аудиовариант семейства Perception Encoder от Meta. Он контрастно выравнивает исходные звуковые сигналы и текст в общем пространстве эмбеддингов, обучаясь на парных данных «аудио — описание» для кросс-модального поиска и классификации аудио в режиме zero-shot.
На вершине одного и того же энкодера размещены две головки. PeAudioModel возвращает одно пул-эмбеддинг на каждый клип для поиска на уровне клипов, а PeAudioFrameLevelModel возвращает одно эмбеддинг каждые 40 мс для локализации событий и детального временного анализа.
Все официальные контрольные точки PE Audio можно найти в коллекции perception-encoder-audio-visual.
Быстрый старт
import torch
from datasets import load_dataset
from transformers import AutoProcessor, PeAudioModel
processor = AutoProcessor.from_pretrained("facebook/pe-av-large")
model = PeAudioModel.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"]
labels = ["a dog barking", "a person speaking", "music playing"]
audio_inputs = processor.feature_extractor(audio, sampling_rate=48_000, return_tensors="pt").to(model.device)
text_inputs = processor.tokenizer(labels, padding=True, return_tensors="pt").to(model.device)
inputs = {**audio_inputs, **text_inputs}
with torch.no_grad():
outputs = model(**inputs)
probs = outputs.logits_audio_text.sigmoid()
print({label: p.item() for label, p in zip(labels, probs[0])})Советы и примечания по использованию
- Аудио должно быть моно (
feature_size=1) и пересэмплировано до 48 кГц — экстрактор признаков выводит предупреждение, но не выполняет пересэмплирование за вас. Стерео-вход не поддерживается. - Аудио переменной длины обрабатывается с помощью
padding_mask(а не стандартногоattention_mask). Маска внутренним образом уменьшается вdac_config.hop_lengthраз до того, как попадёт в энкодер, поэтому передавайте маску в разрешении исходной формы волны, которую возвращает извлекатель признаков. - PeAudioModel возвращает логиты формы
(n_audio, n_text). PeAudioFrameLevelModel возвращает(n_audio, n_text, n_frames)с одним кадром каждые 40 мс. Выберите класс, соответствующий задаче, — они разделяют веса, поэтому переключение между ними дёшево. - Башня текста представляет собой общий энкодер, загружаемый через
AutoModelизconfig.text_config. Токенизатор подключается к процессору черезAutoTokenizer, а не через отдельный класс.
PeAudioConfig
класс transformers.PeAudioConfig
< 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_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None )
Параметры
Это класс конфигурации для хранения конфигурации модели PeAudioModel. Он используется для создания модели Pe Audio в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации facebook/pe-av-large
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
Пример:
>>> from transformers import PeAudioModel, PeAudioConfig
>>> # Initializing a PeAudioModel style configuration
>>> configuration = PeAudioConfig()
>>> # Initializing a model from the pe-av-large style configuration
>>> model = PeAudioModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configPeAudioEncoderConfig
класс transformers.PeAudioEncoderConfig
< 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 = Nonedac_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 )
Параметры
- dac_config (
Union[PreTrainedConfig, dict], необязательный) — Конфигурация аудио-энкодера DAC, используемого для токенизации входных аудиоданных. Если передан словарь, он будет использован для создания экземпляра DacConfig с параметрами DAC по умолчанию. - 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, необязательный) — Количество ключевых и 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. При конвертации мультиголовного чекпоинта в GQA-чекпоинт каждая групповая ключевая и value-голова должна построиться путём усреднения (meanpooling) всех исходных голов в этой группе. Дополнительные сведения см. в этой статье. Если параметр не задан, по умолчанию используется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], необязательный) — Словарь, содержащий параметры конфигурации для эмбеддингов RoPE. Словарь должен содержать значение дляrope_thetaи, при необходимости, параметры, используемые для масштабирования, если вы хотите использовать RoPE с более длиннымиmax_position_embeddings. - attention_bias (
bool, необязательный, по умолчаниюFalse) — Использовать ли смещение (bias) в слоях проекции query, key, value и output при само-внимании. - attention_dropout (
Union[float, int], необязательный, по умолчанию0.0) — Коэффициент dropout для вероятностей внимания.
Это класс конфигурации для хранения конфигурации модели PeAudioModel. Он используется для создания модели Pe Audio в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации facebook/pe-av-large
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
>>> from transformers import PeAudioEncoder, PeAudioEncoderConfig
>>> # Initializing a PeAudioEncoder style configuration
>>> configuration = PeAudioEncoderConfig()
>>> # Initializing a model from the pe-av-large style configuration
>>> model = PeAudioEncoder(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configPeAudioFeatureExtractor
класс transformers.PeAudioFeatureExtractor
< source >( feature_size: int = 1sampling_rate: int = 48000padding_value: float = 0.0hop_length: int = 1920**kwargs )
Параметры
- feature_size (
int, необязательный, по умолчанию 1) — Размерность признаков извлечённых признаков. Используйте 1 для моно, 2 для стерео. - sampling_rate (
int, необязательный, по умолчанию 48000) — Частота дискретизации, с которой аудиосигнал должен быть оцифрован, выраженная в герцах (Гц). - padding_value (
float, необязательный, по умолчанию 0.0) — Значение, используемое для дополнения (padding). - hop_length (
int, необязательный, по умолчанию 1920) — Длина перекрытия между последовательными окнами.
Создаёт экстрактор признаков PeAudioFeatureExtractor.
Этот экстрактор признаков наследуется от SequenceFeatureExtractor, который содержит большинство основных методов. За дополнительной информацией о них следует обращаться к этому суперклассу.
__call__
< source >( raw_audio: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]] | str | list[str]padding: bool | str | transformers.utils.generic.PaddingStrategy | None = Nonetruncation: bool | None = Falsemax_length: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonesampling_rate: int | None = None )
PeAudioProcessor
PeAudioEncoder
класс transformers.PeAudioEncoder
< source >( config: PeAudioEncoderConfig )
Параметры
- config (PeAudioEncoderConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Модель PeAudio Encoder.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = None**kwargs ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
Параметры
- 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 для выравнивания (padding) и преобразования в тензор типаtorch.Tensor. Подробности см. в PeAudioProcessor.call(). - padding_mask (
torch.Tensorформы(batch_size, sequence_length), необязательный) — Маска для исключения padding-элементов изinput_values. Значения маски из диапазона[0, 1]:- 1 для образцов, которые не замаскированы,
- 0 для образцов, которые замаскированы.
Возвращает
BaseModelOutputWithPooling или tuple(torch.Tensor)
Объект BaseModelOutputWithPooling или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (PeAudioConfig) и входных данных.
Метод forward класса PeAudioEncoder переопределяет специальный метод __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), optional, возвращается, если передано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 в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
PeAudioModel
forward
< source >( input_ids: Tensorinput_values: Tensorattention_mask: typing.Optional[torch.Tensor] = Nonepadding_mask: typing.Optional[torch.Tensor] = Nonereturn_loss: bool | None = None**kwargs ) → PeAudioOutput or tuple(torch.Tensor)
Параметры
- input_ids (
torch.Tensorформы(batch_size, sequence_length)) — Индексы токенов входной последовательности в словаре. По умолчанию токены отступов игнорируются. Индексы можно получить с помощью AutoTokenizer. Подробности — в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call(). Что такое входные идентификаторы?Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- 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 для выравнивания (padding) и преобразования в тензор типаtorch.Tensor. Подробности см. в PeAudioProcessor.call(). - attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- padding_mask (
torch.Tensorформы(batch_size, sequence_length), необязательный) — Маска для исключения padding-элементов изinput_values. Значения маски из диапазона[0, 1]:- 1 для образцов, которые не замаскированы,
- 0 для образцов, которые замаскированы.
- return_loss (
bool, необязательный) — Указывает, нужно ли возвращать значение функции потерь.
Возвращает
PeAudioOutput или tuple(torch.Tensor)
PeAudioOutput или кортеж
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (PeAudioConfig) и входных данных.
Метод PeAudioModel forward переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
- loss (
torch.Tensorформы(1,), необязательный) — Контрастивная функция потерь, вычисленная между представлениями аудио и текста. - logits_audio_text (
torch.Tensorформы(batch_size, batch_size), необязательный) — Логиты сходности между аудио- и текстовыми эмбеддингами. PeAudioFrameLevelModel возвращает логиты для каждого кадра формы(batch_size, batch_size, sequence_length). - text_audio_embeds (
torch.Tensorформы(batch_size, hidden_size), необязательный) — Векторы текста, спроецированные в пространство «аудио-текст». - audio_embeds (
torch.Tensorформы(batch_size, hidden_size), необязательный) — Встраивания аудио, спроецированные в пространство «аудио-текст». PeAudioFrameLevelModel возвращает встраивания для каждого кадра формы(batch_size, sequence_length, hidden_size). - text_outputs (
BaseModelOutputWithPooling, необязательный) — Выходы модели для текстового энкодера, включая последнее скрытое состояние и агрегированный выход. - audio_outputs (
BaseModelOutputWithPooling, необязательный) — Выходы модели для аудио-кодера, включая последнее скрытое состояние и агрегированный выход.
PeAudioFrameLevelModel
forward
< source >( input_ids: Tensorinput_values: Tensorattention_mask: typing.Optional[torch.Tensor] = Nonepadding_mask: typing.Optional[torch.Tensor] = Nonereturn_loss: bool | None = None**kwargs ) → PeAudioOutput or tuple(torch.Tensor)
Параметры
- input_ids (
torch.Tensorформы(batch_size, sequence_length)) — Индексы токенов входной последовательности в словаре. По умолчанию токены отступов игнорируются. Индексы можно получить с помощью AutoTokenizer. Подробности — в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call(). Что такое входные идентификаторы?Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- 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 для выравнивания (padding) и преобразования в тензор типаtorch.Tensor. Подробности см. в PeAudioProcessor.call(). - attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- padding_mask (
torch.Tensorформы(batch_size, sequence_length), необязательный) — Маска для исключения padding-элементов изinput_values. Значения маски из диапазона[0, 1]:- 1 для образцов, которые не замаскированы,
- 0 для образцов, которые замаскированы.
- return_loss (
bool, необязательный) — Указывает, нужно ли возвращать значение функции потерь.
Возвращает
PeAudioOutput или tuple(torch.Tensor)
PeAudioOutput или кортеж
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (PeAudioConfig) и входных данных.
Метод forward класса PeAudioFrameLevelModel переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
- loss (
torch.Tensorформы(1,), необязательный) — Контрастивная функция потерь, вычисленная между представлениями аудио и текста. - logits_audio_text (
torch.Tensorформы(batch_size, batch_size), необязательный) — Логиты сходности между аудио- и текстовыми эмбеддингами. PeAudioFrameLevelModel возвращает логиты для каждого кадра формы(batch_size, batch_size, sequence_length). - text_audio_embeds (
torch.Tensorформы(batch_size, hidden_size), необязательный) — Векторы текста, спроецированные в пространство «аудио-текст». - audio_embeds (
torch.Tensorформы(batch_size, hidden_size), необязательный) — Встраивания аудио, спроецированные в пространство «аудио-текст». PeAudioFrameLevelModel возвращает встраивания для каждого кадра формы(batch_size, sequence_length, hidden_size). - text_outputs (
BaseModelOutputWithPooling, необязательный) — Выходы модели для текстового энкодера, включая последнее скрытое состояние и агрегированный выход. - audio_outputs (
BaseModelOutputWithPooling, необязательный) — Выходы модели для аудио-кодера, включая последнее скрытое состояние и агрегированный выход.