الوحدة 4 — المواءمة: RLHF وأساليب التفضيلات
انتهى نموذج الوحدة السابقة إلى اتّباع التعليمات. يبقى أمر أخير قبل النشر: أن يفضّل الأجوبة المفيدة والآمنة على الأجوبة الصحيحة تقنيًّا لكن سيّئة الأسلوب أو الخطرة. هذه هي مهمّة المواءمة. لمساعد الدعم الذي نبنيه، هذا هو الفرق بين نموذج يُشجّع عميلًا غاضبًا على تصعيد شكواه إعلاميًا، ونموذج يقترح مسار حلٍّ مؤدّب، لأنّ الجواب الثاني هو ما فضّله بشرٌ في التدريب.
المسألة التي نحلّها
بعد ضبط التعليمات، النموذج يستطيع كتابة عدّة إجابات جيّدة لنفس الطلب. أيّها أفضل؟ لا وجود لتقنية مباشرة للتقدير: «المفيد» و«اللطيف» و«الحذر» مفاهيم لا تُترجَم إلى دالّة خسارة قابلة للاشتقاق. الجواب الذي جاءت به OpenAI في ورقة InstructGPT عام 2022: جمع تفضيلات بشرية.
المبدأ بسيط. لكلّ طلب، يُنتج النموذج إجابتين. يُقارن مقيِّم بشري بينهما ويقول أيّهما أفضل. تُجمع ملايين المقارنات، ثمّ يُدرَّب نموذج ثانٍ صغير — نموذج المكافأة — على توقّع اختيار البشر. أخيرًا يُدرَّب النموذج الأصلي بحيث يُنتج مخرجات تُعطي مكافأة عالية.
نموذج المكافأة
نموذج المكافأة يأخذ ردًّا كاملًا ويُعيد عددًا يقدّر جودته. يُدرَّب على مجموعة تفضيلات: مثال حيث الطلب، و الإجابة المُفضَّلة، و المرفوضة. الخسارة تدفعه إلى إعطاء مكافأة أعلى من :
حيث الدالّة السيغمويدية. هذا هو تدريب Bradley-Terry الكلاسيكي في نظرية المقارنات، مطبَّق على مخرجات نموذج لغوي. النتيجة: مصنّف قادر على أن يُعطي درجة تقدير كلّي لجودة كل ردّ.
PPO: الحلقة الكلاسيكية
يُستعمل نموذج المكافأة بعد ذلك في تدريب النموذج الأصلي بتعلّم بالتعزيز. الخوارزمية الأشيع هي PPO (Proximal Policy Optimization). في كلّ خطوة:
- يُولِّد النموذج الحاليُّ ردًّا لطلبٍ ما.
- يُقدِّر نموذج المكافأة الردَّ ويُعطي عددًا.
- يُحدَّث النموذج ليزيد احتمال إنتاج ردود ذات مكافأة أعلى، بشرط ألّا يبتعد كثيرًا عن سلوكه السابق.
الشرط الأخير حيويّ. لولاه لَاختصر النموذج طريقه واستغلّ ثغرات نموذج المكافأة — يكتشف مثلًا أنّ الردود الطويلة تحوز درجات أعلى وينتج نصوصًا مطوَّلة عبثًا. لتجنّب ذلك، تضاف عقوبة على البُعد عن التوزيع الأصلي، تحت اسم عقوبة KL:
حيث النموذج المُحدَّث و النموذج المرجعي المُجمَّد. PPO عمليًا معقّد: يستوجب أربعة نماذج في الذاكرة (النموذج المُدرَّب، النموذج المرجعي، نموذج المكافأة، ونموذج القيمة)، وتوليفة وسائط فائقة حسّاسة. كثيرون يعتبرونه هندسة أكثر منه علمًا.
DPO: البديل المباشر
اقترحت ورقة DPO (Direct Preference Optimization) عام 2023 اختصارًا جميلًا. البرهان الرياضي يُظهر أنّ الحلّ الأمثل لمسألة PPO يمكن كتابته في صيغة مغلقة تتضمّن نموذج المكافأة. وبالمعكوس، يمكن تخطّي تدريب نموذج المكافأة صراحةً واستعمال مجموعة التفضيلات مباشرة لتدريب النموذج.
الخسارة النهائية:
بدلًا من دورة تعلّم بالتعزيز، تُدرَّب الشبكة بمرور مُشرَف عادي على أزواج تفضيل. النتائج قريبة من PPO في أغلب المعايير، والتشغيل أبسط بعشرة أضعاف. الأثر: DPO هو المعيار الفعلي منذ 2024 في البيئة المفتوحة.
from trl import DPOTrainer, DPOConfig
from transformers import AutoModelForCausalLM, AutoTokenizer
from datasets import Dataset
tok = AutoTokenizer.from_pretrained("meta-llama/Llama-3.1-8B-Instruct")
modele = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.1-8B-Instruct")
# مثال بسيط لبنية بيانات DPO. في الإنتاج، مئات إلى آلاف الأمثلة.
donnees = Dataset.from_dict({
"prompt": ["كيف أعالج بطاقة رُفضت؟"],
"chosen": ["ابدأ بالتحقّق من الرصيد وسقف السحب اليومي، ثم اتّصل بمركز الدعم."],
"rejected": ["اذهب مباشرة إلى الفرع واصرخ في الموظّف حتى يحلّ المشكلة."],
})
config = DPOConfig(output_dir="./dpo-run", learning_rate=5e-7, beta=0.1, num_train_epochs=1)
trainer = DPOTrainer(model=modele, args=config, train_dataset=donnees, tokenizer=tok)
trainer.train()
معدّل تعلّم صغير جدًّا () مقارنة بالضبط الكلاسيكي: نحن نُدلّي بتعديلات دقيقة على سلوك موجود مسبقًا، لا نُعيد التدريب. هذا نقطة أساسية سنعود إليها.
الرفض المفرط
خطر عملي جدًّا: نموذج يُواءَم بشدّة يُفرط في الرفض. يُنتج «آسف، لا أستطيع مساعدتك في ذلك» لطلبات بريئة تمامًا: «كيف أنتحر شخصية في روايتي؟»، «ما مكوّنات القنبلة الذرية بحسب الفيزياء المدرسية؟»، «كيف أقتل عملية على خادمي؟». تحدث هذه الظاهرة لأنّ نموذج المكافأة تدرَّب على تجنّب فئات كلمات، لا على فهم النيّة.
قياس معدّل الرفض المفرط جزءٌ لا يتجزّأ من التقييم. لا تكتفِ بقياس مقاومة النموذج لطلبات خبيثة؛ اقس أيضًا استجابته لطلبات مشروعة بصياغة قد تُوحي بالخطر. لمساعد دعم بنكي، سؤال «كيف أُغلق حسابي؟» يجب أن يُجاب عليه، لا يُرفض بدعوى «قد يكون فعلًا ضارًّا ماليًا».
المواءمة ليست ضمانة نزاهة. النموذج المُوَاءَم يُخفي بعض السلوكيات، لا يفقدها فعلًا. الأبحاث تُظهر أنّ مُطالبة مُدرَبة بعناية (jailbreak) تستطيع استعادة إجابات لسلوكيات كان يُفترض بها أن ترفض. أضِف إلى ذلك أنّ المواءمة لا تضمن الصدق: النموذج يفضّل الردود التي تبدو صحيحة للبشر، وهذا لا يعني أنّها كذلك فعلًا. مسألة الهلوسة تعود في الوحدة 7.
في الخلاصة
- المواءمة تجعل النموذج يفضّل الإجابات المفيدة والآمنة؛ تدرَّب على تفضيلات بشرية، لا على «الحقيقة».
- RLHF/PPO المسار الكلاسيكي: نموذج مكافأة ثمّ تعلّم بالتعزيز مع عقوبة KL؛ فعّال لكن معقّد التشغيل.
- DPO يكتب المسألة نفسها في صيغة مغلقة قابلة للتدريب بمرور مُشرَف؛ صار المعيار الفعلي منذ 2024.
- المواءمة لا تضمن الصدق ولا تمنع كسر السلوك بمُطالبات مُلتَفَّة؛ وتخلق ظاهرة الرفض المفرط التي يجب قياسها.
الوحدة التالية: بعد أن صار للنموذج سلوك مقبول، كيف نضبط توليده — درجة الحرارة، وtop-k، وtop-p — حسب ما نريده صريحًا أم إبداعيًا.