Transformers documentation

SeamlessM4T-v2

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

Bu model 2023-12-08 tarihinde HF papers'ta yayımlandı ve 2023-11-30 tarihinde Hugging Face Transformers'a katkıda bulunuldu.

SDPA

SeamlessM4T-v2

Genel Bakış

SeamlessM4T-v2 modeli, Meta AI'dan Seamless Communication ekibi tarafından Seamless: Multilingual Expressive and Streaming Speech Translation makalesinde önerilmiştir.

SeamlessM4T-v2, farklı dil topluluklarından insanların ses ve metin yoluyla zahmetsizce iletişim kurmasını sağlayan yüksek kaliteli çeviri sunmak üzere tasarlanmış bir model koleksiyonudur. önceki sürümün bir iyileştirmesidir. v1 ve v2 arasındaki farklarla ilgili daha fazla ayrıntı için SeamlessM4T-v1 ile Farklar bölümüne bakın.

SeamlessM4T-v2, ayrı modellere bağımlı kalmadan birden fazla görevi destekler:

  • Ses-sese çeviri (S2ST)
  • Ses-metin çevirisi (S2TT)
  • Metinden konuşma çevirisi (T2ST)
  • Metinden metne çeviri (T2TT)
  • Otomatik konuşma tanıma (ASR)

SeamlessM4Tv2Model yukarıdaki tüm görevleri gerçekleştirebilir ancak her görevin kendine özgü bir alt modeli de vardır.

Makalenin özeti aşağıdaki gibidir:

Otomatik konuşma çevirisi alanındaki son gelişmeler, dil kapsamını dramatik biçimde genişletmiş, çok modlu yetenekleri iyileştirmiş ve geniş bir görev ve işlev yelpazesini mümkün kılmıştır. Bununla birlikte, günümüzdeki büyük ölçekli otomatik konuşma çevirisi sistemleri, insan-insan diyaloğuyla karşılaştırıldığında makine aracılı iletişimi kusursuz hissettiren temel özelliklerden yoksundur. Bu çalışmada, uçtan uca, ifade zengini ve çok dilli çevirileri akışkan (streaming) bir biçimde mümkün kılan bir model ailesi sunuyoruz. Öncelikle, kitlevi çok dilli ve çok modlu SeamlessM4T modelinin iyileştirilmiş bir sürümüne katkıda bulunuyoruz: SeamlessM4T v2. Güncellenmiş UnitY2 çerçevesini içeren bu yeni model, daha fazla düşük kaynaklı dil verisi üzerinde eğitildi. Genişletilmiş SeamlessAlign sürümü, toplamda 76 dil için 114.800 saatlik otomatik hizalı veri ekliyor. SeamlessM4T v2, en yeni iki modelimiz olan SeamlessExpressive ve SeamlessStreaming'in başlatıldığı temeli oluşturuyor. SeamlessExpressive, vokal stilleri ve prosodiyi koruyan çeviriyi mümkün kılıyor. İfade zengini konuşma araştırmalarındaki önceki çalışmalara kıyasla, çalışmamız konuşma hızı ve duraklamalar gibi prosodinin bazı az keşfedilmiş yönlerini ele alırken, aynı zamanda kişinin ses stilini de koruyor. SeamlessStreaming'e gelince, modelimiz, tam kaynak cümleleri beklemeksizin düşük gecikmeli hedef çeviriler üretmek için Efficient Monotonic Multihead Attention (EMMA) mekanizmasından yararlanıyor. Türünün ilk örneği olan SeamlessStreaming, birden fazla kaynak ve hedef dil için eşzamanlı konuşma-konuşma/metin çevirisini mümkün kılıyor. Bu modellerin performansını anlamak için, prosodi, gecikme ve sağlamlığı değerlendirmek üzere yeni ve mevcut otomatik metriklerin değiştirilmiş sürümlerini birleştirdik. İnsan değerlendirmeleri için, anlamın, doğallığın ve ifade zenginliğinin korunmasında en ilgili nitelikleri ölçmeye yönelik mevcut protokolleri uyarladık. Modellerimizin güvenli ve sorumlu bir şekilde kullanılmasını sağlamak için, çok modlu makine çevirisine yönelik bilinen ilk red-teaming (kırmızı takım) çabasını, eklenen toksisitenin tespiti ve azaltılması için bir sistemi, cinsiyet önyargısının sistematik değerlendirmesini ve deepfake'lerin etkisini azaltmak üzere tasarlanmış duyulamaz, yerelleştirilmiş bir filigranlama mekanizmasını uyguladık. Sonuç olarak, SeamlessExpressive ve SeamlessStreaming'in ana bileşenlerini bir araya getirerek, gerçek zamanlı olarak ifade zengini dil arası iletişimi kilidini açan ilk herkese açık sistem olan Seamless'i oluşturuyoruz. Kısacası, Seamless, Evrensel Konuşma Çevirmenini bilim kurgu kavramından gerçek dünya teknolojisine dönüştürmek için gereken teknik temele önemli bir bakış açısı sunuyor. Son olarak, bu çalışmadaki katkılar—modeller, kod ve filigran algılayıcı dahil olmak üzere—halka açık olarak yayınlanmış olup aşağıdaki bağlantıdan erişilebilir.

Kullanım

Aşağıdaki örnekte, bir Arapça ses örneği ve bir İngilizce metin örneği yükleyip bunları Rusça konuşma ve Fransızca metne dönüştüreceğiz.

Önce işlemciyi ve modelin bir kontrol noktasını yükleyin:

from transformers import AutoProcessor, SeamlessM4Tv2Model


processor = AutoProcessor.from_pretrained("facebook/seamless-m4t-v2-large")
model = SeamlessM4Tv2Model.from_pretrained("facebook/seamless-m4t-v2-large", device_map="auto")

Bu modeli metin veya ses üzerinde sorunsuz bir şekilde kullanarak çevrilmiş metin veya çevrilmiş ses üretebilirsiniz.

İşleyiciyi metin ve ses işleme için kullanmanın yolu şudur:

# let's load an audio sample from an Arabic speech corpus
from datasets import load_dataset


dataset = load_dataset("halabi2016/arabic_speech_corpus", split="test", streaming=True)
audio_sample = next(iter(dataset))["audio"]

# now, process it
audio_inputs = processor(audio=audio_sample["array"], return_tensors="pt").to(model.device)

# now, process some English text as well
text_inputs = processor(text = "Hello, my dog is cute", src_lang="eng", return_tensors="pt").to(model.device)

Konuşma

SeamlessM4Tv2Model, az veya hiç değişiklik gerektirmeden kesintisiz metin veya ses üretebilir. Rusça ses çevirisini hedefleyelim:

audio_array_from_text = model.generate(**text_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()
audio_array_from_audio = model.generate(**audio_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()

Temelde aynı kodu kullanarak İngilizce metin ve Arapça ses örneklerini Rusça ses örneklerine çevirdim.

Metin

Benzer şekilde, aynı modelle ses dosyalarından veya metinden çevrilmiş metin üretebilirsiniz. Bunun için yalnızca SeamlessM4Tv2Model.generate() fonksiyonuna generate_speech=False parametresini iletmeniz yeterlidir. Bu sefer Fransızca'ya çevirelim.

# from audio
output_tokens = model.generate(**audio_inputs, tgt_lang="fra", generate_speech=False)
translated_text_from_audio = processor.decode(output_tokens[0].tolist()[0], skip_special_tokens=True)

# from text
output_tokens = model.generate(**text_inputs, tgt_lang="fra", generate_speech=False)
translated_text_from_text = processor.decode(output_tokens[0].tolist()[0], skip_special_tokens=True)

İpuçları

1. Özel modeller kullanın

SeamlessM4Tv2Model, ses ve metin üretmek için transformers'ın üst düzey modelidir; ancak ek bileşenler olmadan bu görevi gerçekleştiren, bu sayede bellek kullanımını azaltan özel modelleri de kullanabilirsiniz. Örneğin, ses-ses üretim kod parçasını S2ST görevine özel modele değiştirebilirsiniz; geri kalanı tamamen aynı koddur:

from transformers import SeamlessM4Tv2ForSpeechToSpeech


model = SeamlessM4Tv2ForSpeechToSpeech.from_pretrained("facebook/seamless-m4t-v2-large", device_map="auto")

Veya metinden metne üretim kod parçasını, T2TT görevine özel modele değiştirebilirsiniz; yalnızca generate_speech=False ifadesini kaldırmak yeterlidir.

from transformers import SeamlessM4Tv2ForTextToText


model = SeamlessM4Tv2ForTextToText.from_pretrained("facebook/seamless-m4t-v2-large", device_map="auto")

SeamlessM4Tv2ForSpeechToText ve SeamlessM4Tv2ForTextToSpeech modellerini de denemekte serbestsiniz.

2. Konuşmacı kimliğini değiştirin

Konuşma sentezi için kullanılacak konuşmacıyı speaker_id argümanıyla değiştirebilirsiniz. Bazı speaker_id değerleri bazı dillerde diğerlerinden daha iyi çalışır!

3. Üretim stratejisini değiştirin

Metin üretimi için farklı üretim stratejileri kullanabilirsiniz; örneğin .generate(input_ids=input_ids, text_num_beams=4, text_do_sample=True) metin modelinde çok terimli (multinomial) beam-search çözümleme yapar. Ses üretiminin varsayılan olarak yalnızca açgözlü (greedy) veya çok terimli örneklemeyi desteklediğini, bunun da örneğin .generate(..., speech_do_sample=True, speech_temperature=0.6) ile kullanılabileceğini unutmayın.

4. Ses ve metni aynı anda üretin

SeamlessM4Tv2Model ile return_intermediate_token_ids=True kullanarak hem ses hem de metni döndürün!

Model mimarisi

SeamlessM4T-v2, metin ve sesin ardışık olarak üretilmesini sorunsuz bir şekilde yöneten çok yönlü bir mimariye sahiptir. Bu yapı, iki adet diziden-diziye (seq2seq) modelden oluşur. İlk model, girdi modalitesini çevrilmiş metne dönüştürürken ikinci model, çevrilmiş metinden “unit token” olarak bilinen ses tokenlarını üretir.

Her modallite, kendine özgü bir mimariye sahip, ayrı bir kodlayıcıya sahiptir. Ayrıca, ses çıktısı için, HiFi-GAN mimarisinden ilham alan bir vokoder, ikinci seq2seq modelinin üzerine yerleştirilir.

SeamlessM4T-v1 ile fark

Bu yeni sürümün mimarisi, ilk sürümden birkaç açıdan farklılık gösterir:

İkinci geçiş modelindeki iyileştirmeler

İkinci seq2seq modeli olan text-to-unit modeli artık otomatik regresif değildir; bu, birimlerin tek bir ileri geçişte hesaplanması anlamına gelir. Bu başarı şu unsurlar sayesinde mümkün olmuştur:

  • karakter düzeyinde gömme kullanımı, yani öngörülen çevrilmiş metindeki her karakterin kendi gömmelerine sahip olması ve bu gömmelerin birim jetonları öngörmek için kullanılması.
  • öngörülen çevrilmiş metin üzerinde karakter düzeyinde konuşma süresini tahmin eden ara bir süre öngörücüsünün kullanımı.
  • daha uzun bağlamı işlemek için konvolüsyon ve öz-dikkati birleştiren yeni bir metinden birime çözücü kullanımı.

Ses kodlayıcıdaki fark

Çevrilmiş metni tahmin etmek için birinci geçiş üretim süreci sırasında kullanılan ses kodlayıcı, önceki ses kodlayıcıdan esas olarak şu mekanizmalar aracılığıyla farklılaşır:

  • parça bazlı dikkat maskesinin kullanımı, her konumun yalnızca kendi parçasındaki konumlara ve sabit sayıda önceki parçadaki konumlara dikkat etmesini sağlayarak parçalar arası dikkati önler.
  • Mutlak konumlar yerine yalnızca dizi elemanları arasındaki mesafeyi dikkate alan göreli konum gömme (relative position embeddings) kullanımını içerir. Daha fazla ayrıntı için Self-Attention with Relative Position Representations (Shaw et al.) makalesine bakınız.
  • nedenli derinlik boyu (depth-wise) konvolüsyonun, nedenli olmayan bir konvolüsyon yerine kullanılması.

Üretim süreci

Üretim sürecinin işleyişi şöyledir:

  • Girdi metin veya ses, kendi özel kodlayıcısından (encoder) işlenir.
  • Bir decoder, istenen dilde metin jetonları oluşturur.
  • Konuşma üretimi gerekiyorsa, ikinci seq2seq modeli, birim token'ları otomatik-geri beslemeli olmayan (non auto-regressive) bir şekilde üretir.
  • Bu birim jetonları, ardından gerçek konuşmayı üretmek için son vokodordan geçirilir.

Bu model ylacombe tarafından katkıda bulunmuştur. Orijinal kod burada bulunabilir.

SeamlessM4Tv2Model

sınıf transformers.SeamlessM4Tv2Model

< >

( config: SeamlessM4Tv2Configcurrent_modality = 'text' )

Parametreler

  • config (SeamlessM4Tv2Config) — 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.
  • current_modality (str, isteğe bağlı, varsayılan "text") — Varsayılan modalite. Modeli başlatmak için kullanılır.

Her görevde (S2ST, S2TT, T2TT, T2ST) kullanılabilen orijinal SeamlessM4Tv2 Model transformer'ı.

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.

generate

< >

( input_ids: typing.Optional[torch.Tensor] = Noneinput_features: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespeaker_id: int | None = 0generate_speech: bool | None = True**kwargs ) → Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor], ModelOutput]

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi tokenlarının indeksleri.

    Dizinler SeamlessM4TTokenizer veya SeamlessM4TProcessor kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() yöntemlerine bakın.

    Girdi kimlikleri nelerdir?

  • input_features (torch.Tensor, şekli (batch_size, sequence_length, num_banks), isteğe bağlı) — Giriş ses özellikleri. Bu, SeamlessM4TFeatureExtractor sınıfı veya SeamlessM4TProcessor sınıfı tarafından döndürülmelidir. Ayrıntılar için SeamlessM4TFeatureExtractor.call() bölümüne bakın.
  • return_intermediate_token_ids (bool, isteğe bağlı) — True ise, ara üretilen metni ve birim token'ları da döndürür. Sesin yanı sıra çevrilmiş metni de almak istiyorsanız True olarak ayarlayın. generate_speech=False ise bu parametrenin yoksayılacağını ve metin token'larının döndürüleceğini unutmayın.
  • tgt_lang (str, isteğe bağlı) — Çeviri için hedef dil olarak kullanılacak dil.
  • speaker_id (int, isteğe bağlı, varsayılan 0) — Ses sentezi için kullanılan konuşmacının kimliği. config.vocoder_num_spkrs değerinden küçük olmalıdır.
  • generate_speech (bool, isteğe bağlı, varsayılan True) — False ise yalnızca metin token'larını döndürür ve konuşma üretmez.
  • kwargs (isteğe bağlı) — GenerationMixin.generate() metoduna iletilecek anahtar kelime argümanlarının kalan sözlüğü Anahtar kelime argümanları iki türdedir:. Önek olmadan, bunlar decoder_input_ids hariç olmak üzere her alt modelin generate metoduna **kwargs olarak girer; decoder_input_ids yalnızca metin bileşenleri üzerinden iletilir. text_ veya speech_ önekiyle, sırasıyla metin modelinin ve konuşma modelinin generate metoduna girdi olarak verilir. Öneksiz anahtar kelimelere göre önceliğe sahiptir. Bu, örneğin bir üretim için üretim stratejisi belirleyip diğerini belirlememenize olanak tanır.
    • Önek olmadan, bunlar her alt modelin generate yöntemi için **kwargs olarak girilir; yalnızca decoder_input_ids metin bileşenleri üzerinden iletilir.
    • text_ veya speech_ önekiyle kullanıldıklarında, sırasıyla metin modelinin ve konuşma modelinin generate yönteminin girdisi olarak kullanılırlar. Öneki olmayan anahtar kelimelere göre önceliklidirler.

    Bu, örneğin bir üretim için üretim stratejisi belirleyip diğerini belirlememeniz anlamına gelir.

Dönüş değeri

Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor], ModelOutput]

  • generate_speech ve return_intermediate_token_ids kullanılırsa, SeamlessM4Tv2GenerationOutput döndürülür.
  • generate_speech çağrılır ve return_intermediate_token_ids değeri False ise, (batch_size, sequence_length) biçimindeki dalga formlarından ve her bir örneğin uzunluğunu veren waveform_lengths bileşeninden oluşan bir tuple döndürülür.
  • generate_speech=False ise, ModelOutput döndürülür.

Çevrilmiş token kimliklerini ve/veya çevrilmiş ses dalgalarını üretir.

Bu yöntem, iki farklı alt modelin .generate fonksiyonunu sırayla çağırır. Anahtar kelime argümanlarını iki farklı düzeyde belirleyebilirsiniz: her iki modele de iletilecek genel argümanlar veya bunlardan birine iletilecek önekli argümanlar.

Örneğin, .generate(input_ids=input_ids, num_beams=4, speech_do_sample=True) çağrısı, metin modelinde sırasıyla beam-search çözümlemesini ve konuşma modelinde multinomial beam-search örneklemesini gerçekleştirir.

Üretim stratejileri ve kod örneklerinin genel bakışı için şu kılavuza göz atın.

SeamlessM4Tv2ForTextToSpeech

sınıf transformers.SeamlessM4Tv2ForTextToSpeech

< >

( config: SeamlessM4Tv2Config )

Parametreler

  • config (SeamlessM4Tv2Config) — 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.

T2ST için kullanılabilen metinden konuşmaya SeamlessM4Tv2 Model dönüştürücüsü.

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.

generate

< >

( input_ids: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespeaker_id: int | None = 0**kwargs ) → Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length)) — Girdi dizisi token'larının sözlükteki indeksleri.

    Dizinler SeamlessM4TTokenizer veya SeamlessM4TProcessor kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() yöntemlerine bakın.

    Girdi kimlikleri nelerdir?

  • return_intermediate_token_ids (bool, isteğe bağlı) — True ise, ara üretilen metin ve birim token'ları da döndürülür. Sesin yanı sıra çevrilmiş metni de almak istiyorsanız True olarak ayarlayın.
  • tgt_lang (str, isteğe bağlı) — Çeviri için hedef dil olarak kullanılacak dil.
  • speaker_id (int, isteğe bağlı, varsayılan 0) — Ses sentezi için kullanılan konuşmacının kimliği. config.vocoder_num_spkrs değerinden küçük olmalıdır.
  • kwargs (isteğe bağlı) — GenerationMixin.generate() metoduna iletilecek anahtar kelime argümanlarının kalan sözlüğü Anahtar kelime argümanları iki türdedir:. Önek olmadan, bunlar decoder_input_ids hariç olmak üzere her alt modelin generate metoduna **kwargs olarak girer; decoder_input_ids yalnızca metin bileşenleri üzerinden iletilir. text_ veya speech_ önekiyle, sırasıyla metin modelinin ve konuşma modelinin generate metoduna girdi olarak verilir. Öneksiz anahtar kelimelere göre önceliğe sahiptir. Bu, örneğin bir üretim için üretim stratejisi belirleyip diğerini belirlememenize olanak tanır.
    • Önek olmadan, bunlar her alt modelin generate yöntemi için **kwargs olarak girilir; yalnızca decoder_input_ids metin bileşenleri üzerinden iletilir.
    • text_ veya speech_ önekiyle kullanıldıklarında, sırasıyla metin modelinin ve konuşma modelinin generate yönteminin girdisi olarak kullanılırlar. Öneki olmayan anahtar kelimelere göre önceliklidirler.

    Bu, örneğin bir üretim için üretim stratejisi belirleyip diğerini belirlememeniz anlamına gelir.

Dönüş değeri

Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]

  • return_intermediate_token_ids ise SeamlessM4Tv2GenerationOutput döndürür.
  • return_intermediate_token_ids değeri False değilse, (batch_size, sequence_length) biçiminde dalga formlarından ve her bir örneğin uzunluğunu veren waveform_lengths bileşeninden oluşan bir tuple döndürür.

Çevrilmiş ses dalga formlarını üretir.

Bu yöntem, iki farklı alt modelin .generate fonksiyonunu sırayla çağırır. Anahtar kelime argümanlarını iki farklı düzeyde belirleyebilirsiniz: her iki modele de iletilecek genel argümanlar veya bunlardan birine iletilecek önekli argümanlar.

Örneğin, .generate(input_ids, num_beams=4, speech_do_sample=True) çağrısı, metin modelinde sırayla beam-search çözümleme ve konuşma modelinde multinomial beam-search örneklemesi gerçekleştirir.

Üretim stratejileri ve kod örneklerinin genel bakışı için şu kılavuza göz atın.

SeamlessM4Tv2ForSpeechToSpeech

sınıf transformers.SeamlessM4Tv2ForSpeechToSpeech

< >

( config: SeamlessM4Tv2Config )

Parametreler

  • config (SeamlessM4Tv2Config) — 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.

S2ST için kullanılabilen ses-sese SeamlessM4Tv2 Model dönüştürücüsü.

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.

generate

< >

( input_features: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespeaker_id: int | None = 0**kwargs ) → Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]

Parametreler

  • input_features (torch.Tensor, şekli (batch_size, sequence_length, num_banks)) — Giriş ses özellikleri. Bu, SeamlessM4TFeatureExtractor sınıfı veya SeamlessM4TProcessor sınıfı tarafından döndürülmelidir. Ayrıntılar için SeamlessM4TFeatureExtractor.call() bölümüne bakın.
  • return_intermediate_token_ids (bool, isteğe bağlı) — True ise, ara üretilen metin ve birim token'ları da döndürülür. Sesin yanı sıra çevrilmiş metni de almak istiyorsanız True olarak ayarlayın.
  • tgt_lang (str, isteğe bağlı) — Çeviri için hedef dil olarak kullanılacak dil.
  • speaker_id (int, isteğe bağlı, varsayılan 0) — Ses sentezi için kullanılan konuşmacının kimliği. config.vocoder_num_spkrs değerinden küçük olmalıdır.
  • kwargs (isteğe bağlı) — GenerationMixin.generate() metoduna iletilecek anahtar kelime argümanlarının kalan sözlüğü Anahtar kelime argümanları iki türdedir:. Önek olmadan, bunlar decoder_input_ids hariç olmak üzere her alt modelin generate metoduna **kwargs olarak girer; decoder_input_ids yalnızca metin bileşenleri üzerinden iletilir. text_ veya speech_ önekiyle, sırasıyla metin modelinin ve konuşma modelinin generate metoduna girdi olarak verilir. Öneksiz anahtar kelimelere göre önceliğe sahiptir. Bu, örneğin bir üretim için üretim stratejisi belirleyip diğerini belirlememenize olanak tanır.
    • Önek olmadan, bunlar her alt modelin generate yöntemi için **kwargs olarak girilir; yalnızca decoder_input_ids metin bileşenleri üzerinden iletilir.
    • text_ veya speech_ önekiyle kullanıldıklarında, sırasıyla metin modelinin ve konuşma modelinin generate yönteminin girdisi olarak kullanılırlar. Öneki olmayan anahtar kelimelere göre önceliklidirler.

    Bu, örneğin bir üretim için üretim stratejisi belirleyip diğerini belirlememeniz anlamına gelir.

Dönüş değeri

Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]

  • return_intermediate_token_ids ise SeamlessM4Tv2GenerationOutput döndürür.
  • return_intermediate_token_ids değeri False değilse, (batch_size, sequence_length) biçiminde dalga formlarından ve her bir örneğin uzunluğunu veren waveform_lengths bileşeninden oluşan bir tuple döndürür.

Çevrilmiş ses dalga formlarını üretir.

Bu yöntem, iki farklı alt modelin .generate fonksiyonunu sırayla çağırır. Anahtar kelime argümanlarını iki farklı düzeyde belirleyebilirsiniz: her iki modele de iletilecek genel argümanlar veya bunlardan birine iletilecek önekli argümanlar.

Örneğin, .generate(input_features, num_beams=4, speech_do_sample=True) çağrısı, metin modelinde sırasıyla beam-search çözümleme ve konuşma modelinde multinomial beam-search örneklemesi yapar.

Üretim stratejileri ve kod örneklerinin genel bakışı için şu kılavuza göz atın.

SeamlessM4Tv2ForTextToText

sınıf transformers.SeamlessM4Tv2ForTextToText

< >

( config: SeamlessM4Tv2Config )

Parametreler

  • config (SeamlessM4Tv2Config) — 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.

T2TT için kullanılabilen metinden-metne SeamlessM4Tv2 Model dönüştürücüsü.

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

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.Tensor)

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • decoder_input_ids (torch.LongTensor şeklinde (batch_size, target_sequence_length), isteğe bağlı) — Sözlükteki decoder giriş dizisi token'larının indeksleri. İndeksler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() yöntemlerine bakın. Decoder giriş ID'leri nelerdir? Bart, decoder_input_ids üretimi için başlangıç token'ı olarak eos_token_id kullanır. past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_input_ids girdisi sağlanmalıdır (bkz. past_key_values). Çeviri ve özetleme eğitimi için decoder_input_ids sağlanmalıdır. decoder_input_ids sağlanmazsa, model bu tensörü, makaleye göre gürültü azaltma ön eğitimi için input_ids'ı sağa kaydırarak oluşturur.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Çözücü girdi kimlikleri nelerdir?

    Bart, decoder_input_ids üretimi için başlangıç jetonu olarak eos_token_id kullanır. past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_input_ids girdi olarak verilmelidir (bkz. past_key_values).

    Çeviri ve özetleme eğitimi için decoder_input_ids sağlanmalıdır. decoder_input_ids sağlanmazsa, model bu tensörü, makalede belirtildiği gibi gürültüden arındırma ön eğitimi için input_ids değerlerini sağa kaydırarak oluşturur.

  • decoder_attention_mask (torch.LongTensor şeklinde (batch_size, target_sequence_length), isteğe bağlı) — Varsayılan davranış: decoder_input_ids. içindeki dolgu (pad) jetonlarını yok sayan bir tensör oluşturur. Varsayılan olarak nedensel (causal) maske de kullanılır. Dolgu davranışını değiştirmek istiyorsanız modeling_bart._prepare_decoder_attention_mask fonksiyonunu okuyup ihtiyaçlarınıza göre düzenlemelisiniz. Varsayılan strateji hakkında daha fazla bilgi için makaledeki 1 numaralı diyagrama bakın.

    Dolgu davranışını değiştirmek istiyorsanız modeling_bart._prepare_decoder_attention_mask fonksiyonunu okuyup ihtiyaçlarınıza göre düzenlemelisiniz. Varsayılan strateji hakkında daha fazla bilgi için makaledeki 1 numaralı diyagrama bakın.

  • encoder_outputs (tuple[tuple[torch.Tensor]], isteğe bağlı) — (last_hidden_state, isteğe bağlı: hidden_states, isteğe bağlı: attentions) içeren bir tuple last_hidden_state, (batch_size, sequence_length, hidden_size) boyutunda, isteğe bağlı) encoder'ın son katmanının çıktısındaki gizli durumlar dizisidir. Decoder'ın çapraz dikkat (cross-attention) mekanizmasında kullanılır.
  • past_key_values (~cache_utils.Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genellikle past_key_values değerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülen use_cache=True veya config.use_cache=True.

    Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın. past_key_values geçirilmezse, varsayılan olarak DynamicCache başlatılır.

    Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.

    past_key_values kullanılıyorsa, kullanıcının tüm input_ids (şekli (batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemiş input_ids (şekli (batch_size, unprocessed_length)) girmesi beklenir.

  • inputs_embeds (torch.Tensor şeklinde(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids geçirmek yerine gömülü bir temsil doğrudan geçirmeyi seçebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme konusunda modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.

    labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı): Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler [-100, 0, ..., config.vocab_size] aralığında olmalıdır (bkz. input_ids docstring). Endeksleri -100 olarak ayarlanan tokenlar yok sayılır (maskelenir); kayıp yalnızca etiketleri [0, ..., config.vocab_size] aralığında olan tokenlar için hesaplanır.

  • decoder_inputs_embeds (torch.Tensor şeklinde (batch_size, target_sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, decoder_input_ids geçirmek yerine gömülü bir temsil doğrudan geçirebilirsiniz. Eğer past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_inputs_embeds girdi olarak verilmelidir (bkz. past_key_values). Bu, modelin dahili gömme arama matrisine kıyasla decoder_input_ids endekslerini ilgili vektörlere dönüştürme biçimi üzerinde daha fazla kontrol sağlamak istiyorsanız faydalıdır.

    decoder_input_ids ve decoder_inputs_embeds her ikisi de ayarlanmamışsa, decoder_inputs_embeds inputs_embeds değerini alır.

  • labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler [0, ..., config.vocab_size] aralığında olmalı ya da -100 olmalı (input_ids docstring'ine bakın). Endeksleri -100 olarak ayarlanan tokenlar yok sayılır (maskelenir), kayıp yalnızca etiketleri [0, ..., config.vocab_size] aralığında olan tokenlar için hesaplanır.
  • use_cache (bool, isteğe bağlı) — True olarak ayarlanırsa, past_key_values anahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz. past_key_values).

Dönüş değeri

Seq2SeqLMOutput veya tuple(torch.Tensor)

Bir Seq2SeqLMOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (SeamlessM4Tv2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

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

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Dil modelleme kaybı.

  • logits (torch.Tensor, şekli (batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).

  • past_key_values (EncoderDecoderCache, isteğe bağlı, use_cache=True geçirildiğinde veya config.use_cache=True olduğunda döndürülür) — Bir EncoderDecoderCache örneğidir. Daha fazla ayrıntı için kv önbellek kılavuzumuza bakın.

    Sıralı çözümlemeyi hızlandırmak için (bkz. past_key_values girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki ve cross-attention bloklarındaki anahtar ve değerler) içerir.

  • decoder_hidden_states (tuple(torch.Tensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında ve başlangıç gömme çıktılarında dekodlayıcının gizli durumları.

  • decoder_attentions (tuple(torch.Tensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat ağırlıkları, dikkat softmax'ından sonra, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılan dekoderin

  • cross_attentions (tuple(torch.Tensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — (batch_size, num_heads, sequence_length, sequence_length) biçiminde, her katman için bir adet içeren torch.Tensor demeti.

    Dekoderin çapraz dikkat katmanının dikkat ağırlıkları, dikkat softmax'ından sonra, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

  • encoder_last_hidden_state (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — Modelin kodlayıcısının son katmanının çıktısındaki gizli durumlar dizisi.

  • encoder_hidden_states (tuple(torch.Tensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında ve başlangıç gömme çıktılarında kodlayıcının gizli durumları.

  • encoder_attentions (tuple(torch.Tensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat yumuşatma (attention softmax) sonrasında, öz-dikkat (self-attention) kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılan kodlayıcının dikkat ağırlıkları.

generate

< >

( input_ids = Nonetgt_lang = Nonegeneration_config = Nonelogits_processor = Nonestopping_criteria = Noneprefix_allowed_tokens_fn = Nonesynced_gpus = False**kwargs ) → ModelOutput or torch.LongTensor

Parametreler

  • input_ids (torch.Tensor modaliteye göre değişen şekilli isteğe bağlı) — Sözlükteki girdi dizisi token'larının indeksleri. İndeksler SeamlessM4TTokenizer veya SeamlessM4TProcessor kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() yöntemlerine bakın. Girdi kimlikları nelerdir?

    Dizinler SeamlessM4TTokenizer veya SeamlessM4TProcessor kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() yöntemlerine bakın.

    Girdi kimlikleri nelerdir?

  • tgt_lang (str, isteğe bağlı) — Çeviri için hedef dil olarak kullanılacak dil.
  • generation_config (~generation.GenerationConfig, isteğe bağlı) — Üretim çağrısı için temel parametrelendirme olarak kullanılacak üretim yapılandırması. **kwargs generate'e aktarılan ve generation_config öznitelikleriyle eşleşenler bunları geçersiz kılar. generation_config sağlanmazsa, varsayılanı kullanılır; bunun yükleme önceliği şudur: 1) varsa generation_config.json model dosyasından; 2) model yapılandırmasından. Belirtilmeyen parametrelerin GenerationConfig'in varsayılan değerlerini devraldığını ve üretimi parametrelendirmek için belgesinin kontrol edilmesi gerektiğini lütfen unutmayın.
  • logits_processor (LogitsProcessorList, isteğe bağlı) — Argümanlardan ve üretim yapılandırmasından oluşturulan varsayılan logits işleyicilerini tamamlayan özel logits işleyicileri. Argümanlarla veya bir üretim yapılandırmasıyla zaten oluşturulmuş bir logits işleyicisi geçirilirse bir hata fırlatılır. Bu özellik ileri düzey kullanıcılar için tasarlanmıştır.
  • stopping_criteria (StoppingCriteriaList, isteğe bağlı) — Argümanlardan ve bir generation config'ten oluşturulan varsayılan durdurma kriterlerini tamamlayan özel durdurma kriterleri. Argümanlarla veya bir generation config ile zaten oluşturulmuş bir durdurma kriteri geçirilirse bir hata fırlatılır. Bu özellik ileri düzey kullanıcılar için tasarlanmıştır.
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], list[int]], isteğe bağlı) — Sağlanırsa, bu fonksiyon her adımda beam search'i yalnızca izin verilen tokenlara kısıtlar. Sağlanmazsa hiçbir kısıtlama uygulanmaz. Bu fonksiyon 2 argüman alır: batch kimliği batch_id ve input_ids. Batch kimliği batch_id ve daha önce üretilen tokenlar inputs_ids koşullarına bağlı olarak, bir sonraki üretim adımı için izin verilen tokenların listesini döndürmelidir. Bu argüman, Autoregressive Entity Retrieval makalesinde anlatıldığı gibi, önekle (prefix) koşullu kısıtlı üretim için faydalıdır.
  • synced_gpus (bool, isteğe bağlı, varsayılan False) — FullyShardedDataParallel ve DeepSpeed ZeRO Stage 3 ile ölü kilitlenmeyi (deadlock) önlemek için max_length değerine kadar while döngüsünün çalışmaya devam edip etmeyeceğini belirler.
  • kwargs (dict[str, Any], isteğe bağlı) — generate_config için ad hoc parametrelendirme ve/veya modelin forward fonksiyonuna iletilecek ek model-özel kwargs'lar.

Dönüş değeri

ModelOutput veya torch.LongTensor

Bir ModelOutput (return_dict_in_generate=True ise veya config.return_dict_in_generate=True olduğunda) ya da bir torch.Tensor. Olası ModelOutput türleri şunlardır:

Token kimliği dizileri oluşturur.

Çoğu üretim kontrol parametresi, generation_config içinde ayarlanır; bu parametre geçirilmezse, modelin varsayılan üretim yapılandırması kullanılır. generation_config içindeki herhangi bir değeri, generate() fonksiyonuna ilgili parametreleri geçirerek geçersiz kılabilirsiniz, örneğin .generate(inputs, num_beams=4, do_sample=True).

Üretim stratejileri ve kod örneklerinin genel bakışı için şu kılavuza göz atın.

SeamlessM4Tv2ForSpeechToText

sınıf transformers.SeamlessM4Tv2ForSpeechToText

< >

( config: SeamlessM4Tv2Config )

Parametreler

  • config (SeamlessM4Tv2Config) — 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.

S2TT için kullanılabilen speech-to-text SeamlessM4Tv2 Model transformer'ı.

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

< >

( input_features: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.Tensor)

Parametreler

  • input_features (torch.Tensor, şekli (batch_size, sequence_length, num_banks)) — Giriş ses özellikleri. Bu, SeamlessM4TFeatureExtractor sınıfı veya SeamlessM4TProcessor sınıfı tarafından döndürülmelidir. Ayrıntılar için SeamlessM4TFeatureExtractor.call() bölümüne bakın.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • decoder_input_ids (torch.LongTensor şeklinde (batch_size, target_sequence_length), isteğe bağlı) — Sözlükteki decoder giriş dizisi token'larının indeksleri. İndeksler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() yöntemlerine bakın. Decoder giriş ID'leri nelerdir? Bart, decoder_input_ids üretimi için başlangıç token'ı olarak eos_token_id kullanır. past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_input_ids girdisi sağlanmalıdır (bkz. past_key_values). Çeviri ve özetleme eğitimi için decoder_input_ids sağlanmalıdır. decoder_input_ids sağlanmazsa, model bu tensörü, makaleye göre gürültü azaltma ön eğitimi için input_ids'ı sağa kaydırarak oluşturur.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Çözücü girdi kimlikleri nelerdir?

    Bart, decoder_input_ids üretimi için başlangıç jetonu olarak eos_token_id kullanır. past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_input_ids girdi olarak verilmelidir (bkz. past_key_values).

    Çeviri ve özetleme eğitimi için decoder_input_ids sağlanmalıdır. decoder_input_ids sağlanmazsa, model bu tensörü, makalede belirtildiği gibi gürültüden arındırma ön eğitimi için input_ids değerlerini sağa kaydırarak oluşturur.

  • decoder_attention_mask (torch.LongTensor şeklinde (batch_size, target_sequence_length), isteğe bağlı) — Varsayılan davranış: decoder_input_ids. içindeki dolgu (pad) jetonlarını yok sayan bir tensör oluşturur. Varsayılan olarak nedensel (causal) maske de kullanılır. Dolgu davranışını değiştirmek istiyorsanız modeling_bart._prepare_decoder_attention_mask fonksiyonunu okuyup ihtiyaçlarınıza göre düzenlemelisiniz. Varsayılan strateji hakkında daha fazla bilgi için makaledeki 1 numaralı diyagrama bakın.

    Dolgu davranışını değiştirmek istiyorsanız modeling_bart._prepare_decoder_attention_mask fonksiyonunu okuyup ihtiyaçlarınıza göre düzenlemelisiniz. Varsayılan strateji hakkında daha fazla bilgi için makaledeki 1 numaralı diyagrama bakın.

  • encoder_outputs (tuple[tuple[torch.Tensor]], isteğe bağlı) — (last_hidden_state, isteğe bağlı: hidden_states, isteğe bağlı: attentions) içeren bir tuple last_hidden_state, (batch_size, sequence_length, hidden_size) boyutunda, isteğe bağlı) encoder'ın son katmanının çıktısındaki gizli durumlar dizisidir. Decoder'ın çapraz dikkat (cross-attention) mekanizmasında kullanılır.
  • past_key_values (~cache_utils.Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genellikle past_key_values değerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülen use_cache=True veya config.use_cache=True.

    Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın. past_key_values geçirilmezse, varsayılan olarak DynamicCache başlatılır.

    Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.

    past_key_values kullanılıyorsa, kullanıcının tüm input_ids (şekli (batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemiş input_ids (şekli (batch_size, unprocessed_length)) girmesi beklenir.

  • inputs_embeds (torch.Tensor şeklinde(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids geçirmek yerine gömülü bir temsil doğrudan geçirmeyi seçebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme konusunda modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.

    labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı): Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler [-100, 0, ..., config.vocab_size] aralığında olmalıdır (bkz. input_ids docstring). Endeksleri -100 olarak ayarlanan tokenlar yok sayılır (maskelenir); kayıp yalnızca etiketleri [0, ..., config.vocab_size] aralığında olan tokenlar için hesaplanır.

  • decoder_inputs_embeds (torch.Tensor şeklinde (batch_size, target_sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, decoder_input_ids geçirmek yerine gömülü bir temsil doğrudan geçirebilirsiniz. Eğer past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_inputs_embeds girdi olarak verilmelidir (bkz. past_key_values). Bu, modelin dahili gömme arama matrisine kıyasla decoder_input_ids endekslerini ilgili vektörlere dönüştürme biçimi üzerinde daha fazla kontrol sağlamak istiyorsanız faydalıdır.

    decoder_input_ids ve decoder_inputs_embeds her ikisi de ayarlanmamışsa, decoder_inputs_embeds inputs_embeds değerini alır.

  • labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler [0, ..., config.vocab_size] aralığında olmalı ya da -100 olmalı (input_ids docstring'ine bakın). Endeksleri -100 olarak ayarlanan tokenlar yok sayılır (maskelenir), kayıp yalnızca etiketleri [0, ..., config.vocab_size] aralığında olan tokenlar için hesaplanır.
  • use_cache (bool, isteğe bağlı) — True olarak ayarlanırsa, past_key_values anahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz. past_key_values).

Dönüş değeri

Seq2SeqLMOutput veya tuple(torch.Tensor)

Bir Seq2SeqLMOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (SeamlessM4Tv2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

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

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Dil modelleme kaybı.

  • logits (torch.Tensor, şekli (batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).

  • past_key_values (EncoderDecoderCache, isteğe bağlı, use_cache=True geçirildiğinde veya config.use_cache=True olduğunda döndürülür) — Bir EncoderDecoderCache örneğidir. Daha fazla ayrıntı için kv önbellek kılavuzumuza bakın.

    Sıralı çözümlemeyi hızlandırmak için (bkz. past_key_values girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki ve cross-attention bloklarındaki anahtar ve değerler) içerir.

  • decoder_hidden_states (tuple(torch.Tensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında ve başlangıç gömme çıktılarında dekodlayıcının gizli durumları.

  • decoder_attentions (tuple(torch.Tensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat ağırlıkları, dikkat softmax'ından sonra, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılan dekoderin

  • cross_attentions (tuple(torch.Tensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — (batch_size, num_heads, sequence_length, sequence_length) biçiminde, her katman için bir adet içeren torch.Tensor demeti.

    Dekoderin çapraz dikkat katmanının dikkat ağırlıkları, dikkat softmax'ından sonra, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

  • encoder_last_hidden_state (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — Modelin kodlayıcısının son katmanının çıktısındaki gizli durumlar dizisi.

  • encoder_hidden_states (tuple(torch.Tensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında ve başlangıç gömme çıktılarında kodlayıcının gizli durumları.

  • encoder_attentions (tuple(torch.Tensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat yumuşatma (attention softmax) sonrasında, öz-dikkat (self-attention) kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılan kodlayıcının dikkat ağırlıkları.

Örnek:

>>> from transformers import AutoProcessor, SeamlessM4Tv2ForSpeechToText
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> processor = AutoProcessor.from_pretrained("facebook/hf-seamless-m4t-medium")
>>> model = SeamlessM4Tv2ForSpeechToText.from_pretrained("facebook/hf-seamless-m4t-medium")

>>> # audio file is decoded on the fly
>>> inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> with torch.no_grad():
...     logits = model(**inputs).logits
>>> predicted_ids = torch.argmax(logits, dim=-1)

>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids)
>>> transcription[0]
...

>>> inputs["labels"] = processor(text=dataset[0]["text"], return_tensors="pt").input_ids

>>> # compute loss
>>> loss = model(**inputs).loss
>>> round(loss.item(), 2)
...

generate

< >

( input_features = Nonetgt_lang = Nonegeneration_config = Nonelogits_processor = Nonestopping_criteria = Noneprefix_allowed_tokens_fn = Nonesynced_gpus = False**kwargs ) → ModelOutput or torch.LongTensor

Parametreler

  • input_features (torch.Tensor, şekli (batch_size, sequence_length, num_banks)) — Giriş ses özellikleri. Bu, SeamlessM4TFeatureExtractor sınıfı veya SeamlessM4TProcessor sınıfı tarafından döndürülmelidir. Ayrıntılar için SeamlessM4TFeatureExtractor.call() bölümüne bakın.
  • tgt_lang (str, isteğe bağlı) — Çeviri için hedef dil olarak kullanılacak dil.
  • generation_config (~generation.GenerationConfig, isteğe bağlı) — Üretim çağrısı için temel parametrelendirme olarak kullanılacak üretim yapılandırması. **kwargs generate'e aktarılan ve generation_config öznitelikleriyle eşleşenler bunları geçersiz kılar. generation_config sağlanmazsa, varsayılanı kullanılır; bunun yükleme önceliği şudur: 1) varsa generation_config.json model dosyasından; 2) model yapılandırmasından. Belirtilmeyen parametrelerin GenerationConfig'in varsayılan değerlerini devraldığını ve üretimi parametrelendirmek için belgesinin kontrol edilmesi gerektiğini lütfen unutmayın.
  • logits_processor (LogitsProcessorList, isteğe bağlı) — Argümanlardan ve üretim yapılandırmasından oluşturulan varsayılan logits işleyicilerini tamamlayan özel logits işleyicileri. Argümanlarla veya bir üretim yapılandırmasıyla zaten oluşturulmuş bir logits işleyicisi geçirilirse bir hata fırlatılır. Bu özellik ileri düzey kullanıcılar için tasarlanmıştır.
  • stopping_criteria (StoppingCriteriaList, isteğe bağlı) — Argümanlardan ve bir generation config'ten oluşturulan varsayılan durdurma kriterlerini tamamlayan özel durdurma kriterleri. Argümanlarla veya bir generation config ile zaten oluşturulmuş bir durdurma kriteri geçirilirse bir hata fırlatılır. Bu özellik ileri düzey kullanıcılar için tasarlanmıştır.
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], list[int]], isteğe bağlı) — Sağlanırsa, bu fonksiyon her adımda beam search'i yalnızca izin verilen tokenlara kısıtlar. Sağlanmazsa hiçbir kısıtlama uygulanmaz. Bu fonksiyon 2 argüman alır: batch kimliği batch_id ve input_ids. Batch kimliği batch_id ve daha önce üretilen tokenlar inputs_ids koşullarına bağlı olarak, bir sonraki üretim adımı için izin verilen tokenların listesini döndürmelidir. Bu argüman, Autoregressive Entity Retrieval makalesinde anlatıldığı gibi, önekle (prefix) koşullu kısıtlı üretim için faydalıdır.
  • synced_gpus (bool, isteğe bağlı, varsayılan False) — FullyShardedDataParallel ve DeepSpeed ZeRO Stage 3 ile ölü kilitlenmeyi (deadlock) önlemek için max_length değerine kadar while döngüsünün çalışmaya devam edip etmeyeceğini belirler.
  • kwargs (dict[str, Any], isteğe bağlı) — generate_config için ad hoc parametrelendirme ve/veya modelin forward fonksiyonuna iletilecek ek model-özel kwargs'lar.

Dönüş değeri

ModelOutput veya torch.LongTensor

Bir ModelOutput (return_dict_in_generate=True ise veya config.return_dict_in_generate=True olduğunda) ya da bir torch.Tensor. Olası ModelOutput türleri şunlardır:

Token kimliği dizileri oluşturur.

Çoğu üretim kontrol parametresi, generation_config içinde ayarlanır; bu parametre geçirilmezse, modelin varsayılan üretim yapılandırması kullanılır. generation_config içindeki herhangi bir değeri, generate() fonksiyonuna ilgili parametreleri geçirerek geçersiz kılabilirsiniz, örneğin .generate(inputs, num_beams=4, do_sample=True).

Üretim stratejileri ve kod örneklerinin genel bakışı için şu kılavuza göz atın.

SeamlessM4Tv2Config

sınıf transformers.SeamlessM4Tv2Config

< >

( 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truevocab_size: int = 256102t2u_vocab_size: int = 10082char_vocab_size: int = 10943hidden_size: int = 1024initializer_range: float = 0.02layer_norm_eps: float = 1e-05use_cache: bool = Truemax_position_embeddings: int = 4096encoder_layerdrop: float | int = 0.05decoder_layerdrop: float | int = 0.05activation_function: str = 'relu'dropout: float | int = 0.1attention_dropout: float | int = 0.1activation_dropout: float | int = 0.0scale_embedding: bool = Trueencoder_layers: int = 24encoder_ffn_dim: int = 8192encoder_attention_heads: int = 16decoder_layers: int = 24decoder_ffn_dim: int = 8192decoder_attention_heads: int = 16decoder_start_token_id: int = 3max_new_tokens: int | None = 256pad_token_id: int | None = 0bos_token_id: int | None = 2eos_token_id: int | list[int] | None = 3speech_encoder_layers: int = 24speech_encoder_attention_heads: int = 16speech_encoder_intermediate_size: int = 4096speech_encoder_hidden_act: str = 'swish'speech_encoder_dropout: float | int = 0.0add_adapter: bool = Truespeech_encoder_layerdrop: float | int = 0.1feature_projection_input_dim: int = 160adaptor_kernel_size: int = 8adaptor_stride: int = 8adaptor_dropout: float | int = 0.1num_adapter_layers: int = 1position_embeddings_type: str = 'relative_key'conv_depthwise_kernel_size: int = 31left_max_position_embeddings: int = 64right_max_position_embeddings: int = 8speech_encoder_chunk_size: int = 20000speech_encoder_left_chunk_num: int = 128t2u_bos_token_id: int | None = 0t2u_pad_token_id: int | None = 1t2u_eos_token_id: int | list[int] | None = 2t2u_encoder_layers: int = 6t2u_encoder_ffn_dim: int = 8192t2u_encoder_attention_heads: int = 16t2u_decoder_layers: int = 6t2u_decoder_ffn_dim: int = 8192t2u_decoder_attention_heads: int = 16t2u_max_position_embeddings: int = 4096t2u_variance_predictor_embed_dim: int = 1024t2u_variance_predictor_hidden_dim: int = 256t2u_variance_predictor_kernel_size: int = 3t2u_variance_pred_dropout: float | int = 0.5sampling_rate: int = 16000upsample_initial_channel: int = 512upsample_rates: list[int] | tuple[int, ...] = (5, 4, 4, 2, 2)upsample_kernel_sizes: list[int] | tuple[int, ...] = (11, 8, 8, 4, 4)resblock_kernel_sizes: list[int] | tuple[int, ...] = (3, 7, 11)resblock_dilation_sizes: list | tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5))leaky_relu_slope: float = 0.1unit_hifi_gan_vocab_size: int = 10000unit_embed_dim: int = 1280lang_embed_dim: int = 256spkr_embed_dim: int = 256vocoder_num_langs: int = 36vocoder_num_spkrs: int = 200variance_predictor_kernel_size: int = 3var_pred_dropout: float | int = 0.5vocoder_offset: int = 4tie_word_embeddings: bool = True )

Parametreler

  • is_encoder_decoder (bool, isteğe bağlı, varsayılan True) — Modelin bir kodlayıcı/çözücü olarak kullanılıp kullanılmadığı.
  • vocab_size (int, isteğe bağlı, varsayılan 256102) — Modelin sözlük boyutu. input_ids ile temsil edilebilecek farklı token sayısını belirler.
  • t2u_vocab_size (int, isteğe bağlı, varsayılan 10082) — SeamlessM4Tv2 modelinin birim sözlük boyutu. ~SeamlessM4Tv2Model, ~SeamlessM4Tv2ForSpeechToSpeech veya ~SeamlessM4Tv2ForTextToSpeech çağrılırken Text-To-Units alt modeline geçirilen inputs_ids ile temsil edilebilen farklı “birim jeton” sayısını tanımlar.
  • char_vocab_size (int, isteğe bağlı, varsayılan 10943) — SeamlessM4Tv2 modelinin karakter sözlük boyutu. ~SeamlessM4Tv2Model, ~SeamlessM4Tv2ForSpeechToSpeech veya ~SeamlessM4Tv2ForTextToSpeech çağrılırken Text-To-Units alt modeline geçirilen char_inputs_ids ile temsil edilebilecek farklı karakter jetonlarının sayısını tanımlar.
  • hidden_size (int, isteğe bağlı, varsayılan 1024) — Gizli temsillerin boyutu.
  • initializer_range (float, isteğe bağlı, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
  • layer_norm_eps (float, isteğe bağlı, varsayılan 1e-05) — Katman normalizasyon katmanları tarafından kullanılan epsilon.
  • use_cache (bool, isteğe bağlı, varsayılan True) — Modelin son anahtar/değer dikkatlerini (tüm modellerde kullanılmaz) döndürüp döndürmeyeceği. Yalnızca config.is_decoder=True olduğunda veya model yalnızca çözücü tabanlı üretken bir model olduğunda geçerlidir.
  • max_position_embeddings (int, isteğe bağlı, varsayılan 4096) — Bu modelin kullanılabileceği en uzun dizi uzunluğu.
  • encoder_layerdrop (Union[float, int], isteğe bağlı, varsayılan 0.05) — Encoder için LayerDrop olasılığı. Daha fazla ayrıntı için [LayerDrop makalesine](bkz. https://huggingface.co/papers/1909.11556) bakın.
  • decoder_layerdrop (Union[float, int], isteğe bağlı, varsayılan 0.05) — Çözücü için LayerDrop olasılığı. Daha fazla ayrıntı için [LayerDrop makalesine](bkz. https://huggingface.co/papers/1909.11556) bakın.
  • activation_function (str, isteğe bağlı, varsayılan relu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, "gelu", "relu", "silu" vb.
  • dropout (Union[float, int], isteğe bağlı, varsayılan 0.1) — Tüm dropout katmanları için oran.
  • attention_dropout (Union[float, int], isteğe bağlı, varsayılan 0.1) — Dikkat olasılıkları için dropout oranı.
  • activation_dropout (Union[float, int], isteğe bağlı, varsayılan 0.0) — Tamamen bağlı katmandaki aktivasyonlar için dropout oranı.
  • scale_embedding (bool, isteğe bağlı, varsayılan True) — Gömme değerlerinin sqrt(d_model) ile bölünerek ölçeklendirilip ölçeklendirilmeyeceğini belirtir.
  • encoder_layers (int, isteğe bağlı, varsayılan 24) — Transformer kodlayıcısındaki gizli katman sayısı. Ayarlanmazsa num_layers ile aynı değeri kullanır.
  • encoder_ffn_dim (int, isteğe bağlı, varsayılan 8192) — Encoder'daki "ara" (genellikle feed-forward olarak adlandırılan) katmanın boyutu.
  • encoder_attention_heads (int, isteğe bağlı, varsayılan 16) — Transformer kodlayıcısındaki her dikkat katmanı için dikkat başı sayısı.
  • decoder_layers (int, isteğe bağlı, varsayılan 24) — Transformer decoder'ındaki gizli katman sayısı. Ayarlanmazsa num_layers ile aynı değeri kullanır.
  • decoder_ffn_dim (int, isteğe bağlı, varsayılan 8192) — Decoder'daki “ara” (genellikle feed-forward olarak adlandırılan) katmanın boyutluluğu.
  • decoder_attention_heads (int, isteğe bağlı, varsayılan 16) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.
  • decoder_start_token_id (int, isteğe bağlı, varsayılan 3) — Bir encoder-decoder modeli, bos ile farklı bir token ile çözmeye başlıyorsa, o token'ın kimliği.
  • max_new_tokens (int, isteğe bağlı, varsayılan 256) — İstekteki token sayısını göz ardı ederek üretilecek en fazla metin token sayısı.
  • pad_token_id (int, isteğe bağlı, varsayılan 0) — Sözlükte dolgu için kullanılan token kimliği.
  • bos_token_id (int, isteğe bağlı, varsayılan 2) — Sözlükte akış başlangıcı için kullanılan token kimliği.
  • eos_token_id (Union[int, list[int]], isteğe bağlı, varsayılan 3) — Sözlükte akış sonu için kullanılan token kimliği.
  • speech_encoder_layers (int, isteğe bağlı, varsayılan 24) — Transformer ses kodlayıcısındaki gizli katman sayısı.
  • speech_encoder_attention_heads (int, isteğe bağlı, varsayılan 16) — Transformer ses kodlayıcısındaki her dikkat katmanı için dikkat başlığı sayısı.
  • speech_encoder_intermediate_size (int, isteğe bağlı, varsayılan 4096) — Transformer ses kodlayıcısındaki “ara” (yani, ileri beslemeli) katmanın boyutu.
  • speech_encoder_hidden_act (str veya function, isteğe bağlı, varsayılan "swish") — Ses kodlayıcıdaki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Dize olarak verilirse "gelu", "relu", "selu", "swish" ve "gelu_new" desteklenir.
  • speech_encoder_dropout (float, isteğe bağlı, varsayılan 0.0) — Ses kodlayıcısındaki tüm katmanlar için dropout olasılığı.
  • add_adapter (bool, isteğe bağlı, varsayılan True) — Ses kodlayıcısının üzerine bir adaptör katmanı ekler.
  • speech_encoder_layerdrop (float, isteğe bağlı, varsayılan 0.1) — Ses kodlayıcısı için LayerDrop olasılığı. Daha fazla ayrıntı için [LayerDrop makalesine](bkz https://huggingface.co/papers/1909.11556) bakın.
  • feature_projection_input_dim (int, isteğe bağlı, varsayılan 160) — Ses kodlayıcısının giriş özellik projeksiyonunun giriş boyutu, yani SeamlessM4TFeatureExtractor ile giriş seslerinin işlenmesinden sonraki boyut.
  • adaptor_kernel_size (int, isteğe bağlı, varsayılan 8) — Adapter ağındaki konvolüsyon katmanlarının çekirdek boyutu. Yalnızca add_adapter is True ise geçerlidir.
  • adaptor_stride (int, isteğe bağlı, varsayılan 8) — Adapter ağındaki konvolüsyon katmanlarının stride değeri. Yalnızca add_adapter is True ise geçerlidir.
  • adaptor_dropout (float, isteğe bağlı, varsayılan 0.1) — Ses adaptöründeki tüm katmanlar için dropout olasılığı.
  • num_adapter_layers (int, isteğe bağlı, varsayılan 1) — Adapter ağında kullanılacak konvolüsyon katmanlarının sayısı. Yalnızca add_adapter is True ise geçerlidir.
  • position_embeddings_type (str, isteğe bağlı, varsayılan "relative_key") — relative_key olarak belirtilebilir. None olarak bırakılırsa, göreli konum gömme uygulanmaz. Yalnızca konuşma kodlayıcıya uygulanır. "relative_key" hakkında daha fazla bilgi için Self-Attention with Relative Position Representations (Shaw et al.) belgesine bakın.
  • conv_depthwise_kernel_size (int, isteğe bağlı, varsayılan 31) — Conformer bloklarındaki konvolüsyonel derinlik içi 1D katmanının çekirdek boyutu. Yalnızca ses kodlayıcıya uygulanır.
  • left_max_position_embeddings (int, isteğe bağlı, varsayılan 64) — Göreceli konumlar için sol kırpma değeri.
  • right_max_position_embeddings (int, isteğe bağlı, varsayılan 8) — Göreceli konumlar için sağ kırpma değeri.
  • speech_encoder_chunk_size (int, isteğe bağlı, varsayılan 20000) — Her dikkat parçasının boyutu.
  • speech_encoder_left_chunk_num (int, isteğe bağlı, varsayılan 128) — İleriye bakışın (lookahead) izin verildiği sol taraftaki parça sayısı.
  • t2u_bos_token_id (int, isteğe bağlı, varsayılan 0) — beginning-of-stream birim jetonunun kimliği. Yalnızca metinden birime (text-to-unit) seq2seq modeline uygulanır.
  • t2u_pad_token_id (int, isteğe bağlı, varsayılan 1) — padding birim token'ının kimliği. Yalnızca metinden birime (text-to-unit) seq2seq modeline uygulanır.
  • t2u_eos_token_id (int, isteğe bağlı, varsayılan 2) — end-of-stream birim token'ının kimliği. Yalnızca metinden birime (text-to-unit) seq2seq modeline uygulanır.
  • t2u_encoder_layers (int, isteğe bağlı, varsayılan 6) — Transformer metinden birime kodlayıcısındaki gizli katman sayısı.
  • t2u_encoder_ffn_dim (int, isteğe bağlı, varsayılan 8192) — Transformer metinden birime kodlayıcıda “ara” (yani, beslemeli) katmanın boyutu.
  • t2u_encoder_attention_heads (int, isteğe bağlı, varsayılan 16) — Transformer metinden birime kodlayıcıdaki her dikkat katmanı için dikkat başı sayısı.
  • t2u_decoder_layers (int, isteğe bağlı, varsayılan 6) — Transformer metinden birime (text-to-unit) kodlayıcısındaki gizli katman sayısı.
  • t2u_decoder_ffn_dim (int, isteğe bağlı, varsayılan 8192) — Transformer metinden birime (text-to-unit) kodlayıcısındaki “ara” (yani, beslemeli ileri) katmanının boyutu.
  • t2u_decoder_attention_heads (int, isteğe bağlı, varsayılan 16) — Transformer metinden birime (text-to-unit) kodlayıcısındaki her dikkat katmanı için dikkat başı sayısı.
  • t2u_max_position_embeddings (int, isteğe bağlı, varsayılan 4096) — Bu modelin metinden birime (text-to-unit) bileşeninin kullanılabileceği maksimum dizi uzunluğu. Genellikle bu değeri, olası durumlara karşı büyük bir sayı olarak ayarlayın (ör. 512, 1024 veya 2048).
  • t2u_variance_predictor_embed_dim (int, isteğe bağlı, varsayılan 1024) — Metinden birime dönüştürücünün süre tahmincisinin yansıtma boyutu.
  • t2u_variance_predictor_hidden_dim (int, isteğe bağlı, varsayılan 256) — Metinden birime dönüştürücünün süre tahmincisinin iç boyutu.
  • t2u_variance_predictor_kernel_size (int, isteğe bağlı, varsayılan 3) — Metinden birime dönüştürme (text-to-unit) süresi tahmincisinin konvolüsyonel katmanlarının çekirdek boyutu.
  • t2u_variance_pred_dropout (float, opsiyonel, varsayılan 0.5) — Metinden birime dönüştürme (text-to-unit) süresi tahmincisinin dropout olasılığı.
  • sampling_rate (int, isteğe bağlı, varsayılan 16000) — Ses dosyalarının dijitalleştirilmesi gereken örnekleme hızı, hertz (Hz) cinsinden ifade edilir.
  • upsample_initial_channel (int, isteğe bağlı, varsayılan 512) — hifi-gan örnekleme artırma ağına giren giriş kanal sayısı. Yalnızca vokoder için geçerlidir.
  • upsample_rates (tuple[int] veya list[int], isteğe bağlı, varsayılan [5, 4, 4, 2, 2]) — Vokoderin örneklem artırma (upsampling) ağındaki her 1D konvolüsyon katmanının stride değerini tanımlayan tamsayılar dizisi. upsample_rates uzunluğu, konvolüsyon katmanlarının sayısını belirler ve upsample_kernel_sizes uzunluğuyla eşleşmelidir. Yalnızca vokoder için geçerlidir.
  • upsample_kernel_sizes (tuple[int] veya list[int], isteğe bağlı, varsayılan [11, 8, 8, 4, 4]) — Vokoderin yükseltme (upsampling) ağındaki her 1D konvolüsyon katmanının çekirdek boyutunu tanımlayan tamsayılar dizisi. upsample_kernel_sizes uzunluğu, konvolüsyon katmanlarının sayısını belirler ve upsample_rates uzunluğuyla eşleşmelidir. Yalnızca vokoder için geçerlidir.
  • resblock_kernel_sizes (tuple[int] veya list[int], isteğe bağlı, varsayılan [3, 7, 11]) — Vokoderin çoklu algılama alanı füzyonu (MRF) modülündeki 1B konvolüsyon katmanlarının çekirdek boyutlarını tanımlayan tamsayılar dizisi. Yalnızca vokoder için geçerlidir.
  • resblock_dilation_sizes (tuple[tuple[int]] veya list[list[int]], isteğe bağlı, varsayılan [[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — Vokoderin çoklu algılama alanı füzyonu (MRF) modülündeki dilate 1D konvolüsyon katmanlarının dilasyon oranlarını tanımlayan iç içe geçmiş tamsayı tuple'ı. Yalnızca vokoder için geçerlidir.
  • leaky_relu_slope (float, isteğe bağlı, varsayılan 0.1) — Vokoderde kullanılan leaky ReLU aktivasyonunun negatif eğim açısı. Yalnızca vokoder için geçerlidir.
  • unit_hifi_gan_vocab_size (int, isteğe bağlı, varsayılan 10000) — SeamlessM4Tv2 vokoderinin sözlük boyutu. ~SeamlessM4Tv2Model, ~SeamlessM4Tv2ForSpeechToSpeech veya ~SeamlessM4Tv2ForTextToSpeech vokoderi çağrılırken geçirilen inputs_ids ile temsil edilebilecek farklı birim jetonlarının sayısını tanımlar.
  • unit_embed_dim (int, isteğe bağlı, varsayılan 1280) — hifi-gan vokodere verilen girdi kimliklerinin yansıtma boyutu. Yalnızca vokoder için geçerlidir.
  • lang_embed_dim (int, isteğe bağlı, varsayılan 256) — hifi-gan vokoderine verilen hedef dilin projeksiyon boyutu. Yalnızca vokoder için geçerlidir.
  • spkr_embed_dim (int, isteğe bağlı, varsayılan 256) — hifi-gan vokoderine verilen konuşmacı kimliğinin yansıtma boyutu. Yalnızca vokoder için geçerlidir.
  • vocoder_num_langs (int, isteğe bağlı, varsayılan 36) — Vocoder tarafından desteklenen dil sayısı. t2u_num_langs değerinden farklı olabilir.
  • vocoder_num_spkrs (int, isteğe bağlı, varsayılan 200) — Vokoderin desteklediği konuşmacı sayısı.
  • variance_predictor_kernel_size (int, isteğe bağlı, varsayılan 3) — Süre tahmincisinin çekirdek boyutu. Yalnızca vokodere uygulanır.
  • var_pred_dropout (float, isteğe bağlı, varsayılan 0.5) — Süre tahmincisinin dropout olasılığı. Yalnızca vokodere uygulanır.
  • vocoder_offset (int, isteğe bağlı, varsayılan 4) — Sembol tokenlarını hesaba katmak için birim token kimliklerini bu sayı kadar kaydırır. Yalnızca vokoder için geçerlidir.
  • tie_word_embeddings (bool, isteğe bağlı, varsayılan True) — Modelin tied_weights_keys eşlemesine göre ağırlık gömme bağlamalarının yapılıp yapılmayacağı.

Bu, bir SeamlessM4Tv2Model yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Seamless M4T V2 modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneği oluşturmak, facebook/hf-seamless-m4t-medium modelinin yapılandırmasına benzer bir yapılandırma elde edilmesini sağlar.

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.

>>> from transformers import SeamlessM4Tv2Model, SeamlessM4Tv2Config

>>> # Initializing a SeamlessM4Tv2 "" style configuration
>>> configuration = SeamlessM4Tv2Config()

>>> # Initializing a model from the "" style configuration
>>> model = SeamlessM4Tv2Model(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
Update on GitHub