Transformers documentation
UniSpeech
نُشر هذا النموذج في أوراق HF في 19 يناير 2021، وأُضيف إلى مكتبة Hugging Face Transformers في 26 أكتوبر 2021.
UniSpeech
نظرة عامة
قُدِّم نموذج UniSpeech في UniSpeech: Unified Speech Representation Learning with Labeled and Unlabeled Data من قِبل Chengyi Wang وYu Wu وYao Qian وKenichi Kumatani وShujie Liu وFuru Wei وMichael Zeng وXuedong Huang.
المستخلص من الورقة البحثية هو كالتالي:
في هذه الورقة، نقترح نهجًا موحّدًا للتدريب المسبق يُسمى UniSpeech لتعلّم تمثيلات الكلام باستخدام بيانات غير موسومة وبيانات موسومة، حيث يتم إجراء تعلّم CTC الصوتي المُوجَّه وتعلّم ذاتي غير مُراقب يراعي البنية الصوتية بطريقة تعلّم متعدد المهام. يمكن للتمثيلات الناتجة التقاط معلومات أكثر ارتباطًا بالبنى الصوتية وتحسين التعميم عبر اللغات والمجالات. نقيّم فعالية UniSpeech في تعلّم التمثيلات عبر اللغات على مجموعة بيانات CommonVoice العامة. تُظهر النتائج أن UniSpeech يتفوق على التدريب المسبق غير المُراقب والتعلّم الانتقالي المُوجَّه في التعرف على الكلام بنسبة خفض نسبي في معدل خطأ المقطع الصوتي تصل إلى 13.4% و17.8% على التوالي (متوسطًا على جميع لغات الاختبار). كما تم توضيح قابلية UniSpeech للنقل في مهمة التعرف على الكلام مع انزياح المجال، أي خفض نسبي في معدل خطأ الكلمة بنسبة 6% مقارنةً بالمنهج السابق.
تمت مساهمة هذا النموذج من قِبل patrickvonplaten. يمكن العثور على كود المؤلفين هنا.
نصائح للاستخدام
- يُعدّ UniSpeech نموذجًا للكلام يستقبل مصفوفة من الأرقام العشرية (float) تتوافق مع الموجة الخام لإشارة الكلام. يُرجى استخدام Wav2Vec2Processor لاستخراج الميزات.
- يمكن ضبط نموذج UniSpeech باستخدام التصنيف الزمني المتصل (CTC)، لذا يجب فك ترميز مخرجات النموذج باستخدام Wav2Vec2CTCTokenizer.
الموارد
UniSpeechConfig
فئة transformers.UniSpeechConfig
< 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 = 32hidden_size: int = 768num_hidden_layers: int = 12num_attention_heads: int = 12intermediate_size: int = 3072hidden_act: str = 'gelu'hidden_dropout: float | int = 0.1activation_dropout: float | int = 0.1attention_dropout: float | int = 0.1feat_proj_dropout: float | int = 0.0feat_quantizer_dropout: float | int = 0.0final_dropout: float | int = 0.1layerdrop: float | int = 0.1initializer_range: float = 0.02layer_norm_eps: float = 1e-05feat_extract_norm: str = 'group'feat_extract_activation: str = 'gelu'conv_dim: list[int] | tuple[int, ...] = (512, 512, 512, 512, 512, 512, 512)conv_stride: list[int] | tuple[int, ...] = (5, 2, 2, 2, 2, 2, 2)conv_kernel: list[int] | tuple[int, ...] = (10, 3, 3, 3, 3, 2, 2)conv_bias: bool = Falsenum_conv_pos_embeddings: int = 128num_conv_pos_embedding_groups: int = 16do_stable_layer_norm: bool = Falseapply_spec_augment: bool = Truemask_time_prob: float | int = 0.05mask_time_length: int = 10mask_time_min_masks: int = 2mask_feature_prob: float | int = 0.0mask_feature_length: int = 10mask_feature_min_masks: int = 0num_codevectors_per_group: int = 320num_codevector_groups: int = 2contrastive_logits_temperature: float = 0.1num_negatives: int = 100codevector_dim: int = 256proj_codevector_dim: int = 256diversity_loss_weight: float = 0.1ctc_loss_reduction: str = 'mean'ctc_zero_infinity: bool = Falseuse_weighted_layer_sum: bool = Falseclassifier_proj_size: int = 256num_ctc_classes: int = 80pad_token_id: int | None = 0bos_token_id: int | None = 1eos_token_id: int | list[int] | None = 2replace_prob: float | int = 0.5 )
المعاملات
- vocab_size (
int، اختياري، القيمة الافتراضية32) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطةinput_ids. - hidden_size (
int، اختياري، القيمة الافتراضية768) — أبعاد التمثيلات المخفية. - num_hidden_layers (
int، اختياري، القيمة الافتراضية12) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية12) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - intermediate_size (
int، اختياري، القيمة الافتراضية3072) — أبعاد تمثيلات MLP. - hidden_act (
str، اختياري، القيمة الافتراضيةgelu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وما إلى ذلك. - hidden_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.1) — احتمالية dropout لجميع الطبقات المتصلة بالكامل في التضمينات والمُشفِّر (encoder) والمُجمِّع (pooler). - activation_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.1) — نسبة dropout للتفعيلات داخل الطبقة المتصلة بالكامل. - attention_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.1) — نسبة الإسقاط (dropout) لاحتمالات الانتباه. - feat_proj_dropout (
float, اختياري، القيمة الافتراضية 0.0) — احتمالية الإسقاط (dropout) لمخرج مُشفِّر الميزات. - feat_quantizer_dropout (
float, اختياري، القيمة الافتراضية 0.0) — احتمال الإسقاط (dropout) الخاص بمخرج مُشفِّر الميزات الذي يستخدمه المُكمِّم (quantizer). - final_dropout (
float، اختياري، القيمة الافتراضية 0.1) — احتمالية الإسقاط (dropout) لطبقة الإسقاط النهائية في UniSpeechForCTC. - layerdrop (
Union[float, int]، اختياري، القيمة الافتراضية0.1) — احتمالية LayerDrop. راجع [ورقة LayerDrop](انظر https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - layer_norm_eps (
float, اختياري، القيمة الافتراضية1e-05) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة. - feat_extract_norm (
str، اختياري، القيمة الافتراضية"group") — التطبيع الذي يُطبَّق على طبقات الالتفاف أحادية البعد في مُرمِّز الميزات. إما"group"لتطبيع المجموعات على الطبقة الالتفافية أحادية البعد الأولى فقط، أو"layer"لتطبيع الطبقات على جميع طبقات الالتفاف أحادية البعد. - feat_extract_activation (
str, *optional*, defaults to“gelu”) -- The non-linear activation function (function or string) in the 1D convolutional layers of the feature extractor. If string,“gelu”,“relu”,“selu”and“gelu_new”` are supported. - conv_dim (
tuple[int]أوlist[int]، اختياري، القيمة الافتراضية(512, 512, 512, 512, 512, 512, 512)) — مجموعة من الأعداد الصحيحة تحدد عدد قنوات الإدخال والإخراج لكل طبقة تلافيفية أحادية البعد في مشفّر الميزات. يحدد طول conv_dim عدد طبقات التلافيف أحادية البعد. - conv_stride (
tuple[int]أوlist[int]، اختياري، القيمة الافتراضية(5, 2, 2, 2, 2, 2, 2)) — مجموعة من الأعداد الصحيحة تُعرّف خطوة (stride) كل طبقة تلافيفية أحادية البعد في مُشفِّر الميزات. يحدد طول conv_stride عدد الطبقات التلافيفية، ويجب أن يطابق طول conv_dim. - conv_kernel (
tuple[int]أوlist[int]، اختياري، القيمة الافتراضية(10, 3, 3, 3, 3, 2, 2)) — مجموعة من الأعداد الصحيحة تحدد حجم النواة لكل طبقة تجميعية أحادية البعد في مشفّر الميزات. طول conv_kernel يحدد عدد طبقات التجميع، ويجب أن يطابق طول conv_dim. - conv_bias (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كانت طبقات الالتفاف أحادية البعد تحتوي على انحياز. - num_conv_pos_embeddings (
int، اختياري، القيمة الافتراضية 128) — عدد التضمينات الموضعية التلافيفية. يحدد حجم النواة لطبقة التضمينات الموضعية التلافيفية أحادية البعد. - num_conv_pos_embedding_groups (
int، اختياري، القيمة الافتراضية 16) — عدد مجموعات طبقة التضمينات الموضعية التحويلية أحادية البُعد. - do_stable_layer_norm (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم تطبيق معمارية stable لطبقة normalization في مُشفِّر Transformer. يتوافقdo_stable_layer_norm is Trueمع تطبيق طبقة normalization قبل طبقة الانتباه، بينما يتوافقdo_stable_layer_norm is Falseمع تطبيق طبقة normalization بعد طبقة الانتباه. - apply_spec_augment (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تطبيق توسيع البيانات SpecAugment على مخرجات مُشفِّر الميزات. للاطلاع على المرجع، راجع SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition. - mask_time_prob (
float, optional, defaults to 0.05) — Percentage (between 0 and 1) of all feature vectors along the time axis which will be masked. The masking procedure generates ”mask_time_problen(time_axis)/mask_time_length” independent masks over the axis. If reasoning from the probability of each feature vector to be chosen as the start of the vector span to be masked, mask_time_prob should be `prob_vector_startmask_time_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant ifapply_spec_augment is True`. - mask_time_length (
int، اختياري، القيمة الافتراضية 10) — طول امتداد المتجه على محور الزمن. - mask_time_min_masks (
int، اختياري، القيمة الافتراضية 2) — الحد الأدنى لعدد الأقنعة بطولmask_feature_lengthالتي يتم توليدها على محور الزمن، لكل خطوة زمنية، بغض النظر عنmask_feature_prob. لا ينطبق إلا إذا كان ”mask_time_prob*len(time_axis)/mask_time_length < mask_time_min_masks” - mask_feature_prob (
float, optional, defaults to 0.0) — Percentage (between 0 and 1) of all feature vectors along the feature axis which will be masked. The masking procedure generates ”mask_feature_problen(feature_axis)/mask_time_length” independent masks over the axis. If reasoning from the probability of each feature vector to be chosen as the start of the vector span to be masked, mask_feature_prob should be `prob_vector_startmask_feature_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant ifapply_spec_augment is True`. - mask_feature_length (
int، اختياري، القيمة الافتراضية 10) — طول النطاق المتجهي على محور الميزة. - mask_feature_min_masks (
int, اختياري، القيمة الافتراضية 0) — الحد الأدنى لعدد الأقنعة بطولmask_feature_lengthالتي يتم توليدها على طول محور الميزات، في كل خطوة زمنية، بغض النظر عنmask_feature_prob. لا ينطبق إلا إذا كان ”mask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks” - num_codevectors_per_group (
int، اختياري، القيمة الافتراضية 320) — عدد العناصر في كل كتاب تكميم (مجموعة). - num_codevector_groups (
int, اختياري، القيمة الافتراضية 2) — عدد مجموعات متجهات الترميز (codevector groups) لاختزال متجهات الترميز الضربي (product codevector quantization). - contrastive_logits_temperature (
float، اختياري، القيمة الافتراضية 0.1) — درجة الحرارة kappa في دالة الخسارة التباينية. - num_negatives (
int، اختياري، القيمة الافتراضية 100) — عدد العينات السالبة لخسارة التباينية. - codevector_dim (
int، اختياري، القيمة الافتراضية 256) — أبعاد متجهات الميزات المُكمّاة. - proj_codevector_dim (
int، اختياري، القيمة الافتراضية 256) — أبعاد الإسقاط النهائي لكل من الميزات المُكمّاة وميزات المحوّل. - diversity_loss_weight (
int، اختياري، القيمة الافتراضية 0.1) — وزن مكوّن خسارة تنوّع كودبوك. - ctc_loss_reduction (
str، اختياري، القيمة الافتراضيةmean) — يحدد طريقة الاختزال (reduction) المطبقة على مخرجاتtorch.nn.CTCLoss. لا ينطبق إلا أثناء التدريب. - ctc_zero_infinity (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم تصفير الخسائر اللانهائية والتدرجات المرتبطة بها فيtorch.nn.CTCLoss. تحدث الخسائر اللانهائية بشكل رئيسي عندما تكون المدخلات قصيرة جداً بحيث لا يمكن محاذاة الأهداف. لا ينطبق إلا عند تدريب مثيل من UniSpeechForCTC. - use_weighted_layer_sum (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام متوسط مرجح لمخرجات الطبقات بأوزان متعلمة. لا ينطبق إلا عند استخدام كائن من UniSpeechForSequenceClassification. - classifier_proj_size (
int، اختياري، القيمة الافتراضية 256) — أبعاد الإسقاط قبل متوسط تجميع الرموز للتصنيف. - num_ctc_classes (
int, اختياري، القيمة الافتراضية 80) — يحدد عدد الفئات (رموز الفونيمات ورمز الفراغ) لخسارة CTC على مستوى الفونيمات. يكون ذا صلة فقط عند استخدام مثيل من UniSpeechForPreTraining. - pad_token_id (
int، اختياري، القيمة الافتراضية0) — معرّف الرمز المستخدم للتعبئة في المفردات. - bos_token_id (
int، اختياري، القيمة الافتراضية1) — معرّف الرمز المستخدم لبدء البث في المفردات. - eos_token_id (
Union[int, list[int]]، اختياري، القيمة الافتراضية2) — معرّف الرمز المستخدم لنهاية التدفق في المفردات. - replace_prob (
float، اختياري، القيمة الافتراضية 0.5) — احتمال استبدال ميزة المحوّل (transformer feature) بميزة مُكمّمة (quantized feature) أثناء التدريب المسبق.
هذه فئة الإعدادات المخزنة لإعدادات نموذج UniSpeechModel. تُستخدم لتوليد نموذج Unispeech وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ microsoft/unispeech-large-1500h-cv
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
مثال:
>>> from transformers import UniSpeechConfig, UniSpeechModel
>>> # Initializing a UniSpeech facebook/unispeech-base-960h style configuration
>>> configuration = UniSpeechConfig()
>>> # Initializing a model (with random weights) from the facebook/unispeech-base-960h style configuration
>>> model = UniSpeechModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configالمخرجات الخاصة بـ UniSpeech
فئة transformers.models.unispeech.modeling_unispeech.UniSpeechForPreTrainingOutput
< source >( loss: typing.Optional[torch.Tensor] = Noneprojected_states: typing.Optional[torch.Tensor] = Noneprojected_quantized_states: typing.Optional[torch.Tensor] = Nonecodevector_perplexity: typing.Optional[torch.Tensor] = Nonehidden_states: tuple[torch.Tensor] | None = Noneattentions: tuple[torch.Tensor] | None = None )
المعاملات
- loss (
*optional*, returned when model is in train mode,torch.Tensorof shape(1,)) — Total loss as the sum of the contrastive loss (L_m) and the diversity loss (L_d) as stated in the official paper. - projected_states (
torch.Tensorمن الشكل(batch_size, sequence_length, config.proj_codevector_dim)) — حالات النموذج المخفية المُسقطَة إلى config.proj_codevector_dim والتي يمكن استخدامها للتنبؤ بالحالات المُكمَّاة المُسقطَة المُقنَّعة. - projected_quantized_states (
torch.Tensorمن الشكل(batch_size, sequence_length, config.proj_codevector_dim)) — متجهات ميزات مُستخرَجة ومُكمّاة ومُرمَّزة إلى config.proj_codevector_dim تمثّل متجهات الهدف الموجبة لفقد التبايني. - codevector_perplexity (
torch.Tensorمن الشكل(1,)) — قيمة الحيرة (Perplexity) لتوزيع متجهات الكود (codevector)، وتُستخدم لقياس تنوع دفتر الكود (codebook). - hidden_states (
tuple[torch.Tensor], اختياري, يُعاد عندoutput_hidden_states=Trueتمريرconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحد لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحد لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- attentions (
tuple[torch.Tensor], اختياري, يُعاد عندoutput_attentions=Trueتمريرconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحد لكل طبقة) من الشكل(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
نوع المخرجات الخاص بـ UniSpeechForPreTrainingOutput، مع إمكانية تضمين الحالات المخفية والانتباه.
UniSpeechModel
فئة transformers.UniSpeechModel
< source >( config: UniSpeechConfig )
المعاملات
- config (UniSpeechConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Unispeech الأساسي الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonemask_time_indices: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Wav2Vec2BaseModelOutput or tuple(torch.Tensor)
المعاملات
- input_values (
torch.Tensorمن الشكل(batch_size, sequence_length)، اختياري) — قيم عشرية لموجة الصوت الخام المدخلة. يمكن الحصول على القيم عن طريق تحميل ملف صوتي من نوع.flacأو.wavفي مصفوفة من النوعlist[float]أوnumpy.ndarrayأوtorch.Tensor، على سبيل المثال عبر مكتبة torchcodec (pip install torchcodec) أو مكتبة soundfile (pip install soundfile). لتجهيز المصفوفة إلىinput_values، يجب استخدام AutoProcessor للإضافة الحشوية (padding) والتحويل إلى متجه من النوعtorch.Tensor. راجع Wav2Vec2Processor.call() للتفاصيل. - attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- mask_time_indices (
torch.BoolTensorمن الشكل(batch_size, sequence_length)، اختياري) — فهارس لإخفاء الميزات المستخرجة من أجل خسارة التباينية. عند التواجد في وضع التدريب، يتعلم النموذج التنبؤ بالميزات المستخرجة المخفية في فضاء config.proj_codevector_dim.
يعيد
Wav2Vec2BaseModelOutput أو tuple(torch.Tensor)
Wav2Vec2BaseModelOutput أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (UniSpeechConfig) والمدخلات.
تتجاوز طريقة UniSpeechModel الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.extract_features (
torch.Tensorمن الشكل(batch_size, sequence_length, conv_dim[-1])) — تسلسل متجهات الميزات المستخرجة من الطبقة الالتفافية الأخيرة في النموذج.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
UniSpeechForCTC
فئة transformers.UniSpeechForCTC
< source >( config: UniSpeechConfigtarget_lang: str | None = None )
المعاملات
- config (UniSpeechConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
- target_lang (
str، اختياري) — معرّف لغة أوزان المُكيّف. تُخزَّن أوزان المُكيّف بالصيغة adapter..safetensors أو adapter. .bin. يكون ذا صلة فقط عند استخدام مثيل من UniSpeechForCTC مع المُكيّفات. يستخدم ‘eng’ افتراضيًا.
نموذج UniSpeech مع رأس language modeling في الأعلى لتصنيف الزمن المتصل (CTC).
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutput or tuple(torch.Tensor)
المعاملات
- input_values (
torch.Tensorمن الشكل(batch_size, sequence_length)، اختياري) — قيم عشرية لموجة الصوت الخام المدخلة. يمكن الحصول على القيم عن طريق تحميل ملف صوتي من نوع.flacأو.wavفي مصفوفة من النوعlist[float]أوnumpy.ndarrayأوtorch.Tensor، على سبيل المثال عبر مكتبة torchcodec (pip install torchcodec) أو مكتبة soundfile (pip install soundfile). لتجهيز المصفوفة إلىinput_values، يجب استخدام AutoProcessor للإضافة الحشوية (padding) والتحويل إلى متجه من النوعtorch.Tensor. راجع Wav2Vec2Processor.call() للتفاصيل. - attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- labels (
torch.LongTensorمن الشكل(batch_size, target_length)، اختياري) — التسميات لتصنيف الزمن المتصل. لاحظ أنtarget_lengthيجب أن يكون أصغر من أو يساوي طول التسلسل لقيمات الإخراج. يتم اختيار الفهارس من[-100, 0, ..., config.vocab_size - 1]. تُتجاهل (تُقنَّع) جميع التسميات المضبوطة على-100، ولا يُحسب الخسارة إلا للتسميات الموجودة في[0, ..., config.vocab_size - 1].
يعيد
CausalLMOutput أو tuple(torch.Tensor)
CausalLMOutput أو مجموعة مرتبة من
torch.Tensor (في حال تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (UniSpeechConfig) والمدخلات.
تُعيد طريقة UniSpeechForCTC الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.Tensorof shape(1,), اختياري, يُعاد عند توفيرlabels) — خسارة نمذجة اللغة (لتوقع الرمز التالي).logits (
torch.Tensorمن الشكل(batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
مثال:
>>> from transformers import AutoProcessor, UniSpeechForCTC
>>> from datasets import load_dataset
>>> import torch
>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate
>>> processor = AutoProcessor.from_pretrained("microsoft/unispeech-large-1500h-cv")
>>> model = UniSpeechForCTC.from_pretrained("microsoft/unispeech-large-1500h-cv")
>>> # audio file is decoded on the fly
>>> inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_ids = torch.argmax(logits, dim=-1)
>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids)
>>> transcription[0]
...
>>> inputs["labels"] = processor(text=dataset[0]["text"], return_tensors="pt").input_ids
>>> # compute loss
>>> loss = model(**inputs).loss
>>> round(loss.item(), 2)
...UniSpeechForSequenceClassification
فئة transformers.UniSpeechForSequenceClassification
< source >( config: UniSpeechConfig )
المعاملات
- config (UniSpeechConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج UniSpeech مع رأس تصنيف تسلسلي في الأعلى (طبقة خطية فوق المخرجات المجمّعة) لمهام مثل SUPERB Keyword Spotting.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SequenceClassifierOutput or tuple(torch.Tensor)
المعاملات
- input_values (
torch.Tensorمن الشكل(batch_size, sequence_length)) — قيم عشرية لموجة الصوت الخام المُدخلة. يمكن الحصول على هذه القيم عن طريق تحميل ملف صوتي من نوع.flacأو.wavفي مصفوفة من النوعlist[float]أوnumpy.ndarrayأوtorch.Tensor، على سبيل المثال باستخدام مكتبة torchcodec (pip install torchcodec) أو مكتبة soundfile (pip install soundfile). لتجهيز المصفوفة إلىinput_values، يجب استخدام AutoProcessor لإضافة الحشو والتحويل إلى متجه من النوعtorch.Tensor. راجعUniSpeechProcessor.__call__للتفاصيل. - attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- labels (
torch.LongTensorمن الشكل(batch_size,)، اختياري) — التسميات لحساب خسارة تصنيف/الانحدار التسلسلي. يجب أن تكون الفهارس ضمن[0, ..., config.num_labels - 1]. إذا كانconfig.num_labels == 1يتم حساب خسارة الانحدار (خسارة متوسط المربع)، وإذا كانconfig.num_labels > 1يتم حساب خسارة التصنيف (الإنتروبيا المتقاطعة).
يعيد
SequenceClassifierOutput أو tuple(torch.Tensor)
SequenceClassifierOutput أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (UniSpeechConfig) والمدخلات.
تتجاوز طريقة UniSpeechForSequenceClassification الخاصة بـ forward الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.Tensorمن الشكل(1,)، اختياري، يُعاد عند توفيرlabels) — خسارة التصنيف (أو الانحدار إذا كان config.num_labels==1).logits (
torch.Tensorمن الشكل(batch_size, config.num_labels)) — درجات التصنيف (أو الانحدار إذا كان config.num_labels==1) (قبل SoftMax).hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
مثال على تصنيف بوسم واحد:
>>> import torch
>>> from transformers import AutoTokenizer, UniSpeechForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("microsoft/unispeech-large-1500h-cv")
>>> model = UniSpeechForSequenceClassification.from_pretrained("microsoft/unispeech-large-1500h-cv")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_class_id = logits.argmax().item()
>>> model.config.id2label[predicted_class_id]
...
>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = UniSpeechForSequenceClassification.from_pretrained("microsoft/unispeech-large-1500h-cv", num_labels=num_labels)
>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...مثال على تصنيف متعدد التسميات:
>>> import torch
>>> from transformers import AutoTokenizer, UniSpeechForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("microsoft/unispeech-large-1500h-cv")
>>> model = UniSpeechForSequenceClassification.from_pretrained("microsoft/unispeech-large-1500h-cv", problem_type="multi_label_classification")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_class_ids = torch.arange(0, logits.shape[-1])[torch.sigmoid(logits).squeeze(dim=0) > 0.5]
>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = UniSpeechForSequenceClassification.from_pretrained(
... "microsoft/unispeech-large-1500h-cv", num_labels=num_labels, problem_type="multi_label_classification"
... )
>>> labels = torch.sum(
... torch.nn.functional.one_hot(predicted_class_ids[None, :].clone(), num_classes=num_labels), dim=1
... ).to(torch.float)
>>> loss = model(**inputs, labels=labels).lossUniSpeechForPreTraining
فئة transformers.UniSpeechForPreTraining
< source >( config: UniSpeechConfig )
المعاملات
- config (UniSpeechConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج UniSpeech مع وحدة تكميم متجهات وخسارة ctc للتدريب المسبق.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → UniSpeechForPreTrainingOutput or tuple(torch.Tensor)
المعاملات
- input_values (
torch.Tensorمن الشكل(batch_size, sequence_length)، اختياري) — قيم عشرية لموجة الصوت الخام المدخلة. يمكن الحصول على القيم عن طريق تحميل ملف صوتي من نوع.flacأو.wavفي مصفوفة من النوعlist[float]أوnumpy.ndarrayأوtorch.Tensor، على سبيل المثال عبر مكتبة torchcodec (pip install torchcodec) أو مكتبة soundfile (pip install soundfile). لتجهيز المصفوفة إلىinput_values، يجب استخدام AutoProcessor للإضافة الحشوية (padding) والتحويل إلى متجه من النوعtorch.Tensor. راجع Wav2Vec2Processor.call() للتفاصيل. - attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
يعيد
UniSpeechForPreTrainingOutput أو tuple(torch.Tensor)
UniSpeechForPreTrainingOutput أو مجموعة مرتبة من
torch.Tensor (في حال تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (UniSpeechConfig) والمدخلات.
تتجاوز طريقة UniSpeechForPreTraining الخاصة بالتقديم الأمامي الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
*optional*, returned when model is in train mode,torch.Tensorof shape(1,)) — Total loss as the sum of the contrastive loss (L_m) and the diversity loss (L_d) as stated in the official paper.projected_states (
torch.Tensorمن الشكل(batch_size, sequence_length, config.proj_codevector_dim)) — حالات النموذج المخفية المُسقطَة إلى config.proj_codevector_dim والتي يمكن استخدامها للتنبؤ بالحالات الكمّية المُسقطَة المقنّعة.projected_quantized_states (
torch.Tensorof shape(batch_size, sequence_length, config.proj_codevector_dim)) — متجهات الميزات المستخرجة المُكمّاة والمُرمّزة إلى config.proj_codevector_dim وتمثل متجهات الهدف الموجبة لخسارة التباينية.codevector_perplexity (
torch.Tensorمن الشكل(1,)) — قيمة الحيرة (perplexity) لتوزيع codevector، وتُستخدم لقياس تنوع دفتر الرموز (codebook).hidden_states (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
مثال:
>>> import torch
>>> from transformers import AutoFeatureExtractor, UniSpeechForPreTraining
>>> feature_extractor = AutoFeatureExtractor.from_pretrained("microsoft/unispeech-large-1500h-cv")
>>> model = UniSpeechForPreTraining.from_pretrained("microsoft/unispeech-large-1500h-cv")
>>> # TODO: Add full pretraining example