الانتقال إلى المحتوى الرئيسي

القاضي مكوّن: إدارة إصدارات خطوط LLM-as-Judge كأي تبعية أخرى

لا يكون LLM-as-judge موثوقًا إلا عندما يُثبَّت نموذج القاضي والـ prompt والـ rubric ومعاملات فك الترميز وتُختبر انحدارًا كأثر من الدرجة الأولى.

صورة مقرّبة للوحة دائرة كهربائية تُظهر مسارات ومكونات معقدة، ترمز إلى التبعيات المُدارة بالإصدارات.

نمط الفشل الصامت

عندما يُصدر مورّد نقطة تحقق جديدة لنموذج قاضٍ، تتغيّر الدرجات التي ينتجها. النظام الخاضع للاختبار لم يتغيّر، لكن المقياس تغيّر. في معظم إعدادات التقييم، يُنسب هذا التحرّك إلى الـ agent، لا إلى المُقيِّم. هذا هو نمط الفشل الصامت في LLM-as-judge: أداة القياس تنحرف، ولوحة المعلومات تُبلّغ عنه كتغيّر في الشيء المقيس.

تتفاقم المشكلة لأن انحراف الـ rubric غير مرئي. يتراكم الـ prompt الخاص بالقاضي عبر الزمن: جملة توضيحية هنا، حالة حدّية جديدة هناك. لا يوجد diff، ولا مالك، ولا اختبار. يتحرّك الرقم، لكن السبب لا يتحرّك. بحلول الوقت الذي يسأل فيه أحدهم عن سبب تغيّر مقياس ما، يكون القاضي قد أُعيد تقييمه بصمت عبر التاريخ بأكمله.

ما الذي تحتويه مواصفة القاضي

القاضي ليس نموذجًا. إنه tuple: معرّف النموذج وتجزئة نقطة التحقق، ودرجة الحرارة وtop-p لفك الترميز، والـ system prompt، ونص الـ rubric، والأمثلة القليلة، ومخطط الإخراج. كل عنصر يؤثر على الحكم. غيّر أيًا منها، وتتغيّر الدرجات.

تعامل مع هذا الـ tuple كمدخل في lockfile. تشغيل قاضٍ دون مواصفة قابلة للحل ليس قياسًا؛ إنه رأي. يجب تخزين المواصفة إلى جانب إصدار مجموعة التقييم وcommit الـ agent الخاضع للاختبار. هذا يجعل كل درجة قابلة لإعادة الإنتاج وكل مقارنة ذات معنى.

عمليًا، قد تبدو مواصفة القاضي هكذا:

judge_spec:
  model: "vendor/model-name"
  checkpoint: "sha256:abc123..."
  temperature: 0.0
  top_p: 1.0
  system_prompt: |
    You are a strict evaluator. Score the response on a scale of 1-5 for correctness.
  rubric: |
    Correctness: 5 = fully correct, 3 = partially correct, 1 = incorrect.
  exemplars:
    - input: "What is 2+2?"
      output: "4"
      score: 5
    - input: "What is 2+2?"
      output: "5"
      score: 1
  output_schema:
    type: object
    properties:
      score: { type: integer, minimum: 1, maximum: 5 }
      reasoning: { type: string }

Close-up of a modern building facade with red steel beams in geometric patterns against a blue sky

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

المعايرة مقابل التسميات البشرية

القاضي وكيل عن الحكم البشري. ولمعرفة مدى جودة هذا الوكيل، تحتاج إلى مجموعة مرساة ثابتة موسومة بشريًا. هذه مجموعة صغيرة من الأمثلة التي اتفق فيها البشر على الحكم الصحيح. قبل الوثوق بأي مقارنة لاحقة، أبلغ عن اتفاق القاضي على مجموعة المرساة تلك.

يجب تتبّع الاتفاق لكل بُعد من أبعاد الـ rubric، لا كدقة إجمالية واحدة. قد يتفق القاضي مع البشر بنسبة 90% في الصحة لكن 60% فقط في النبرة. التجميع يخفي ذلك. التتبّع لكل بُعد يكشف أين يكون القاضي ضعيفًا وأين تكون المراجعة البشرية مطلوبة.

ضع علامة على الأبعاد ذات الاتفاق المنخفض ووجّهها إلى المراجعة البشرية بدلًا من البوابات الآلية. هذا شكل من أشكال التعلّم النشط: يخبرك القاضي أين يكون غير متأكد، فتنفق الجهد البشري هناك. المقايضة هي أن المراجعة البشرية بطيئة ومكلفة، لذا لا يمكنك فعلها في كل مكان. يجب أن تكون مجموعة المرساة صغيرة ومستقرة، ويجب أن تكون قاعدة التوجيه صريحة.

اختبارات الانحدار للمُقيِّم

القاضي كود. يجب أن يكون له اختبارات. أبسطها مسارات معروفة الجودة ومعروفة السوء بأحكام متوقعة. إذا غيّر تعديل علHigh voltage power line and insulators against a clear blue skyators-fe71ad-47747d.jpg) Server rack closeup

الحالات الخصامية لا تقل أهمية: إجابات مطوّلة لكن خاطئة، وإجابات موجزة لكن صحيحة، ورفض، ومخرجات tool-call فقط. تختبر هذه ما إذا كان القاضي حساسًا للشكل السطحي بدلًا من الجوهر. القاضي الذي يمنح إجابة خاطئة مطوّلة درجة أعلى من إجابة صحيحة موجزة لا يقيس ما تظنه.

استقرار الدرجة اختبار آخر. يجب ألا يتفاوت الحكم المتكرر على نفس الـ trace بما يتجاوز تفاوتًا معلنًا. إذا كان القاضي غير حتمي، فإن هذا التباين جزء من خطأ القياس ويجب الإبلاغ عنه. القاضي الذي يعطي درجات مختلفة على مدخلات متطابقة ليس أداة موثوقة.

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

اختلاف القضاة المتقاطعين كإشارة

تشغيل قاضيين من عائلتين مختلفتين من النماذج على عيّنة يمكن أن يحدّد موقع اللغة الغامضة في الـ rubric. عندما يختلفان، فغالبًا لأن الـ rubric غير واضح، لا لأن أحد القاضيين مخطئ. الاختلاف تقرير عن عيب في الـ rubric، لا تعادل يُحسب متوسطه ويُطوى.

انشر معدل الاختلاف بجانب الدرجة ليعرف القراء هامش الخطأ. درجة 4.2 بمعدل اختلاف 30% مختلفة جدًا عن درجة 4.2 بمعدل اختلاف 2%. الأولى تشير إلى أن الـ rubric يحتاج عملًا؛ والثانية تشير إلى أن القضاة متوافقون.

المقايضة هي التكلفة: تشغيل قاضيين يضاعف الـ inference. لكن المعلومات المكتسبة عن جودة الـ rubric غالبًا ما تستحق ذلك، خاصة أثناء تطوير الـ rubric.

الخاتمة

LLM-as-judge تقنية قوية، لكنها موثوقة بقدر أضعف حلقة فيها. ثبّت النموذج، والـ prompt، والـ rubric، ومعاملات فك الترميز. أدر إصداراتها كأي تبعية أخرى. اختبر المُقيِّم انحدارًا. عاير مقابل التسميات البشرية. تعامل مع اختلاف القضاة المتقاطعين كإشارة، لا ضوضاء. عندما يكون القاضي مكوّنًا، يصبح التقييم قياسًا.

مشاركةXLinkedInرابط دائم4 دقيقة قراءة

قراءات ذات صلة

الأسئلة التي يجيب عنها هذا

What is a judge specification?

A judge specification is the tuple of model identifier and checkpoint hash, decoding parameters, system prompt, rubric text, few-shot exemplars, and output schema that defines a judge. It should be versioned like a lockfile entry.

How do you regression-test a judge?

Use known-good and known-bad trajectories with expected verdicts, adversarial cases, and score stability checks. A judge change that flips these tests fails CI.

Why track judge agreement per rubric dimension?

Aggregate accuracy hides weak dimensions. Per-dimension agreement reveals where the judge is unreliable and should route to human review.

What does cross-judge disagreement indicate?

Disagreement between judges from different families often indicates ambiguous rubric language. It is a rubric defect report, not a tie to be averaged away.