Transformers documentation
SeamlessM4T
نُشر هذا النموذج في أوراق HF في 22 أغسطس 2023، وأُضيف إلى مكتبة Hugging Face Transformers في 23 أكتوبر 2023.
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
< source >( 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
< source >( 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.Tensorof 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
< source >( config: SeamlessM4TConfig )
المعاملات
- config (SeamlessM4TConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج SeamlessM4T لتحويل النص إلى كلام، وهو نموذج تحويلي يمكن استخدامه لتوليد الكلام من النص.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
generate
< source >( 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
< source >( config: SeamlessM4TConfig )
المعاملات
- config (SeamlessM4TConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج SeamlessM4T لتحويل الكلام إلى كلام، وهو نموذج تحويلي يمكن استخدامه في مهام S2ST.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
generate
< source >( 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
< source >( config: SeamlessM4TConfig )
المعاملات
- config (SeamlessM4TConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج SeamlessM4T من نوع transformer لتحويل النص إلى نص، والذي يمكن استخدامه في مهمة T2TT.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( 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.LongTensorof shape(batch_size, sequence_length), اختياري): التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس ضمن[-100, 0, ..., config.vocab_size](انظرinput_idsdocstring) يتم تجاهل الرموز التي تكون فهارسها-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_idsdocstring). يتم تجاهل الرموز التي فهارسها مضبوطة على-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.Tensorof 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
< source >( 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
< source >( config: SeamlessM4TConfig )
المعاملات
- config (SeamlessM4TConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج SeamlessM4T لتحويل الكلام إلى نص، وهو نموذج transformer يمكن استخدامه لتحويل الكلام إلى نص.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( 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.LongTensorof shape(batch_size, sequence_length), اختياري): التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس ضمن[-100, 0, ..., config.vocab_size](انظرinput_idsdocstring) يتم تجاهل الرموز التي تكون فهارسها-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_idsdocstring). يتم تجاهل الرموز التي فهارسها مضبوطة على-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.Tensorof 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
< source >( 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
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 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.configSeamlessM4TTokenizer
فئة transformers.SeamlessM4TTokenizer
< source >( 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__
< source >( 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
< source >( 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.
SeamlessM4TFeatureExtractor
فئة transformers.SeamlessM4TFeatureExtractor
< source >( 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__
< source >( 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
< source >( feature_extractortokenizer )
ينشئ SeamlessM4TProcessor الذي يجمع مستخرج الميزات ومجزئ الرموز في معالج واحد.
يوفر SeamlessM4TProcessor جميع وظائف SeamlessM4TFeatureExtractor وSeamlessM4TTokenizer. راجع ~SeamlessM4TFeatureExtractor و~SeamlessM4TTokenizer لمزيد من المعلومات.
__call__
< source >( 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 يحتوي على الحقول التالية:
- input_ids — قائمة معرّفات الرموز التي تُغذّى بها النموذج. تُعاد عندما لا تكون
textقيمةNone. - attention_mask — قائمة بالفهارس تحدد الرموز التي يجب على النموذج الانتباه إليها (عندما يكون
return_attention_mask=Trueأو إذا كان “attention_mask” ضمنself.model_input_namesوإذا لم يكنtextNone). - input_features — ميزات الإدخال الصوتي التي تُغذّى إلى النموذج. تُعاد عندما لا تكون
audiosقيمةNone.
SeamlessM4TCodeHifiGan
فئة transformers.SeamlessM4TCodeHifiGan
< source >( config: SeamlessM4TConfig )
المعاملات
- config (SeamlessM4TConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
HiFi-GAN مُصوِّت الصوت كما هو موصوف في هذا مستودع.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( 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
forward
< source >( 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
< source >( 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
< source >( 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.LongTensorof 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
< source >( 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
< source >( 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.LongTensorof shape(batch_size, sequence_length), اختياري): التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس ضمن[-100, 0, ..., config.vocab_size](انظرinput_idsdocstring) يتم تجاهل الرموز التي تكون فهارسها-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_idsdocstring). يتم تجاهل الرموز التي فهارسها مضبوطة على-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.Tensorof 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.