Transformers documentation

SeamlessM4T

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Model ini dipublikasikan di HF papers pada 2023-08-22 dan disumbangkan ke Hugging Face Transformers pada 2023-10-23.

SDPA

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

< >

( 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

< >

( 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.LongTensor dengan 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.

    Apa itu input ID?

  • input_features (torch.Tensor dengan 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) — Jika True, juga mengembalikan teks dan unit token yang dihasilkan secara intermediat. Atur ke True jika Anda juga ingin mendapatkan teks terjemahan bersama dengan audio. Perhatikan bahwa jika generate_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 dari config.vocoder_num_spkrs.
  • generate_speech (bool, opsional, default True) — Jika False, 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 **kwargs untuk metode generate dari setiap sub-model, kecuali decoder_input_ids yang hanya diteruskan melalui komponen teks.
    • Dengan awalan text_ atau speech_, mereka akan menjadi input untuk metode generate dari 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.

Mengembalikan

Union[SeamlessM4TGenerationOutput, tuple[Tensor], ModelOutput]

  • Jika generate_speech dan return_intermediate_token_ids, mengembalikan SeamlessM4TGenerationOutput.
  • Jika generate_speech dan tidak return_intermediate_token_ids, mengembalikan tuple yang terdiri dari waveform dengan bentuk (batch_size, sequence_length) dan waveform_lengths yang memberikan panjang setiap sampel.
  • Jika generate_speech=False, akan mengembalikan ModelOutput.

Membuat id token terjemahan dan/atau waveform audio terjemahan.

Metode ini secara berurutan memanggil fungsi .generate dari 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

< >

( 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

< >

( 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.LongTensor dengan 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.

    Apa itu input ID?

  • return_intermediate_token_ids (bool, opsional) — Jika True, juga mengembalikan teks dan token unit yang dihasilkan secara intermediat. Atur ke True jika 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 dari config.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 **kwargs untuk metode generate dari setiap sub-model, kecuali decoder_input_ids yang hanya diteruskan melalui komponen teks.
    • Dengan awalan text_ atau speech_, mereka akan menjadi input untuk metode generate dari 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.

Mengembalikan

Union[SeamlessM4TGenerationOutput, tuple[Tensor]]

  • Jika return_intermediate_token_ids, mengembalikan SeamlessM4TGenerationOutput.
  • Jika bukan return_intermediate_token_ids, mengembalikan tuple yang terdiri dari waveform dengan bentuk (batch_size, sequence_length) dan waveform_lengths yang memberikan panjang setiap sampel.

Membuat gelombang audio hasil terjemahan.

Metode ini secara berurutan memanggil fungsi .generate dari 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

< >

( 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

< >

( 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.Tensor dengan 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) — Jika True, juga mengembalikan teks dan token unit yang dihasilkan secara intermediat. Atur ke True jika 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 dari config.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 **kwargs untuk metode generate dari setiap sub-model, kecuali decoder_input_ids yang hanya diteruskan melalui komponen teks.
    • Dengan awalan text_ atau speech_, mereka akan menjadi input untuk metode generate dari 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.

Mengembalikan

Union[SeamlessM4TGenerationOutput, tuple[Tensor]]

  • Jika return_intermediate_token_ids, mengembalikan SeamlessM4TGenerationOutput.
  • Jika bukan return_intermediate_token_ids, mengembalikan tuple yang terdiri dari waveform dengan bentuk (batch_size, sequence_length) dan waveform_lengths yang memberikan panjang setiap sampel.

Membuat gelombang audio hasil terjemahan.

Metode ini secara berurutan memanggil fungsi .generate dari 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

< >

( 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

< >

( 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.LongTensor dengan 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.

    Apa itu input ID?

  • attention_mask (torch.Tensor dengan 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.

    Apa itu attention mask?

  • decoder_input_ids (torch.LongTensor dengan 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.

    Apa itu ID input decoder?

    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 penerjemahan dan ringkasan, decoder_input_ids harus disediakan. Jika tidak ada decoder_input_ids yang disediakan, model akan membuat tensor ini dengan menggeser input_ids ke kanan untuk pra-pelatihan denoising sesuai dengan makalah tersebut.

  • decoder_attention_mask (torch.LongTensor dengan bentuk (batch_size, target_sequence_length), opsional) — Perilaku default: menghasilkan tensor yang mengabaikan token pad di decoder_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_mask dan 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_state dengan 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 dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada past_key_values yang diteruskan, DynamicCache akan diinisialisasi secara default.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna diharapkan hanya memasukkan input_ids yang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk (batch_size, unprocessed_length) alih-alih semua input_ids dengan bentuk (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor dengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids Anda dapat memilih untuk langsung meneruskan representasi tertanam. Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversi input_ids menjadi vektor terkait daripada matriks pencarian embedding internal model.

    labels (torch.LongTensor dengan 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 docstring input_ids). Token dengan indeks yang disetel ke -100 diabaikan (disediakan masker), dan kerugian hanya dihitung untuk token dengan label dalam [0, ..., config.vocab_size]

  • decoder_inputs_embeds (torch.Tensor dengan bentuk (batch_size, target_sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan decoder_input_ids Anda dapat memilih untuk langsung meneruskan representasi tertanam. Jika past_key_values digunakan, secara opsional hanya decoder_inputs_embeds yang perlu dimasukkan (lihat past_key_values). Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversi decoder_input_ids indeks menjadi vektor terkait daripada matriks pencarian embedding internal model.

    Jika decoder_input_ids dan decoder_inputs_embeds keduanya tidak disetel, decoder_inputs_embeds mengambil nilai dari inputs_embeds.

  • labels (torch.LongTensor dengan 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 docstring input_ids). Token dengan indeks yang disetel ke -100 diabaikan (disamarkan), kerugian hanya dihitung untuk token dengan label dalam [0, ..., config.vocab_size].
  • use_cache (bool, opsional) — Jika diset ke True, state kunci-nilai past_key_values akan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihat past_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 Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • loss (torch.Tensor dengan bentuk (1,), opsional, dikembalikan saat labels disediakan) — Loss pemodelan bahasa.

  • logits (torch.Tensor dengan 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 ketika use_cache=True diteruskan atau ketika config.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 saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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.Tensor dengan 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 ketika output_hidden_states=True dilewatkan atau ketika config.output_hidden_states=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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

< >

( 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.Tensor dengan 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.

    Apa itu input ID?

  • 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. **kwargs yang diteruskan ke generate dan cocok dengan atribut dari generation_config akan menimpanya. Jika generation_config tidak disediakan, nilai default akan digunakan, yang memiliki prioritas pemuatan sebagai berikut: 1) dari file model generation_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 batch batch_id dan input_ids. Fungsi ini harus mengembalikan daftar token yang diizinkan untuk langkah generasi berikutnya yang dikondisikan pada ID batch batch_id dan token yang sebelumnya dihasilkan inputs_ids. Argumen ini berguna untuk generasi yang dibatasi berdasarkan prefiks, seperti yang dijelaskan dalam Autoregressive Entity Retrieval.
  • synced_gpus (bool, opsional, default False) — Apakah akan terus menjalankan loop while hingga max_length (diperlukan untuk menghindari deadlocking dengan FullyShardedDataParallel dan DeepSpeed ZeRO Stage 3).
  • kwargs (dict[str, Any], opsional) — Parametrisasi ad hoc untuk generate_config dan/atau kwargs spesifik model tambahan yang akan diteruskan ke fungsi forward dari 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_config yang, jika tidak diteruskan, akan disetel ke konfigurasi generasi default model. Anda dapat menimpa generation_config mana 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

< >

( 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

< >

( 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.Tensor dengan 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.Tensor dengan 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.

    Apa itu attention mask?

  • decoder_input_ids (torch.LongTensor dengan 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.

    Apa itu ID input decoder?

    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 penerjemahan dan ringkasan, decoder_input_ids harus disediakan. Jika tidak ada decoder_input_ids yang disediakan, model akan membuat tensor ini dengan menggeser input_ids ke kanan untuk pra-pelatihan denoising sesuai dengan makalah tersebut.

  • decoder_attention_mask (torch.LongTensor dengan bentuk (batch_size, target_sequence_length), opsional) — Perilaku default: menghasilkan tensor yang mengabaikan token pad di decoder_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_mask dan 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_state dengan 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 dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada past_key_values yang diteruskan, DynamicCache akan diinisialisasi secara default.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna diharapkan hanya memasukkan input_ids yang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk (batch_size, unprocessed_length) alih-alih semua input_ids dengan bentuk (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor dengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids Anda dapat memilih untuk langsung meneruskan representasi tertanam. Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversi input_ids menjadi vektor terkait daripada matriks pencarian embedding internal model.

    labels (torch.LongTensor dengan 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 docstring input_ids). Token dengan indeks yang disetel ke -100 diabaikan (disediakan masker), dan kerugian hanya dihitung untuk token dengan label dalam [0, ..., config.vocab_size]

  • decoder_inputs_embeds (torch.Tensor dengan bentuk (batch_size, target_sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan decoder_input_ids Anda dapat memilih untuk langsung meneruskan representasi tertanam. Jika past_key_values digunakan, secara opsional hanya decoder_inputs_embeds yang perlu dimasukkan (lihat past_key_values). Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversi decoder_input_ids indeks menjadi vektor terkait daripada matriks pencarian embedding internal model.

    Jika decoder_input_ids dan decoder_inputs_embeds keduanya tidak disetel, decoder_inputs_embeds mengambil nilai dari inputs_embeds.

  • labels (torch.LongTensor dengan 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 docstring input_ids). Token dengan indeks yang disetel ke -100 diabaikan (disamarkan), kerugian hanya dihitung untuk token dengan label dalam [0, ..., config.vocab_size].
  • use_cache (bool, opsional) — Jika diset ke True, state kunci-nilai past_key_values akan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihat past_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 Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • loss (torch.Tensor dengan bentuk (1,), opsional, dikembalikan saat labels disediakan) — Loss pemodelan bahasa.

  • logits (torch.Tensor dengan 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 ketika use_cache=True diteruskan atau ketika config.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 saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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.Tensor dengan 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 ketika output_hidden_states=True dilewatkan atau ketika config.output_hidden_states=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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

< >

( 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.Tensor dengan 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. **kwargs yang diteruskan ke generate dan cocok dengan atribut dari generation_config akan menimpanya. Jika generation_config tidak disediakan, nilai default akan digunakan, yang memiliki prioritas pemuatan sebagai berikut: 1) dari file model generation_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 batch batch_id dan input_ids. Fungsi ini harus mengembalikan daftar token yang diizinkan untuk langkah generasi berikutnya yang dikondisikan pada ID batch batch_id dan token yang sebelumnya dihasilkan inputs_ids. Argumen ini berguna untuk generasi yang dibatasi berdasarkan prefiks, seperti yang dijelaskan dalam Autoregressive Entity Retrieval.
  • synced_gpus (bool, opsional, default False) — Apakah akan terus menjalankan loop while hingga max_length (diperlukan untuk menghindari deadlocking dengan FullyShardedDataParallel dan DeepSpeed ZeRO Stage 3).
  • kwargs (dict[str, Any], opsional) — Parametrisasi ad hoc untuk generate_config dan/atau kwargs spesifik model tambahan yang akan diteruskan ke fungsi forward dari 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_config yang, jika tidak diteruskan, akan disetel ke konfigurasi generasi default model. Anda dapat menimpa generation_config mana 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

< >

( 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, defaultnya True) — Apakah model digunakan sebagai encoder/decoder atau tidak.
  • vocab_size (int, opsional, default 256102) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan oleh input_ids.
  • t2u_vocab_size (int, opsional, default 10082) — Ukuran kosakata unit dari model SeamlessM4T. Menentukan jumlah token unit berbeda yang dapat direpresentasikan oleh inputs_ids yang diteruskan saat memanggil sub-model Text-To-Units dari ~SeamlessM4TModel, ~SeamlessM4TForSpeechToSpeech atau ~SeamlessM4TForTextToSpeech.
  • hidden_size (int, opsional, default 1024) — Dimensi dari representasi tersembunyi.
  • initializer_range (float, opsional, defaultnya 0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.
  • layer_norm_eps (float, opsional, defaultnya 1e-05) — Epsilon yang digunakan oleh lapisan normalisasi lapisan.
  • use_cache (bool, opsional, defaultnya True) — Apakah model harus mengembalikan perhatian kunci/nilai terakhir (tidak digunakan oleh semua model). Hanya relevan jika config.is_decoder=True atau ketika model adalah model generatif yang hanya decoder.
  • max_position_embeddings (int, opsional, default 1024) — Panjang maksimum urutan yang mungkin digunakan dengan model ini.
  • encoder_layerdrop (Union[float, int], opsional, default 0.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, default 0.05) — Probabilitas LayerDrop untuk decoder. Lihat [makalah LayerDrop](lihat https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut.
  • activation_function (str, opsional, defaultnya relu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, "gelu", "relu", "silu", dan sebagainya.
  • dropout (Union[float, int], opsional, default 0.1) — Rasio untuk semua lapisan dropout.
  • attention_dropout (Union[float, int], opsional, default 0.1) — Rasio dropout untuk probabilitas perhatian.
  • activation_dropout (Union[float, int], opsional, defaultnya 0.0) — Rasio dropout untuk aktivasi di dalam lapisan fully connected.
  • scale_embedding (bool, opsional, default True) — Apakah akan menskalakan embedding dengan membaginya oleh sqrt(d_model).
  • encoder_layers (int, opsional, default 24) — Jumlah lapisan tersembunyi pada encoder Transformer. Akan menggunakan nilai yang sama dengan num_layers jika tidak diatur.
  • encoder_ffn_dim (int, opsional, default 8192) — Dimensi lapisan “intermediate” (sering disebut feed-forward) di encoder.
  • encoder_attention_heads (int, opsional, default 16) — Jumlah kepala perhatian untuk setiap lapisan perhatian dalam encoder Transformer.
  • decoder_layers (int, opsional, default 24) — Jumlah lapisan tersembunyi dalam decoder Transformer. Akan menggunakan nilai yang sama dengan num_layers jika tidak diatur.
  • decoder_ffn_dim (int, opsional, default 8192) — Dimensi dari lapisan “intermediate” (sering disebut feed-forward) di decoder.
  • decoder_attention_heads (int, opsional, default 16) — Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer.
  • decoder_start_token_id (int, opsional, default 3) — Jika model encoder-decoder memulai decoding dengan token yang berbeda dari bos, 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, default 0) — ID token yang digunakan untuk padding dalam kosakata.
  • bos_token_id (int, opsional, default 2) — ID token yang digunakan untuk awal-stream dalam kosakata.
  • eos_token_id (Union[int, list[int]], opsional, default 3) — 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 (str atau function, 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, default True) — 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 jika add_adapter is True.
  • adaptor_stride (int, opsional, default 8) — Stride dari lapisan konvolusional dalam jaringan adaptor. Hanya relevan jika add_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 jika add_adapter is True.
  • position_embeddings_type (str, opsional, default "relative") — Dapat ditentukan sebagai relative atau rotary untuk position embedding relatif atau rotary, masing-masing. Jika dibiarkan None, 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, default 16000) — 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] atau list[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] atau list[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] atau list[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]] atau list[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 oleh inputs_ids yang 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 dari t2u_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, default True) — Apakah akan mengikat bobot embedding sesuai dengan pemetaan tied_weights_keys model.

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

SeamlessM4TTokenizer

kelas transformers.SeamlessM4TTokenizer

< >

( 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 (list atau dict, opsional) — Daftar tuple (token, skor) atau dict yang memetakan token ke indeks. Jika tidak disediakan, menggunakan vocab default.
  • merges (str atau list, 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 str atau tokenizers.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__

< >

( 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 mengatur is_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 mengatur is_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 mengatur is_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 mengatur is_split_into_words=True (untuk menghilangkan ambiguitas dengan batch urutan).
  • padding (bool, str atau PaddingStrategy, opsional, defaultnya False) — Pilih strategi untuk melakukan padding pada urutan yang dikembalikan (sesuai sisi padding dan indeks padding model) di antara:
    • True atau '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 argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan.
    • False atau 'do_not_pad' (default): Tidak ada padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda).
  • pad_to_multiple_of (int, opsional, defaultnya None) — 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_lang terakhir 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_lang terakhir 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

< >

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

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

SeamlessM4TFeatureExtractor

kelas transformers.SeamlessM4TFeatureExtractor

< >

( 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__

< >

( 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. Jika raw_speech adalah np.ndarray satu dimensi, torch.Tensor atau list[float], maka raw_speech dianggap sebagai suara single-channel, single-sample. Dalam semua kasus lainnya, dimensi pertama dari raw_speech, baik dari np.ndarray, torch.Tensor atau list[...], 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, str atau PaddingStrategy, opsional, defaultnya True) — Pilih strategi untuk melakukan padding pada urutan yang dikembalikan (sesuai sisi padding dan indeks padding model) di antara:
    • True atau '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 argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan.
    • False atau '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.

    Apa itu attention mask?

    Untuk model SeamlessM4T, attention_mask harus selalu diteruskan untuk inferensi batched, untuk menghindari bug yang halus.

  • return_tensors (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor alih-alih daftar integer Python. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek Numpy np.ndarray.
  • sampling_rate (int, opsional) — Laju sampling di mana input raw_speech disampelkan. Sangat disarankan untuk meneruskan sampling_rate pada panggilan forward untuk mencegah kesalahan yang tidak terdeteksi.
  • do_normalize_per_mel_bins (bool, opsional, default True) — 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

< >

( feature_extractortokenizer )

Parameter

  • feature_extractor (SeamlessM4TFeatureExtractor) — Feature extractor adalah input yang wajib.
  • tokenizer (SeamlessM4TTokenizer) — Tokenizer adalah input yang wajib.

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__

< >

( 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, atur is_split_into_words=True untuk 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 (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor dari framework tertentu. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek NumPy np.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

BatchEncoding dengan bidang berikut:

  • input_ids — Daftar id token yang akan diberikan ke model. Dikembalikan ketika text bukan None.
  • attention_mask — Daftar indeks yang menentukan token mana yang harus diperhatikan oleh model (ketika return_attention_mask=True atau jika “attention_mask” ada di self.model_input_names dan jika text bukan None).
  • input_features — Fitur input audio yang akan diberikan ke model. Dikembalikan ketika audios bukan None.

SeamlessM4TCodeHifiGan

kelas transformers.SeamlessM4TCodeHifiGan

< >

( 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

< >

( input_ids: LongTensorspkr_id: Tensorlang_id: Tensor**kwargs )

Parameter

  • input_ids (torch.LongTensor dengan 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 dari config.vocoder_num_spkrs.
  • tgt_lang (str, opsional) — ID bahasa yang akan digunakan sebagai bahasa target untuk penerjemahan.

SeamlessM4THifiGan

kelas transformers.SeamlessM4THifiGan

< >

( config: SeamlessM4TConfig )

forward

< >

( 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 bahwa model_in_dim adalah jumlah dari config.unit_embed_dim, config.lang_embed_dim, dan config.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

< >

( 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

< >

( 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.LongTensor dengan 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.

    Apa itu input ID?

  • attention_mask (torch.Tensor dengan 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.

    Apa itu attention mask?

  • decoder_input_ids (torch.LongTensor dengan 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.

    Apa itu ID input decoder?

  • decoder_attention_mask (torch.LongTensor dengan 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_state dengan 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 dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada past_key_values yang diteruskan, DynamicCache akan diinisialisasi secara default.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna diharapkan hanya memasukkan input_ids yang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk (batch_size, unprocessed_length) alih-alih semua input_ids dengan bentuk (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.
  • decoder_inputs_embeds (torch.Tensor dengan bentuk (batch_size, target_sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan decoder_input_ids Anda dapat memilih untuk langsung meneruskan representasi tertanam. Jika past_key_values digunakan, secara opsional hanya decoder_inputs_embeds yang perlu dimasukkan (lihat past_key_values). Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversi decoder_input_ids indeks menjadi vektor terkait daripada matriks pencarian embedding internal model.

    Jika decoder_input_ids dan decoder_inputs_embeds keduanya tidak disetel, decoder_inputs_embeds mengambil nilai dari inputs_embeds.

  • use_cache (bool, opsional) — Jika diset ke True, state kunci-nilai past_key_values akan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihat past_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 Module setelahnya 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.Tensor dengan bentuk (batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir dari decoder model.

    Jika past_key_values digunakan, hanya hidden-state terakhir dari sekuens dengan bentuk (batch_size, 1, hidden_size) yang dioutput.

  • past_key_values (EncoderDecoderCache, opsional, dikembalikan ketika use_cache=True diteruskan atau ketika config.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 saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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.Tensor dengan 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 ketika output_hidden_states=True dilewatkan atau ketika config.output_hidden_states=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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

< >

( 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

< >

( 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.LongTensor dengan 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.

    Apa itu input ID?

  • attention_mask (torch.Tensor dengan 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.

    Apa itu attention mask?

  • decoder_input_ids (torch.LongTensor dengan 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.

    Apa itu ID input decoder?

    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 penerjemahan dan ringkasan, decoder_input_ids harus disediakan. Jika tidak ada decoder_input_ids yang disediakan, model akan membuat tensor ini dengan menggeser input_ids ke kanan untuk pra-pelatihan denoising sesuai dengan makalah tersebut.

  • decoder_attention_mask (torch.LongTensor dengan bentuk (batch_size, target_sequence_length), opsional) — Perilaku default: menghasilkan tensor yang mengabaikan token pad di decoder_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_mask dan 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_state dengan 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 dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada past_key_values yang diteruskan, DynamicCache akan diinisialisasi secara default.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna diharapkan hanya memasukkan input_ids yang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk (batch_size, unprocessed_length) alih-alih semua input_ids dengan bentuk (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor dengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids Anda dapat memilih untuk langsung meneruskan representasi tertanam. Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversi input_ids menjadi vektor terkait daripada matriks pencarian embedding internal model.

    labels (torch.LongTensor dengan 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 docstring input_ids). Token dengan indeks yang disetel ke -100 diabaikan (disediakan masker), dan kerugian hanya dihitung untuk token dengan label dalam [0, ..., config.vocab_size]

  • decoder_inputs_embeds (torch.Tensor dengan bentuk (batch_size, target_sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan decoder_input_ids Anda dapat memilih untuk langsung meneruskan representasi tertanam. Jika past_key_values digunakan, secara opsional hanya decoder_inputs_embeds yang perlu dimasukkan (lihat past_key_values). Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversi decoder_input_ids indeks menjadi vektor terkait daripada matriks pencarian embedding internal model.

    Jika decoder_input_ids dan decoder_inputs_embeds keduanya tidak disetel, decoder_inputs_embeds mengambil nilai dari inputs_embeds.

  • labels (torch.LongTensor dengan 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 docstring input_ids). Token dengan indeks yang disetel ke -100 diabaikan (disamarkan), kerugian hanya dihitung untuk token dengan label dalam [0, ..., config.vocab_size].
  • use_cache (bool, opsional) — Jika diset ke True, state kunci-nilai past_key_values akan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihat past_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 Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • loss (torch.Tensor dengan bentuk (1,), opsional, dikembalikan saat labels disediakan) — Loss pemodelan bahasa.

  • logits (torch.Tensor dengan 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 ketika use_cache=True diteruskan atau ketika config.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 saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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.Tensor dengan 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 ketika output_hidden_states=True dilewatkan atau ketika config.output_hidden_states=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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.

Update on GitHub