Transformers documentation

Mimi

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Эта модель была добавлена в Hugging Face Transformers 18.09.2024.

FlashAttention SDPA

Mimi

Mimi — это нейросетевая модель аудиокодека с предобученными и квантованными вариантами, предназначенная для эффективного представления и сжатия речи. Модель работает на скорости 1,1 кбит/с с частотой кадров 12 Гц и использует архитектуру свёрточного кодировщика-декодировщика в сочетании с остаточным векторным квантовщиком из 16 книг кодов. Mimi формирует два потока токенов — семантический и акустический, — чтобы сбалансировать лингвистическую насыщенность и высокое качество восстановления. Ключевые особенности включают каузальный потоковый кодировщик для работы с низкой задержкой, двухпутевую токенизацию для гибкой генерации на нижестоящих этапах и готовность к интеграции с крупными речевыми моделями, такими как Moshi.

Оригинальные контрольные точки Mimi можно найти в организации Kyutai.

Эта модель была предоставлена пользователем ylacombe.

Щёлкните по моделям Mimi в боковой панели справа, чтобы увидеть больше примеров применения Mimi.

Приведённый ниже пример демонстрирует, как кодировать и декодировать аудио с помощью класса AutoModel.

AutoModel
from datasets import Audio, load_dataset

from transformers import AutoFeatureExtractor, MimiModel


librispeech_dummy = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")

# load model and feature extractor
model = MimiModel.from_pretrained("kyutai/mimi", device_map="auto")
feature_extractor = AutoFeatureExtractor.from_pretrained("kyutai/mimi")

# load audio sample
librispeech_dummy = librispeech_dummy.cast_column("audio", Audio(sampling_rate=feature_extractor.sampling_rate))
audio_sample = librispeech_dummy[-1]["audio"]["array"]
inputs = feature_extractor(raw_audio=audio_sample, sampling_rate=feature_extractor.sampling_rate, return_tensors="pt").to(model.device)

encoder_outputs = model.encode(inputs["input_values"], inputs["padding_mask"])
audio_values = model.decode(encoder_outputs.audio_codes, inputs["padding_mask"])[0]
# or the equivalent with a forward pass
audio_values = model(inputs["input_values"], inputs["padding_mask"]).audio_values

MimiConfig

класс transformers.MimiConfig

< >

( 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 = Nonesampling_rate: int = 24000audio_channels: int = 1hidden_size: int = 512num_filters: int = 64num_residual_layers: int = 1upsampling_ratios: list[int] | None = Nonekernel_size: int = 7last_kernel_size: int = 3residual_kernel_size: int = 3dilation_growth_rate: int = 2use_causal_conv: bool = Truepad_mode: str = 'constant'compress: int = 2trim_right_ratio: float = 1.0codebook_size: int = 2048codebook_dim: int = 256num_quantizers: int = 32use_conv_shortcut: bool = Falsevector_quantization_hidden_dimension: int = 256num_semantic_quantizers: int = 1upsample_groups: int = 512num_hidden_layers: int = 8intermediate_size: int = 2048num_attention_heads: int = 8num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'gelu'max_position_embeddings: int = 8000initializer_range: float = 0.02norm_eps: float = 1e-05use_cache: bool = Falseuse_streaming: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 250attention_dropout: float | int = 0.0layer_scale_initial_scale: float = 0.01attention_bias: bool = Falsetie_word_embeddings: bool = True )

Параметры

  • sampling_rate (int, необязательный, по умолчанию 24000) — Частота дискретизации, с которой аудиофайлы должны быть оцифрованы, выраженная в герцах (Гц).
  • audio_channels (int, необязательный, по умолчанию 1) — Количество каналов в аудиоданных. 1 для моно или 2 для стерео.
  • hidden_size (int, необязательный, по умолчанию 512) — Размерность скрытых представлений.
  • num_filters (int, необязательный, по умолчанию 64) — Количество свёрточных ядер первого слоя понижающей дискретизации MimiConv1d.
  • num_residual_layers (int, необязательный, по умолчанию 1) — Количество остаточных слоев.
  • upsampling_ratios (Sequence[int], необязательный) — Соотношения размеров ядра и шага. Кодировщик использует соотношения уменьшения вместо соотношений увеличения, поэтому он будет использовать соотношения в обратном порядке по сравнению с указанными здесь, которые должны соответствовать порядку декодера. Если не указано, по умолчанию устанавливается [8, 6, 5, 4]
  • kernel_size (int, необязательный, по умолчанию 7) — Размер свёрточного ядра.
  • last_kernel_size (int, необязательный, по умолчанию 3) — Размер ядра для последнего свёрточного слоя.
  • residual_kernel_size (int, необязательный, по умолчанию 3) — Размер ядра для остаточных слоёв.
  • dilation_growth_rate (int, необязательный, по умолчанию 2) — Во сколько раз увеличивать дилатацию на каждом слое.
  • use_causal_conv (bool, необязательный, по умолчанию True) — Использовать ли полностью каузальную свёртку.
  • pad_mode (str, необязательный, по умолчанию "constant") — Режим дополнения (padding) для свёрток.
  • compress (int, необязательный, по умолчанию 2) — Сокращённая размерность в остаточных ветвях.
  • trim_right_ratio (float, необязательный, по умолчанию 1.0) — Коэффициент обрезки справа для транспонированной свёртки при настройке use_causal_conv = True. Если равен 1.0, это означает, что вся обрезка выполняется справа.
  • codebook_size (int, необязательный, по умолчанию 2048) — Количество параллельных кодовых книг, используемых моделью.
  • codebook_dim (int, необязательный, по умолчанию 256) — Размерность каждого вектора встраивания кодовой книги.
  • num_quantizers (int, необязательный, по умолчанию 32) — Количество каналов квантизатора, то есть кодовых книг, в квантизаторе.
  • use_conv_shortcut (bool, необязательный, по умолчанию False) — Использовать ли свёрточный слой в качестве «обходного» соединения в блоке MimiResnetBlock. Если False, будет использована тождественная функция, что даст обычное остаточное соединение.
  • vector_quantization_hidden_dimension (int, необязательный, по умолчанию 256) — Размерность промежуточного представления в пространстве остаточного векторного квантования.
  • num_semantic_quantizers (int, необязательный, по умолчанию 1) — Количество каналов семантического квантизатора, то есть кодовых книг, в семантическом квантизаторе. Должно быть меньше, чем num_quantizers.
  • upsample_groups (int, необязательный, по умолчанию 512) — Если frame_rate!=encodec_frame_rate, указывает количество групп, используемых в операции апсемплинга для перехода от одной частоты к другой.
  • num_hidden_layers (int, необязательный, по умолчанию 8) — Количество скрытых слоев в декодере Transformer.
  • intermediate_size (int, необязательный, по умолчанию 2048) — Размерность представлений MLP.
  • num_attention_heads (int, необязательный, по умолчанию 8) — Количество головок внимания в каждом слое внимания декодера Transformer.
  • num_key_value_heads (int, необязательный, по умолчанию 8) — Это количество ключевых и 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, необязательный) — Размер измерения головы внимания. Если значение равно None, по умолчанию используется hidden_size // num_attention_heads
  • hidden_act (str, необязательный, по умолчанию gelu) — Нелинейная функция активации (функция или строка) в декодере. Например, "gelu", "relu", "silu" и т. д.
  • max_position_embeddings (int, необязательный, по умолчанию 8000) — Максимальная длина последовательности, с которой может использоваться эта модель.
  • initializer_range (float, необязательный, по умолчанию 0.02) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов.
  • norm_eps (float, необязательный, по умолчанию 1e-05) — Значение epsilon, используемое слоями нормализации.
  • use_cache (bool, необязательный, по умолчанию False) — Указывает, должен ли модель возвращать последние ключи/значения внимания (не используется во всех моделях). Актуально только если config.is_decoder=True или если модель является генеративной моделью только с декодером.
  • use_streaming (bool, необязательный, по умолчанию False) — Использовать ли режим потоковой обработки. Если True, метод кодирования модели возвращает кэш заполнителей, который можно использовать в последующем вызове метода кодирования.
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], необязательный) — Словарь, содержащий параметры конфигурации для эмбеддингов RoPE. Словарь должен содержать значение для rope_theta и, при необходимости, параметры, используемые для масштабирования, если вы хотите использовать RoPE с более длинными max_position_embeddings.
  • sliding_window (int, необязательный, по умолчанию 250) — Размер окна скользящего внимания. Если None, скользящее окно не применяется.
  • attention_dropout (Union[float, int], необязательный, по умолчанию 0.0) — Коэффициент dropout для вероятностей внимания.
  • layer_scale_initial_scale (float, необязательный, по умолчанию 0.01) — Масштаб, используемый в слоях само-внимания. 0.1 для базовой модели, 1e-6 для крупной. Установите 0, чтобы отключить масштабирование слоя.
  • attention_bias (bool, необязательный, по умолчанию False) — Использовать ли смещение (bias) в слоях проекции query, key, value и output при само-внимании.
  • tie_word_embeddings (bool, необязательный, по умолчанию True) — Определяет, следует ли связывать веса эмбеддингов согласно маппингу tied_weights_keys модели.

Это класс конфигурации для хранения настроек модели MimiModel. Он используется для создания модели Mimi в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации kyutai/mimi

Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.

Пример:

>>> from transformers import MimiModel, MimiConfig

>>> # Initializing a "kyutai/mimi" style configuration
>>> configuration = MimiConfig()

>>> # Initializing a model (with random weights) from the "kyutai/mimi" style configuration
>>> model = MimiModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

MimiEncoderConfig

класс transformers.MimiEncoderConfig

< >

( 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 = Nonesampling_rate: int = 24000audio_channels: int = 1hidden_size: int = 512num_filters: int = 64num_residual_layers: int = 1upsampling_ratios: list[int] | None = Nonekernel_size: int = 7last_kernel_size: int = 3residual_kernel_size: int = 3dilation_growth_rate: int = 2use_causal_conv: bool = Truepad_mode: str = 'constant'compress: int = 2trim_right_ratio: float = 1.0codebook_size: int = 2048codebook_dim: int = 256num_quantizers: int = 32use_conv_shortcut: bool = Falsevector_quantization_hidden_dimension: int = 256num_semantic_quantizers: int = 1upsample_groups: int = 512num_hidden_layers: int = 8intermediate_size: int = 2048num_attention_heads: int = 8num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'gelu'max_position_embeddings: int = 8000initializer_range: float = 0.02norm_eps: float = 1e-05use_cache: bool = Falseuse_streaming: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 250attention_dropout: float | int = 0.0layer_scale_initial_scale: float = 0.01attention_bias: bool = Falsetie_word_embeddings: bool = True )

Конфигурация энкодерной части Mimi (энкодер SEANet, трансформер энкодера и даунсемплинг). Она разделяет все поля с MimiConfig (см. документацию по аргументам), поэтому может быть загружена напрямую из полного чекпоинта Mimi.

MimiDecoderConfig

класс transformers.MimiDecoderConfig

< >

( 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 = Nonesampling_rate: int = 24000audio_channels: int = 1hidden_size: int = 512num_filters: int = 64num_residual_layers: int = 1upsampling_ratios: list[int] | None = Nonekernel_size: int = 7last_kernel_size: int = 3residual_kernel_size: int = 3dilation_growth_rate: int = 2use_causal_conv: bool = Truepad_mode: str = 'constant'compress: int = 2trim_right_ratio: float = 1.0codebook_size: int = 2048codebook_dim: int = 256num_quantizers: int = 32use_conv_shortcut: bool = Falsevector_quantization_hidden_dimension: int = 256num_semantic_quantizers: int = 1upsample_groups: int = 512num_hidden_layers: int = 8intermediate_size: int = 2048num_attention_heads: int = 8num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'gelu'max_position_embeddings: int = 8000initializer_range: float = 0.02norm_eps: float = 1e-05use_cache: bool = Falseuse_streaming: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 250attention_dropout: float | int = 0.0layer_scale_initial_scale: float = 0.01attention_bias: bool = Falsetie_word_embeddings: bool = True )

Конфигурация декодерной части Mimi (апсемплинг, трансформер-декодер и декодер SEANet). Она разделяет все поля с MimiConfig (см. документацию по аргументам), поэтому может быть загружена напрямую из полной контрольной точки Mimi.

MimiModel

класс transformers.MimiModel

< >

( config: MimiConfig )

Параметры

  • config (MimiConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().

Модель нейросетевого аудиокодера Mimi.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

decode

< >

( audio_codes: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonedecoder_past_key_values: transformers.cache_utils.Cache | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )

Декодирует указанные кадры в выходную аудиоволну: коды деквантуются в латенты для MimiDecoderModel.forward().

encode

< >

( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonenum_quantizers: float | None = Noneencoder_past_key_values: transformers.cache_utils.Cache | None = Nonepadding_cache: transformers.models.mimi.modeling_mimi.MimiConv1dPaddingCache | None = Noneuse_streaming: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )

Кодирует входную аудиоволну в дискретные коды формы (batch_size, num_quantizers, frames): квантованные латенты MimiEncoderModel.forward().

forward

< >

( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonenum_quantizers: int | None = Noneaudio_codes: typing.Optional[torch.Tensor] = Noneencoder_past_key_values: transformers.cache_utils.Cache | None = Nonedecoder_past_key_values: transformers.cache_utils.Cache | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MimiOutput or tuple(torch.Tensor)

Параметры

  • input_values (torch.Tensor формы (batch_size, channels, sequence_length), необязательный) — Сырые входные аудиоданные, преобразованные в Float.
  • padding_mask (torch.Tensor формы (batch_size, sequence_length), необязательный) — Указывает, какие входные данные следует игнорировать из-за выравнивания (padding), где элементы равны 1 для не замаскированных или 0 для замаскированных.
  • num_quantizers (int, необязательный) — Количество квантизаторов (т. е. кодовых книг) для использования. По умолчанию используются все квантизаторы.
  • audio_codes (torch.LongTensor с формой (batch_size, num_quantizers, codes_length), необязательный) — Дискретные кодовые эмбеддинги, вычисленные с помощью model.encode.
  • encoder_past_key_values (Cache, необязательный) — Предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания), которые можно использовать для ускорения последовательного декодирования трансформера-энкодера. Обычно это past_key_values , возвращённые моделью на предыдущем этапе декодирования, когда use_cache=True или config.use_cache=True.

    Модель будет выводить тот же формат кэша, который был передан на вход.

    Если используются past_key_values, пользователь может по желанию передать только последние audio_values или `audio_codes (те, для которых не заданы состояния прошлых ключевых значений в этой модели).

  • decoder_past_key_values (Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания), которые можно использовать для ускорения последовательного декодирования декодерного трансформера. Обычно это past_key_values , возвращённые моделью на предыдущем этапе декодирования, когда use_cache=True или config.use_cache=True.

    Модель будет выводить тот же формат кэша, который был передан на вход.

    Если используются past_key_values, пользователь может по желанию передать только последние audio_values или `audio_codes (те, для которых не заданы состояния прошлых ключевых значений в этой модели).

Возвращает

MimiOutput или tuple(torch.Tensor)

MimiOutput или кортеж torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (MimiConfig) и входных данных.

Метод forward модели MimiModel переопределяет специальный метод __call__.

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

  • audio_codes (torch.LongTensor формы (batch_size, num_quantizers, codes_length), необязательный) — Векторы дискретных кодов, вычисленные с помощью model.encode.

  • audio_values (torch.Tensor формы (batch_size, sequence_length), необязательный) — Декодированные значения аудио, полученные с помощью декодерной части Mimi.

  • encoder_past_key_values (Cache, необязательный) — заранее вычисленные скрытые состояния (ключи и значения в блоках само-внимания), которые можно использовать для ускорения последовательного декодирования трансформера-кодировщика. Обычно это past_key_values, возвращаемые моделью на предыдущем этапе декодирования, когда use_cache=True или config.use_cache=True.

    Модель будет выводить тот же формат кэша, который был передан на вход.

    Если используются past_key_values, пользователь может по желанию передать только последние audio_values или `audio_codes (те, для которых не заданы состояния прошлых ключевых значений в этой модели).

  • decoder_past_key_values (Cache, необязательный) — заранее вычисленные скрытые состояния (ключи и значения в блоках само-внимания), которые можно использовать для ускорения последовательного декодирования декодерного трансформера. Обычно это past_key_values, возвращаемые моделью на предыдущем этапе декодирования, когда use_cache=True или config.use_cache=True.

    Модель будет выводить тот же формат кэша, который был передан на вход.

    Если используются past_key_values, пользователь может по желанию передать только последние audio_values или `audio_codes (те, для которых не заданы состояния прошлых ключевых значений в этой модели).

Примеры:

>>> from datasets import load_dataset
>>> from transformers import AutoFeatureExtractor, MimiModel

>>> dataset = load_dataset("hf-internal-testing/ashraq-esc50-1-dog-example")
>>> audio_sample = dataset["train"]["audio"][0]["array"]

>>> model_id = "kyutai/mimi"
>>> model = MimiModel.from_pretrained(model_id)
>>> feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)

>>> inputs = feature_extractor(raw_audio=audio_sample, return_tensors="pt")

>>> outputs = model(**inputs)
>>> audio_codes = outputs.audio_codes
>>> audio_values = outputs.audio_values

MimiEncoderModel

класс transformers.MimiEncoderModel

< >

( config: MimiEncoderConfig )

Параметры

  • config (MimiEncoderConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().

Кодировательная часть Mimi: кодировщик SEANet, трансформер-кодировщик и понижающая дискретизация, преобразующие аудио в непрерывные латенты.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonepadding_cache: transformers.models.mimi.modeling_mimi.MimiConv1dPaddingCache | None = Noneuse_streaming: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MimiEncoderModelOutput or tuple(torch.Tensor)

Параметры

  • input_values (torch.Tensor формы (batch_size, channels, sequence_length)) — Значения типа float для входной аудиоволны.
  • padding_mask (torch.Tensor формы (batch_size, channels, sequence_length), необязательный) — Указывает, какие входные данные следует игнорировать из-за отступов (padding), где элементы равны 1 для не замаскированных или 0 для замаскированных.
  • past_key_values (Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания) трансформера-кодировщика, используемые для ускорения потокового кодирования.
  • padding_cache (MimiConv1dPaddingCache, optional) — Кэш отступов для каузальных свёрток, используемый для потокового кодирования.
  • use_streaming (bool, необязательный) — Указывает, следует ли кодировать в потоковом режиме, возвращая кэши для передачи в следующий вызов.
  • Encodes входную аудиоволну в непрерывные латенты формы (batch_size, latent_dim, frames). —

Возвращает

MimiEncoderModelOutput или tuple(torch.Tensor)

MimiEncoderModelOutput или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (MimiConfig) и входных данных.

Метод forward модели MimiEncoderModel переопределяет специальный метод __call__.

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

  • latents (torch.Tensor формы (batch_size, latent_dim, frames)) — Непрерывные латенты аудио, один кадр на config.frame_size аудиовыборок.
  • past_key_values (Cache, необязательный) — предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания) трансформера-кодировщика, возвращаемые при потоковой обработке.
  • padding_cache (MimiConv1dPaddingCache, optional) — Кэш отступов для каузальных свёрток MimiConv1d, обеспечивающий поддержку потоковой обработки за счёт заполнения кэша.
  • hidden_states (tuple(torch.Tensor), необязательный, возвращается при output_hidden_states=True) — Скрытые состояния трансформера-кодировщика на выходе каждого слоя, включая его вход.
  • attentions (tuple(torch.Tensor), необязательный, возвращается при output_attentions=True) — Веса внимания каждого слоя трансформера-кодировщика.

MimiDecoderModel

класс transformers.MimiDecoderModel

< >

( config: MimiDecoderConfig )

Параметры

  • config (MimiDecoderConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.

Декодерная часть Mimi: апсемплинг, декодер-трансформер и декодер SEANet, преобразующие непрерывные латенты в аудио.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( latents: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MimiDecoderOutput or tuple(torch.Tensor)

Параметры

  • latents (torch.Tensor формы (batch_size, hidden_size, frames)) — Непрерывные латенты для декодирования, вычисленные с помощью MimiModel.decode().
  • padding_mask (torch.Tensor формы (batch_size, channels, sequence_length), необязательный) — Указывает, какие входные данные следует игнорировать из-за отступов (padding), где элементы равны 1 для не замаскированных или 0 для замаскированных.
  • past_key_values (Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания) декодера-трансформера, используемые для ускорения потокового декодирования.
  • Decodes преобразует указанные кадры в выходную аудиоволну. Обратите внимание, что выходной сигнал может быть немного больше, чем —
  • input. В этом случае любые дополнительные шаги в конце можно отбросить. —

Возвращает

MimiDecoderOutput или tuple(torch.Tensor)

MimiDecoderOutput или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (MimiConfig) и входных данных.

Метод forward модели MimiDecoderModel переопределяет специальный метод __call__.

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

  • audio_values (torch.Tensor формы (batch_size, audio_channels, num_samples), необязательный) — Декодированные значения аудио, полученные с помощью декодерной части Mimi.

  • decoder_past_key_values (Cache, необязательный) — заранее вычисленные скрытые состояния (ключи и значения в блоках само-внимания), которые можно использовать для ускорения последовательного декодирования декодерного трансформера. Обычно это past_key_values, возвращаемые моделью на предыдущем этапе декодирования, когда use_cache=True или config.use_cache=True.

    Модель будет выводить тот же формат кэша, который был передан на вход.

    Если используются past_key_values, пользователь может по желанию передать только последние audio_values или `audio_codes (те, для которых не заданы состояния прошлых ключевых значений в этой модели).

  • hidden_states (tuple(torch.Tensor), необязательный, возвращается при output_hidden_states=True) — Скрытые состояния декодера-трансформера на выходе каждого слоя, включая его вход.

  • attentions (tuple(torch.Tensor), необязательный, возвращается при output_attentions=True) — Веса внимания каждого слоя декодера трансформера.

Update on GitHub