الدرس الثالث (٣)
انظر إلى الشيفرة البرمجية الأولى التي تستخدم قيمة temperature برقم 2.0. عندما نرفع هذه القيمة، فإن النموذج يصبح أكثر جرأة في اختيار كلمات جديدة وغير تقليدية، فلاحظ كيف أخرج فقرة باللغة الإنجليزية تبدو غريبة وفيها تكرار وكلمات غير متناسقة أحياناً لأن الاحتمالات تتسع. أما في الشيفرة الثانية، فقد رُفعت درجة الحرارة إلى رقم 4.0 المتطرف، فكانت النتيجة مخرجات مبتعدة تماماً عن المعنى الواقعي وتتجاهل الإرشادات الأساسية تماماً، مما يولد نصوصاً لا معنى لها لأن النموذج يفقد السيطرة على السياق بسبب العشوائية المفرطة في اختيار الكلمات الأقل احتمالاً.
يركز هذا الدرس على آليات توليد النصوص وتحسين جودتها وسلامتها النحوية باستخدام النماذج اللغوية مثل الإصدار الثاني من المحول التوليدي مسبق التدريب GPT-2. يوضح الدرس كيف يؤثر متغير درجة الحرارة temperature في مخرجات النموذج، حيث تؤدي القيم الأعلى إلى نصوص أكثر تنوعا وأقل احتمالية، بينما تؤدي الحرارة المرتفعة للغاية إلى تباعد في المعنى وولادة مخرج أقل واقعية. كما يتناول الدرس مشروع تصنيف النصوص على خطوتين باستخدام مجموعات التدريب والاختبار، وتمثيل النصوص بأدوات مثل TfidfVectorizer أو CountVectorizer من مكتبة سكليرن Sklearn، وتجربة نماذج تصنيف مختلفة مثل GradientBoostingClassifier وDecisionTreeClassifier وRandomForestClassifier لتحقيق أعلى دقة ممكنة على مجموعة اختبار IMDB.
الفكرة الأساسية
تدور الفكرة حول التحكم في مخرجات النماذج اللغوية لتوليد النصوص بدقة وسلامة نحوية، وفهم تأثير متغير درجة الحرارة temperature على تنوع الكلمات، إضافة إلى تطبيق عملية تصنيف النصوص عبر خطوتين باستخدام بيانات التدريب والاختبار ونماذج سكليرن Sklearn المختلفة.
الشرح
عندما تستخدم نموذج مثل GPT-2 لتوليد النص، فإنك تتعامل مع متغير يسمى temperature أو درجة الحرارة. هذا المتغير يتحكم في نسبة تنوع الكلمات. إذا اخترت قيمة عالية للمتغير، فإن النموذج يختار أحيانا كلمات أقل احتمالا، مما ينتج نصوصا أكثر تنوعا. ولكن انتبه، إذا كانت درجة الحرارة مرتفعة للغاية، فإن النموذج سيتجاهل الإرشادات الأساسية وسيؤدي إلى تباعد في المعنى ويولد مخرجا أقل واقعية وليس له معنى.
أما في مشروع تصنيف النص، فالعملية مكونة من خطوتين: الأولى هي استخدام مجموعة التدريب لتدريب نموذج التصنيف على النصوص ذات القيم المعروفة. والثانية هي استخدام نموذج التدريب للتنبؤ بالقيم لكل نص في مجموعة الاختبار التي تكون قيمها غير معروفة ومخباة لتستخدم لاحقا في التحقق. لتمثيل النصوص في هذه المجموعات، تستخدم أدوات مثل TfidfVectorizer أو CountVectorizer من مكتبة سكليرن Sklearn في البرمجة الاتجاهية. ولدينا نماذج تصنيف جاهزة في مكتبة سكليرن مثل GradientBoostingClassifier وDecisionTreeClassifier وRandomForestClassifier.
مثال محلول خطوة بخطوة
لنفترض أنك تعمل على مشروع تصنيف نصوص IMDB ولديك مجموعة بيانات تدريب ومجموعة اختبار imdb_data/imdb_test.csv. لتحقيق أعلى درجة من الدقة، يمكنك تنفيذ الخطوات التالية:
- استبدال المصنف MultinomialNB بنموذج تصنيف آخر من مكتبة سكليرن مثل RandomForestClassifier().
- إعادة تشغيل المفكرة التفعلية بعد هذا الاستبدال لحساب دقة كل نموذج جديد بعد تجربته.
- بناء تقرير للمقارنة بين دقة كل النماذج التي جربتها وتحديد النموذج الذي حقق نتائج دقيقة.
أخطاء شائعة
- الاعتقاد بأن رفع درجة الحرارة temperature إلى أقصى حد دائمأ يعطي نتائج أفضل، والصواب أن الحرارة المرتفعة للغاية تتسبب في تباعد معنى الكلمات وتنتج مخرجا غير واقعي.
- الخلط بين خطوة التدريب وخطوة الاختبار في تصنيف النص، حيث يجب استخدام بيانات التدريب للتعلم فقط وبيانات الاختبار للتحقق.
سؤالان للتدريب مع الإجابة
السؤال الأول: ما الذي يحدث لمخرجات النموذج إذا كانت درجة الحرارة temperature مرتفعة للغاية؟ الإجابة: يتجاهل النموذج الإرشادات الأساسية ويولد مخرجا أقل واقعية وليس له معنى بسبب تباعد معنى الكلمات. السؤال الثاني: ما الخطوتان اللتان تتكون منهما عملية تصنيف النص؟ الإجابة: الخطوة الأولى هي استخدام مجموعة التدريب لتدريب نموذج التصنيف، والخطوة الثانية هي استخدام نموذج التدريب للتنبؤ بالقيم لكل نص في مجموعة الاختبار المخباة.