نمط الفشل
الوكلاء التي تتكرر مقابل مجموعة تقييم ثابتة لا تتقارب نحو المهمة. بل تتقارب نحو المجموعة. هذا ليس أثرًا إحصائيًا دقيقًا؛ بل هو النتيجة المتوقعة لحلقة تحسين تكون فيها دالة الهدف عينة محدودة وثابتة. كل مراجعة للـ prompt، وكل تعديل لسياسة tool call، وكل ضبط لعتبة التقييم هو خطوة تدرج نحو خصوصيات مجموعة التقييم بدلًا من القدرة الأساسية التي كان من المفترض أن تقيسها المجموعة.
هذه الديناميكية موثقة جيدًا في أدبيات الوكلاء ذاتية التحسين. اقترح باحثو Google طرقًا لمنع الوكلاء ذاتية التحسين من حفظ الاختبارات، تحديدًا لأن السلوك الافتراضي هو الحفظ. عندما يستطيع الوكيل توليد إشارة تدريب خاصة به أو تحسين prompts الخاصة به، تذوب الحدود بين "تعلم المهمة" و"تعلم الاختبار". لا يملك الوكيل طريقة للتمييز بين قدرة حقيقية ونمط يصادف أنه يرضي المُقيِّم.
عادةً ما يُكتشف التلوث بعد نشر النتيجة بالفعل. يُبلَّغ عن نتيجة benchmark، ويُحدَّث model card، ويُنشر منشور مدونة. بعد أشهر، يلاحظ أحدهم أن مجموعة فرعية من عناصر التقييم ظهرت حرفيًا في مجموعة تدريب، أو أن مخرجات الوكيل على شريحة معينة موحدة بشكل مريب. يصبح السحب محرجًا؛ والضرر على الثقة أسوأ. لم يكن لدى خط الأنابيب آلية لالتقاط المشكلة قبل النشر لأن مجموعة التقييم عُوملت كنقطة مرجعية ثابتة بدلًا من كونها قطعة حية.
لماذا هو عيب في خط الأنابيب
تُنسخ مجموعات التقييم إلى سياقات التدريب والـ prompting دون نسب. يُلتزم بملف JSONL، ثم يُنسخ إلى مهمة fine-tuning، ثم يُلصق في few-shot prompt، ثم يُضمَّن في فهرس retrieval. كل نسخة هي تفرع. لا يحمل أي منها مرجعًا إلى الأصل. عندما يُحدَّث الأصل، تتباعد التفرعات بصمت. عندما يتسرب تفرع إلى التدريب، لا يوجد سجل بأن عنصر التقييم ومثال التدريب يشتركان في سلف.
لا يوجد انضباط holdout بين المجموعة المستخدمة للتكرار والمجموعة المستخدمة للإبلاغ. تكرر الفرق على نفس العناصر التي تبلغ عنها. تصبح مجموعة التكرار مجموعة ضبط، وتصبح مجموعة الضبط هدفًا للحفظ. الـ holdout الصحيح ليس مجرد "مجموعة لا ننظر إليها"؛ بل هو مجموعة معزولة هيكليًا عن حلقة التكرار، مع ضوابط وصول وسجلات تدقيق.

التغييرات في الأداة تغير بصمت قابلية مقارنة الأرقام التاريخية. الأداة هي الكود الذي يشغل التقييم: قالب الـ prompt، وتعريفات الأدوات، ومنطق التحليل، ودالة التقييم، وسياسة إعادة المحاولة، وإصدار النموذج. تغيير أي من هذه يمكن أن يحرك النتائج بأكثر من التأثير الذي تحاول الفريق قياسه. ومع ذلك، تُلتزم تغييرات الأداة عادةً دون رفع إصدار مجموعة التقييم، لذا تعرض لوحة المعلومات سلسلة زمنية هي في الواقع سلسلة من قياسات غير قابلة للمقارنة.
السبب الجذري هو خطأ في التصنيف. تُعامل مجموعات التقييم كبيانات، ويُفترض أن البيانات خاملة. لكن مجموعة التقييم هي تبعية لكل نتيجة تستشهد بها. لها schema، ونسب، ومجموعة مستهلكين، ودورة حياة. تستحق نفس انضباط إصدار النسخ والمراجعة والإهمال الذي يستحقه أي تبعية أخرى في المكدس.
قاعدة التصميم: عامل التقييمات كتبعيات مُصدَّرة بإصدارات
ثبّت مجموعة التقييم، والأداة، وكود التقييم كوحدة واحدة مُصدَّرة بإصدار. ليس ثلاثة إصدارات منفصلة؛ بل إصدار مركب واحد. إصدار التقييم هو tuple: مجموعة العناصر، وتكوين الـ prompt والأدوات، وتنفيذ التقييم، ومعرّف النموذج. أي تغيير في أي عنصر ينتج إصدارًا جديدًا. الإصدار هو hash للمحتوى، وليس تسمية يخصصها الإنسان، لذا لا يمكن أن ينحرف.
حافظ على holdout خاص مُدوَّر لا يُستخدم أبدًا للتكرار. يُؤلف الـ holdout بشكل منفصل، ويُخزَّن في مستودع منفصل بضوابط وصول منفصلة، ويُدوَّر وفق جدول. التدوير يعني إهمال العناصر التي تعرضت وتأليف عناصر جديدة. هذا مكلف، وهو المقايضة الصادقة: holdout لا يُدوَّر أبدًا يصبح مجموعة تكرار بحكم الواقع بمجرد تسرب محتوياته إلى معرفة الفريق. تكلفة التدوير هي ثمن قياس له معنى.
سجّل إصدار التقييم إلى جانب كل مقياس مُبلَّغ عنه. رقم بدون إصدار تقييم ليس نتيجة؛ بل إشاعة. يجب أن يظهر الإصدار في لوحات المعلومات، وفي model cards، وفي متتبعات التجارب، وفي أي مستند يستشهد بنتيجة. عندما يسأل مراجع "هل تحسن هذا؟"، يكون السؤال الأول هو ما إذا كان الرقمان يشتركان في إصدار تقييم.
آلية ملموسة: ملف manifest يربط الـ tuple معًا.
eval_version: sha256:9f2c...
items: s3://evals/holdout-2024-11/items.jsonl
harness:
prompt_template: sha256:1a4b...
tools: sha256:7c3d...
scoring: sha256:e8f1...
model: provider/model-nameerver-rack-closeup-48ae67-477829.jpg)
الـ manifest هو وحدة الاستشهاد. تتحقق بوابة الإصدار من hash الـ manifest قبل السماح بالنشر. تعرض لوحة معلومات الـ hash بجانب المقياس. يرفض خط أنابيب التدريب استيعاب عناصر يطابق manifest الخاص بها manifest holdout. الـ hash هو النسب.
## الكشف
تتبع الأداء لكل عنصر بمرور الوقت. تخفي النتائج المجمعة الحفظ. يكشفه عرض لكل عنصر: عناصر كانت صعبة سابقًا وتمر الآن بشكل موحد، وعناصر قفز معدل نجاحها دون تغيير مقابل في القدرة الأساسية، وعناصر انهارت مخرجاتها إلى صياغة واحدة. النجاح الموحد بشكل مريب إشارة. المهام الحقيقية لها توزيع صعوبة؛ والوكيل الذي يمر بكل عنصر على شريحة إما قادر حقًا أو رأى الشريحة.
قارن مع شريحة مؤلفة حديثًا قبل أي قرار إصدار. الشريحة الجديدة صغيرة، ومؤلفة يدويًا، ولا تُستخدم أبدًا للتكرار. ليست benchmark؛ بل فحص سلامة. إذا تباعدت نتيجة الوكيل على الشريحة الجديدة عن نتيجته على مجموعة التكرار، فإن مجموعة التكرار ملوثة أو overfit. التباعد هو الاكتشاف.
عامل تغيير الأداة كتغيير كاسر يتطلب إعادة تأسيس خط الأساس. عندما يتغير قالب الـ prompt، أو تعريفات الأدوات، أو منطق التحليل، أو دالة التقييم، لم تعد الأرقام السابقة قابلة للمقارنة. أعد تشغيل خط الأساس على الأداة الجديدة قبل مقارنة أي مرشح. هذا بطيء، وهو المقايضة الصادقة الثانية: إعادة تأسيس خط الأساس لكل تغيير في الأداة تضاعف تكلفة الحوسبة وتبطئ التكرار. البديل هو سلسلة زمنية تبدو كتقدم وهي في الواقع سلسلة قياسات غير قابلة للمقارنة. تكلفة إعادة تأسيس خط الأساس محدودة؛ وتكلفة قرار إصدار ملوث ليست كذلك.
النقطة الأعمق هي أن الوكلاء ذاتية التحسين تجعل مجموعة التقييم جزءًا من حلقة التدريب. بمجرد حدوث ذلك، لم تعد مجموعة التقييم مراقبًا محايدًا. إنها مشارك. المشاركون يحتاجون إلى إصدار نسخ، وضبط وصول، وتدوير. عيب خط الأنابيب ليس أن الوكلاء تغش؛ بل أن خط الأنابيب أعطاهم هدفًا ثابتًا وسماه قياسًا.
## التزام دورة الحياة
مجموعات التقييم تتدهور. تصبح العناصر عامة، وتحفظها النماذج، وتنحرف الأدوات، وتصبح الأرقام التي كانت تعني شيئًا ضوضاء. الاستجابة ليست تأليف مجموعة أفضل مرة واحدة والأمل. الاستجابة هي معاملة المجموعة كتبعية لها دورة حياة: مؤلفة، مُصدَّرة بإصدار، مستهلكة، مُدوَّرة، مُهملة. الأداة جزء من تلك التبعية، وليست شأنًا منفصلًا. الإصدار هو العقد. عندما يكون العقد صريحًا، يكون التلوث قابلًا للكشف، وتُحفظ قابلية المقارنة، وتكون النتيجة المُبلَّغ عنها ادعاءً قابلًا للتدقيق. وعندما يكون ضمنيًا، يحسّن الوكيل الاختبار، ويتوقف الاختبار عن قياس المهمة، وتُنشر النتيجة قبل أن يلاحظ أحد.
