Skip to content

जज ↔ मानव संरेखण

मापें कि एक LLM जज आपके मानव गोल्ड लेबल से कितनी अच्छी तरह सहमत होता है। Potato एनोटेट किए गए उदाहरणों पर जज को चलाता है, Cohen's kappa, एक भ्रम आव्यूह और असहमति सूची की गणना करता है, और जैसे-जैसे आप रूब्रिक को परिष्कृत करते हैं, सहमति को ट्रैक करता है।

जज संरेखण मापता है और ट्यून करता है कि एक LLM जज आपके मानव गोल्ड लेबल से कितनी अच्छी तरह सहमत होता है। Potato उन उदाहरणों पर एक कॉन्फ़िगर करने योग्य LLM-as-a-judge चलाता है जिन्हें आपके एनोटेटर पहले ही लेबल कर चुके हैं, Cohen's κ, एक भ्रम आव्यूह और असहमति सूची की गणना करता है, और जैसे-जैसे आप जज की रूब्रिक संपादित करते हैं, κ को ट्रैक करता है। इनलाइन मोड चालू होने पर, एनोटेशन के दौरान जज का फ़ैसला मानव लेबल के बगल में दिखाई देता है, साथ में एक चालू κ भी।

यह वही मानक "अपने जज को लगभग 100–200 गोल्ड लेबल के साथ संरेखित करें" लूप है जिसका उपयोग LangSmith Align Evals और Evidently जैसे उपकरण करते हैं: मानव लेबल इकट्ठा करें, जज चलाएँ, असहमतियों का निरीक्षण करें, रूब्रिक परिष्कृत करें, और तब तक फिर से चलाएँ जब तक सहमति ऊँची न हो जाए।

मानव लेबल के बगल में इनलाइन जज सुझावमानव एनोटेशन के बगल में एक चालू kappa के साथ दिखाया गया LLM जज का फ़ैसला

कॉन्फ़िगरेशन

yaml
# The judge uses Potato's standard AI endpoint machinery.
ai_support:
  enabled: true
  endpoint_type: "ollama"        # ollama (local) | openai | anthropic | vllm | ...
  ai_config:
    model: "llama3.2"
    temperature: 0.0
    # openai/anthropic: add api_key: "<key>"
 
judge_alignment:
  enabled: true
  schemas:
    correctness:                 # per annotation-scheme rubric (editable)
      rubric: >
        Label 'correct' only if the agent's answer is factually right and fully
        satisfies the request; otherwise 'incorrect'.
  few_shot:
    enabled: false               # seed the judge prompt with gold examples
    max_examples: 4              # drawn from high-agreement human labels
    min_agreement: 0.8
  inline:
    enabled: true                # show the judge verdict beside the human label
    schemas: [correctness]
    compute_on_demand: false     # call the judge live when no cached verdict exists

दायरा एकल-चयन श्रेणीगत योजनाओं (radio, select, likert) तक सीमित है। यदि judge_alignment.schemas सेट किया गया है, तो केवल उन्हीं योजनाओं का मूल्यांकन किया जाता है; अन्यथा सभी श्रेणीगत योजनाओं का।

जज चलाना

जज को एडमिन API से चलाएँ। पूर्वानुमान प्रति प्रॉम्प्ट संस्करण कैश किए जाते हैं, इसलिए दोबारा चलाना सस्ता पड़ता है:

bash
# Generate or refresh judge verdicts over human-annotated instances
curl -X POST localhost:8000/admin/api/judge-alignment/run \
  -H "X-API-Key: <admin-key>" \
  -H "Content-Type: application/json" \
  -d '{"max_per_schema": 200}'

कैलिब्रेट करने के लिए, एक संपादित रूब्रिक पास करें। इससे एक नया प्रॉम्प्ट संस्करण बनता है, ताकि आप विभिन्न दौरों में κ की तुलना कर सकें:

bash
curl -X POST localhost:8000/admin/api/judge-alignment/run \
  -H "X-API-Key: <admin-key>" -H "Content-Type: application/json" \
  -d '{"rubrics": {"correctness": "Stricter rubric text..."}}'

संरेखण रिपोर्ट

text
GET /admin/judge-alignment                      # JSON
GET /admin/judge-alignment?format=html          # rendered page
GET /admin/judge-alignment?prompt_version=v_abc123

X-API-Key हेडर भेजें। प्रत्येक योजना के लिए, रिपोर्ट यह दिखाती है:

  • Cohen's κ एक Landis–Koch व्याख्या, सहमति दर, और तुलना किए गए उदाहरणों की संख्या के साथ।
  • एक भ्रम आव्यूह (पंक्तियाँ मानव गोल्ड हैं, स्तंभ जज हैं)।
  • एक असहमति तालिका जिसमें उदाहरण, मानव लेबल, जज लेबल, विश्वास, और जज का तर्क शामिल है।
  • प्रॉम्प्ट-संस्करण इतिहास प्रति संस्करण औसत κ के साथ, ताकि कैलिब्रेशन की प्रगति दिखाई दे।

मानव गोल्ड प्रत्येक उदाहरण के लिए एनोटेटरों के बीच बहुमत मत होता है।

इनलाइन मोड

inline.enabled के साथ, प्रत्येक एनोटेशन पृष्ठ उस उदाहरण के लिए जज का कैश किया गया फ़ैसला दिखाता है — उसका लेबल, विश्वास, और विस्तार-योग्य तर्क — साथ में कार्य के लिए एक चालू κ। "Accept" मिलते-जुलते विकल्प को भर देता है। प्रत्येक मानव सेव एक मानव↔जज तुलना दर्ज करता है जो चालू सहमति में योगदान देता है। जब कोई कैश किया गया फ़ैसला मौजूद न हो तो जज को लाइव कॉल करने के लिए compute_on_demand: true सेट करें; अन्यथा बैच को पहले से चलाएँ, जो तेज़ होता है।

नोट्स और सीमाएँ

  • इस संस्करण में कैलिब्रेशन मैनुअल है: रूब्रिक संपादित करें और दोबारा चलाएँ। स्वचालित प्रॉम्प्ट अनुकूलन दायरे से बाहर है।
  • दायरा एकल-चयन श्रेणीगत योजनाओं तक सीमित है। स्पैन और मुक्त-पाठ का मूल्यांकन भविष्य का कार्य है।
  • एक स्थिर κ के लिए जज को लगभग 100–200 लेबल किए गए उदाहरणों के एक केंद्रित गोल्ड सेट पर चलाएँ।

संबंधित

कार्यान्वयन विवरण के लिए, स्रोत दस्तावेज़ीकरण देखें।