Transformers documentation
SeamlessM4T-v2
Bu model 2023-12-08 tarihinde HF papers'ta yayımlandı ve 2023-11-30 tarihinde Hugging Face Transformers'a katkıda bulunuldu.
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
< source >( 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
< source >( 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.
- 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ı) —Trueise, ara üretilen metni ve birim token'ları da döndürür. Sesin yanı sıra çevrilmiş metni de almak istiyorsanızTrueolarak ayarlayın.generate_speech=Falseise 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_spkrsdeğerinden küçük olmalıdır. - generate_speech (
bool, isteğe bağlı, varsayılanTrue) —Falseise 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
generateyöntemi için**kwargsolarak girilir; yalnızcadecoder_input_idsmetin bileşenleri üzerinden iletilir. - text_ veya speech_ önekiyle kullanıldıklarında, sırasıyla metin modelinin ve konuşma modelinin
generateyö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.
- Önek olmadan, bunlar her alt modelin
Dönüş değeri
Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor], ModelOutput]
generate_speechvereturn_intermediate_token_idskullanılırsa,SeamlessM4Tv2GenerationOutputdöndürülür.generate_speechçağrılır vereturn_intermediate_token_idsdeğeri False ise,(batch_size, sequence_length)biçimindeki dalga formlarından ve her bir örneğin uzunluğunu verenwaveform_lengthsbileşeninden oluşan bir tuple döndürülür.generate_speech=Falseise,ModelOutputdöndürülür.
Çevrilmiş token kimliklerini ve/veya çevrilmiş ses dalgalarını üretir.
Bu yöntem, iki farklı alt modelin
.generatefonksiyonunu 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
< source >( 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
< source >( 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.
- return_intermediate_token_ids (
bool, isteğe bağlı) —Trueise, ara üretilen metin ve birim token'ları da döndürülür. Sesin yanı sıra çevrilmiş metni de almak istiyorsanızTrueolarak 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_spkrsdeğ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
generateyöntemi için**kwargsolarak girilir; yalnızcadecoder_input_idsmetin bileşenleri üzerinden iletilir. - text_ veya speech_ önekiyle kullanıldıklarında, sırasıyla metin modelinin ve konuşma modelinin
generateyö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.
- Önek olmadan, bunlar her alt modelin
Dönüş değeri
Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]
return_intermediate_token_idsiseSeamlessM4Tv2GenerationOutputdöndürür.return_intermediate_token_idsdeğeri False değilse,(batch_size, sequence_length)biçiminde dalga formlarından ve her bir örneğin uzunluğunu verenwaveform_lengthsbileşeninden oluşan bir tuple döndürür.
Çevrilmiş ses dalga formlarını üretir.
Bu yöntem, iki farklı alt modelin
.generatefonksiyonunu 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
< source >( 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
< source >( 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ı) —Trueise, ara üretilen metin ve birim token'ları da döndürülür. Sesin yanı sıra çevrilmiş metni de almak istiyorsanızTrueolarak 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_spkrsdeğ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
generateyöntemi için**kwargsolarak girilir; yalnızcadecoder_input_idsmetin bileşenleri üzerinden iletilir. - text_ veya speech_ önekiyle kullanıldıklarında, sırasıyla metin modelinin ve konuşma modelinin
generateyö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.
- Önek olmadan, bunlar her alt modelin
Dönüş değeri
Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]
return_intermediate_token_idsiseSeamlessM4Tv2GenerationOutputdöndürür.return_intermediate_token_idsdeğeri False değilse,(batch_size, sequence_length)biçiminde dalga formlarından ve her bir örneğin uzunluğunu verenwaveform_lengthsbileşeninden oluşan bir tuple döndürür.
Çevrilmiş ses dalga formlarını üretir.
Bu yöntem, iki farklı alt modelin
.generatefonksiyonunu 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
< source >( 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
< source >( 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.
- 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.
- 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 olarakeos_token_idkullanır.past_key_valueskullanılıyorsa, isteğe bağlı olarak yalnızca sondecoder_input_idsgirdi olarak verilmelidir (bkz.past_key_values).Çeviri ve özetleme eğitimi için
decoder_input_idssağlanmalıdır.decoder_input_idssağlanmazsa, model bu tensörü, makalede belirtildiği gibi gürültüden arındırma ön eğitimi içininput_idsdeğ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_maskfonksiyonunu 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 tuplelast_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 genelliklepast_key_valuesdeğerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülenuse_cache=Trueveyaconfig.use_cache=True.Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın.
past_key_valuesgeçirilmezse, varsayılan olarak DynamicCache başlatılır.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcının tüminput_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_idsgeçirmek yerine gömülü bir temsil doğrudan geçirmeyi seçebilirsiniz. Bu,input_idsdizinlerini 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_idsdocstring). Endeksleri-100olarak 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_idsgeçirmek yerine gömülü bir temsil doğrudan geçirebilirsiniz. Eğerpast_key_valueskullanılıyorsa, isteğe bağlı olarak yalnızca sondecoder_inputs_embedsgirdi olarak verilmelidir (bkz.past_key_values). Bu, modelin dahili gömme arama matrisine kıyasladecoder_input_idsendekslerini ilgili vektörlere dönüştürme biçimi üzerinde daha fazla kontrol sağlamak istiyorsanız faydalıdır.decoder_input_idsvedecoder_inputs_embedsher ikisi de ayarlanmamışsa,decoder_inputs_embedsinputs_embedsdeğ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_idsdocstring'ine bakın). Endeksleri-100olarak 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ı) —Trueolarak ayarlanırsa,past_key_valuesanahtar 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ı,labelssağ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=Truegeçirildiğinde veyaconfig.use_cache=Trueolduğ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_valuesgirdisi) 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=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —(batch_size, num_heads, sequence_length, sequence_length)biçiminde, her katman için bir adet içerentorch.Tensordemeti.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=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğ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
< source >( 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.Tensormodaliteye 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.
- 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ı.**kwargsgenerate'e aktarılan vegeneration_configöznitelikleriyle eşleşenler bunları geçersiz kılar.generation_configsağlanmazsa, varsayılanı kullanılır; bunun yükleme önceliği şudur: 1) varsageneration_config.jsonmodel 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ğibatch_idveinput_ids. Batch kimliğibatch_idve daha önce üretilen tokenlarinputs_idskoş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ılanFalse) —FullyShardedDataParallelve 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_configiçin ad hoc parametrelendirme ve/veya modelinforwardfonksiyonuna 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_configiçinde ayarlanır; bu parametre geçirilmezse, modelin varsayılan üretim yapılandırması kullanılır.generation_configiç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
< source >( 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
< source >( 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.
- 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 olarakeos_token_idkullanır.past_key_valueskullanılıyorsa, isteğe bağlı olarak yalnızca sondecoder_input_idsgirdi olarak verilmelidir (bkz.past_key_values).Çeviri ve özetleme eğitimi için
decoder_input_idssağlanmalıdır.decoder_input_idssağlanmazsa, model bu tensörü, makalede belirtildiği gibi gürültüden arındırma ön eğitimi içininput_idsdeğ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_maskfonksiyonunu 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 tuplelast_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 genelliklepast_key_valuesdeğerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülenuse_cache=Trueveyaconfig.use_cache=True.Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın.
past_key_valuesgeçirilmezse, varsayılan olarak DynamicCache başlatılır.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcının tüminput_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_idsgeçirmek yerine gömülü bir temsil doğrudan geçirmeyi seçebilirsiniz. Bu,input_idsdizinlerini 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_idsdocstring). Endeksleri-100olarak 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_idsgeçirmek yerine gömülü bir temsil doğrudan geçirebilirsiniz. Eğerpast_key_valueskullanılıyorsa, isteğe bağlı olarak yalnızca sondecoder_inputs_embedsgirdi olarak verilmelidir (bkz.past_key_values). Bu, modelin dahili gömme arama matrisine kıyasladecoder_input_idsendekslerini ilgili vektörlere dönüştürme biçimi üzerinde daha fazla kontrol sağlamak istiyorsanız faydalıdır.decoder_input_idsvedecoder_inputs_embedsher ikisi de ayarlanmamışsa,decoder_inputs_embedsinputs_embedsdeğ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_idsdocstring'ine bakın). Endeksleri-100olarak 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ı) —Trueolarak ayarlanırsa,past_key_valuesanahtar 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ı,labelssağ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=Truegeçirildiğinde veyaconfig.use_cache=Trueolduğ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_valuesgirdisi) 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=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —(batch_size, num_heads, sequence_length, sequence_length)biçiminde, her katman için bir adet içerentorch.Tensordemeti.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=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğ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
< source >( 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ı.**kwargsgenerate'e aktarılan vegeneration_configöznitelikleriyle eşleşenler bunları geçersiz kılar.generation_configsağlanmazsa, varsayılanı kullanılır; bunun yükleme önceliği şudur: 1) varsageneration_config.jsonmodel 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ğibatch_idveinput_ids. Batch kimliğibatch_idve daha önce üretilen tokenlarinputs_idskoş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ılanFalse) —FullyShardedDataParallelve 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_configiçin ad hoc parametrelendirme ve/veya modelinforwardfonksiyonuna 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_configiçinde ayarlanır; bu parametre geçirilmezse, modelin varsayılan üretim yapılandırması kullanılır.generation_configiç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
< 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 = 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ılanTrue) — Modelin bir kodlayıcı/çözücü olarak kullanılıp kullanılmadığı. - vocab_size (
int, isteğe bağlı, varsayılan256102) — Modelin sözlük boyutu.input_idsile 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çirileninputs_idsile 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çirilenchar_inputs_idsile temsil edilebilecek farklı karakter jetonlarının sayısını tanımlar. - hidden_size (
int, isteğe bağlı, varsayılan1024) — Gizli temsillerin boyutu. - 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ı. - layer_norm_eps (
float, isteğe bağlı, varsayılan1e-05) — Katman normalizasyon katmanları tarafından kullanılan epsilon. - use_cache (
bool, isteğe bağlı, varsayılanTrue) — Modelin son anahtar/değer dikkatlerini (tüm modellerde kullanılmaz) döndürüp döndürmeyeceği. Yalnızcaconfig.is_decoder=Trueolduğunda veya model yalnızca çözücü tabanlı üretken bir model olduğunda geçerlidir. - max_position_embeddings (
int, isteğe bağlı, varsayılan4096) — Bu modelin kullanılabileceği en uzun dizi uzunluğu. - encoder_layerdrop (
Union[float, int], isteğe bağlı, varsayılan0.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ılan0.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ılanrelu) — Çö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ılan0.1) — Tüm dropout katmanları için oran. - attention_dropout (
Union[float, int], isteğe bağlı, varsayılan0.1) — Dikkat olasılıkları için dropout oranı. - activation_dropout (
Union[float, int], isteğe bağlı, varsayılan0.0) — Tamamen bağlı katmandaki aktivasyonlar için dropout oranı. - scale_embedding (
bool, isteğe bağlı, varsayılanTrue) — 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ılan24) — Transformer kodlayıcısındaki gizli katman sayısı. Ayarlanmazsanum_layersile aynı değeri kullanır. - encoder_ffn_dim (
int, isteğe bağlı, varsayılan8192) — Encoder'daki "ara" (genellikle feed-forward olarak adlandırılan) katmanın boyutu. - encoder_attention_heads (
int, isteğe bağlı, varsayılan16) — Transformer kodlayıcısındaki her dikkat katmanı için dikkat başı sayısı. - decoder_layers (
int, isteğe bağlı, varsayılan24) — Transformer decoder'ındaki gizli katman sayısı. Ayarlanmazsanum_layersile aynı değeri kullanır. - decoder_ffn_dim (
int, isteğe bağlı, varsayılan8192) — Decoder'daki “ara” (genellikle feed-forward olarak adlandırılan) katmanın boyutluluğu. - decoder_attention_heads (
int, isteğe bağlı, varsayılan16) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - decoder_start_token_id (
int, isteğe bağlı, varsayılan3) — Bir encoder-decoder modeli,bosile 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ılan0) — Sözlükte dolgu için kullanılan token kimliği. - bos_token_id (
int, isteğe bağlı, varsayılan2) — 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ılan3) — 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 (
strveyafunction, 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ılanTrue) — 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ızcaadd_adapter is Trueise geçerlidir. - adaptor_stride (
int, isteğe bağlı, varsayılan 8) — Adapter ağındaki konvolüsyon katmanlarının stride değeri. Yalnızcaadd_adapter is Trueise 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ızcaadd_adapter is Trueise geçerlidir. - position_embeddings_type (
str, isteğe bağlı, varsayılan"relative_key") —relative_keyolarak belirtilebilir.Noneolarak 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ılan16000) — 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]veyalist[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]veyalist[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]veyalist[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]]veyalist[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çirileninputs_idsile 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_langsdeğ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ılanTrue) — Modelintied_weights_keyseş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