Transformers documentation
SeamlessM4T-v2
نُشر هذا النموذج في أوراق HF في 2023-12-08 وسُهم به في Hugging Face Transformers في 2023-11-30.
SeamlessM4T-v2
نظرة عامة
قُدِّم نموذج SeamlessM4T-v2 في Seamless: Multilingual Expressive and Streaming Speech Translation من قِبل فريق Seamless Communication التابع لـ Meta AI.
SeamlessM4T-v2 هي مجموعة من النماذج مصممة لتقديم ترجمة عالية الجودة، مما يتيح للأشخاص من مجتمعات لغوية مختلفة التواصل بسهولة عبر الكلام والنص. وهي تحسّن على الإصدار السابق. لمزيد من التفاصيل حول الفروق بين v1 وv2، راجع القسم الفرق مع SeamlessM4T-v1.
يتيح SeamlessM4T-v2 تنفيذ مهام متعددة دون الاعتماد على نماذج منفصلة:
- الترجمة من الكلام إلى الكلام (S2ST)
- الترجمة من الكلام إلى النص (S2TT)
- ترجمة النص إلى كلام (T2ST)
- الترجمة من نص إلى نص (T2TT)
- التعرف التلقائي على الكلام (ASR)
يمكن لـ SeamlessM4Tv2Model تنفيذ جميع المهام المذكورة أعلاه، لكن لكل مهمة نموذج فرعي مخصص لها.
المستخلص من الورقة البحثية هو كالتالي:
أدت التطورات الأخيرة في الترجمة الآلية للكلام إلى توسيع تغطية اللغات بشكل كبير، وتحسين القدرات متعددة الوسائط، وتمكين مجموعة واسعة من المهام والوظائف. ومع ذلك، تفتقر أنظمة الترجمة الآلية للكلام واسعة النطاق اليوم إلى ميزات أساسية تساعد على جعل التواصل الوسيط الآلي يبدو سلساً عند مقارنته بالحوار بين البشر. في هذا العمل، نقدم عائلة من النماذج التي تتيح ترجمات متعددة اللغات تعبيرية من طرف إلى طرف بطريقة تدفقية. أولاً، نساهم في إصدار محسّن من نموذج SeamlessM4T متعدد اللغات والوسائط على نطاق واسع—SeamlessM4T v2. تم تدريب هذا النموذج الأحدث، الذي يدمج إطار UnitY2 المحدّث، على مزيد من البيانات بلغات منخفضة الموارد. يضيف الإصدار الموسّع من SeamlessAlign 114,800 ساعة من البيانات المحاذاة آلياً، ليصل إجمالي اللغات إلى 76 لغة. يوفر SeamlessM4T v2 الأساس الذي تُبنى عليه أحدث نموذجين لنا، وهما SeamlessExpressive وSeamlessStreaming. يتيح SeamlessExpressive ترجمة تحافظ على أنماط الصوت والإيقاع. مقارنةً بالمحاولات السابقة في أبحاث الكلام التعبيري، يعالج عملنا جوانب معينة غير مستكشفة بشكل كافٍ من الإيقاع، مثل سرعة الكلام والتوقفات، مع الحفاظ أيضاً على أسلوب الصوت. أما بالنسبة لـ SeamlessStreaming، فيستفيد نموذجنا من آلية Efficient Monotonic Multihead Attention (EMMA) لتوليد ترجمات الهدف منخفضة الكمون دون انتظار اكتمال عبارات المصدر. وبصفته الأول من نوعه، يتيح SeamlessStreaming الترجمة المتزامنة من الكلام إلى الكلام/النص لعدة لغات مصدر وهدف. لفهم أداء هذه النماذج، جمعنا بين مقاييس آلية جديدة وإصدارات معدّلة من المقاييس الحالية لتقييم الإيقاع والكمون والمتانة. ولتقييمات البشر، عدّلنا بروتوكولات قائمة مصممة لقياس السمات الأكثر صلة في الحفاظ على المعنى والطبيعية والتعبيرية. ولضمان استخدام نماذجنا بأمان ومسؤولية، نفّذنا أول جهد معروف لفريق الاختراق الأحمر (red-teaming) للترجمة الآلية متعددة الوسائط، ونظاماً لكشف ومعالجة السمية المضافة، وتقييماً منهجياً للتحيز الجنسي، وآلية علامة مائية محلية غير مسموعة مصممة لتخفيف تأثير التزييف العميق. ونتيجةً لذلك، جمعنا المكونات الرئيسية من SeamlessExpressive وSeamlessStreaming لتشكيل Seamless، وهو أول نظام متاح للعموم يفتح الباب أمام التواصل التعبيري عبر اللغات في الوقت الفعلي. باختصار، يمنحنا Seamless نظرة محورية على الأساس التقني المطلوب لتحويل المترجم الشامل للكلام من مفهوم خيالي علمي إلى تقنية واقعية. أخيراً، المساهمات في هذا العمل—بما في ذلك النماذج والكود وكاشف العلامة المائية—متاحة للعموم ويمكن الوصول إليها عبر الرابط أدناه.
الاستخدام
في المثال التالي، سنقوم بتحميل عينة صوتية بالعربية وعينة نصية بالإنجليزية، ثم تحويلهما إلى كلام بالروسية ونص بالفرنسية.
أولاً، حمّل المعالج ونقطة تحقق من النموذج:
from transformers import AutoProcessor, SeamlessM4Tv2Model
processor = AutoProcessor.from_pretrained("facebook/seamless-m4t-v2-large")
model = SeamlessM4Tv2Model.from_pretrained("facebook/seamless-m4t-v2-large", 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 text as well
text_inputs = processor(text = "Hello, my dog is cute", src_lang="eng", return_tensors="pt").to(model.device)الخطاب
يمكن لنموذج SeamlessM4Tv2Model توليد النص أو الكلام بشكل سلس مع تغييرات قليلة أو معدومة. لنستهدف ترجمة الصوت إلى الروسية:
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 إلى SeamlessM4Tv2Model.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. استخدام نماذج مخصصة
SeamlessM4Tv2Model هو النموذج الرئيسي في transformers لتوليد الكلام والنص، لكن يمكنك أيضاً استخدام نماذج مخصصة تؤدي المهمة دون مكونات إضافية، مما يقلل من استهلاك الذاكرة. على سبيل المثال، يمكنك استبدال مقتطف توليد الصوت-إلى-الصوت بالنموذج المخصص لمهمة S2ST، والباقي هو نفس الكود تماماً:
from transformers import SeamlessM4Tv2ForSpeechToSpeech
model = SeamlessM4Tv2ForSpeechToSpeech.from_pretrained("facebook/seamless-m4t-v2-large", device_map="auto")أو يمكنك استبدال مقتطف توليد النص إلى النص بالنموذج المخصص لمهمة T2TT، حيث يكفي إزالة generate_speech=False.
from transformers import SeamlessM4Tv2ForTextToText
model = SeamlessM4Tv2ForTextToText.from_pretrained("facebook/seamless-m4t-v2-large", device_map="auto")لا تتردد في تجربة SeamlessM4Tv2ForSpeechToText و SeamlessM4Tv2ForTextToSpeech أيضًا.
2. تغيير هوية المتحدث
يمكنك تغيير المتحدث المستخدم في تركيب الكلام عبر الحجة speaker_id. بعض قيم speaker_id تعمل بشكل أفضل من غيرها مع بعض اللغات!
3. تغيير استراتيجية التوليد
يمكنك استخدام استراتيجيات توليد مختلفة لتوليد النص، مثل .generate(input_ids=input_ids, text_num_beams=4, text_do_sample=True) الذي سيقوم بتنفيذ فك الترميز بالبحث الحزمي متعدد الحدود على نموذج النص. لاحظ أن توليد الكلام يدعم فقط الجشع - افتراضياً - أو العينة متعددة الحدود، والتي يمكن استخدامها مع مثلاً .generate(..., speech_do_sample=True, speech_temperature=0.6).
4. توليد الكلام والنص في الوقت نفسه
استخدم return_intermediate_token_ids=True مع SeamlessM4Tv2Model لإرجاع كلٍّ من الكلام والنص!
بنية النموذج
يتميز SeamlessM4T-v2 ببنية متعددة الاستخدامات تتعامل بسلاسة مع التوليد التسلسلي للنص والكلام. يتكون هذا الإعداد من نموذجين من نوع تسلسل إلى تسلسل (seq2seq). يقوم النموذج الأول بترجمة النمط المدخل إلى نص مترجم، بينما يولّد النموذج الثاني رموز الكلام، المعروفة بـ "رموز الوحدة"، من النص المترجم.
يتميز كل نمط إدراكي بمشفر مخصص له بهيكل فريد. بالإضافة إلى ذلك، في حالة المخرجات الصوتية، يُوضع مُصوِّغ (vocoder) مستوحى من بنية HiFi-GAN فوق نموذج seq2seq الثاني.
الفرق مع SeamlessM4T-v1
تختلف بنية هذه النسخة الجديدة عن النسخة الأولى في عدة جوانب:
تحسينات على نموذج المرور الثاني
النموذج الثاني من نوع seq2seq، المسمى نموذج النص إلى الوحدات، أصبح غير ذاتي التكرار، مما يعني أنه يحسب الوحدات في مرور أمامي واحد. وقد تمكّن هذا الإنجاز بفضل:
- استخدام تضمينات على مستوى الأحرف، أي أن لكل حرف من النص المترجم المتوقع تضميناته الخاصة، والتي تُستخدم بعد ذلك للتنبؤ بوحدات الرموز.
- استخدام متنبئ مدة وسيط، يتنبأ بمدة الكلام على مستوى الحرف في النص المترجم المتوقع.
- استخدام مُفكِّك جديد من النص إلى الوحدات يمزج بين الالتفافات والانتباه الذاتي للتعامل مع سياقات أطول.
الفرق في مُشفِّر الكلام
يتمايز مُشفّر الكلام، الذي يُستخدم أثناء عملية التوليد في المرور الأول للتنبؤ بالنص المُترجَم، بشكل رئيسي عن مُشفّر الكلام السابق من خلال هذه الآليات:
- استخدام قناع الانتباه المقسّم إلى أجزاء لمنع الانتباه عبر الأجزاء، مما يضمن أن كل موضع ينتبه فقط إلى المواضع ضمن جزئه الخاص وعدد ثابت من الأجزاء السابقة.
- استخدام تمثيلات المواقع النسبية التي تأخذ بعين الاعتبار المسافة بين عناصر التسلسل بدلاً من المواقع المطلقة. يُرجى الرجوع إلى Self-Attention with Relative Position Representations (Shaw et al.) لمزيد من التفاصيل.
- استخدام التمرير العمقي السببي بدلاً من التمرير غير السببي.
عملية التوليد
إليك كيفية عمل عملية التوليد:
- يتم معالجة النص أو الكلام المُدخل عبر مُشفِّرِه الخاص.
- ينشئ المُفكِّك رموز نصية باللغة المطلوبة.
- إذا كانت توليد الكلام مطلوباً، فإن نموذج seq2seq الثاني يولّد رموز الوحدات بطريقة غير ذاتية التكرار.
- تُمرَّر رموز الوحدات هذه بعد ذلك عبر مُصنِّع الصوت النهائي لإنتاج الكلام الفعلي.
تمت مساهمة هذا النموذج من قِبل ylacombe. يمكن العثور على الكود الأصلي هنا.
SeamlessM4Tv2Model
فئة transformers.SeamlessM4Tv2Model
< source >( config: SeamlessM4Tv2Configcurrent_modality = 'text' )
المعاملات
- config (SeamlessM4Tv2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
- current_modality (
str، اختياري، القيمة الافتراضية"text") — الوضع الافتراضي. يُستخدم لتبني النموذج.
نموذج SeamlessM4Tv2 الأصلي الذي يمكن استخدامه لكل المهام المتاحة (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 = Nonespeaker_id: int | None = 0generate_speech: bool | None = True**kwargs ) → Union[SeamlessM4Tv2GenerationOutput, 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، اختياري) — اللغة المستخدمة كلغة الهدف للترجمة. - speaker_id (
int، اختياري، القيمة الافتراضية 0) — معرّف المتحدث المستخدم لتوليف الكلام. يجب أن يكون أقل منconfig.vocoder_num_spkrs. - generate_speech (
bool، اختياري، القيمة الافتراضيةTrue) — إذا كانتFalse، فسيُعاد رموز النص فقط دون توليد الكلام. - kwargs (اختياري) —
المتبقّي من قاموس الحُجج المُسمّاة التي ستُمرَّر إلى GenerationMixin.generate(). تأتي الحُجج المُسمّاة من نوعين:
- بدون بادئة، سيتم إدخالها على أنها
**kwargsلطريقةgenerateلكل نموذج فرعي، باستثناءdecoder_input_idsالتي لن تُمرَّر إلا عبر المكونات النصية. - عند استخدام بادئة text_ أو speech_، تُصبح هذه الكلمات المفتاحية مدخلات لطريقة
generateفي نموذج النص ونموذج الكلام على التوالي. ولها الأولوية على الكلمات المفتاحية التي لا تحمل بادئة.
هذا يعني أنه يمكنك، على سبيل المثال، تحديد استراتيجية توليد لتوليد واحد دون تحديد استراتيجية للتوليد الآخر.
- بدون بادئة، سيتم إدخالها على أنها
يعيد
Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor], ModelOutput]
- إذا
generate_speechوreturn_intermediate_token_ids، تُرجعSeamlessM4Tv2GenerationOutput. - إذا كان
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)سيؤدي بالتتابع إلى تنفيذ فك الترميز بالبحث الحزمي على نموذج النص، والعينة الحزمية متعددة الحدود على نموذج الكلام.لمراجعة عامة لاستراتيجيات التوليد وأمثلة الأكواد، راجع الدليل التالي.
SeamlessM4Tv2ForTextToSpeech
فئة transformers.SeamlessM4Tv2ForTextToSpeech
< source >( config: SeamlessM4Tv2Config )
المعاملات
- config (SeamlessM4Tv2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج SeamlessM4Tv2 لتحويل النص إلى كلام، وهو نموذج تحويلي يمكن استخدامه لتحويل النص إلى كلام (T2ST).
يرث هذا النموذج من 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 = Nonespeaker_id: int | None = 0**kwargs ) → Union[SeamlessM4Tv2GenerationOutput, 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، اختياري) — اللغة المستخدمة كلغة الهدف للترجمة. - speaker_id (
int، اختياري، القيمة الافتراضية 0) — معرّف المتحدث المستخدم لتوليد الكلام. يجب أن يكون أقل منconfig.vocoder_num_spkrs. - kwargs (اختياري) —
المتبقّي من قاموس الحُجج المُسمّاة التي ستُمرَّر إلى GenerationMixin.generate(). تأتي الحُجج المُسمّاة من نوعين:
- بدون بادئة، سيتم إدخالها على أنها
**kwargsلطريقةgenerateلكل نموذج فرعي، باستثناءdecoder_input_idsالتي لن تُمرَّر إلا عبر المكونات النصية. - عند استخدام بادئة text_ أو speech_، تُصبح هذه الكلمات المفتاحية مدخلات لطريقة
generateفي نموذج النص ونموذج الكلام على التوالي. ولها الأولوية على الكلمات المفتاحية التي لا تحمل بادئة.
هذا يعني أنه يمكنك، على سبيل المثال، تحديد استراتيجية توليد لتوليد واحد دون تحديد استراتيجية للتوليد الآخر.
- بدون بادئة، سيتم إدخالها على أنها
يعيد
Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]
- إذا كان
return_intermediate_token_ids، تُرجعSeamlessM4Tv2GenerationOutput. - إذا لم يكن
return_intermediate_token_ids، تُرجع الدالة مجموعة (tuple) تتألف من موجات صوتية (waveforms) بأبعاد(batch_size, sequence_length)وwaveform_lengthsالتي تحدد طول كل عينة.
يولّد موجات صوتية مترجمة.
تستدعي هذه الطريقة دالة
.generateلفرعي نموذجين مختلفين بالتتابع. يمكنك تحديد معاملات بالكلمات المفتاحية على مستويين مختلفين: معاملات عامة تُمرَّر إلى النموذجين معاً، أو معاملات مُسبقة البادئة تُمرَّر إلى أحدهما.على سبيل المثال، استدعاء
.generate(input_ids, num_beams=4, speech_do_sample=True)سيؤدي بالتتابع إلى فك الترميز باستخدام بحث الحزمة على نموذج النص، والعينة متعددة الحدود باستخدام بحث الحزمة على نموذج الكلام.لمراجعة عامة لاستراتيجيات التوليد وأمثلة الأكواد، راجع الدليل التالي.
SeamlessM4Tv2ForSpeechToSpeech
فئة transformers.SeamlessM4Tv2ForSpeechToSpeech
< source >( config: SeamlessM4Tv2Config )
المعاملات
- config (SeamlessM4Tv2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج SeamlessM4Tv2 لتحويل الكلام إلى كلام، وهو نموذج تحويلي يمكن استخدامه في مهام 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 = Nonespeaker_id: int | None = 0**kwargs ) → Union[SeamlessM4Tv2GenerationOutput, 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، اختياري) — اللغة المستخدمة كلغة الهدف للترجمة. - speaker_id (
int، اختياري، القيمة الافتراضية 0) — معرّف المتحدث المستخدم لتوليف الكلام. يجب أن يكون أقل منconfig.vocoder_num_spkrs. - kwargs (اختياري) —
المتبقّي من قاموس الحُجج المُسمّاة التي ستُمرَّر إلى GenerationMixin.generate(). تأتي الحُجج المُسمّاة من نوعين:
- بدون بادئة، سيتم إدخالها على أنها
**kwargsلطريقةgenerateلكل نموذج فرعي، باستثناءdecoder_input_idsالتي لن تُمرَّر إلا عبر المكونات النصية. - عند استخدام بادئة text_ أو speech_، تُصبح هذه الكلمات المفتاحية مدخلات لطريقة
generateفي نموذج النص ونموذج الكلام على التوالي. ولها الأولوية على الكلمات المفتاحية التي لا تحمل بادئة.
هذا يعني أنه يمكنك، على سبيل المثال، تحديد استراتيجية توليد لتوليد واحد دون تحديد استراتيجية للتوليد الآخر.
- بدون بادئة، سيتم إدخالها على أنها
يعيد
Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]
- إذا كان
return_intermediate_token_ids، تُرجعSeamlessM4Tv2GenerationOutput. - إذا لم يكن
return_intermediate_token_ids، تُرجع الدالة مجموعة (tuple) تتألف من موجات صوتية (waveforms) بأبعاد(batch_size, sequence_length)وwaveform_lengthsالتي تحدد طول كل عينة.
يولّد موجات صوتية مترجمة.
تستدعي هذه الطريقة دالة
.generateلفرعي نموذجين مختلفين بالتتابع. يمكنك تحديد معاملات بالكلمات المفتاحية على مستويين مختلفين: معاملات عامة تُمرَّر إلى النموذجين معاً، أو معاملات مُسبقة البادئة تُمرَّر إلى أحدهما.على سبيل المثال، استدعاء
.generate(input_features, num_beams=4, speech_do_sample=True)سيؤدي بالتتابع إلى فك الترميز باستخدام بحث الحزمة على نموذج النص، والعينة متعددة الحدود باستخدام بحث الحزمة على نموذج الكلام.لمراجعة عامة لاستراتيجيات التوليد وأمثلة الأكواد، راجع الدليل التالي.
SeamlessM4Tv2ForTextToText
فئة transformers.SeamlessM4Tv2ForTextToText
< source >( config: SeamlessM4Tv2Config )
المعاملات
- config (SeamlessM4Tv2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج SeamlessM4Tv2 لتحويل النص إلى نص، وهو نموذج تحويلي يمكن استخدامه في مهمة 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) وتتضمن عناصر مختلفة اعتماداً على الإعداد (SeamlessM4Tv2Config) والمدخلات.
تتجاوز طريقة SeamlessM4Tv2ForTextToText الخاصة بالتقديم (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).لمراجعة عامة لاستراتيجيات التوليد وأمثلة الأكواد، راجع الدليل التالي.
SeamlessM4Tv2ForSpeechToText
فئة transformers.SeamlessM4Tv2ForSpeechToText
< source >( config: SeamlessM4Tv2Config )
المعاملات
- config (SeamlessM4Tv2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج SeamlessM4Tv2 لتحويل الكلام إلى نص، وهو نموذج تحويلي يمكن استخدامه لتحويل الكلام إلى نص.
يرث هذا النموذج من 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) وتتضمن عناصر مختلفة اعتماداً على الإعداد (SeamlessM4Tv2Config) والمدخلات.
تتجاوز طريقة SeamlessM4Tv2ForSpeechToText الخاصة بالتقديم (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, SeamlessM4Tv2ForSpeechToText
>>> 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 = SeamlessM4Tv2ForSpeechToText.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).لمراجعة عامة لاستراتيجيات التوليد وأمثلة الأكواد، راجع الدليل التالي.
SeamlessM4Tv2Config
فئة transformers.SeamlessM4Tv2Config
< 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 = 10082char_vocab_size: int = 10943hidden_size: int = 1024initializer_range: float = 0.02layer_norm_eps: float = 1e-05use_cache: bool = Truemax_position_embeddings: int = 4096encoder_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 = 160adaptor_kernel_size: int = 8adaptor_stride: int = 8adaptor_dropout: float | int = 0.1num_adapter_layers: int = 1position_embeddings_type: str = 'relative_key'conv_depthwise_kernel_size: int = 31left_max_position_embeddings: int = 64right_max_position_embeddings: int = 8speech_encoder_chunk_size: int = 20000speech_encoder_left_chunk_num: int = 128t2u_bos_token_id: int | None = 0t2u_pad_token_id: int | None = 1t2u_eos_token_id: int | list[int] | None = 2t2u_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 = 4096t2u_variance_predictor_embed_dim: int = 1024t2u_variance_predictor_hidden_dim: int = 256t2u_variance_predictor_kernel_size: int = 3t2u_variance_pred_dropout: float | int = 0.5sampling_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) — حجم مفردات الوحدة لنموذج SeamlessM4Tv2. يحدد عدد "رموز الوحدة" المختلفة التي يمكن تمثيلها بواسطةinputs_idsالمُمرّرة عند استدعاء نموذج النص إلى الوحدات الفرعي من ~SeamlessM4Tv2Model أو ~SeamlessM4Tv2ForSpeechToSpeech أو ~SeamlessM4Tv2ForTextToSpeech. - char_vocab_size (
int, اختياري، القيمة الافتراضية 10943) — حجم مفردات الأحرف في نموذج SeamlessM4Tv2. يحدد عدد رموز الأحرف المختلفة التي يمكن تمثيلها بواسطةchar_inputs_idsالمُمرَّرة عند استدعاء نموذج النص إلى الوحدات الفرعية لـ ~SeamlessM4Tv2Model أو ~SeamlessM4Tv2ForSpeechToSpeech أو ~SeamlessM4Tv2ForTextToSpeech. - 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، اختياري، القيمة الافتراضية4096) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج. - 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. - 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_key") — يمكن تحديده إلىrelative_key. إذا تُركت القيمةNone، فلن يُطبَّق تضمين موضع نسبي. يُطبَّق هذا فقط على مُشفِّر الكلام. لمزيد من المعلومات حول"relative_key"، يُرجى الرجوع إلى Self-Attention with Relative Position Representations (Shaw et al.). - conv_depthwise_kernel_size (
int، اختياري، القيمة الافتراضية 31) — حجم النواة للطبقة التلافيفية أحادية البُعد العميقة (depthwise) في كتل Conformer. يُطبَّق على مُشفِّر الكلام فقط. - left_max_position_embeddings (
int، اختياري، القيمة الافتراضية 64) — قيمة القصّ على اليسار للمواضع النسبية. - right_max_position_embeddings (
int، اختياري، القيمة الافتراضية 8) — قيمة القصّ اليمنى للمواضع النسبية. - speech_encoder_chunk_size (
int، اختياري، القيمة الافتراضية 20000) — حجم كل كتلة انتباه. - speech_encoder_left_chunk_num (
int، اختياري، القيمة الافتراضية 128) — عدد المقاطع على اليسار التي يُسمح بالنظر إليها مسبقًا. - t2u_bos_token_id (
int، اختياري، القيمة الافتراضية 0) — معرّف رمز وحدة بداية البث. يُطبَّق فقط على نموذج التحويل من نص إلى وحدة. - t2u_pad_token_id (
int، اختياري، القيمة الافتراضية 1) — المعرّف الخاص برمز وحدة الحشو. يُطبَّق فقط على نموذج تسلسل-إلى-تسلسل من النص إلى الوحدة. - t2u_eos_token_id (
int، اختياري، القيمة الافتراضية 2) — معرّف رمز وحدة نهاية البث. يُطبَّق فقط على نموذج تسلسل إلى تسلسل من النص إلى الوحدة. - 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, اختياري، القيمة الافتراضية 4096) — أقصى طول تسلسل قد يُستخدم معه مكوّن النص إلى الوحدة في هذا النموذج. يُنصح عادةً بإعداد هذه القيمة إلى رقم كبير احتياطاً (مثل 512 أو 1024 أو 2048). - t2u_variance_predictor_embed_dim (
int, اختياري، القيمة الافتراضية 1024) — بُعد الإسقاط لمُتنبئ المدة الخاص بتحويل النص إلى وحدات. - t2u_variance_predictor_hidden_dim (
int، اختياري، القيمة الافتراضية 256) — البُعد الداخلي لمُتنبئ المدة الخاص بتحويل النص إلى وحدات. - t2u_variance_predictor_kernel_size (
int, اختياري، القيمة الافتراضية 3) — حجم النواة للطبقات التلافيفية في متنبئ المدة الخاص بتحويل النص إلى وحدات. - t2u_variance_pred_dropout (
float, اختياري، القيمة الافتراضية 0.5) — احتمالية الإسقاط (dropout) لمُتنبئ المدة في نموذج النص إلى الوحدات. - 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) — حجم مفردات مُشَفِّر SeamlessM4Tv2. يحدد عدد رموز الوحدات المختلفة التي يمكن تمثيلها بواسطةinputs_idsالمُمرَّرة عند استدعاء مُشَفِّر ~SeamlessM4Tv2Model أو ~SeamlessM4Tv2ForSpeechToSpeech أو ~SeamlessM4Tv2ForTextToSpeech. - 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الخاصة بالنموذج.
هذه فئة الإعدادات المخزنة لإعدادات نموذج SeamlessM4Tv2Model. تُستخدم لإنشاء نموذج Seamless M4T V2 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ facebook/hf-seamless-m4t-medium
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
>>> from transformers import SeamlessM4Tv2Model, SeamlessM4Tv2Config
>>> # Initializing a SeamlessM4Tv2 "" style configuration
>>> configuration = SeamlessM4Tv2Config()
>>> # Initializing a model from the "" style configuration
>>> model = SeamlessM4Tv2Model(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config