Transformers documentation

Wav2Vec2-Conformer

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

and get access to the augmented documentation experience

to get started

Model ini dipublikasikan di HF papers pada 2020-10-11 dan disumbangkan ke Hugging Face Transformers pada 2022-05-17.

SDPA

Wav2Vec2-Conformer

Ikhtisar

Wav2Vec2-Conformer ditambahkan ke versi terbaru dari fairseq S2T: Fast Speech-to-Text Modeling with fairseq oleh Changhan Wang, Yun Tang, Xutai Ma, Anne Wu, Sravya Popuri, Dmytro Okhonko, Juan Pino.

Hasil resmi model dapat ditemukan di Tabel 3 dan Tabel 4 dari makalah tersebut.

Bobot Wav2Vec2-Conformer dirilis oleh tim Meta AI di dalam library Fairseq.

Model ini disumbangkan oleh patrickvonplaten. Kode aslinya dapat ditemukan di sini.

Catatan: Meta (FAIR) merilis versi baru dari Wav2Vec2-BERT 2.0 - model ini telah dipretrain pada 4,5 juta jam audio. Kami sangat merekomendasikannya untuk tugas fine-tuning, misalnya sesuai dengan panduan ini.

Tips penggunaan

  • Wav2Vec2-Conformer mengikuti arsitektur yang sama dengan Wav2Vec2, tetapi mengganti blok Attention dengan blok Conformer sebagaimana diperkenalkan dalam Conformer: Convolution-augmented Transformer for Speech Recognition.
  • Untuk jumlah lapisan yang sama, Wav2Vec2-Conformer membutuhkan lebih banyak parameter daripada Wav2Vec2, tetapi juga menghasilkan tingkat kesalahan kata yang lebih baik.
  • Wav2Vec2-Conformer menggunakan tokenizer dan feature extractor yang sama dengan Wav2Vec2.
  • Wav2Vec2-Conformer dapat menggunakan posisi embedding relatif tanpa, posisi embedding seperti Transformer-XL, atau posisi embedding rotasi dengan mengatur config.position_embeddings_type yang benar.

Sumber daya

Wav2Vec2ConformerConfig

kelas transformers.Wav2Vec2ConformerConfig

< >

( 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 | None = Nonehidden_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 = 16apply_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 = 'sum'ctc_zero_infinity: bool = Falseuse_weighted_layer_sum: bool = Falseclassifier_proj_size: int = 256tdnn_dim: list[int] | tuple[int, ...] = (512, 512, 512, 512, 1500)tdnn_kernel: list[int] | tuple[int, ...] = (5, 3, 3, 1, 1)tdnn_dilation: list[int] | tuple[int, ...] = (1, 2, 3, 1, 1)xvector_output_dim: int = 512pad_token_id: int | None = 0bos_token_id: int | None = 1eos_token_id: int | list[int] | None = 2add_adapter: bool = Falseadapter_kernel_size: int = 3adapter_stride: int = 2num_adapter_layers: int = 3output_hidden_size: int | None = Noneposition_embeddings_type: str | None = 'relative'rotary_embedding_base: int = 10000max_source_positions: int = 5000conv_depthwise_kernel_size: int = 31conformer_conv_dropout: float | int = 0.1 )

Parameter

  • vocab_size (int, opsional) — 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 Wav2Vec2ConformerForCTC.
  • 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, 3, 3)) — 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.
  • 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 di 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_prob (Union[float, int], opsional, default 0.0) — Persentase (antara 0 dan 1) dari semua vektor fitur di sepanjang sumbu fitur yang akan di-mask. Prosedur masking menghasilkan mask_feature_prob*len(feature_axis)/mask_time_length mask independen di sepanjang sumbu tersebut. Jika beralasan dari probabilitas setiap vektor fitur untuk dipilih sebagai awal dari rentang vektor yang akan di-mask, mask_feature_prob seharusnya prob_vector_start*mask_feature_length. Perhatikan bahwa tumpang tindih dapat mengurangi persentase vektor yang di-mask secara aktual. Hal ini hanya relevan jika apply_spec_augment adalah 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_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, defaultnya sum) — Menentukan reduksi yang diterapkan pada output dari 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 Wav2Vec2ConformerForCTC.
  • 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 Wav2Vec2ConformerForSequenceClassification.
  • classifier_proj_size (int, opsional, default 256) — Dimensi proyeksi sebelum token mean-pooling untuk klasifikasi.
  • tdnn_dim (tuple[int] atau list[int], opsional, defaultnya (512, 512, 512, 512, 1500)) — Tuple dari bilangan bulat yang mendefinisikan jumlah saluran output dari setiap lapisan konvolusional 1D dalam modul TDNN dari model XVector. Panjang dari tdnn_dim mendefinisikan jumlah lapisan TDNN.
  • tdnn_kernel (tuple[int] atau list[int], opsional, defaultnya (5, 3, 3, 1, 1)) — Tuple dari bilangan bulat yang mendefinisikan ukuran kernel dari setiap lapisan konvolusional 1D dalam modul TDNN dari model XVector. Panjang dari tdnn_kernel harus sesuai dengan panjang dari tdnn_dim.
  • tdnn_dilation (tuple[int] atau list[int], opsional, defaultnya (1, 2, 3, 1, 1)) — Tuple dari bilangan bulat yang mendefinisikan faktor dilatasi dari setiap lapisan konvolusional 1D dalam modul TDNN dari model XVector. Panjang tdnn_dilation harus sesuai dengan panjang tdnn_dim.
  • xvector_output_dim (int, opsional, default 512) — Dimensi dari vektor embedding XVector.
  • 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.
  • add_adapter (bool, opsional, default False) — Apakah jaringan konvolusional harus ditumpuk di atas Encoder Wav2Vec2Conformer. Dapat sangat berguna untuk warm-starting Wav2Vec2Conformer untuk model SpeechEncoderDecoder.
  • adapter_kernel_size (int, opsional, default 3) — Ukuran kernel dari lapisan konvolusional dalam jaringan adapter. Hanya relevan jika add_adapter is True.
  • adapter_stride (int, opsional, default 2) — Stride dari lapisan konvolusional dalam jaringan adapter. Hanya relevan jika add_adapter is True.
  • num_adapter_layers (int, opsional, default 3) — Jumlah lapisan konvolusional yang harus digunakan dalam jaringan adapter. Hanya relevan jika add_adapter is True.
  • output_hidden_size (int, opsional) — Dimensi dari lapisan output encoder. Jika tidak didefinisikan, nilai defaultnya adalah hidden-size. Hanya relevan jika add_adapter is True.
  • position_embeddings_type (str, opsional, default "relative") — Dapat ditentukan sebagai relative atau rotary untuk position embedding relatif atau rotasi, masing-masing. Jika dibiarkan None, position embedding relatif tidak diterapkan.
  • rotary_embedding_base (int, opsional, default 10000) — Jika embedding posisi "rotary" digunakan, mendefinisikan ukuran basis embedding.
  • max_source_positions (int, opsional, default 5000) — jika "relative" position embeddings digunakan, mendefinisikan posisi input sumber maksimum.
  • conv_depthwise_kernel_size (int, opsional, default 31) — Ukuran kernel dari lapisan convolutional depthwise 1D dalam blok Conformer.
  • conformer_conv_dropout (float, opsional, default 0.1) — Probabilitas dropout untuk semua lapisan konvolusional dalam blok Conformer.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Wav2Vec2 ConformerModel. Kelas ini digunakan untuk membuat instans model Wav2Vec2 Conformer sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari facebook/wav2vec2-conformer-rel-pos-large

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

Contoh:

>>> from transformers import Wav2Vec2ConformerConfig, Wav2Vec2ConformerModel

>>> # Initializing a Wav2Vec2Conformer facebook/wav2vec2-conformer-rel-pos-large style configuration
>>> configuration = Wav2Vec2ConformerConfig()

>>> # Initializing a model (with random weights) from the facebook/wav2vec2-conformer-rel-pos-large style configuration
>>> model = Wav2Vec2ConformerModel(configuration)

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

Output spesifik Wav2Vec2Conformer

kelas transformers.models.wav2vec2_conformer.modeling_wav2vec2_conformer.Wav2Vec2ConformerForPreTrainingOutput

< >

( 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 = Nonecontrastive_loss: typing.Optional[torch.Tensor] = Nonediversity_loss: typing.Optional[torch.Tensor] = None )

Parameter

  • loss (*optional*, returned when sample_negative_indices are passed, 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).

  • contrastive_loss (*optional*, dikembalikan saat sample_negative_indices diberikan, torch.Tensor dengan bentuk (1,)) — Loss kontrastif (L_m) sebagaimana dinyatakan dalam paper resmi.
  • diversity_loss (*optional*, returned when sample_negative_indices are passed, torch.Tensor of shape (1,)) — The diversity loss (L_d) as stated in the official paper.

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

Wav2Vec2ConformerModel

kelas transformers.Wav2Vec2ConformerModel

< >

( config: Wav2Vec2ConformerConfig )

Parameter

  • config (Wav2Vec2ConformerConfig) — 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 Wav2Vec2 Conformer 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 (Wav2Vec2ConformerConfig) dan input.

Metode forward dari Wav2Vec2ConformerModel 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).

Wav2Vec2ConformerForCTC

kelas transformers.Wav2Vec2ConformerForCTC

< >

( config: Wav2Vec2ConformerConfigtarget_lang: str | None = None )

Parameter

  • config (Wav2Vec2ConformerConfig) — 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 UniSpeechSatForCTC dengan adapter. Menggunakan ‘eng’ secara default.

Model Wav2Vec2Conformer 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)

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

Metode forward dari Wav2Vec2ConformerForCTC 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, Wav2Vec2ConformerForCTC
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> processor = AutoProcessor.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")
>>> model = Wav2Vec2ConformerForCTC.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")

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

Wav2Vec2ConformerForSequenceClassification

kelas transformers.Wav2Vec2ConformerForSequenceClassification

< >

( config: Wav2Vec2ConformerConfig )

Parameter

  • config (Wav2Vec2ConformerConfig) — 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 Wav2Vec2Conformer dengan kepala klasifikasi urutan di atasnya (lapisan linear di atas output yang dipooling) 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 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 Wav2Vec2ConformerProcessor.__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 (Wav2Vec2ConformerConfig) dan input.

Metode forward dari Wav2Vec2ConformerForSequenceClassification 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, Wav2Vec2ConformerForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")
>>> model = Wav2Vec2ConformerForSequenceClassification.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")

>>> 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 = Wav2Vec2ConformerForSequenceClassification.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large", 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, Wav2Vec2ConformerForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")
>>> model = Wav2Vec2ConformerForSequenceClassification.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large", 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 = Wav2Vec2ConformerForSequenceClassification.from_pretrained(
...     "facebook/wav2vec2-conformer-rel-pos-large", 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

Wav2Vec2ConformerForAudioFrameClassification

kelas transformers.Wav2Vec2ConformerForAudioFrameClassification

< >

( config: Wav2Vec2ConformerConfig )

Parameter

  • config (Wav2Vec2ConformerConfig) — 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 Wav2Vec2 Conformer dengan kepala klasifikasi frame di atasnya untuk tugas seperti Speaker Diarization.

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'> ) → TokenClassifierOutput or tuple(torch.Tensor)

Parameter

  • input_values (torch.Tensor dengan bentuk (batch_size, sequence_length)) — 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 Wav2Vec2ConformerProcessor.__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

TokenClassifierOutput atau tuple(torch.Tensor)

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

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

  • logits (torch.Tensor dengan bentuk (batch_size, sequence_length, config.num_labels)) — Skor klasifikasi (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 AutoFeatureExtractor, Wav2Vec2ConformerForAudioFrameClassification
>>> 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

>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")
>>> model = Wav2Vec2ConformerForAudioFrameClassification.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")

>>> # audio file is decoded on the fly
>>> inputs = feature_extractor(dataset[0]["audio"]["array"], return_tensors="pt", sampling_rate=sampling_rate)
>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> probabilities = torch.sigmoid(logits[0])
>>> # labels is a one-hot array of shape (num_frames, num_speakers)
>>> labels = (probabilities > 0.5).long()
>>> labels[0].tolist()
...

Wav2Vec2ConformerForXVector

kelas transformers.Wav2Vec2ConformerForXVector

< >

( config: Wav2Vec2ConformerConfig )

Parameter

  • config (Wav2Vec2ConformerConfig) — 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 Wav2Vec2Conformer dengan kepala ekstraksi fitur XVector di atasnya untuk tugas seperti Speaker Verification.

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'> ) → XVectorOutput or tuple(torch.Tensor)

Parameter

  • input_values (torch.Tensor dengan bentuk (batch_size, sequence_length)) — 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 Wav2Vec2ConformerProcessor.__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

XVectorOutput atau tuple(torch.Tensor)

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

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

  • logits (torch.Tensor dengan bentuk (batch_size, config.xvector_output_dim)) — Hidden state klasifikasi sebelum AMSoftmax.

  • embeddings (torch.Tensor dengan bentuk (batch_size, config.xvector_output_dim)) — Embedding ucapan yang digunakan untuk pengambilan berbasis kemiripan vektor.

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

Contoh:

>>> from transformers import AutoFeatureExtractor, Wav2Vec2ConformerForXVector
>>> 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

>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")
>>> model = Wav2Vec2ConformerForXVector.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")

>>> # audio file is decoded on the fly
>>> inputs = feature_extractor(
...     [d["array"] for d in dataset[:2]["audio"]], sampling_rate=sampling_rate, return_tensors="pt", padding=True
... )
>>> with torch.no_grad():
...     embeddings = model(**inputs).embeddings

>>> embeddings = torch.nn.functional.normalize(embeddings, dim=-1).cpu()

>>> # the resulting embeddings can be used for cosine similarity-based retrieval
>>> cosine_sim = torch.nn.CosineSimilarity(dim=-1)
>>> similarity = cosine_sim(embeddings[0], embeddings[1])
>>> threshold = 0.7  # the optimal threshold is dataset-dependent
>>> if similarity < threshold:
...     print("Speakers are not the same!")
>>> round(similarity.item(), 2)
...

Wav2Vec2ConformerForPreTraining

kelas transformers.Wav2Vec2ConformerForPreTraining

< >

( config: Wav2Vec2ConformerConfig )

Parameter

  • config (Wav2Vec2ConformerConfig) — 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 Wav2Vec2Conformer dengan kuantizer dan head VQ 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.BoolTensor] = Nonesampled_negative_indices: typing.Optional[torch.BoolTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Wav2Vec2ConformerForPreTrainingOutput 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.
  • sampled_negative_indices (torch.BoolTensor dengan bentuk (batch_size, sequence_length, num_negatives), opsional) — Indeks yang menunjukkan vektor target terkuantisasi mana yang digunakan sebagai vektor sampel negatif dalam kerugian kontras. Input yang diperlukan untuk pra-pelatihan.

Mengembalikan

Wav2Vec2ConformerForPreTrainingOutput atau tuple(torch.Tensor)

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

Metode forward dari Wav2Vec2ConformerForPreTraining 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 sample_negative_indices diberikan, torch.Tensor dengan bentuk (1,)) — Total loss sebagai penjumlahan 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).

  • contrastive_loss (*optional*, dikembalikan ketika sample_negative_indices diberikan, torch.Tensor dengan bentuk (1,)) — Loss kontrastif (L_m) sebagaimana dinyatakan dalam paper resmi.

  • diversity_loss (*optional*, dikembalikan saat sample_negative_indices diberikan, torch.Tensor dengan bentuk (1,)) — Keragaman loss (L_d) sebagaimana dinyatakan dalam paper resmi.

Contoh:

>>> import torch
>>> from transformers import AutoFeatureExtractor, Wav2Vec2ConformerForPreTraining
>>> from transformers.models.wav2vec2_conformer.modeling_wav2vec2_conformer import _compute_mask_indices, _sample_negative_indices
>>> from datasets import load_dataset

>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2_conformer-base")
>>> model = Wav2Vec2ConformerForPreTraining.from_pretrained("facebook/wav2vec2_conformer-base")

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> input_values = feature_extractor(ds[0]["audio"]["array"], return_tensors="pt").input_values  # Batch size 1

>>> # compute masked indices
>>> batch_size, raw_sequence_length = input_values.shape
>>> sequence_length = model._get_feat_extract_output_lengths(raw_sequence_length).item()
>>> mask_time_indices = _compute_mask_indices(
...     shape=(batch_size, sequence_length), mask_prob=0.2, mask_length=2
... )
>>> sampled_negative_indices = _sample_negative_indices(
...     features_shape=(batch_size, sequence_length),
...     num_negatives=model.config.num_negatives,
...     mask_time_indices=mask_time_indices,
... )
>>> mask_time_indices = torch.tensor(data=mask_time_indices, device=input_values.device, dtype=torch.long)
>>> sampled_negative_indices = torch.tensor(
...     data=sampled_negative_indices, device=input_values.device, dtype=torch.long
... )

>>> with torch.no_grad():
...     outputs = model(input_values, mask_time_indices=mask_time_indices)

>>> # compute cosine similarity between predicted (=projected_states) and target (=projected_quantized_states)
>>> cosine_sim = torch.cosine_similarity(outputs.projected_states, outputs.projected_quantized_states, dim=-1)

>>> # show that cosine similarity is much higher than random
>>> cosine_sim[mask_time_indices.to(torch.bool)].mean() > 0.5
tensor(True)

>>> # for contrastive loss training model should be put into train mode
>>> model = model.train()
>>> loss = model(
...     input_values, mask_time_indices=mask_time_indices, sampled_negative_indices=sampled_negative_indices
... ).loss
Update on GitHub