نماذج اللغة2023متوسط11 دقيقة قراءة

التحسين المباشر للتفضيلات: نموذجك اللغوي هو سرًّا نموذج مكافأة

Direct Preference Optimization: Your Language Model Is Secretly a Reward Model

Rafailov, R. · Sharma, A. · Mitchell, E. · Ermon, S. · Manning, C. D. · Finn, C. — NeurIPS

المشكلة

عندما نريد مواءمة نموذج لغوي مع تفضيلات البشر عبر RLHF، نحتاج إلى خط عمل معقَّد وهشّ: ندرِّب أولًا نموذج مكافأة على مقارنات بشرية، ثم نشغّل PPO لتحسين النموذج اللغوي وفق تلك المكافأة مع تقييده بعقوبة KL حتى لا يبتعد كثيرًا عن . هذا الخط يحمّل أربعة نماذج في ذاكرة GPU في وقت واحد، وهو حسّاس جدًّا للمعاملات الفائقة ومشهور بصعوبة استقراره. السؤال الذي طرحته هذه الورقة: هل يمكن الوصول إلى جودة مواءمة مماثلة دون نموذج مكافأة ودون تعلم معزز أصلًا؟

الإسهام

DPO يعيد صياغة هدف RLHF بصيغة مغلقة. الاكتشاف المحوري هو أن المُثلى في مسألة تعظيم المكافأة المقيَّدة بـ KL لها حل تحليلي، وهذا الحل يتيح لنا التعبير عن المكافأة كدالة في السياسة ذاتها. عند تعويض ذلك في للتفضيلات، نحصل على دالة خسارة إنتروبيا تقاطعية ثنائية بسيطة على أزواج التفضيل — بلا نموذج مكافأة، بلا PPO، بلا شبكة قيمة. نموذجان فقط في الذاكرة (السياسة + المرجع المُجمَّد)، ومُحسِّن واحد بتعلم مُوجَّه، وتدرُّجات مستقرة.

الأثر

خلال عام واحد من نشره، أصبح DPO الأسلوب المعياري لمواءمة النماذج اللغوية مفتوحة المصدر. تبنَّته نماذج مثل Llama 2 وZephyr وMixtral وعشرات غيرها بديلًا أبسط وأكثر استقرارًا من أسلوب PPO. وأنجب عائلة كاملة من المتغيرات — IPO وKTO وORPO وSimPO وCPO — وغيَّر جذريًّا نظرة المجال للمواءمة: لم تعد مسألة تعلم معزز، بل مسألة تصنيف مُوجَّه على أزواج التفضيل.

تخيّل أنك تُدرِّب طاهيًا. الطريقة التقليدية () تستأجر ناقدًا للطعام أولًا: تُريه مئات الأطباق في أزواج فيتعلّم تقييمها، ثم يقضي الطاهي أسابيع في الطبخ وتعديل الوصفات سعيًا لإرضاء الناقد. لكن قد يختلفان، وقد يُخدَع الناقد، وأنت في النهاية تدفع راتبَين.

DPO يختصر كل هذا: تجاوز الناقد تمامًا. أرِ الطاهي أزواج الأطباق مباشرةً — «الزبائن فضَّلوا هذا الطبق على ذاك» — ودعه يعدِّل وصفاته فورًا ليوافق تلك التفضيلات. رياضيًّا، النتيجة هي الطاهي نفسه بالضبط الذي كان سيُنتجه خط الناقد ثم التعديل، لكن بنصف الطاقم وبلا أي تعقيدات.

خط العمل التقليدي: مواءمة النماذج اللغوية في ثلاث مراحل

قبل ظهور DPO، كانت مواءمة نموذج لغوي مع تفضيلات البشر تمرّ بثلاث مراحل تُعرف بخط عمل التعلم المعزز من التغذية الراجعة البشرية:

المرحلة الأولى — (SFT). نبدأ من نموذج لغوي مُدرَّب مسبقًا ونضبطه على بيانات عالية الجودة تحتوي أمثلة توضيحية. الناتج هو سياسة πSFT\pi_{\text{SFT}} تستطيع اتباع التعليمات، لكنها لا تعكس بعدُ التفضيلات البشرية الدقيقة.

المرحلة الثانية — نمذجة المكافأة. نجمع بيانات تفضيل: لكل مُدخل xx نأخذ إجابتين ويُحدِّد إنسان أيّهما أفضل (ywyly_w \succ y_l). ثم ندرِّب rϕ(x,y)r_\phi(x, y) للتنبؤ بهذه التفضيلات وفق نموذج برادلي-تيري — أي أن احتمال تفضيل الإجابة y1y_1 على y2y_2 يساوي σ(r(x,y1)r(x,y2))\sigma(r(x, y_1) - r(x, y_2)).

المرحلة الثالثة — التحسين بالتعلم المعزز. نستخدم (PPO) لتعظيم المكافأة المُتعلَّمة، مع تقييد النموذج بعقوبة حتى لا يبتعد كثيرًا عن سياسة الضبط الدقيق. هذه المرحلة تتطلب تحميل أربعة نماذج في الذاكرة في آنٍ واحد: السياسة قيد التدريب، والمرجع المُجمَّد، ونموذج المكافأة، و لتقليل التباين.

افتح في المختبر
قارن بين خطَّي عمل RLHF وDPO جنبًا إلى جنب. لاحظ كيف يدمج DPO ثلاث مراحل في مرحلة واحدة.
تستيقظ التجربة عند وصولك…

الاكتشاف الجوهري: المكافأة مختبئة داخل السياسة

هدف RLHF يُصاغ هكذا: أوجِد السياسة π\pi التي تُعظِّم المكافأة المتوقعة مع بقائها قريبة من السياسة المرجعية πref\pi_{\text{ref}}:

maxπ  ExD,yπ[r(x,y)]βDKL[π(yx)πref(yx)]\max_\pi \; \mathbb{E}_{x \sim \mathcal{D}, \, y \sim \pi}[r(x, y)] - \beta \, D_{\text{KL}}[\pi(y|x) \| \pi_{\text{ref}}(y|x)]

للوهلة الأولى يبدو أن حلّ هذه المسألة يستلزم تعلمًا معززًا. لكن رفائيلوف وزملاءه اكتشفوا أمرًا لافتًا: هذه المسألة التحسينية لها . السياسة المُثلى تأخذ شكل :

π(yx)=1Z(x)πref(yx)exp ⁣(1βr(x,y))\pi^*(y|x) = \frac{1}{Z(x)} \pi_{\text{ref}}(y|x) \exp\!\left(\frac{1}{\beta} r(x,y)\right)

حيث Z(x)Z(x) هو (ثابت التسوية). الآن تأتي الخطوة الحاسمة: نعيد ترتيب المعادلة لنعزل المكافأة:

r(x,y)=βlogπ(yx)πref(yx)+βlogZ(x)r(x, y) = \beta \log \frac{\pi^*(y|x)}{\pi_{\text{ref}}(y|x)} + \beta \log Z(x)

أي أن المكافأة مُحدَّدة بالكامل من نسبة السياسة المُثلى إلى السياسة المرجعية. وثابت التقسيم Z(x)Z(x) يُلغى تلقائيًّا عندما نقارن إجابتين على المُدخل نفسه — وهذا بالضبط ما يفعله نموذج برادلي-تيري.

افتح في المختبر
شاهد كيف يتغيّر مقدار المكافأة الضمنية مباشرةً عند تعديل احتمالات السياسة — بلا حاجة لنموذج مكافأة منفصل.
تستيقظ التجربة عند وصولك…

دالة خسارة DPO: المواءمة بوصفها مسألة تصنيف

عندما نعوِّض المكافأة الضمنية في نموذج برادلي-تيري للتفضيلات، نحصل على دالة خسارة DPO — وهي دالة تُحسِّن السياسة مباشرةً:

LDPO(πθ;πref)=E(x,yw,yl)D[logσ ⁣(βlogπθ(ywx)πref(ywx)βlogπθ(ylx)πref(ylx))]\mathcal{L}_{\text{DPO}}(\pi_\theta; \pi_{\text{ref}}) = -\mathbb{E}_{(x, y_w, y_l) \sim \mathcal{D}} \left[ \log \sigma\!\left( \beta \log \frac{\pi_\theta(y_w|x)}{\pi_{\text{ref}}(y_w|x)} - \beta \log \frac{\pi_\theta(y_l|x)}{\pi_{\text{ref}}(y_l|x)} \right) \right]
دالة خسارة DPO — خوارزمية المواءمة بأكملها في سطر واحدπ_θ = السياسة قيد التدريب · π_ref = المرجع المُجمَّد (نموذج الضبط الدقيق) · y_w = الإجابة المُفضَّلة · y_l = الإجابة المرفوضة · β = معامل حرارة يتحكم بشدة عقوبة KL · σ = الدالة السينية (sigmoid)

لفهم هذه الدالة، اقرأها من الداخل إلى الخارج. الحدّ logπθ(yx)πref(yx)\log \frac{\pi_\theta(y|x)}{\pi_{\text{ref}}(y|x)} هو بين السياسة والمرجع — أي مقدار ابتعاد النموذج عن نقطة البداية لإجابة معيّنة. الفرق بين نسبتَي لوغاريتم كهاتين هو هامش المكافأة الضمنية: كم يُفضِّل النموذج الإجابة المختارة على المرفوضة. تحوّل هذا الهامش إلى احتمال، واللوغاريتم يحوّله إلى دالة خسارة تقاطعية.

والجميل في هنا أن له تفسيرًا بديهيًّا: يرفع احتمال ywy_w ويخفض احتمال yly_l، لكن بأوزان تتناسب مع مقدار خطأ النموذج الحالي. إذا كان النموذج يفضّل ywy_w بقوة أصلًا، يكون التدرُّج صغيرًا لأنه لا حاجة لمزيد من التعديل. أما إذا كان يفضّل yly_l خطأً، فالتدرُّج يكبر. هذا يعني أن DPO يُركِّز تحديثاته تلقائيًّا حيث تكون الحاجة إليها أشدّ — كأنه منهج تعليمي ذاتي التنظيم.

افتح في المختبر
اسحب احتمالات السياسة وشاهد كيف تستجيب دالة الخسارة والتدرُّج.
تستيقظ التجربة عند وصولك…

نموذج التفضيل: برادلي-تيري

الاشتقاق بأكمله مبنيّ على نموذج برادلي-تيري للتفضيلات، وهو نموذج كلاسيكي يعود لعام 1952. فكرته بسيطة: احتمال تفضيل العنصر أ على العنصر ب يعتمد على الفارق في «قوتهما» (وهنا القوة هي المكافأة):

P(y1y2x)=σ(r(x,y1)r(x,y2))P(y_1 \succ y_2 | x) = \sigma(r(x, y_1) - r(x, y_2))

حيث σ\sigma هي الدالة السينية. هذا هو النموذج اللوجستي نفسه المُستخدم في تصنيفات في الشطرنج — احتمال فوز لاعب يعتمد على الفجوة بين تصنيفَيهما. حين تكون فجوة المكافأة كبيرة يكون التفضيل شبه محسوم، وحين تكون صغيرة يقترب الأمر من رمي عملة.

DPO يستبدل المكافأة الصريحة rr بـمكافأة ضمنية معرَّفة من نسبة لوغاريتم السياسة إلى المرجع. النموذج الذي كان ظاهريًّا «مجرد مُولِّد نصوص» هو في الواقع يُسند سرًّا درجة مكافأة لكل إجابة يمكن أن يُنتجها.

افتح في المختبر
عدِّل قيم المكافأة الضمنية وشاهد كيف يتنبأ نموذج برادلي-تيري بالتفضيلات.
تستيقظ التجربة عند وصولك…

دور المعامل β: إلى أي حدّ نسمح للنموذج بالابتعاد؟

المعامل β\beta يحكم التوازن بين تعظيم المكافأة والبقاء قريبًا من السياسة المرجعية. تخيّله كـطول حبل يربط النموذج بنقطة انطلاقه:

  • β\beta مرتفع (حبل طويل): النموذج حرّ في الابتعاد كثيرًا عن المرجع. يستطيع ملاحقة المكافأة بقوة، لكنه يُخاطر بالانحلال — كأن يُنتج نصوصًا تحصد درجات عالية على بيانات التفضيل لكنها تبدو مصطنعة.
  • β\beta منخفض (حبل قصير): النموذج مقيَّد بالبقاء قريبًا من المرجع. مخرجاته أكثر أمانًا لكنها قد تكون أقل توافقًا مع التفضيلات.

في دالة خسارة DPO، يظهر β\beta كمعامل تحجيم على نِسَب اللوغاريتم. كلّما كبر β\beta تضخَّم هامش المكافأة فتصبح الدالة السينية أكثر حسمًا والتدرُّجات أحدّ. وكلّما صغر β\beta انضغط الهامش فأصبحت التحديثات ألطف. عمليًّا، تعمل القيم بين β0.1\beta \approx 0.1 و 0.50.5 جيدًا في أغلب مهام .

افتح في المختبر
اسحب β لترى كيف يتحكم بالتوازن بين قوة المواءمة والالتزام بالمرجع.
تستيقظ التجربة عند وصولك…

كيف يُعالج DPO زوج تفضيل واحد

لنتتبّع ما يحدث لمثال تدريبي واحد يتكوّن من (x,yw,yl)(x, y_w, y_l):

الخطوة 1. نحسب اللوغاريتم الاحتمالي لكلتا الإجابتين تحت السياسة الحالية πθ\pi_\theta والمرجع المُجمَّد πref\pi_{\text{ref}}.

الخطوة 2. نحسب نِسَب اللوغاريتم: r^θ(x,y)=βlogπθ(yx)πref(yx)\hat{r}_\theta(x, y) = \beta \log \frac{\pi_\theta(y|x)}{\pi_{\text{ref}}(y|x)} لكلّ من ywy_w وyly_l. هذه هي المكافآت الضمنية.

الخطوة 3. نحسب هامش المكافأة: r^θ(x,yw)r^θ(x,yl)\hat{r}_\theta(x, y_w) - \hat{r}_\theta(x, y_l). هذا يقيس مقدار تفضيل النموذج الحالي للإجابة المختارة على المرفوضة.

الخطوة 4. نمرِّر الهامش عبر الدالة السينية σ\sigma للحصول على احتمال التفضيل الذي يتنبّأ به النموذج.

الخطوة 5. نحسب دالة الخسارة (الإنتروبيا التقاطعية الثنائية): logσ(الهامش)-\log \sigma(\text{الهامش}). إذا رتّب النموذج ywy_w فوق yly_l بهامش واسع، تكون الخسارة قريبة من الصفر. وإذا رتّبهما بالعكس، ترتفع الخسارة.

الخطوة 6. ننفّذ . التدرُّج يرفع πθ(ywx)\pi_\theta(y_w|x) ويخفض πθ(ylx)\pi_\theta(y_l|x)، بأوزان تتناسب مع خطأ النموذج الحالي.

افتح في المختبر
تابع الخطوات الست لمعالجة DPO لزوج تفضيل واحد.
تستيقظ التجربة عند وصولك…

الفكرة نفسها بالشيفرة

دالة خسارة DPO، كاملةpython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

import torch
import torch.nn.functional as F

def dpo_loss(
    policy_logps_w,    # log π_θ(y_w | x)  اللوغاريتم الاحتمالي للإجابة المفضّلة
    policy_logps_l,    # log π_θ(y_l | x)  اللوغاريتم الاحتمالي للإجابة المرفوضة
    ref_logps_w,       # log π_ref(y_w | x) لوغاريتم المرجع للمفضّلة
    ref_logps_l,       # log π_ref(y_l | x) لوغاريتم المرجع للمرفوضة
    beta=0.1,          # شدة عقوبة KL
):
    """
    دالة خسارة التحسين المباشر للتفضيلات (DPO).
    جميع المدخلات: موتّرات بحجم (حجم_الدفعة,) تحتوي اللوغاريتمات الاحتمالية لكل مثال.
    """
    # الخطوة 1: نِسَب اللوغاريتم = المكافآت الضمنية (مضروبة بـ β)
    log_ratio_w = policy_logps_w - ref_logps_w   # انحراف السياسة عن المرجع لـ y_w
    log_ratio_l = policy_logps_l - ref_logps_l   # انحراف السياسة عن المرجع لـ y_l

    # الخطوة 2: هامش المكافأة — إذا كان موجبًا فالنموذج يفضّل y_w
    margin = beta * (log_ratio_w - log_ratio_l)

    # الخطوة 3: إنتروبيا تقاطعية ثنائية على التفضيل
    loss = -F.logsigmoid(margin).mean()

    # إضافي: استخراج المكافأة الضمنية لأغراض المراقبة
    with torch.no_grad():
        implicit_reward_w = beta * log_ratio_w
        implicit_reward_l = beta * log_ratio_l
        accuracy = (margin > 0).float().mean()

    return loss, implicit_reward_w, implicit_reward_l, accuracy

# هذا كل شيء. لا نموذج مكافأة، لا PPO، لا شبكة قيمة.
# السياسة *هي* نموذج المكافأة — لم تكن تعرف ذلك فحسب.

لماذا DPO مكافئ رياضيًّا لـ RLHF

DPO ليس تقريبًا — بل هو مكافئ رياضيًّا لهدف RLHF تحت نموذج برادلي-تيري للتفضيلات. الاشتقاق يمرّ بثلاث خطوات:

  1. مسألة تعظيم المكافأة المقيَّدة بـتباعد KL لها سياسة مُثلى بصيغة مغلقة (وهي نتيجة توزيع غيبس المعروفة في الميكانيكا الإحصائية).
  2. يمكن إعادة ترتيب هذه السياسة المُثلى للتعبير عن المكافأة بدلالة السياسة والمرجع.
  3. تعويض هذه «المكافأة الضمنية» في دالة الأرجحية اللوغاريتمية لبرادلي-تيري على بيانات التفضيل يعطينا دالة خسارة DPO.

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

الفارق العملي يكمن في مسار التحسين: PPO يستكشف بأخذ عيّنات من السياسة الحالية وتعديلها، بينما DPO يُحسِّن على مجموعة بيانات ثابتة مُعدَّة مسبقًا. هذا يجعل DPO أبسط، لكنه يعني أنه لا يستطيع اكتشاف إشارات مكافأة لم تُلتقط أصلًا في بيانات التفضيل.

ماذا أظهرت التجارب

اختبر رفائيلوف وزملاؤه DPO على ثلاث مهام:

التوليد بمشاعر مُوجَّهة — ضبط GPT-2 لتوليد مراجعات أفلام إيجابية. DPO طابق أداء PPO أو تفوّق عليه مع كونه أسهل في الضبط.

التلخيص — مواءمة نموذج على مجموعة بيانات TL;DR للتلخيص. حقّق DPO درجات مكافأة مقاربة لأساليب PPO بتكلفة حسابية أقلّ بكثير.

الحوار أحادي الدور — التدريب على مجموعة بيانات Anthropic للمساعدة والسلامة. أنتج DPO إجابات بمعدلات فوز أعلى من خط أساس الضبط الدقيق مقارنةً بـ PPO، دون الحاجة إلى نموذج مكافأة ومع تقارب أسرع.

عبر المهام الثلاث، ظهر نمط ثابت: جودة مواءمة مماثلة أو أفضل، مع تدريب أبسط بفارق كبير. غياب نموذج المكافأة أزال مشكلة استغلال المكافأة، والتحسين المُوجَّه أزال عدم استقرار PPO.

لماذا أحدثت هذه الورقة فارقًا

  1. 2017

    ظهور RLHF

    قدّم كريستيانو وزملاؤه أسلوب التعلم من التفضيلات البشرية عبر نمذجة المكافأة + PPO. أسلوب فعّال لكنه معقَّد ومُكلِف حسابيًّا.

  2. 2022

    InstructGPT / ChatGPT

    طبّقت OpenAI أسلوب RLHF على نطاق إنتاجي مع InstructGPT ثم أطلقت ChatGPT. أثبتت أن المواءمة تنجح على نطاق واسع، لكنها كشفت هشاشة خط العمل.

  3. 2023

    نشر ورقة DPO

    أثبت رفائيلوف وزملاؤه أن لهدف RLHF حلًّا بصيغة مغلقة يمكن التعبير عنه كدالة خسارة مُوجَّهة. وهكذا تحوّلت المواءمة إلى مسألة تصنيف.

  4. 2023

    Zephyr وLlama 2 Chat

    النماذج مفتوحة المصدر تبنّت DPO بسرعة. استخدم نموذج Zephyr من HuggingFace أسلوب DPO لمواءمة Mistral 7B، فحقّق أداءً بمستوى ChatGPT على معايير المحادثة.

  5. 2024

    توسُّع عائلة DPO

    IPO (تعميم يتجاوز برادلي-تيري)، KTO (تفضيلات بلا أزواج)، SimPO (بلا نموذج مرجعي)، ORPO (دمج الضبط الدقيق مع المواءمة) — كلٌّ منها يعالج قيدًا من قيود DPO.

لعلّ إسهام DPO المفاهيمي يتجاوز إسهامه التقني ويبقى أطول أثرًا. فقد كشف أن التعلم المعزز لم يكن شرطًا لازمًا لتحقيق المواءمة — حرفا «RL» في «RLHF» كانا اختيارًا لا ضرورة. الهدف نفسه يمكن تحسينه بالتعلم المُوجَّه، ونموذج المكافأة كان دائمًا كامنًا داخل السياسة. هذا التأطير الجديد فتح فضاءً تصميميًّا واسعًا لخوارزميات المواءمة لا يزال المجال يستكشفه حتى اليوم.

المرجعRafailov, Sharma, Mitchell, Ermon, Manning, Finn. Direct Preference Optimization: Your Language Model Is Secretly a Reward Model. NeurIPS, 2023.

مصطلحات هذه الورقة