Transformers documentation
Wav2Vec2-BERT
Model ini dipublikasikan di HF papers pada 2023-12-08 dan disumbangkan ke Hugging Face Transformers pada 2024-01-18.
Wav2Vec2-BERT
Ikhtisar
Model Wav2Vec2-BERT diusulkan dalam Seamless: Multilingual Expressive and Streaming Speech Translation oleh tim Seamless Communication dari Meta AI.
Model ini telah dilatih sebelumnya pada 4,5 juta jam data audio tanpa label yang mencakup lebih dari 143 bahasa. Model ini memerlukan finetuning untuk digunakan pada tugas turunan seperti Automatic Speech Recognition (ASR) atau Audio Classification.
Hasil resmi model dapat ditemukan di Bagian 3.2.1 dari makalah tersebut.
Abstrak dari makalah tersebut adalah sebagai berikut:
Perkembangan terbaru dalam penerjemahan suara otomatis telah memperluas cakupan bahasa secara drastis, meningkatkan kemampuan multimodal, dan memungkinkan berbagai tugas serta fungsionalitas. Meskipun demikian, sistem penerjemahan suara otomatis berskala besar saat ini masih kekurangan fitur-fitur penting yang membuat komunikasi yang dimediasi mesin terasa mulus dibandingkan dengan dialog antarmanusia. Dalam karya ini, kami memperkenalkan keluarga model yang memungkinkan penerjemahan ekspresif dan multibahasa secara end-to-end dalam mode streaming. Pertama, kami menyumbangkan versi yang ditingkatkan dari model multibahasa dan multimodal masif SeamlessM4T—SeamlessM4T v2. Model yang lebih baru ini, yang mengintegrasikan kerangka UnitY2 yang diperbarui, dilatih pada lebih banyak data bahasa beresourserendah. Versi yang diperluas dari SeamlessAlign menambahkan 114.800 jam data yang diselaraskan secara otomatis untuk total 76 bahasa. SeamlessM4T v2 menyediakan fondasi bagi dua model terbaru kami, SeamlessExpressive dan SeamlessStreaming. SeamlessExpressive memungkinkan penerjemahan yang mempertahankan gaya vokal dan prosodi. Dibandingkan dengan upaya sebelumnya dalam penelitian suara ekspresif, karya kami mengatasi aspek-aspek prosodi tertentu yang kurang dieksplorasi, seperti laju bicara dan jeda, sambil juga mempertahankan gaya suara seseorang. Adapun SeamlessStreaming, model kami memanfaatkan mekanisme Efficient Monotonic Multihead Attention (EMMA) untuk menghasilkan penerjemahan target berlatensi rendah tanpa menunggu tuturan sumber yang lengkap. Sebagai yang pertama dari jenisnya, SeamlessStreaming memungkinkan penerjemahan suara-ke-suara/teks secara simultan untuk beberapa bahasa sumber dan target. Untuk memahami kinerja model-model ini, kami menggabungkan versi baru dan dimodifikasi dari metrik otomatis yang ada untuk mengevaluasi prosodi, latensi, dan ketahanan. Untuk evaluasi manusia, kami mengadaptasi protokol yang ada yang disesuaikan untuk mengukur atribut paling relevan dalam pelestarian makna, naturalitas, dan ekspresivitas. Untuk memastikan model kami dapat digunakan secara aman dan bertanggung jawab, kami mengimplementasikan upaya red-teaming pertama yang diketahui untuk penerjemahan mesin multimodal, sistem untuk deteksi dan mitigasi toksisitas yang ditambahkan, evaluasi sistematis bias gender, dan mekanisme watermarking lokal yang tidak terdengar yang dirancang untuk meredam dampak deepfake. Akibatnya, kami menggabungkan komponen utama dari SeamlessExpressive dan SeamlessStreaming untuk membentuk Seamless, sistem pertama yang tersedia secara publik yang membuka komunikasi lintas bahasa yang ekspresif secara real-time. Secara keseluruhan, Seamless memberikan pandangan penting tentang fondasi teknis yang diperlukan untuk mengubah Universal Speech Translator dari konsep fiksi ilmiah menjadi teknologi dunia nyata. Terakhir, kontribusi dalam karya ini—termasuk model, kode, dan detektor watermark—dipublikasikan dan dapat diakses melalui tautan di bawah ini.
Model ini disumbangkan oleh ylacombe. Kode aslinya dapat ditemukan di sini.
Tips penggunaan
- Wav2Vec2-BERT mengikuti arsitektur yang sama dengan Wav2Vec2-Conformer, tetapi menggunakan lapisan konvolusi depthwise kausal dan menggunakan representasi mel-spectrogram dari audio sebagai input, alih-alih gelombang mentah.
- Wav2Vec2-BERT dapat menggunakan salah satu dari: tanpa relative position embeddings, position embeddings ala Shaw, position embeddings ala Transformer-XL, atau rotary position embeddings, dengan mengatur
config.position_embeddings_typeyang tepat. - Wav2Vec2-BERT juga memperkenalkan jaringan adapter berbasis Conformer alih-alih jaringan konvolusional sederhana.
Sumber daya
- Anda juga dapat menyesuaikan notebook ini tentang bagaimana cara finetune model pengenalan ucapan dalam bahasa Inggris, dan bagaimana cara finetune model pengenalan ucapan dalam bahasa apa pun.
- Lihat juga: Panduan tugas klasifikasi audio
Wav2Vec2BertConfig
kelas transformers.Wav2Vec2BertConfig
< 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 | None = Nonehidden_size: int = 1024num_hidden_layers: int = 24num_attention_heads: int = 16intermediate_size: int = 4096feature_projection_input_dim: int = 160hidden_act: str = 'swish'hidden_dropout: float | int = 0.0activation_dropout: float | int = 0.0attention_dropout: float | int = 0.0feat_proj_dropout: float | int = 0.0final_dropout: float | int = 0.1layerdrop: float | int = 0.1initializer_range: float = 0.02layer_norm_eps: float = 1e-05apply_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 = 0ctc_loss_reduction: str = 'sum'ctc_zero_infinity: bool = Falseuse_weighted_layer_sum: bool = Falseclassifier_proj_size: int = 768tdnn_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 = 1adapter_act: str = 'relu'use_intermediate_ffn_before_adapter: bool = Falseoutput_hidden_size: int | None = Noneposition_embeddings_type: typing.Optional[typing.Literal['rotary', 'relative', 'relative_key']] = 'relative_key'rotary_embedding_base: int = 10000max_source_positions: int = 5000left_max_position_embeddings: int = 64right_max_position_embeddings: int = 8conv_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 olehinput_ids. - hidden_size (
int, opsional, default1024) — Dimensi dari representasi tersembunyi. - num_hidden_layers (
int, opsional, default24) — Jumlah lapisan tersembunyi dalam decoder Transformer. - num_attention_heads (
int, opsional, default16) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer. - intermediate_size (
int, opsional, default4096) — Dimensi representasi MLP. - feature_projection_input_dim (
int, opsional, default 160) — Dimensi input dari model ini, yaitu dimensi setelah memproses audio input dengan SeamlessM4TFeatureExtractor atau Wav2Vec2BertProcessor. - hidden_act (
str, opsional, defaultnyaswish) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - hidden_dropout (
Union[float, int], opsional, default0.0) — Probabilitas dropout untuk semua lapisan fully connected di embeddings, encoder, dan pooler. - activation_dropout (
Union[float, int], opsional, defaultnya0.0) — Rasio dropout untuk aktivasi di dalam lapisan fully connected. - attention_dropout (
Union[float, int], opsional, default0.0) — Rasio dropout untuk probabilitas perhatian. - feat_proj_dropout (
float, opsional, default 0.0) — Probabilitas dropout untuk proyeksi fitur. - final_dropout (
float, opsional, default 0.1) — Probabilitas dropout untuk lapisan proyeksi akhir dari Wav2Vec2BertForCTC. - layerdrop (
Union[float, int], opsional, default0.1) — Probabilitas LayerDrop. Lihat [makalah LayerDrop](lihat https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut. - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - layer_norm_eps (
float, opsional, defaultnya1e-05) — Epsilon yang digunakan oleh lapisan normalisasi lapisan. - apply_spec_augment (
bool, opsional, defaultTrue) — 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 generatesmask_time_prob*len(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 beprob_vector_start*mask_time_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant ifapply_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 panjangmask_feature_lengthyang dihasilkan sepanjang sumbu waktu, untuk setiap langkah waktu, tanpa memperhitungkanmask_feature_prob. Hanya relevan jikamask_time_prob*len(time_axis)/mask_time_length < mask_time_min_masks. - mask_feature_prob (
float, opsional, default 0.0) — Persentase (antara 0 dan 1) dari semua vektor fitur sepanjang sumbu fitur yang akan di-mask. Prosedur masking menghasilkanmask_feature_prob*len(feature_axis)/mask_time_lengthmask independen di atas sumbu tersebut. Jika bernalar dari probabilitas setiap vektor fitur untuk dipilih sebagai awal dari rentang vektor yang akan di-mask, mask_feature_prob seharusnyaprob_vector_start*mask_feature_length. Perhatikan bahwa tumpang tindih dapat mengurangi persentase vektor yang benar-benar di-mask. Hal ini hanya relevan jikaapply_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 panjangmask_feature_lengthyang dihasilkan sepanjang sumbu fitur, pada setiap langkah waktu, terlepas darimask_feature_prob. Hanya relevan jikamask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks. - ctc_loss_reduction (
str, opsional, defaultnyasum) — Menentukan reduksi yang diterapkan pada output daritorch.nn.CTCLoss. Hanya relevan saat pelatihan. - ctc_zero_infinity (
bool, opsional, defaultFalse) — Apakah akan menolkan (zero) kerugian (loss) yang tak hingga beserta gradien terkait daritorch.nn.CTCLoss. Kerugian tak hingga terutama terjadi ketika input terlalu pendek untuk diselaraskan dengan target. Hanya relevan saat melatih instance dari Wav2Vec2BertForCTC. - use_weighted_layer_sum (
bool, opsional, defaultFalse) — Apakah akan menggunakan rata-rata tertimbang dari output layer dengan bobot yang dipelajari. Hanya relevan saat menggunakan instance dari Wav2Vec2BertForSequenceClassification. - classifier_proj_size (
int, opsional, default 768) — Dimensi proyeksi sebelum token mean-pooling untuk klasifikasi. - tdnn_dim (
tuple[int]ataulist[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]ataulist[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]ataulist[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, default0) — ID token yang digunakan untuk padding dalam kosakata. - bos_token_id (
int, opsional, default1) — ID token yang digunakan untuk awal aliran (beginning-of-stream) dalam kosakata. - eos_token_id (
Union[int, list[int]], opsional, default2) — ID token yang digunakan untuk end-of-stream dalam kosakata. - add_adapter (
bool, opsional, defaultFalse) — Apakah jaringan attention konvolusional harus ditumpuk di atas Encoder Wav2Vec2Bert. Dapat sangat berguna untuk warm-starting Wav2Vec2Bert untuk model SpeechEncoderDecoder. - adapter_kernel_size (
int, opsional, default 3) — Ukuran kernel dari lapisan konvolusional dalam jaringan adapter. Hanya relevan jikaadd_adapter is True. - adapter_stride (
int, opsional, default 2) — Stride dari lapisan konvolusional dalam jaringan adapter. Hanya relevan jikaadd_adapter is True. - num_adapter_layers (
int, opsional, default 1) — Jumlah lapisan konvolusional yang harus digunakan dalam jaringan adapter. Hanya relevan jikaadd_adapter is True. - adapter_act (
strataufunction, opsional, default"relu") — Fungsi aktivasi non-linear (fungsi atau string) pada lapisan adapter. Jika berupa string,"gelu","relu","selu","swish", dan"gelu_new"didukung. - use_intermediate_ffn_before_adapter (
bool, opsional, defaultFalse) — Apakah blok feed-forward antara harus ditumpuk di atas Wav2Vec2Bert Encoder dan sebelum jaringan adapter. Hanya relevan jikaadd_adapter is True. - output_hidden_size (
int, opsional) — Dimensi dari lapisan output encoder. Jika tidak didefinisikan, nilai defaultnya adalah hidden-size. Hanya relevan jikaadd_adapter is True. - position_embeddings_type (
str, opsional, default ke"relative_key") — Dapat ditentukan ke:rotary, untuk posisi embedding rotasi.relative, untuk embedding posisi relatif.relative_key, untuk relative position embeddings seperti yang didefinisikan oleh Shaw dalam Self-Attention with Relative Position Representations (Shaw et al.). Jika dibiarkan sebagaiNone, relative position embeddings 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. - left_max_position_embeddings (
int, opsional, default 64) — Jika position embeddings"relative_key"(alias Shaw) digunakan, mendefinisikan nilai clipping kiri untuk posisi relatif. - right_max_position_embeddings (
int, opsional, default 8) — Jika"relative_key"(alias Shaw) position embeddings digunakan, mendefinisikan nilai clipping kanan untuk posisi relatif. - 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 BertModel. Kelas ini digunakan untuk membuat instans model Wav2Vec2 Bert sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari facebook/w2v-bert-2.0
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Contoh:
>>> from transformers import Wav2Vec2BertConfig, Wav2Vec2BertModel
>>> # Initializing a Wav2Vec2Bert facebook/wav2vec2-bert-rel-pos-large style configuration
>>> configuration = Wav2Vec2BertConfig()
>>> # Initializing a model (with random weights) from the facebook/wav2vec2-bert-rel-pos-large style configuration
>>> model = Wav2Vec2BertModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configWav2Vec2BertProcessor
kelas transformers.Wav2Vec2BertProcessor
< source >( feature_extractortokenizer )
Membangun Wav2Vec2BertProcessor yang membungkus feature extractor dan tokenizer menjadi satu processor.
Wav2Vec2BertProcessor menyediakan semua fungsionalitas dari Wav2Vec2FeatureExtractor dan Wav2Vec2CTCTokenizer. Lihat ~Wav2Vec2FeatureExtractor dan ~Wav2Vec2CTCTokenizer untuk informasi lebih lanjut.
__call__
< source >( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], NoneType] = Nonetext: str | list[str] | None = None**kwargs: *<class 'transformers.models.wav2vec2_bert.processing_wav2vec2_bert.Wav2Vec2BertProcessorKwargs'> ) → BatchEncoding
Parameter
- audio (
Union[numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor]], opsional) — Audio atau batch audio yang akan disiapkan. Setiap audio dapat berupa array NumPy atau tensor PyTorch. Jika berupa array NumPy/tensor PyTorch, setiap audio harus memiliki bentuk (C, T), di mana C adalah jumlah channel, dan T adalah panjang sampel dari audio tersebut. - text (
Union[str, list[str]], opsional) — Urutan atau batch dari urutan yang akan dikodekan. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika Anda memasukkan input yang sudah dipretokenisasi, aturis_split_into_words=Trueuntuk menghindari ambiguitas dengan input batch. - return_tensors (
stratau TensorType, opsional) — Jika diset, akan mengembalikan tensor dari framework tertentu. Nilai yang dapat diterima adalah:'pt': Mengembalikan objek PyTorchtorch.Tensor.'np': Mengembalikan objek NumPynp.ndarray.
- **kwargs (ProcessingKwargs, opsional) — Opsi pemrosesan tambahan untuk setiap modalitas (teks, gambar, video, audio). Parameter spesifik model tercantum di atas; lihat kelas TypedDict untuk daftar lengkap argumen yang didukung.
Mengembalikan
BatchEncoding dengan bidang berikut:
- input_features — Audio input features to be fed to a model. Returned when
audiois notNone. - attention_mask — Daftar indeks yang menentukan timestamp mana yang harus diperhatikan oleh model ketika
audiobukanNone. Ketika hanyatextyang ditentukan, mengembalikan token attention mask. - labels — Daftar token id yang akan diberikan ke model. Dikembalikan ketika
textdanaudiokeduanya bukanNone. - input_ids — Daftar token id yang akan diberikan ke model. Dikembalikan ketika
textbukanNonedanaudioadalahNone.
Jika input_features bukan None, metode ini meneruskan argumen input_features dan kwargs ke pad() dari SeamlessM4TFeatureExtractor untuk melakukan padding pada fitur input.
Jika labels bukan None, metode ini meneruskan argumen labels dan kwargs ke pad() dari PreTrainedTokenizer untuk melakukan padding pada label.
Silakan merujuk ke docstring dari dua metode di atas untuk informasi lebih lanjut.
from_pretrained
< source >( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs )
Parameter
- pretrained_model_name_or_path (
stratauos.PathLike) — Ini bisa berupa:- sebuah string, model id dari feature_extractor pretrained yang dihosting di dalam repo model di huggingface.co.
- path ke direktori yang berisi file feature extractor yang disimpan menggunakan metode
save_pretrained(), misalnya
./my_model_directory/. - path ke file JSON feature extractor yang disimpan file, misalnya
./my_model_directory/preprocessor_config.json.
- **kwargs —
Argumen kata kunci tambahan yang diteruskan ke
from_pretrained() dan
~tokenization_utils_base.PreTrainedTokenizer.from_pretrained.
Instansiasi prosesor yang terkait dengan model pretrained.
Metode kelas ini hanya memanggil metode from_pretrained() dari feature extractor, ImageProcessingMixin dari image processor, dan
~tokenization_utils_base.PreTrainedTokenizer.from_pretraineddari tokenizer. Silakan merujuk ke docstring dari metode-metode di atas untuk informasi lebih lanjut.
save_pretrained
< source >( save_directorypush_to_hub: bool = False**kwargs )
Parameter
- save_directory (
stratauos.PathLike) — Direktori tempat file JSON feature extractor dan file tokenizer akan disimpan (direktori akan dibuat jika belum ada). - push_to_hub (
bool, opsional, defaultFalse) — Apakah model Anda akan didorong ke Hugging Face model hub setelah disimpan. Anda dapat menentukan repository yang ingin Anda tuju denganrepo_id(defaultnya adalah namasave_directorydi namespace Anda). - kwargs (
dict[str, Any], opsional) — Argumen kata kunci tambahan yang diteruskan ke metode push_to_hub().
Menyimpan atribut prosesor ini (feature extractor, tokenizer…) ke dalam direktori yang ditentukan sehingga dapat dimuat ulang menggunakan metode from_pretrained().
Metode kelas ini hanya memanggil save_pretrained() dan save_pretrained(). Silakan merujuk ke docstring dari metode di atas untuk informasi lebih lanjut.
Metode ini meneruskan semua argumennya ke batch_decode() dari PreTrainedTokenizer. Silakan merujuk ke docstring metode ini untuk informasi lebih lanjut.
Metode ini meneruskan semua argumennya ke decode() dari PreTrainedTokenizer. Silakan lihat docstring dari metode ini untuk informasi lebih lanjut.
Wav2Vec2BertModel
kelas transformers.Wav2Vec2BertModel
< source >( config: Wav2Vec2BertConfig )
Parameter
- config (Wav2Vec2BertConfig) — 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 Bert 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_features: 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_features (
torch.Tensordengan bentuk(batch_size, sequence_length, feature_dim), opsional) — Tensor yang sesuai dengan fitur audio input. Fitur audio dapat diperoleh menggunakan Wav2Vec2FeatureExtractor. Lihat Wav2Vec2FeatureExtractor.call() untuk detailnya (Wav2Vec2BertProcessor menggunakan Wav2Vec2FeatureExtractor untuk memproses audio). - attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- mask_time_indices (
torch.BoolTensordengan 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 (Wav2Vec2BertConfig) dan input.
Metode forward dari Wav2Vec2BertModel menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.extract_features (
torch.Tensordengan 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 saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.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 saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Wav2Vec2BertForCTC
kelas transformers.Wav2Vec2BertForCTC
< source >( config: Wav2Vec2BertConfigtarget_lang: str | None = None )
Parameter
- config (Wav2Vec2BertConfig) — 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 Wav2Vec2Bert 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
< source >( input_features: 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_features (
torch.Tensordengan bentuk(batch_size, sequence_length, feature_dim), opsional) — Tensor yang sesuai dengan fitur audio input. Fitur audio dapat diperoleh menggunakan Wav2Vec2FeatureExtractor. Lihat Wav2Vec2FeatureExtractor.call() untuk detailnya (Wav2Vec2BertProcessor menggunakan Wav2Vec2FeatureExtractor untuk memproses audio). - attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- labels (
torch.LongTensordengan bentuk(batch_size, target_length), opsional) — Label untuk connectionist temporal classification. Perhatikan bahwatarget_lengthharus lebih kecil atau sama dengan panjang sekuens dari output logits. Indeks dipilih dalam[-100, 0, ..., config.vocab_size - 1]. Semua label yang disetel ke-100diabaikan (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 (Wav2Vec2BertConfig) dan input.
Metode forward dari Wav2Vec2BertForCTC menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss pemodelan bahasa (untuk prediksi token berikutnya).logits (
torch.Tensordengan 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 saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Contoh:
>>> from transformers import AutoProcessor, Wav2Vec2BertForCTC
>>> 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/w2v-bert-2.0")
>>> model = Wav2Vec2BertForCTC.from_pretrained("facebook/w2v-bert-2.0")
>>> # 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)
...Wav2Vec2BertForSequenceClassification
kelas transformers.Wav2Vec2BertForSequenceClassification
< source >( config: Wav2Vec2BertConfig )
Parameter
- config (Wav2Vec2BertConfig) — 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 Wav2Vec2Bert 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
< source >( input_features: 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_features (
torch.Tensordengan bentuk(batch_size, sequence_length, feature_dim), opsional) — Tensor yang sesuai dengan fitur audio input. Fitur audio dapat diperoleh menggunakan Wav2Vec2FeatureExtractor. Lihat Wav2Vec2FeatureExtractor.call() untuk detailnya (Wav2Vec2BertProcessor menggunakan Wav2Vec2FeatureExtractor untuk memproses audio). - attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- labels (
torch.LongTensordengan bentuk(batch_size,), opsional) — Label untuk menghitung loss klasifikasi/regresi urutan. Indeks harus berada dalam[0, ..., config.num_labels - 1]. Jikaconfig.num_labels == 1, loss regresi dihitung (Mean-Square loss). Jikaconfig.num_labels > 1, loss klasifikasi dihitung (Cross-Entropy).
Mengembalikan
SequenceClassifierOutput atau tuple(torch.Tensor)
SequenceClassifierOutput atau tuple dari
torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (Wav2Vec2BertConfig) dan input.
Metode forward dari Wav2Vec2BertForSequenceClassification menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss klasifikasi (atau regresi jika config.num_labels==1).logits (
torch.Tensordengan bentuk(batch_size, config.num_labels)) — Skor klasifikasi (atau regresi jika config.num_labels==1) (sebelum SoftMax).hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian 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, Wav2Vec2BertForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("facebook/w2v-bert-2.0")
>>> model = Wav2Vec2BertForSequenceClassification.from_pretrained("facebook/w2v-bert-2.0")
>>> 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 = Wav2Vec2BertForSequenceClassification.from_pretrained("facebook/w2v-bert-2.0", 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, Wav2Vec2BertForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("facebook/w2v-bert-2.0")
>>> model = Wav2Vec2BertForSequenceClassification.from_pretrained("facebook/w2v-bert-2.0", 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 = Wav2Vec2BertForSequenceClassification.from_pretrained(
... "facebook/w2v-bert-2.0", 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).lossWav2Vec2BertForAudioFrameClassification
kelas transformers.Wav2Vec2BertForAudioFrameClassification
< source >( config: Wav2Vec2BertConfig )
Parameter
- config (Wav2Vec2BertConfig) — 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 Bert 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
< source >( input_features: 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_features (
torch.Tensordengan bentuk(batch_size, sequence_length, feature_dim), opsional) — Tensor yang sesuai dengan fitur audio input. Fitur audio dapat diperoleh menggunakan Wav2Vec2FeatureExtractor. Lihat Wav2Vec2FeatureExtractor.call() untuk detailnya (Wav2Vec2BertProcessor menggunakan Wav2Vec2FeatureExtractor untuk memproses audio). - attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- labels (
torch.LongTensordengan bentuk(batch_size,), opsional) — Label untuk menghitung loss klasifikasi/regresi urutan. Indeks harus berada dalam[0, ..., config.num_labels - 1]. Jikaconfig.num_labels == 1, loss regresi dihitung (Mean-Square loss). Jikaconfig.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 (Wav2Vec2BertConfig) dan input.
Metode forward dari Wav2Vec2BertForAudioFrameClassification menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss klasifikasi.logits (
torch.Tensordengan bentuk(batch_size, sequence_length, config.num_labels)) — Skor klasifikasi (sebelum SoftMax).hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Contoh:
>>> from transformers import AutoFeatureExtractor, Wav2Vec2BertForAudioFrameClassification
>>> 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/w2v-bert-2.0")
>>> model = Wav2Vec2BertForAudioFrameClassification.from_pretrained("facebook/w2v-bert-2.0")
>>> # 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()
...Wav2Vec2BertForXVector
kelas transformers.Wav2Vec2BertForXVector
< source >( config: Wav2Vec2BertConfig )
Parameter
- config (Wav2Vec2BertConfig) — 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 Wav2Vec2Bert dengan kepala ekstraksi fitur XVector di bagian atas untuk tugas seperti Verifikasi Pembicara.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( input_features: typing.Optional[torch.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_features (
torch.Tensordengan bentuk(batch_size, sequence_length, feature_dim), opsional) — Tensor yang sesuai dengan fitur audio input. Fitur audio dapat diperoleh menggunakan Wav2Vec2FeatureExtractor. Lihat Wav2Vec2FeatureExtractor.call() untuk detailnya (Wav2Vec2BertProcessor menggunakan Wav2Vec2FeatureExtractor untuk memproses audio). - attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- labels (
torch.LongTensordengan bentuk(batch_size,), opsional) — Label untuk menghitung loss klasifikasi/regresi urutan. Indeks harus berada dalam[0, ..., config.num_labels - 1]. Jikaconfig.num_labels == 1, loss regresi dihitung (Mean-Square loss). Jikaconfig.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 (Wav2Vec2BertConfig) dan input.
Metode forward dari Wav2Vec2BertForXVector menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss klasifikasi.logits (
torch.Tensordengan bentuk(batch_size, config.xvector_output_dim)) — Hidden state klasifikasi sebelum AMSoftmax.embeddings (
torch.Tensordengan bentuk(batch_size, config.xvector_output_dim)) — Embedding ucapan yang digunakan untuk pengambilan berbasis kemiripan vektor.hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.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 saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Contoh:
>>> from transformers import AutoFeatureExtractor, Wav2Vec2BertForXVector
>>> 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/w2v-bert-2.0")
>>> model = Wav2Vec2BertForXVector.from_pretrained("facebook/w2v-bert-2.0")
>>> # 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)
...