تحرير المسارات من أجل SFT/DPO
يعيد المُعلِّقون كتابة خطوات أثر الوكيل لإصلاح خطوة استدلال خاطئة أو تصحيح استدعاء أداة أو تقوية الإجابة النهائية، ويصدّر Potato كل زوج أصلي/مُصحَّح كأهداف للضبط الدقيق الخاضع للإشراف وأزواج تفضيل DPO.
يتيح مخطط trajectory_edit للمُعلِّقين إعادة كتابة خطوات أثر الوكيل، ويصدّر كل تصحيح كبيانات تدريب. أصلِح خطوة استدلال خاطئة، أو صحِّح استدعاء أداة به خطأ مطبعي، أو قوِّ الإجابة النهائية، وسيحفظ Potato المسار المُصحَّح بجوار المسار الأصلي. ثم يحوّل المُصدِّر trajectory_correction كل زوج (original, corrected) إلى أهداف الضبط الدقيق الخاضع للإشراف (SFT) وأزواج تفضيل تحسين التفضيل المباشر (DPO).
هذا يجعل Potato أداة لإنتاج بيانات التدريب، وليس أداة تقييم فحسب. إنه النظير التحريري للتقييم على مستوى الخطوة: فبدلاً من تقييم المسار، يقوم المُعلِّقون بإصلاحه، ويصبح الإصلاح إشارة تعلُّم.
خطوة وكيل معروضة مع نسخة أصلية للقراءة فقط وصندوق مُصحَّح قابل للتحرير مع فرق على مستوى الكلمة
البدء السريع
شغِّل المثال المُرفق من جذر المستودع:
python potato/flask_server.py start examples/agent-traces/trajectory-correction/config.yaml -p 8000كيف يعمل
تُعرَض كل خطوة وكيل كبطاقة تُظهر النص الأصلي (للقراءة فقط) وصندوقًا مُصحَّحًا قابلًا للتحرير ومعبَّأ مسبقًا بالنص الأصلي. عندما يكتب المُعلِّق:
- يُبرز فرق مباشر على مستوى الكلمة الإضافات (بالأخضر) والحذف (بخط أحمر مشطوب)،
- تُحصى الكلمات والأحرف التي تغيّرت، و
- تظهر علامة "تم التحرير" على الحقول المُغيَّرة.
يستعيد زر "إعادة تعيين" النص الأصلي لكل حقل. مع edit_final_answer: true تحصل الإجابة النهائية على محرر خاص بها. لا شيء مطلوب: فالأثر غير المُحرَّر لا ينتج عنه أي زوج تدريب ببساطة.
التهيئة
annotation_schemes:
- annotation_type: trajectory_edit
name: corrected_trajectory
description: "Fix any wrong steps, then correct the final answer"
steps_key: steps # instance field holding the step list
step_text_key: action # the default per-step editable field
editable_fields: # which fields get an editor
- action
# - thought # add to also edit reasoning
show_diff: true
show_edit_distance: true
allow_reset: true
require_reason_on_edit: false # add a per-field "reason" input
edit_final_answer: true
final_answer_key: final_answer| الخيار | الافتراضي | الوصف |
|---|---|---|
steps_key | steps | حقل المثيل الذي يحمل قائمة الخطوات. |
step_text_key | action | الحقل الافتراضي القابل للتحرير لكل خطوة. |
editable_fields | [step_text_key] | أي حقول الخطوة تحصل على محرر، مثلًا [action, thought]. |
show_diff | true | إظهار الفرق المباشر على مستوى الكلمة. |
show_edit_distance | true | إظهار الكلمات والأحرف التي تغيّرت. |
allow_reset | true | زر "إعادة التعيين إلى الأصل" لكل حقل. |
require_reason_on_edit | false | حقل إدخال "سبب التحرير" لكل حقل. |
edit_final_answer | false | إضافة محرر للإجابة النهائية. |
final_answer_key | final_answer | حقل المثيل الذي يحمل الإجابة النهائية. |
تنسيق البيانات
يقرأ المخطط الخطوات من المثيل تحت steps_key. كل خطوة هي كائن يمكن تحرير حقوله (action وthought وما إلى ذلك)؛ أما الخطوات النصية المجردة فتُحرَّر كحقل step_text_key.
{
"id": "traj_001",
"task_description": "Find the weather in San Francisco.",
"steps": [
{"thought": "Look it up.", "action": "web_search(queyr='SF weather')"},
{"thought": "Open it.", "action": "open_url(results[0])"}
],
"final_answer": "It is sunny."
}التصدير
شغِّل المُصدِّر trajectory_correction. يكتب ثلاثة ملفات:
trajectory_corrections.json— كل سجل:original_trace، وcorrected_traceالمُعاد بناؤه، وeditsلكل حقل مع مسافات التحرير والأسباب.trajectory_sft.jsonl— سطر واحد لكل أثر مُحرَّر:{"prompt": <task>, "completion": <corrected_trace>}.trajectory_dpo.jsonl— سطر واحد لكل أثر مُحرَّر:{"prompt": <task>, "chosen": <corrected_trace>, "rejected": <original_trace>}.
تُحصى الآثار غير المُحرَّرة لكنها تُستبعَد من SFT/DPO، لأن التدريب على مسار لم يتغيّر لا يضيف شيئًا؛ ويظهر عدد المتخطى في إحصاءات التصدير. مع وجود عدة مُعلِّقين، يُنتج كل مُعلِّق حرَّر أثرًا سجلًا واحدًا من SFT/DPO.
ملاحظات وقيود
- الفرق على مستوى الكلمة. بالنسبة لاستدعاءات الأدوات الشبيهة بالشيفرة والخالية من المسافات، قد يظهر رمز واحد على أنه مُغيَّر بالكامل حتى لإصلاح من حرف واحد؛ وعدّاد مسافة الأحرف هو الإشارة الدقيقة.
- اقرنه بالتقييم على مستوى الخطوة إذا أردت أيضًا صحة لكل خطوة أو تصنيفًا للأخطاء على الأثر نفسه.
ذات صلة
- تقييم الأثر بثلاث لوحات — عرض للقراءة فقط للاستدلال والاستدعاءات والإجابة
- التعليق الوكيلي — أنماط عرض أثر الوكيل وتقييمه
- تنسيقات التصدير — المرجع الكامل للمُصدِّر
للاطلاع على تفاصيل التنفيذ، راجع الوثائق المصدرية.