إضافة
بعد التشاور مع مؤلفي ورقة الاكتتاب العام، اكتشفنا أن تنفيذ الاكتتاب العام في TRL كان غير صحيح؛ على وجه الخصوص، يجب أن تكون الخسارة في احتمالات تسجيل عمليات الإكمال متوسط بدلاً من لخص. لقد أضفنا إصلاحًا في هذه العلاقات العامة وأعدنا إجراء التجارب. أصبحت النتائج الآن متسقة مع الورقة، مع الاكتتاب العام الأولي على قدم المساواة مع DPO وأداء أفضل من KTO في إعداد التفضيل المقترن. لقد قمنا بتحديث المنشور ليعكس هذه النتائج الجديدة.
ليرة تركية؛ د
نقوم بتقييم ثلاث طرق واعدة لمواءمة نماذج اللغة دون التعلم المعزز (أو ضبط التفضيلات) على عدد من النماذج وإعدادات المعلمات الفائقة. على وجه الخصوص، نقوم بالتدريب باستخدام معلمات مفرطة مختلفة ونقوم بالتقييم على:
مقدمة
في هذا المنشور، نقوم بإجراء تقييم تجريبي لثلاث خوارزميات واعدة لمحاذاة LLM: تحسين التفضيل المباشر (DPO)، وتحسين تفضيل الهوية (IPO)، وتحسين كانيمان-تفرسكي (KTO). لقد أجرينا تجاربنا على اثنين من برامج LLM عالية الجودة من فئة 7b والتي خضعت لخطوة ضبط دقيقة تحت الإشراف، ولكن لا توجد محاذاة للتفضيلات. لقد وجدنا أنه على الرغم من أن إحدى الخوارزميات تتفوق بشكل واضح على الخوارزميات الأخرى، إلا أن هناك معلمات فائقة رئيسية يجب ضبطها لتحقيق أفضل النتائج.
المحاذاة دون التعلم المعزز
لقد ظهر تحسين التفضيل المباشر (DPO) كبديل واعد لمواءمة نماذج اللغات الكبيرة (LLMs) مع تفضيلات الإنسان أو الذكاء الاصطناعي. على عكس طرق المحاذاة التقليدية، التي تعتمد على التعلم المعزز، يقوم DPO بإعادة صياغة صياغة المحاذاة كدالة خسارة بسيطة يمكن تحسينها مباشرة على مجموعة بيانات من التفضيلات ، أين هو موجه و هي الاستجابات المفضلة وغير المفضلة.
| عينة من مجموعة بيانات ضبط التفضيلات. |
وهذا يجعل استخدام DPO سهلاً في الممارسة العملية وقد تم تطبيقه بنجاح لتدريب نماذج مثل Zephyr وNeuralChat من Intel.
إن نجاح DPO دفع الباحثين إلى تطوير دوال الخسارة الجديدة التي تعمم الطريقة في اتجاهين رئيسيين:
- المتانة: أحد عيوب DPO هو أنه يميل إلى التجاوز السريع لمجموعة البيانات المفضلة. ولتجنب ذلك، قدم الباحثون في Google DeepMind تحسين تفضيلات الهوية (IPO)، الذي يضيف مصطلح تنظيم إلى خسارة DPO ويمكّن المرء من تدريب النماذج على التقارب دون الحاجة إلى حيل مثل التوقف المبكر.
- الاستغناء عن بيانات التفضيل المقترنة تمامًا: مثل معظم طرق المحاذاة، يتطلب DPO مجموعة بيانات من التفضيلات المقترنة ، حيث يقوم المعلقون بتصنيف الاستجابة الأفضل وفقًا لمجموعة من المعايير مثل مدى المساعدة أو الضرر. ومن الناحية العملية، يعد إنشاء مجموعات البيانات هذه مسعى مكلفًا ويستغرق وقتًا طويلاً. اقترحت شركة contextualAI مؤخرًا بديلاً مثيرًا للاهتمام يسمى Kahneman-Tversky Optimization (KTO)، والذي يحدد وظيفة الخسارة بالكامل من حيث الأمثلة الفردية التي تم تصنيفها على أنها “جيدة” أو “سيئة” (على سبيل المثال، الأيقونات 👍 أو 👎 التي يراها المرء في واجهات مستخدم الدردشة). يعد الحصول على هذه التصنيفات أسهل بكثير من الناحية العملية، وتعد KTO طريقة واعدة للتحديث المستمر لنماذج الدردشة التي تعمل في بيئات الإنتاج.
في الوقت نفسه، تأتي هذه الأساليب المختلفة مع معلمات مفرطة، وأهمها ، الذي يتحكم في مقدار وزن تفضيل النموذج المرجعي. مع هذه البدائل المتوفرة الآن في ترسانة الممارس من خلال مكتبات مثل 🤗 TRL، يصبح السؤال الطبيعي إذن أي من هذه الأساليب والمعلمات الفائقة ينتج أفضل نموذج للدردشة؟
يهدف هذا المنشور إلى الإجابة على هذا السؤال من خلال إجراء تحليل تجريبي للطرق الثلاثة. سوف نقوم بمسح المعلمات الفائقة الرئيسية مثل وخطوات التدريب، ثم تقييم أداء النماذج الناتجة عبر MT-Bench، وهو معيار شائع لقياس قدرات نماذج الدردشة.
نحن نقدم تعليمات برمجية مفتوحة المصدر لتكرار هذه النتائج في التحديث الأخير لكتيب المحاذاة 🤗.
دعونا نبدأ!
روابط
فيما يلي الروابط المهمة المرتبطة بتحليلنا:
الإعداد التجريبي
هناك مكونان رئيسيان يجب على المرء مراعاتهما عند إجراء تجارب المحاذاة: النموذج الذي نختاره لتحسينه ومجموعة بيانات المحاذاة. للحصول على المزيد من نقاط البيانات المستقلة، نظرنا في نموذجين، OpenHermes-2.5-Mistral-7B وZephyr-7b-beta-sft، ومجموعتي بيانات المحاذاة Orca_dpo_pairs من Intel ومجموعة البيانات الثنائية فائقة التغذية.
في التجربة الأولى، استخدمنا OpenHermes-2.5-Mistral-7B لأنه أحد أفضل نماذج الدردشة ذات المعلمات 7B والتي لم تخضع لأي تقنيات محاذاة. ثم استخدمنا Intel orca_dpo_pairs مجموعة البيانات، والتي تتكون من 13 ألف مطالبة حيث يتم إنشاء الاستجابة المختارة بواسطة GPT-4، ويتم إنشاء الاستجابة غير المرغوب فيها بواسطة Llama-Chat 13b. هذه هي مجموعة البيانات وراء NeuralChat وNeuralHermes-2.5-Mistral-7B. نظرًا لأن KTO لا تتطلب تفضيلات زوجية في حد ذاتها، فإننا ببساطة نتعامل مع استجابات GPT-4 على أنها تسميات “جيدة” واستجابات Llama-Chat 13b على أنها “سيئة”. في حين أنه من المرجح أن تكون استجابات GPT-4 مفضلة على Llama-Chat 13b، فقد تكون هناك بعض الحالات التي ينتج فيها Llama-Chat-13b استجابة أفضل، ونحن نعتبر هذا يمثل أقلية صغيرة من الأمثلة.
أجرت التجربة الثانية محاذاة التفضيلات على نموذج Zephyr-7b-beta-sft مع مجموعة البيانات ثنائية الارتجاع الفائق، والتي تحتوي على 66 ألف مطالبة مع أزواج من الاستجابات المختارة والمرفوضة. تم استخدام مجموعة البيانات هذه لتدريب نموذج Zephyr الأصلي، والذي كان في ذلك الوقت هو الأفضل في نموذج الفئة 7B وفقًا للعديد من المعايير الآلية والتقييمات البشرية.
تكوين التجارب
يوفر دليل المحاذاة طريقة سهلة لتكوين تجربة واحدة، ويتم استخدام هذه المعلمات لتكوين البرنامج النصي run_dpo.py.
model_name_or_path: teknium/OpenHermes-2.5-Mistral-7B
torch_dtype: null
dataset_mixer:
HuggingFaceH4/orca_dpo_pairs: 1.0
dataset_splits:
- train_prefs
- test_prefs
preprocessing_num_workers: 12
bf16: true
beta: 0.01
loss_type: sigmoid
do_eval: true
do_train: true
evaluation_strategy: steps
eval_steps: 100
gradient_accumulation_steps: 2
gradient_checkpointing: true
gradient_checkpointing_kwargs:
use_reentrant: False
hub_model_id: HuggingFaceH4/openhermes-2.5-mistral-7b-dpo
hub_model_revision: v1.0
learning_rate: 5.0e-7
logging_steps: 10
lr_scheduler_type: cosine
max_prompt_length: 512
num_train_epochs: 1
optim: adamw_torch
output_dir: data/openhermes-2.5-mistral-7b-dpo-v1.0
per_device_train_batch_size: 8
per_device_eval_batch_size: 8
push_to_hub_revision: true
save_strategy: "steps"
save_steps: 100
save_total_limit: 1
seed: 42
warmup_ratio: 0.1
لقد أنشأنا ملف تكوين أساسيًا مشابهًا لتجارب Zephyr.
تم استنتاج قوالب الدردشة تلقائيًا من نموذج الدردشة الأساسي، باستخدام OpenHermes-2.5 تنسيق ChatML وZephyr باستخدام قالب الدردشة H4. وبدلاً من ذلك، إذا كنت تريد استخدام تنسيق الدردشة الخاص بك، فقد قامت مكتبة 🤗 الرموز المميزة الآن بتمكين قوالب الدردشة المحددة بواسطة المستخدم باستخدام سلاسل تنسيق jinja:
"% for message in messages %\n% if message['role'] == 'user' %\n>\n' + message['content'] + eos_token \n% elif message['role'] == 'system' %\n>\n' + message['content'] + eos_token \n% elif message['role'] == 'assistant' %\n '<\n% endif %\n% if loop.last and add_generation_prompt %\n>' \n% endif %\n% endfor %"
والذي يقوم بتنسيق المحادثات على النحو التالي:
عملية مسح المعلمات الفائقة
قمنا بتدريب DPO, IPO و KTO الأساليب عبر loss_type وسيطة TRL DPOTrainer مع beta الذهاب من 0.01, 0.1, 0.2، …، 0.9. لقد قمنا بتضمينها 0.01 كما لاحظنا أن بعض خوارزميات المحاذاة حساسة بشكل خاص لهذه المعلمة. تم تدريب جميع التجارب على عصر واحد. يتم الاحتفاظ بجميع المعلمات الفائقة الأخرى كما هي أثناء كل تشغيل، بما في ذلك البذرة العشوائية.
قمنا بعد ذلك بإطلاق المسح على مجموعة Hugging Face باستخدام التكوينات الأساسية المحددة أعلاه. #GPURICH
#!/bin/bash
configs=("zephyr" "openhermes")
loss_types=("sigmoid" "kto_pair" "ipo")
betas=("0.01" "0.1" "0.2" "0.3" "0.4" "0.5" "0.6" "0.7" "0.8" "0.9")
for config in "$configs[@]"; do
for loss_type in "$loss_types[@]"; do
for beta in "$betas[@]"; do
job_name="$config_$loss_type_beta_$beta"
model_revision="$loss_type-$beta"
sbatch --job-name=$job_name recipes/launch.slurm dpo pref_align_scan config_$config deepspeed_zero3 \\
"--beta=$beta --loss_type=$loss_type --output_dir=data/$config-7b-align-scan-$loss_type-beta-$beta --hub_model_revision=$model_revision"
done
done
done
نتائج
قمنا بتقييم جميع النماذج باستخدام MT Bench، وهو معيار متعدد المنعطفات يستخدم GPT-4 للحكم على أداء النماذج في ثماني فئات مختلفة: الكتابة، ولعب الأدوار، والاستدلال، والرياضيات، والترميز، والاستخراج، والعلوم والتكنولوجيا والهندسة والرياضيات، والعلوم الإنسانية. على الرغم من عدم الكمال، يعد MT Bench طريقة جيدة لتقييم ماجستير إدارة الأعمال (LLM) للمحادثة.
زفير-7ب-بيتا-SFT
![]() |
|---|
| عشرات MT-Bench لنموذج Zephyr لمختلف . |
بالنسبة لنموذج Zephyr، لاحظنا أنه تم تحقيق أفضل أداء مع أقل أداء القيمة، 0.01. وهذا متسق عبر جميع الخوارزميات الثلاثة التي تم اختبارها، وستكون المتابعة المثيرة للاهتمام للتجربة بالنسبة للمجتمع عبارة عن مسح دقيق في نطاق 0.0-0.2. في حين أن DPO يمكنه تحقيق أعلى درجة في MT Bench، فقد وجدنا أن KTO (المقترن) يحقق نتائج أفضل في جميع الإعدادات باستثناء إعداد واحد. يبدو أن الاكتتاب العام الأولي، على الرغم من وجود ضمانات نظرية أقوى، أسوأ من النموذج الأساسي في جميع الأوضاع باستثناء إطار واحد.
![]() |
|---|
| تفصيل أفضل نماذج Zephyr لكل خوارزمية عبر فئات MT Bench. |
يمكننا تحليل أفضل النتائج لكل خوارزمية عبر الفئات التي تقوم MT Bench بتقييمها لتحديد نقاط القوة والضعف في هذه النماذج. لا يزال هناك مجال كبير للتحسين في محاور الاستدلال والترميز والرياضيات.
أوبينهيرميس-7ب-2.5
في حين أن الملاحظات حول كل خوارزمية تظل كما هي مع OpenHermes، فإن هذا هو DPO > KTO > IPO، المكان المناسب لـ يختلف بشكل كبير مع كل خوارزمية. مع أفضل اختيار بالنسبة لـ DPO وKTO وIPO هي 0.6 و0.3 و0.01 على التوالي.
![]() |
|---|
| عشرات MT Bench لنموذج OpenHermes لمختلف . |
من الواضح أن OpenHermes-7b-2.5 هو نموذج أساسي أقوى، مع تحسن قدره 0.3 فقط في درجة MT Bench بعد محاذاة التفضيلات.
![]() |
|---|
| قم بتقسيم أفضل نماذج OpenHermes لكل خوارزمية عبر فئات MT Bench. |
ملخص ورؤى
في هذا المنشور، سلطنا الضوء على أهمية اختيار المجموعة المناسبة من المعلمات الفائقة عند إجراء محاذاة التفضيلات. لقد أثبتنا تجريبيًا أن DPO وIPO يمكنهما تحقيق نتائج قابلة للمقارنة، متفوقين على KTO في إعداد التفضيل المقترن.
جميع ملفات التعليمات البرمجية والتكوين التي تكرر هذه النتائج متاحة الآن في دليل المحاذاة. يمكن العثور على النماذج ومجموعات البيانات الأفضل أداءً في هذه المجموعة.
ما هي الخطوة التالية؟
سنواصل عملنا في تنفيذ خوارزميات محاذاة التفضيلات الجديدة في TRL وتقييم أدائها. يبدو، على الأقل في الوقت الحالي، أن DPO هي أقوى خوارزمية محاذاة LLM وأفضلها أداءً. يظل KTO تطورًا مثيرًا للاهتمام، حيث يتطلب كل من DPO وIPO بيانات تفضيلات الأزواج، في حين يمكن تطبيق KTO على أي مجموعة بيانات حيث يتم تصنيف الاستجابات بشكل إيجابي أو سلبي.
ونحن نتطلع إلى الأدوات والتقنيات الجديدة التي سيتم تطويرها في عام 2024!



