Transformers documentation
CLVP
Model ini dipublikasikan di HF papers pada 2023-05-12 dan disumbangkan ke Hugging Face Transformers pada 2023-11-10.
CLVP
Ikhtisar
Model CLVP (Contrastive Language-Voice Pretrained Transformer) diusulkan dalam Better speech synthesis through scaling oleh James Betker.
Abstrak dari makalah tersebut adalah sebagai berikut:
Beberapa tahun terakhir, bidang generasi gambar telah mengalami revolusi berkat penerapan transformer autoregresif dan DDPM. Pendekatan-pendekatan ini memodelkan proses generasi gambar sebagai proses probabilistik bertahap dan memanfaatkan sejumlah besar komputasi serta data untuk mempelajari distribusi gambar. Metodologi peningkatan kinerja ini tidak harus dibatasi hanya pada gambar. Kertas kerja ini menjelaskan cara menerapkan kemajuan di domain generasi gambar ke dalam sintesis suara. Hasilnya adalah TorToise - sistem text-to-speech multi-suara yang ekspresif.
Model ini disumbangkan oleh Susnato Dhar. Kode aslinya dapat ditemukan di sini.
Tips penggunaan
- CLVP merupakan bagian integral dari model Tortoise TTS.
- CLVP dapat digunakan untuk membandingkan kandidat ucapan yang dihasilkan dengan teks yang diberikan, dan token ucapan terbaik diteruskan ke model difusi.
- Penggunaan metode
ClvpModelForConditionalGeneration.generate()sangat disarankan untuk penggunaan tortoise. - Perhatikan bahwa model CLVP mengharapkan audio yang disampel pada 22,05 kHz, berbeda dengan model audio lainnya yang mengharapkan 16 kHz.
Penjelasan Singkat
- ClvpTokenizer melakukan tokenisasi pada input teks, dan ClvpFeatureExtractor mengekstrak log mel-spectrogram dari audio yang diinginkan.
ClvpConditioningEncodermengambil token teks dan representasi audio tersebut, lalu mengubahnya menjadi embedding yang dikondisikan oleh teks dan audio.- ClvpForCausalLM menggunakan embedding tersebut untuk menghasilkan beberapa kandidat ucapan.
- Setiap kandidat ucapan diteruskan melalui encoder ucapan (ClvpEncoder) yang mengubahnya menjadi representasi vektor, dan encoder teks (ClvpEncoder) mengubah token teks ke dalam ruang laten yang sama.
- Pada akhirnya, kita membandingkan setiap vektor ucapan dengan vektor teks untuk melihat vektor ucapan mana yang paling mirip dengan vektor teks.
ClvpModelForConditionalGeneration.generate()memadatkan seluruh logika yang dijelaskan di atas ke dalam satu metode.
Contoh :
import datasets
from transformers import ClvpModelForConditionalGeneration, ClvpProcessor
# Define the Text and Load the Audio (We are taking an audio example from HuggingFace Hub using `datasets` library).
text = "This is an example text."
ds = datasets.load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", datasets.Audio(sampling_rate=22050))
sample = ds[0]["audio"]
# Define processor and model.
processor = ClvpProcessor.from_pretrained("susnato/clvp_dev")
model = ClvpModelForConditionalGeneration.from_pretrained("susnato/clvp_dev", device_map="auto")
# Generate processor output and model output.
processor_output = processor(raw_speech=sample["array"], sampling_rate=sample["sampling_rate"], text=text, return_tensors="pt").to(model.device)
generated_output = model.generate(**processor_output)ClvpConfig
kelas transformers.ClvpConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: 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 = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonespeech_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonedecoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneprojection_dim: int = 768logit_scale_init_value: float = 2.6592initializer_factor: float = 1.0 )
Parameter
- text_config (
Union[dict, ~configuration_utils.PreTrainedConfig], opsional) — Objek config atau dictionary dari text backbone. - speech_config (
dict, opsional) — Kamus opsi konfigurasi yang digunakan untuk menginisialisasi pengkode suara CLVP. - decoder_config (
dict, opsional) — Kamus opsi konfigurasi yang digunakan untuk menginisialisasi ClvpDecoderConfig. - projection_dim (
int, opsional, defaultnya768) — Dimensi dari lapisan proyeksi teks dan visi. - logit_scale_init_value (
float, opsional, defaultnya2.6592) — Nilai awal dari parameter logit_scale. - initializer_factor (
float, opsional, default1.0) — Faktor untuk menginisialisasi semua matriks bobot (sebaiknya dipertahankan pada 1, digunakan secara internal untuk pengujian inisialisasi).
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari ClvpModelForConditionalGeneration. Kelas ini digunakan untuk membuat instans model Clvp berdasarkan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari susnato/clvp_dev
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Contoh:
>>> from transformers import ClvpConfig, ClvpModelForConditionalGeneration
>>> # Initializing a ClvpConfig with susnato/clvp_dev style configuration
>>> configuration = ClvpConfig()
>>> # Initializing a ClvpModelForConditionalGeneration (with random weights) from the susnato/clvp_dev style configuration
>>> model = ClvpModelForConditionalGeneration(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config
>>> # We can also initialize a CLVPConfig from a CLVPTextConfig, CLVPSpeechConfig and a CLVPAutoRegressiveConfig
>>> from transformers import ClvpEncoderConfig, ClvpDecoderConfig
>>> # Initializing a CLVP text, CLVP speech and CLVP decoder configuration
>>> config_text = ClvpEncoderConfig()
>>> config_speech = ClvpEncoderConfig()
>>> decoder_config = ClvpDecoderConfig()
>>> config = ClvpConfig(config_text, config_speech, decoder_config)ClvpEncoderConfig
kelas transformers.ClvpEncoderConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: 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 = Nonevocab_size: int = 256hidden_size: int = 768intermediate_size: int = 1536projection_dim: int = 768num_hidden_layers: int = 20num_attention_heads: int = 12hidden_act: str = 'gelu'layer_norm_eps: float = 1e-05attention_dropout: float | int = 0.1dropout: float | int = 0.1use_rotary_embedding: bool = Trueuse_attention_bias: bool = Falsesummary_type: str = 'mean'initializer_factor: float = 1.0bos_token_id: int | None = 255eos_token_id: int | list[int] | None = 0pad_token_id: int | None = None )
Parameter
- vocab_size (
int, opsional, default256) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan olehinput_ids. - hidden_size (
int, opsional, default768) — Dimensi dari representasi tersembunyi. - intermediate_size (
int, opsional, default1536) — Dimensi representasi MLP. - projection_dim (
int, opsional, defaultnya768) — Dimensi dari lapisan proyeksi teks dan visi. - num_hidden_layers (
int, opsional, default20) — Jumlah lapisan tersembunyi dalam decoder Transformer. - num_attention_heads (
int, opsional, default12) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer. - hidden_act (
str, opsional, defaultnyagelu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - layer_norm_eps (
float, opsional, defaultnya1e-05) — Epsilon yang digunakan oleh lapisan normalisasi lapisan. - attention_dropout (
Union[float, int], opsional, default0.1) — Rasio dropout untuk probabilitas perhatian. - dropout (
Union[float, int], opsional, default0.1) — Rasio untuk semua lapisan dropout. - use_rotary_embedding (
bool, opsional, defaultnyaTrue) — Apakah akan menggunakan rotary_embedding atau tidak. - use_attention_bias (
bool, opsional, defaultFalse) — Apakah akan menggunakan bias pada lapisan Query, Key, dan Value selama self attention. - summary_type (
str, opsional, defaultnya"mean") — Strategi yang digunakan untuk mendapatkan pooler_output dari last_hidden_state."last","first","mean"dan"cls_index"didukung. - initializer_factor (
float, opsional, default1.0) — Faktor untuk menginisialisasi semua matriks bobot (sebaiknya dipertahankan pada 1, digunakan secara internal untuk pengujian inisialisasi). - bos_token_id (
int, opsional, default255) — ID token yang digunakan untuk awal-stream dalam kosakata. - eos_token_id (
Union[int, list[int]], opsional, default0) — ID token yang digunakan untuk end-of-stream dalam kosakata. - pad_token_id (
int, opsional) — ID token yang digunakan untuk padding dalam kosakata.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari ClvpModelForConditionalGeneration. Kelas ini digunakan untuk membuat instans model Clvp berdasarkan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari susnato/clvp_dev
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Contoh:
>>> from transformers import ClvpEncoderConfig, ClvpEncoder
>>> # Initializing a ClvpEncoderConfig with susnato/clvp_dev style configuration
>>> encoder_configuration = ClvpEncoderConfig()
>>> # Initializing a ClvpEncoder (with random weights) from the susnato/clvp_dev style configuration
>>> model = ClvpEncoder(encoder_configuration)
>>> # Accessing the model configuration
>>> configuration = model.configClvpDecoderConfig
kelas transformers.ClvpDecoderConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: 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 = Nonevocab_size: int = 8194max_position_embeddings: int = 608max_text_tokens: int = 404hidden_size: int = 1024num_hidden_layers: int = 30num_attention_heads: int = 16n_inner: int | None = Nonenum_mel_attn_blocks: int = 6activation_function: str = 'gelu_new'resid_pdrop: float | int = 0.1embd_pdrop: float | int = 0.1attention_dropout: float | int = 0.1layer_norm_epsilon: float = 1e-05initializer_range: float = 0.02summary_type: str = 'cls_index'summary_use_proj: bool = Truesummary_activation: str | None = Nonesummary_proj_to_labels: bool = Truesummary_first_dropout: float | int = 0.1use_cache: bool = Truebos_token_id: int | None = 8192eos_token_id: int | list[int] | None = 8193pad_token_id: int | None = Nonefeature_size: int = 80use_attention_bias: bool = Trueinitializer_factor: float = 1.0decoder_fixing_codes: list[int] | tuple[int, ...] = (83, 45, 45, 248)add_cross_attention: bool = False )
Parameter
- vocab_size (
int, opsional, default8194) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan olehinput_ids. - max_position_embeddings (
int, opsional, default608) — Panjang maksimum urutan yang mungkin digunakan dengan model ini. - max_text_tokens (
int, opsional, default 404) — Panjang maksimum sekuens token teks yang mungkin digunakan dengan model ini. Mirip dengann_positionsdiGPT2Config. - hidden_size (
int, opsional, default1024) — Dimensi dari representasi tersembunyi. - num_hidden_layers (
int, opsional, default30) — Jumlah lapisan tersembunyi dalam decoder Transformer. - num_attention_heads (
int, opsional, default16) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer. - n_inner (
int, opsional) — Dimensi dari lapisan feed-forward internal.Noneakan menyetelnya menjadi 4 kalihidden_size. - num_mel_attn_blocks (
int, opsional, default 6) — Menunjukkan jumlah lapisan self attention diClvpConditioningEncoder. - activation_function (
str, opsional, defaultnyagelu_new) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - resid_pdrop (
Union[float, int], opsional, default0.1) — Probabilitas dropout untuk semua lapisan fully connected di embeddings, encoder, dan pooler. - embd_pdrop (
Union[float, int], opsional, default0.1) — Rasio dropout untuk embedding. - attention_dropout (
Union[float, int], opsional, default0.1) — Rasio dropout untuk probabilitas perhatian. - layer_norm_epsilon (
float, opsional, defaultnya1e-05) — Epsilon yang digunakan oleh lapisan normalisasi lapisan. - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - summary_type (
string, opsional, defaultnya"cls_index") — Argumen yang digunakan saat melakukan ringkasan urutan. Harus salah satu dari opsi berikut:"last": Ambil hidden state token terakhir (seperti XLNet)."first": Ambil hidden state token pertama (seperti BERT)."mean": Ambil rata-rata dari semua hidden states token."cls_index": Berikan Tensor posisi token klasifikasi (seperti GPT/GPT-2)."attn": Belum diimplementasikan saat ini, gunakan multi-head attention.
- summary_use_proj (
bool, opsional, defaultnyaTrue) — Apakah akan menambahkan proyeksi setelah ekstraksi vektor. - summary_activation (
str, opsional) — Lewati"tanh"untuk aktivasi tanh pada output, nilai lain akan menghasilkan tanpa aktivasi. - summary_proj_to_labels (
bool, opsional, defaultTrue) — Apakah output proyeksi harus memilikiconfig.num_labelsatauconfig.hidden_sizekelas. - summary_first_dropout (
float, opsional, default 0.1) — Rasio dropout yang digunakan setelah proyeksi dan aktivasi. - use_cache (
bool, opsional, defaultnyaTrue) — Apakah model harus mengembalikan perhatian kunci/nilai terakhir (tidak digunakan oleh semua model). Hanya relevan jikaconfig.is_decoder=Trueatau ketika model adalah model generatif yang hanya decoder. - bos_token_id (
int, opsional, default8192) — ID token yang digunakan untuk awal-stream dalam kosakata. - eos_token_id (
Union[int, list[int]], opsional, default8193) — ID token yang digunakan untuk end-of-stream dalam kosakata. - pad_token_id (
int, opsional) — ID token yang digunakan untuk padding dalam kosakata. - feature_size (
int, opsional, default 80) — Dimensi fitur dari fitur mel yang diekstrak. Nilai ini digunakan dalamClvpConditioningEncoder. - use_attention_bias (
bool, opsional, defaultnyaTrue) — Apakah akan menggunakan bias pada lapisan Query, Key, dan Value selama self attention. - initializer_factor (
float, opsional, default1.0) — Faktor untuk menginisialisasi semua matriks bobot (sebaiknya dipertahankan pada 1, digunakan secara internal untuk pengujian inisialisasi). - decoder_fixing_codes (
list, opsional, default[83, 45, 45, 248]) — Nilai-nilai ini digunakan dalam metodefix_speech_decoder_outputuntuk memperbaiki output yang dihasilkan decoder. - add_cross_attention (
bool, opsional, defaultFalse) — Apakah lapisan cross-attention harus ditambahkan ke model.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari ClvpModelForConditionalGeneration. Kelas ini digunakan untuk membuat instans model Clvp berdasarkan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari susnato/clvp_dev
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Contoh:
>>> from transformers import ClvpDecoderConfig, ClvpDecoder
>>> # Initializing a ClvpDecoderConfig with susnato/clvp_dev style configuration
>>> decoder_configuration = ClvpDecoderConfig()
>>> # Initializing a ClvpDecoder (with random weights) from the susnato/clvp_dev style configuration
>>> model = ClvpDecoder(decoder_configuration)
>>> # Accessing the model configuration
>>> configuration = model.configClvpTokenizer
kelas transformers.ClvpTokenizer
< source >( vocab_filemerges_fileerrors = 'replace'unk_token = '[UNK]'bos_token = '<|endoftext|>'eos_token = '[STOP]'pad_token = '[STOP]'add_prefix_space = False**kwargs )
Parameter
- vocab_file (
str) — Path ke file kosakata. - merges_file (
str) — Path ke file merges. - errors (
str, opsional, defaultnya"replace") — Paradigma yang diikuti saat mendekode byte menjadi UTF-8. Lihat bytes.decode untuk informasi lebih lanjut. - 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. - bos_token (
str, opsional, default"<|endoftext|>") — Token awal urutan. - eos_token (
str, opsional, default"[STOP]") — Token akhir urutan. - pad_token (
str, opsional, default"[STOP]") — Token pad dari urutan. - add_prefix_space (
bool, opsional, defaultFalse) — Apakah akan menambahkan spasi awal ke input. Hal ini memungkinkan kata pembuka diperlakukan sama seperti kata lainnya. (Tokenizer CLVP mendeteksi awal kata berdasarkan spasi yang mendahuluinya).
Konstruksi tokenizer CLVP. Berbasis byte-level Byte-Pair-Encoding.
Tokenizer ini telah dilatih untuk memperlakukan spasi sebagai bagian dari token (sedikit mirip dengan sentencepiece) sehingga sebuah kata akan
akan dikodekan dengan cara yang berbeda tergantung apakah berada di awal kalimat (tanpa spasi) atau tidak:
>>> from transformers import ClvpTokenizer
>>> tokenizer = ClvpTokenizer.from_pretrained("susnato/clvp_dev")
>>> tokenizer("Hello world")["input_ids"]
[62, 84, 28, 2, 179, 79]
>>> tokenizer(" Hello world")["input_ids"]
[2, 62, 84, 28, 2, 179, 79]Anda dapat menghindari perilaku tersebut dengan meneruskan add_prefix_space=True saat menginstansiasi tokenizer ini atau saat memanggilnya pada beberapa teks, tetapi karena model tidak dipretrain dengan cara ini, hal tersebut mungkin menyebabkan penurunan kinerja.
Saat digunakan dengan
is_split_into_words=True, tokenizer ini akan menambahkan spasi sebelum setiap kata (termasuk kata pertama).
Tokenizer ini mewarisi dari PreTrainedTokenizer yang berisi sebagian besar metode utama. Pengguna harus merujuk ke superclass ini untuk informasi lebih lanjut mengenai metode-metode tersebut.
save_vocabulary
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]
Implementasi default untuk pola penyimpanan kosakata umum. Menyimpan self.encoder/self.vocab sebagai JSON, opsional dengan self.bpe_ranks sebagai merges. Mengembalikan tuple kosong jika tidak ada kosakata.
Override metode ini jika tokenizer Anda memerlukan logika penyimpanan khusus (misalnya, model SentencePiece, beberapa file kosakata, atau format file khusus).
ClvpFeatureExtractor
kelas transformers.ClvpFeatureExtractor
< source >( feature_size = 80sampling_rate = 22050default_audio_length = 6hop_length = 256chunk_length = 30n_fft = 1024padding_value = 0.0mel_norms = Nonereturn_attention_mask = False**kwargs )
Parameter
- feature_size (
int, opsional, default 80) — Dimensi fitur dari fitur yang diekstrak. - sampling_rate (
int, opsional, default 22050) — Laju sampling di mana file audio harus didigitalisasi, dinyatakan dalam hertz (Hz). - default_audio_length (
int, opsional, defaultnya 6) — Panjang default audio mentah dalam detik. Jikamax_lengthtidak diatur selama__call__, maka secara otomatis akan diatur ke default_audio_length *self.sampling_rate. - hop_length (
int, opsional, default 256) — Panjang jendela yang tumpang tindih untuk STFT yang digunakan untuk memperoleh koefisien Frekuensi Mel. - chunk_length (
int, opsional, default 30) — Jumlah maksimum chunk berisisampling_ratesampel yang digunakan untuk memangkas dan mengisi (padding) urutan audio yang lebih panjang atau lebih pendek. - n_fft (
int, opsional, default 1024) — Ukuran transformasi Fourier. - padding_value (
float, opsional, default 0.0) — Nilai padding yang digunakan untuk mengisi audio. Seharusnya sesuai dengan bagian hening. - mel_norms (
listdengan panjangfeature_size, opsional) — Jikamel_normsdisediakan, maka nilai tersebut akan digunakan untuk menormalisasi spektrogram log-mel di sepanjang setiap filter mel. - return_attention_mask (
bool, opsional, defaultnyaFalse) — Apakah akan mengembalikan attention mask. Jika dibiarkan pada nilai default, attention mask akan dikembalikan.
Membangun ekstraktor fitur CLVP.
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 log-mel-spectrogram dari ucapan mentah menggunakan implementasi numpy khusus dari Short Time Fourier Transform yang seharusnya sesuai dengan ekuivalen torch.stft dari pytorch.
__call__
< source >( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]sampling_rate: int | None = Nonetruncation: bool = Truepad_to_multiple_of: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_attention_mask: bool | None = Truepadding: str | None = 'max_length'max_length: int | None = None**kwargs )
Parameter
- raw_speech (
np.ndarray,list[float],list[np.ndarray],list[list[float]]) — Sequens atau batch dari sequens yang akan di-pad. Setiap sequens dapat berupa array numpy, daftar nilai float, daftar array numpy, atau daftar dari daftar nilai float. Harus berupa audio mono channel, bukan stereo, yaitu satu float per timestep. - sampling_rate (
int, opsional) — Laju sampling di mana inputraw_speechdisampelkan. Sangat disarankan untuk meneruskansampling_ratepada panggilan forward untuk mencegah kesalahan yang tidak terdeteksi dan memungkinkan pipeline pengenalan ucapan otomatis. - truncation (
bool, opsional, defaultTrue) — Mengaktifkan pemotongan untuk memotong urutan input yang lebih panjang dari max_length menjadi max_length. - pad_to_multiple_of (
int, opsional) — Jika diset, akan melakukan padding pada urutan 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. - return_attention_mask (
bool, opsional, defaultnyaTrue) — Apakah akan mengembalikan attention mask. Jika dibiarkan pada nilai default, attention mask akan dikembalikan. - return_tensors (
stratau TensorType, opsional) — Jika diset, akan mengembalikan tensor alih-alih daftar integer Python. Nilai yang dapat diterima adalah:'pt': Mengembalikan objek PyTorchtorch.Tensor.'np': Mengembalikan objek Numpynp.ndarray.
- padding_value (
float, opsional, default 0.0) — Nilai yang digunakan untuk mengisi nilai / vektor padding. - max_length (
int, opsional) — Panjang maksimum input dari input.
ClvpFeatureExtractor digunakan untuk mengekstrak berbagai properti spesifik suara, seperti nada dan tonal suara, kecepatan bicara, serta cacat bicara seperti lisu atau gagap, dari sampel suara atau raw_speech.
Pertama, suara di-*pad* atau dipangkas sedemikian rupa sehingga menjadi gelombang dengan panjang self.default_audio_length detik, kemudian spektrogram log-mel diekstrak darinya.
ClvpProcessor
kelas transformers.ClvpProcessor
< source >( feature_extractortokenizer )
Membangun ClvpProcessor yang membungkus feature extractor dan tokenizer menjadi satu processor.
ClvpProcessor menyediakan semua fungsionalitas dari ClvpFeatureExtractor dan ClvpTokenizer. Lihat ~ClvpFeatureExtractor dan ~ClvpTokenizer untuk informasi lebih lanjut.
__call__
< source >( *argstext = Noneaudio = None**kwargs )
Parameter
- text (`
) -- The sequence or batch of sequences to be encoded. Each sequence can be a string or a list of strings (pretokenized string). If you pass a pretokenized input, setis_split_into_words=True` to avoid ambiguity with batched inputs. - audio (“) — Audio atau batch audio yang akan disiapkan. Setiap audio dapat berupa array NumPy atau tensor PyTorch. Jika berupa array NumPy/tensor PyTorch, setiap audio harus memiliki bentuk (C, T), di mana C adalah jumlah channel, dan T adalah panjang sampel dari audio tersebut.
- return_tensors (
stratau TensorType, opsional) — Jika diset, akan mengembalikan tensor dari framework tertentu. Nilai yang dapat diterima adalah:'pt': Mengembalikan objek PyTorchtorch.Tensor.'np': Mengembalikan objek NumPynp.ndarray.
Metode ini meneruskan semua argumennya ke decode() dari PreTrainedTokenizer. Silakan lihat docstring dari metode ini untuk informasi lebih lanjut.
Metode ini meneruskan semua argumennya ke batch_decode() dari PreTrainedTokenizer. Silakan merujuk ke docstring metode ini untuk informasi lebih lanjut.
ClvpModelForConditionalGeneration
kelas transformers.ClvpModelForConditionalGeneration
< source >( config: ClvpConfig )
Parameter
- config (ClvpConfig) — 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 CLVP komposit dengan model encoder teks, encoder ucapan, dan decoder ucapan.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.FloatTensor] = Noneconditioning_encoder_inputs_embeds: typing.Optional[torch.FloatTensor] = Nonetext_encoder_inputs_embeds: typing.Optional[torch.FloatTensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonereturn_loss: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ClvpOutput or tuple(torch.FloatTensor)
Parameter
- input_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- input_features (
torch.FloatTensordengan bentuk(batch_size, sequence_length, feature_dim), opsional) — Tensor yang sesuai dengan fitur audio input. Fitur audio dapat diperoleh menggunakan ClvpFeatureExtractor. Lihat ClvpFeatureExtractor.call() untuk detailnya (ClvpProcessor menggunakan ClvpFeatureExtractor untuk memproses audio). - conditioning_encoder_inputs_embeds (
torch.FloatTensor, opsional) — inputs_embeds untukClvpConditioningEncoder. Dapat digunakan sebagai penggantiinput_ids. - text_encoder_inputs_embeds (
torch.FloatTensor, opsional) — inputs_embeds untuk model text encoder yang diberikan sebagai penggantiinput_ids. - attention_mask (
torch.LongTensordengan 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.
- return_loss (
bool, opsional) — Apakah akan mengembalikan kerugian kontras (contrastive loss).
Mengembalikan
ClvpOutput atau tuple(torch.FloatTensor)
ClvpOutput atau tuple dari
torch.FloatTensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (ClvpConfig) dan input.
Metode forward dari ClvpModelForConditionalGeneration menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
- loss (
torch.FloatTensordengan bentuk(1,), opsional, dikembalikan ketikareturn_lossbernilaiTrue) — Contrastive loss untuk kemiripan suara-teks. - speech_ids (
torch.LongTensor, opsional) — speech_ids (atau kandidat speech) yang dihasilkan oleh modelClvpForCausalLM. - logits_per_speech (
torch.FloatTensordengan bentuk(speech_batch_size, text_batch_size)) — Skor produk titik berskala antaraspeech_embedsdantext_embeds. Ini mewakili skor kemiripan ucapan-teks. - logits_per_text (
torch.FloatTensordengan bentuk(text_batch_size, speech_batch_size)) — Skor hasil perkalian titik berskala antaratext_embedsdanspeech_embeds. Ini mewakili skor kemiripan teks-bicara. - text_embeds (
torch.FloatTensordengan bentuk(batch_size, output_dim) — Embedding teks yang diperoleh dengan menerapkan lapisan proyeksi ke output terpool dari model encoder teks. - speech_embeds (
torch.FloatTensordengan bentuk(batch_size, output_dim) — Embedding ucapan yang diperoleh dengan menerapkan lapisan proyeksi ke output terpool dari model encoder ucapan. - text_model_output (
~modeling_outputs.BaseModelOutputWithPooling, opsional) — Output terpool darilast_hidden_statedari Model encoder teks. - speech_model_output (
~modeling_outputs.BaseModelOutputWithPooling, opsional) — Output terpool darilast_hidden_statedari Model encoder ucapan. - decoder_hidden_states (
torch.FloatTensor, opsional) — Hidden states dari model decoder. - text_encoder_hidden_states (
torch.FloatTensor, opsional) — Hidden states dari model text encoder. - speech_encoder_hidden_states (
torch.FloatTensor, opsional) — Hidden states dari model speech encoder.
Contoh:
>>> import datasets
>>> from transformers import ClvpProcessor, ClvpModelForConditionalGeneration
>>> # Define the Text and Load the Audio (We are taking an audio example from HuggingFace Hub using `datasets` library)
>>> text = "This is an example text."
>>> ds = datasets.load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", datasets.Audio(sampling_rate=22050))
>>> audio = ds.sort("id")["audio"][0]
>>> audio_sample, sr = audio["array"], audio["sampling_rate"]
>>> # Define processor and model
>>> processor = ClvpProcessor.from_pretrained("susnato/clvp_dev")
>>> model = ClvpModelForConditionalGeneration.from_pretrained("susnato/clvp_dev")
>>> # processor outputs and model outputs
>>> processor_output = processor(raw_speech=audio_sample, sampling_rate=sr, text=text, return_tensors="pt")
>>> outputs = model(
... input_ids=processor_output["input_ids"],
... input_features=processor_output["input_features"],
... return_dict=True,
... )generate
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.FloatTensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonegeneration_config: transformers.generation.configuration_utils.GenerationConfig | None = Nonepad_to_max_mel_tokens: int | None = Noneoutput_hidden_states: bool | None = None**kwargs ) → ClvpOutput or tuple
Parameter
- input_ids (
torch.FloatTensordengan bentuk(batch_size, sequence_length), opsional) — Token teks input. Diproses dari ClvpTokenizer. - attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token teks padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- generation_config (
~generation.GenerationConfig, opsional) — Konfigurasi generasi yang akan digunakan sebagai parametrisasi dasar untuk panggilan generasi.**kwargsyang diteruskan ke generate dan cocok dengan atribut darigeneration_configakan menimpanya. Jikageneration_configtidak disediakan, nilai default akan digunakan, yang memiliki prioritas pemuatan sebagai berikut: 1) dari file modelgeneration_config.json, jika ada; 2) dari konfigurasi model. Perhatikan bahwa parameter yang tidak ditentukan akan mewarisi nilai default dari GenerationConfig, yang dokumentasinya harus diperiksa untuk memparametrisasi generasi. - pad_to_max_mel_tokens (
int, opsional) — Menambahkan padding pada speech_ids yang dihasilkan hingga nilai yang ditentukan. Hal ini dilakukan untuk menerapkan logika yang sama dari repo resmi, tautan: https://github.com/neonbjb/tortoise-tts/blob/80f89987a5abda5e2b082618cd74f9c7411141dc/tortoise/api.py#L430 dan untuk memastikan logits-nya sama. Hal ini tidak memengaruhi kualitas generasi, jadi sebaiknya jangan dipertimbangkan untuk digunakan karena kurang efisien. - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari model decoder, text encoder, dan speech encoder.
Mengembalikan
ClvpOutput atau tuple
ClvpOutput (jika return_dict_in_generate=True atau ketika
config.return_dict_in_generate=True) atau sebuah tuple.
Metode generate untuk ClvpModelForConditionalGeneration, metode ini memanggil metode generate dari ClvpForCausalLM dan kemudian menggunakan speech_ids yang dihasilkan tersebut untuk memproses text_embeds dan speech_embeds menggunakan ClvpEncoder.
get_text_features
< source >( input_ids: typing.Optional[torch.LongTensor] = Nonetext_encoder_inputs_embeds: typing.Optional[torch.FloatTensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ClvpEncoderOutput or tuple(torch.FloatTensor)
Parameter
- input_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- text_encoder_inputs_embeds (
torch.FloatTensor, opsional) — inputs_embeds untuk model text encoder yang diberikan sebagai penggantiinput_ids. - attention_mask (
torch.LongTensordengan 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.
Mengembalikan
ClvpEncoderOutput atau tuple(torch.FloatTensor)
ClvpEncoderOutput atau tuple dari
torch.FloatTensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (ClvpConfig) dan input.
Metode ini dapat digunakan untuk mengekstrak text_embeds dari sebuah teks. Embedding teks yang diperoleh dengan menerapkan lapisan proyeksi ke output terpool dari model pengkode teks CLVP.
embeds (
torch.FloatTensordengan bentuk(batch_size, output_dim), opsional, dikembalikan saat model diinisialisasi denganwith_projection=True) — Embeddings yang diperoleh dengan menerapkan lapisan proyeksi ke pooler_output.last_hidden_state (
torch.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size)) — State tersembunyi dari lapisan terakhir model.pooler_output (
torch.FloatTensordengan bentuk(batch_size, hidden_size)) — Output terpool darilast_hidden_state.hidden_states (
tuple[torch.FloatTensor], opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.FloatTensor(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 model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple[torch.FloatTensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.FloatTensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Contoh:
>>> from transformers import ClvpProcessor, ClvpModelForConditionalGeneration
>>> # Define the Text
>>> text = "This is an example text."
>>> # Define processor and model
>>> processor = ClvpProcessor.from_pretrained("susnato/clvp_dev")
>>> model = ClvpModelForConditionalGeneration.from_pretrained("susnato/clvp_dev")
>>> # Generate processor output and text embeds
>>> processor_output = processor(text=text, return_tensors="pt")
>>> text_embeds = model.get_text_features(input_ids=processor_output["input_ids"])get_speech_features
< source >( speech_ids: typing.Optional[torch.LongTensor] = Noneinput_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.FloatTensor] = Noneconditioning_encoder_inputs_embeds: typing.Optional[torch.FloatTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonegeneration_config: transformers.generation.configuration_utils.GenerationConfig | None = None**kwargs ) → torch.FloatTensor of shape (batch_size, output_dim)
Parameter
- speech_ids (
torch.LongTensordengan bentuk(batch_size, num_speech_ids), opsional) — Token Ucapan. Padding akan diabaikan secara default jika Anda menyediakannya. Jika speech_ids disediakan, maka input_ids dan input_features akan diabaikan secara otomatis. - input_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Token teks input. Diproses dari ClvpTokenizer. Jika speech_ids tidak disediakan, maka input_ids dan input_features akan digunakan. - conditioning_encoder_inputs_embeds (
torch.FloatTensor, opsional) — inputs_embeds untukClvpConditioningEncoder. Dapat digunakan sebagai penggantiinput_ids. - attention_mask (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token ucapan padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- generation_config (
GenerationConfig, opsional) — konfigurasi generation untuk mengontrol pembuatan speech_ids jika tidak disediakan.
Mengembalikan
torch.FloatTensor dengan bentuk (batch_size, output_dim)
Embedding ucapan yang diperoleh dengan menerapkan lapisan proyeksi ke output terpool dari CLVP Speech Model.
Metode ini dapat digunakan untuk mengekstrak speech_embeds. Embedding ucapan diperoleh dengan menerapkan model ucapan pada speech_ids. Jika speech_ids tidak ada tetapi input_ids dan input_features diberikan, maka model decoder akan digunakan untuk pertama kali menghasilkan speech_ids dan kemudian menerapkan model ucapan.
Contoh:
>>> import datasets
>>> from transformers import ClvpProcessor, ClvpModelForConditionalGeneration
>>> # Define the Text and Load the Audio (We are taking an audio example from HuggingFace Hub using `datasets` library)
>>> text = "This is an example text."
>>> ds = datasets.load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", datasets.Audio(sampling_rate=22050))
>>> audio = ds.sort("id")["audio"][0]
>>> audio_sample, sr = audio["array"], audio["sampling_rate"]
>>> # Define processor and model
>>> processor = ClvpProcessor.from_pretrained("susnato/clvp_dev")
>>> model = ClvpModelForConditionalGeneration.from_pretrained("susnato/clvp_dev")
>>> # Generate processor output and model output
>>> processor_output = processor(raw_speech=audio_sample, sampling_rate=sr, text=text, return_tensors="pt")
>>> speech_embeds = model.get_speech_features(
... input_ids=processor_output["input_ids"], input_features=processor_output["input_features"]
... )ClvpForCausalLM
kelas transformers.ClvpForCausalLM
< source >( config: ClvpDecoderConfig )
Parameter
- config (ClvpDecoderConfig) — 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 decoder CLVP dengan kepala pemodelan bahasa di atasnya.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutputWithCrossAttentions or tuple(torch.FloatTensor)
Parameter
- input_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- past_key_values (
~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - attention_mask (
torch.FloatTensordengan 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.
- token_type_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari[0, 1]:- 0 sesuai dengan token sentence A,
- 1 sesuai dengan token sentence B.
- position_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang[0, config.n_positions - 1]. - inputs_embeds (
torch.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - labels (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Label untuk pemodelan bahasa. Perhatikan bahwa label digeser di dalam model, yaitu Anda dapat mengaturlabels = input_idsIndeks dipilih dalam[-100, 0, ..., config.vocab_size]Semua label yang diatur ke-100diabaikan (dipertahankan), loss hanya dihitung untuk label dalam[0, ..., config.vocab_size] - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values).
Mengembalikan
CausalLMOutputWithCrossAttentions atau tuple(torch.FloatTensor)
A CausalLMOutputWithCrossAttentions atau tuple dari
torch.FloatTensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (ClvpConfig) dan input.
Metode forward dari ClvpForCausalLM menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.FloatTensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss pemodelan bahasa (untuk prediksi token berikutnya).logits (
torch.FloatTensordengan bentuk(batch_size, sequence_length, config.vocab_size)) — Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).hidden_states (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.FloatTensor(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 model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.FloatTensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
cross_attentions (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.FloatTensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot cross attention setelah softmax attention, digunakan untuk menghitung rata-rata berbobot di kepala cross-attention.
past_key_values (
Cache, opsional, dikembalikan saatuse_cache=Truedilewatkan atau saatconfig.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok attention) yang dapat digunakan (lihat input
past_key_values) untuk mempercepat decoding berurutan.
ClvpModel
kelas transformers.ClvpModel
< source >( config: ClvpDecoderConfig )
Parameter
- config (ClvpDecoderConfig) — 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 Clvp polos yang menghasilkan hidden-states mentah tanpa head spesifik di atasnya.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPastAndCrossAttentions or tuple(torch.FloatTensor)
Parameter
- input_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- attention_mask (
torch.FloatTensordengan 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.
- token_type_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari[0, 1]:- 0 sesuai dengan token sentence A,
- 1 sesuai dengan token sentence B.
- position_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - inputs_embeds (
torch.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values).
Mengembalikan
BaseModelOutputWithPastAndCrossAttentions atau tuple(torch.FloatTensor)
A BaseModelOutputWithPastAndCrossAttentions atau tuple dari
torch.FloatTensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (ClvpConfig) dan input.
Metode forward dari ClvpModel menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
last_hidden_state (
torch.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.Jika
past_key_valuesdigunakan, hanya hidden-state terakhir dari sekuens dengan bentuk(batch_size, 1, hidden_size)yang dioutput.past_key_values (
Cache, opsional, dikembalikan saatuse_cache=Truedilewatkan atau saatconfig.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention, dan secara opsional jika
config.is_encoder_decoder=Truedi blok cross-attention) yang dapat digunakan (lihat inputpast_key_values) untuk mempercepat decoding berurutan.hidden_states (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.FloatTensor(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 model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.FloatTensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
cross_attentions (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_attentions=Truedanconfig.add_cross_attention=Truediteruskan atau saatconfig.output_attentions=True) — Tuple daritorch.FloatTensor(satu untuk setiap lapisan) 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.
ClvpEncoder
kelas transformers.ClvpEncoder
< source >( config: ClvpEncoderConfig )
Encoder Transformer yang terdiri dari config.num_hidden_layers lapisan self attention. Setiap lapisan adalah ClvpEncoderLayer.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ClvpEncoderOutput or tuple(torch.FloatTensor)
Parameter
- input_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- inputs_embeds (
torch.LongTensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - attention_mask (
torch.LongTensordengan 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.
- position_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang[0, config.n_positions - 1].
Mengembalikan
ClvpEncoderOutput atau tuple(torch.FloatTensor)
ClvpEncoderOutput atau tuple dari
torch.FloatTensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (ClvpConfig) dan input.
Metode forward dari ClvpEncoder menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
embeds (
torch.FloatTensordengan bentuk(batch_size, output_dim), opsional, dikembalikan saat model diinisialisasi denganwith_projection=True) — Embeddings yang diperoleh dengan menerapkan lapisan proyeksi ke pooler_output.last_hidden_state (
torch.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size)) — State tersembunyi dari lapisan terakhir model.pooler_output (
torch.FloatTensordengan bentuk(batch_size, hidden_size)) — Output terpool darilast_hidden_state.hidden_states (
tuple[torch.FloatTensor], opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.FloatTensor(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 model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple[torch.FloatTensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.FloatTensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
ClvpDecoder
Decoder Transformer yang terdiri dari config.num_hidden_layers lapisan. Setiap lapisan adalah ClvpDecoderLayer
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPastAndCrossAttentions or tuple(torch.FloatTensor)
Parameter
- input_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- attention_mask (
torch.FloatTensordengan 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.
- token_type_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari[0, 1]:- 0 sesuai dengan token sentence A,
- 1 sesuai dengan token sentence B.
- position_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - inputs_embeds (
torch.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values).
Mengembalikan
BaseModelOutputWithPastAndCrossAttentions atau tuple(torch.FloatTensor)
A BaseModelOutputWithPastAndCrossAttentions atau tuple dari
torch.FloatTensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (ClvpConfig) dan input.
Metode forward dari ClvpDecoder menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
last_hidden_state (
torch.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.Jika
past_key_valuesdigunakan, hanya hidden-state terakhir dari sekuens dengan bentuk(batch_size, 1, hidden_size)yang dioutput.past_key_values (
Cache, opsional, dikembalikan saatuse_cache=Truedilewatkan atau saatconfig.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention, dan secara opsional jika
config.is_encoder_decoder=Truedi blok cross-attention) yang dapat digunakan (lihat inputpast_key_values) untuk mempercepat decoding berurutan.hidden_states (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.FloatTensor(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 model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.FloatTensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
cross_attentions (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_attentions=Truedanconfig.add_cross_attention=Truediteruskan atau saatconfig.output_attentions=True) — Tuple daritorch.FloatTensor(satu untuk setiap lapisan) 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.