تقنية

بداية مفكك النص: هل معرفها كلمة كتبها المستخدم؟

رسم يفصل نص المصدر والتسميات عن مدخل المفكك المنشأ منها.
رسم تحريري لمعرفات رمزية؛ لا يعرض تدريب نموذج أو ترميز نص عربي.

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

الخلاصة السريعة

لا تقرأ رمز بدء المفكك بوصفه أول كلمة من المصدر. في عقد التدريب المذكور، ينشأ decoder_input_ids من التسميات بإزاحتها وإضافة رمز البداية؛ هويته من إعداد النموذج، ومعناه لا يستخرج من قيمة رقمه وحدها.

  • في تدريب EncoderDecoderModel، ينشأ مدخل المفكك بإزاحة التسميات يمينًا، واستبدال سالب 100 برمز الحشو، وإضافة decoder_start_token_id. [1]
  • مع التسميات الرمزية 21،22،23 وبداية 9 يصبح مدخل مثالنا 9،21،22؛ البداية ليست عنصرًا أخذناه من مصدر البطاقة.
  • إذا دخل سالب 100 في المثال، نطبق استبداله بالحشو في المدخل المنشأ، ولا نقدمه ككلمة أو معرف لغوي عادي.
  • راجع إعداد النموذج والمرمز ودور كل حقل؛ لا تعمم أرقام مثالنا، ولا تستنتج أن كل نماذج التوليد تستعمل البداية نفسها.

افصل المصدر عن جهة المفكك

تصف الوثائق decoder_input_ids بأنها معرفات تسلسل مدخل المفكك، وتوضح إنشاءها من labels في التدريب بالإزاحة وإضافة البداية واستبدال سالب 100 بالحشو. [1]

في تصميم المثال، بطاقة المصدر تقول «اللقاء للرسم على الورق»، بينما نختار لها عنوانًا هدفًا هو «لقاء الرسم». النصان يؤديان وظيفتين مختلفتين. لم نعلن أي مرمز يحول الحروف إلى الأرقام؛ لذلك لا نربط رقمًا بعينه بكلمة عربية، ونستعمل أرقامًا رمزية لشرح الحقول فقط.

من التسميات إلى مدخل المفكك

نفترض أن تسميات الهدف ثلاثة معرفات بالترتيب: 21،22،23، وأن معرف البدء المقرر في نموذج المثال هو 9. عند تطبيق العلاقة المذكورة، تصبح بداية مدخل المفكك 9،21،22. لا نضع 23 في آخر المدخل ذي الطول نفسه، لأننا نزيح التسلسل ونضيف البداية.

نحفظ التسميات الأصلية في خانتها: 21،22،23. وجود 9 في خانة المدخل لا يعدلها إلى 9،21،22، ولا يضيف كلمة إلى بطاقة المصدر. من هنا يأتي الفرق بين سجل يصف ما أدخل لجهة المفكك وسجل يصف الهدف الذي أعده المحرر.

هذا مثال للعلاقة أثناء التدريب المذكورة، لا وصف لكل خطوة في تشغيل توليد فعلي أو لكل بنية مساعد. لا نزعم أن قائمة التسميات هذه نتجت من معالجة العبارة العربية السابقة.

ماذا تفعل علامة سالب 100؟

لنبدل تسميات المثال إلى 21، وسالب 100، و23، ونعلن أن معرف الحشو في إعدادنا هو 0. يصبح المدخل المنشأ 9،21،0 وفق العلاقة نفسها. الصفر هنا جاء من إعداد الحشو، وليس قراءة حرف مخفي في نص البطاقة.

لا نستبدل سالب 100 برمز بدء آخر، ولا نعامل الرقم السالب ككلمة جديدة في المفردات. ونحتفظ بتسميات الهدف كما أعلنت، بدل خلطها بالنسخة التي جهزت لمدخل المفكك. الأرقام توضح فرق الحقلين ولا تقدم إعدادًا مناسبًا لنموذج حقيقي.

ارجع إلى إعداد النموذج

تعرف وثائق الإعداد decoder_start_token_id بأنه معرف بدء فك الترميز المختلف عن bos عند استعمال بداية مختلفة. [1]

نراجع المرمز والإعداد الموافقين للنموذج قبل تفسير المعرف أو اختيار قيمته. لا نقول إن 9 يعني دائمًا «ابدأ التلخيص»، ولا إن كل نموذج يضع الرمز نفسه في الموضع نفسه.

وفي مراجعة مادة المساعد نسأل: هل الملاحظة تتعلق بالمصدر، أم التسميات، أم المدخل المنشأ؟ إذا كتب التقرير «المستخدم أضاف الرمز 9» اعتمادًا على خانة المدخل وحدها، فالدليل لا يثبت ذلك. نوضح دور الرقم المعلن قبل إطلاق وصف لغوي أو نسبة فعل إلى شخص.

المصادر ومتابعة القراءة

  1. Transformers EncoderDecoderModel (يفتح في نافذة جديدة)huggingface.co

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.