Transformers documentation
Mimi
Bu model, 2024-09-18 tarihinde Hugging Face Transformers'a katkıda bulunulmuştur.
Mimi
Mimi, verimli konuşma temsili ve sıkıştırma için tasarlanmış, önceden eğitilmiş ve kuantize edilmiş varyantlara sahip sinirsel bir ses codec modelidir. Model, 1,1 kbps hızında ve 12 Hz kare hızında çalışır; 16 kod kitabına sahip bir artıksal vektör kuantizatörü ile birleştirilmiş konvolüsyonel bir kodlayıcı-çözücü mimarisi kullanır. Mimi, dil zenginliği ile yüksek sadakatli yeniden inşayı dengelemek için semantik ve akustik olmak üzere çift token akışı üretir. Öne çıkan özellikler arasında düşük gecikmeli kullanım için nedensel akış kodlayıcı, esnek aşağı akış üretimi için çift yol tokenizasyonu ve Moshi gibi büyük konuşma modelleriyle entegrasyona hazır olma yer alır.
Orijinal Mimi checkpoint'lerini Kyutai kuruluşu altında bulabilirsiniz.
Bu model ylacombe tarafından katkıda bulunmuştur.
Mimi'nin nasıl uygulanacağına dair daha fazla örnek için sağ kenar çubuğundaki Mimi modellerine tıklayın.
Aşağıdaki örnek, AutoModel sınıfı ile sesin nasıl kodlanıp çözüldüğünü göstermektedir.
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
sınıf 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 )
Parametreler
- sampling_rate (
int, isteğe bağlı, varsayılan24000) — Ses dosyalarının dijitalleştirileceği örnekleme hızı, hertz (Hz) cinsinden ifade edilir. - audio_channels (
int, isteğe bağlı, varsayılan 1) — Ses verisindeki kanal sayısı. Mono için 1 veya stereo için 2. - hidden_size (
int, isteğe bağlı, varsayılan512) — Gizli temsillerin boyutu. - num_filters (
int, isteğe bağlı, varsayılan 64) — İlkMimiConv1dörnekleme azaltma katmanının konvolüsyon çekirdeklerinin sayısı. - num_residual_layers (
int, isteğe bağlı, varsayılan 1) — Kalıntı katman sayısı. - upsampling_ratios (
Sequence[int], isteğe bağlı) — Çekirdek boyutu ve adım oranları. Kodlayıcı, yükseltme oranları yerine küçültme oranlarını kullandığından, burada belirtilen oranların ters sırasını kullanır ve bu sıralama çözücü sırasıyla eşleşmelidir. Belirtilmezse, varsayılan olarak[8, 6, 5, 4]kullanılır. - kernel_size (
int, isteğe bağlı, varsayılan7) — Konvolüsyon çekirdeğinin boyutu. - last_kernel_size (
int, isteğe bağlı, varsayılan 3) — Son konvolüsyon katmanı için çekirdek boyutu. - residual_kernel_size (
int, isteğe bağlı, varsayılan 3) — Residual katmanlar için çekirdek boyutu. - dilation_growth_rate (
int, isteğe bağlı, varsayılan 2) — Her katmanda dilasyonun ne kadar artırılacağını belirtir. - use_causal_conv (
bool, isteğe bağlı, varsayılanTrue) — Tamamen nedensel konvolüsyonun kullanılıp kullanılmayacağı. - pad_mode (
str, isteğe bağlı, varsayılan"constant") — Kovülasyonlar için dolgu modu. - compress (
int, isteğe bağlı, varsayılan 2) — Artık dallarındaki azaltılmış boyut. - trim_right_ratio (
float, isteğe bağlı, varsayılan 1.0) —use_causal_conv = Trueyapılandırmasında, transpoze konvolüsyonun sağ tarafında kırpma için kullanılan oran. 1.0'a eşitse, tüm kırpmanın sağ tarafta yapıldığı anlamına gelir. - codebook_size (
int, isteğe bağlı, varsayılan2048) — Modelin kullandığı paralel kod kitaplarının sayısı. - codebook_dim (
int, isteğe bağlı, varsayılan256) — Her codebook gömme vektörünün boyutu. - num_quantizers (
int, isteğe bağlı, varsayılan 32) — Kuantizatördeki kuantizör kanalı veya kod kitabı sayısı. - use_conv_shortcut (
bool, isteğe bağlı, varsayılanFalse) —MimiResnetBlockbloğunda ‘skip’ bağlantısı olarak konvolüsyon katmanı kullanılıp kullanılmayacağı. False ise, genel bir artımsal bağlantı sağlayan bir kimlik fonksiyonu kullanılır. - vector_quantization_hidden_dimension (
int, isteğe bağlı, varsayılan 256) — Artık vektör kuantizasyon uzayındaki ara temsil boyutu. - num_semantic_quantizers (
int, isteğe bağlı, varsayılan 1) — Anlamsal kuantizördeki anlamsal kuantizör kanallarının, yani kod kitaplarının sayısı.num_quantizersdeğerinden küçük olmalıdır. - upsample_groups (
int, isteğe bağlı, varsayılan 512) —frame_rate!=encodec_frame_rateise, bir hızdan diğerine geçiş için upsampling işleminde kullanılan grup sayısını belirtir. - num_hidden_layers (
int, isteğe bağlı, varsayılan8) — Transformer çözücüdeki gizli katman sayısı. - intermediate_size (
int, isteğe bağlı, varsayılan2048) — MLP temsillerinin boyutu. - num_attention_heads (
int, isteğe bağlı, varsayılan8) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - num_key_value_heads (
int, isteğe bağlı, varsayılan8) — Bu, Grouped Query Attention uygulamasında kullanılacak key_value başlarının sayısıdır.num_key_value_heads=num_attention_headsise model Multi Head Attention (MHA) kullanır,num_key_value_heads=1ise model Multi Query Attention (MQA) kullanır, aksi halde GQA kullanılır. Çok başlı bir checkpoint'i GQA checkpoint'ine dönüştürürken, her grup key ve value başı, o gruptaki tüm orijinal başların ortalama havuzlanması (meanpooling) ile oluşturulmalıdır. Daha fazla ayrıntı için bu makaleye göz atın. Belirtilmezse, varsayılan olaraknum_attention_headskullanılır. - head_dim (
int, isteğe bağlı) — Dikkat başı boyutu. None ise, varsayılan olarak hidden_size // num_attention_heads değerini alır. - hidden_act (
str, isteğe bağlı, varsayılangelu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin,"gelu","relu","silu"vb. - max_position_embeddings (
int, isteğe bağlı, varsayılan8000) — Bu modelin kullanılabileceği en uzun dizi uzunluğu. - initializer_range (
float, isteğe bağlı, varsayılan0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması. - norm_eps (
float, isteğe bağlı, varsayılan1e-05) — Katman normalizasyonu katmanlarında kullanılan epsilon. - use_cache (
bool, isteğe bağlı, varsayılanFalse) — Modelin son anahtar/değer dikkatlerini döndürüp döndürmeyeceğini belirtir (tüm modellerde kullanılmaz). Yalnızcaconfig.is_decoder=Trueolduğunda veya model yalnızca decoder tabanlı üretken bir model olduğunda geçerlidir. - use_streaming (
bool, isteğe bağlı, varsayılanFalse) — Akış modunun kullanılıp kullanılmayacağını belirtir.Trueise, modelin encode metodu, encode metodunun sonraki çağrılarında kullanılabilecek dolgu önbelleğini (padding cache) döndürür. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], isteğe bağlı) — RoPE gömme yapılandırma parametrelerini içeren sözlük. Sözlük,rope_thetaiçin bir değer ve daha uzunmax_position_embeddingsile RoPE kullanmak istiyorsanız ölçekleme için kullanılan isteğe bağlı parametreleri içermelidir. - sliding_window (
int, isteğe bağlı, varsayılan250) — Kayan pencere dikkat penceresi boyutu.Noneise kayan pencere uygulanmaz. - attention_dropout (
Union[float, int], isteğe bağlı, varsayılan0.0) — Dikkat olasılıkları için dropout oranı. - layer_scale_initial_scale (
float, isteğe bağlı, varsayılan0.01) — Öz-dikkat katmanlarında kullanılacak ölçek. Baz modeller için 0.1, büyük modeller için 1e-6. Katman ölçeklemeyi devre dışı bırakmak için 0 olarak ayarlayın. - attention_bias (
bool, isteğe bağlı, varsayılanFalse) — Öz-dikkat sırasında sorgu, anahtar, değer ve çıktı projeksiyon katmanlarında önyargı (bias) kullanılıp kullanılmayacağı. - tie_word_embeddings (
bool, isteğe bağlı, varsayılanTrue) — Modelintied_weights_keyseşlemesine göre ağırlık gömme bağlamalarının yapılıp yapılmayacağı.
Bu, bir MimiModel'in yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Mimi modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneği oluşturmak, kyutai/mimi ile benzer bir yapılandırmaya yol açar.
Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.
Örnek:
>>> 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
sınıf 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 )
Mimi'nin kodlayıcı yarısının (SEANet kodlayıcı, kodlayıcı transformer ve örneklem azaltma) yapılandırması. MimiConfig ile her alanı paylaşır (argümanlar için belgesine bakın), bu nedenle tam bir Mimi kontrol noktasından doğrudan yüklenebilir.
MimiDecoderConfig
sınıf 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 )
Mimi'nin decoder yarısının (upsampling, decoder transformer ve SEANet decoder) yapılandırması. MimiConfig ile her alanı paylaşır (argümanlar için belgesine bakın), bu nedenle tam bir Mimi checkpoint'inden doğrudan yüklenebilir.
MimiModel
sınıf transformers.MimiModel
< source >( config: MimiConfig )
Parametreler
- config (MimiConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Mimi sinirsel ses kodlayıcı modeli.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
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'> )
Verilen kareleri bir çıkış ses dalgasına çözer: kodlar, MimiDecoderModel.forward() girdileri olarak dekuantize edilir.
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'> )
Girdi ses dalgacığını (batch_size, num_quantizers, frames) biçiminde ayrık kodlara kodlar: MimiEncoderModel.forward() gerginlikleri, kuantize edilmiş haliyle.
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)
Parametreler
- input_values (
torch.Tensor, şekli(batch_size, channels, sequence_length), isteğe bağlı) — Float'a dönüştürülen ham ses girdisi. - padding_mask (
torch.Tensor, şekli(batch_size, sequence_length), isteğe bağlı) — Dolgu nedeniyle yok sayılacak girişleri belirtir; öğeler maskelememiş için 1 veya maskelemiş için 0 değerini alır. - num_quantizers (
int, isteğe bağlı) — Kullanılacak kuantizör (yani kod kitabı) sayısı. Varsayılan olarak tüm kuantizörler kullanılır. - audio_codes (
torch.LongTensor, şekli(batch_size, num_quantizers, codes_length), isteğe bağlı) —model.encodekullanılarak hesaplanan ayrık kod gömüleri. - encoder_past_key_values (
Cache, isteğe bağlı) — Sıralı çözümlendirmeyi hızlandırmak için kullanılabilen, önceden hesaplanmış gizli durumlar (self-attention bloklarındaki anahtar ve değerler). Bu genelliklepast_key_valuesdeğerinin, çözümlendirmenin önceki bir aşamasında model tarafından döndürülenuse_cache=Trueveyaconfig.use_cache=True.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcı yalnızca sonaudio_valuesveya `audio_codes` (bu modele geçmiş anahtar değer durumları verilmemiş olanlar) girebilir. - decoder_past_key_values (
Cache, isteğe bağlı) — Ardışık çözümlendirmeyi hızlandırmak için kullanılabilen, önceden hesaplanmış gizli durumlar (self-attention bloklarındaki anahtar ve değerler). Bu genellikle, çözümlendirmenin önceki bir aşamasında modelin döndürdüğüpast_key_valuesdeğerlerinden oluşur. Bu durumdause_cache=Trueveyaconfig.use_cache=True.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcı yalnızca sonaudio_valuesveya `audio_codes` (bu modele geçmiş anahtar değer durumları verilmemiş olanlar) girebilir.
Dönüş değeri
MimiOutput veya tuple(torch.Tensor)
MimiOutput veya
torch.Tensor bir demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (MimiConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
MimiModel forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
audio_codes (
torch.LongTensor, şekli(batch_size, num_quantizers, codes_length), isteğe bağlı) —model.encodekullanılarak hesaplanan ayrık kod gömme değerleri.audio_values (
torch.Tensor, şekli(batch_size, sequence_length), isteğe bağlı) — Mimi'nin decoder kısmı kullanılarak elde edilen çözümlenmiş ses değerleri.encoder_past_key_values (
Cache, isteğe bağlı) — Encoder transformer'ın ardışık çözümlemesini hızlandırmak için kullanılabilen, önceden hesaplanmış gizli durumlar (self-attention bloklarındaki anahtar ve değerler). Bu, genellikleuse_cache=Trueveyaconfig.use_cache=Trueolduğunda, çözümlemenin önceki bir aşamasında modelin döndürdüğüpast_key_valuesdeğerlerinden oluşur.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcı yalnızca sonaudio_valuesveya `audio_codes` (bu modele geçmiş anahtar değer durumları verilmemiş olanlar) girebilir.decoder_past_key_values (
Cache, isteğe bağlı) — Ardışık decoder transformer çözümlemesini hızlandırmak için kullanılabilen, önceden hesaplanmış gizli durumlar (self-attention bloklarındaki anahtarlar ve değerler). Bu, genellikleuse_cache=Trueveyaconfig.use_cache=Trueolduğunda, çözümlemenin önceki bir aşamasında modelin döndürdüğüpast_key_valuesdeğerlerinden oluşur.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcı yalnızca sonaudio_valuesveya `audio_codes` (bu modele geçmiş anahtar değer durumları verilmemiş olanlar) girebilir.
Örnekler:
>>> 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
sınıf transformers.MimiEncoderModel
< source >( config: MimiEncoderConfig )
Parametreler
- config (MimiEncoderConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Mimi'nin kodlayıcı yarısı: sesden sürekli latentlere, SEANet kodlayıcı, kodlayıcı transformer ve örneklem azaltma.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
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)
Parametreler
- input_values (
torch.Tensor, şekli(batch_size, channels, sequence_length)) — Giriş ses dalgasının ondalık sayı değerleri. - padding_mask (
torch.Tensor, şekli(batch_size, channels, sequence_length), isteğe bağlı) — Dolgu nedeniyle yok sayılacak girişleri belirtir; öğeler maskelememiş için 1 veya maskelemiş için 0 değerini alır. - past_key_values (
Cache, isteğe bağlı) — Encoder transformer'ın önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler), akışkan kodlamayı hızlandırmak için kullanılır. - padding_cache (
MimiConv1dPaddingCache, opsiyonel) — Akış kodlamada kullanılan nedensel konvolüsyonların dolgu önbelleği. - use_streaming (
bool, isteğe bağlı) — Akış modunda kodlamayı yapıp bir sonraki çağrıya aktarılacak önbellekleri döndürüp döndürmeyeceğini belirtir. - Encodes, girdi ses dalgasını
(batch_size, latent_dim, frames)biçiminde sürekli latentlere dönüştürür. —
Dönüş değeri
MimiEncoderModelOutput veya tuple(torch.Tensor)
MimiEncoderModelOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (MimiConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
MimiEncoderModel forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
- latents (
torch.Tensor, şekli(batch_size, latent_dim, frames)) — Sesin sürekli latantları, herconfig.frame_sizeses örneğine bir kare. - past_key_values (
Cache, isteğe bağlı) — Akış sırasında döndürülen, encoder transformer'ın önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler). - padding_cache (
MimiConv1dPaddingCache, isteğe bağlı) — Akış işleme desteği için cache padding yoluyla MimiConv1d nedensel konvolüsyonları için padding önbelleği. - hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Trueolduğunda döndürülür) — Her katmanın çıktısında ve girdisinde, encoder transformer'ın gizli durumları. - attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Trueolduğunda döndürülür) — Her encoder transformer katmanının dikkat ağırlıkları.
MimiDecoderModel
sınıf transformers.MimiDecoderModel
< source >( config: MimiDecoderConfig )
Parametreler
- config (MimiDecoderConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Mimi'nin decoder yarısı: sürekli latentlerden seslere, upsampling, decoder transformer ve SEANet decoder.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
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)
Parametreler
- latents (
torch.Tensor, şekli(batch_size, hidden_size, frames)) — MimiModel.decode() tarafından hesaplanan, çözümlenecek sürekli latentler. - padding_mask (
torch.Tensor, şekli(batch_size, channels, sequence_length), isteğe bağlı) — Dolgu nedeniyle yok sayılacak girişleri belirtir; öğeler maskelememiş için 1 veya maskelemiş için 0 değerini alır. - past_key_values (
Cache, opsiyonel) — Akış çözümlemesini hızlandırmak için kullanılan, decoder transformer'ın önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler). - Decodes, verilen kareleri bir çıkış ses dalgası biçiminde çözer. Çıktının biraz daha büyük olabileceğine dikkat edin —
- input. Bu durumda, sonundaki gereksiz adımlar kırpılabilir. —
Dönüş değeri
MimiDecoderOutput veya tuple(torch.Tensor)
MimiDecoderOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (MimiConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
MimiDecoderModel forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
audio_values (
torch.Tensor, şekli(batch_size, audio_channels, num_samples), isteğe bağlı) — Mimi'nin decoder kısmı kullanılarak elde edilen çözümlenmiş ses değerleri.decoder_past_key_values (
Cache, isteğe bağlı) — Ardışık decoder transformer çözümlemesini hızlandırmak için kullanılabilen, önceden hesaplanmış gizli durumlar (self-attention bloklarındaki anahtarlar ve değerler). Bu, genellikleuse_cache=Trueveyaconfig.use_cache=Trueolduğunda, çözümlemenin önceki bir aşamasında modelin döndürdüğüpast_key_valuesdeğerlerinden oluşur.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcı yalnızca sonaudio_valuesveya `audio_codes` (bu modele geçmiş anahtar değer durumları verilmemiş olanlar) girebilir.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Trueolduğunda döndürülür) — Çıktıdaki her katmanın ve girdisinin çıktısında decoder transformer'ın gizli durumları.attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Trueolduğunda döndürülür) — Her decoder transformer katmanının dikkat ağırlıkları.