Transformers documentation
SeamlessM4T-v2
Model ini dipublikasikan di HF papers pada 2023-12-08 dan disumbangkan ke Hugging Face Transformers pada 2023-11-30.
SeamlessM4T-v2
Ikhtisar
Model SeamlessM4T-v2 diusulkan dalam Seamless: Multilingual Expressive and Streaming Speech Translation oleh tim Seamless Communication dari Meta AI.
SeamlessM4T-v2 adalah kumpulan model yang dirancang untuk menyediakan terjemahan berkualitas tinggi, memungkinkan orang dari berbagai komunitas linguistik untuk berkomunikasi dengan mudah melalui ucapan dan teks. Ini merupakan peningkatan dari versi sebelumnya. Untuk detail lebih lanjut mengenai perbedaan antara v1 dan v2, silakan merujuk ke bagian Perbedaan dengan SeamlessM4T-v1.
SeamlessM4T-v2 memungkinkan berbagai tugas tanpa bergantung pada model terpisah:
- Terjemahan ucapan ke ucapan (S2ST)
- Terjemahan ucapan-ke-teks (S2TT)
- Terjemahan teks-ke-bicara (T2ST)
- Terjemahan teks-ke-teks (T2TT)
- Pengakuan ucapan otomatis (ASR)
SeamlessM4Tv2Model dapat melakukan semua tugas di atas, tetapi setiap tugas juga memiliki sub-model khusus masing-masing.
Abstrak dari makalah tersebut adalah sebagai berikut:
Perkembangan terbaru dalam penerjemahan suara otomatis telah memperluas cakupan bahasa secara drastis, meningkatkan kemampuan multimodal, dan memungkinkan berbagai tugas serta fungsionalitas. Meskipun demikian, sistem penerjemahan suara otomatis berskala besar saat ini masih kekurangan fitur-fitur penting yang membuat komunikasi yang dimediasi mesin terasa mulus dibandingkan dengan dialog antarmanusia. Dalam karya ini, kami memperkenalkan keluarga model yang memungkinkan penerjemahan ekspresif dan multibahasa secara end-to-end dalam mode streaming. Pertama, kami menyumbangkan versi yang ditingkatkan dari model multibahasa dan multimodal masif SeamlessM4T—SeamlessM4T v2. Model yang lebih baru ini, yang mengintegrasikan kerangka UnitY2 yang diperbarui, dilatih pada lebih banyak data bahasa beresourserendah. Versi yang diperluas dari SeamlessAlign menambahkan 114.800 jam data yang diselaraskan secara otomatis untuk total 76 bahasa. SeamlessM4T v2 menyediakan fondasi bagi dua model terbaru kami, SeamlessExpressive dan SeamlessStreaming. SeamlessExpressive memungkinkan penerjemahan yang mempertahankan gaya vokal dan prosodi. Dibandingkan dengan upaya sebelumnya dalam penelitian suara ekspresif, karya kami mengatasi aspek-aspek prosodi tertentu yang kurang dieksplorasi, seperti laju bicara dan jeda, sambil juga mempertahankan gaya suara seseorang. Adapun SeamlessStreaming, model kami memanfaatkan mekanisme Efficient Monotonic Multihead Attention (EMMA) untuk menghasilkan penerjemahan target berlatensi rendah tanpa menunggu tuturan sumber yang lengkap. Sebagai yang pertama dari jenisnya, SeamlessStreaming memungkinkan penerjemahan suara-ke-suara/teks secara simultan untuk beberapa bahasa sumber dan target. Untuk memahami kinerja model-model ini, kami menggabungkan versi baru dan dimodifikasi dari metrik otomatis yang ada untuk mengevaluasi prosodi, latensi, dan ketahanan. Untuk evaluasi manusia, kami mengadaptasi protokol yang ada yang disesuaikan untuk mengukur atribut paling relevan dalam pelestarian makna, naturalitas, dan ekspresivitas. Untuk memastikan model kami dapat digunakan secara aman dan bertanggung jawab, kami mengimplementasikan upaya red-teaming pertama yang diketahui untuk penerjemahan mesin multimodal, sistem untuk deteksi dan mitigasi toksisitas yang ditambahkan, evaluasi sistematis bias gender, dan mekanisme watermarking lokal yang tidak terdengar yang dirancang untuk meredam dampak deepfake. Akibatnya, kami menggabungkan komponen utama dari SeamlessExpressive dan SeamlessStreaming untuk membentuk Seamless, sistem pertama yang tersedia secara publik yang membuka komunikasi lintas bahasa yang ekspresif secara real-time. Secara keseluruhan, Seamless memberikan pandangan penting tentang fondasi teknis yang diperlukan untuk mengubah Universal Speech Translator dari konsep fiksi ilmiah menjadi teknologi dunia nyata. Terakhir, kontribusi dalam karya ini—termasuk model, kode, dan detektor watermark—dipublikasikan dan dapat diakses melalui tautan di bawah ini.
Penggunaan
Pada contoh berikut, kita akan memuat sampel audio Arab dan sampel teks Inggris, lalu mengonversinya menjadi ucapan Rusia dan teks Prancis.
Pertama, muat processor dan checkpoint model:
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")Anda dapat menggunakan model ini secara mulus pada teks atau audio, untuk menghasilkan teks terjemahan atau audio terjemahan.
Berikut adalah cara menggunakan processor untuk memproses teks dan audio:
# 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)Bicara
SeamlessM4Tv2Model dapat menghasilkan teks atau ucapan secara seamless dengan sedikit atau tanpa perubahan. Mari kita targetkan terjemahan suara ke bahasa Rusia:
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()Dengan kode yang pada dasarnya sama, saya telah menerjemahkan teks bahasa Inggris dan ucapan bahasa Arab menjadi sampel ucapan bahasa Rusia.
Teks
Demikian pula, Anda dapat menghasilkan teks terjemahan dari file audio atau dari teks dengan model yang sama. Anda hanya perlu meneruskan generate_speech=False ke SeamlessM4Tv2Model.generate().
Kali ini, mari kita terjemahkan ke bahasa Prancis.
# 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)Tips
1. Gunakan model khusus
SeamlessM4Tv2Model adalah model tingkat atas di Transformers untuk menghasilkan ucapan dan teks, tetapi Anda juga dapat menggunakan model khusus yang menjalankan tugas tersebut tanpa komponen tambahan, sehingga mengurangi jejak memori. Sebagai contoh, Anda dapat mengganti cuplikan kode generasi audio-ke-audio dengan model yang khusus untuk tugas S2ST; sisanya adalah kode yang persis sama:
from transformers import SeamlessM4Tv2ForSpeechToSpeech
model = SeamlessM4Tv2ForSpeechToSpeech.from_pretrained("facebook/seamless-m4t-v2-large", device_map="auto")Atau Anda dapat mengganti cuplikan kode generasi teks-ke-teks dengan model yang khusus untuk tugas T2TT, Anda hanya perlu menghapus generate_speech=False.
from transformers import SeamlessM4Tv2ForTextToText
model = SeamlessM4Tv2ForTextToText.from_pretrained("facebook/seamless-m4t-v2-large", device_map="auto")Silakan coba juga SeamlessM4Tv2ForSpeechToText dan SeamlessM4Tv2ForTextToSpeech.
2. Ubah identitas pembicara
Anda dapat mengubah pembicara yang digunakan untuk sintesis ucapan dengan argumen speaker_id. Beberapa speaker_id bekerja lebih baik daripada yang lain untuk beberapa bahasa!
3. Ubah strategi generasi
Anda dapat menggunakan berbagai strategi generasi untuk generasi teks, misalnya .generate(input_ids=input_ids, text_num_beams=4, text_do_sample=True) yang akan melakukan dekoding beam-search multinomial pada model teks. Perhatikan bahwa generasi ucapan hanya mendukung greedy - secara default - atau sampling multinomial, yang dapat digunakan dengan misalnya .generate(..., speech_do_sample=True, speech_temperature=0.6).
4. Generate ucapan dan teks secara bersamaan
Gunakan return_intermediate_token_ids=True dengan SeamlessM4Tv2Model untuk mengembalikan baik ucapan maupun teks!
Arsitektur model
SeamlessM4T-v2 memiliki arsitektur serbaguna yang menangani generasi teks dan ucapan secara berurutan dengan mulus. Konfigurasi ini terdiri dari dua model sequence-to-sequence (seq2seq). Model pertama menerjemahkan modalitas input menjadi teks terjemahan, sedangkan model kedua menghasilkan token ucapan, yang dikenal sebagai “unit tokens,” dari teks terjemahan tersebut.
Setiap modalitas memiliki encoder khusus dengan arsitektur yang unik. Selain itu, untuk output ucapan, sebuah vocoder yang terinspirasi dari arsitektur HiFi-GAN ditempatkan di atas model seq2seq kedua.
Perbedaan dengan SeamlessM4T-v1
Arsitektur versi baru ini berbeda dari versi pertama dalam beberapa aspek:
Perbaikan pada model jalur kedua
Model seq2seq kedua, yang disebut model text-to-unit, kini bersifat non-auto regressive, artinya model ini menghitung unit dalam satu kali forward pass. Pencapaian ini dimungkinkan oleh:
- penggunaan character-level embeddings, yang berarti setiap karakter dari teks terjemahan yang diprediksi memiliki embedding-nya sendiri, yang kemudian digunakan untuk memprediksi unit token.
- penggunaan durasi prediktor perantara, yang memprediksi durasi ucapan pada tingkat karakter pada teks terjemahan yang diprediksi.
- penggunaan decoder teks-ke-unit baru yang mencampurkan konvolusi dan self-attention untuk menangani konteks yang lebih panjang.
Perbedaan pada encoder ucapan
Speech encoder, yang digunakan selama proses generasi pass pertama untuk memprediksi teks terjemahan, terutama berbeda dari speech encoder sebelumnya melalui mekanisme-mekanisme berikut:
- penggunaan chunked attention mask untuk mencegah perhatian melintasi chunk, sehingga memastikan bahwa setiap posisi hanya memperhatikan posisi di dalam chunk-nya sendiri dan sejumlah chunk sebelumnya yang tetap.
- penggunaan relative position embeddings yang hanya mempertimbangkan jarak antar elemen sekuens, bukan posisi absolut. Silakan lihat Self-Attention with Relative Position Representations (Shaw et al.) untuk detail lebih lanjut.
- penggunaan konvolusi kedalaman kausal (causal depth-wise convolution) alih-alih konvolusi non-kausal.
Proses generasi
Berikut cara kerja proses generasi:
- Teks atau ucapan yang diinput diproses melalui encoder spesifiknya.
- Decoder membuat token teks dalam bahasa yang diinginkan.
- Jika diperlukan, model seq2seq kedua menghasilkan unit token dengan cara non auto-regressive.
- Token unit ini kemudian diteruskan melalui vocoder akhir untuk menghasilkan ucapan yang sebenarnya.
Model ini disumbangkan oleh ylacombe. Kode aslinya dapat ditemukan di sini.
SeamlessM4Tv2Model
kelas transformers.SeamlessM4Tv2Model
< source >( config: SeamlessM4Tv2Configcurrent_modality = 'text' )
Parameter
- config (SeamlessM4Tv2Config) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya saja. Lihat metode from_pretrained() untuk memuat bobot model.
- current_modality (
str, opsional, default"text") — Modality default. Digunakan untuk menginisialisasi model.
Model transformer asli SeamlessM4Tv2 yang dapat digunakan untuk semua tugas yang tersedia (S2ST, S2TT, T2TT, T2ST).
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
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]
Parameter
- input_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Indeks dapat diperoleh menggunakan SeamlessM4TTokenizer atau SeamlessM4TProcessor. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detail. Apa itu input ID?Indeks dapat diperoleh menggunakan SeamlessM4TTokenizer atau SeamlessM4TProcessor. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- input_features (
torch.Tensordengan bentuk(batch_size, sequence_length, num_banks), opsional) — Fitur audio masukan. Nilai ini seharusnya dikembalikan oleh kelas SeamlessM4TFeatureExtractor atau kelas SeamlessM4TProcessor. Lihat SeamlessM4TFeatureExtractor.call() untuk detailnya. - return_intermediate_token_ids (
bool, opsional) — JikaTrue, juga mengembalikan teks dan unit token yang dihasilkan secara intermediat. Atur keTruejika Anda juga ingin mendapatkan teks terjemahan bersama dengan audio. Perhatikan bahwa jikagenerate_speech=False, parameter ini akan diabaikan dan token teks yang dikembalikan. - tgt_lang (
str, opsional) — Bahasa yang akan digunakan sebagai bahasa target untuk penerjemahan. - speaker_id (
int, opsional, default 0) — ID pembicara yang digunakan untuk sintesis ucapan. Harus lebih kecil dariconfig.vocoder_num_spkrs. - generate_speech (
bool, opsional, defaultTrue) — JikaFalse, hanya akan mengembalikan token teks dan tidak akan menghasilkan ucapan. - kwargs (opsional) —
Kamus sisa argumen kata kunci yang akan diteruskan ke GenerationMixin.generate(). Argumen kata kunci
ada dua jenis:
- Tanpa prefiks, parameter tersebut akan dimasukkan sebagai
**kwargsuntuk metodegeneratedari setiap sub-model, kecualidecoder_input_idsyang hanya diteruskan melalui komponen teks. - Dengan awalan text_ atau speech_, mereka akan menjadi input untuk metode
generatedari model teks dan model ucapan, masing-masing. Awalan ini memiliki prioritas lebih tinggi daripada kata kunci tanpa awalan.
Artinya, Anda dapat, misalnya, menentukan strategi generasi untuk satu generasi tetapi tidak untuk yang lain.
- Tanpa prefiks, parameter tersebut akan dimasukkan sebagai
Mengembalikan
Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor], ModelOutput]
- Jika
generate_speechdanreturn_intermediate_token_ids, mengembalikanSeamlessM4Tv2GenerationOutput. - Jika
generate_speechdan tidakreturn_intermediate_token_ids, mengembalikan tuple yang terdiri dari waveform dengan bentuk(batch_size, sequence_length)danwaveform_lengthsyang memberikan panjang setiap sampel. - Jika
generate_speech=False, akan mengembalikanModelOutput.
Membuat id token terjemahan dan/atau waveform audio terjemahan.
Metode ini secara berurutan memanggil fungsi
.generatedari dua sub-model yang berbeda. Anda dapat menentukan argumen kata kunci pada dua tingkat yang berbeda: argumen umum yang akan diteruskan ke kedua model, atau argumen berawalan yang akan diteruskan ke salah satu model.Sebagai contoh, memanggil
.generate(input_ids=input_ids, num_beams=4, speech_do_sample=True)akan secara berurutan melakukan dekoding beam-search pada model teks, dan sampling beam-search multinomial pada model ucapan.Untuk ringkasan strategi generasi dan contoh kode, lihat panduan berikut.
SeamlessM4Tv2ForTextToSpeech
kelas transformers.SeamlessM4Tv2ForTextToSpeech
< source >( config: SeamlessM4Tv2Config )
Parameter
- config (SeamlessM4Tv2Config) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya saja. Lihat metode from_pretrained() untuk memuat bobot model.
Model transformer SeamlessM4Tv2 untuk text-to-speech yang dapat digunakan untuk T2ST.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
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]]
Parameter
- input_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length)) — Indeks token urutan input dalam kosakata. Indeks dapat diperoleh menggunakan SeamlessM4TTokenizer atau SeamlessM4TProcessor. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detail. Apa itu input ID?Indeks dapat diperoleh menggunakan SeamlessM4TTokenizer atau SeamlessM4TProcessor. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- return_intermediate_token_ids (
bool, opsional) — JikaTrue, juga mengembalikan teks dan token unit yang dihasilkan secara intermediat. Atur keTruejika Anda juga ingin mendapatkan teks terjemahan bersama dengan audio. - tgt_lang (
str, opsional) — Bahasa yang akan digunakan sebagai bahasa target untuk penerjemahan. - speaker_id (
int, opsional, default 0) — ID pembicara yang digunakan untuk sintesis ucapan. Harus lebih kecil dariconfig.vocoder_num_spkrs. - kwargs (opsional) —
Kamus sisa argumen kata kunci yang akan diteruskan ke GenerationMixin.generate(). Argumen kata kunci
ada dua jenis:
- Tanpa prefiks, parameter tersebut akan dimasukkan sebagai
**kwargsuntuk metodegeneratedari setiap sub-model, kecualidecoder_input_idsyang hanya diteruskan melalui komponen teks. - Dengan awalan text_ atau speech_, mereka akan menjadi input untuk metode
generatedari model teks dan model ucapan, masing-masing. Awalan ini memiliki prioritas lebih tinggi daripada kata kunci tanpa awalan.
Artinya, Anda dapat, misalnya, menentukan strategi generasi untuk satu generasi tetapi tidak untuk yang lain.
- Tanpa prefiks, parameter tersebut akan dimasukkan sebagai
Mengembalikan
Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]
- Jika
return_intermediate_token_ids, mengembalikanSeamlessM4Tv2GenerationOutput. - Jika bukan
return_intermediate_token_ids, mengembalikan tuple yang terdiri dari waveform dengan bentuk(batch_size, sequence_length)danwaveform_lengthsyang memberikan panjang setiap sampel.
Membuat gelombang audio hasil terjemahan.
Metode ini secara berurutan memanggil fungsi
.generatedari dua sub-model yang berbeda. Anda dapat menentukan argumen kata kunci pada dua tingkat yang berbeda: argumen umum yang akan diteruskan ke kedua model, atau argumen berawalan yang akan diteruskan ke salah satu model.Sebagai contoh, memanggil
.generate(input_ids, num_beams=4, speech_do_sample=True)akan secara berurutan melakukan dekoding beam-search pada model teks, dan sampling beam-search multinomial pada model ucapan.Untuk ringkasan strategi generasi dan contoh kode, lihat panduan berikut.
SeamlessM4Tv2ForSpeechToSpeech
kelas transformers.SeamlessM4Tv2ForSpeechToSpeech
< source >( config: SeamlessM4Tv2Config )
Parameter
- config (SeamlessM4Tv2Config) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya saja. Lihat metode from_pretrained() untuk memuat bobot model.
Model transformer SeamlessM4Tv2 untuk speech-to-speech yang dapat digunakan untuk S2ST.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
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]]
Parameter
- input_features (
torch.Tensordengan bentuk(batch_size, sequence_length, num_banks)) — Fitur audio masukan. Nilai ini seharusnya dikembalikan oleh kelas SeamlessM4TFeatureExtractor atau kelas SeamlessM4TProcessor. Lihat SeamlessM4TFeatureExtractor.call() untuk detailnya. - return_intermediate_token_ids (
bool, opsional) — JikaTrue, juga mengembalikan teks dan token unit yang dihasilkan secara intermediat. Atur keTruejika Anda juga ingin mendapatkan teks terjemahan bersama dengan audio. - tgt_lang (
str, opsional) — Bahasa yang akan digunakan sebagai bahasa target untuk penerjemahan. - speaker_id (
int, opsional, default 0) — ID pembicara yang digunakan untuk sintesis ucapan. Harus lebih kecil dariconfig.vocoder_num_spkrs. - kwargs (opsional) —
Kamus sisa argumen kata kunci yang akan diteruskan ke GenerationMixin.generate(). Argumen kata kunci
ada dua jenis:
- Tanpa prefiks, parameter tersebut akan dimasukkan sebagai
**kwargsuntuk metodegeneratedari setiap sub-model, kecualidecoder_input_idsyang hanya diteruskan melalui komponen teks. - Dengan awalan text_ atau speech_, mereka akan menjadi input untuk metode
generatedari model teks dan model ucapan, masing-masing. Awalan ini memiliki prioritas lebih tinggi daripada kata kunci tanpa awalan.
Artinya, Anda dapat, misalnya, menentukan strategi generasi untuk satu generasi tetapi tidak untuk yang lain.
- Tanpa prefiks, parameter tersebut akan dimasukkan sebagai
Mengembalikan
Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]
- Jika
return_intermediate_token_ids, mengembalikanSeamlessM4Tv2GenerationOutput. - Jika bukan
return_intermediate_token_ids, mengembalikan tuple yang terdiri dari waveform dengan bentuk(batch_size, sequence_length)danwaveform_lengthsyang memberikan panjang setiap sampel.
Membuat gelombang audio hasil terjemahan.
Metode ini secara berurutan memanggil fungsi
.generatedari dua sub-model yang berbeda. Anda dapat menentukan argumen kata kunci pada dua tingkat yang berbeda: argumen umum yang akan diteruskan ke kedua model, atau argumen berawalan yang akan diteruskan ke salah satu model.Sebagai contoh, memanggil
.generate(input_features, num_beams=4, speech_do_sample=True)akan secara berurutan melakukan dekoding beam-search pada model teks, dan pengambilan sampel beam-search multinomial pada model ucapan.Untuk ringkasan strategi generasi dan contoh kode, lihat panduan berikut.
SeamlessM4Tv2ForTextToText
kelas transformers.SeamlessM4Tv2ForTextToText
< source >( config: SeamlessM4Tv2Config )
Parameter
- config (SeamlessM4Tv2Config) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya saja. Lihat metode from_pretrained() untuk memuat bobot model.
Model transformer SeamlessM4Tv2 dari teks ke teks yang dapat digunakan untuk T2TT.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< 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)
Parameter
- input_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- decoder_input_ids (
torch.LongTensordengan bentuk(batch_size, target_sequence_length), opsional) — Indeks token dari urutan input decoder dalam kosakata. Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya. Apa itu decoder input ID? Bart menggunakan eos_token_id sebagai token awal untuk generasi decoder_input_ids. Jika past_key_values digunakan, secara opsional hanya decoder_input_ids terakhir yang perlu diinput (lihat past_key_values). Untuk pelatihan terjemahan dan ringkasan, decoder_input_ids harus disediakan. Jika decoder_input_ids tidak disediakan, model akan membuat tensor ini dengan menggeser input_ids ke kanan untuk pra-pelatihan denoising sesuai dengan makalahnya.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
Bart menggunakan
eos_token_idsebagai token awal untuk generasidecoder_input_ids. Jikapast_key_valuesdigunakan, secara opsional hanyadecoder_input_idsterakhir yang perlu diinput (lihatpast_key_values).Untuk pelatihan penerjemahan dan ringkasan,
decoder_input_idsharus disediakan. Jika tidak adadecoder_input_idsyang disediakan, model akan membuat tensor ini dengan menggeserinput_idske kanan untuk pra-pelatihan denoising sesuai dengan makalah tersebut. - decoder_attention_mask (
torch.LongTensordengan bentuk(batch_size, target_sequence_length), opsional) — Perilaku default: menghasilkan tensor yang mengabaikan token pad didecoder_input_ids. Mask kausal juga akan digunakan secara default. Jika Anda ingin mengubah perilaku padding, Anda harus membaca modeling_bart._prepare_decoder_attention_mask dan memodifikasinya sesuai kebutuhan Anda. Lihat diagram 1 di paper untuk informasi lebih lanjut tentang strategi default.Jika Anda ingin mengubah perilaku padding, Anda harus membaca
modeling_bart._prepare_decoder_attention_maskdan memodifikasinya sesuai kebutuhan Anda. Lihat diagram 1 di makalah untuk informasi lebih lanjut tentang strategi default. - encoder_outputs (
tuple[tuple[torch.Tensor]], opsional) — Tuple terdiri dari (last_hidden_state, opsional:hidden_states, opsional:attentions)last_hidden_statedengan bentuk(batch_size, sequence_length, hidden_size), opsional) adalah rangkaian hidden-states pada keluaran lapisan terakhir encoder. Digunakan dalam cross-attention decoder. - past_key_values (
~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_idsAnda dapat memilih untuk langsung meneruskan representasi tertanam. Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversiinput_idsmenjadi vektor terkait daripada matriks pencarian embedding internal model.labels (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional): Label untuk menghitung kerugian pemodelan bahasa tersembunyi (masked language modeling). Indeks harus berada dalam[-100, 0, ..., config.vocab_size](lihat docstringinput_ids). Token dengan indeks yang disetel ke-100diabaikan (disediakan masker), dan kerugian hanya dihitung untuk token dengan label dalam[0, ..., config.vocab_size] - decoder_inputs_embeds (
torch.Tensordengan bentuk(batch_size, target_sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskandecoder_input_idsAnda dapat memilih untuk langsung meneruskan representasi tertanam. Jikapast_key_valuesdigunakan, secara opsional hanyadecoder_inputs_embedsyang perlu dimasukkan (lihatpast_key_values). Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversidecoder_input_idsindeks menjadi vektor terkait daripada matriks pencarian embedding internal model.Jika
decoder_input_idsdandecoder_inputs_embedskeduanya tidak disetel,decoder_inputs_embedsmengambil nilai dariinputs_embeds. - labels (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Label untuk menghitung kerugian pemodelan bahasa yang disamarkan (masked language modeling). Indeks harus berada dalam[0, ..., config.vocab_size]atau -100 (lihat docstringinput_ids). Token dengan indeks yang disetel ke-100diabaikan (disamarkan), kerugian hanya dihitung untuk token dengan label dalam[0, ..., config.vocab_size]. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values).
Mengembalikan
Seq2SeqLMOutput atau tuple(torch.Tensor)
Seq2SeqLMOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (SeamlessM4Tv2Config) dan input.
Metode forward dari SeamlessM4Tv2ForTextToText menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss pemodelan bahasa.logits (
torch.Tensordengan bentuk(batch_size, sequence_length, config.vocab_size)) — Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).past_key_values (
EncoderDecoderCache, opsional, dikembalikan ketikause_cache=Truediteruskan atau ketikaconfig.use_cache=True) — Ini adalah instance EncoderDecoderCache. Untuk detail lebih lanjut, lihat panduan kv cache kami.Mengandung hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan (lihat input
past_key_values) untuk mempercepat decoding berurutan.decoder_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari decoder pada output setiap layer ditambah output embedding awal.
decoder_attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap lapisan) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
cross_attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari lapisan cross-attention decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala cross-attention.
encoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-states pada keluaran lapisan terakhir dari encoder model.encoder_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari encoder pada output setiap layer ditambah output embedding awal.
encoder_attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap lapisan) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari encoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
generate
< source >( input_ids = Nonetgt_lang = Nonegeneration_config = Nonelogits_processor = Nonestopping_criteria = Noneprefix_allowed_tokens_fn = Nonesynced_gpus = False**kwargs ) → ModelOutput or torch.LongTensor
Parameter
- input_ids (
torch.Tensordengan bentuk yang bervariasi tergantung pada modalitas, opsional) — Indeks token dari urutan input dalam kosakata. Indeks dapat diperoleh menggunakan SeamlessM4TTokenizer atau SeamlessM4TProcessor. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya. Apa itu input ID?Indeks dapat diperoleh menggunakan SeamlessM4TTokenizer atau SeamlessM4TProcessor. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- tgt_lang (
str, opsional) — Bahasa yang akan digunakan sebagai bahasa target untuk penerjemahan. - generation_config (
~generation.GenerationConfig, opsional) — Konfigurasi generasi yang akan digunakan sebagai parametrisasi dasar untuk panggilan generasi.**kwargsyang diteruskan ke generate dan cocok dengan atribut darigeneration_configakan menimpanya. Jikageneration_configtidak disediakan, nilai default akan digunakan, yang memiliki prioritas pemuatan sebagai berikut: 1) dari file modelgeneration_config.json, jika ada; 2) dari konfigurasi model. Perhatikan bahwa parameter yang tidak ditentukan akan mewarisi nilai default dari GenerationConfig, yang dokumentasinya harus diperiksa untuk memparametrisasi generasi. - logits_processor (
LogitsProcessorList, opsional) — Prosesor logits kustom yang melengkapi prosesornya logits default yang dibangun dari argumen dan konfigurasi generasi. Jika prosesornya logits yang sudah dibuat dengan argumen atau konfigurasi generasi dilewatkan, sebuah error akan dilempar. Fitur ini ditujukan untuk pengguna tingkat lanjut. - stopping_criteria (
StoppingCriteriaList, opsional) — Kriteria penghentian kustom yang melengkapi kriteria penghentian default yang dibangun dari argumen dan konfigurasi generasi. Jika kriteria penghentian yang sudah dibuat dengan argumen atau konfigurasi generasi diteruskan, sebuah error akan dilempar. Fitur ini ditujukan untuk pengguna tingkat lanjut. - prefix_allowed_tokens_fn (
Callable[[int, torch.Tensor], list[int]], opsional) — Jika disediakan, fungsi ini membatasi pencarian beam hanya pada token yang diizinkan di setiap langkah. Jika tidak disediakan, tidak ada batasan yang diterapkan. Fungsi ini mengambil 2 argumen: ID batchbatch_iddaninput_ids. Fungsi ini harus mengembalikan daftar token yang diizinkan untuk langkah generasi berikutnya yang dikondisikan pada ID batchbatch_iddan token yang sebelumnya dihasilkaninputs_ids. Argumen ini berguna untuk generasi yang dibatasi berdasarkan prefiks, seperti yang dijelaskan dalam Autoregressive Entity Retrieval. - synced_gpus (
bool, opsional, defaultFalse) — Apakah akan terus menjalankan loop while hingga max_length (diperlukan untuk menghindari deadlocking denganFullyShardedDataParalleldan DeepSpeed ZeRO Stage 3). - kwargs (
dict[str, Any], opsional) — Parametrisasi ad hoc untukgenerate_configdan/atau kwargs spesifik model tambahan yang akan diteruskan ke fungsiforwarddari model.
Mengembalikan
ModelOutput atau torch.LongTensor
ModelOutput (jika return_dict_in_generate=True
atau ketika config.return_dict_in_generate=True) atau torch.Tensor. Jenis
ModelOutput yang mungkin adalah:
Membuat rangkaian id token.
Sebagian besar parameter pengendali generasi diatur di
generation_configyang, jika tidak diteruskan, akan disetel ke konfigurasi generasi default model. Anda dapat menimpageneration_configmana pun dengan meneruskan parameter yang sesuai ke generate(), misalnya.generate(inputs, num_beams=4, do_sample=True).Untuk ringkasan strategi generasi dan contoh kode, lihat panduan berikut.
SeamlessM4Tv2ForSpeechToText
kelas transformers.SeamlessM4Tv2ForSpeechToText
< source >( config: SeamlessM4Tv2Config )
Parameter
- config (SeamlessM4Tv2Config) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya saja. Lihat metode from_pretrained() untuk memuat bobot model.
Model transformer speech-to-text SeamlessM4Tv2 yang dapat digunakan untuk S2TT.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< 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)
Parameter
- input_features (
torch.Tensordengan bentuk(batch_size, sequence_length, num_banks)) — Fitur audio masukan. Nilai ini seharusnya dikembalikan oleh kelas SeamlessM4TFeatureExtractor atau kelas SeamlessM4TProcessor. Lihat SeamlessM4TFeatureExtractor.call() untuk detailnya. - attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- decoder_input_ids (
torch.LongTensordengan bentuk(batch_size, target_sequence_length), opsional) — Indeks token dari urutan input decoder dalam kosakata. Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya. Apa itu decoder input ID? Bart menggunakan eos_token_id sebagai token awal untuk generasi decoder_input_ids. Jika past_key_values digunakan, secara opsional hanya decoder_input_ids terakhir yang perlu diinput (lihat past_key_values). Untuk pelatihan terjemahan dan ringkasan, decoder_input_ids harus disediakan. Jika decoder_input_ids tidak disediakan, model akan membuat tensor ini dengan menggeser input_ids ke kanan untuk pra-pelatihan denoising sesuai dengan makalahnya.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
Bart menggunakan
eos_token_idsebagai token awal untuk generasidecoder_input_ids. Jikapast_key_valuesdigunakan, secara opsional hanyadecoder_input_idsterakhir yang perlu diinput (lihatpast_key_values).Untuk pelatihan penerjemahan dan ringkasan,
decoder_input_idsharus disediakan. Jika tidak adadecoder_input_idsyang disediakan, model akan membuat tensor ini dengan menggeserinput_idske kanan untuk pra-pelatihan denoising sesuai dengan makalah tersebut. - decoder_attention_mask (
torch.LongTensordengan bentuk(batch_size, target_sequence_length), opsional) — Perilaku default: menghasilkan tensor yang mengabaikan token pad didecoder_input_ids. Mask kausal juga akan digunakan secara default. Jika Anda ingin mengubah perilaku padding, Anda harus membaca modeling_bart._prepare_decoder_attention_mask dan memodifikasinya sesuai kebutuhan Anda. Lihat diagram 1 di paper untuk informasi lebih lanjut tentang strategi default.Jika Anda ingin mengubah perilaku padding, Anda harus membaca
modeling_bart._prepare_decoder_attention_maskdan memodifikasinya sesuai kebutuhan Anda. Lihat diagram 1 di makalah untuk informasi lebih lanjut tentang strategi default. - encoder_outputs (
tuple[tuple[torch.Tensor]], opsional) — Tuple terdiri dari (last_hidden_state, opsional:hidden_states, opsional:attentions)last_hidden_statedengan bentuk(batch_size, sequence_length, hidden_size), opsional) adalah rangkaian hidden-states pada keluaran lapisan terakhir encoder. Digunakan dalam cross-attention decoder. - past_key_values (
~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_idsAnda dapat memilih untuk langsung meneruskan representasi tertanam. Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversiinput_idsmenjadi vektor terkait daripada matriks pencarian embedding internal model.labels (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional): Label untuk menghitung kerugian pemodelan bahasa tersembunyi (masked language modeling). Indeks harus berada dalam[-100, 0, ..., config.vocab_size](lihat docstringinput_ids). Token dengan indeks yang disetel ke-100diabaikan (disediakan masker), dan kerugian hanya dihitung untuk token dengan label dalam[0, ..., config.vocab_size] - decoder_inputs_embeds (
torch.Tensordengan bentuk(batch_size, target_sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskandecoder_input_idsAnda dapat memilih untuk langsung meneruskan representasi tertanam. Jikapast_key_valuesdigunakan, secara opsional hanyadecoder_inputs_embedsyang perlu dimasukkan (lihatpast_key_values). Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversidecoder_input_idsindeks menjadi vektor terkait daripada matriks pencarian embedding internal model.Jika
decoder_input_idsdandecoder_inputs_embedskeduanya tidak disetel,decoder_inputs_embedsmengambil nilai dariinputs_embeds. - labels (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Label untuk menghitung kerugian pemodelan bahasa yang disamarkan (masked language modeling). Indeks harus berada dalam[0, ..., config.vocab_size]atau -100 (lihat docstringinput_ids). Token dengan indeks yang disetel ke-100diabaikan (disamarkan), kerugian hanya dihitung untuk token dengan label dalam[0, ..., config.vocab_size]. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values).
Mengembalikan
Seq2SeqLMOutput atau tuple(torch.Tensor)
A Seq2SeqLMOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (SeamlessM4Tv2Config) dan input.
Metode forward dari SeamlessM4Tv2ForSpeechToText menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss pemodelan bahasa.logits (
torch.Tensordengan bentuk(batch_size, sequence_length, config.vocab_size)) — Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).past_key_values (
EncoderDecoderCache, opsional, dikembalikan ketikause_cache=Truediteruskan atau ketikaconfig.use_cache=True) — Ini adalah instance EncoderDecoderCache. Untuk detail lebih lanjut, lihat panduan kv cache kami.Mengandung hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan (lihat input
past_key_values) untuk mempercepat decoding berurutan.decoder_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari decoder pada output setiap layer ditambah output embedding awal.
decoder_attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap lapisan) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
cross_attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari lapisan cross-attention decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala cross-attention.
encoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-states pada keluaran lapisan terakhir dari encoder model.encoder_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari encoder pada output setiap layer ditambah output embedding awal.
encoder_attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap lapisan) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari encoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
Contoh:
>>> 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
Parameter
- input_features (
torch.Tensordengan bentuk(batch_size, sequence_length, num_banks)) — Fitur audio masukan. Nilai ini seharusnya dikembalikan oleh kelas SeamlessM4TFeatureExtractor atau kelas SeamlessM4TProcessor. Lihat SeamlessM4TFeatureExtractor.call() untuk detailnya. - tgt_lang (
str, opsional) — Bahasa yang akan digunakan sebagai bahasa target untuk penerjemahan. - generation_config (
~generation.GenerationConfig, opsional) — Konfigurasi generasi yang akan digunakan sebagai parametrisasi dasar untuk panggilan generasi.**kwargsyang diteruskan ke generate dan cocok dengan atribut darigeneration_configakan menimpanya. Jikageneration_configtidak disediakan, nilai default akan digunakan, yang memiliki prioritas pemuatan sebagai berikut: 1) dari file modelgeneration_config.json, jika ada; 2) dari konfigurasi model. Perhatikan bahwa parameter yang tidak ditentukan akan mewarisi nilai default dari GenerationConfig, yang dokumentasinya harus diperiksa untuk memparametrisasi generasi. - logits_processor (
LogitsProcessorList, opsional) — Prosesor logits kustom yang melengkapi prosesornya logits default yang dibangun dari argumen dan konfigurasi generasi. Jika prosesornya logits yang sudah dibuat dengan argumen atau konfigurasi generasi dilewatkan, sebuah error akan dilempar. Fitur ini ditujukan untuk pengguna tingkat lanjut. - stopping_criteria (
StoppingCriteriaList, opsional) — Kriteria penghentian kustom yang melengkapi kriteria penghentian default yang dibangun dari argumen dan konfigurasi generasi. Jika kriteria penghentian yang sudah dibuat dengan argumen atau konfigurasi generasi diteruskan, sebuah error akan dilempar. Fitur ini ditujukan untuk pengguna tingkat lanjut. - prefix_allowed_tokens_fn (
Callable[[int, torch.Tensor], list[int]], opsional) — Jika disediakan, fungsi ini membatasi pencarian beam hanya pada token yang diizinkan di setiap langkah. Jika tidak disediakan, tidak ada batasan yang diterapkan. Fungsi ini mengambil 2 argumen: ID batchbatch_iddaninput_ids. Fungsi ini harus mengembalikan daftar token yang diizinkan untuk langkah generasi berikutnya yang dikondisikan pada ID batchbatch_iddan token yang sebelumnya dihasilkaninputs_ids. Argumen ini berguna untuk generasi yang dibatasi berdasarkan prefiks, seperti yang dijelaskan dalam Autoregressive Entity Retrieval. - synced_gpus (
bool, opsional, defaultFalse) — Apakah akan terus menjalankan loop while hingga max_length (diperlukan untuk menghindari deadlocking denganFullyShardedDataParalleldan DeepSpeed ZeRO Stage 3). - kwargs (
dict[str, Any], opsional) — Parametrisasi ad hoc untukgenerate_configdan/atau kwargs spesifik model tambahan yang akan diteruskan ke fungsiforwarddari model.
Mengembalikan
ModelOutput atau torch.LongTensor
ModelOutput (jika return_dict_in_generate=True
atau ketika config.return_dict_in_generate=True) atau torch.Tensor. Jenis
ModelOutput yang mungkin adalah:
Membuat rangkaian id token.
Sebagian besar parameter pengendali generasi diatur di
generation_configyang, jika tidak diteruskan, akan disetel ke konfigurasi generasi default model. Anda dapat menimpageneration_configmana pun dengan meneruskan parameter yang sesuai ke generate(), misalnya.generate(inputs, num_beams=4, do_sample=True).Untuk ringkasan strategi generasi dan contoh kode, lihat panduan berikut.
SeamlessM4Tv2Config
kelas 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 )
Parameter
- is_encoder_decoder (
bool, opsional, defaultnyaTrue) — Apakah model digunakan sebagai encoder/decoder atau tidak. - vocab_size (
int, opsional, default256102) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan olehinput_ids. - t2u_vocab_size (
int, opsional, default 10082) — Ukuran kosakata unit dari model SeamlessM4Tv2. Menentukan jumlah “unit token” berbeda yang dapat direpresentasikan olehinputs_idsyang diteruskan saat memanggil sub-model Text-To-Units dari ~SeamlessM4Tv2Model, ~SeamlessM4Tv2ForSpeechToSpeech atau ~SeamlessM4Tv2ForTextToSpeech. - char_vocab_size (
int, opsional, default 10943) — Ukuran kosakata karakter dari model SeamlessM4Tv2. Menentukan jumlah token karakter berbeda yang dapat direpresentasikan olehchar_inputs_idsyang diteruskan saat memanggil sub-model Text-To-Units dari ~SeamlessM4Tv2Model, ~SeamlessM4Tv2ForSpeechToSpeech atau ~SeamlessM4Tv2ForTextToSpeech. - hidden_size (
int, opsional, default1024) — Dimensi dari representasi tersembunyi. - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - layer_norm_eps (
float, opsional, defaultnya1e-05) — Epsilon yang digunakan oleh lapisan normalisasi lapisan. - use_cache (
bool, opsional, defaultnyaTrue) — Apakah model harus mengembalikan perhatian kunci/nilai terakhir (tidak digunakan oleh semua model). Hanya relevan jikaconfig.is_decoder=Trueatau ketika model adalah model generatif yang hanya decoder. - max_position_embeddings (
int, opsional, default4096) — Panjang maksimum urutan yang mungkin digunakan dengan model ini. - encoder_layerdrop (
Union[float, int], opsional, default0.05) — Probabilitas LayerDrop untuk encoder. Lihat [makalah LayerDrop](lihat https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut. - decoder_layerdrop (
Union[float, int], opsional, default0.05) — Probabilitas LayerDrop untuk decoder. Lihat [makalah LayerDrop](lihat https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut. - activation_function (
str, opsional, defaultnyarelu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - dropout (
Union[float, int], opsional, default0.1) — Rasio untuk semua lapisan dropout. - attention_dropout (
Union[float, int], opsional, default0.1) — Rasio dropout untuk probabilitas perhatian. - activation_dropout (
Union[float, int], opsional, defaultnya0.0) — Rasio dropout untuk aktivasi di dalam lapisan fully connected. - scale_embedding (
bool, opsional, defaultTrue) — Apakah akan menskalakan embedding dengan membaginya oleh sqrt(d_model). - encoder_layers (
int, opsional, default24) — Jumlah lapisan tersembunyi pada encoder Transformer. Akan menggunakan nilai yang sama dengannum_layersjika tidak diatur. - encoder_ffn_dim (
int, opsional, default8192) — Dimensi lapisan “intermediate” (sering disebut feed-forward) di encoder. - encoder_attention_heads (
int, opsional, default16) — Jumlah kepala perhatian untuk setiap lapisan perhatian dalam encoder Transformer. - decoder_layers (
int, opsional, default24) — Jumlah lapisan tersembunyi dalam decoder Transformer. Akan menggunakan nilai yang sama dengannum_layersjika tidak diatur. - decoder_ffn_dim (
int, opsional, default8192) — Dimensi dari lapisan “intermediate” (sering disebut feed-forward) di decoder. - decoder_attention_heads (
int, opsional, default16) — Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer. - decoder_start_token_id (
int, opsional, default3) — Jika model encoder-decoder memulai decoding dengan token yang berbeda daribos, id dari token tersebut. - max_new_tokens (
int, opsional, default 256) — Jumlah maksimum token teks yang akan dihasilkan, tanpa memperhitungkan jumlah token dalam prompt. - pad_token_id (
int, opsional, default0) — ID token yang digunakan untuk padding dalam kosakata. - bos_token_id (
int, opsional, default2) — ID token yang digunakan untuk awal-stream dalam kosakata. - eos_token_id (
Union[int, list[int]], opsional, default3) — ID token yang digunakan untuk end-of-stream dalam kosakata. - speech_encoder_layers (
int, opsional, default 24) — Jumlah lapisan tersembunyi dalam encoder ucapan Transformer. - speech_encoder_attention_heads (
int, opsional, default 16) — Jumlah attention head untuk setiap lapisan attention dalam Transformer speech encoder. - speech_encoder_intermediate_size (
int, opsional, default 4096) — Dimensi lapisan “intermediate” (yaitu, feed-forward) pada encoder speech Transformer. - speech_encoder_hidden_act (
strataufunction, opsional, default"swish") — Fungsi aktivasi non-linear (fungsi atau string) pada speech encoder. Jika string,"gelu","relu","selu","swish", dan"gelu_new"didukung. - speech_encoder_dropout (
float, opsional, default 0.0) — Probabilitas dropout untuk semua lapisan dalam speech encoder. - add_adapter (
bool, opsional, defaultTrue) — Menambahkan lapisan adapter di atas speech encoder. - speech_encoder_layerdrop (
float, opsional, default 0.1) — Probabilitas LayerDrop untuk speech encoder. Lihat [makalah LayerDrop](lihat https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut. - feature_projection_input_dim (
int, opsional, default 160) — Dimensi input dari proyeksi fitur input pada speech encoder, yaitu dimensi setelah memproses audio input dengan SeamlessM4TFeatureExtractor. - adaptor_kernel_size (
int, opsional, default 8) — Ukuran kernel dari lapisan konvolusional dalam jaringan adaptor. Hanya relevan jikaadd_adapter is True. - adaptor_stride (
int, opsional, default 8) — Stride dari lapisan konvolusional dalam jaringan adaptor. Hanya relevan jikaadd_adapter is True. - adaptor_dropout (
float, opsional, default 0.1) — Probabilitas dropout untuk semua lapisan dalam speech adapter. - num_adapter_layers (
int, opsional, default 1) — Jumlah lapisan konvolusional yang harus digunakan dalam jaringan adapter. Hanya relevan jikaadd_adapter is True. - position_embeddings_type (
str, opsional, default"relative_key") — Dapat ditentukan kerelative_key. Jika dibiarkanNone, tidak ada relative position embedding yang diterapkan. Hanya diterapkan pada speech encoder. Untuk informasi lebih lanjut tentang"relative_key", silakan merujuk ke Self-Attention with Relative Position Representations (Shaw et al.). - conv_depthwise_kernel_size (
int, opsional, default 31) — Ukuran kernel dari lapisan convolutional depthwise 1D dalam blok Conformer. Hanya diterapkan pada encoder ucapan. - left_max_position_embeddings (
int, opsional, default 64) — Nilai pemotongan kiri untuk posisi relatif. - right_max_position_embeddings (
int, opsional, default 8) — Nilai pemotongan kanan untuk posisi relatif. - speech_encoder_chunk_size (
int, opsional, default 20000) — Ukuran setiap chunk attention. - speech_encoder_left_chunk_num (
int, opsional, default 128) — Jumlah chunk di sisi kiri hingga mana lookahead diizinkan. - t2u_bos_token_id (
int, opsional, default 0) — ID dari token unit beginning-of-stream. Hanya diterapkan pada model seq2seq text-to-unit. - t2u_pad_token_id (
int, opsional, default 1) — ID dari token unit padding. Hanya diterapkan pada model seq2seq text-to-unit. - t2u_eos_token_id (
int, opsional, default 2) — ID dari token unit end-of-stream. Hanya diterapkan pada model seq2seq text-to-unit. - t2u_encoder_layers (
int, opsional, default 6) — Jumlah lapisan tersembunyi dalam encoder text-to-unit Transformer. - t2u_encoder_ffn_dim (
int, opsional, default 8192) — Dimensi lapisan “intermediate” (yaitu, feed-forward) pada Transformer text-to-unit encoder. - t2u_encoder_attention_heads (
int, opsional, default 16) — Jumlah attention head untuk setiap lapisan attention dalam encoder text-to-unit Transformer. - t2u_decoder_layers (
int, opsional, default 6) — Jumlah lapisan tersembunyi dalam decoder text-to-unit Transformer. - t2u_decoder_ffn_dim (
int, opsional, default 8192) — Dimensi lapisan “intermediate” (yaitu, feed-forward) pada decoder text-to-unit Transformer. - t2u_decoder_attention_heads (
int, opsional, default 16) — Jumlah attention head untuk setiap lapisan attention dalam decoder text-to-unit Transformer. - t2u_max_position_embeddings (
int, opsional, default 4096) — Panjang maksimum sekuens yang mungkin digunakan oleh komponen text-to-unit model ini. Biasanya, atur nilai ini ke angka yang cukup besar sebagai antisipasi (misalnya, 512 atau 1024 atau 2048). - t2u_variance_predictor_embed_dim (
int, opsional, default 1024) — Dimensi proyeksi dari duration predictor text-to-unit. - t2u_variance_predictor_hidden_dim (
int, opsional, default 256) — Dimensi internal dari duration predictor text-to-unit. - t2u_variance_predictor_kernel_size (
int, opsional, default 3) — Ukuran kernel dari lapisan konvolusional pada duration predictor text-to-unit. - t2u_variance_pred_dropout (
float, opsional, default 0.5) — Probabilitas dropout dari duration predictor text-to-unit. - sampling_rate (
int, opsional, default16000) — Laju sampling di mana file audio harus didigitalisasi, dinyatakan dalam hertz (Hz). - upsample_initial_channel (
int, opsional, default 512) — Jumlah channel input ke jaringan upsampling hifi-gan. Hanya berlaku untuk vocoder. - upsample_rates (
tuple[int]ataulist[int], opsional, default[5, 4, 4, 2, 2]) — Tuple dari bilangan bulat yang mendefinisikan stride dari setiap lapisan konvolusi 1D dalam jaringan upsampling vocoder. Panjang dari upsample_rates mendefinisikan jumlah lapisan konvolusi dan harus sesuai dengan panjang dari upsample_kernel_sizes. Hanya berlaku untuk vocoder. - upsample_kernel_sizes (
tuple[int]ataulist[int], opsional, default[11, 8, 8, 4, 4]) — Tuple berisi bilangan bulat yang mendefinisikan ukuran kernel untuk setiap lapisan konvolusi 1D dalam jaringan upsampling vocoder. Panjang upsample_kernel_sizes menentukan jumlah lapisan konvolusi dan harus sama dengan panjang upsample_rates. Hanya berlaku untuk vocoder. - resblock_kernel_sizes (
tuple[int]ataulist[int], opsional, default[3, 7, 11]) — Tuple berisi bilangan bulat yang mendefinisikan ukuran kernel dari lapisan konvolusi 1D pada vocoder di dalam modul multi-receptive field fusion (MRF). Hanya berlaku untuk vocoder. - resblock_dilation_sizes (
tuple[tuple[int]]ataulist[list[int]], opsional, default[[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — Tuple bersarang dari bilangan bulat yang mendefinisikan laju dilatasi dari lapisan konvolusi 1D berdilasi pada modul multi-receptive field fusion (MRF) di dalam vocoder. Hanya berlaku untuk vocoder. - leaky_relu_slope (
float, opsional, default 0.1) — Sudut kemiringan negatif yang digunakan oleh aktivasi leaky ReLU pada vocoder. Hanya berlaku untuk vocoder. - unit_hifi_gan_vocab_size (
int, opsional, default 10000) — Ukuran kosakata dari vocoder SeamlessM4Tv2. Menentukan jumlah token unit berbeda yang dapat direpresentasikan olehinputs_idsyang diteruskan saat memanggil vocoder dari ~SeamlessM4Tv2Model, ~SeamlessM4Tv2ForSpeechToSpeech atau ~SeamlessM4Tv2ForTextToSpeech. - unit_embed_dim (
int, opsional, default 1280) — Dimensi proyeksi dari id input yang diberikan ke voder hifi-gan. Hanya berlaku untuk voder. - lang_embed_dim (
int, opsional, default 256) — Dimensi proyeksi dari bahasa target yang diberikan ke voder hifi-gan. Hanya berlaku untuk voder. - spkr_embed_dim (
int, opsional, default 256) — Dimensi proyeksi dari speaker id yang diberikan ke vocoder hifi-gan. Hanya berlaku untuk vocoder. - vocoder_num_langs (
int, opsional, default 36) — Jumlah bahasa yang didukung oleh vocoder. Bisa berbeda darit2u_num_langs. - vocoder_num_spkrs (
int, opsional, default 200) — Jumlah pembicara yang didukung oleh vocoder. - variance_predictor_kernel_size (
int, opsional, default 3) — Ukuran kernel dari duration predictor. Hanya berlaku untuk vocoder. - var_pred_dropout (
float, opsional, default 0.5) — Probabilitas dropout dari duration predictor. Hanya berlaku untuk vocoder. - vocoder_offset (
int, opsional, default 4) — Geser unit token id sebesar angka ini untuk memperhitungkan simbol token. Berlaku hanya untuk vocoder. - tie_word_embeddings (
bool, opsional, defaultTrue) — Apakah akan mengikat bobot embedding sesuai dengan pemetaantied_weights_keysmodel.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari SeamlessM4Tv2Model. Kelas ini digunakan untuk membuat instans model Seamless M4T V2 sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari facebook/hf-seamless-m4t-medium
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
>>> 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