تقنية

نص تعرضه واجهة التوليد: هل يضم البداية المرسلة؟

رسم يقارن الجمع بين البداية والتكملة بعرض التكملة وحدها.
رسم تحريري لمثال مفترض؛ لا يعرض تجربة توليد فعلية.

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

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

في واجهة TextGenerationPipeline، افصل عرض النص الكامل عن عرض الجزء المضاف. وجود البداية ضمن generated_text لا يكفي لإثبات أن النموذج أعاد توليدها، كما أن إزالة البداية من العرض لا تثبت أن التكملة مستقلة المعنى.

  • للإدخال النصي العادي في مثالنا، return_full_text=False يعيد النص المضاف فقط، وإلا يعيد النص الكامل؛ لا يحدد مع return_text في الوقت نفسه. [1]
  • مع البداية «عنوان الورشة:» والتكملة المعلنة «صناعة إطار ورقي»، العرض الكامل يجمعهما، وعرض الإضافة يقتصر على التكملة.
  • اقرأ نوع الحقل؛ return_tensors=True يعيد معرفات الرموز ولا يعيد النص المفكك، ولا يجمع الناتج generated_text مع generated_token_ids. [1]
  • قيّم التكملة في سياق البداية والمهمة الأصلية؛ اختلاف العرض لا يثبت إعادة توليد البداية أو صحة معلومات العنوان.

ما الذي يختاره خيار العرض؟

توثق الواجهة أن return_full_text الافتراضي True، وأن False يعيد المضاف فقط؛ ولا يجمع الخيار مع return_text. [1]

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

اقرأ العرضين مع البداية

بداية مثالنا هي «عنوان الورشة:» متبوعة بمسافة، والتكملة المفترضة هي «صناعة إطار ورقي». حين نقول عرضًا كاملًا نقصد في المقارنة «عنوان الورشة: صناعة إطار ورقي». وحين نقول المضاف فقط نقصد «صناعة إطار ورقي».

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

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

النص والمعرفات نوعان مختلفان

توضح الوثائق أن return_tensors=True لا يعيد النص المفكك، وأن الناتج لا يجمع generated_text وgenerated_token_ids. [1]

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

هذا يحمي مقارنة بطاقتين أعدهما شخصان بأسلوبين مختلفين: قد يعرض الأول النص الكامل ويعرض الثاني التكملة، فتبدو العبارات بطول مختلف رغم أن السؤال عن محتوى العنوان نفسه.

هل التكملة تحقق المهمة؟

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

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

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

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

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