Transformers documentation
Wav2Vec2-BERT
Bu model 2023-12-08 tarihinde HF papers'ta yayımlanmış ve 2024-01-18 tarihinde Hugging Face Transformers'a katkıda bulunmuştur.
Wav2Vec2-BERT
Genel Bakış
Wav2Vec2-BERT modeli, Meta AI'dan Seamless Communication ekibi tarafından Seamless: Multilingual Expressive and Streaming Speech Translation makalesinde önerilmiştir.
Bu model, 143'ten fazla dili kapsayan 4,5 milyon saatlik etiketsiz ses verisi üzerinde ön eğitilmiştir. Otomatik Konuşma Tanıma (ASR) veya Ses Sınıflandırması gibi aşağı akış görevlerinde kullanılmak için ince ayar gerektirir.
Modelin resmi sonuçları, makalenin 3.2.1 bölümünde bulunabilir.
Makalenin özeti aşağıdaki gibidir:
Otomatik konuşma çevirisi alanındaki son gelişmeler, dil kapsamını dramatik biçimde genişletmiş, çok modlu yetenekleri iyileştirmiş ve geniş bir görev ve işlev yelpazesini mümkün kılmıştır. Bununla birlikte, günümüzdeki büyük ölçekli otomatik konuşma çevirisi sistemleri, insan-insan diyaloğuyla karşılaştırıldığında makine aracılı iletişimi kusursuz hissettiren temel özelliklerden yoksundur. Bu çalışmada, uçtan uca, ifade zengini ve çok dilli çevirileri akışkan (streaming) bir biçimde mümkün kılan bir model ailesi sunuyoruz. Öncelikle, kitlevi çok dilli ve çok modlu SeamlessM4T modelinin iyileştirilmiş bir sürümüne katkıda bulunuyoruz: SeamlessM4T v2. Güncellenmiş UnitY2 çerçevesini içeren bu yeni model, daha fazla düşük kaynaklı dil verisi üzerinde eğitildi. Genişletilmiş SeamlessAlign sürümü, toplamda 76 dil için 114.800 saatlik otomatik hizalı veri ekliyor. SeamlessM4T v2, en yeni iki modelimiz olan SeamlessExpressive ve SeamlessStreaming'in başlatıldığı temeli oluşturuyor. SeamlessExpressive, vokal stilleri ve prosodiyi koruyan çeviriyi mümkün kılıyor. İfade zengini konuşma araştırmalarındaki önceki çalışmalara kıyasla, çalışmamız konuşma hızı ve duraklamalar gibi prosodinin bazı az keşfedilmiş yönlerini ele alırken, aynı zamanda kişinin ses stilini de koruyor. SeamlessStreaming'e gelince, modelimiz, tam kaynak cümleleri beklemeksizin düşük gecikmeli hedef çeviriler üretmek için Efficient Monotonic Multihead Attention (EMMA) mekanizmasından yararlanıyor. Türünün ilk örneği olan SeamlessStreaming, birden fazla kaynak ve hedef dil için eşzamanlı konuşma-konuşma/metin çevirisini mümkün kılıyor. Bu modellerin performansını anlamak için, prosodi, gecikme ve sağlamlığı değerlendirmek üzere yeni ve mevcut otomatik metriklerin değiştirilmiş sürümlerini birleştirdik. İnsan değerlendirmeleri için, anlamın, doğallığın ve ifade zenginliğinin korunmasında en ilgili nitelikleri ölçmeye yönelik mevcut protokolleri uyarladık. Modellerimizin güvenli ve sorumlu bir şekilde kullanılmasını sağlamak için, çok modlu makine çevirisine yönelik bilinen ilk red-teaming (kırmızı takım) çabasını, eklenen toksisitenin tespiti ve azaltılması için bir sistemi, cinsiyet önyargısının sistematik değerlendirmesini ve deepfake'lerin etkisini azaltmak üzere tasarlanmış duyulamaz, yerelleştirilmiş bir filigranlama mekanizmasını uyguladık. Sonuç olarak, SeamlessExpressive ve SeamlessStreaming'in ana bileşenlerini bir araya getirerek, gerçek zamanlı olarak ifade zengini dil arası iletişimi kilidini açan ilk herkese açık sistem olan Seamless'i oluşturuyoruz. Kısacası, Seamless, Evrensel Konuşma Çevirmenini bilim kurgu kavramından gerçek dünya teknolojisine dönüştürmek için gereken teknik temele önemli bir bakış açısı sunuyor. Son olarak, bu çalışmadaki katkılar—modeller, kod ve filigran algılayıcı dahil olmak üzere—halka açık olarak yayınlanmış olup aşağıdaki bağlantıdan erişilebilir.
Bu model ylacombe tarafından katkıda bulunmuştur. Orijinal kod burada bulunabilir.
Kullanım ipuçları
- Wav2Vec2-BERT, Wav2Vec2-Conformer ile aynı mimariyi izler; ancak ham dalga formu yerine sesin mel-spektrogram temsili girdi olarak kullanılır ve nedensel derinlikli konvolüsyonel bir katman kullanılır.
- Wav2Vec2-BERT, doğru
config.position_embeddings_typedeğerini ayarlayarak göreceli konum gömme kullanmayabilir, Shaw benzeri konum gömme, Transformer-XL benzeri konum gömme veya döner konum gömme kullanabilir. - Wav2Vec2-BERT, basit bir konvolüsyonel ağ yerine Conformer tabanlı bir adaptör ağı da tanıtır.
Kaynaklar
- Ayrıca, İngilizce bir konuşma tanıma modelini nasıl ince ayarlayacağınız ve herhangi bir dilde bir konuşma tanıma modelini nasıl ince ayarlayacağınız konusundaki bu defterleri de uyarlayabilirsiniz.
Wav2Vec2BertConfig
sınıf 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 )
Parametreler
- vocab_size (
int, isteğe bağlı) — Modelin sözlük boyutu.input_idsile temsil edilebilecek farklı token sayısını belirler. - hidden_size (
int, isteğe bağlı, varsayılan1024) — Gizli temsillerin boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan24) — Transformer çözücüdeki gizli katman sayısı. - num_attention_heads (
int, isteğe bağlı, varsayılan16) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - intermediate_size (
int, isteğe bağlı, varsayılan4096) — MLP temsillerinin boyutu. - feature_projection_input_dim (
int, isteğe bağlı, varsayılan 160) — Bu modelin giriş boyutu, yani SeamlessM4TFeatureExtractor veya Wav2Vec2BertProcessor ile giriş sesleri işlendikten sonraki boyut. - hidden_act (
str, isteğe bağlı, varsayılanswish) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin,"gelu","relu","silu"vb. - hidden_dropout (
Union[float, int], isteğe bağlı, varsayılan0.0) — Gömme, kodlayıcı ve havuzlayıcıdaki tüm tam bağlı katmanlar için dropout olasılığı. - activation_dropout (
Union[float, int], isteğe bağlı, varsayılan0.0) — Tamamen bağlı katmandaki aktivasyonlar için dropout oranı. - attention_dropout (
Union[float, int], isteğe bağlı, varsayılan0.0) — Dikkat olasılıkları için dropout oranı. - feat_proj_dropout (
float, opsiyonel, varsayılan 0.0) — Özellik projeksiyonu için dropout olasılığı. - final_dropout (
float, isteğe bağlı, varsayılan 0.1) — Wav2Vec2BertForCTC'nin son projeksiyon katmanı için dropout olasılığı. - layerdrop (
Union[float, int], isteğe bağlı, varsayılan0.1) — LayerDrop olasılığı. Daha fazla ayrıntı için [LayerDrop makalesine](bkz. https://huggingface.co/papers/1909.11556) bakın. - initializer_range (
float, isteğe bağlı, varsayılan0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması. - layer_norm_eps (
float, isteğe bağlı, varsayılan1e-05) — Katman normalizasyon katmanları tarafından kullanılan epsilon. - apply_spec_augment (
bool, isteğe bağlı, varsayılanTrue) — Özellik kodlayıcısının çıktılarında SpecAugment veri artırma uygulayıp uygulamayacağı. Referans için bkz. 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, isteğe bağlı, varsayılan 10) — Zaman ekseni boyunca vektör aralığının uzunluğu. - mask_time_min_masks (
int, isteğe bağlı, varsayılan 2) — Zaman ekseninde, her zaman adımı için,mask_feature_probdeğerinden bağımsız olarak,mask_feature_lengthuzunluğunda üretilen maskelerin minimum sayısı. Yalnızcamask_time_prob*len(time_axis)/mask_time_length < mask_time_min_masksdurumunda geçerlidir. - mask_feature_prob (
float, isteğe bağlı, varsayılan 0.0) — Özellik ekseni boyunca, maskelenmesi gereken tüm özellik vektörlerinin yüzdesi (0 ile 1 arasında). Maskeleme işlemi, eksen üzerindemask_feature_prob*len(feature_axis)/mask_time_lengthadet bağımsız maske üretir. Maskelenecek vektör aralığının başlangıcı olarak seçilecek her özellik vektörünün olasılığından yola çıkarak akıl yürütülürse, mask_feature_prob değeriprob_vector_start*mask_feature_lengtholmalıdır. Dikkat edin, örtüşme, maskelenen vektörlerin gerçek yüzdesini azaltabilir. Bu, yalnızcaapply_spec_augment is Trueise geçerlidir. - mask_feature_length (
int, isteğe bağlı, varsayılan 10) — Özellik ekseni boyunca vektör aralığının uzunluğu. - mask_feature_min_masks (
int, isteğe bağlı, varsayılan 0) — Her zaman adımında,mask_feature_probdeğerinden bağımsız olarak, özellik ekseni boyunca üretilenmask_feature_lengthuzunluğundaki maskelerin asgari sayısı. Yalnızcamask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_maskskoşulu sağlandığında geçerlidir. - ctc_loss_reduction (
str, isteğe bağlı, varsayılansum) —torch.nn.CTCLossçıktısına uygulanacak indirgeme yöntemini belirtir. Yalnızca eğitim sırasında geçerlidir. - ctc_zero_infinity (
bool, isteğe bağlı, varsayılanFalse) —torch.nn.CTCLossiçin sonsuz kayıpları ve ilişkili gradyanları sıfırlayıp sıfırlamayacağı. Sonsuz kayıplar, girdilerin hedeflerle hizalanmak için çok kısa olması durumunda ortaya çıkar. Yalnızca bir Wav2Vec2BertForCTC örneğinin eğitimiyle ilgilidir. - use_weighted_layer_sum (
bool, isteğe bağlı, varsayılanFalse) — Öğrenilen ağırlıklarla katman çıktıları için ağırlıklı ortalama kullanılıp kullanılmayacağı. Yalnızca Wav2Vec2BertForSequenceClassification bir örneği kullanıldığında geçerlidir. - classifier_proj_size (
int, isteğe bağlı, varsayılan 768) — Sınıflandırma için token ortalama havuzlamadan önceki projeksiyonun boyutluğu. - tdnn_dim (
tuple[int]veyalist[int], isteğe bağlı, varsayılan(512, 512, 512, 512, 1500)) — XVector modelinin TDNN modülündeki her bir 1D konvolüsyon katmanının çıktı kanal sayısını tanımlayan tamsayılardan oluşan bir demet. tdnn_dim'in uzunluğu, TDNN katmanlarının sayısını belirler. - tdnn_kernel (
tuple[int]orlist[int], isteğe bağlı, varsayılan(5, 3, 3, 1, 1)) — XVector modelinin TDNN modülündeki her 1D konvolüsyon katmanının çekirdek boyutunu tanımlayan tamsayılar dizisi. tdnn_kernel'in uzunluğu, tdnn_dim'in uzunluğuyla eşleşmelidir. - tdnn_dilation (
tuple[int]veyalist[int], isteğe bağlı, varsayılan(1, 2, 3, 1, 1)) — XVector modelinin TDNN modülündeki her bir 1D konvolüsyon katmanının genişleme (dilation) çarpanını tanımlayan tamsayı bir demet. tdnn_dilation'ın uzunluğu, tdnn_dim'ın uzunluğuyla eşleşmelidir. - xvector_output_dim (
int, isteğe bağlı, varsayılan 512) — XVector gömme vektörlerinin boyutluluğu. - pad_token_id (
int, isteğe bağlı, varsayılan0) — Sözlükte dolgu için kullanılan token kimliği. - bos_token_id (
int, isteğe bağlı, varsayılan1) — Sözlükte akış başlangıcı için kullanılan token kimliği. - eos_token_id (
Union[int, list[int]], isteğe bağlı, varsayılan2) — Sözlükte akış sonu için kullanılan token kimliği. - add_adapter (
bool, isteğe bağlı, varsayılanFalse) — Wav2Vec2Bert Encoder'ın üzerine konvolüsyonel dikkat ağı yığılmalı mı? SpeechEncoderDecoder modelleri için Wav2Vec2Bert'i ısıtmalı başlatmada (warm-start) çok faydalı olabilir. - adapter_kernel_size (
int, isteğe bağlı, varsayılan 3) — Adapter ağındaki konvolüsyon katmanlarının çekirdek boyutu. Yalnızcaadd_adapter is Trueise geçerlidir. - adapter_stride (
int, isteğe bağlı, varsayılan 2) — Adapter ağındaki konvolüsyon katmanlarının stride değeri. Yalnızcaadd_adapter is Trueise geçerlidir. - num_adapter_layers (
int, isteğe bağlı, varsayılan 1) — Adapter ağında kullanılacak konvolüsyon katmanlarının sayısı. Yalnızcaadd_adapter is Trueise geçerlidir. - adapter_act (
strveyafunction, opsiyonel, varsayılan"relu") — Adapter katmanlarındaki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Dize olarak verilirse"gelu","relu","selu","swish"ve"gelu_new"desteklenir. - use_intermediate_ffn_before_adapter (
bool, isteğe bağlı, varsayılanFalse) — Wav2Vec2Bert Encoder'ın üzerine ve adapter ağından önce ara bir ileri beslemeli (feed-forward) blok yığılmalı mı? Yalnızcaadd_adapter is Trueise geçerlidir. - output_hidden_size (
int, isteğe bağlı) — Kodlayıcı çıktı katmanının boyutluluğu. Tanımlanmamışsa, bu varsayılan olarak hidden-size değerini alır. Yalnızcaadd_adapter is Trueise geçerlidir. - position_embeddings_type (
str, isteğe bağlı, varsayılan olarak"relative_key") — şu değerlerden biri olarak belirtilebilir:rotary, döner konum gömmelemeleri için.relative, göreli konum gömme (embedding) için.relative_key, Self-Attention with Relative Position Representations (Shaw et al.) makalesinde Shaw tarafından tanımlanan göreli konum gömme (embedding) için kullanılır.Noneolarak bırakılırsa, göreli konum gömme uygulanmaz.
- rotary_embedding_base (
int, isteğe bağlı, varsayılan 10000) —"rotary"konum gömme kullanılıyorsa, gömme tabanının boyutunu tanımlar. - max_source_positions (
int, isteğe bağlı, varsayılan 5000) —"relative"konum gömme kullanılıyorsa, maksimum kaynak giriş konumlarını tanımlar. - left_max_position_embeddings (
int, isteğe bağlı, varsayılan 64) —"relative_key"(Shaw olarak da bilinir) konum gömme kullanılıyorsa, göreli konumlar için sol kırpma değerini tanımlar. - right_max_position_embeddings (
int, isteğe bağlı, varsayılan 8) —"relative_key"(Shaw olarak da bilinir) konum gömme kullanılıyorsa, göreli konumlar için sağ kırpma değerini tanımlar. - conv_depthwise_kernel_size (
int, isteğe bağlı, varsayılan 31) — Conformer bloklarındaki konvolüsyonel derinlik içi 1D katmanının çekirdek boyutu. - conformer_conv_dropout (
float, isteğe bağlı, varsayılan 0.1) — Conformer bloklarındaki tüm konvolüsyon katmanları için dropout olasılığı.
Bu, bir Wav2Vec2 BertModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Wav2Vec2 Bert modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, facebook/w2v-bert-2.0 ile benzer bir yapılandırma elde edilir.
Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.
Örnek:
>>> 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
sınıf transformers.Wav2Vec2BertProcessor
< source >( feature_extractortokenizer )
Bir özellik çıkarıcıyı ve bir belirteçleyiciyi tek bir işlemciye saran bir Wav2Vec2BertProcessor oluşturur.
Wav2Vec2BertProcessor, Wav2Vec2FeatureExtractor ve Wav2Vec2CTCTokenizer işlevlerinin tümünü sunar. Daha fazla bilgi için ~Wav2Vec2FeatureExtractor ve ~Wav2Vec2CTCTokenizer belgelerine bakın.
__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
Parametreler
- audio (
Union[numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor]], isteğe bağlı) — Hazırlanacak ses veya ses partisi. Her ses, bir NumPy dizisi veya PyTorch tensörü olabilir. NumPy dizisi/PyTorch tensörü durumunda, her sesin şekli (C, T) olmalıdır; burada C kanal sayısı, T ise sesin örnek uzunluğudur. - text (
Union[str, list[str]], isteğe bağlı) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Önceden tokenize edilmiş bir girdi geçirirseniz, gruplu girdilerle karışıklığı önlemek içinis_split_into_words=Truedeğerini ayarlayın. - return_tensors (
strveya TensorType, isteğe bağlı) — Belirlenirse, belirli bir çerçeveye ait tensörler döndürülür. Kabul edilen değerler şunlardır:'pt': PyTorchtorch.Tensornesnelerini döndürür.'np': NumPynp.ndarraynesnelerini döndürür.
- **kwargs (ProcessingKwargs, isteğe bağlı) — Her modalite (metin, görüntüler, videolar, ses) için ek işleme seçenekleri. Modelle ilgili parametreler yukarıda listelenmiştir; desteklenen argümanların tam listesi için TypedDict sınıfına bakın.
Dönüş değeri
Aşağıdaki alanlara sahip bir BatchEncoding:
- input_features — Bir modele verilecek ses giriş özellikleri.
audiodeğeriNoneolmadığında döndürülür. - attention_mask —
audioNoneolmadığında, modelin hangi zaman damgalarına dikkat etmesi gerektiğini belirleyen indeks listesi. Yalnızcatextbelirtildiğinde, token dikkat maskesini döndürür. - labels — Bir modele girdi olarak verilecek token kimliklerinin listesi. Hem
texthem deaudioNoneolmadığında döndürülür. - input_ids — Bir modele verilecek token kimliklerinin listesi.
textdeğeriNonedeğil veaudiodeğeriNoneolduğunda döndürülür.
input_features None değilse, bu yöntem input_features ve kwargs argümanlarını, giriş özelliklerini doldurmak için SeamlessM4TFeatureExtractor'ın pad() yöntemine iletir.
labels None değilse, bu yöntem labels ve kwargs argümanlarını, etiket(ler)i doldurmak için PreTrainedTokenizer'ın pad() yöntemine iletir.
Daha fazla bilgi için yukarıdaki iki yöntemin docstring'ine başvurun.
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 )
Parametreler
- pretrained_model_name_or_path (
strveyaos.PathLike) — Bunlardan biri olabilir:- bir dize, huggingface.co'daki bir model deposunda barındırılan ön eğitilmiş bir feature_extractor'ın model kimliği.
- save_pretrained() yöntemi kullanılarak kaydedilmiş bir özellik çıkarıcı dosyası içeren bir dizinin yolunu, örneğin
./my_model_directory/. - kaydedilmiş bir özellik çıkarıcı JSON dosyasına giden bir yol, örneğin
./my_model_directory/preprocessor_config.json.
- **kwargs —
Hem from_pretrained() hem de
~tokenization_utils_base.PreTrainedTokenizer.from_pretrainedfonksiyonlarına iletilen ek anahtar kelime argümanları.
Önceden eğitilmiş bir modelle ilişkili bir işlemci örnekleyin.
Bu sınıf metodu, yalnızca özellik çıkarıcının from_pretrained(), görüntü işleyicinin ImageProcessingMixin ve belirteçleştiricinin
~tokenization_utils_base.PreTrainedTokenizer.from_pretrainedmetotlarını çağırır. Daha fazla bilgi için yukarıdaki metotların dokümantasyon dizelerine (docstring) başvurun.
save_pretrained
< source >( save_directorypush_to_hub: bool = False**kwargs )
Parametreler
- save_directory (
strveyaos.PathLike) — Özellik çıkarıcısının JSON dosyasının ve tokenizer dosyalarının kaydedileceği dizin (dizin mevcut değilse oluşturulur). - push_to_hub (
bool, isteğe bağlı, varsayılanFalse) — Modelinizi kaydettikten sonra Hugging Face model hub'ına gönderip göndermeyeceğinizi belirtir. Göndermek istediğiniz depoyurepo_idile belirtebilirsiniz (varsayılan olarak ad alanınızdakisave_directoryadını kullanır). - kwargs (
dict[str, Any], isteğe bağlı) — push_to_hub() yöntemine iletilen ek anahtar kelime argümanları.
Bu işleyicinin (özellik çıkarıcı, sınıflandırıcı…) özniteliklerini, from_pretrained() yöntemiyle yeniden yüklenebilmesi için belirtilen dizinde kaydeder.
Bu sınıf metodu yalnızca save_pretrained() ve save_pretrained() çağrılarını yapar. Daha fazla bilgi için yukarıdaki metodların dokümantasyon dizelerine (docstring) başvurun.
Bu yöntem, tüm argümanlarını PreTrainedTokenizer'ın batch_decode() yöntemine iletir. Daha fazla bilgi için bu yöntemin docstring'ine başvurun.
Bu yöntem, tüm argümanlarını PreTrainedTokenizer'ın decode() yöntemine iletir. Daha fazla bilgi için bu yöntemin docstring'ine başvurun.
Wav2Vec2BertModel
sınıf transformers.Wav2Vec2BertModel
< source >( config: Wav2Vec2BertConfig )
Parametreler
- config (Wav2Vec2BertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Üzerinde herhangi bir özel başlık olmadan ham gizli durumlar (hidden-states) üreten çıplak Wav2Vec2 Bert Modeli.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
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)
Parametreler
- input_features (
torch.Tensor, şekli(batch_size, sequence_length, feature_dim), isteğe bağlı) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özellikleri Wav2Vec2FeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için Wav2Vec2FeatureExtractor.call() bölümüne bakın (Wav2Vec2BertProcessor, sesleri işlemek için Wav2Vec2FeatureExtractor kullanır). - attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- mask_time_indices (
torch.BoolTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Karşıtlı kayıp için çıkarılan özellikleri maskelemek üzere kullanılacak indeksler. Eğitim modundayken, model config.proj_codevector_dim uzayında maskelenmiş çıkarılan özellikleri tahmin etmeyi öğrenir.
Dönüş değeri
Wav2Vec2BaseModelOutput veya tuple(torch.Tensor)
Bir Wav2Vec2BaseModelOutput veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (Wav2Vec2BertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Wav2Vec2BertModel forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
last_hidden_state (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.extract_features (
torch.Tensor, şekli(batch_size, sequence_length, conv_dim[-1])) — Modelin son konvolüsyon katmanının çıkarılmış özellik vektörlerinin dizisi.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(gömme çıktısı için bir tane + her katman çıktısı için bir tane) içeren bir tuple, şekli(batch_size, sequence_length, hidden_size).Her katmanın çıktısında modelin gizli durumları ve başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Wav2Vec2BertForCTC
sınıf transformers.Wav2Vec2BertForCTC
< source >( config: Wav2Vec2BertConfigtarget_lang: str | None = None )
Parametreler
- config (Wav2Vec2BertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
- target_lang (
str, isteğe bağlı) — Adapter ağırlıklarının dil kimliği. Adapter ağırlıkları adapter..safetensors veya adapter. .bin biçiminde saklanır. Sadece adapter'larla bir UniSpeechSatForCTC örneği kullanılırken geçerlidir. Varsayılan olarak ‘eng’ kullanılır.
Üzerinde Bağlantıcı Zaman Sınıflandırması (CTC) için language modeling başlığı bulunan Wav2Vec2Bert Modeli.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
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)
Parametreler
- input_features (
torch.Tensor, şekli(batch_size, sequence_length, feature_dim), isteğe bağlı) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özellikleri Wav2Vec2FeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için Wav2Vec2FeatureExtractor.call() bölümüne bakın (Wav2Vec2BertProcessor, sesleri işlemek için Wav2Vec2FeatureExtractor kullanır). - attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- labels (
torch.LongTensor, şekli(batch_size, target_length), isteğe bağlı) — Bağlantılı zaman sınıflandırması için etiketler. Not:target_length, çıktı logitlerinin dizi uzunluğundan küçük veya eşit olmalıdır. İndeksler[-100, 0, ..., config.vocab_size - 1]aralığından seçilir.-100olarak ayarlanan tüm etiketler yok sayılır (maske uygulanır); kayıp yalnızca[0, ..., config.vocab_size - 1]aralığındaki etiketler için hesaplanır.
Dönüş değeri
CausalLMOutput veya tuple(torch.Tensor)
Bir CausalLMOutput veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (Wav2Vec2BertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Wav2Vec2BertForCTC forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
torch.Tensor, şekli(1,), isteğe bağlı,labelssağlandığında döndürülür) — Dil modelleme kaybı (sonraki token tahmini için).logits (
torch.Tensor, şekli(batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> 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
sınıf transformers.Wav2Vec2BertForSequenceClassification
< source >( config: Wav2Vec2BertConfig )
Parametreler
- config (Wav2Vec2BertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Üstünde bir dizi sınıflandırma başlığı (havuzlanmış çıktı üzerinde doğrusal bir katman) bulunan, SUPERB Keyword Spotting gibi görevler için kullanılan Wav2Vec2Bert Modeli.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
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)
Parametreler
- input_features (
torch.Tensor, şekli(batch_size, sequence_length, feature_dim), isteğe bağlı) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özellikleri Wav2Vec2FeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için Wav2Vec2FeatureExtractor.call() bölümüne bakın (Wav2Vec2BertProcessor, sesleri işlemek için Wav2Vec2FeatureExtractor kullanır). - attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- labels (
torch.LongTensor, şekli(batch_size,), isteğe bağlı) — Sınıflandırma/geri dönüş kaybını hesaplamak için etiketler. Endeksler[0, ..., config.num_labels - 1]aralığında olmalıdır.config.num_labels == 1ise bir geri dönüş kaybı (Ortalama Kare kaybı) hesaplanır,config.num_labels > 1ise bir sınıflandırma kaybı (Çapraz Entropi) hesaplanır.
Dönüş değeri
SequenceClassifierOutput veya tuple(torch.Tensor)
Bir SequenceClassifierOutput veya
torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (Wav2Vec2BertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Wav2Vec2BertForSequenceClassification forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
torch.Tensor, şekli(1,), isteğe bağlı,labelssağlandığında döndürülür) — Sınıflandırma (config.num_labels==1 ise regresyon) kaybı.logits (
torch.Tensor, şekli(batch_size, config.num_labels)) — Sınıflandırma (veya config.num_labels==1 ise regresyon) puanları (SoftMax öncesi).hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Tek etiketli sınıflandırma örneği:
>>> 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)
...Çok etiketli sınıflandırma örneği:
>>> 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
sınıf transformers.Wav2Vec2BertForAudioFrameClassification
< source >( config: Wav2Vec2BertConfig )
Parametreler
- config (Wav2Vec2BertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Konuşmacı Ayrıştırma gibi görevler için üstünde bir çerçeve sınıflandırma başlığı bulunan Wav2Vec2 Bert Modeli.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
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)
Parametreler
- input_features (
torch.Tensor, şekli(batch_size, sequence_length, feature_dim), isteğe bağlı) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özellikleri Wav2Vec2FeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için Wav2Vec2FeatureExtractor.call() bölümüne bakın (Wav2Vec2BertProcessor, sesleri işlemek için Wav2Vec2FeatureExtractor kullanır). - attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- labels (
torch.LongTensor, şekli(batch_size,), isteğe bağlı) — Sınıflandırma/geri dönüş kaybını hesaplamak için etiketler. Endeksler[0, ..., config.num_labels - 1]aralığında olmalıdır.config.num_labels == 1ise bir geri dönüş kaybı (Ortalama Kare kaybı) hesaplanır,config.num_labels > 1ise bir sınıflandırma kaybı (Çapraz Entropi) hesaplanır.
Dönüş değeri
TokenClassifierOutput veya tuple(torch.Tensor)
Bir TokenClassifierOutput veya
torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (Wav2Vec2BertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Wav2Vec2BertForAudioFrameClassification forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
torch.Tensor, şekli(1,), isteğe bağlı,labelssağlandığında döndürülür) — Sınıflandırma kaybı.logits (
torch.Tensor, şekli(batch_size, sequence_length, config.num_labels)) — Sınıflandırma puanları (SoftMax öncesi).hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> 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
sınıf transformers.Wav2Vec2BertForXVector
< source >( config: Wav2Vec2BertConfig )
Parametreler
- config (Wav2Vec2BertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Konuşmacı Doğrulama gibi görevler için üstünde XVector özellik çıkarma kafası bulunan Wav2Vec2Bert Modeli.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
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)
Parametreler
- input_features (
torch.Tensor, şekli(batch_size, sequence_length, feature_dim), isteğe bağlı) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özellikleri Wav2Vec2FeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için Wav2Vec2FeatureExtractor.call() bölümüne bakın (Wav2Vec2BertProcessor, sesleri işlemek için Wav2Vec2FeatureExtractor kullanır). - attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- labels (
torch.LongTensor, şekli(batch_size,), isteğe bağlı) — Sınıflandırma/geri dönüş kaybını hesaplamak için etiketler. Endeksler[0, ..., config.num_labels - 1]aralığında olmalıdır.config.num_labels == 1ise bir geri dönüş kaybı (Ortalama Kare kaybı) hesaplanır,config.num_labels > 1ise bir sınıflandırma kaybı (Çapraz Entropi) hesaplanır.
Dönüş değeri
XVectorOutput veya tuple(torch.Tensor)
XVectorOutput veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (Wav2Vec2BertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Wav2Vec2BertForXVector forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
torch.Tensor, şekli(1,), isteğe bağlı,labelssağlandığında döndürülür) — Sınıflandırma kaybı.logits (
torch.Tensor, şekli(batch_size, config.xvector_output_dim)) — AMSoftmax öncesi sınıflandırma gizli durumları.embeddings (
torch.Tensor, şekli(batch_size, config.xvector_output_dim)) — Vektör benzerliğine dayalı geri getirme için kullanılan cümle gömme değerleri.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(gömme çıktısı için bir tane + her katman çıktısı için bir tane) içeren bir tuple, şekli(batch_size, sequence_length, hidden_size).Her katmanın çıktısında modelin gizli durumları ve başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> 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)
...