Transformers documentation

UniSpeech

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
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 2021-01-19 dan disumbangkan ke Hugging Face Transformers pada 2021-10-26.

UniSpeech

FlashAttention SDPA

Ikhtisar

Model UniSpeech diusulkan dalam UniSpeech: Unified Speech Representation Learning with Labeled and Unlabeled Data oleh Chengyi Wang, Yu Wu, Yao Qian, Kenichi Kumatani, Shujie Liu, Furu Wei, Michael Zeng, Xuedong Huang.

Abstrak dari makalah tersebut adalah sebagai berikut:

Dalam makalah ini, kami mengusulkan pendekatan pra-pelatihan terpadu yang disebut UniSpeech untuk mempelajari representasi ucapan dengan data berlabel dan tanpa label, di mana pembelajaran CTC fonetik berlabel dan pembelajaran mandiri-supervisi kontrastif yang sadar fonetik dilakukan dengan cara pembelajaran multi-tugas. Representasi yang dihasilkan dapat menangkap informasi yang lebih berkorelasi dengan struktur fonetik dan meningkatkan generalisasi lintas bahasa dan domain. Kami mengevaluasi efektivitas UniSpeech untuk pembelajaran representasi lintas bahasa pada korpus CommonVoice publik. Hasil menunjukkan bahwa UniSpeech melampaui pra-pelatihan mandiri-supervisi dan pembelajaran transfer berlabel untuk pengenalan ucapan dengan pengurangan tingkat kesalahan fonem relatif masing-masing hingga 13,4% dan 17,8% (rata-rata di semua bahasa pengujian). Kemampuan transfer UniSpeech juga dibuktikan pada tugas pengenalan ucapan dengan pergeseran domain, yaitu pengurangan tingkat kesalahan kata relatif sebesar 6% dibandingkan pendekatan sebelumnya.

Model ini disumbangkan oleh patrickvonplaten. Kode para penulis dapat ditemukan di sini.

Tips penggunaan

  • UniSpeech adalah model ucapan yang menerima array float yang sesuai dengan gelombang mentah dari sinyal ucapan. Silakan gunakan Wav2Vec2Processor untuk ekstraksi fitur.
  • Model UniSpeech dapat di-fine-tune menggunakan connectionist temporal classification (CTC), sehingga output model harus didekode menggunakan Wav2Vec2CTCTokenizer.

Sumber daya

UniSpeechConfig

kelas transformers.UniSpeechConfig

< >

( 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 = 32hidden_size: int = 768num_hidden_layers: int = 12num_attention_heads: int = 12intermediate_size: int = 3072hidden_act: str = 'gelu'hidden_dropout: float | int = 0.1activation_dropout: float | int = 0.1attention_dropout: float | int = 0.1feat_proj_dropout: float | int = 0.0feat_quantizer_dropout: float | int = 0.0final_dropout: float | int = 0.1layerdrop: float | int = 0.1initializer_range: float = 0.02layer_norm_eps: float = 1e-05feat_extract_norm: str = 'group'feat_extract_activation: str = 'gelu'conv_dim: list[int] | tuple[int, ...] = (512, 512, 512, 512, 512, 512, 512)conv_stride: list[int] | tuple[int, ...] = (5, 2, 2, 2, 2, 2, 2)conv_kernel: list[int] | tuple[int, ...] = (10, 3, 3, 3, 3, 2, 2)conv_bias: bool = Falsenum_conv_pos_embeddings: int = 128num_conv_pos_embedding_groups: int = 16do_stable_layer_norm: bool = Falseapply_spec_augment: bool = Truemask_time_prob: float | int = 0.05mask_time_length: int = 10mask_time_min_masks: int = 2mask_feature_prob: float | int = 0.0mask_feature_length: int = 10mask_feature_min_masks: int = 0num_codevectors_per_group: int = 320num_codevector_groups: int = 2contrastive_logits_temperature: float = 0.1num_negatives: int = 100codevector_dim: int = 256proj_codevector_dim: int = 256diversity_loss_weight: float = 0.1ctc_loss_reduction: str = 'mean'ctc_zero_infinity: bool = Falseuse_weighted_layer_sum: bool = Falseclassifier_proj_size: int = 256num_ctc_classes: int = 80pad_token_id: int | None = 0bos_token_id: int | None = 1eos_token_id: int | list[int] | None = 2replace_prob: float | int = 0.5 )

Parameter

  • vocab_size (int, opsional, default 32) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan oleh input_ids.
  • hidden_size (int, opsional, default 768) — Dimensi dari representasi tersembunyi.
  • num_hidden_layers (int, opsional, default 12) — Jumlah lapisan tersembunyi dalam decoder Transformer.
  • num_attention_heads (int, opsional, default 12) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer.
  • intermediate_size (int, opsional, default 3072) — Dimensi representasi MLP.
  • hidden_act (str, opsional, defaultnya gelu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, "gelu", "relu", "silu", dan sebagainya.
  • hidden_dropout (Union[float, int], opsional, default 0.1) — Probabilitas dropout untuk semua lapisan fully connected di embeddings, encoder, dan pooler.
  • activation_dropout (Union[float, int], opsional, defaultnya 0.1) — Rasio dropout untuk aktivasi di dalam lapisan fully connected.
  • attention_dropout (Union[float, int], opsional, default 0.1) — Rasio dropout untuk probabilitas perhatian.
  • feat_proj_dropout (float, opsional, default 0.0) — Probabilitas dropout untuk output dari encoder fitur.
  • feat_quantizer_dropout (float, opsional, default 0.0) — Probabilitas dropout untuk output dari feature encoder yang digunakan oleh quantizer.
  • final_dropout (float, opsional, default 0.1) — Probabilitas dropout untuk lapisan proyeksi akhir dari UniSpeechForCTC.
  • layerdrop (Union[float, int], opsional, default 0.1) — Probabilitas LayerDrop. Lihat [makalah LayerDrop](lihat https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut.
  • 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.
  • feat_extract_norm (str, opsional, default "group") — Norm yang diterapkan pada lapisan konvolusional 1D di feature encoder. Salah satu dari "group" untuk group normalization hanya pada lapisan konvolusional 1D pertama atau "layer" untuk layer normalization pada semua lapisan konvolusional 1D.
  • feat_extract_activation (str, *optional*, defaults to “gelu”) -- The non-linear activation function (function or string) in the 1D convolutional layers of the feature extractor. If string, “gelu”, “relu”, “selu”and“gelu_new”` are supported.
  • conv_dim (tuple[int] atau list[int], opsional, default (512, 512, 512, 512, 512, 512, 512)) — Tuple dari bilangan bulat yang mendefinisikan jumlah saluran input dan output dari setiap lapisan konvolusional 1D dalam feature encoder. Panjang dari conv_dim mendefinisikan jumlah lapisan konvolusional 1D.
  • conv_stride (tuple[int] atau list[int], opsional, default (5, 2, 2, 2, 2, 2, 2)) — Tuple dari bilangan bulat yang mendefinisikan stride dari setiap lapisan konvolusi 1D dalam feature encoder. Panjang dari conv_stride menentukan jumlah lapisan konvolusi dan harus sesuai dengan panjang dari conv_dim.
  • conv_kernel (tuple[int] atau list[int], opsional, default (10, 3, 3, 3, 3, 2, 2)) — Tuple berisi bilangan bulat yang mendefinisikan ukuran kernel dari setiap lapisan konvolusi 1D dalam feature encoder. Panjang conv_kernel menentukan jumlah lapisan konvolusi dan harus sama dengan panjang conv_dim.
  • conv_bias (bool, opsional, defaultnya False) — Apakah lapisan konvolusional 1D memiliki bias.
  • num_conv_pos_embeddings (int, opsional, default 128) — Jumlah embedding posisi konvolusional. Menentukan ukuran kernel dari lapisan embedding posisi konvolusional 1D.
  • num_conv_pos_embedding_groups (int, opsional, default 16) — Jumlah grup dari lapisan embedding posisional konvolusional 1D.
  • do_stable_layer_norm (bool, opsional, default False) — Apakah akan menerapkan arsitektur layer norm stabil pada encoder Transformer. do_stable_layer_norm is True berarti menerapkan layer norm sebelum lapisan attention, sedangkan do_stable_layer_norm is False berarti menerapkan layer norm setelah lapisan attention.
  • apply_spec_augment (bool, opsional, default True) — Apakah akan menerapkan augmentasi data SpecAugment pada output dari feature encoder. Untuk referensi, lihat SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition.
  • mask_time_prob (float, optional, defaults to 0.05) — Percentage (between 0 and 1) of all feature vectors along the time axis which will be masked. The masking procedure generates ”mask_time_problen(time_axis)/mask_time_length” independent masks over the axis. If reasoning from the probability of each feature vector to be chosen as the start of the vector span to be masked, mask_time_prob should be `prob_vector_startmask_time_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant if apply_spec_augment is True`.
  • mask_time_length (int, opsional, default 10) — Panjang rentang vektor sepanjang sumbu waktu.
  • mask_time_min_masks (int, opsional, default 2) — Jumlah minimum masker dengan panjang mask_feature_length yang dihasilkan sepanjang sumbu waktu, untuk setiap langkah waktu, tanpa memperhatikan mask_feature_prob. Hanya relevan jika ”mask_time_prob*len(time_axis)/mask_time_length < mask_time_min_masks”
  • mask_feature_prob (float, optional, defaults to 0.0) — Percentage (between 0 and 1) of all feature vectors along the feature axis which will be masked. The masking procedure generates ”mask_feature_problen(feature_axis)/mask_time_length” independent masks over the axis. If reasoning from the probability of each feature vector to be chosen as the start of the vector span to be masked, mask_feature_prob should be `prob_vector_startmask_feature_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant if apply_spec_augment is True`.
  • mask_feature_length (int, opsional, default 10) — Panjang rentang vektor di sepanjang sumbu fitur.
  • mask_feature_min_masks (int, opsional, default 0) — Jumlah minimum masker dengan panjang mask_feature_length yang dihasilkan di sepanjang sumbu fitur, setiap langkah waktu, terlepas dari mask_feature_prob. Hanya relevan jika ”mask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks”
  • num_codevectors_per_group (int, opsional, default 320) — Jumlah entri dalam setiap codebook kuantisasi (grup).
  • num_codevector_groups (int, opsional, default 2) — Jumlah grup codevector untuk kuantisasi product codevector.
  • contrastive_logits_temperature (float, opsional, default 0.1) — Suhu kappa dalam kerugian kontras.
  • num_negatives (int, opsional, default 100) — Jumlah sampel negatif untuk kerugian kontras (contrastive loss).
  • codevector_dim (int, opsional, default 256) — Dimensi dari vektor fitur terkuantisasi.
  • proj_codevector_dim (int, opsional, default 256) — Dimensi dari proyeksi akhir untuk fitur kuantisasi maupun fitur transformer.
  • diversity_loss_weight (int, opsional, default 0.1) — Bobot komponen loss keragaman codebook.
  • ctc_loss_reduction (str, opsional, default mean) — Menentukan reduksi yang diterapkan pada output torch.nn.CTCLoss. Hanya relevan saat pelatihan.
  • ctc_zero_infinity (bool, opsional, default False) — Apakah akan menolkan (zero) kerugian tak hingga (infinite losses) dan gradien terkait dari torch.nn.CTCLoss. Kerugian tak hingga terutama terjadi ketika input terlalu pendek untuk diselaraskan dengan target. Hanya relevan saat melatih instance dari UniSpeechForCTC.
  • use_weighted_layer_sum (bool, opsional, default False) — Apakah akan menggunakan rata-rata tertimbang dari output layer dengan bobot yang dipelajari. Hanya relevan saat menggunakan instance dari UniSpeechForSequenceClassification.
  • classifier_proj_size (int, opsional, default 256) — Dimensi proyeksi sebelum token mean-pooling untuk klasifikasi.
  • num_ctc_classes (int, opsional, default 80) — Menentukan jumlah kelas (token fonem dan token blank) untuk loss CTC pada tingkat fonem. Hanya relevan ketika menggunakan instance dari UniSpeechForPreTraining.
  • pad_token_id (int, opsional, default 0) — ID token yang digunakan untuk padding dalam kosakata.
  • bos_token_id (int, opsional, default 1) — ID token yang digunakan untuk awal aliran (beginning-of-stream) dalam kosakata.
  • eos_token_id (Union[int, list[int]], opsional, default 2) — ID token yang digunakan untuk end-of-stream dalam kosakata.
  • replace_prob (float, opsional, default 0.5) — Probabilitas bahwa fitur transformer diganti dengan fitur terkuantisasi untuk pretraining.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari UniSpeechModel. Kelas ini digunakan untuk menginstansiasi model Unispeech berdasarkan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Menginstansiasi konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari microsoft/unispeech-large-1500h-cv

Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.

Contoh:

>>> from transformers import UniSpeechConfig, UniSpeechModel

>>> # Initializing a UniSpeech facebook/unispeech-base-960h style configuration
>>> configuration = UniSpeechConfig()

>>> # Initializing a model (with random weights) from the facebook/unispeech-base-960h style configuration
>>> model = UniSpeechModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

Output khusus UniSpeech

kelas transformers.models.unispeech.modeling_unispeech.UniSpeechForPreTrainingOutput

< >

( loss: typing.Optional[torch.Tensor] = Noneprojected_states: typing.Optional[torch.Tensor] = Noneprojected_quantized_states: typing.Optional[torch.Tensor] = Nonecodevector_perplexity: typing.Optional[torch.Tensor] = Nonehidden_states: tuple[torch.Tensor] | None = Noneattentions: tuple[torch.Tensor] | None = None )

Parameter

  • loss (*optional*, returned when model is in train mode, torch.Tensor of shape (1,)) — Total loss sebagai jumlah dari contrastive loss (L_m) dan diversity loss (L_d) sebagaimana dinyatakan dalam paper resmi.
  • projected_states (torch.Tensor dengan bentuk (batch_size, sequence_length, config.proj_codevector_dim)) — Hidden-states dari model yang diproyeksikan ke config.proj_codevector_dim yang dapat digunakan untuk memprediksi projected quantized states yang ter-mask.
  • projected_quantized_states (torch.Tensor dengan bentuk (batch_size, sequence_length, config.proj_codevector_dim)) — Vektor fitur tereksstraksi yang terkuantisasi dan diproyeksikan ke config.proj_codevector_dim, yang mewakili vektor target positif untuk kerugian kontras (contrastive loss).
  • codevector_perplexity (torch.Tensor dengan bentuk (1,)) — Perplexity dari distribusi codevector, digunakan untuk mengukur keragaman codebook.
  • 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 embeddings, jika model memiliki lapisan embedding, + satu untuk output 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.Tensor], opsional, dikembalikan ketika output_attentions=True dilewatkan atau ketika config.output_attentions=True) — Tuple dari torch.Tensor (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).

Jenis output dari UniSpeechForPreTrainingOutput, dengan hidden states dan attentions yang mungkin ada.

UniSpeechModel

kelas transformers.UniSpeechModel

< >

( config: UniSpeechConfig )

Parameter

  • config (UniSpeechConfig) — 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 Unispeech 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

< >

( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonemask_time_indices: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Wav2Vec2BaseModelOutput or tuple(torch.Tensor)

Parameter

  • input_values (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Nilai float dari waveform ucapan mentah input. Nilai dapat diperoleh dengan memuat file audio .flac atau .wav ke dalam array bertipe list[float], numpy.ndarray atau torch.Tensor, misalnya melalui pustaka torchcodec (pip install torchcodec) atau pustaka soundfile (pip install soundfile). Untuk menyiapkan array menjadi input_values, gunakan AutoProcessor untuk padding dan konversi menjadi tensor bertipe torch.Tensor. Lihat Wav2Vec2Processor.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?

  • mask_time_indices (torch.BoolTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks untuk mem-mask fitur yang diekstrak untuk contrastive loss. Saat dalam mode pelatihan, model belajar memprediksi fitur yang diekstrak dan di-mask dalam ruang config.proj_codevector_dim.

Mengembalikan

Wav2Vec2BaseModelOutput atau tuple(torch.Tensor)

Sebuah Wav2Vec2BaseModelOutput atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (UniSpeechConfig) dan input.

Metode forward dari UniSpeechModel 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 model.

  • extract_features (torch.Tensor dengan bentuk (batch_size, sequence_length, conv_dim[-1])) — Urutan vektor fitur yang diekstrak dari lapisan konvolusional terakhir model.

  • 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 embeddings + satu untuk output setiap layer) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal.

  • 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 setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

UniSpeechForCTC

kelas transformers.UniSpeechForCTC

< >

( config: UniSpeechConfigtarget_lang: str | None = None )

Parameter

  • config (UniSpeechConfig) — 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.
  • target_lang (str, opsional) — ID bahasa dari bobot adapter. Bobot adapter disimpan dalam format adapter..safetensors atau adapter..bin. Hanya relevan saat menggunakan instance UniSpeechForCTC dengan adapter. Menggunakan ‘eng’ secara default.

Model UniSpeech dengan kepala language modeling di atasnya untuk Connectionist Temporal Classification (CTC).

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_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutput or tuple(torch.Tensor)

Parameter

  • input_values (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Nilai float dari waveform ucapan mentah input. Nilai dapat diperoleh dengan memuat file audio .flac atau .wav ke dalam array bertipe list[float], numpy.ndarray atau torch.Tensor, misalnya melalui pustaka torchcodec (pip install torchcodec) atau pustaka soundfile (pip install soundfile). Untuk menyiapkan array menjadi input_values, gunakan AutoProcessor untuk padding dan konversi menjadi tensor bertipe torch.Tensor. Lihat Wav2Vec2Processor.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?

  • labels (torch.LongTensor dengan bentuk (batch_size, target_length), opsional) — Label untuk connectionist temporal classification. Perhatikan bahwa target_length harus lebih kecil atau sama dengan panjang sekuens dari output logits. Indeks dipilih dalam [-100, 0, ..., config.vocab_size - 1]. Semua label yang disetel ke -100 diabaikan (diberi mask), loss hanya dihitung untuk label dalam [0, ..., config.vocab_size - 1].

Mengembalikan

CausalLMOutput atau tuple(torch.Tensor)

A CausalLMOutput atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (UniSpeechConfig) dan input.

Metode forward dari UniSpeechForCTC 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 (untuk prediksi token berikutnya).

  • 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).

  • 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 model pada output setiap layer ditambah output embedding awal yang opsional.

  • 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 setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

Contoh:

>>> from transformers import AutoProcessor, UniSpeechForCTC
>>> 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("microsoft/unispeech-large-1500h-cv")
>>> model = UniSpeechForCTC.from_pretrained("microsoft/unispeech-large-1500h-cv")

>>> # 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)
...

UniSpeechForSequenceClassification

kelas transformers.UniSpeechForSequenceClassification

< >

( config: UniSpeechConfig )

Parameter

  • config (UniSpeechConfig) — 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 UniSpeech dengan kepala klasifikasi urutan di atasnya (lapisan linear di atas output yang dipool) untuk tugas seperti SUPERB Keyword Spotting.

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_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SequenceClassifierOutput or tuple(torch.Tensor)

Parameter

  • input_values (torch.Tensor dengan bentuk (batch_size, sequence_length)) — Nilai float dari gelombang suara mentah input. Nilai dapat diperoleh dengan memuat file audio .flac atau .wav ke dalam array bertipe list[float], numpy.ndarray, atau torch.Tensor, misalnya melalui pustaka torchcodec (pip install torchcodec) atau pustaka soundfile (pip install soundfile). Untuk menyiapkan array menjadi input_values, gunakan AutoProcessor untuk padding dan konversi menjadi tensor bertipe torch.Tensor. Lihat UniSpeechProcessor.__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?

  • labels (torch.LongTensor dengan bentuk (batch_size,), opsional) — Label untuk menghitung loss klasifikasi/regresi urutan. Indeks harus berada dalam [0, ..., config.num_labels - 1]. Jika config.num_labels == 1, loss regresi dihitung (Mean-Square loss). Jika config.num_labels > 1, loss klasifikasi dihitung (Cross-Entropy).

Mengembalikan

SequenceClassifierOutput atau tuple(torch.Tensor)

Sebuah SequenceClassifierOutput atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (UniSpeechConfig) dan input.

Metode forward dari UniSpeechForSequenceClassification 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 klasifikasi (atau regresi jika config.num_labels==1).

  • logits (torch.Tensor dengan bentuk (batch_size, config.num_labels)) — Skor klasifikasi (atau regresi jika config.num_labels==1) (sebelum SoftMax).

  • 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 model pada output setiap layer ditambah output embedding awal yang opsional.

  • 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 setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

Contoh klasifikasi label tunggal:

>>> import torch
>>> from transformers import AutoTokenizer, UniSpeechForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("microsoft/unispeech-large-1500h-cv")
>>> model = UniSpeechForSequenceClassification.from_pretrained("microsoft/unispeech-large-1500h-cv")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_id = logits.argmax().item()
>>> model.config.id2label[predicted_class_id]
...

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = UniSpeechForSequenceClassification.from_pretrained("microsoft/unispeech-large-1500h-cv", num_labels=num_labels)

>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...

Contoh klasifikasi multi-label:

>>> import torch
>>> from transformers import AutoTokenizer, UniSpeechForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("microsoft/unispeech-large-1500h-cv")
>>> model = UniSpeechForSequenceClassification.from_pretrained("microsoft/unispeech-large-1500h-cv", problem_type="multi_label_classification")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_ids = torch.arange(0, logits.shape[-1])[torch.sigmoid(logits).squeeze(dim=0) > 0.5]

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = UniSpeechForSequenceClassification.from_pretrained(
...     "microsoft/unispeech-large-1500h-cv", num_labels=num_labels, problem_type="multi_label_classification"
... )

>>> labels = torch.sum(
...     torch.nn.functional.one_hot(predicted_class_ids[None, :].clone(), num_classes=num_labels), dim=1
... ).to(torch.float)
>>> loss = model(**inputs, labels=labels).loss

UniSpeechForPreTraining

kelas transformers.UniSpeechForPreTraining

< >

( config: UniSpeechConfig )

Parameter

  • config (UniSpeechConfig) — 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 UniSpeech dengan modul kuantisasi vektor dan kerugian ctc untuk pra-pelatihan.

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_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → UniSpeechForPreTrainingOutput or tuple(torch.Tensor)

Parameter

  • input_values (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Nilai float dari waveform ucapan mentah input. Nilai dapat diperoleh dengan memuat file audio .flac atau .wav ke dalam array bertipe list[float], numpy.ndarray atau torch.Tensor, misalnya melalui pustaka torchcodec (pip install torchcodec) atau pustaka soundfile (pip install soundfile). Untuk menyiapkan array menjadi input_values, gunakan AutoProcessor untuk padding dan konversi menjadi tensor bertipe torch.Tensor. Lihat Wav2Vec2Processor.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?

Mengembalikan

UniSpeechForPreTrainingOutput atau tuple(torch.Tensor)

A UniSpeechForPreTrainingOutput atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (UniSpeechConfig) dan input.

Metode forward dari UniSpeechForPreTraining 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 (*optional*, dikembalikan saat model berada dalam mode train, torch.Tensor dengan bentuk (1,)) — Total loss sebagai jumlah dari contrastive loss (L_m) dan diversity loss (L_d) sebagaimana dinyatakan dalam paper resmi.

  • projected_states (torch.Tensor dengan bentuk (batch_size, sequence_length, config.proj_codevector_dim)) — Hidden-states dari model yang diproyeksikan ke config.proj_codevector_dim yang dapat digunakan untuk memprediksi state kuantisasi terproyeksi yang ter-mask.

  • projected_quantized_states (torch.Tensor dengan bentuk (batch_size, sequence_length, config.proj_codevector_dim)) — Vektor fitur tereksstraksi yang terkuantisasi dan diproyeksikan ke config.proj_codevector_dim, yang mewakili vektor target positif untuk kerugian kontras (contrastive loss).

  • codevector_perplexity (torch.Tensor dengan bentuk (1,)) — Perplexity dari distribusi codevector, digunakan untuk mengukur keragaman codebook.

  • 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 model pada output setiap layer ditambah output embedding awal yang opsional.

  • 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 setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

Contoh:

>>> import torch
>>> from transformers import AutoFeatureExtractor, UniSpeechForPreTraining

>>> feature_extractor = AutoFeatureExtractor.from_pretrained("microsoft/unispeech-large-1500h-cv")
>>> model = UniSpeechForPreTraining.from_pretrained("microsoft/unispeech-large-1500h-cv")
>>> # TODO: Add full pretraining example
Update on GitHub