الانتقال إلى المحتوى

الأدلة الإرشادية

الاختيار بين المرشحين

يختار oloproof select من بين عدة إصدارات لنظام ما أفضلها الذي يستوفي كل متطلب، ويقول على حدة هل يتقدم فعلًا على الإصدار التالي. استخدمه عندما يكون لديك مثلًا ثلاثة وكلاء أو موجّهان أو أربعة إعدادات استرجاع، ومجموعة واحدة من المتطلبات.

لماذا لا نختار أفضل الأرقام

لاختيار أرخص مرشح تتجاوز أرقامه العتبات مشكلتان. فنسبة 91% المقيسة أمام عتبة 90% أعلى منها بنقطة واحدة، ضمن ضجيج ألف حالة. وحين تنظر في عدة مرشحين، يكون المرشح الذي تجاوز العتبة بالحظ هو الذي تختاره. لذا يجب على كل مرشح أولًا أن يثبت كل قاعدة بمفرده، بمستوى ثقة أشد لأن عدة مرشحين يُنظر فيهم: مع ثلاثة مرشحين وسياسة عند 95%، يُقرَّر كل منهم عند 98.33% (1 - 0.05/3). لا يُرتَّب إلا المرشحون الذين يجتازون كل قاعدة، ولا يمكن لمرشح أرخص أن يقايض قاعدة سلامة بتكلفته.

إعلان اختيار

اكتب ملف اختيار بجانب مشروعك، وقرّره وفق release.yaml الخاص بالمشروع:

select:
  candidates:
    agent_a: run_01JC8Q2X7D
    agent_b: agent_b.yaml
    agent_c: agent_c.yaml
  objective:
    metric: cost_per_task
    direction: minimize

المرشح هو معرّف تشغيل مخزَّن، أو ملف مشروع يشغّله oloproof select أولًا. والتشغيل الذي يمكنه إعادة استخدامه لا يكلّف شيئًا جديدًا. لا يجوز أن تحوي السياسة إلا قواعد التشغيل، ويجب أن يكون الإيقاف المبكر معطّلًا.

oloproof select select.yaml
oloproof select select.yaml --save

يكتب --save الاختيار أيضًا لمنضدة العمل المحلية، تحت Candidates.

قراءة الجواب

هناك ثلاث نتائج:

  • يُختار مرشح ويثبت تقدّمه على الوصيف: المقارنة المزدوجة بينهما على الهدف هي PASS.
  • يُختار مرشح ولا يثبت تقدّمه: كان الوصيف سيكون خيارًا يمكن الدفاع عنه بالقدر نفسه على هذه الأدلة.
  • لا يتأهل أي مرشح: تُسرد قواعد كل مرشح مع أجوبتها، فترى ما الذي ينقص.

يخرج الأمر بالرمز 0 حين يُختار مرشح، وبالرمز 3 حين لا يتأهل أحد.

مثال محلول

يجب أن يبلغ ثلاثة وكلاء معدل نجاح لا يقل عن 90% ومعدل مخالفات لا يزيد على 1%؛ والهدف أدنى تكلفة لكل مهمة.

الوكيلالنجاحالمخالفاتالتكلفة لكل مهمة
A94%0.5%$18
B91%0.1%$12
C96%2%$30

يُقرَّر كل منهم عند 98.33%. عند 1,000 حالة لا يتأهل أي وكيل: لم يثبت بعد أن معدل مخالفات A دون 1%، ونسبة 91% لدى B قريبة جدًا من 90% فلا تثبت، وC يتجاوز سقف المخالفات. الجواب هو «لا يتأهل أي مرشح»، مع ما ينقص كلًّا منهم. عند 3,000 حالة يثبت A القاعدتين ويُختار. B أرخص، لكن نجاحه لم يثبت بعد، فلا يُرتَّب أبدًا: اختيار B بناءً على أرقامه يعني إصدار متطلب لم يثبته أحد.

مشاركة اختيار

يحفظ oloproof select select.yaml --save الاختيار لمنضدة العمل. ويرسله oloproof push --selection ID إلى مساحة العمل المستضافة مع تشغيل كل مرشح، عبر سياسة الإخراج في المشروع؛ وID هو اسم المجلد تحت .oloproof/bundles/ أو ملخص الاختيار. قبل أن تحفظ مساحة العمل الاختيار، تُجريه من جديد من التشغيلات التي تملكها، وفق السياسة التي بُتّ في تلك التشغيلات بموجبها، ولا تحفظه إلا إذا جاءت النتيجة نفسها: الاختيار الذي عُدّلت نتيجته أو عباراته، أو الذي يسمّي تشغيلًا لا يملكه المشروع، أو الذي لا يصنعه المحرك من تلك التشغيلات، يُرفض، ولا يُحفظ شيء. لذا ابتّ في تشغيلات المرشحين وفق سياسة الاختيار قبل دفعها. تسرده صفحة Candidates في المشروع، وتعرضه صفحته تمامًا كما تعرضه منضدة العمل المحلية.

يمكن لـ Owner أو Admin إنشاء صفحة أدلة له من صفحة الاختيار: النتيجة، والمستوى، ولكل مرشح اسمه ومعرّف تشغيله وقواعده عند المستوى المصحح، مع وسم «Reported by the developer»، ولا تتضمن أبدًا محتوى أي حالة.

التالي

  • قواعد المقارنة تشرح المقارنة المزدوجة التي يُقرَّر بها التقدّم.
  • Gating يشرح القواعد التي يُلزَم بها كل مرشح.