Transformers documentation

SeamlessM4T-v2

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

and get access to the augmented documentation experience

to get started

نُشر هذا النموذج في أوراق HF في 2023-12-08 وسُهم به في Hugging Face Transformers في 2023-11-30.

SDPA

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

< >

( 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

< >

( 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.Tensor of shape (batch_size, sequence_length, num_banks), اختياري) — مُدخلات السمات الصوتية. يجب أن تكون هذه القيمة مُعادَة من فئة SeamlessM4TFeatureExtractor أو فئة SeamlessM4TProcessor. راجع SeamlessM4TFeatureExtractor.call() للحصول على التفاصيل.
  • return_intermediate_token_ids (bool, اختياري) — إذا كانت True، تُرجع النص المولَّد الوسيط ورموز الوحدة. اضبطها على True إذا كنت ترغب أيضاً في الحصول على النص المُترجم إلى جانب الصوت. لاحظ أنه إذا كانت generate_speech=False، سيتم تجاهل هذا المعامل وستُرجع رموز النص.
  • tgt_lang (str، اختياري) — اللغة المستخدمة كلغة الهدف للترجمة.
  • 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

< >

( config: SeamlessM4Tv2Config )

المعاملات

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

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

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

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

generate

< >

( 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

< >

( config: SeamlessM4Tv2Config )

المعاملات

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

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

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

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

generate

< >

( input_features: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = 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

< >

( config: SeamlessM4Tv2Config )

المعاملات

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

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

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

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

forward

< >

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

المعاملات

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

يعيد

Seq2SeqLMOutput أو tuple(torch.Tensor)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

generate

< >

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

المعاملات

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

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

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

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

يعيد

ModelOutput أو torch.LongTensor

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

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

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

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

SeamlessM4Tv2ForSpeechToText

فئة transformers.SeamlessM4Tv2ForSpeechToText

< >

( config: SeamlessM4Tv2Config )

المعاملات

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

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

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

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

forward

< >

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

المعاملات

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

يعيد

Seq2SeqLMOutput أو tuple(torch.Tensor)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

مثال:

>>> from transformers import AutoProcessor, 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

< >

( 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

< >

( 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
Update on GitHub