Transformers documentation
SeamlessM4T
Model ini dipublikasikan di HF papers pada 2023-08-22 dan disumbangkan ke Hugging Face Transformers pada 2023-10-23.
SeamlessM4T
Ikhtisar
Model SeamlessM4T diusulkan dalam SeamlessM4T — Massively Multilingual & Multimodal Machine Translation oleh tim Seamless Communication dari Meta AI.
Ini adalah rilis versi 1 dari model. Untuk rilis versi 2 yang diperbarui, silakan lihat dokumentasi Seamless M4T v2.
SeamlessM4T adalah kumpulan model yang dirancang untuk menyediakan terjemahan berkualitas tinggi, memungkinkan orang dari berbagai komunitas bahasa untuk berkomunikasi dengan mudah melalui ucapan dan teks.
SeamlessM4T 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)
SeamlessM4TModel dapat melakukan semua tugas di atas, tetapi setiap tugas juga memiliki sub-model khusus masing-masing.
Abstrak dari makalah tersebut adalah sebagai berikut:
Apa yang diperlukan untuk menciptakan Babel Fish, sebuah alat yang dapat membantu individu menerjemahkan ucapan antara dua bahasa mana pun? Meskipun terobosan terbaru dalam model berbasis teks telah mendorong cakupan penerjemahan mesin melampaui 200 bahasa, model penerjemahan ucapan-ke-ucapan terpadu belum mencapai kemajuan serupa. Secara lebih spesifik, sistem penerjemahan ucapan-ke-ucapan konvensional bergantung pada sistem berjenjang (cascaded) yang melakukan penerjemahan secara bertahap, sehingga sistem terpadu berkinerja tinggi sulit dijangkau. Untuk mengatasi celah ini, kami memperkenalkan SeamlessM4T, sebuah model tunggal yang mendukung penerjemahan ucapan-ke-ucapan, penerjemahan ucapan-ke-teks, penerjemahan teks-ke-ucapan, penerjemahan teks-ke-teks, dan pengenalan ucapan otomatis untuk hingga 100 bahasa. Untuk membangun ini, kami menggunakan 1 juta jam data audio ucapan terbuka untuk mempelajari representasi ucapan self-supervised dengan w2v-BERT 2.0. Selanjutnya, kami membuat korpus multimodal dari penerjemahan ucapan yang diselaraskan secara otomatis. Setelah difilter dan digabungkan dengan data berlabel manusia dan berlabel pseudo, kami mengembangkan sistem multibahasa pertama yang mampu menerjemahkan dari dan ke bahasa Inggris untuk kedua modus ucapan dan teks. Pada FLEURS, SeamlessM4T menetapkan standar baru untuk penerjemahan ke berbagai bahasa target, mencapai peningkatan 20% BLEU dibandingkan SOTA sebelumnya dalam penerjemahan langsung ucapan-ke-teks. Dibandingkan dengan model berjenjang yang kuat, SeamlessM4T meningkatkan kualitas penerjemahan ke bahasa Inggris sebesar 1,3 poin BLEU dalam ucapan-ke-teks dan sebesar 2,6 poin ASR-BLEU dalam ucapan-ke-ucapan. Diuji untuk ketangguhan, sistem kami berkinerja lebih baik terhadap kebisingan latar belakang dan variasi pembicara dalam tugas ucapan-ke-teks dibandingkan model SOTA saat ini. Yang penting, kami mengevaluasi SeamlessM4T terhadap bias gender dan menambahkan toksisitas untuk menilai keamanan penerjemahan. Terakhir, semua kontribusi dalam karya ini diopen-source dan dapat diakses di https://github.com/facebookresearch/seamless_communication
Penggunaan
Pertama, muat processor dan checkpoint model:
from transformers import AutoProcessor, SeamlessM4TModel
processor = AutoProcessor.from_pretrained("facebook/hf-seamless-m4t-medium")
model = SeamlessM4TModel.from_pretrained("facebook/hf-seamless-m4t-medium", 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 test as well
text_inputs = processor(text = "Hello, my dog is cute", src_lang="eng", return_tensors="pt").to(model.device)Bicara
SeamlessM4TModel dapat menghasilkan teks atau suara 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 SeamlessM4TModel.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
SeamlessM4TModel 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 SeamlessM4TForSpeechToSpeech
model = SeamlessM4TForSpeechToSpeech.from_pretrained("facebook/hf-seamless-m4t-medium", 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 SeamlessM4TForTextToText
model = SeamlessM4TForTextToText.from_pretrained("facebook/hf-seamless-m4t-medium", device_map="auto")Silakan coba juga SeamlessM4TForSpeechToText dan SeamlessM4TForTextToSpeech.
2. Ubah identitas pembicara
Anda dapat mengubah pembicara yang digunakan untuk sintesis ucapan dengan argumen spkr_id. Beberapa spkr_id bekerja lebih baik daripada yang lain untuk beberapa bahasa!
3. Ubah strategi generasi
Anda dapat menggunakan berbagai strategi generasi untuk generasi ucapan dan teks, misalnya .generate(input_ids=input_ids, text_num_beams=4, speech_do_sample=True) yang akan secara berurutan melakukan dekoding beam-search pada model teks, dan pengambilan sampel multinomial pada model ucapan.
4. Generate ucapan dan teks secara bersamaan
Gunakan return_intermediate_token_ids=True dengan SeamlessM4TModel untuk mengembalikan baik ucapan maupun teks!
Arsitektur model
SeamlessM4T 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.
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, yang mengikuti struktur encoder-decoder standar, menghasilkan unit token.
- Token unit ini kemudian diteruskan melalui vocoder akhir untuk menghasilkan ucapan yang sebenarnya.
Model ini disumbangkan oleh ylacombe. Kode aslinya dapat ditemukan di sini.
SeamlessM4TModel
kelas transformers.SeamlessM4TModel
< source >( config: SeamlessM4TConfigcurrent_modality = 'text' )
Parameter
- config (SeamlessM4TConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
- current_modality (
str, opsional, default"text") — Modality default. Digunakan untuk menginisialisasi model.
Model transformer asli SeamlessM4T 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 = Nonespkr_id: int | None = 0generate_speech: bool | None = True**kwargs ) → Union[SeamlessM4TGenerationOutput, 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. - spkr_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[SeamlessM4TGenerationOutput, tuple[Tensor], ModelOutput]
- Jika
generate_speechdanreturn_intermediate_token_ids, mengembalikanSeamlessM4TGenerationOutput. - 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.
SeamlessM4TForTextToSpeech
kelas transformers.SeamlessM4TForTextToSpeech
< source >( config: SeamlessM4TConfig )
Parameter
- config (SeamlessM4TConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model transformer SeamlessM4T 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 = Nonespkr_id: int | None = 0**kwargs ) → Union[SeamlessM4TGenerationOutput, 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. - spkr_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[SeamlessM4TGenerationOutput, tuple[Tensor]]
- Jika
return_intermediate_token_ids, mengembalikanSeamlessM4TGenerationOutput. - 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.
SeamlessM4TForSpeechToSpeech
kelas transformers.SeamlessM4TForSpeechToSpeech
< source >( config: SeamlessM4TConfig )
Parameter
- config (SeamlessM4TConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model transformer SeamlessM4T 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 = Nonespkr_id: int | None = 0**kwargs ) → Union[SeamlessM4TGenerationOutput, 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. - spkr_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[SeamlessM4TGenerationOutput, tuple[Tensor]]
- Jika
return_intermediate_token_ids, mengembalikanSeamlessM4TGenerationOutput. - 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.
SeamlessM4TForTextToText
kelas transformers.SeamlessM4TForTextToText
< source >( config: SeamlessM4TConfig )
Parameter
- config (SeamlessM4TConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model transformer SeamlessM4T untuk 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 (SeamlessM4TConfig) dan input.
Metode forward dari SeamlessM4TForTextToText 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.
SeamlessM4TForSpeechToText
kelas transformers.SeamlessM4TForSpeechToText
< source >( config: SeamlessM4TConfig )
Parameter
- config (SeamlessM4TConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model transformer SeamlessM4T untuk speech-to-text 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 (SeamlessM4TConfig) dan input.
Metode forward dari SeamlessM4TForSpeechToText 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, SeamlessM4TForSpeechToText
>>> 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 = SeamlessM4TForSpeechToText.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.
SeamlessM4TConfig
kelas transformers.SeamlessM4TConfig
< 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 = 10082hidden_size: int = 1024initializer_range: float = 0.02layer_norm_eps: float = 1e-05use_cache: bool = Truemax_position_embeddings: int = 1024encoder_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 = 160num_conv_pos_embeddings: int = 128num_conv_pos_embedding_groups: int = 16adaptor_kernel_size: int = 8adaptor_stride: int = 8adaptor_dropout: float | int = 0.1num_adapter_layers: int = 1position_embeddings_type: str = 'relative'rotary_embedding_base: int = 10000max_source_positions: int = 4096conv_depthwise_kernel_size: int = 31t2u_bos_token_id: int | None = 0t2u_pad_token_id: int | None = 1t2u_eos_token_id: int | list[int] | None = 2t2u_decoder_start_token_id: int = 2t2u_max_new_tokens: int = 1024t2u_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 = 2048sampling_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 SeamlessM4T. Menentukan jumlah token unit berbeda yang dapat direpresentasikan olehinputs_idsyang diteruskan saat memanggil sub-model Text-To-Units dari ~SeamlessM4TModel, ~SeamlessM4TForSpeechToSpeech atau ~SeamlessM4TForTextToSpeech. - 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, default1024) — 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. - num_conv_pos_embeddings (
int, opsional, default 128) — Jumlah convolutional positional embeddings. Menentukan ukuran kernel dari lapisan convolutional positional embeddings 1D pada speech encoder. - num_conv_pos_embedding_groups (
int, opsional, default 16) — Jumlah grup dari lapisan embedding posisional konvolusi 1D pada encoder ucapan. - 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") — Dapat ditentukan sebagairelativeataurotaryuntuk position embedding relatif atau rotary, masing-masing. Jika dibiarkanNone, position embedding relatif tidak diterapkan. Hanya diterapkan pada speech encoder. - rotary_embedding_base (
int, opsional, default 10000) — Jika"rotary"position embeddings digunakan, mendefinisikan ukuran dari embedding base. Hanya diterapkan pada speech encoder. - max_source_positions (
int, opsional, default 4096) — jika"relative"position embeddings digunakan, mendefinisikan posisi input sumber maksimum. Hanya diterapkan pada speech encoder. - conv_depthwise_kernel_size (
int, opsional, default 31) — Ukuran kernel dari lapisan convolutional depthwise 1D dalam blok Conformer. Hanya diterapkan pada encoder ucapan. - 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_decoder_start_token_id (
int, opsional, default 2) — Jika model encoder-decoder memulai decoding dengan token yang berbeda dari bos, id dari token tersebut. Hanya diterapkan pada model seq2seq text-to-unit. - t2u_max_new_tokens (
int, opsional, default 1024) — Jumlah maksimum unit token yang akan dihasilkan, mengabaikan jumlah token dalam prompt. 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 2048) — 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). - 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 SeamlessM4T. Menentukan jumlah token unit berbeda yang dapat direpresentasikan olehinputs_idsyang diteruskan saat memanggil vocoder dari ~SeamlessM4TModel, ~SeamlessM4TForSpeechToSpeech atau ~SeamlessM4TForTextToSpeech. - 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 SeamlessM4TModel. Kelas ini digunakan untuk membuat instans model Seamless M4T sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan 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 SeamlessM4TModel, SeamlessM4TConfig
>>> # Initializing a SeamlessM4T "facebook/hf-seamless-m4t-medium" style configuration
>>> configuration = SeamlessM4TConfig()
>>> # Initializing a model from the "facebook/hf-seamless-m4t-medium" style configuration
>>> model = SeamlessM4TModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configSeamlessM4TTokenizer
kelas transformers.SeamlessM4TTokenizer
< source >( vocab: str | dict[str, int] | None = Nonemerges: str | list[str] | None = Nonebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'src_lang = 'eng'tgt_lang = 'fra'additional_special_tokens = Nonekeep_accents = Nonevocab_file = None**kwargs )
Parameter
- vocab (
listataudict, opsional) — Daftar tuple (token, skor) atau dict yang memetakan token ke indeks. Jika tidak disediakan, menggunakan vocab default. - merges (
strataulist, opsional) — Daftar aturan merge untuk model BPE. Jika tidak disediakan, menggunakan daftar kosong. - bos_token (
str, opsional, defaultnya"<s>") — Token awal urutan yang digunakan selama pretraining. Dapat digunakan sebagai token klasifikator urutan. Saat membangun urutan menggunakan token khusus, ini bukan token yang digunakan untuk awal urutan. Token yang digunakan adalah cls_token.Saat membangun sebuah sekuens menggunakan token khusus, token ini bukan token yang digunakan untuk awal sekuens. Token yang digunakan adalah
cls_token. - eos_token (
str, opsional, defaultnya"</s>") — Token akhir urutan.Saat membangun sebuah urutan menggunakan token khusus, token ini bukan yang digunakan untuk akhir urutan. Token yang digunakan adalah
sep_token. - sep_token (
str, opsional, default"</s>") — Token pemisah, yang digunakan saat membangun satu rangkaian dari beberapa rangkaian, misalnya dua rangkaian untuk klasifikasi rangkaian atau untuk teks dan pertanyaan untuk penjawaban pertanyaan. Token ini juga digunakan sebagai token terakhir dari rangkaian yang dibangun dengan token khusus. - cls_token (
str, opsional, default"<s>") — Token klasifikator yang digunakan saat melakukan klasifikasi sekuens (klasifikasi seluruh sekuens, bukan klasifikasi per-token). Token ini merupakan token pertama dari sekuens ketika dibangun dengan token khusus. - unk_token (
str, opsional, default"<unk>") — Token yang tidak diketahui. Token yang tidak ada dalam kosakata tidak dapat dikonversi menjadi ID dan akan diset sebagai token ini sebagai gantinya. - pad_token (
str, opsional, defaultnya"<pad>") — Token yang digunakan untuk padding, misalnya saat membatching urutan dengan panjang yang berbeda. - src_lang (
str, opsional, default"eng") — Bahasa yang akan digunakan sebagai bahasa sumber untuk penerjemahan. - tgt_lang (
str, opsional, default"fra") — Bahasa yang akan digunakan sebagai bahasa target untuk penerjemahan. - additional_special_tokens (tuple atau list dari
stratautokenizers.AddedToken, opsional) — Tuple atau list dari token khusus tambahan.
Konstruksi tokenizer SeamlessM4T (didukung oleh pustaka tokenizers dari HuggingFace). Berbasis BPE.
Tokenizer ini mewarisi dari TokenizersBackend yang berisi sebagian besar metode utama. Pengguna sebaiknya merujuk ke superclass ini untuk informasi lebih lanjut mengenai metode-metode tersebut.
Metode tokenisasi adalah <language code> <tokens> <eos> untuk dokumen bahasa sumber, dan <eos> <language code> <tokens> <eos> untuk dokumen bahasa target.
Contoh:
>>> from transformers import SeamlessM4TTokenizer
>>> tokenizer = SeamlessM4TTokenizer.from_pretrained(
... "facebook/hf-seamless-m4t-medium", src_lang="eng", tgt_lang="fra"
... )
>>> example_english_phrase = " UN Chief Says There Is No Military Solution in Syria"
>>> expected_translation_french = "Le chef de l'ONU affirme qu'il n'y a pas de solution militaire en Syrie."
>>> inputs = tokenizer(example_english_phrase, text_target=expected_translation_french, return_tensors="pt")__call__
< source >( text: str | list[str] | list[list[str]] | None = Nonetext_pair: str | list[str] | list[list[str]] | None = Nonetext_target: str | list[str] | list[list[str]] | None = Nonetext_pair_target: str | list[str] | list[list[str]] | None = Nonepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsepad_to_multiple_of: int | None = Nonesrc_lang: str | None = Nonetgt_lang: str | None = None**kwargs )
Parameter
- text (
str,list[str],list[list[str]], opsional) — Sequens atau batch dari sequens yang akan dienkod. Setiap sequens dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika sequens diberikan sebagai daftar string (pretokenized), Anda harus mengaturis_split_into_words=True(untuk menghilangkan ambiguitas dengan batch dari sequens). - text_pair (
str,list[str],list[list[str]], opsional) — Urutan atau batch dari urutan yang akan dienkod. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengaturis_split_into_words=True(untuk menghilangkan ambiguitas dengan batch dari urutan). - text_target (
str,list[str],list[list[str]], opsional) — Sequens atau batch sequens yang akan dikodekan sebagai teks target. Setiap sequens dapat berupa string atau daftar string (string pretokenized). Jika sequens diberikan sebagai daftar string (pretokenized), Anda harus mengaturis_split_into_words=True(untuk menghilangkan ambiguitas dengan batch sequens). - text_pair_target (
str,list[str],list[list[str]], opsional) — Urutan atau batch urutan yang akan dikodekan sebagai teks target. Setiap urutan dapat berupa string atau daftar string (string pretokenized). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengaturis_split_into_words=True(untuk menghilangkan ambiguitas dengan batch urutan). - padding (
bool,stratau PaddingStrategy, opsional, defaultnyaFalse) — Pilih strategi untuk melakukan padding pada urutan yang dikembalikan (sesuai sisi padding dan indeks padding model) di antara:Trueatau'longest': Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan).'max_length': Pad hingga panjang maksimum yang ditentukan dengan argumenmax_lengthatau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan.Falseatau'do_not_pad'(default): Tidak ada padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda).
- pad_to_multiple_of (
int, opsional, defaultnyaNone) — Jika diatur, akan melakukan padding pada sekuens menjadi kelipatan dari nilai yang diberikan.Ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan kemampuan komputasi
>= 7.5(Volta). - src_lang (
str, opsional) — String yang merepresentasikan bahasa sumber. Jika tidak ditentukan,src_langterakhir yang ditentukan (baik saat inisialisasi maupun saat memanggil tokenizer ini) akan digunakan. - tgt_lang (
str, opsional) — String yang mewakili bahasa target. Jika tidak ditentukan,tgt_langterakhir yang ditentukan (baik saat inisialisasi maupun saat memanggil tokenizer ini) akan digunakan. - kwargs (opsional) — Kamus sisa argumen kata kunci yang akan diteruskan ke TokenizersBackend.call().
get_special_tokens_mask
< source >( token_ids_0: list[int]token_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]
Parameter
- token_ids_0 — Daftar ID untuk urutan (yang mungkin sudah diformat).
- token_ids_1 — Tidak digunakan saat
already_has_special_tokens=True. Harus None dalam kasus tersebut. - already_has_special_tokens — Apakah urutan sudah diformat dengan token khusus.
Mengembalikan
Daftar bilangan bulat dalam rentang [0, 1]
1 untuk token khusus, 0 untuk token urutan.
Ambil id urutan dari daftar token yang tidak memiliki token khusus yang ditambahkan.
Untuk tokenizer yang cepat, data collator memanggil ini dengan already_has_special_tokens=True untuk membangun mask di atas urutan yang sudah diformat. Dalam kasus tersebut, kami menghitung mask dengan memeriksa keanggotaan dalam all_special_ids.
SeamlessM4TFeatureExtractor
kelas transformers.SeamlessM4TFeatureExtractor
< source >( feature_size = 80sampling_rate = 16000num_mel_bins = 80padding_value = 0.0stride = 2**kwargs )
Parameter
- feature_size (
int, opsional, default 80) — Dimensi fitur dari fitur yang diekstrak. - sampling_rate (
int, opsional, default 16000) — Laju sampling di mana file audio harus didigitalisasi, dinyatakan dalam hertz (Hz). - num_mel_bins (
int, opsional, default 80) — Jumlah bin frekuensi Mel. - padding_value (
float, opsional, default 0.0) — Nilai yang digunakan untuk mengisi vektor padding. - stride (
int, opsional, default 2) — Stride yang digunakan untuk mengubah bentuk audio dari (batch_size,num_frames,num_mel_bins) menjadi (batch_size,num_frames//stride,num_mel_bins*stride).
Membangun feature extractor SeamlessM4T.
Feature extractor ini mewarisi dari SequenceFeatureExtractor yang berisi sebagian besar metode utama. Pengguna harus merujuk ke superclass ini untuk informasi lebih lanjut mengenai metode-metode tersebut.
Kelas ini mengekstrak fitur mel-filter bank dari ucapan mentah.
__call__
< source >( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]padding: bool | str | transformers.utils.generic.PaddingStrategy = Truepad_to_multiple_of: int | None = 2max_length: int | None = Nonetruncation: bool = Falsereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonesampling_rate: int | None = Nonereturn_attention_mask: bool | None = Nonedo_normalize_per_mel_bins: bool | None = True**kwargs )
Parameter
- raw_speech (
np.ndarray,torch.Tensor,list[float],list[np.ndarray],list[torch.Tensor], — -
list[list[float]],list[list[list[float]]]) — Urutan atau batch dari urutan-urutan yang akan di-pad. Setiap urutan dapat berupa array numpy, tensor torch, daftar nilai float, daftar array numpy, daftar tensor torch, daftar dari daftar nilai float, atau daftar dari daftar dari daftar nilai float. Jikaraw_speechadalahnp.ndarraysatu dimensi,torch.Tensorataulist[float], makaraw_speechdianggap sebagai suara single-channel, single-sample. Dalam semua kasus lainnya, dimensi pertama dariraw_speech, baik darinp.ndarray,torch.Tensorataulist[...], berkorespondensi dengan jumlah sampel dalam batch, dan jumlah channel (yaitu karakter mono atau stereo) diturunkan dari dimensi lainnya (1D -> batch waveform single-channel; 2D-> batch waveform stereo-channel). - padding (
bool,stratau PaddingStrategy, opsional, defaultnyaTrue) — Pilih strategi untuk melakukan padding pada urutan yang dikembalikan (sesuai sisi padding dan indeks padding model) di antara:Trueatau'longest': Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan).'max_length': Pad hingga panjang maksimum yang ditentukan dengan argumenmax_lengthatau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan.Falseatau'do_not_pad'(default): Tidak ada padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda).
- pad_to_multiple_of (
int, opsional, default 2) — Jika diset, urutan akan di-pad hingga menjadi kelipatan dari nilai yang diberikan.Ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan compute capability
>= 7.5(Volta), atau pada TPU yang diuntungkan dari panjang sekuens yang merupakan kelipatan 128. - max_length (
int, opsional) — Panjang maksimum dari daftar yang dikembalikan dan secara opsional panjang padding (lihat di atas). - truncation (
bool) — Mengaktifkan pemotongan untuk memotong urutan input yang lebih panjang dari max_length menjadi max_length. - return_attention_mask (
bool, opsional) — Apakah akan mengembalikan attention mask. Jika dibiarkan pada nilai default, attention mask akan dikembalikan sesuai dengan default feature_extractor yang bersangkutan.Untuk model SeamlessM4T,
attention_maskharus selalu diteruskan untuk inferensi batched, untuk menghindari bug yang halus. - return_tensors (
stratau TensorType, opsional) — Jika diset, akan mengembalikan tensor alih-alih daftar integer Python. Nilai yang dapat diterima adalah:'pt': Mengembalikan objek PyTorchtorch.Tensor.'np': Mengembalikan objek Numpynp.ndarray.
- sampling_rate (
int, opsional) — Laju sampling di mana inputraw_speechdisampelkan. Sangat disarankan untuk meneruskansampling_ratepada panggilan forward untuk mencegah kesalahan yang tidak terdeteksi. - do_normalize_per_mel_bins (
bool, opsional, defaultTrue) — Apakah akan menormalisasi input per kanal mel dengan rata-rata nol dan varians satu. - kwargs (opsional) — Kamus sisa argumen kata kunci yang akan diteruskan ke tokenizer atau feature extractor.
Metode utama untuk melakukan featurisasi dan persiapan satu atau beberapa sekuens untuk model.
SeamlessM4TProcessor
kelas transformers.SeamlessM4TProcessor
< source >( feature_extractortokenizer )
Membangun SeamlessM4TProcessor yang membungkus feature extractor dan tokenizer menjadi satu processor.
SeamlessM4TProcessor menyediakan semua fungsionalitas dari SeamlessM4TFeatureExtractor dan SeamlessM4TTokenizer. Lihat ~SeamlessM4TFeatureExtractor dan ~SeamlessM4TTokenizer untuk informasi lebih lanjut.
__call__
< source >( text: str | list[str] | list[list[str]] | None = Noneaudio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None**kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'> ) → BatchEncoding
Parameter
- text (
Union[str, list[str], list[list[str]]], opsional) — Sequens atau batch dari sequens yang akan dienkod. Setiap sequens dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika Anda memasukkan input yang sudah dipretokenisasi, aturis_split_into_words=Trueuntuk menghindari ambiguitas dengan input yang di-batch. - audio (
Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], opsional) — Audio atau batch audio yang akan disiapkan. Setiap audio dapat berupa array NumPy atau tensor PyTorch. Jika berupa array NumPy/tensor PyTorch, setiap audio harus memiliki bentuk (C, T), di mana C adalah jumlah channel, dan T adalah panjang sampel dari audio tersebut. - return_tensors (
stratau TensorType, opsional) — Jika diset, akan mengembalikan tensor dari framework tertentu. Nilai yang dapat diterima adalah:'pt': Mengembalikan objek PyTorchtorch.Tensor.'np': Mengembalikan objek NumPynp.ndarray.
- **kwargs (ProcessingKwargs, opsional) — Opsi pemrosesan tambahan untuk setiap modalitas (teks, gambar, video, audio). Parameter spesifik model tercantum di atas; lihat kelas TypedDict untuk daftar lengkap argumen yang didukung.
Mengembalikan
BatchEncoding dengan bidang berikut:
- input_ids — Daftar id token yang akan diberikan ke model. Dikembalikan ketika
textbukanNone. - attention_mask — Daftar indeks yang menentukan token mana yang harus diperhatikan oleh model (ketika
return_attention_mask=Trueatau jika “attention_mask” ada diself.model_input_namesdan jikatextbukanNone). - input_features — Fitur input audio yang akan diberikan ke model. Dikembalikan ketika
audiosbukanNone.
SeamlessM4TCodeHifiGan
kelas transformers.SeamlessM4TCodeHifiGan
< source >( config: SeamlessM4TConfig )
Parameter
- config (SeamlessM4TConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Code HiFi-GAN vocoder seperti yang dijelaskan dalam repository ini.
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: LongTensorspkr_id: Tensorlang_id: Tensor**kwargs )
Parameter
- input_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length)) — Indeks token urutan input dalam kosakata.Indeks dapat diperoleh menggunakan SeamlessM4TTextToUnitForConditionalGeneration. Apa itu ID input?
- spkr_id (
int, opsional) — ID pembicara yang digunakan untuk sintesis ucapan. Harus lebih kecil dariconfig.vocoder_num_spkrs. - tgt_lang (
str, opsional) — ID bahasa yang akan digunakan sebagai bahasa target untuk penerjemahan.
SeamlessM4THifiGan
forward
< source >( inputs_embeds: Tensor ) → torch.Tensor
Parameter
- spectrogram (
torch.Tensor) — Tensor yang berisi log-mel spectrograms. Dapat di-batch dengan bentuk(batch_size, sequence_length, model_in_dim), atau tanpa batch dengan bentuk(sequence_length, model_in_dim). Perhatikan bahwamodel_in_dimadalah jumlah dariconfig.unit_embed_dim,config.lang_embed_dim, danconfig.spkr_embed_dim.
Mengembalikan
torch.Tensor
Tensor yang berisi waveform ucapan. Jika input spectrogram di-batch, bentuknya akan menjadi (batch_size, num_frames,). Jika tidak di-batch, bentuknya akan menjadi (num_frames,).
Mengonversi log-mel spectrogram menjadi waveform ucapan. Menyerahkan batch log-mel spectrogram mengembalikan batch waveform ucapan. Menyerahkan log-mel spectrogram tunggal, tanpa batch, mengembalikan waveform ucapan tunggal, tanpa batch.
SeamlessM4TTextToUnitModel
kelas transformers.SeamlessM4TTextToUnitModel
< source >( config: SeamlessM4TConfigembed_tokens_decoder: typing.Optional[torch.nn.Embedding] = None )
Parameter
- config (SeamlessM4TConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
- embed_tokens_decoder (
nn.Embedding, opsional) — embedding input dari decoder.
Encoder-decoder teks ke unit tanpa Transformer. Encoder-nya adalah SeamlessM4TEncoder tanpa embeddings dan decoder-nya adalah SeamlessM4TDecoder.
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] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqModelOutput 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 IDs?Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- decoder_attention_mask (
torch.LongTensordengan bentuk(batch_size, target_sequence_length), opsional) — Mask untuk menghindari pelaksanaan attention pada indeks token tertentu. Secara default, mask kausal akan digunakan, untuk memastikan model hanya dapat melihat input sebelumnya guna memprediksi masa depan. - 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_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - 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. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values).
Mengembalikan
Seq2SeqModelOutput atau tuple(torch.Tensor)
Seq2SeqModelOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (SeamlessM4TConfig) dan input.
Metode forward dari SeamlessM4TTextToUnitModel 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.
last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir dari decoder model.Jika
past_key_valuesdigunakan, hanya hidden-state terakhir dari sekuens dengan bentuk(batch_size, 1, hidden_size)yang dioutput.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 yang opsional.
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 yang opsional.
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.
SeamlessM4TTextToUnitForConditionalGeneration
kelas transformers.SeamlessM4TTextToUnitForConditionalGeneration
< source >( config: SeamlessM4TConfigembed_tokens_decoder: typing.Optional[torch.nn.Embedding] = None )
Parameter
- config (SeamlessM4TConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
- embed_tokens_decoder (
nn.Embedding, opsional) — embedding input dari decoder.
Encoder-decoder teks-ke-unit Transformer dengan kepala model bahasa. Model encoder-decoder dasarnya adalah SeamlessM4TTextToUnit.
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)
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 (SeamlessM4TConfig) dan input.
Metode forward dari SeamlessM4TTextToUnitForConditionalGeneration 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.