Transformers documentation
Audio Flamingo 3
Эта модель была опубликована в HF papers 10 июля 2025 года и добавлена в Hugging Face Transformers 12 ноября 2025 года.
Audio Flamingo 3
Обзор
Audio Flamingo 3 (AF3) — это полностью открытая крупная аудио-языковая модель, предназначенная для надежного понимания и рассуждений о речи, звуках окружающей среды и музыке. AF3 сочетает аудио-энкодер в стиле Whisper с каузальной языковой моделью и выполняет слияние аудио и текста методом замены на месте: процессор выравнивает кадры аудио после пулинга со специальным токеном-заполнителем, а модель заменяет слоты этих токенов на спроецированные аудио-эмбеддинги во время прямого прохода.
Чекпоинт модели доступен по адресу: nvidia/audio-flamingo-3-hf
Ключевые моменты:
- Единый аудио-энкодер для речи, звуков и музыки.
- Поддержка длинных аудио за счёт оконной обработки и выравнивания после пулинга (максимум 10 минут). Модель обрабатывает аудио в окнах по 30 секунд с жёстким ограничением в 20 окон (10 минут суммарно). Аудио длительностью более 10 минут будет обрезано.
- Детерминированное слияние, сохраняющее длину последовательности путём замены плейсхолдер-токенов аудио на аудио-эмбеддинги.
Эта модель была предоставлена Lasha Koroshinadze и Eric Bezzam.
Статья
Audio Flamingo 3: Развитие аудиального интеллекта с помощью полностью открытых больших аудиоязыковых моделей
A. Goel, S. Ghosh, J. Kim, S. Kumar, Z. Kong, S. Lee, C.-H. H. Yang, R. Duraiswami, D. Manocha, R. Valle, B. Catanzaro
NVIDIA и Университет Мэриленда
Проект: https://research.nvidia.com/labs/adlr/AF3/
Использование
Режим Audio Instruct
Модель поддерживает аудио-текстовые инструкции, включая многоходовые взаимодействия, все они обрабатываются пачками.
➡️ аудио + текстовая инструкция
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor
model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
conversation = [
{
"role": "user",
"content": [
{"type": "text", "text": "Transcribe the input speech."},
{"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/WhDJDIviAOg_120_10.mp3"},
],
}
]
inputs = processor.apply_chat_template(
conversation,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
).to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=500)
decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)➡️ многоходовой:
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor
model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
conversation = [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Instruction: How does the tone of female speech change throughout the audio? Choose the correct option among the options below: (A) Sad to happy (B) Happy to sad (C) Neutral to happy (D) Happy to neutral.",
},
{"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/000000786159.31.wav"},
],
},
{
"role": "assistant",
"content": [{"type": "text", "text": "(A) Sad to happy"}],
},
{
"role": "user",
"content": [
{"type": "text", "text": "Why do you think so?"},
],
},
]
inputs = processor.apply_chat_template(
conversation,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
).to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=500)
decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)➡️ только текст:
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor
model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
conversation = [
{
"role": "user",
"content": [
{"type": "text", "text": "What is the capital of France?"},
],
}
]
inputs = processor.apply_chat_template(
conversation,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
).to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=500)
decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)➡️ только аудио:
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor
model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
conversation = [
{
"role": "user",
"content": [
{"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/WhDJDIviAOg_120_10.mp3"},
],
}
]
inputs = processor.apply_chat_template(
conversation,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
).to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=500)
decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)➡️ пакетный вывод!
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor
model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
conversations = [
[
{
"role": "user",
"content": [
{"type": "text", "text": "Transcribe the input speech."},
{
"type": "audio",
"path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/t_837b89f2-26aa-4ee2-bdf6-f73f0dd59b26.wav",
},
],
}
],
[
{
"role": "user",
"content": [
{
"type": "text",
"text": "This track feels really peaceful and introspective. What elements make it feel so calming and meditative?",
},
{"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/FPSbCAANfbJLVSwD.mp3"},
],
}
],
]
inputs = processor.apply_chat_template(
conversations,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
).to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=500)
decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)➡️ Обучение:
Передайте целевые транскрипты в apply_transcription_request с помощью transcription. Они записываются как ход ассистента, а labels возвращаются для вычисления функции потерь.
from datasets import Audio, load_dataset
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor
model_id = "nvidia/audio-flamingo-3-hf"
NUM_SAMPLES = 2
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
model.train()
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el["array"] for el in ds["audio"][:NUM_SAMPLES]]
text_samples = ds["text"][:NUM_SAMPLES]
inputs = processor.apply_transcription_request(speech_samples, transcription=text_samples)
inputs.to(model.device, dtype=model.dtype)
loss = model(**inputs).loss
print("Loss:", loss.item())
loss.backward()Для других задач помещайте целевое значение в ход ассистента и передавайте processor_kwargs={"output_labels": True}.
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor
model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
model.train()
conversation = [
{
"role": "user",
"content": [
{"type": "text", "text": "How does the tone of female speech change throughout the audio?"},
{"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/000000786159.31.wav"},
],
},
{
"role": "assistant",
"content": [{"type": "text", "text": "It goes from sad to happy."}],
},
]
inputs = processor.apply_chat_template(
conversation,
tokenize=True,
return_dict=True,
processor_kwargs={"output_labels": True},
).to(model.device, dtype=model.dtype)
loss = model(**inputs).loss
print("Loss:", loss.item())
loss.backward()➡️ сокращение для транскрипции
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor
model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
inputs = processor.apply_transcription_request(audio="https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/t_837b89f2-26aa-4ee2-bdf6-f73f0dd59b26.wav").to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=500)
decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True, strip_prefix=True)
print(decoded_outputs)Модель обучена выдавать транскрипции с префиксом в формате ассистента, например The spoken content of the audio is "<text>".. Используйте strip_prefix=True (как показано выше), чтобы удалить фиксированное предложение ассистента и окружающие кавычки, оставив только транскрипцию.
Как работает модель
Архитектура
AudioFlamingo3Encoder — экстрактор признаков и энкодер в стиле Whisper → усреднение по времени (шаг 2) → LayerNorm. Формирует скрытые состояния для каждого кадра на частоте после пулинга.
AudioFlamingo3MultiModalProjector Небольшой MLP, который отображает признаки энкодера в размер скрытого слоя языковой модели.
AudioFlamingo3ForConditionalGeneration — каузальная языковая модель, принимающая текстовые эмбеддинги, в которых каждый слот плейсхолдер-токена аудио заменяется на месте эмбеддингом кадра аудио. Слияние не приводит к изменению длины последовательности.
Выравнивание на уровне процессора
- Каждая исходная волновая форма разбивается на окна фиксированной длины на основе параметров
chunk_length(в секундах) иsampling_rate(Гц) экстрактора признаков. - Для каждого окна процессор вычисляет количество кадров после пулинга
post_pool_len, которые будет выдать энкодер (в соответствии с расписанием свёрток/пулинга). - Процессор расширяет аудио-заполнитель на общее количество кадров после пулинга по всем окнам.
- Затем модель заменяет позиции этих токенов на соответствующие проекции аудио-эмбеддингов.
Сценарии использования
Сокращение для транскрипции
Для автоматического распознавания речи можно не писать стандартную инструкцию каждый раз, а вызывать apply_transcription_request():
inputs = processor.apply_transcription_request(audio=audio_array)
Передайте prompt="Transcribe the input speech." (или список промптов для пакетной обработки аудио), чтобы настроить инструкцию, сохранив при этом обработку плейсхолдера аудио.
audio принимает массивы в памяти, локальные пути к файлам или URL. Все аргументы процессора (text_kwargs, audio_kwargs и т. д.)
передаются дальше, поэтому вы можете настраивать padding и форматы тензоров так же, как при вызове processor(...).
Длинные аудио и оконная обработка
Важно: максимальная длительность аудио составляет 10 минут. Более длинные аудио будут обрезаны.
По умолчанию обработка выполняется для 30-секундных окон с частотой дискретизации 16 кГц в моно-канале.
Процессор устанавливает жёсткий лимит в 20 окон на образец, что соответствует максимум 10 минутам аудио (20 окон × 30 секунд).
Для каждого окна:
mel_len— это дополненная длина мел-спектрограммы.- Стек свёрток сокращает время, так как
conv_output_len = (mel_len - 1) // 2 + 1. - Кадров после пулинга на окно:
post_pool_len = (conv_output_len - 2) // 2 + 1. - Токен-заполнитель для аудио раскрывается в сумму
post_pool_lenпо всем окнам.
Заполнение, внимание и кэширование
- Левое выравнивание и правое выравнивание При генерации с промптами разной длины в одном батче обычно предпочтительнее левое выравнивание. Для обучения чаще используют правое выравнивание; механизм слияния в AF3 сам по себе не зависит от типа выравнивания, поскольку он заменяет значения на месте.
- Маски внимания Процессор возвращает
attention_mask(для текста) иinput_features_mask(для аудио). Модель строит внутреннюю 4-мерную маску по оси предпулинга энкодера, где позиции заполнителей имеют значение отрицательной бесконечности. - Кэширование В процессе генерации
input_featuresиinput_features_maskпередаются только на первом шаге. Последующие шаги используют закэшированные ключи/значения из языковой модели.
Устранение неполадок
- Пустые или усечённые результаты при пакетной обработке Используйте выравнивание слева (left padding) для пакетной генерации и декодируйте только новые токены после длины промпта, как показано в быстром старте.
AudioFlamingo3Config
класс transformers.AudioFlamingo3Config
< 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 = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_token_id: int = 151669projector_hidden_act: str = 'gelu'projector_bias: bool = True )
Параметры
- audio_config (
Union[dict, ~configuration_utils.PreTrainedConfig], необязательный) — Объект конфигурации или словарь конфигурации аудио-бэкбона. - text_config (
Union[dict, ~configuration_utils.PreTrainedConfig], необязательный) — Объект конфигурации или словарь конфигурации текстового бэкбона. - audio_token_id (
int, необязательный, по умолчанию151669) — Индекс аудио-токена, используемый как плейсхолдер для входного аудио. - projector_hidden_act (
str, необязательный, по умолчаниюgelu) — Функция активации, используемая мультимодальным проектором. - projector_bias (
bool, необязательный, по умолчаниюTrue) — Использовать ли смещение (bias) в мультимодальном проекторе.
Это класс конфигурации для хранения настроек модели AudioFlamingo3Model. Он используется для создания модели Audioflamingo3 в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации модели nvidia/audio-flamingo-3-hf.
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
Пример:
>>> from transformers import AudioFlamingo3ForConditionalGeneration, AudioFlamingo3Config, AudioFlamingo3EncoderConfig, Qwen2Config
>>> # Initializing an AudioFlamingo3Encoder config
>>> audio_config = AudioFlamingo3EncoderConfig()
>>> # Initializing a Qwen2 config
>>> text_config = Qwen2Config()
>>> # Initializing an AudioFlamingo3 configuration
>>> configuration = AudioFlamingo3Config(audio_config, text_config)
>>> # Initializing a model from the audioflamingo3 style configuration
>>> model = AudioFlamingo3ForConditionalGeneration(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configAudioFlamingo3EncoderConfig
класс transformers.AudioFlamingo3EncoderConfig
< 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 = Nonenum_mel_bins: int = 128num_hidden_layers: int = 32num_attention_heads: int = 20intermediate_size: int = 5120layerdrop: float | int = 0.0activation_function: str = 'gelu'hidden_size: int = 1280dropout: float | int = 0.0attention_dropout: float | int = 0.0activation_dropout: float | int = 0.0initializer_range: float = 0.02scale_embedding: bool = Falsemax_source_positions: int = 1500 )
Параметры
- num_mel_bins (
int, необязательный, по умолчанию128) — Количество mel-признаков, используемых на входной кадр. Должно соответствовать значению, используемому в классеAutoFeatureExtractor. - num_hidden_layers (
int, необязательный, по умолчанию32) — Количество скрытых слоев в декодере Transformer. - num_attention_heads (
int, необязательный, по умолчанию20) — Количество головок внимания в каждом слое внимания декодера Transformer. - intermediate_size (
int, необязательный, по умолчанию5120) — Размерность представлений MLP. - layerdrop (
Union[float, int], необязательный, по умолчанию0.0) — Вероятность LayerDrop. См. [статью о LayerDrop](см. https://huggingface.co/papers/1909.11556) для подробностей. - activation_function (
str, необязательный, по умолчаниюgelu) — Нелинейная функция активации (функция или строка) в декодере. Например,"gelu","relu","silu"и т. д. - hidden_size (
int, необязательный, по умолчанию1280) — Размерность скрытых представлений. - dropout (
Union[float, int], необязательный, по умолчанию0.0) — Коэффициент для всех слоёв dropout. - attention_dropout (
Union[float, int], необязательный, по умолчанию0.0) — Коэффициент dropout для вероятностей внимания. - activation_dropout (
Union[float, int], необязательный, по умолчанию0.0) — Коэффициент dropout для активаций внутри полносвязного слоя. - initializer_range (
float, необязательный, по умолчанию0.02) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов. - scale_embedding (
bool, необязательный, по умолчаниюFalse) — Указывает, следует ли масштабировать эмбеддинги, деля их на sqrt(d_model). - max_source_positions (
int, необязательный, по умолчанию 1500) — Максимальная длина последовательности лог-мел-фильтр-банковых признаков, с которой может использоваться данная модель.
Это класс конфигурации для хранения настроек модели AudioFlamingo3Model. Он используется для создания модели Audioflamingo3 в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации модели nvidia/audio-flamingo-3-hf.
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
Пример:
>>> from transformers import AudioFlamingo3EncoderConfig, AudioFlamingo3Encoder
>>> # Initializing an AudioFlamingo3EncoderConfig
>>> configuration = AudioFlamingo3EncoderConfig()
>>> # Initializing an AudioFlamingo3Encoder (with random weights)
>>> model = AudioFlamingo3Encoder(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configAudioFlamingo3Processor
класс transformers.AudioFlamingo3Processor
< source >( feature_extractortokenizerchat_template = Noneaudio_token = '<sound>'default_transcription_prompt = 'Transcribe the input speech.'max_audio_len = 600 )
Параметры
- feature_extractor (
WhisperFeatureExtractor) — Извлечение признаков является обязательным входом. - tokenizer (
Qwen2Tokenizer) — Токенизатор является обязательным входным параметром. - chat_template (
str) — Jinja-шаблон для преобразования списков сообщений в чате в строку, пригодную для токенизации. - audio_token (
Optional[str], необязательный, по умолчанию"<sound>") — Специальный токен, используемый для представления аудиовходов в шаблоне чата. - default_transcription_prompt (
str, необязательный, по умолчанию"Transcribe the input speech.") — Промпт по умолчанию, используемый для задач транскрипции при обработке запросов на транскрипцию. - max_audio_len (
int, необязательный, по умолчанию 600) — Максимальная длина аудиопоследовательностей в секундах. Аудио, превышающее эту длину, будет обрезано.
Создаёт AudioFlamingo3Processor, который объединяет feature extractor и tokenizer в единый processor.
AudioFlamingo3Processor предоставляет все возможности WhisperFeatureExtractor и Qwen2Tokenizer. Подробнее см. в документации ~WhisperFeatureExtractor и ~Qwen2Tokenizer.
__call__
< source >( text: str | list[str]audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = Noneoutput_labels: bool | None = False**kwargs: *<class 'transformers.models.audioflamingo3.processing_audioflamingo3.AudioFlamingo3ProcessorKwargs'> ) → BatchFeature
Параметры
- text (
Union[str, list[str]]) — Последовательность или батч последовательностей для кодирования. Каждая последовательность может быть строкой или списком строк (предварительно токенизированная строка). Если вы передаёте предварительно токенизированный вход, установитеis_split_into_words=True, чтобы избежать неоднозначности с батчами. - audio (
Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], необязательный) — Аудио или пакет аудио, подлежащий подготовке. Каждое аудио может быть массивом NumPy или тензором PyTorch. В случае массива NumPy/тензора PyTorch каждое аудио должно иметь форму (C, T), где C — количество каналов, а T — длина выборки аудио. - output_labels (
bool, необязательный, по умолчанию=False) — Возвращать ли метки для обучения. - return_tensors (
strили TensorType, необязательный) — Если задано, возвращает тензоры конкретного фреймворка. Допустимые значения:'pt': возвращает объектыtorch.TensorPyTorch.'np': возвращает объекты NumPynp.ndarray.
- **kwargs (ProcessingKwargs, optional) — Дополнительные параметры обработки для каждой модальности (текст, изображения, видео, аудио). Специфичные для модели параметры перечислены выше; полный список поддерживаемых аргументов см. в классе TypedDict.
Возвращает
Словарь с токенизированным текстом (input_ids, attention_mask) и
аудио-признаками (input_features, input_features_mask).
AudioFlamingo3Encoder
класс transformers.AudioFlamingo3Encoder
< source >( config: AudioFlamingo3EncoderConfig )
Параметры
- config (AudioFlamingo3EncoderConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
Аудиомодель из AudioFlamingo3 без какой-либо головы или проекции сверху.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_features: Tensorinput_features_mask: typing.Optional[torch.Tensor] = None**kwargs )
Параметры
- input_features (
torch.Tensorформы(batch_size, feature_size, sequence_length)) — Log-Mel-фичи, извлечённые из исходного аудио. Используйте процессор/извлекатель фич для вычисления и дополнения этих фич из входного сигнала. - input_features_mask (
torch.Tensorс формой(batch_size, sequence_length), , необязательный) — Маска для предотвращения применения внимания к индексам заполняющих признаков. Значения маски выбираются из[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
AudioFlamingo3Model
класс transformers.AudioFlamingo3Model
< source >( config: AudioFlamingo3Config )
Параметры
- config (AudioFlamingo3Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
Модель AudioFlamingo3 (дообученный энкодер Whisper, мультимодальный проектор, языковая модель Qwen2), без головы для моделирования языка.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → AudioFlamingo3ModelOutputWithPast or tuple(torch.Tensor)
Параметры
- input_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- input_features (
torch.Tensorформы(batch_size, sequence_length, feature_dim), необязательный) — Тензоры, соответствующие входным аудиособытиям. Аудиособытия можно получить с помощью WhisperFeatureExtractor. Подробности см. в WhisperFeatureExtractor.call() (AudioFlamingo3Processor использует WhisperFeatureExtractor для обработки аудио). - input_features_mask (
torch.Tensorформы(batch_size, feature_sequence_length)) — Маска для исключения применения внимания к индексам заполняющих признаков. - attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- position_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно этоpast_key_values, возвращённые моделью на предыдущем этапе декодирования, когдаuse_cache=Trueилиconfig.use_cache=True.В качестве входного параметра допускается только экземпляр Cache, см. наше руководство по кэшу KV. Если
past_key_valuesне переданы, по умолчанию будет инициализирован DynamicCache.Модель будет выводить тот же формат кэша, который был передан на вход.
Если используются
past_key_values, ожидается, что пользователь передаст только необработанныеinput_ids(те, для которых в этой модели ещё не заданы состояния прошлых ключей и значений) формы(batch_size, unprocessed_length), а не всеinput_idsформы(batch_size, sequence_length). - inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - use_cache (
bool, необязательный) — Если установлено вTrue, возвращаются состояния ключей и значенийpast_key_values, которые можно использовать для ускорения декодирования (см.past_key_values).
Возвращает
AudioFlamingo3ModelOutputWithPast или tuple(torch.Tensor)
AudioFlamingo3ModelOutputWithPast или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (AudioFlamingo3Config) и входных данных.
Метод forward модели AudioFlamingo3Model переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
- audio_hidden_states (
torch.Tensor, необязательный) — Спроецированные скрытые состояния аудио.
AudioFlamingo3ForConditionalGeneration
класс transformers.AudioFlamingo3ForConditionalGeneration
< source >( config: AudioFlamingo3Config )
Параметры
- config (AudioFlamingo3Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
Модель AudioFlamingo3, состоящая из дообученного кодировщика Whisper, мультимодального проектора и языковой модели Qwen2.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → AudioFlamingo3CausalLMOutputWithPast or tuple(torch.Tensor)
Параметры
- input_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- input_features (
torch.Tensorформы(batch_size, sequence_length, feature_dim), необязательный) — Тензоры, соответствующие входным аудиособытиям. Аудиособытия можно получить с помощью WhisperFeatureExtractor. Подробности см. в WhisperFeatureExtractor.call() (AudioFlamingo3Processor использует WhisperFeatureExtractor для обработки аудио). - input_features_mask (
torch.Tensorформы(batch_size, feature_sequence_length)) — Маска для исключения применения внимания к индексам заполняющих признаков. - attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- position_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно этоpast_key_values, возвращённые моделью на предыдущем этапе декодирования, когдаuse_cache=Trueилиconfig.use_cache=True.В качестве входного параметра допускается только экземпляр Cache, см. наше руководство по кэшу KV. Если
past_key_valuesне переданы, по умолчанию будет инициализирован DynamicCache.Модель будет выводить тот же формат кэша, который был передан на вход.
Если используются
past_key_values, ожидается, что пользователь передаст только необработанныеinput_ids(те, для которых в этой модели ещё не заданы состояния прошлых ключей и значений) формы(batch_size, unprocessed_length), а не всеinput_idsформы(batch_size, sequence_length). - inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - labels (
torch.LongTensorформы(batch_size, sequence_length), необязательный) — Метки для вычисления потерь маскированного языкового моделирования. - use_cache (
bool, необязательный) — Если установлено вTrue, возвращаются состояния ключей и значенийpast_key_values, которые можно использовать для ускорения декодирования (см.past_key_values). - logits_to_keep (
Union[int, torch.Tensor], необязательный, по умолчанию0) — Если передано значение типаint, вычисляет logits для последнихlogits_to_keepтокенов. Если указано0, logits вычисляются для всехinput_ids(особый случай). Для генерации нужны logits только последнего токена, и вычисление их только для этого токена позволяет сэкономить память, что становится весьма значимым для длинных последовательностей или большого размера словаря. Если передано значение типаtorch.Tensor, оно должно быть одномерным и соответствовать индексам, которые нужно сохранить в измерении длины последовательности. Это полезно при использовании упакованного формата тензоров (один размер для batch и длины последовательности).
Возвращает
AudioFlamingo3CausalLMOutputWithPast или tuple(torch.Tensor)
AudioFlamingo3CausalLMOutputWithPast или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (AudioFlamingo3Config) и входных данных.
Метод forward класса AudioFlamingo3ForConditionalGeneration переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
loss (
torch.Tensorформы(1,), необязательный, возвращается, если заданlabels) — Потери языковой модели (для предсказания следующего токена).logits (
torch.Tensorформы(batch_size, sequence_length, config.vocab_size)) — Оценки предсказаний языковой модели.past_key_values (
Cache, необязательный, возвращается при передачеuse_cache=Trueили когдаconfig.use_cache=True) — это экземпляр Cache.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_hidden_states (
torch.Tensor, необязательный) — Скрытые состояния аудио-кодера после проекции.