معايرة نموذج LLM بوصفه حَكَمًا
ضع تسميات تلقائية لبياناتك باستخدام حَكَم LLM واحد أو أكثر، ثم نفّذ تمريرة معايرة بشرية معماة لقياس الدقة والتوافق وخطأ المعايرة. يجيب عن سؤال هل ينبغي أن أثق في هذا الحَكَم؟ بسير عمل قابل للدفاع عنه وقابل لإعادة الإنتاج.
تضع معايرة الحَكَم تسميات تلقائية على بياناتك باستخدام حَكَم LLM واحد أو أكثر، ثم تعايرها مقابل تسميات بشرية معماة حتى تتمكن من تحديد مقدار الثقة الذي يستحقه نموذج LLM بوصفه حَكَمًا. تكتب موجِّه الحَكَم، وتختار النماذج، ويأخذ Potato من كل نموذج k عيّنات على بياناتك. ثم تضع تسميات معماة على عيّنة دون رؤية إجابات النماذج، ويُبلّغ Potato عن دقة كل نموذج، والتوافق بين الإنسان↔النموذج وبين النموذج↔النموذج، وخطأ المعايرة، ومصفوفات الالتباس.
أصبح استخدام نموذج LLM لتقييم مخرجات النماذج شائعًا الآن في تقييم الوكلاء والنماذج، لكن الحَكَم لا يكون مفيدًا إلا إذا عرفت مدى تتبّعه لحُكم الإنسان. المعايرة هي خطوة القياس التي تجعل تلك الثقة قابلة للدفاع عنها.
كيف تعمل
SETUP → GENERATING → HUMAN_CALIBRATION → REPORT → COMPLETED
- التوليد — يُستعلَم كل نموذج k مرات لكل عنصر. التسمية المنوالية هي التنبؤ، ونسبة العيّنات الـ k المتوافقة معها هي ثقة النموذج. تذهب النتائج إلى مخزن مخصص، ولا تُخلط أبدًا ببيانات التوصيف، فلا يمكن للبشر رؤيتها.
- المعايرة البشرية — يسحب Potato عيّنة عشوائية أو طبقية من العناصر الموسومة، ويضع شخص واحد أو أكثر عليها تسميات معماة عبر واجهة التوصيف المعتادة.
- التقرير — تُحسَب المقاييس على تقاطع الإنسان∩النموذج وتُكتَب في دليل المخرجات.
نظرًا لأن تسميات النموذج تعيش في مخزن منفصل ولا تُحقَن أبدًا في الواجهة، فإن التعمية بنيوية وليست مسألة انضباط من المُوصِّف.
بداية سريعة
شغّل المثال المرفق من جذر المستودع:
python potato/flask_server.py start examples/ai-assisted/judge-calibration/config.yaml -p 8000 --debug- افتح
http://localhost:8000/judge_calibration/adminللتهيئة والتشغيل. - عند انتهاء التوليد، ضع تسميات معماة على العيّنة عند
http://localhost:8000/annotate. - انقر Build report، ثم افتح
http://localhost:8000/judge_calibration/report.
يستخدم المثال نموذج Ollama محليًا، لذا لا حاجة لمفتاح API. ابدأ تشغيل Ollama ونفّذ ollama pull llama3.2:3b أولًا.
التهيئة
judge_calibration:
enabled: true
prompt: | # supports {text}, {labels}, {description}
You are an impartial expert annotator. Classify the sentiment as exactly
one of: positive, negative, neutral.
models:
- endpoint_type: openai # openai | anthropic | ollama | vllm | gemini | openrouter | huggingface
model: gpt-4o-mini
api_key: ${OPENAI_API_KEY} # env-var expansion supported
temperature: 0.7 # must be > 0 so the k samples vary
- endpoint_type: ollama
model: llama3.1:8b
base_url: http://localhost:11434
temperature: 0.7
k_samples: 5 # samples per model per item
max_items: 1000 # cap on items the LLMs label (null = all)
sampling:
strategy: stratified # random | stratified | all
sample_size: 200 # how many items humans blind-label
seed: 42
human:
num_raters: 1 # 1 = solo researcher; N adds human-human IAA
gold: single # single | majority
schemas: [sentiment] # annotation_scheme names to evaluate ([] = all)
output:
dir: judge_calibration_outputيمكنك تجاوز معظم هذه القيم في معالج الإدارة وإعادة التشغيل.
اضبط temperature > 0. مع k_samples > 1 ودرجة حرارة 0 تكون العيّنات متطابقة، وتظل الثقة دائمًا 1.0، ويصبح تقرير المعايرة بلا معنى، ويصدر Potato تحذيرًا عند بدء التشغيل في تلك الحالة.
أنواع التوصيف المدعومة
| النوع | الحالة | المقاييس |
|---|---|---|
radio / select | مدعوم | الدقة، P/R/F1، Cohen/Fleiss κ، Krippendorff α، ECE، الالتباس |
likert | مدعوم | ما سبق إضافة إلى MAE و Krippendorff α الترتيبي |
multiselect | مدعوم | P/R/F1 لكل تسمية، متوسط Jaccard، دقة المطابقة التامة، المعايرة |
span | تجريبي | P/R/F1 بمطابقة IoU، متوسط IoU، توافق span-F1، معايرة على مستوى المقطع |
يجمّع دعم المقاطع مقاطع الحَكَم المعبَّر عنها بإزاحات الأحرف عبر العيّنات الـ k ويطابقها مع المرجع الذهبي عبر التقاطع على الاتحاد، وإرشاداته الاستدلالية اتجاهية وليست دقيقة.
ما يحتويه التقرير
- الدقة والضبط والاستدعاء و F1 لكل نموذج مقابل التسمية الذهبية البشرية.
- معامل Cohen κ مقسّمًا إلى أزواج إنسان↔نموذج، ونموذج↔نموذج، وإنسان↔إنسان.
- معامل Fleiss κ و Krippendorff α عبر جميع المقيّمين.
- خطأ المعايرة المتوقع (ECE)، وحُزَم الموثوقية، ودرجة Brier، بما يُظهر مدى تتبّع ثقة نسبة التصويت للصحة.
- مصفوفة التباس لكل نموذج مقابل المرجع الذهبي البشري.
تُحسَب المقاييس على التقاطع: العناصر التي وسمها كل من النماذج والبشر، مع الاقتصار على عيّنة المعايرة عند سحب واحدة منها.
تُكتَب المخرجات ضمن output.dir: ملف llm_labels.jsonl (سطر لكل نموذج وعنصر ومخطط)، و report.json، وملف report.html قابل للقراءة البشرية.
معايرة الحَكَم مقابل مواءمة الحَكَم
تستخدم معايرة الحَكَم حُكّامًا متعددين، وثقة تجريبية (نسبة التصويت عبر العيّنات الـ k)، وتُبقي الإنسان معمّى تمامًا. أما مواءمة الحَكَم فتعاير حَكَمًا واحدًا مقابل تسميات بشرية ذهبية قائمة، وتعرض حُكمه ضمن السياق أثناء التوصيف، وهي مبنية حول التكرار على معيار تقييم. لجأ إلى المعايرة حين تفحص حُكّامًا مرشّحين، ولجأ إلى المواءمة حين تضبط حَكَمًا واحدًا مقابل مجموعة ذهبية ثابتة.
ذات صلة
- مواءمة الحَكَم ↔ الإنسان — معايرة حَكَم واحد ضمن السياق
- الوضع الفردي — توصيف تعاوني كامل بين الإنسان و LLM
- دليل التوافق بين المُوصِّفين — تعمّق في مقياسي kappa و alpha
للاطلاع على تفاصيل التنفيذ، راجع وثائق المصدر.