Transformers documentation
Mimi
Este modelo fue aportado a Hugging Face Transformers el 2024-09-18.
Mimi
Mimi es un modelo de códec de audio neuronal con variantes preentrenadas y cuantizadas, diseñado para la representación y compresión eficientes del habla. El modelo opera a 1,1 kbps con una tasa de fotogramas de 12 Hz y utiliza una arquitectura de codificador-decodificador convolucional combinada con un cuantizador vectorial residual de 16 libros de códigos. Mimi genera flujos duales de tokens, es decir, semánticos y acústicos, para equilibrar la riqueza lingüística con la reconstrucción de alta fidelidad. Sus características principales incluyen un codificador de streaming causal para un uso de baja latencia, una tokenización de doble vía para una generación flexible aguas abajo y una preparación para la integración con modelos de habla de gran escala como Moshi.
Puedes encontrar los checkpoints originales de Mimi bajo la organización Kyutai.
Este modelo fue aportado por ylacombe.
Haz clic en los modelos Mimi en la barra lateral derecha para ver más ejemplos de cómo aplicar Mimi.
El siguiente ejemplo demuestra cómo codificar y decodificar audio con la clase 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_valuesMimiConfig
clase transformers.MimiConfig
< 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 = 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 )
Parámetros
- sampling_rate (
int, opcional, valor predeterminado24000) — La tasa de muestreo a la que deben digitalizarse los archivos de audio, expresada en hercios (Hz). - audio_channels (
int, opcional, valor predeterminado 1) — Número de canales en los datos de audio. 1 para mono o 2 para estéreo. - hidden_size (
int, opcional, valor predeterminado512) — Dimensión de las representaciones ocultas. - num_filters (
int, opcional, valor predeterminado 64) — Número de núcleos de convolución de la primera capa de muestreo descendenteMimiConv1d. - num_residual_layers (
int, opcional, valor predeterminado 1) — Número de capas residuales. - upsampling_ratios (
Sequence[int], opcional) — Proporciones de tamaño de kernel y stride. El codificador utiliza proporciones de downsampling en lugar de proporciones de upsampling, por lo que utilizará las proporciones en el orden inverso al especificado aquí, que debe coincidir con el orden del decodificador. Si no se especifica, el valor predeterminado es[8, 6, 5, 4] - kernel_size (
int, opcional, valor predeterminado7) — El tamaño del kernel de convolución. - last_kernel_size (
int, opcional, valor predeterminado 3) — Tamaño del kernel para la última capa de convolución. - residual_kernel_size (
int, opcional, valor predeterminado 3) — Tamaño del kernel para las capas residuales. - dilation_growth_rate (
int, opcional, valor predeterminado 2) — Cuánto aumentar la dilatación en cada capa. - use_causal_conv (
bool, opcional, valor predeterminadoTrue) — Si se debe usar una convolución completamente causal. - pad_mode (
str, opcional, valor predeterminado"constant") — Modo de relleno para las convoluciones. - compress (
int, opcional, valor predeterminado 2) — Dimensionalidad reducida en las ramas residuales. - trim_right_ratio (
float, opcional, valor predeterminado 1.0) — Proporción para recortar en el lado derecho de la convolución transpuesta bajo la configuraciónuse_causal_conv = True. Si es igual a 1.0, significa que todo el recorte se realiza en el lado derecho. - codebook_size (
int, opcional, valor predeterminado2048) — El número de libros de códigos paralelos utilizados por el modelo. - codebook_dim (
int, opcional, valor predeterminado256) — Dimensionalidad de cada vector de incrustación del libro de códigos. - num_quantizers (
int, opcional, valor predeterminado 32) — Número de canales de cuantizador, o libros de códigos, en el cuantizador. - use_conv_shortcut (
bool, opcional, valor predeterminadoFalse) — Si se debe usar una capa convolucional como conexión de ‘skip’ en el bloqueMimiResnetBlock. Si es False, se usará una función identidad, lo que da lugar a una conexión residual genérica. - vector_quantization_hidden_dimension (
int, opcional, valor predeterminado 256) — Dimensión de la representación intermedia en el espacio de cuantización vectorial residual. - num_semantic_quantizers (
int, opcional, valor predeterminado 1) — Número de canales de cuantizador semántico, o libros de códigos, en el cuantizador semántico. Debe ser menor quenum_quantizers. - upsample_groups (
int, opcional, valor predeterminado 512) — Siframe_rate!=encodec_frame_rate, indica el número de grupos utilizados en la operación de remuestreo ascendente para pasar de una tasa a otra. - num_hidden_layers (
int, opcional, valor predeterminado8) — Número de capas ocultas en el decodificador Transformer. - intermediate_size (
int, opcional, valor predeterminado2048) — Dimensión de las representaciones del MLP. - num_attention_heads (
int, opcional, valor predeterminado8) — Número de cabezas de atención para cada capa de atención en el decodificador Transformer. - num_key_value_heads (
int, opcional, valor predeterminado8) — Este es el número de cabezas key_value que se deben utilizar para implementar Grouped Query Attention. Sinum_key_value_heads=num_attention_heads, el modelo utilizará Multi Head Attention (MHA); sinum_key_value_heads=1, el modelo utilizará Multi Query Attention (MQA); en caso contrario, se utilizará GQA. Al convertir un checkpoint multi-head en un checkpoint GQA, cada cabeza de clave y valor del grupo debe construirse mediante el promediado (meanpooling) de todas las cabezas originales dentro de ese grupo. Para más detalles, consulta este artículo. Si no se especifica, el valor predeterminado seránum_attention_heads. - head_dim (
int, opcional) — La dimensión de la cabeza de atención. Si es None, se establecerá en hidden_size // num_attention_heads - hidden_act (
str, opcional, valor predeterminadogelu) — La función de activación no lineal (función o cadena) en el decodificador. Por ejemplo,"gelu","relu","silu", etc. - max_position_embeddings (
int, opcional, valor predeterminado8000) — La longitud máxima de secuencia con la que podría usarse este modelo. - initializer_range (
float, opcional, valor predeterminado0.02) — La desviación estándar del truncated_normal_initializer para inicializar todas las matrices de pesos. - norm_eps (
float, opcional, valor predeterminado1e-05) — La epsilon utilizada por las capas de normalización de capas. - use_cache (
bool, opcional, valor predeterminadoFalse) — Indica si el modelo debe devolver las últimas claves/valores de atención (no utilizado por todos los modelos). Solo es relevante siconfig.is_decoder=Trueo cuando el modelo es un modelo generativo solo de decodificador. - use_streaming (
bool, opcional, valor predeterminadoFalse) — Si se debe usar el modo de streaming. Si esTrue, el método de codificación del modelo devolverá la caché de relleno que puede usarse en una llamada posterior al método de codificación. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], opcional) — Diccionario que contiene los parámetros de configuración para las incrustaciones RoPE. El diccionario debe contener un valor pararope_thetay, opcionalmente, parámetros utilizados para el escalado en caso de que desee usar RoPE conmax_position_embeddingsmás largos. - sliding_window (
int, opcional, valor predeterminado250) — Tamaño de la ventana de atención deslizante. Si esNone, no se aplica ninguna ventana deslizante. - attention_dropout (
Union[float, int], opcional, valor predeterminado0.0) — La proporción de dropout para las probabilidades de atención. - layer_scale_initial_scale (
float, opcional, valor predeterminado0.01) — Escala a utilizar en las capas de autoatención. 0.1 para base, 1e-6 para grande. Establezca 0 para deshabilitar la escala de capa. - attention_bias (
bool, opcional, valor predeterminadoFalse) — Si se debe usar un sesgo en las capas de proyección de consulta, clave, valor y salida durante la autoatención. - tie_word_embeddings (
bool, opcional, valor predeterminadoTrue) — Si se deben vincular las matrices de pesos de embeddings según el mapeotied_weights_keysdel modelo.
Esta es la clase de configuración para almacenar la configuración de un MimiModel. Se utiliza para instanciar un modelo Mimi según los argumentos especificados, definiendo la arquitectura del modelo. Instanciar una configuración con los valores predeterminados producirá una configuración similar a la de kyutai/mimi
Los objetos de configuración heredan de PreTrainedConfig y se pueden usar para controlar las salidas del modelo. Lea la documentación de PreTrainedConfig para obtener más información.
Ejemplo:
>>> 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.configMimiEncoderConfig
clase transformers.MimiEncoderConfig
< 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 = 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 )
Configuración de la mitad codificadora de Mimi (codificador SEANet, transformador codificador y muestreo descendente). Comparte todos los campos con MimiConfig (consulte su documentación para los argumentos), por lo que se puede cargar directamente desde un checkpoint completo de Mimi.
MimiDecoderConfig
clase transformers.MimiDecoderConfig
< 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 = 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 )
Configuración de la mitad decodificadora de Mimi (remuestreo, transformador decodificador y decodificador SEANet). Comparte todos los campos con MimiConfig (consulte su documentación para los argumentos), por lo que se puede cargar directamente desde un checkpoint completo de Mimi.
MimiModel
clase transformers.MimiModel
< source >( config: MimiConfig )
Parámetros
- config (MimiConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
El modelo de códec de audio neuronal Mimi.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
decode
< source >( audio_codes: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonedecoder_past_key_values: transformers.cache_utils.Cache | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
Decodifica los fotogramas dados en una forma de onda de audio de salida: los códigos se descuantizan en los latentes de MimiDecoderModel.forward().
encode
< source >( 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'> )
Codifica la forma de onda de audio de entrada en códigos discretos de forma (batch_size, num_quantizers, frames): los latentes de MimiEncoderModel.forward(), cuantizados.
forward
< source >( 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)
Parámetros
- input_values (
torch.Tensorde forma(batch_size, channels, sequence_length), opcional) — Entrada de audio sin procesar convertida a Float. - padding_mask (
torch.Tensorde forma(batch_size, sequence_length), opcional) — Indica qué entradas deben ignorarse debido al relleno, donde los elementos son 1 para no enmascarado o 0 para enmascarado. - num_quantizers (
int, opcional) — Número de cuantizadores (es decir, libros de códigos) a utilizar. De forma predeterminada, se utilizan todos los cuantizadores. - audio_codes (
torch.LongTensorde forma(batch_size, num_quantizers, codes_length), opcional) — Incrustaciones de códigos discretos calculadas usandomodel.encode. - encoder_past_key_values (
Cache, opcional) — Estados ocultos precalculados (claves y valores en los bloques de autoatención) que se pueden usar para acelerar la decodificación secuencial del transformador codificador. Esto generalmente consiste en lospast_key_valuesdevueltos por el modelo en una etapa anterior de la decodificación, cuandouse_cache=Trueoconfig.use_cache=True.El modelo generará el mismo formato de caché que se proporciona como entrada.
Si se usan
past_key_values, el usuario puede introducir opcionalmente solo los últimosaudio_valueso `audio_codes (aquellos que no tienen sus estados de clave y valor pasados dados a este modelo). - decoder_past_key_values (
Cache, opcional) — Estados ocultos precalculados (claves y valores en los bloques de autoatención) que se pueden usar para acelerar la decodificación secuencial del transformador decodificador. Esto generalmente consiste en lospast_key_valuesdevueltos por el modelo en una etapa anterior de decodificación, cuandouse_cache=Trueoconfig.use_cache=True.El modelo generará el mismo formato de caché que se proporciona como entrada.
Si se usan
past_key_values, el usuario puede introducir opcionalmente solo los últimosaudio_valueso `audio_codes (aquellos que no tienen sus estados de clave y valor pasados dados a este modelo).
Devuelve
MimiOutput o tuple(torch.Tensor)
Un MimiOutput o una tupla de
torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios
elementos según la configuración (MimiConfig) y las entradas.
El método forward de MimiModel sobrescribe el método especial __call__.
Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de
Moduledespués en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.
audio_codes (
torch.LongTensorde forma(batch_size, num_quantizers, codes_length), opcional) — Incrustaciones de códigos discretos calculadas usandomodel.encode.audio_values (
torch.Tensorde forma(batch_size, sequence_length), opcional) — Valores de audio decodificados, obtenidos mediante la parte decodificadora de Mimi.encoder_past_key_values (
Cache, opcional) — Estados ocultos precalculados (claves y valores en los bloques de autoatención) que se pueden utilizar para acelerar la decodificación secuencial del transformador codificador. Esto suele consistir en lospast_key_valuesdevueltos por el modelo en una etapa anterior de la decodificación, cuandouse_cache=Trueoconfig.use_cache=True.El modelo generará el mismo formato de caché que se proporciona como entrada.
Si se usan
past_key_values, el usuario puede introducir opcionalmente solo los últimosaudio_valueso `audio_codes (aquellos que no tienen sus estados de clave y valor pasados dados a este modelo).decoder_past_key_values (
Cache, opcional) — Estados ocultos precalculados (claves y valores en los bloques de autoatención) que se pueden utilizar para acelerar la decodificación secuencial del transformador decodificador. Esto suele consistir en lospast_key_valuesdevueltos por el modelo en una etapa anterior de la decodificación, cuandouse_cache=Trueoconfig.use_cache=True.El modelo generará el mismo formato de caché que se proporciona como entrada.
Si se usan
past_key_values, el usuario puede introducir opcionalmente solo los últimosaudio_valueso `audio_codes (aquellos que no tienen sus estados de clave y valor pasados dados a este modelo).
Ejemplos:
>>> 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_valuesMimiEncoderModel
clase transformers.MimiEncoderModel
< source >( config: MimiEncoderConfig )
Parámetros
- config (MimiEncoderConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
La mitad codificadora de Mimi: codificador SEANet, transformador codificador y muestreo descendente, desde audio hasta latentes continuos.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
forward
< source >( 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)
Parámetros
- input_values (
torch.Tensorde forma(batch_size, channels, sequence_length)) — Valores flotantes de la forma de onda de audio de entrada. - padding_mask (
torch.Tensorde forma(batch_size, channels, sequence_length), opcional) — Indica qué entradas deben ignorarse debido al relleno, donde los elementos son 1 para no enmascarado o 0 para enmascarado. - past_key_values (
Cache, opcional) — Estados ocultos precalculados (claves y valores en los bloques de autoatención) del transformador codificador, utilizados para acelerar la codificación en streaming. - padding_cache (
MimiConv1dPaddingCache, opcional) — Cache de relleno de las convoluciones causales, utilizado para la codificación en streaming. - use_streaming (
bool, opcional) — Si se codifica en modo de transmisión, devolviendo las cachés para pasarlas a la siguiente llamada. - Encodes la forma de onda de audio de entrada en latentes continuos de forma
(batch_size, latent_dim, frames). —
Devuelve
MimiEncoderModelOutput o tuple(torch.Tensor)
Un MimiEncoderModelOutput o una tupla de
torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios
elementos según la configuración (MimiConfig) y las entradas.
El método forward de MimiEncoderModel sobrescribe el método especial __call__.
Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de
Moduledespués en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.
- latents (
torch.Tensorde forma(batch_size, latent_dim, frames)) — Latentes continuos del audio, un fotograma por cadaconfig.frame_sizemuestras de audio. - past_key_values (
Cache, opcional) — Estados ocultos precalculados (claves y valores en los bloques de autoatención) del transformador codificador, devueltos durante la transmisión en streaming. - padding_cache (
MimiConv1dPaddingCache, opcional) — Caché de relleno para las convoluciones causales de MimiConv1d, con el fin de admitir la transmisión en streaming mediante el relleno de la caché. - hidden_states (
tuple(torch.Tensor), opcional, se devuelve cuandooutput_hidden_states=True) — Estados ocultos del transformador codificador en la salida de cada capa más su entrada. - attentions (
tuple(torch.Tensor), opcional, se devuelve cuandooutput_attentions=True) — Pesos de atención de cada capa del transformador codificador.
MimiDecoderModel
clase transformers.MimiDecoderModel
< source >( config: MimiDecoderConfig )
Parámetros
- config (MimiDecoderConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
La mitad decodificadora de Mimi: remuestreo, transformador decodificador y decodificador SEANet, desde latentes continuos hasta audio.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
forward
< source >( 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)
Parámetros
- latents (
torch.Tensorde forma(batch_size, hidden_size, frames)) — Latentes continuos para decodificar, tal como se calculan en MimiModel.decode(). - padding_mask (
torch.Tensorde forma(batch_size, channels, sequence_length), opcional) — Indica qué entradas deben ignorarse debido al relleno, donde los elementos son 1 para no enmascarado o 0 para enmascarado. - past_key_values (
Cache, opcional) — Estados ocultos precalculados (claves y valores en los bloques de autoatención) del transformador decodificador, utilizados para acelerar la decodificación en streaming. - Decodes los fotogramas dados en una forma de onda de audio de salida. Tenga en cuenta que la salida podría ser un poco más grande que la —
- input. En ese caso, cualquier paso adicional al final puede recortarse. —
Devuelve
MimiDecoderOutput o tuple(torch.Tensor)
Un MimiDecoderOutput o una tupla de
torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios
elementos según la configuración (MimiConfig) y las entradas.
El método forward de MimiDecoderModel sobrescribe el método especial __call__.
Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de
Moduledespués en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.
audio_values (
torch.Tensorde forma(batch_size, audio_channels, num_samples), opcional) — Valores de audio decodificados, obtenidos mediante la parte decodificadora de Mimi.decoder_past_key_values (
Cache, opcional) — Estados ocultos precalculados (claves y valores en los bloques de autoatención) que se pueden utilizar para acelerar la decodificación secuencial del transformador decodificador. Esto suele consistir en lospast_key_valuesdevueltos por el modelo en una etapa anterior de la decodificación, cuandouse_cache=Trueoconfig.use_cache=True.El modelo generará el mismo formato de caché que se proporciona como entrada.
Si se usan
past_key_values, el usuario puede introducir opcionalmente solo los últimosaudio_valueso `audio_codes (aquellos que no tienen sus estados de clave y valor pasados dados a este modelo).hidden_states (
tuple(torch.Tensor), opcional, se devuelve cuandooutput_hidden_states=True) — Estados ocultos del transformador decodificador en la salida de cada capa más su entrada.attentions (
tuple(torch.Tensor), opcional, se devuelve cuandooutput_attentions=True) — Pesos de atención de cada capa del transformador decodificador.