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.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Model ini disumbangkan ke Hugging Face Transformers pada 2024-09-18.

FlashAttention SDPA

Mimi

Mimi adalah model codec audio neural dengan varian pretrained dan kuantisasi, yang dirancang untuk representasi dan kompresi ucapan yang efisien. Model ini beroperasi pada 1,1 kbps dengan laju frame 12 Hz dan menggunakan arsitektur encoder-decoder konvolusional yang dikombinasikan dengan residual vector quantizer dengan 16 codebook. Mimi menghasilkan dua aliran token, yaitu semantik dan akustik, untuk menyeimbangkan kekayaan linguistik dengan rekonstruksi berkeandalan tinggi. Fitur-fitur utamanya meliputi encoder streaming kausal untuk penggunaan berlatensi rendah, tokenisasi jalur ganda untuk generasi downstream yang fleksibel, serta kesiapan integrasi dengan model ucapan besar seperti Moshi.

Anda dapat menemukan checkpoint Mimi asli di bawah organisasi Kyutai.

Model ini disumbangkan oleh ylacombe.

Klik model Mimi di bilah sisi kanan untuk melihat lebih banyak contoh cara menerapkan Mimi.

Contoh di bawah ini menunjukkan cara mengkodekan dan mendekodekan audio dengan kelas 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

kelas 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 )

Parameter

  • sampling_rate (int, opsional, default 24000) — Laju sampling di mana file audio harus didigitalisasi, dinyatakan dalam hertz (Hz).
  • audio_channels (int, opsional, default 1) — Jumlah channel dalam data audio. Yaitu 1 untuk mono atau 2 untuk stereo.
  • hidden_size (int, opsional, default 512) — Dimensi dari representasi tersembunyi.
  • num_filters (int, opsional, default 64) — Jumlah kernel konvolusi dari lapisan down sampling MimiConv1d pertama.
  • num_residual_layers (int, opsional, default 1) — Jumlah lapisan residual.
  • upsampling_ratios (Sequence[int], opsional) — Rasio ukuran kernel dan stride. Encoder menggunakan rasio downsampling alih-alih rasio upsampling, sehingga ia akan menggunakan rasio dalam urutan terbalik dari yang ditentukan di sini, yang harus sesuai dengan urutan decoder. Jika tidak ditentukan, akan default ke [8, 6, 5, 4]
  • kernel_size (int, opsional, defaultnya 7) — Ukuran kernel konvolusi.
  • last_kernel_size (int, opsional, default 3) — Ukuran kernel untuk lapisan konvolusi terakhir.
  • residual_kernel_size (int, opsional, default 3) — Ukuran kernel untuk lapisan residual.
  • dilation_growth_rate (int, opsional, defaultnya 2) — Seberapa besar peningkatan dilation pada setiap layer.
  • use_causal_conv (bool, opsional, default True) — Apakah akan menggunakan konvolusi kausal penuh.
  • pad_mode (str, opsional, defaultnya "constant") — Mode padding untuk konvolusi.
  • compress (int, opsional, default 2) — Dimensi yang dikurangi pada cabang residual.
  • trim_right_ratio (float, opsional, default 1.0) — Rasio untuk pemotongan di sisi kanan dari transposed convolution di bawah setup use_causal_conv = True. Jika sama dengan 1.0, artinya semua pemotongan dilakukan di sisi kanan.
  • codebook_size (int, opsional, defaultnya 2048) — Jumlah codebook paralel yang digunakan oleh model.
  • codebook_dim (int, opsional, defaultnya 256) — Dimensi dari setiap vektor embedding codebook.
  • num_quantizers (int, opsional, default 32) — Jumlah kanal kuantizer, atau codebook, dalam kuantizer.
  • use_conv_shortcut (bool, opsional, default False) — Apakah akan menggunakan lapisan konvolusi sebagai koneksi ‘skip’ pada blok MimiResnetBlock. Jika False, fungsi identitas akan digunakan, menghasilkan koneksi residual generik.
  • vector_quantization_hidden_dimension (int, opsional, default 256) — Dimensi representasi perantara dalam ruang residual vector quantization.
  • num_semantic_quantizers (int, opsional, default 1) — Jumlah kanal kuantizer semantik, atau codebook, dalam kuantizer semantik. Harus lebih kecil dari num_quantizers.
  • upsample_groups (int, opsional, default 512) — Jika frame_rate!=encodec_frame_rate, menunjukkan jumlah grup yang digunakan dalam operasi upsampling untuk beralih dari satu rate ke rate lainnya.
  • num_hidden_layers (int, opsional, default 8) — Jumlah lapisan tersembunyi dalam decoder Transformer.
  • intermediate_size (int, opsional, default 2048) — Dimensi representasi MLP.
  • num_attention_heads (int, opsional, default 8) — Jumlah attention heads untuk setiap lapisan attention di decoder Transformer.
  • num_key_value_heads (int, opsional, default 8) — Ini adalah jumlah key_value heads yang harus digunakan untuk mengimplementasikan Grouped Query Attention. Jika num_key_value_heads=num_attention_heads, model akan menggunakan Multi Head Attention (MHA), jika num_key_value_heads=1 model akan menggunakan Multi Query Attention (MQA), selain itu GQA yang digunakan. Saat mengkonversi checkpoint multi-head menjadi checkpoint GQA, setiap group key dan value head harus dibangun dengan meanpooling semua head asli di dalam grup tersebut. Untuk detail lebih lanjut, lihat paper ini. Jika tidak ditentukan, akan default ke num_attention_heads.
  • head_dim (int, opsional) — Dimensi head perhatian. Jika None, nilainya akan secara default menjadi hidden_size // num_attention_heads
  • hidden_act (str, opsional, defaultnya gelu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, "gelu", "relu", "silu", dan sebagainya.
  • max_position_embeddings (int, opsional, default 8000) — Panjang maksimum urutan yang mungkin digunakan dengan model ini.
  • initializer_range (float, opsional, defaultnya 0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.
  • norm_eps (float, opsional, default 1e-05) — Epsilon yang digunakan oleh lapisan normalisasi lapisan.
  • use_cache (bool, opsional, default False) — Apakah model harus mengembalikan perhatian kunci/nilai terakhir (tidak digunakan oleh semua model). Hanya relevan jika config.is_decoder=True atau ketika model adalah model generatif yang hanya decoder.
  • use_streaming (bool, opsional, default False) — Apakah akan menggunakan mode streaming. Jika True, metode encode model akan mengembalikan padding cache yang dapat digunakan dalam panggilan berikutnya ke metode encode.
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], opsional) — Kamus yang berisi parameter konfigurasi untuk embedding RoPE. Kamus tersebut harus berisi nilai untuk rope_theta dan secara opsional parameter yang digunakan untuk penskalaan jika Anda ingin menggunakan RoPE dengan max_position_embeddings yang lebih panjang.
  • sliding_window (int, opsional, default 250) — Ukuran jendela untuk sliding window attention. Jika None, sliding window tidak diterapkan.
  • attention_dropout (Union[float, int], opsional, default 0.0) — Rasio dropout untuk probabilitas perhatian.
  • layer_scale_initial_scale (float, opsional, default 0.01) — Skala yang digunakan pada lapisan self-attention. 0.1 untuk base, 1e-6 untuk large. Setel 0 untuk menonaktifkan layer scale.
  • attention_bias (bool, opsional, default False) — Apakah akan menggunakan bias pada lapisan proyeksi query, key, value, dan output selama self-attention.
  • tie_word_embeddings (bool, opsional, default True) — Apakah akan mengikat bobot embedding sesuai dengan pemetaan tied_weights_keys model.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari MimiModel. Kelas ini digunakan untuk membuat instans model Mimi sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari kyutai/mimi

Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.

Contoh:

>>> 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

kelas 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 )

Konfigurasi bagian encoder dari Mimi (encoder SEANet, transformer encoder, dan downsampling). Ini berbagi setiap field dengan MimiConfig (lihat dokumentasinya untuk argumennya), sehingga dapat dimuat langsung dari checkpoint Mimi lengkap.

MimiDecoderConfig

kelas 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 )

Konfigurasi bagian decoder dari Mimi (upsampling, decoder transformer, dan decoder SEANet). Ini berbagi setiap field dengan MimiConfig (lihat dokumentasinya untuk argumennya), sehingga dapat dimuat langsung dari checkpoint Mimi lengkap.

MimiModel

kelas transformers.MimiModel

< >

( config: MimiConfig )

Parameter

  • config (MimiConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model codec audio neural Mimi.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

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'> )

Mendekodekan frame yang diberikan menjadi waveform audio keluaran: kode-kode tersebut didekuantisasi menjadi latents dari 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'> )

Mengkodekan gelombang audio input menjadi kode diskrit dengan bentuk (batch_size, num_quantizers, frames): latents dari MimiEncoderModel.forward(), yang dikuantisasi.

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)

Parameter

  • input_values (torch.Tensor dengan bentuk (batch_size, channels, sequence_length), opsional) — Input audio mentah yang dikonversi ke Float.
  • padding_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Menunjukkan input mana yang harus diabaikan karena padding, di mana elemennya adalah 1 untuk tidak dimasker atau 0 untuk dimasker.
  • num_quantizers (int, opsional) — Jumlah kuantizer (yaitu codebook) yang akan digunakan. Secara default, semua kuantizer digunakan.
  • audio_codes (torch.LongTensor dengan bentuk (batch_size, num_quantizers, codes_length), opsional) — Embedding kode diskrit yang dihitung menggunakan model.encode.
  • encoder_past_key_values (Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention) yang dapat digunakan untuk mempercepat decoding berurutan dari encoder transformer. Ini biasanya terdiri dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna dapat secara opsional hanya memasukkan audio_values atau `audio_codes terakhir (yang tidak memiliki state past key value yang diberikan ke model ini).

  • decoder_past_key_values (Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention) yang dapat digunakan untuk mempercepat decoding berurutan dari decoder transformer. Ini biasanya terdiri dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna dapat secara opsional hanya memasukkan audio_values atau `audio_codes terakhir (yang tidak memiliki state past key value yang diberikan ke model ini).

Mengembalikan

MimiOutput atau tuple(torch.Tensor)

A MimiOutput atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (MimiConfig) dan input.

Metode forward dari MimiModel menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • audio_codes (torch.LongTensor dengan bentuk (batch_size, num_quantizers, codes_length), opsional) — Embedding kode diskrit yang dihitung menggunakan model.encode.

  • audio_values (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Nilai audio yang telah didekodekan, diperoleh menggunakan bagian decoder dari Mimi.

  • encoder_past_key_values (Cache, opsional) — Hidden-states yang telah dihitung sebelumnya (key dan values dalam blok self-attention) yang dapat digunakan untuk mempercepat decoding berurutan dari encoder transformer. Ini biasanya terdiri dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna dapat secara opsional hanya memasukkan audio_values atau `audio_codes terakhir (yang tidak memiliki state past key value yang diberikan ke model ini).

  • decoder_past_key_values (Cache, opsional) — Hidden-states yang telah dihitung sebelumnya (key dan values dalam blok self-attention) yang dapat digunakan untuk mempercepat decoding berurutan dari decoder transformer. Ini biasanya terdiri dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna dapat secara opsional hanya memasukkan audio_values atau `audio_codes terakhir (yang tidak memiliki state past key value yang diberikan ke model ini).

Contoh:

>>> 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

kelas transformers.MimiEncoderModel

< >

( config: MimiEncoderConfig )

Parameter

  • config (MimiEncoderConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Setengah encoder dari Mimi: encoder SEANet, transformer encoder, dan downsampling, dari audio ke latens kontinu.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

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)

Parameter

  • input_values (torch.Tensor dengan bentuk (batch_size, channels, sequence_length)) — Nilai float dari waveform audio input.
  • padding_mask (torch.Tensor dengan bentuk (batch_size, channels, sequence_length), opsional) — Menunjukkan input mana yang harus diabaikan karena padding, di mana elemennya adalah 1 untuk tidak dimasker atau 0 untuk dimasker.
  • past_key_values (Cache, opsional) — Hidden-states (key dan values di blok self-attention) yang sudah dihitung sebelumnya dari encoder transformer, digunakan untuk mempercepat streaming encoding.
  • padding_cache (MimiConv1dPaddingCache, opsional) — Cache padding untuk konvolusi kausal, digunakan untuk encoding streaming.
  • use_streaming (bool, opsional) — Apakah akan mengodekan dalam mode streaming, mengembalikan cache untuk diteruskan ke panggilan berikutnya.
  • Encodes waveform audio input menjadi latens kontinu dengan bentuk (batch_size, latent_dim, frames). —

Mengembalikan

MimiEncoderModelOutput atau tuple(torch.Tensor)

MimiEncoderModelOutput atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (MimiConfig) dan input.

Metode forward dari MimiEncoderModel menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • latents (torch.Tensor dengan bentuk (batch_size, latent_dim, frames)) — Laten kontinu dari audio, satu frame per config.frame_size sampel audio.
  • past_key_values (Cache, opsional) — hidden-states (key dan values di blok self-attention) yang telah dihitung sebelumnya dari encoder transformer, dikembalikan saat streaming.
  • padding_cache (MimiConv1dPaddingCache, opsional) — Cache padding untuk konvolusi kausal MimiConv1d guna mendukung streaming melalui padding cache.
  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True) — Hidden states dari transformer encoder pada output setiap layer beserta inputnya.
  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True) — Bobot perhatian dari setiap lapisan transformer encoder.

MimiDecoderModel

kelas transformers.MimiDecoderModel

< >

( config: MimiDecoderConfig )

Parameter

  • config (MimiDecoderConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Setengah bagian decoder dari Mimi: upsampling, transformer decoder, dan decoder SEANet, dari latens kontinu ke audio.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

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)

Parameter

  • latents (torch.Tensor dengan bentuk (batch_size, hidden_size, frames)) — Latents kontinu untuk didekode, sebagaimana dihitung oleh MimiModel.decode().
  • padding_mask (torch.Tensor dengan bentuk (batch_size, channels, sequence_length), opsional) — Menunjukkan input mana yang harus diabaikan karena padding, di mana elemennya adalah 1 untuk tidak dimasker atau 0 untuk dimasker.
  • past_key_values (Cache, opsional) — Hidden-states (key dan values di blok self-attention) yang sudah dihitung sebelumnya dari decoder transformer, digunakan untuk mempercepat decoding streaming.
  • Decodes frame yang diberikan menjadi waveform audio keluaran. Perhatikan bahwa keluaran mungkin sedikit lebih besar dari —
  • input. Dalam hal itu, langkah-langkah tambahan di akhir dapat dipangkas. —

Mengembalikan

MimiDecoderOutput atau tuple(torch.Tensor)

MimiDecoderOutput atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (MimiConfig) dan input.

Metode forward dari MimiDecoderModel menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • audio_values (torch.Tensor dengan bentuk (batch_size, audio_channels, num_samples), opsional) — Nilai audio yang telah didekode, diperoleh menggunakan bagian decoder dari Mimi.

  • decoder_past_key_values (Cache, opsional) — Hidden-states yang telah dihitung sebelumnya (key dan values dalam blok self-attention) yang dapat digunakan untuk mempercepat decoding berurutan dari decoder transformer. Ini biasanya terdiri dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna dapat secara opsional hanya memasukkan audio_values atau `audio_codes terakhir (yang tidak memiliki state past key value yang diberikan ke model ini).

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True) — Hidden states dari transformer decoder pada output setiap layer beserta inputnya.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True) — Bobot perhatian dari setiap lapisan transformer decoder.

Update on GitHub