Transformers documentation

SeamlessM4T

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

and get access to the augmented documentation experience

to get started

نُشر هذا النموذج في أوراق HF في 22 أغسطس 2023، وأُضيف إلى مكتبة Hugging Face Transformers في 23 أكتوبر 2023.

SDPA

SeamlessM4T

نظرة عامة

قُدِّم نموذج SeamlessM4T في SeamlessM4T — Massively Multilingual & Multimodal Machine Translation من قِبل فريق Seamless Communication التابع لـ Meta AI.

هذا هو إصدار الإصدار 1 من النموذج. للاطلاع على إصدار الإصدار 2 المحدّث، راجع وثائق Seamless M4T v2.

SeamlessM4T هي مجموعة من النماذج مصممة لتقديم ترجمة عالية الجودة، مما يتيح للأشخاص من مجتمعات لغوية مختلفة التواصل بسهولة عبر الكلام والنص.

يتيح SeamlessM4T تنفيذ مهام متعددة دون الاعتماد على نماذج منفصلة:

  • الترجمة من الكلام إلى الكلام (S2ST)
  • الترجمة من الكلام إلى النص (S2TT)
  • ترجمة النص إلى كلام (T2ST)
  • الترجمة من نص إلى نص (T2TT)
  • التعرف التلقائي على الكلام (ASR)

يمكن لـ SeamlessM4TModel تنفيذ جميع المهام المذكورة أعلاه، لكن لكل مهمة نموذج فرعي مخصص لها.

المستخلص من الورقة البحثية هو كالتالي:

ما الذي يلزم لإنشاء «Babel Fish»، وهو أداة يمكنها مساعدة الأفراد في ترجمة الكلام بين أي لغتين؟ في حين أن الاختراقات الأخيرة في النماذج القائمة على النص قد وسّعت نطاق الترجمة الآلية ليشمل أكثر من 200 لغة، فإن نماذج الترجمة الموحّدة من الكلام إلى الكلام لم تحقق بعد تقدماً مماثلاً. وبشكل أكثر تحديداً، تعتمد أنظمة الترجمة التقليدية من الكلام إلى الكلام على أنظمة متسلسلة (cascaded) تنجز الترجمة بشكل تدريجي، مما يجعل أنظمة موحّدة عالية الأداء بعيدة المنال. لمعالجة هذه الفجوات، نقدّم SeamlessM4T، وهو نموذج واحد يدعم الترجمة من الكلام إلى الكلام، والترجمة من الكلام إلى النص، والترجمة من النص إلى الكلام، والترجمة من النص إلى النص، والتعرف التلقائي على الكلام، لعدد يصل إلى 100 لغة. ولبناء هذا النموذج، استخدمنا مليون ساعة من بيانات الصوت المفتوحة لتعلّم تمثيلات كلامية ذاتية الإشراف باستخدام w2v-BERT 2.0. ثم أنشأنا مجموعة بيانات متعددة الوسائط تضم ترجمات كلامية محاذاة آلياً. وبعد تصفية هذه البيانات ودمجها مع بيانات موسومة يدوياً وبيانات موسومة بشكل شبه آلي، طوّرنا أول نظام متعدد اللغات قادر على الترجمة من الإنجليزية وإليها لكل من الكلام والنص. على مجموعة FLEURS، يضع SeamlessM4T معياراً جديداً للترجمة إلى لغات هدف متعددة، محققاً تحسناً بنسبة 20% في مؤشر BLEU مقارنة بأفضل أداء سابق (SOTA) في الترجمة المباشرة من الكلام إلى النص. وبالمقارنة مع نماذج متسلسلة قوية، يحسّن SeamlessM4T جودة الترجمة إلى الإنجليزية بمقدار 1.3 نقطة BLEU في الترجمة من الكلام إلى النص، وبمقدار 2.6 نقطة ASR-BLEU في الترجمة من الكلام إلى الكلام. وعند اختبار المتانة، يتفوق نظامنا في التعامل مع الضوضاء الخلفية وتباينات المتكلمين في مهام الترجمة من الكلام إلى النص مقارنة بأفضل نموذج حالي (SOTA). والأهم من ذلك، قيّمنا SeamlessM4T من حيث التحيز الجنسي وأضفنا قياس السمية لتقييم سلامة الترجمة. وأخيراً، جميع المساهمات في هذا العمل مفتوحة المصدر ومتاحة على https://github.com/facebookresearch/seamless_communication

الاستخدام

أولاً، حمّل المعالج ونقطة تحقق من النموذج:

from transformers import AutoProcessor, SeamlessM4TModel


processor = AutoProcessor.from_pretrained("facebook/hf-seamless-m4t-medium")
model = SeamlessM4TModel.from_pretrained("facebook/hf-seamless-m4t-medium", device_map="auto")

يمكنك استخدام هذا النموذج بسلاسة على النص أو على الصوت، لتوليد نص مترجم أو صوت مترجم.

إليك كيفية استخدام المعالج لمعالجة النص والصوت:

# let's load an audio sample from an Arabic speech corpus
from datasets import load_dataset


dataset = load_dataset("halabi2016/arabic_speech_corpus", split="test", streaming=True)
audio_sample = next(iter(dataset))["audio"]

# now, process it
audio_inputs = processor(audio=audio_sample["array"], return_tensors="pt").to(model.device)

# now, process some English test as well
text_inputs = processor(text = "Hello, my dog is cute", src_lang="eng", return_tensors="pt").to(model.device)

الخطاب

يمكن لنموذج SeamlessM4TModel توليد النص أو الكلام بشكل سلس مع تغييرات قليلة أو معدومة. لنستهدف ترجمة الصوت إلى الروسية:

audio_array_from_text = model.generate(**text_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()
audio_array_from_audio = model.generate(**audio_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()

باستخدام نفس الكود تقريباً، قمت بترجمة نص إنجليزي وكلام عربي إلى عينات كلامية باللغة الروسية.

نص

وبالمثل، يمكنك توليد نص مترجم من ملفات صوتية أو من نص باستخدام نفس النموذج. كل ما عليك فعله هو تمرير generate_speech=False إلى SeamlessM4TModel.generate(). في هذه المرة، لنقم بالترجمة إلى الفرنسية.

# from audio
output_tokens = model.generate(**audio_inputs, tgt_lang="fra", generate_speech=False)
translated_text_from_audio = processor.decode(output_tokens[0].tolist()[0], skip_special_tokens=True)

# from text
output_tokens = model.generate(**text_inputs, tgt_lang="fra", generate_speech=False)
translated_text_from_text = processor.decode(output_tokens[0].tolist()[0], skip_special_tokens=True)

نصائح

1. استخدام نماذج مخصصة

SeamlessM4TModel هو النموذج الرئيسي في transformers لتوليد الكلام والنص، لكن يمكنك أيضاً استخدام نماذج مخصصة تؤدي المهمة دون مكونات إضافية، مما يقلل من استهلاك الذاكرة. على سبيل المثال، يمكنك استبدال مقتطف توليد الصوت-إلى-الصوت بالنموذج المخصص لمهمة S2ST، والباقي هو نفس الكود تماماً:

from transformers import SeamlessM4TForSpeechToSpeech


model = SeamlessM4TForSpeechToSpeech.from_pretrained("facebook/hf-seamless-m4t-medium", device_map="auto")

أو يمكنك استبدال مقتطف توليد النص إلى النص بالنموذج المخصص لمهمة T2TT، حيث يكفي إزالة generate_speech=False.

from transformers import SeamlessM4TForTextToText


model = SeamlessM4TForTextToText.from_pretrained("facebook/hf-seamless-m4t-medium", device_map="auto")

لا تتردد في تجربة SeamlessM4TForSpeechToText و SeamlessM4TForTextToSpeech أيضًا.

2. تغيير هوية المتحدث

يمكنك تغيير المتحدث المستخدم في تركيب الكلام باستخدام الحجة spkr_id. بعض قيم spkr_id تعمل بشكل أفضل من غيرها مع بعض اللغات!

3. تغيير استراتيجية التوليد

يمكنك استخدام استراتيجيات توليد مختلفة لتوليد الكلام والنص، على سبيل المثال .generate(input_ids=input_ids, text_num_beams=4, speech_do_sample=True) الذي سيقوم بالتفكيك باستخدام البحث الحزمي (beam-search) على نموذج النص، ثم أخذ عينات متعددة الحدود (multinomial sampling) على نموذج الكلام.

4. توليد الكلام والنص في الوقت نفسه

استخدم return_intermediate_token_ids=True مع SeamlessM4TModel لإرجاع كلٍّ من الكلام والنص!

بنية النموذج

يتميز SeamlessM4T ببنية متعددة الاستخدامات تتعامل بسلاسة مع التوليد التسلسلي للنص والكلام. يتكون هذا الإعداد من نموذجين من نوع تسلسل إلى تسلسل (seq2seq). يقوم النموذج الأول بترجمة النمط المدخل إلى نص مترجم، بينما يولّد النموذج الثاني رموز الكلام، المعروفة بـ "رموز الوحدة"، من النص المترجم.

يتميز كل نمط إدراكي بمشفر مخصص له بهيكل فريد. بالإضافة إلى ذلك، في حالة المخرجات الصوتية، يُوضع مُصوِّغ (vocoder) مستوحى من بنية HiFi-GAN فوق نموذج seq2seq الثاني.

إليك كيفية عمل عملية التوليد:

  • يتم معالجة النص أو الكلام المُدخل عبر مُشفِّرِه الخاص.
  • ينشئ المُفكِّك رموز نصية باللغة المطلوبة.
  • إذا كانت توليد الكلام مطلوباً، فإن نموذج seq2seq الثاني، الذي يتبع بنية قياسية للمشفّر-المفكّك، يولّد رموز الوحدات.
  • تُمرَّر رموز الوحدات هذه بعد ذلك عبر مُصنِّع الصوت النهائي لإنتاج الكلام الفعلي.

تمت مساهمة هذا النموذج من قِبل ylacombe. يمكن العثور على الكود الأصلي هنا.

SeamlessM4TModel

فئة transformers.SeamlessM4TModel

< >

( config: SeamlessM4TConfigcurrent_modality = 'text' )

المعاملات

  • config (SeamlessM4TConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
  • current_modality (str، اختياري، القيمة الافتراضية "text") — الوضع الافتراضي. يُستخدم لتبني النموذج.

نموذج SeamlessM4T الأصلي الذي يمكن استخدامه لكل المهام المتاحة (S2ST، S2TT، T2TT، T2ST).

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

generate

< >

( input_ids: typing.Optional[torch.Tensor] = Noneinput_features: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespkr_id: int | None = 0generate_speech: bool | None = True**kwargs ) → Union[SeamlessM4TGenerationOutput, tuple[Tensor], ModelOutput]

المعاملات

  • input_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات.

    يمكن الحصول على الفهارس باستخدام SeamlessM4TTokenizer أو SeamlessM4TProcessor. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • input_features (torch.Tensor of shape (batch_size, sequence_length, num_banks), اختياري) — مُدخلات السمات الصوتية. يجب أن تكون هذه القيمة مُعادَة من فئة SeamlessM4TFeatureExtractor أو فئة SeamlessM4TProcessor. راجع SeamlessM4TFeatureExtractor.call() للحصول على التفاصيل.
  • return_intermediate_token_ids (bool, اختياري) — إذا كانت True، تُرجع النص المولَّد الوسيط ورموز الوحدة. اضبطها على True إذا كنت ترغب أيضاً في الحصول على النص المُترجم إلى جانب الصوت. لاحظ أنه إذا كانت generate_speech=False، سيتم تجاهل هذا المعامل وستُرجع رموز النص.
  • tgt_lang (str، اختياري) — اللغة المستخدمة كلغة الهدف للترجمة.
  • spkr_id (int، اختياري، القيمة الافتراضية 0) — معرّف المتحدث المستخدم لتوليد الكلام. يجب أن يكون أقل من config.vocoder_num_spkrs.
  • generate_speech (bool، اختياري، القيمة الافتراضية True) — إذا كانت False، فسيُعاد رموز النص فقط دون توليد الكلام.
  • kwargs (اختياري) — المتبقّي من قاموس الحُجج المُسمّاة التي ستُمرَّر إلى GenerationMixin.generate(). تأتي الحُجج المُسمّاة من نوعين:
    • بدون بادئة، سيتم إدخالها على أنها **kwargs لطريقة generate لكل نموذج فرعي، باستثناء decoder_input_ids التي لن تُمرَّر إلا عبر المكونات النصية.
    • عند استخدام بادئة text_ أو speech_، تُصبح هذه الكلمات المفتاحية مدخلات لطريقة generate في نموذج النص ونموذج الكلام على التوالي. ولها الأولوية على الكلمات المفتاحية التي لا تحمل بادئة.

    هذا يعني أنه يمكنك، على سبيل المثال، تحديد استراتيجية توليد لتوليد واحد دون تحديد استراتيجية للتوليد الآخر.

يعيد

Union[SeamlessM4TGenerationOutput, tuple[Tensor], ModelOutput]

  • إذا كان generate_speech وreturn_intermediate_token_ids، تُرجع SeamlessM4TGenerationOutput.
  • إذا كان generate_speech وكان return_intermediate_token_ids غير مفعّل، تُرجع الدالة مجموعة (tuple) تتكون من موجات صوتية (waveforms) بأبعاد (batch_size, sequence_length) وwaveform_lengths التي تحدد طول كل عينة.
  • إذا كان generate_speech=False، فسيُرجع ModelOutput.

يولّد معرّفات الرموز المترجمة و/أو موجات الصوت المترجمة.

تستدعي هذه الطريقة دالة .generate لفرعي نموذجين مختلفين بالتتابع. يمكنك تحديد معاملات بالكلمات المفتاحية على مستويين مختلفين: معاملات عامة تُمرَّر إلى النموذجين معاً، أو معاملات مُسبقة البادئة تُمرَّر إلى أحدهما.

على سبيل المثال، استدعاء .generate(input_ids=input_ids, num_beams=4, speech_do_sample=True) سيؤدي بالتتابع إلى تنفيذ فك الترميز بالبحث الحزمي على نموذج النص، والعينة الحزمية متعددة الحدود على نموذج الكلام.

لمراجعة عامة لاستراتيجيات التوليد وأمثلة الأكواد، راجع الدليل التالي.

SeamlessM4TForTextToSpeech

فئة transformers.SeamlessM4TForTextToSpeech

< >

( config: SeamlessM4TConfig )

المعاملات

  • config (SeamlessM4TConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج SeamlessM4T لتحويل النص إلى كلام، وهو نموذج تحويلي يمكن استخدامه لتوليد الكلام من النص.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

generate

< >

( input_ids: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespkr_id: int | None = 0**kwargs ) → Union[SeamlessM4TGenerationOutput, tuple[Tensor]]

المعاملات

  • input_ids (torch.LongTensor بشكل (batch_size, sequence_length)) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. يمكن الحصول على المؤشرات باستخدام SeamlessM4TTokenizer أو SeamlessM4TProcessor. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للحصول على التفاصيل. ما هي معرّفات الإدخال؟

    يمكن الحصول على الفهارس باستخدام SeamlessM4TTokenizer أو SeamlessM4TProcessor. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • return_intermediate_token_ids (bool، اختياري) — إذا كانت True، تُرجع النص المولَّد الوسيط ورموز الوحدة أيضًا. اضبطها على True إذا كنت ترغب في الحصول على النص المُترجم إلى جانب الصوت.
  • tgt_lang (str، اختياري) — اللغة المستخدمة كلغة الهدف للترجمة.
  • spkr_id (int، اختياري، القيمة الافتراضية 0) — معرّف المتحدث المستخدم لتوليد الكلام. يجب أن يكون أقل من config.vocoder_num_spkrs.
  • kwargs (اختياري) — المتبقّي من قاموس الحُجج المُسمّاة التي ستُمرَّر إلى GenerationMixin.generate(). تأتي الحُجج المُسمّاة من نوعين:
    • بدون بادئة، سيتم إدخالها على أنها **kwargs لطريقة generate لكل نموذج فرعي، باستثناء decoder_input_ids التي لن تُمرَّر إلا عبر المكونات النصية.
    • عند استخدام بادئة text_ أو speech_، تُصبح هذه الكلمات المفتاحية مدخلات لطريقة generate في نموذج النص ونموذج الكلام على التوالي. ولها الأولوية على الكلمات المفتاحية التي لا تحمل بادئة.

    هذا يعني أنه يمكنك، على سبيل المثال، تحديد استراتيجية توليد لتوليد واحد دون تحديد استراتيجية للتوليد الآخر.

يعيد

Union[SeamlessM4TGenerationOutput, tuple[Tensor]]

  • إذا كان return_intermediate_token_ids، تُرجع SeamlessM4TGenerationOutput.
  • إذا لم يكن return_intermediate_token_ids، تُرجع الدالة مجموعة (tuple) تتألف من موجات صوتية (waveforms) بأبعاد (batch_size, sequence_length) وwaveform_lengths التي تحدد طول كل عينة.

يولّد موجات صوتية مترجمة.

تستدعي هذه الطريقة دالة .generate لفرعي نموذجين مختلفين بالتتابع. يمكنك تحديد معاملات بالكلمات المفتاحية على مستويين مختلفين: معاملات عامة تُمرَّر إلى النموذجين معاً، أو معاملات مُسبقة البادئة تُمرَّر إلى أحدهما.

على سبيل المثال، استدعاء .generate(input_ids, num_beams=4, speech_do_sample=True) سيؤدي بالتتابع إلى فك الترميز باستخدام بحث الحزمة على نموذج النص، والعينة متعددة الحدود باستخدام بحث الحزمة على نموذج الكلام.

لمراجعة عامة لاستراتيجيات التوليد وأمثلة الأكواد، راجع الدليل التالي.

SeamlessM4TForSpeechToSpeech

فئة transformers.SeamlessM4TForSpeechToSpeech

< >

( config: SeamlessM4TConfig )

المعاملات

  • config (SeamlessM4TConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج SeamlessM4T لتحويل الكلام إلى كلام، وهو نموذج تحويلي يمكن استخدامه في مهام S2ST.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

generate

< >

( input_features: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespkr_id: int | None = 0**kwargs ) → Union[SeamlessM4TGenerationOutput, tuple[Tensor]]

المعاملات

  • input_features (torch.Tensor من الشكل (batch_size, sequence_length, num_banks)) — مميزات الصوت المدخلة. يجب أن تكون هذه المميزات مُعادَة من فئة SeamlessM4TFeatureExtractor أو فئة SeamlessM4TProcessor. راجع SeamlessM4TFeatureExtractor.call() للتفاصيل.
  • return_intermediate_token_ids (bool، اختياري) — إذا كانت True، تُرجع النص المولَّد الوسيط ورموز الوحدة أيضًا. اضبطها على True إذا كنت ترغب في الحصول على النص المُترجم إلى جانب الصوت.
  • tgt_lang (str، اختياري) — اللغة المستخدمة كلغة الهدف للترجمة.
  • spkr_id (int، اختياري، القيمة الافتراضية 0) — معرّف المتحدث المستخدم لتوليد الكلام. يجب أن يكون أقل من config.vocoder_num_spkrs.
  • kwargs (اختياري) — المتبقّي من قاموس الحُجج المُسمّاة التي ستُمرَّر إلى GenerationMixin.generate(). تأتي الحُجج المُسمّاة من نوعين:
    • بدون بادئة، سيتم إدخالها على أنها **kwargs لطريقة generate لكل نموذج فرعي، باستثناء decoder_input_ids التي لن تُمرَّر إلا عبر المكونات النصية.
    • عند استخدام بادئة text_ أو speech_، تُصبح هذه الكلمات المفتاحية مدخلات لطريقة generate في نموذج النص ونموذج الكلام على التوالي. ولها الأولوية على الكلمات المفتاحية التي لا تحمل بادئة.

    هذا يعني أنه يمكنك، على سبيل المثال، تحديد استراتيجية توليد لتوليد واحد دون تحديد استراتيجية للتوليد الآخر.

يعيد

Union[SeamlessM4TGenerationOutput, tuple[Tensor]]

  • إذا كان return_intermediate_token_ids، تُرجع SeamlessM4TGenerationOutput.
  • إذا لم يكن return_intermediate_token_ids، تُرجع الدالة مجموعة (tuple) تتألف من موجات صوتية (waveforms) بأبعاد (batch_size, sequence_length) وwaveform_lengths التي تحدد طول كل عينة.

يولّد موجات صوتية مترجمة.

تستدعي هذه الطريقة دالة .generate لفرعي نموذجين مختلفين بالتتابع. يمكنك تحديد معاملات بالكلمات المفتاحية على مستويين مختلفين: معاملات عامة تُمرَّر إلى النموذجين معاً، أو معاملات مُسبقة البادئة تُمرَّر إلى أحدهما.

على سبيل المثال، استدعاء .generate(input_features, num_beams=4, speech_do_sample=True) سيؤدي بالتتابع إلى فك الترميز باستخدام بحث الحزمة على نموذج النص، والعينة متعددة الحدود باستخدام بحث الحزمة على نموذج الكلام.

لمراجعة عامة لاستراتيجيات التوليد وأمثلة الأكواد، راجع الدليل التالي.

SeamlessM4TForTextToText

فئة transformers.SeamlessM4TForTextToText

< >

( config: SeamlessM4TConfig )

المعاملات

  • config (SeamlessM4TConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج SeamlessM4T من نوع transformer لتحويل النص إلى نص، والذي يمكن استخدامه في مهمة T2TT.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

    ما هي أقنعة الانتباه؟

  • decoder_input_ids (torch.LongTensor بشكل (batch_size, target_sequence_length), اختياري) — مؤشرات رموز تسلسل مدخلات المُفكِّك في قاموس النموذج. يمكن الحصول على المؤشرات باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات مدخلات المُفكِّك؟ يستخدم Bart رمز eos_token_id كرمز بداية لتوليد decoder_input_ids. إذا تم استخدام past_key_values، فيجب إدخال آخر decoder_input_ids فقط بشكل اختياري (راجع past_key_values). في تدريب الترجمة والتلخيص، يجب تقديم decoder_input_ids. إذا لم يتم تقديم decoder_input_ids، سيقوم النموذج بإنشاء هذا المصفوفة بإزاحة input_ids إلى اليمين للتدريب المسبق على إزالة الضوضاء وفقاً للورقة البحثية.

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات مدخلات المُفكِّك؟

    يستخدم Bart الرمز eos_token_id كرمز بداية لتوليد decoder_input_ids. إذا تم استخدام past_key_values، فاختياريًا لا يتعين إدخال سوى آخر decoder_input_ids (انظر past_key_values).

    لتدريب الترجمة والتلخيص، يجب تقديم decoder_input_ids. إذا لم يتم تقديم decoder_input_ids، فسيقوم النموذج بإنشاء هذا الموتر عن طريق إزاحة input_ids إلى اليمين للتدريب المسبق لإزالة الضوضاء وفقاً للورقة البحثية.

  • decoder_attention_mask (torch.LongTensor بشكل (batch_size, target_sequence_length), اختياري) — السلوك الافتراضي: توليد متجه يتجاهل رموز الحشو في decoder_input_ids. سيتم استخدام قناع سببي أيضًا بشكل افتراضي.

    إذا كنت ترغب في تغيير سلوك الحشو، فيجب عليك قراءة modeling_bart._prepare_decoder_attention_mask وتعديله حسب احتياجاتك. راجع الشكل 1 في الورقة البحثية لمزيد من المعلومات حول الاستراتيجية الافتراضية.

  • encoder_outputs (tuple[tuple[torch.Tensor]]، اختياري) — مجموعة (توبل) تتكون من (last_hidden_state، اختياري: hidden_states، اختياري: attentions) last_hidden_state ذو الشكل (batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من حالات المخفية (hidden-states) عند مخرج الطبقة الأخيرة من المشفر. يُستخدم في الانتباه المتقاطع (cross-attention) داخل المُفكِّك (decoder).
  • past_key_values (~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً من past_key_values الذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندما use_cache=True أو config.use_cache=True.

    يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير past_key_values، فسيتم تهيئة DynamicCache افتراضياً.

    سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.

    عند استخدام past_key_values، يُتوقَّع من المستخدم إدخال input_ids غير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد (batch_size, unprocessed_length) بدلاً من جميع input_ids بأبعاد (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor بشكل(batch_size, sequence_length, hidden_size), اختياري) — اختياريًا، بدلاً من تمرير input_ids يمكنك اختيار تمرير تمثيل مضمّن مباشرة. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل input_ids الفهارس إلى المتجهات المرتبطة بها مقارنةً بمصفوفة البحث التضمينية الداخلية للنموذج.

    labels (torch.LongTensor of shape (batch_size, sequence_length), اختياري): التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس ضمن [-100, 0, ..., config.vocab_size] (انظر input_ids docstring) يتم تجاهل الرموز التي تكون فهارسها -100 (مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن [0, ..., config.vocab_size]

  • decoder_inputs_embeds (torch.Tensor من الشكل (batch_size, target_sequence_length, hidden_size), اختياري) — اختياريًا، بدلاً من تمرير decoder_input_ids يمكنك اختيار تمرير تمثيل مضمّن مباشرة. إذا past_key_values مستخدم، فاختياريًا يكفي إدخال آخر decoder_inputs_embeds فقط (انظر past_key_values). هذا مفيد إذا كنت تريد مزيدًا من التحكم في كيفية تحويل decoder_input_ids فهارس إلى المتجهات المرتبطة بها مقارنةً بمصفوفة البحث التضمينية الداخلية للنموذج.

    إذا لم يتم تعيين كلٍّ من decoder_input_ids وdecoder_inputs_embeds، فإن decoder_inputs_embeds يأخذ قيمة inputs_embeds.

  • labels (torch.LongTensor من الشكل (batch_size, sequence_length)، اختياري) — التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس ضمن [0, ..., config.vocab_size] أو -100 (انظر input_ids docstring). يتم تجاهل الرموز التي فهارسها مضبوطة على -100 (مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن [0, ..., config.vocab_size].
  • use_cache (bool، اختياري) — إذا تم تعيينه إلى True، تُعاد حالات المفاتيح والقيم past_key_values ويمكن استخدامها لتسريع فك الترميز (انظر past_key_values).

يعيد

Seq2SeqLMOutput أو tuple(torch.Tensor)

Seq2SeqLMOutput أو مجموعة مرتبة من torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (SeamlessM4TConfig) والمدخلات.

تتجاوز طريقة SeamlessM4TForTextToText الخاصة بالتقديم (forward) الطريقة الخاصة __call__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

  • loss (torch.Tensor of shape (1,), اختياري, يُعاد عند توفير labels) — خسارة نمذجة اللغة.

  • logits (torch.Tensor من الشكل (batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).

  • past_key_values (EncoderDecoderCache، اختياري، يُعاد عند تمرير use_cache=True أو عند تعيين config.use_cache=True) — إنه كائن من نوع EncoderDecoderCache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.

    تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها (انظر مدخل past_key_values) لتسريع فك الترميز التسلسلي.

  • decoder_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات المخفية (Hidden states) لمفكّك الترميز (decoder) عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي (initial embedding).

  • decoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

  • cross_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه المتقاطع.

  • encoder_last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.

  • encoder_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي.

  • encoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُشفِّر، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

generate

< >

( input_ids = Nonetgt_lang = Nonegeneration_config = Nonelogits_processor = Nonestopping_criteria = Noneprefix_allowed_tokens_fn = Nonesynced_gpus = False**kwargs ) → ModelOutput or torch.LongTensor

المعاملات

  • input_ids (torch.Tensor بشكل متغير حسب النمط، اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات.

    يمكن الحصول على الفهارس باستخدام SeamlessM4TTokenizer أو SeamlessM4TProcessor. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • tgt_lang (str، اختياري) — اللغة المستخدمة كلغة الهدف للترجمة.
  • generation_config (~generation.GenerationConfig، اختياري) — إعدادات التوليد التي تُستخدم كإعدادات أساسية لاستدعاء التوليد. أي **kwargs تُمرَّر إلى generate وتطابق سمات generation_config ستُلغي قيمها. إذا لم يُقدَّم generation_config، فسيُستخدم الإعداد الافتراضي، والذي له أولوية تحميل كالتالي: 1) من ملف النموذج generation_config.json، إذا كان موجودًا؛ 2) من إعدادات النموذج. يُرجى ملاحظة أن المعاملات غير المحددة ستورث القيم الافتراضية لـ GenerationConfig، ويجب الرجوع إلى توثيقها لضبط توليد المعاملات.
  • logits_processor (LogitsProcessorList، اختياري) — معالجات logits مخصصة تكمل المعالجات الافتراضية المبنية من المعاملات وإعدادات التوليد. إذا تم تمرير معالج logits تم إنشاؤه مسبقًا باستخدام المعاملات أو إعدادات التوليد، فسيتم طرح خطأ. هذه الميزة مخصصة للمستخدمين المتقدمين.
  • stopping_criteria (StoppingCriteriaList، اختياري) — معايير إيقاف مخصصة تكمل معايير الإيقاف الافتراضية المبنية من الحجوزات وإعدادات التوليد. إذا تم تمرير معيار إيقاف تم إنشاؤه مسبقًا باستخدام الحجوزات أو إعدادات التوليد، فسيتم طرح خطأ. هذه الميزة مخصصة للمستخدمين المتقدمين.
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], list[int]]، اختياري) — إذا تم توفيره، فإن هذه الدالة تُقيّد بحث الحزمة (beam search) على الرموز المسموح بها فقط في كل خطوة. إذا لم يُوفَّر، فلا يُطبَّق أي قيد. تستقبل هذه الدالة حجتين: معرّف الدفعة batch_id و input_ids. يجب أن تُرجع قائمة بالرموز المسموح بها لخطوة التوليد التالية، مشروطةً بمعرّف الدفعة batch_id والرموز المولَّدة سابقًا inputs_ids. يُعدّ هذا الحُجّة مفيدًا للتوليد المقيد المشروط على البادئة، كما هو موصوف في Autoregressive Entity Retrieval.
  • synced_gpus (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب مواصلة تشغيل حلقة while حتى max_length (وهو أمر ضروري لتجنب التعطّل مع FullyShardedDataParallel وDeepSpeed ZeRO Stage 3).
  • kwargs (dict[str, Any], اختياري) — تحديد معاملات بشكل مؤقت لـ generate_config و/أو معاملات إضافية خاصة بالنموذج سيتم تمريرها إلى دالة forward الخاصة بالنموذج.

يعيد

ModelOutput أو torch.LongTensor

ModelOutput (إذا كان return_dict_in_generate=True أو عندما يكون config.return_dict_in_generate=True) أو torch.Tensor. الأنواع المحتملة لـ ModelOutput هي:

يولّد تسلسلات من معرّفات الرموز.

تُضبط معظم المعلمات التي تتحكم في التوليد في generation_config، والتي إذا لم تُمرَّر، فسيتم ضبطها على إعدادات التوليد الافتراضية للنموذج. يمكنك تجاوز أي generation_config عن طريق تمرير المعلمات المقابلة إلى generate()، على سبيل المثال .generate(inputs, num_beams=4, do_sample=True).

لمراجعة عامة لاستراتيجيات التوليد وأمثلة الأكواد، راجع الدليل التالي.

SeamlessM4TForSpeechToText

فئة transformers.SeamlessM4TForSpeechToText

< >

( config: SeamlessM4TConfig )

المعاملات

  • config (SeamlessM4TConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج SeamlessM4T لتحويل الكلام إلى نص، وهو نموذج transformer يمكن استخدامه لتحويل الكلام إلى نص.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_features: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.Tensor)

المعاملات

  • input_features (torch.Tensor من الشكل (batch_size, sequence_length, num_banks)) — مميزات الصوت المدخلة. يجب أن تكون هذه المميزات مُعادَة من فئة SeamlessM4TFeatureExtractor أو فئة SeamlessM4TProcessor. راجع SeamlessM4TFeatureExtractor.call() للتفاصيل.
  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

    ما هي أقنعة الانتباه؟

  • decoder_input_ids (torch.LongTensor بشكل (batch_size, target_sequence_length), اختياري) — مؤشرات رموز تسلسل مدخلات المُفكِّك في قاموس النموذج. يمكن الحصول على المؤشرات باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات مدخلات المُفكِّك؟ يستخدم Bart رمز eos_token_id كرمز بداية لتوليد decoder_input_ids. إذا تم استخدام past_key_values، فيجب إدخال آخر decoder_input_ids فقط بشكل اختياري (راجع past_key_values). في تدريب الترجمة والتلخيص، يجب تقديم decoder_input_ids. إذا لم يتم تقديم decoder_input_ids، سيقوم النموذج بإنشاء هذا المصفوفة بإزاحة input_ids إلى اليمين للتدريب المسبق على إزالة الضوضاء وفقاً للورقة البحثية.

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات مدخلات المُفكِّك؟

    يستخدم Bart الرمز eos_token_id كرمز بداية لتوليد decoder_input_ids. إذا تم استخدام past_key_values، فاختياريًا لا يتعين إدخال سوى آخر decoder_input_ids (انظر past_key_values).

    لتدريب الترجمة والتلخيص، يجب تقديم decoder_input_ids. إذا لم يتم تقديم decoder_input_ids، فسيقوم النموذج بإنشاء هذا الموتر عن طريق إزاحة input_ids إلى اليمين للتدريب المسبق لإزالة الضوضاء وفقاً للورقة البحثية.

  • decoder_attention_mask (torch.LongTensor بشكل (batch_size, target_sequence_length), اختياري) — السلوك الافتراضي: توليد متجه يتجاهل رموز الحشو في decoder_input_ids. سيتم استخدام قناع سببي أيضًا بشكل افتراضي.

    إذا كنت ترغب في تغيير سلوك الحشو، فيجب عليك قراءة modeling_bart._prepare_decoder_attention_mask وتعديله حسب احتياجاتك. راجع الشكل 1 في الورقة البحثية لمزيد من المعلومات حول الاستراتيجية الافتراضية.

  • encoder_outputs (tuple[tuple[torch.Tensor]]، اختياري) — مجموعة (توبل) تتكون من (last_hidden_state، اختياري: hidden_states، اختياري: attentions) last_hidden_state ذو الشكل (batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من حالات المخفية (hidden-states) عند مخرج الطبقة الأخيرة من المشفر. يُستخدم في الانتباه المتقاطع (cross-attention) داخل المُفكِّك (decoder).
  • past_key_values (~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً من past_key_values الذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندما use_cache=True أو config.use_cache=True.

    يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير past_key_values، فسيتم تهيئة DynamicCache افتراضياً.

    سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.

    عند استخدام past_key_values، يُتوقَّع من المستخدم إدخال input_ids غير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد (batch_size, unprocessed_length) بدلاً من جميع input_ids بأبعاد (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor بشكل(batch_size, sequence_length, hidden_size), اختياري) — اختياريًا، بدلاً من تمرير input_ids يمكنك اختيار تمرير تمثيل مضمّن مباشرة. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل input_ids الفهارس إلى المتجهات المرتبطة بها مقارنةً بمصفوفة البحث التضمينية الداخلية للنموذج.

    labels (torch.LongTensor of shape (batch_size, sequence_length), اختياري): التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس ضمن [-100, 0, ..., config.vocab_size] (انظر input_ids docstring) يتم تجاهل الرموز التي تكون فهارسها -100 (مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن [0, ..., config.vocab_size]

  • decoder_inputs_embeds (torch.Tensor من الشكل (batch_size, target_sequence_length, hidden_size), اختياري) — اختياريًا، بدلاً من تمرير decoder_input_ids يمكنك اختيار تمرير تمثيل مضمّن مباشرة. إذا past_key_values مستخدم، فاختياريًا يكفي إدخال آخر decoder_inputs_embeds فقط (انظر past_key_values). هذا مفيد إذا كنت تريد مزيدًا من التحكم في كيفية تحويل decoder_input_ids فهارس إلى المتجهات المرتبطة بها مقارنةً بمصفوفة البحث التضمينية الداخلية للنموذج.

    إذا لم يتم تعيين كلٍّ من decoder_input_ids وdecoder_inputs_embeds، فإن decoder_inputs_embeds يأخذ قيمة inputs_embeds.

  • labels (torch.LongTensor من الشكل (batch_size, sequence_length)، اختياري) — التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس ضمن [0, ..., config.vocab_size] أو -100 (انظر input_ids docstring). يتم تجاهل الرموز التي فهارسها مضبوطة على -100 (مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن [0, ..., config.vocab_size].
  • use_cache (bool، اختياري) — إذا تم تعيينه إلى True، تُعاد حالات المفاتيح والقيم past_key_values ويمكن استخدامها لتسريع فك الترميز (انظر past_key_values).

يعيد

Seq2SeqLMOutput أو tuple(torch.Tensor)

Seq2SeqLMOutput أو مجموعة مرتبة من torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (SeamlessM4TConfig) والمدخلات.

تتجاوز طريقة SeamlessM4TForSpeechToText الخاصة بالتقديم (forward) الطريقة الخاصة __call__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

  • loss (torch.Tensor of shape (1,), اختياري, يُعاد عند توفير labels) — خسارة نمذجة اللغة.

  • logits (torch.Tensor من الشكل (batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).

  • past_key_values (EncoderDecoderCache، اختياري، يُعاد عند تمرير use_cache=True أو عند تعيين config.use_cache=True) — إنه كائن من نوع EncoderDecoderCache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.

    تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها (انظر مدخل past_key_values) لتسريع فك الترميز التسلسلي.

  • decoder_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات المخفية (Hidden states) لمفكّك الترميز (decoder) عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي (initial embedding).

  • decoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

  • cross_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه المتقاطع.

  • encoder_last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.

  • encoder_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي.

  • encoder_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, SeamlessM4TForSpeechToText
>>> 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/hf-seamless-m4t-medium")
>>> model = SeamlessM4TForSpeechToText.from_pretrained("facebook/hf-seamless-m4t-medium")

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

generate

< >

( input_features = Nonetgt_lang = Nonegeneration_config = Nonelogits_processor = Nonestopping_criteria = Noneprefix_allowed_tokens_fn = Nonesynced_gpus = False**kwargs ) → ModelOutput or torch.LongTensor

المعاملات

  • input_features (torch.Tensor من الشكل (batch_size, sequence_length, num_banks)) — مميزات الصوت المدخلة. يجب أن تكون هذه المميزات مُعادَة من فئة SeamlessM4TFeatureExtractor أو فئة SeamlessM4TProcessor. راجع SeamlessM4TFeatureExtractor.call() للتفاصيل.
  • tgt_lang (str، اختياري) — اللغة المستخدمة كلغة الهدف للترجمة.
  • generation_config (~generation.GenerationConfig، اختياري) — إعدادات التوليد التي تُستخدم كإعدادات أساسية لاستدعاء التوليد. أي **kwargs تُمرَّر إلى generate وتطابق سمات generation_config ستُلغي قيمها. إذا لم يُقدَّم generation_config، فسيُستخدم الإعداد الافتراضي، والذي له أولوية تحميل كالتالي: 1) من ملف النموذج generation_config.json، إذا كان موجودًا؛ 2) من إعدادات النموذج. يُرجى ملاحظة أن المعاملات غير المحددة ستورث القيم الافتراضية لـ GenerationConfig، ويجب الرجوع إلى توثيقها لضبط توليد المعاملات.
  • logits_processor (LogitsProcessorList، اختياري) — معالجات logits مخصصة تكمل المعالجات الافتراضية المبنية من المعاملات وإعدادات التوليد. إذا تم تمرير معالج logits تم إنشاؤه مسبقًا باستخدام المعاملات أو إعدادات التوليد، فسيتم طرح خطأ. هذه الميزة مخصصة للمستخدمين المتقدمين.
  • stopping_criteria (StoppingCriteriaList، اختياري) — معايير إيقاف مخصصة تكمل معايير الإيقاف الافتراضية المبنية من الحجوزات وإعدادات التوليد. إذا تم تمرير معيار إيقاف تم إنشاؤه مسبقًا باستخدام الحجوزات أو إعدادات التوليد، فسيتم طرح خطأ. هذه الميزة مخصصة للمستخدمين المتقدمين.
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], list[int]]، اختياري) — إذا تم توفيره، فإن هذه الدالة تُقيّد بحث الحزمة (beam search) على الرموز المسموح بها فقط في كل خطوة. إذا لم يُوفَّر، فلا يُطبَّق أي قيد. تستقبل هذه الدالة حجتين: معرّف الدفعة batch_id و input_ids. يجب أن تُرجع قائمة بالرموز المسموح بها لخطوة التوليد التالية، مشروطةً بمعرّف الدفعة batch_id والرموز المولَّدة سابقًا inputs_ids. يُعدّ هذا الحُجّة مفيدًا للتوليد المقيد المشروط على البادئة، كما هو موصوف في Autoregressive Entity Retrieval.
  • synced_gpus (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب مواصلة تشغيل حلقة while حتى max_length (وهو أمر ضروري لتجنب التعطّل مع FullyShardedDataParallel وDeepSpeed ZeRO Stage 3).
  • kwargs (dict[str, Any], اختياري) — تحديد معاملات بشكل مؤقت لـ generate_config و/أو معاملات إضافية خاصة بالنموذج سيتم تمريرها إلى دالة forward الخاصة بالنموذج.

يعيد

ModelOutput أو torch.LongTensor

ModelOutput (إذا كان return_dict_in_generate=True أو عندما يكون config.return_dict_in_generate=True) أو torch.Tensor. الأنواع المحتملة لـ ModelOutput هي:

يولّد تسلسلات من معرّفات الرموز.

تُضبط معظم المعلمات التي تتحكم في التوليد في generation_config، والتي إذا لم تُمرَّر، فسيتم ضبطها على إعدادات التوليد الافتراضية للنموذج. يمكنك تجاوز أي generation_config عن طريق تمرير المعلمات المقابلة إلى generate()، على سبيل المثال .generate(inputs, num_beams=4, do_sample=True).

لمراجعة عامة لاستراتيجيات التوليد وأمثلة الأكواد، راجع الدليل التالي.

SeamlessM4TConfig

فئة transformers.SeamlessM4TConfig

< >

( 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truevocab_size: int = 256102t2u_vocab_size: int = 10082hidden_size: int = 1024initializer_range: float = 0.02layer_norm_eps: float = 1e-05use_cache: bool = Truemax_position_embeddings: int = 1024encoder_layerdrop: float | int = 0.05decoder_layerdrop: float | int = 0.05activation_function: str = 'relu'dropout: float | int = 0.1attention_dropout: float | int = 0.1activation_dropout: float | int = 0.0scale_embedding: bool = Trueencoder_layers: int = 24encoder_ffn_dim: int = 8192encoder_attention_heads: int = 16decoder_layers: int = 24decoder_ffn_dim: int = 8192decoder_attention_heads: int = 16decoder_start_token_id: int = 3max_new_tokens: int | None = 256pad_token_id: int | None = 0bos_token_id: int | None = 2eos_token_id: int | list[int] | None = 3speech_encoder_layers: int = 24speech_encoder_attention_heads: int = 16speech_encoder_intermediate_size: int = 4096speech_encoder_hidden_act: str = 'swish'speech_encoder_dropout: float | int = 0.0add_adapter: bool = Truespeech_encoder_layerdrop: float | int = 0.1feature_projection_input_dim: int = 160num_conv_pos_embeddings: int = 128num_conv_pos_embedding_groups: int = 16adaptor_kernel_size: int = 8adaptor_stride: int = 8adaptor_dropout: float | int = 0.1num_adapter_layers: int = 1position_embeddings_type: str = 'relative'rotary_embedding_base: int = 10000max_source_positions: int = 4096conv_depthwise_kernel_size: int = 31t2u_bos_token_id: int | None = 0t2u_pad_token_id: int | None = 1t2u_eos_token_id: int | list[int] | None = 2t2u_decoder_start_token_id: int = 2t2u_max_new_tokens: int = 1024t2u_encoder_layers: int = 6t2u_encoder_ffn_dim: int = 8192t2u_encoder_attention_heads: int = 16t2u_decoder_layers: int = 6t2u_decoder_ffn_dim: int = 8192t2u_decoder_attention_heads: int = 16t2u_max_position_embeddings: int = 2048sampling_rate: int = 16000upsample_initial_channel: int = 512upsample_rates: list[int] | tuple[int, ...] = (5, 4, 4, 2, 2)upsample_kernel_sizes: list[int] | tuple[int, ...] = (11, 8, 8, 4, 4)resblock_kernel_sizes: list[int] | tuple[int, ...] = (3, 7, 11)resblock_dilation_sizes: list | tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5))leaky_relu_slope: float = 0.1unit_hifi_gan_vocab_size: int = 10000unit_embed_dim: int = 1280lang_embed_dim: int = 256spkr_embed_dim: int = 256vocoder_num_langs: int = 36vocoder_num_spkrs: int = 200variance_predictor_kernel_size: int = 3var_pred_dropout: float | int = 0.5vocoder_offset: int = 4tie_word_embeddings: bool = True )

المعاملات

  • is_encoder_decoder (bool، اختياري، القيمة الافتراضية True) — ما إذا كان النموذج يُستخدم كمُشفِّر/مُفكِّك أم لا.
  • vocab_size (int، اختياري، القيمة الافتراضية 256102) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة input_ids.
  • t2u_vocab_size (int، اختياري، القيمة الافتراضية 10082) — حجم مفردات الوحدة لنموذج SeamlessM4T. يحدد عدد رموز الوحدات المختلفة التي يمكن تمثيلها بواسطة inputs_ids المُمررة عند استدعاء نموذج النص إلى الوحدات الفرعي لـ ~SeamlessM4TModel أو ~SeamlessM4TForSpeechToSpeech أو ~SeamlessM4TForTextToSpeech.
  • hidden_size (int، اختياري، القيمة الافتراضية 1024) — أبعاد التمثيلات المخفية.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • layer_norm_eps (float, اختياري، القيمة الافتراضية 1e-05) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة.
  • use_cache (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كان config.is_decoder=True أو إذا كان النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط.
  • max_position_embeddings (int، اختياري، القيمة الافتراضية 1024) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق.
  • encoder_layerdrop (Union[float, int]، اختياري، القيمة الافتراضية 0.05) — احتمال LayerDrop للمُشفِّر. راجع [ورقة LayerDrop](انظر https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.
  • decoder_layerdrop (Union[float, int]، اختياري، القيمة الافتراضية 0.05) — احتمال LayerDrop الخاص بفك الترميز. راجع [ورقة LayerDrop](انظر https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.
  • activation_function (str، اختياري، القيمة الافتراضية relu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وغيرها.
  • dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — النسبة لجميع طبقات dropout.
  • attention_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — نسبة الإسقاط (dropout) لاحتمالات الانتباه.
  • activation_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — نسبة dropout للتفعيلات داخل الطبقة المتصلة بالكامل.
  • scale_embedding (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم توسيع التضمينات (embeddings) من خلال القسمة على sqrt(d_model).
  • encoder_layers (int, اختياري، القيمة الافتراضية 24) — عدد الطبقات المخفية في مُشفِّر Transformer. سيُستخدم نفس قيمة num_layers إذا لم يتم تعيينه.
  • encoder_ffn_dim (int، اختياري، القيمة الافتراضية 8192) — أبعاد طبقة «الوسط» (التي تُسمّى غالباً بطبقة التغذية الأمامية) في المُشفِّر.
  • encoder_attention_heads (int, اختياري، القيمة الافتراضية 16) — عدد رؤوس الانتباه لكل طبقة انتباه في مُشفِّر Transformer.
  • decoder_layers (int, اختياري، القيمة الافتراضية 24) — عدد الطبقات المخفية في مُفكِّك Transformer. سيُستخدم نفس قيمة num_layers إذا لم يتم ضبطه.
  • decoder_ffn_dim (int، اختياري، القيمة الافتراضية 8192) — أبعاد طبقة "الوسط" (التي تُسمّى غالبًا بطبقة التغذية الأمامية) في المُفكِّك.
  • decoder_attention_heads (int، اختياري، القيمة الافتراضية 16) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • decoder_start_token_id (int, اختياري، القيمة الافتراضية 3) — إذا بدأ نموذج المُشفِّر-المُفكِّك عملية فك التشفير برمز مختلف عن bos، فإن هذا هو المعرّف الخاص بذلك الرمز.
  • max_new_tokens (int، اختياري، القيمة الافتراضية 256) — الحد الأقصى لعدد رموز النص التي سيتم توليدها، مع تجاهل عدد الرموز الموجودة في الاستعلام.
  • pad_token_id (int، اختياري، القيمة الافتراضية 0) — معرّف الرمز المستخدم للتعبئة في المفردات.
  • bos_token_id (int، اختياري، القيمة الافتراضية 2) — معرّف الرمز المستخدم لبدء البث في المفردات.
  • eos_token_id (Union[int, list[int]]، اختياري، القيمة الافتراضية 3) — معرّف الرمز المستخدم لنهاية التدفق في المفردات.
  • speech_encoder_layers (int, اختياري، القيمة الافتراضية 24) — عدد الطبقات المخفية في مُشفِّر الكلام من نوع Transformer.
  • speech_encoder_attention_heads (int، اختياري، القيمة الافتراضية 16) — عدد رؤوس الانتباه لكل طبقة انتباه في مُشفِّر الكلام Transformer.
  • speech_encoder_intermediate_size (int, اختياري، القيمة الافتراضية 4096) — أبعاد طبقة "الوسيطة" (أي طبقة التغذية الأمامية) في مُشفِّر الكلام من نوع Transformer.
  • speech_encoder_hidden_act (str أو function، اختياري، القيمة الافتراضية "swish") — دالة التنشيط غير الخطية (دالة أو نص) في مشفّر الكلام. إذا كان نصًا، فالدوال المدعومة هي "gelu"، "relu"، "selu"، "swish" و"gelu_new".
  • speech_encoder_dropout (float, اختياري، القيمة الافتراضية 0.0) — احتمالية الإسقاط (dropout) لجميع الطبقات في مشفّر الكلام.
  • add_adapter (bool، اختياري، القيمة الافتراضية True) — إضافة طبقة مُكيّف فوق مُشفّر الكلام.
  • speech_encoder_layerdrop (float, اختياري، القيمة الافتراضية 0.1) — احتمال LayerDrop لمُشفِّر الكلام. راجع [ورقة LayerDrop](انظر https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.
  • feature_projection_input_dim (int, اختياري، القيمة الافتراضية 160) — أبعاد مدخلات إسقاط الميزات المدخلة لمُشفِّر الكلام، أي الأبعاد بعد معالجة المقاطع الصوتية المدخلة باستخدام SeamlessM4TFeatureExtractor.
  • num_conv_pos_embeddings (int، اختياري، القيمة الافتراضية 128) — عدد التضمينات الموضعية التلافيفية. يحدد حجم النواة لطبقة التضمينات الموضعية التلافيفية أحادية البُعد في مُشفِّر الكلام.
  • num_conv_pos_embedding_groups (int, اختياري، القيمة الافتراضية 16) — عدد مجموعات طبقة التضمينات الموضعية التحويلية أحادية البعد في مشفّر الكلام.
  • adaptor_kernel_size (int، اختياري، القيمة الافتراضية 8) — حجم النواة للطبقات التلافيفية في شبكة المحوّل. لا ينطبق إلا إذا كان add_adapter is True.
  • adaptor_stride (int، اختياري، القيمة الافتراضية 8) — خطوة طبقات الالتفاف في شبكة المحوّل. لا ينطبق إلا إذا كان add_adapter is True.
  • adaptor_dropout (float, اختياري، القيمة الافتراضية 0.1) — احتمالية الإسقاط (dropout) لجميع الطبقات في مُكيّف الكلام.
  • num_adapter_layers (int، اختياري، القيمة الافتراضية 1) — عدد طبقات الالتفاف التي يجب استخدامها في شبكة المحوّل. لا ينطبق إلا إذا كان add_adapter is True.
  • position_embeddings_type (str، اختياري، القيمة الافتراضية "relative") — يمكن تحديده إلى relative أو rotary لتضمين الموضع النسبي أو الدوراني على التوالي. إذا تُرك None فلن يُطبق تضمين موضع نسبي. يُطبق فقط على مُشفِّر الكلام.
  • rotary_embedding_base (int، اختياري، القيمة الافتراضية 10000) — إذا تم استخدام تضمينات الموضع "rotary"، يحدد حجم قاعدة التضمين. يُطبَّق فقط على مُشفِّر الكلام.
  • max_source_positions (int، اختياري، القيمة الافتراضية 4096) — إذا تم استخدام تضمينات الموضع "relative"، يحدد أقصى مواضع مدخلات المصدر. يُطبَّق على مشفّر الكلام فقط.
  • conv_depthwise_kernel_size (int، اختياري، القيمة الافتراضية 31) — حجم النواة للطبقة التلافيفية أحادية البُعد العميقة (depthwise) في كتل Conformer. يُطبَّق على مُشفِّر الكلام فقط.
  • t2u_bos_token_id (int، اختياري، القيمة الافتراضية 0) — معرّف رمز وحدة بداية البث. يُطبَّق فقط على نموذج التحويل من نص إلى وحدة.
  • t2u_pad_token_id (int، اختياري، القيمة الافتراضية 1) — المعرّف الخاص برمز وحدة الحشو. يُطبَّق فقط على نموذج تسلسل-إلى-تسلسل من النص إلى الوحدة.
  • t2u_eos_token_id (int، اختياري، القيمة الافتراضية 2) — معرّف رمز وحدة نهاية البث. يُطبَّق فقط على نموذج تسلسل إلى تسلسل من النص إلى الوحدة.
  • t2u_decoder_start_token_id (int, اختياري، القيمة الافتراضية 2) — إذا بدأ نموذج المُشفِّر-المُفكِّك عملية فك التشفير برمز مختلف عن bos، فإن هذا هو معرّف ذلك الرمز. يُطبَّق هذا الإعداد فقط على نموذج تسلسل-إلى-تسلسل من النص إلى الوحدة.
  • t2u_max_new_tokens (int، اختياري، القيمة الافتراضية 1024) — الحد الأقصى لعدد رموز الوحدات التي سيتم توليدها، مع تجاهل عدد الرموز في الاستعلام. يُطبَّق هذا المعامل فقط على نموذج التحويل من نص إلى وحدات (seq2seq).
  • t2u_encoder_layers (int، اختياري، القيمة الافتراضية 6) — عدد الطبقات المخفية في مُشفِّر النص إلى وحدة Transformer.
  • t2u_encoder_ffn_dim (int، اختياري، القيمة الافتراضية 8192) — بعد طبقة "الوسط" (أي طبقة التغذية الأمامية) في مُشفِّر النص إلى وحدة Transformer.
  • t2u_encoder_attention_heads (int, اختياري، القيمة الافتراضية 16) — عدد رؤوس الانتباه لكل طبقة انتباه في مشفّر النص إلى وحدة في Transformer.
  • t2u_decoder_layers (int، اختياري، القيمة الافتراضية 6) — عدد الطبقات المخفية في مُفكِّك النص إلى وحدة في Transformer.
  • t2u_decoder_ffn_dim (int، اختياري، القيمة الافتراضية 8192) — بعد طبقة «الوسيطة» (أي طبقة التغذية الأمامية) في مُفكِّك النص إلى وحدات Transformer.
  • t2u_decoder_attention_heads (int, اختياري، القيمة الافتراضية 16) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك النص إلى وحدة في نموذج Transformer.
  • t2u_max_position_embeddings (int، اختياري، القيمة الافتراضية 2048) — أقصى طول تسلسل قد يُستخدم معه مكوّن النص إلى الوحدة في هذا النموذج. يُفضَّل عادةً ضبط هذه القيمة على رقم كبير احتياطاً (مثل 512 أو 1024 أو 2048).
  • sampling_rate (int، اختياري، القيمة الافتراضية 16000) — معدل أخذ العينات الذي يجب أن تُرقَم به ملفات الصوت، ويُعبَّر عنه بالهرتز (Hz).
  • upsample_initial_channel (int, اختياري، القيمة الافتراضية 512) — عدد قنوات الإدخال إلى شبكة رفع العينات في hifi-gan. ينطبق على مُصوِّغ الصوت فقط.
  • upsample_rates (tuple[int] أو list[int]، اختياري، القيمة الافتراضية [5, 4, 4, 2, 2]) — مجموعة من الأعداد الصحيحة تُعرّف خطوة (stride) كل طبقة تلافيفية أحادية البعد في شبكة رفع العينة (upsampling) الخاصة بمُصنِّع الصوت (vocoder). يُحدِّد طول upsample_rates عدد الطبقات التلافيفية، ويجب أن يطابق طول upsample_kernel_sizes. ينطبق على مُصنِّع الصوت فقط.
  • upsample_kernel_sizes (tuple[int] أو list[int]، اختياري، القيمة الافتراضية [11, 8, 8, 4, 4]) — مجموعة من الأعداد الصحيحة تحدد حجم النواة لكل طبقة تلافيفية أحادية البعد في شبكة رفع العينة الخاصة بمصنع الكلام. يحدد طول upsample_kernel_sizes عدد الطبقات التلافيفية، ويجب أن يطابق طول upsample_rates. ينطبق على مصنع الكلام فقط.
  • resblock_kernel_sizes (tuple[int] أو list[int]، اختياري، القيمة الافتراضية [3, 7, 11]) — مجموعة من الأعداد الصحيحة تحدد أحجام النوى للطبقات التلافيفية أحادية البعد في مُصنِّع الصوت ضمن وحدة دمج الحقول متعددة الاستقبال (MRF). ينطبق على مُصنِّع الصوت فقط.
  • resblock_dilation_sizes (tuple[tuple[int]] أو list[list[int]]، اختياري، القيمة الافتراضية [[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — مجموعة متداخلة من الأعداد الصحيحة تحدد معدلات التمدد (dilation) لطبقات الالتفاف أحادية البعد الممددة في مُصنِّع الصوت (vocoder) ضمن وحدة الاندماج متعدد مجالات الاستقبال (MRF). ينطبق على مُصنِّع الصوت فقط.
  • leaky_relu_slope (float, اختياري، القيمة الافتراضية 0.1) — زاوية الميل السالب المستخدمة في دالة التنشيط Leaky ReLU داخل مُصنِّع الصوت. تنطبق على مُصنِّع الصوت فقط.
  • unit_hifi_gan_vocab_size (int, اختياري، القيمة الافتراضية 10000) — حجم مفردات مُنشئ الكلام (vocoder) في SeamlessM4T. يحدد عدد رموز الوحدات المختلفة التي يمكن تمثيلها بواسطة inputs_ids المُمررة عند استدعاء مُنشئ الكلام في ~SeamlessM4TModel أو ~SeamlessM4TForSpeechToSpeech أو ~SeamlessM4TForTextToSpeech.
  • unit_embed_dim (int, اختياري، القيمة الافتراضية 1280) — بُعد الإسقاط للمعرّفات المدخلة المُقدَّمة إلى مُصوِّت hifi-gan. ينطبق على المُصوِّت فقط.
  • lang_embed_dim (int، اختياري، القيمة الافتراضية 256) — بُعد الإسقاط للغة الهدف المُقدَّم إلى مُصوِّغ hifi-gan. ينطبق على المُصوِّغ فقط.
  • spkr_embed_dim (int، اختياري، القيمة الافتراضية 256) — بُعد الإسقاط الخاص بمعرّف المتحدّث المُقدَّم لمُصوِّغ hifi-gan. ينطبق على المُصوِّغ فقط.
  • vocoder_num_langs (int, اختياري، القيمة الافتراضية 36) — عدد اللغات المدعومة بواسطة مُنشئ الصوت. قد يختلف عن t2u_num_langs.
  • vocoder_num_spkrs (int, اختياري، القيمة الافتراضية 200) — عدد المتكلمين الذين يدعمهم مُولِّد الصوت.
  • variance_predictor_kernel_size (int, اختياري، القيمة الافتراضية 3) — حجم النواة (Kernel) لمُتنبئ المدة. ينطبق على مُصنِّع الصوت (Vocoder) فقط.
  • var_pred_dropout (float, اختياري، القيمة الافتراضية 0.5) — احتمالية إسقاط (dropout) متنبئ المدة. يُطبَّق على مُصنِّع الصوت (vocoder) فقط.
  • vocoder_offset (int, اختياري، القيمة الافتراضية 4) — إزاحة معرّفات رموز الوحدة بهذا العدد لمراعاة رموز الرموز. ينطبق على المُصوِّت فقط.
  • tie_word_embeddings (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب ربط ترميزات الأوزان (weight embeddings) وفقاً لخريطة tied_weights_keys الخاصة بالنموذج.

هذه فئة الإعدادات المخزنة لإعدادات نموذج SeamlessM4TModel. تُستخدم لاستحداث نموذج Seamless M4T وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ facebook/hf-seamless-m4t-medium

ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.

>>> from transformers import SeamlessM4TModel, SeamlessM4TConfig

>>> # Initializing a SeamlessM4T "facebook/hf-seamless-m4t-medium" style configuration
>>> configuration = SeamlessM4TConfig()

>>> # Initializing a model from the "facebook/hf-seamless-m4t-medium" style configuration
>>> model = SeamlessM4TModel(configuration)

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

SeamlessM4TTokenizer

فئة transformers.SeamlessM4TTokenizer

< >

( vocab: str | dict[str, int] | None = Nonemerges: str | list[str] | None = Nonebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'src_lang = 'eng'tgt_lang = 'fra'additional_special_tokens = Nonekeep_accents = Nonevocab_file = None**kwargs )

المعاملات

  • vocab (list أو dict، اختياري) — قائمة من أزواج (رمز، درجة) أو قاموس يربط الرموز بالفهارس. إذا لم يُقدَّم، يتم استخدام قاموس افتراضي.
  • merges (str أو list، اختياري) — قائمة قواعد الدمج لنموذج BPE. إذا لم يُقدَّم، يتم استخدام قائمة فارغة.
  • bos_token (str, اختياري, الافتراضي هو "<s>") — رمز بداية التسلسل الذي تم استخدامه أثناء التدريب المسبق. يمكن استخدامه كرمز لتصنيف التسلسل. عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لبداية التسلسل، بل يُستخدم رمز cls_token.

    عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لبدء التسلسل. الرمز المستخدم هو cls_token.

  • eos_token (str, اختياري, الافتراضي هو "</s>") — رمز نهاية التسلسل. عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لنهاية التسلسل، بل يُستخدم رمز الفاصل (sep_token) لهذا الغرض.

    عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لنهاية التسلسل. الرمز المستخدم هو sep_token.

  • sep_token (str، اختياري، القيمة الافتراضية "</s>") — رمز الفاصل، الذي يُستخدم عند بناء تسلسل من عدة تسلسلات، على سبيل المثال تسلسلان لتصنيف التسلسل أو نص وسؤال للإجابة على الأسئلة. كما يُستخدم كآخر رمز في تسلسل مبني باستخدام الرموز الخاصة.
  • cls_token (str، اختياري، القيمة الافتراضية "<s>") — رمز التصنيف الذي يُستخدم عند إجراء تصنيف التسلسل (تصنيف التسلسل بأكمله بدلاً من التصنيف لكل رمز على حدة). وهو الرمز الأول في التسلسل عند بناؤه باستخدام الرموز الخاصة.
  • unk_token (str، اختياري، القيمة الافتراضية "<unk>") — رمز المجهول. لا يمكن تحويل الرمز غير الموجود في المفردات إلى معرّف، لذا يُعيَّن هذا الرمز بدلاً منه.
  • pad_token (str، اختياري، القيمة الافتراضية "<pad>") — الرمز المستخدم للتعبئة، على سبيل المثال عند تجميع تسلسلات ذات أطوال مختلفة.
  • src_lang (str، اختياري، القيمة الافتراضية "eng") — اللغة المستخدمة كلغة المصدر للترجمة.
  • tgt_lang (str، اختياري، القيمة الافتراضية "fra") — اللغة المستخدمة كلغة الهدف للترجمة.
  • additional_special_tokens (tuple أو قائمة من str أو tokenizers.AddedToken، اختياري) — tuple أو قائمة من الرموز الخاصة الإضافية.

أنشئ مُرمِّز SeamlessM4T (مدعوم بمكتبة tokenizers من HuggingFace). يعتمد على BPE.

يرث هذا المُجزِّئ من TokenizersBackend الذي يحتوي على معظم الطرق الرئيسية. ينبغي على المستخدمين الرجوع إلى هذه الفئة الأصلية لمزيد من المعلومات حول تلك الطرق.

تكون طريقة الترميز <language code> <tokens> <eos> للمستندات بلغة المصدر، و<eos> <language code> <tokens> <eos> للمستندات بلغة الهدف.

أمثلة:

>>> from transformers import SeamlessM4TTokenizer

>>> tokenizer = SeamlessM4TTokenizer.from_pretrained(
...     "facebook/hf-seamless-m4t-medium", src_lang="eng", tgt_lang="fra"
... )
>>> example_english_phrase = " UN Chief Says There Is No Military Solution in Syria"
>>> expected_translation_french = "Le chef de l'ONU affirme qu'il n'y a pas de solution militaire en Syrie."
>>> inputs = tokenizer(example_english_phrase, text_target=expected_translation_french, return_tensors="pt")

__call__

< >

( text: str | list[str] | list[list[str]] | None = Nonetext_pair: str | list[str] | list[list[str]] | None = Nonetext_target: str | list[str] | list[list[str]] | None = Nonetext_pair_target: str | list[str] | list[list[str]] | None = Nonepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsepad_to_multiple_of: int | None = Nonesrc_lang: str | None = Nonetgt_lang: str | None = None**kwargs )

المعاملات

  • text (str، list[str]، list[list[str]]، اختياري) — التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصًا أو قائمة من النصوص (نصوص مُقسّمة مسبقًا إلى رموز). إذا تم تقديم التسلسلات على شكل قائمة من النصوص (مقسّمة مسبقًا)، فيجب تعيين is_split_into_words=True (لرفع الغموض مع دفعة من التسلسلات).
  • text_pair (str، list[str]، list[list[str]]، اختياري) — التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصًا أو قائمة من النصوص (نصوص مُقسّمة مسبقًا إلى رموز). إذا تم تقديم التسلسلات على شكل قائمة من النصوص (مقسّمة مسبقًا)، فيجب تعيين is_split_into_words=True (لرفع الغموض مع دفعة من التسلسلات).
  • text_target (str، list[str]، list[list[str]]، اختياري) — التسلسل أو الدفعة من التسلسلات التي سيتم ترميزها كنصوص هدف. يمكن أن يكون كل تسلسل نصًا أو قائمة من النصوص (نص مُقسَّم مسبقًا إلى وحدات). إذا تم تقديم التسلسلات على شكل قائمة من النصوص (مُقسَّمة مسبقًا)، فيجب عليك تعيين is_split_into_words=True (لرفع الغموض مع دفعة من التسلسلات).
  • text_pair_target (str، list[str]، list[list[str]]، اختياري) — التسلسل أو الدفعة من التسلسلات التي سيتم ترميزها كنصوص هدف. يمكن أن يكون كل تسلسل نصًا أو قائمة من النصوص (نص مُقسَّم مسبقًا إلى وحدات). إذا تم تقديم التسلسلات على شكل قائمة من النصوص (مُقسَّمة مسبقًا)، فيجب عليك تعيين is_split_into_words=True (لرفع الغموض مع دفعة من التسلسلات).
  • padding (bool, str أو PaddingStrategy, اختياري, الافتراضي هو False) — اختر استراتيجية لإضافة الحشو إلى التسلسلات المُعادَة (وفقًا لجانب الحشو وفهرس الحشو الخاص بالنموذج) من بين الخيارات التالية:
    • True أو 'longest': يتم ملء التسلسلات حتى أطول تسلسل في الدفعة (أو لا يتم أي ملء إذا تم تقديم تسلسل واحد فقط).
    • 'max_length': يتم ملء النص حتى الطول الأقصى المحدد عبر الحجة max_length أو حتى الطول الأقصى المقبول لإدخال النموذج إذا لم تُقدَّم تلك الحجة.
    • False أو 'do_not_pad' (الافتراضي): لا يوجد حشو (أي، يمكن إخراج دفعة تحتوي على تسلسلات بطول مختلف).
  • pad_to_multiple_of (int, اختياري, الافتراضي هو None) — إذا تم تعيينه، سيتم توسيط التسلسل إلى مضاعف للقيمة المُقدَّمة.

    يُعدّ هذا مفيدًا بشكل خاص لتفعيل استخدام نوى التينسور (Tensor Cores) على أجهزة NVIDIA التي تتمتع بقابلية معالجة >= 7.5 (Volta).

  • src_lang (str، اختياري) — نص يمثّل اللغة المصدر. إذا لم يُحدَّد، فسيتم استخدام آخر src_lang مُحدَّد (سواءً أثناء التهيئة أو عند استدعاء هذا المُجزِّئ).
  • tgt_lang (str، اختياري) — نص يمثّل اللغة المستهدفة. إذا لم يُحدَّد، فسيتم استخدام آخر tgt_lang مُحدَّد (سواءً أثناء التهيئة أو عند استدعاء هذا المُجزِّئ).
  • kwargs (اختياري) — القاموس المتبقي من معاملات الكلمات المفتاحية التي سيتم تمريرها إلى TokenizersBackend.call().

get_special_tokens_mask

< >

( token_ids_0: list[int]token_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

المعاملات

  • token_ids_0 — قائمة بالمعرّفات (IDs) للتسلسل (الذي قد يكون مُنسّقًا بالفعل).
  • token_ids_1 — غير مستخدم عندما يكون already_has_special_tokens=True. يجب أن يكون None في هذه الحالة.
  • already_has_special_tokens — ما إذا كانت التسلسلة منسّقة مسبقًا باستخدام الرموز الخاصة.

يعيد

قائمة من الأعداد الصحيحة في المدى [0, 1]

1 لرمز خاص، 0 لرمز التسلسل.

استرجاع معرّفات التسلسلات من قائمة الرموز التي لم تُضف إليها أي رموز خاصة.

للمُرمِّزات السريعة، تستدعي مُجمِّعات البيانات هذه الدالة مع already_has_special_tokens=True لبناء قناع فوق تسلسل مُنسَّق مسبقًا. في تلك الحالة، نحسب القناع عن طريق التحقق من العضوية في all_special_ids.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

SeamlessM4TFeatureExtractor

فئة transformers.SeamlessM4TFeatureExtractor

< >

( feature_size = 80sampling_rate = 16000num_mel_bins = 80padding_value = 0.0stride = 2**kwargs )

المعاملات

  • feature_size (int، اختياري، القيمة الافتراضية 80) — أبعاد الميزة للميزات المستخرجة.
  • sampling_rate (int, اختياري، القيمة الافتراضية 16000) — معدل أخذ العينات الذي يجب أن تُرقَم به ملفات الصوت، ويُعبَّر عنه بالهرتز (Hz).
  • num_mel_bins (int، اختياري، القيمة الافتراضية 80) — عدد دلاء تردد Mel.
  • padding_value (float، اختياري، القيمة الافتراضية 0.0) — القيمة المستخدمة لملء متجهات الحشو.
  • stride (int، اختياري، القيمة الافتراضية 2) — خطوة تُستخدم لإعادة تشكيل الأصوات من الشكل (batch_size,num_frames,num_mel_bins) إلى (batch_size,num_frames//stride,num_mel_bins*stride).

ينشئ مستخرج ميزات SeamlessM4T.

يرث مستخرج الميزات هذا من SequenceFeatureExtractor الذي يحتوي على معظم الطرق الرئيسية. ينبغي للمستخدمين الرجوع إلى هذه الفئة الأصلية لمزيد من المعلومات حول تلك الطرق.

تستخرج هذه الفئة ميزات بنك مرشحات ميل من الكلام الخام.

__call__

< >

( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]padding: bool | str | transformers.utils.generic.PaddingStrategy = Truepad_to_multiple_of: int | None = 2max_length: int | None = Nonetruncation: bool = Falsereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonesampling_rate: int | None = Nonereturn_attention_mask: bool | None = Nonedo_normalize_per_mel_bins: bool | None = True**kwargs )

المعاملات

  • raw_speech (np.ndarray, torch.Tensor, list[float], list[np.ndarray], list[torch.Tensor], —
  • list[list[float]], list[list[list[float]]]) — التسلسل أو الدفعة من التسلسلات التي سيتم ملؤها. يمكن أن يكون كل تسلسل مصفوفة numpy، أو tensor من torch، أو قائمة من قيم float، أو قائمة من مصفوفات numpy، أو قائمة من tensors من torch، أو قائمة من قوائم قيم float، أو قائمة من قائمة من قوائم قيم float. إذا كان raw_speech مصفوفة np.ndarray أحادية البُعد، أو torch.Tensor أو list[float]، يُعتبر raw_speech صوتًا أحادي القناة وعينة واحدة. في جميع الحالات الأخرى، يتوافق البُعد الأول لـ raw_speech، سواء كان من np.ndarray أو torch.Tensor أو list[...]، مع عدد العينات في الدفعة، ويُشتق عدد القنوات (أي الطابع أحادي أو ستيريو) من الأبعاد الأخرى (1D -> دفعات موجات صوتية أحادية القناة؛ 2D-> دفعات موجات صوتية بقناة ستيريو).
  • padding (bool, str أو PaddingStrategy, اختياري, الافتراضي هو True) — اختر استراتيجية لحشو التسلسلات المُعادَة (وفقًا لجانب الحشو وفهرس الحشو الخاص بالنموذج) من بين الخيارات التالية:
    • True أو 'longest': يتم ملء التسلسلات حتى أطول تسلسل في الدفعة (أو لا يتم أي ملء إذا تم تقديم تسلسل واحد فقط).
    • 'max_length': يتم ملء النص حتى الطول الأقصى المحدد عبر الحجة max_length أو حتى الطول الأقصى المقبول لإدخال النموذج إذا لم تُقدَّم تلك الحجة.
    • False أو 'do_not_pad' (الافتراضي): لا يوجد حشو (أي، يمكن إخراج دفعة تحتوي على تسلسلات بطول مختلف).
  • pad_to_multiple_of (int, اختياري, الافتراضي هو 2) — إذا تم ضبطه، سيتم توسيط التسلسل إلى مضاعف للقيمة المُقدَّمة.

    يُعدّ هذا مفيدًا بشكل خاص لتفعيل استخدام نوى التينسور (Tensor Cores) على أجهزة NVIDIA التي تتمتع بقابلية معالجة >= 7.5 (Volta)، أو على وحدات TPU التي تستفيد من أن تكون أطوال التسلسلات مضاعفات للعدد 128.

  • max_length (int، اختياري) — الحد الأقصى لطول القائمة المُعادَة وطول الحشو بشكل اختياري (انظر أعلاه).
  • truncation (bool) — يفعّل القصّ لقطع تسلسلات الإدخال الأطول من max_length إلى max_length.
  • return_attention_mask (bool, اختياري) — ما إذا كان يجب إرجاع قناع الانتباه. إذا تُركت القيمة الافتراضية، فسيتم إرجاع قناع الانتباه وفقًا للقيمة الافتراضية الخاصة بمعالج الميزات (feature_extractor) المعني.

    ما هي أقنعة الانتباه؟

    لنماذج SeamlessM4T، يجب دائماً تمرير attention_mask عند الاستدلال الدُفعي (batched inference) لتجنب الأخطاء الدقيقة.

  • return_tensors (str أو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات بدلاً من قائمة من الأعداد الصحيحة في Python. القيم المقبولة هي:
    • 'pt': إرجاع كائنات torch.Tensor من PyTorch.
    • 'np': إرجاع كائنات np.ndarray من نوع Numpy.
  • sampling_rate (int, اختياري) — معدل أخذ العينات الذي تم به أخذ عينات مدخل raw_speech. يُوصى بشدة بتمرير sampling_rate عند استدعاء forward لمنع الأخطاء الصامتة.
  • do_normalize_per_mel_bins (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم تطبيع المدخلات لكل قناة ميل (mel) بحيث تكون متوسطة صفرية وتباينها وحدة.
  • kwargs (اختياري) — المتبقّي من قاموس معاملات الكلمات المفتاحية التي سيتم تمريرها إلى مُجزّئ النص أو مستخرج الميزات.

الطريقة الرئيسية لتحويل السلسلة أو السلاسل إلى ميزات وتجهيزها للنموذج.

SeamlessM4TProcessor

فئة transformers.SeamlessM4TProcessor

< >

( feature_extractortokenizer )

المعاملات

  • feature_extractor (SeamlessM4TFeatureExtractor) — مستخرج الميزات هو مدخل إلزامي.
  • tokenizer (SeamlessM4TTokenizer) — مُجزِّئ الرموز هو مدخل إلزامي.

ينشئ SeamlessM4TProcessor الذي يجمع مستخرج الميزات ومجزئ الرموز في معالج واحد.

يوفر SeamlessM4TProcessor جميع وظائف SeamlessM4TFeatureExtractor وSeamlessM4TTokenizer. راجع ~SeamlessM4TFeatureExtractor و~SeamlessM4TTokenizer لمزيد من المعلومات.

__call__

< >

( text: str | list[str] | list[list[str]] | None = Noneaudio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None**kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'> ) → BatchEncoding

المعاملات

  • text (Union[str, list[str], list[list[str]]]، اختياري) — التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصاً أو قائمة من النصوص (نص مُقسَّم مسبقاً إلى رموز). إذا مرّرت مدخلاً مُقسَّماً مسبقاً إلى رموز، فعيّن is_split_into_words=True لتجنّب الغموض مع المدخلات المُجمَّعة في دفعات.
  • audio (Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], اختياري) — الصوت أو مجموعة الأصوات التي سيتم تجهيزها. يمكن أن يكون كل صوت مصفوفة NumPy أو متجه PyTorch. في حالة استخدام مصفوفة NumPy أو متجه PyTorch، يجب أن يكون شكل كل صوت (C, T)، حيث C هو عدد القنوات، وT هو طول العينة للصوت.
  • return_tensors (str أو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:
    • 'pt': إرجاع كائنات torch.Tensor من PyTorch.
    • 'np': إرجاع كائنات np.ndarray من NumPy.
  • **kwargs (ProcessingKwargs، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.

يعيد

BatchEncoding

BatchEncoding يحتوي على الحقول التالية:

  • input_ids — قائمة معرّفات الرموز التي تُغذّى بها النموذج. تُعاد عندما لا تكون text قيمة None.
  • attention_mask — قائمة بالفهارس تحدد الرموز التي يجب على النموذج الانتباه إليها (عندما يكون return_attention_mask=True أو إذا كان “attention_mask” ضمن self.model_input_names وإذا لم يكن text None).
  • input_features — ميزات الإدخال الصوتي التي تُغذّى إلى النموذج. تُعاد عندما لا تكون audios قيمة None.

SeamlessM4TCodeHifiGan

فئة transformers.SeamlessM4TCodeHifiGan

< >

( config: SeamlessM4TConfig )

المعاملات

  • config (SeamlessM4TConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

HiFi-GAN مُصوِّت الصوت كما هو موصوف في هذا مستودع.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_ids: LongTensorspkr_id: Tensorlang_id: Tensor**kwargs )

المعاملات

  • input_ids (torch.LongTensor بشكل (batch_size, sequence_length)) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات.

    يمكن الحصول على الفهارس باستخدام SeamlessM4TTextToUnitForConditionalGeneration. ما هي معرّفات الإدخال؟

  • spkr_id (int, اختياري) — معرّف المتحدَّث المستخدم لتوليد الكلام. يجب أن يكون أقل من config.vocoder_num_spkrs.
  • tgt_lang (str, اختياري) — معرّف اللغة الذي سيُستخدم كلغة الهدف للترجمة.

SeamlessM4THifiGan

فئة transformers.SeamlessM4THifiGan

< >

( config: SeamlessM4TConfig )

forward

< >

( inputs_embeds: Tensor ) → torch.Tensor

المعاملات

  • spectrogram (torch.Tensor) — مصفوفة تحتوي على مطيافات log-mel. يمكن أن تكون مُجمَّعة (batched) وبشكل (batch_size, sequence_length, model_in_dim)، أو غير مُجمَّعة وبشكل (sequence_length, model_in_dim). لاحظ أن model_in_dim هو مجموع config.unit_embed_dim وconfig.lang_embed_dim وconfig.spkr_embed_dim.

يعيد

torch.Tensor

مصفوفة تحتوي على موجة الصوت. إذا كان الطيف الصوتي المدخل مُجمَّعًا (batched)، فستكون على الشكل (batch_size, num_frames,). وإذا لم يكن مُجمَّعًا، فستكون على الشكل (num_frames,).

يحوّل طيف لوج-ميل (log-mel spectrogram) إلى موجة صوتية. عند تمرير دفعة من طيفات لوج-ميل، تُعاد دفعة من الموجات الصوتية. عند تمرير طيف لوج-ميل واحد غير مُجمَّع، تُعاد موجة صوتية واحدة غير مُجمَّعة.

SeamlessM4TTextToUnitModel

فئة transformers.SeamlessM4TTextToUnitModel

< >

( config: SeamlessM4TConfigembed_tokens_decoder: typing.Optional[torch.nn.Embedding] = None )

المعاملات

  • config (SeamlessM4TConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
  • embed_tokens_decoder (nn.Embedding، اختياري) — تضمين الإدخال الخاص بفك الترميز.

ترميز-فك ترميز نص خام إلى وحدة مبني على Transformer. المشفر هو SeamlessM4TEncoder بدون تضمينات، والمفكك هو SeamlessM4TDecoder.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqModelOutput or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

    ما هي أقنعة الانتباه؟

  • decoder_input_ids (torch.LongTensor بشكل (batch_size, target_sequence_length), اختياري) — مؤشرات رموز تسلسل مدخلات المُفكِّك في قاموس الكلمات.

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات مدخلات المُفكِّك؟

  • decoder_attention_mask (torch.LongTensor of shape (batch_size, target_sequence_length), اختياري) — قناع لتجنّب تنفيذ الانتباه على فهارس رموز معينة. افتراضيًا، يُستخدم قناع سببي (causal mask) للتأكد من أن النموذج لا يستطيع النظر إلا إلى المدخلات السابقة من أجل التنبؤ بالمستقبل.
  • encoder_outputs (tuple[tuple[torch.Tensor]]، اختياري) — مجموعة (توبل) تتكون من (last_hidden_state، اختياري: hidden_states، اختياري: attentions) last_hidden_state ذو الشكل (batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من حالات المخفية (hidden-states) عند مخرج الطبقة الأخيرة من المشفر. يُستخدم في الانتباه المتقاطع (cross-attention) داخل المُفكِّك (decoder).
  • past_key_values (~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً من past_key_values الذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندما use_cache=True أو config.use_cache=True.

    يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير past_key_values، فسيتم تهيئة DynamicCache افتراضياً.

    سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.

    عند استخدام past_key_values، يُتوقَّع من المستخدم إدخال input_ids غير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد (batch_size, unprocessed_length) بدلاً من جميع input_ids بأبعاد (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمرير input_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس input_ids إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.
  • decoder_inputs_embeds (torch.Tensor من الشكل (batch_size, target_sequence_length, hidden_size), اختياري) — اختياريًا، بدلاً من تمرير decoder_input_ids يمكنك اختيار تمرير تمثيل مضمّن مباشرة. إذا past_key_values مستخدم، فاختياريًا يكفي إدخال آخر decoder_inputs_embeds فقط (انظر past_key_values). هذا مفيد إذا كنت تريد مزيدًا من التحكم في كيفية تحويل decoder_input_ids فهارس إلى المتجهات المرتبطة بها مقارنةً بمصفوفة البحث التضمينية الداخلية للنموذج.

    إذا لم يتم تعيين كلٍّ من decoder_input_ids وdecoder_inputs_embeds، فإن decoder_inputs_embeds يأخذ قيمة inputs_embeds.

  • use_cache (bool، اختياري) — إذا تم تعيينه إلى True، تُعاد حالات المفاتيح والقيم past_key_values ويمكن استخدامها لتسريع فك الترميز (انظر past_key_values).

يعيد

Seq2SeqModelOutput أو tuple(torch.Tensor)

Seq2SeqModelOutput أو مجموعة مرتبة من torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (SeamlessM4TConfig) والمدخلات.

تتجاوز طريقة SeamlessM4TTextToUnitModel الخاصة بالتقديم (forward) الطريقة الخاصة __call__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

  • last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل من حالات الإخفاء عند مخرج الطبقة الأخيرة من فاحم النموذج.

    إذا تم استخدام past_key_values، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل (batch_size, 1, hidden_size) هي التي تُخرج.

  • past_key_values (EncoderDecoderCache، اختياري، يُعاد عند تمرير use_cache=True أو عند تعيين config.use_cache=True) — إنه كائن من نوع EncoderDecoderCache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.

    تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها (انظر مدخل past_key_values) لتسريع فك الترميز التسلسلي.

  • decoder_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات المخفية (Hidden-states) للوحدة الترميزية (decoder) عند مخرج كل طبقة، بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • decoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

  • cross_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه المتقاطع.

  • encoder_last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.

  • encoder_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • encoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُشفِّر، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

SeamlessM4TTextToUnitForConditionalGeneration

فئة transformers.SeamlessM4TTextToUnitForConditionalGeneration

< >

( config: SeamlessM4TConfigembed_tokens_decoder: typing.Optional[torch.nn.Embedding] = None )

المعاملات

  • config (SeamlessM4TConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
  • embed_tokens_decoder (nn.Embedding، اختياري) — تضمين الإدخال الخاص بفك الترميز.

ترميز-فك ترميز نص إلى وحدة من نوع Transformer مع رأس نموذج لغوي. النموذج الأساسي للترميز-فك الترميز هو SeamlessM4TTextToUnit.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

    ما هي أقنعة الانتباه؟

  • decoder_input_ids (torch.LongTensor بشكل (batch_size, target_sequence_length), اختياري) — مؤشرات رموز تسلسل مدخلات المُفكِّك في قاموس النموذج. يمكن الحصول على المؤشرات باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات مدخلات المُفكِّك؟ يستخدم Bart رمز eos_token_id كرمز بداية لتوليد decoder_input_ids. إذا تم استخدام past_key_values، فيجب إدخال آخر decoder_input_ids فقط بشكل اختياري (راجع past_key_values). في تدريب الترجمة والتلخيص، يجب تقديم decoder_input_ids. إذا لم يتم تقديم decoder_input_ids، سيقوم النموذج بإنشاء هذا المصفوفة بإزاحة input_ids إلى اليمين للتدريب المسبق على إزالة الضوضاء وفقاً للورقة البحثية.

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات مدخلات المُفكِّك؟

    يستخدم Bart الرمز eos_token_id كرمز بداية لتوليد decoder_input_ids. إذا تم استخدام past_key_values، فاختياريًا لا يتعين إدخال سوى آخر decoder_input_ids (انظر past_key_values).

    لتدريب الترجمة والتلخيص، يجب تقديم decoder_input_ids. إذا لم يتم تقديم decoder_input_ids، فسيقوم النموذج بإنشاء هذا الموتر عن طريق إزاحة input_ids إلى اليمين للتدريب المسبق لإزالة الضوضاء وفقاً للورقة البحثية.

  • decoder_attention_mask (torch.LongTensor بشكل (batch_size, target_sequence_length), اختياري) — السلوك الافتراضي: توليد متجه يتجاهل رموز الحشو في decoder_input_ids. سيتم استخدام قناع سببي أيضًا بشكل افتراضي.

    إذا كنت ترغب في تغيير سلوك الحشو، فيجب عليك قراءة modeling_bart._prepare_decoder_attention_mask وتعديله حسب احتياجاتك. راجع الشكل 1 في الورقة البحثية لمزيد من المعلومات حول الاستراتيجية الافتراضية.

  • encoder_outputs (tuple[tuple[torch.Tensor]]، اختياري) — مجموعة (توبل) تتكون من (last_hidden_state، اختياري: hidden_states، اختياري: attentions) last_hidden_state ذو الشكل (batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من حالات المخفية (hidden-states) عند مخرج الطبقة الأخيرة من المشفر. يُستخدم في الانتباه المتقاطع (cross-attention) داخل المُفكِّك (decoder).
  • past_key_values (~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً من past_key_values الذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندما use_cache=True أو config.use_cache=True.

    يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير past_key_values، فسيتم تهيئة DynamicCache افتراضياً.

    سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.

    عند استخدام past_key_values، يُتوقَّع من المستخدم إدخال input_ids غير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد (batch_size, unprocessed_length) بدلاً من جميع input_ids بأبعاد (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor بشكل(batch_size, sequence_length, hidden_size), اختياري) — اختياريًا، بدلاً من تمرير input_ids يمكنك اختيار تمرير تمثيل مضمّن مباشرة. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل input_ids الفهارس إلى المتجهات المرتبطة بها مقارنةً بمصفوفة البحث التضمينية الداخلية للنموذج.

    labels (torch.LongTensor of shape (batch_size, sequence_length), اختياري): التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس ضمن [-100, 0, ..., config.vocab_size] (انظر input_ids docstring) يتم تجاهل الرموز التي تكون فهارسها -100 (مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن [0, ..., config.vocab_size]

  • decoder_inputs_embeds (torch.Tensor من الشكل (batch_size, target_sequence_length, hidden_size), اختياري) — اختياريًا، بدلاً من تمرير decoder_input_ids يمكنك اختيار تمرير تمثيل مضمّن مباشرة. إذا past_key_values مستخدم، فاختياريًا يكفي إدخال آخر decoder_inputs_embeds فقط (انظر past_key_values). هذا مفيد إذا كنت تريد مزيدًا من التحكم في كيفية تحويل decoder_input_ids فهارس إلى المتجهات المرتبطة بها مقارنةً بمصفوفة البحث التضمينية الداخلية للنموذج.

    إذا لم يتم تعيين كلٍّ من decoder_input_ids وdecoder_inputs_embeds، فإن decoder_inputs_embeds يأخذ قيمة inputs_embeds.

  • labels (torch.LongTensor من الشكل (batch_size, sequence_length)، اختياري) — التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس ضمن [0, ..., config.vocab_size] أو -100 (انظر input_ids docstring). يتم تجاهل الرموز التي فهارسها مضبوطة على -100 (مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن [0, ..., config.vocab_size].
  • use_cache (bool، اختياري) — إذا تم تعيينه إلى True، تُعاد حالات المفاتيح والقيم past_key_values ويمكن استخدامها لتسريع فك الترميز (انظر past_key_values).

يعيد

Seq2SeqLMOutput أو tuple(torch.Tensor)

Seq2SeqLMOutput أو مجموعة مرتبة من torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (SeamlessM4TConfig) والمدخلات.

تتجاوز طريقة SeamlessM4TTextToUnitForConditionalGeneration الأمامية الطريقة الخاصة __call__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

  • loss (torch.Tensor of shape (1,), اختياري, يُعاد عند توفير labels) — خسارة نمذجة اللغة.

  • logits (torch.Tensor من الشكل (batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).

  • past_key_values (EncoderDecoderCache، اختياري، يُعاد عند تمرير use_cache=True أو عند تعيين config.use_cache=True) — إنه كائن من نوع EncoderDecoderCache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.

    تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها (انظر مدخل past_key_values) لتسريع فك الترميز التسلسلي.

  • decoder_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات المخفية (Hidden states) لمفكّك الترميز (decoder) عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي (initial embedding).

  • decoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

  • cross_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه المتقاطع.

  • encoder_last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.

  • encoder_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي.

  • encoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُشفِّر، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

Update on GitHub