जज मॉडल का बेसिक वर्शन सेट अप करना (दूसरा भाग)

अपने बेसिक जज मॉडल को सेट अप करने की प्रोसेस पूरी करें, ताकि आपको सब्जेक्टिव इवैल्यूएशन मिल सकें.

जज को अलाइन करना और उसकी जांच करना

आपके पास एक शुरुआती जज है, लेकिन अभी तक उस पर भरोसा नहीं किया जा सकता. आपका जज सिर्फ़ तब तैयार होता है, जब वह लगातार मैन्युअल तरीके से किए गए फ़ैसलों से सहमत हो.

अलाइनमेंट डेटासेट बनाना

अपने जज को कैलिब्रेट करने के लिए, आपको अलाइनमेंट डेटासेट की ज़रूरत होगी. यह इनपुट और आउटपुट का एक छोटा, हाई-क्वालिटी कलेक्शन है. इसे लोगों ने मैन्युअल तरीके से रेटिंग दी है. यह डेटासेट, आपके ग्राउंड ट्रुथ के तौर पर काम करता है. इसका इस्तेमाल यह पुष्टि करने के लिए किया जाएगा कि जज का लॉजिक, आपकी उम्मीदों के मुताबिक है या नहीं.

आपके अलाइनमेंट डेटासेट में 30 से 50 इनपुट-आउटपुट पेयर होने चाहिए. यह सेट इतना बड़ा है कि इसमें कुछ खास मामलों को शामिल किया जा सकता है. हालांकि, यह इतना छोटा है कि इसे कम समय में लेबल किया जा सकता है.

ThemeBuilder के उदाहरण में, अलाइनमेंट डेटासेट में एक एंट्री इस तरह दिखती है (इनपुट, आउटपुट, व्यक्ति का लेबल):

{
  "id": "sample-014",
  "userInput": {
    "companyName": "Rawrr!",
    "audience": "kids 5-10",
    "tone": ["prehistoric", "loud", "fun"]
  },
  "appOutput": {
    "motto": "Experiencing the prehistoric era."
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "FAIL",
      "rationale": "While on-theme, this motto is too formal for kids.
        It fails to capture the required 'loud' and 'fun' energy."
    }
  }
}

इनपुट और आउटपुट जनरेट करने के लिए, प्रोडक्शन लॉग से डेटा लिया जा सकता है. हालांकि, ऐसा सिर्फ़ तब किया जा सकता है, जब प्रोडक्शन लॉग उपलब्ध हों. इसके अलावा, डेटा को मैन्युअल तरीके से तैयार किया जा सकता है, एलएलएम (सिंथेटिक डेटा) का इस्तेमाल किया जा सकता है या कुछ चुने हुए सैंपल से शुरुआत करके, एलएलएम से अपने डेटासेट को बेहतर बनाने के लिए कहा जा सकता है.

इनपुट और आउटपुट तैयार होने के बाद, रूब्रिक का इस्तेमाल करके आउटपुट को PASS या FAIL के तौर पर लेबल करें. इसके लिए, अपनी टीम के साथ मिलकर काम करें. यह आपका ग्राउंड ट्रुथ बन जाता है.

पक्का करें कि आपके अलाइनमेंट डेटासेट में, PASS और FAIL, दोनों तरह के उदाहरण शामिल हों. साथ ही, ये उदाहरण अलग-अलग मुश्किल लेवल के हों. उदाहरण के लिए:

  • हैप्पी पाथ के 10 उदाहरण, जिन्हें आपके जज को PASS के तौर पर लेबल करना चाहिए.
  • यहां 20 उदाहरण दिए गए हैं. जज को इन्हें FAIL के तौर पर लेबल करना चाहिए:
    • साफ़ तौर पर सिद्धांत का उल्लंघन करने वाले उदाहरण. जैसे, बेहद आपत्तिजनक या पूरी तरह से ब्रैंड से अलग सिद्धांत.
    • मामूली कमियां. उदाहरण के लिए, ऐसा आदर्श वाक्य जो व्याकरण के हिसाब से सही है, लेकिन मज़ेदार ब्रैंड के लिए थोड़ा ज़्यादा फ़ॉर्मल है या जो टोन के हिसाब से पूरी तरह सही नहीं है.

आपका एलएलएम जज, गेटकीपर है. इसे ऐसे डेटासेट पर अलाइन करने से ज़्यादा फ़ायदे मिलते हैं जिसमें पास होने के मामलों की तुलना में फ़ेल होने के मामले ज़्यादा हों. इससे आपको रूब्रिक में बदलाव करने के ज़्यादा मौके मिलते हैं, ताकि फ़ेल होने के मामलों का पता लगाया जा सके. साथ ही, इससे जज को फ़ेल होने के मामलों का पता लगाने में मदद मिलती है.

अलाइनमेंट डेटासेट तैयार होने के बाद, वह कुछ ऐसा दिखना चाहिए:

हैप्पी पाथ वाले मामले (पास)

// Easy, clean input + Good output
{
  "id": "sample-001",
  "userInput": {
    "companyName": "Kinetica",
    "description": "Carbon-fiber plated performance footwear engineered for
    elite marathon runners.",
    "audience": "competitive triathletes and professional runners",
    "tone": [
      "aggressive",
      "high-performance",
      "technical"
    ]
  },
  "appOutput": {
    "motto": "Unlock your kinetic potential.",
    "colorPalette": {
      "textColor": "#FFFFFF",
      "backgroundColor": "#000000",
      "primary": "#DC2626",
      "secondary": "#E2E8F0"
    }
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "PASS",
      "rationale": "This motto powerfully aligns the brand's technical
      engineering with the ambitious goals of its elite athletic audience.
      Relevance: Uses 'kinetic' to expertly link the brand to physical
      energy. Audience appeal: 'Unlock your potential' resonates perfectly
      with competitive runners. Tone consistency: Nails the required
      aggressive, high-performance marks."
    },
    "mottoToxicity": {
      "label": "PASS",
      "rationale": "Perfectly clean and motivational. No offensive or
      exclusionary language."
    },
    "colorBrandFit": {
      "label": "PASS",
      "rationale": "The chosen color palette perfectly mirrors Kinetica's
      aggressive and technical brand identity by utilizing high-impact tones
      that resonate with elite athletes. Relevance: Psychological association:
      Blood red creates urgency and speed. Harmony: Stark contrast against
      black/white feels highly technical.
      Appropriateness: Extremely effective aesthetic for premium athletic gear."
    }
  }
}

साफ़ तौर पर गड़बड़ियां दिख रही हैं (फ़ेल)

// Off-brand color palette
{
  "id": "sample-014",
  "userInput": {
    "companyName": "Rawrr!",
    "description": "Dinosaur themed playground and party venue.",
    "audience": "kids 5-10",
    "tone": [
      "prehistoric",
      "loud",
      "fun"
    ]
  },
  "appOutput": {
    "motto": "Experiencing the prehistoric era.",
    "colorPalette": {
      "textColor": "#4A4A4A",
      "backgroundColor": "#F5F5DC",
      "primary": "#D2B48C",
      "secondary": "#C0C0C0"
    }
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "FAIL",
      "rationale": "While the motto relates to the dinosaur theme, its overly
      academic and formal tone fails to capture the loud and fun energy
      essential for a children's playground brand. Relevance: Effectively fits
      the dinosaur theme. Audience appeal: A bit formal ('Experiencing' versus
      something punchy), acceptable for parents booking events but should be
      more exciting for kids, it's too formal and academic for a children's
      playground, lacks the 'loud' and 'fun' energy requested in the tone.
      Tone consistency: It touches on the 'prehistoric' element adequately."
    },
    "mottoToxicity": {
      "label": "PASS",
      "rationale": "A completely family-friendly, educational-sounding statement."
    },
    "colorBrandFit": {
      "label": "FAIL",
      "rationale": "This muted and sophisticated color scheme fails to capture
      the high-energy, prehistoric spirit required to attract and excite a young
      audience. Relevance: Psychological association: The 'sad beige', tan, and
      muted greys evoke a sterile, 'adult minimalist' home décor aesthetic.
      Harmony: The colors are muddy and lifeless. Appropriateness: For a 'loud'
      and 'fun' children's playground targeting 5-10 year olds, this palette is
      a spectacular failure. It desperately needs vibrant, exciting primary
      colors to attract kids."
    }
  }
},

मामूली गड़बड़ियां (FAIL)

// Almost on-brand color palette
{
  "id": "sample-023",
  "userInput": {
    "companyName": "Apex Dental",
    "description": "High-end cosmetic dentistry specializing in porcelain
        veneers and laser whitening.",
    "audience": "Professionals seeking a perfect smile",
    "tone": [
      "clean",
      "professional",
      "bright"
    ]
  },
  "appOutput": {
    "motto": "Designing your brightest smile.",
    "colorPalette": {
      "textColor": "#1A202C",
      "backgroundColor": "#FFFFFF",
      "primary": "#FFC107",
      "secondary": "#E2E8F0"
    }
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "PASS",
      "rationale": "The motto perfectly captures the premium essence of the
      brand by combining high-end dental aesthetics with a clear appeal to a
      professional clientele. Relevance: Relates perfectly to cosmetic
      dentistry and teeth whitening. Audience appeal: 'Brightest smile' is a
      highly effective, aspirational hook for professionals wanting to look
      their best. Tone consistency: Clean, upbeat, and exceedingly professional."
    },
    "mottoToxicity": {
      "label": "PASS",
      "rationale": "A very positive, medical-grade, and safe statement."
    },
    "colorBrandFit": {
      "label": "FAIL",
      "rationale": "The choice of bright yellow is a fundamental branding
      failure for a cosmetic dental practice as it creates a direct and
      repellent visual link to tooth discoloration, undermining the clinic's
      high-end whitening positioning. Relevance: Psychological association:
      While yellow technically fulfills the word 'bright', in the specific
      context of dentistry, a primary bright yellow is subconsciously and
      intensely associated with plaque, decay, and stained teeth.
      Harmony: It stands out strongly but sends the wrong message.
      Appropriateness: This is a massive psychological misstep for a whitening
      clinic. It subverts trust in their core service by visually reminding
      customers of the problem rather than the solution."
    }
  }
},

रीच अलाइनमेंट

ग्राउंड ट्रूथ तैयार होने के बाद, अब जज को इंसानों के दिए गए लेबल के साथ अलाइन करने का समय है. आपका लक्ष्य यह पक्का करना है कि जज लगातार आपसे सहमत हो और इंसानों के फ़ैसले की नकल करे. अलाइनमेंट स्कोर का हिसाब लगाया जा सकता है. यह स्कोर, जज के बनाए गए उन लेबल के प्रतिशत के तौर पर दिखता है जो लोगों के बनाए गए लेबल से मेल खाते हैं.

// total = all test cases
// aligned = test cases where humanEval.label === llmJudgeEval.label
// For example, PASS and PASS
const alignment = (aligned / total) * 100;

टारगेट अलाइनमेंट स्कोर सेट करें. उदाहरण के लिए, 85%. आपके इस्तेमाल के हिसाब से, टारगेट अलग-अलग हो सकते हैं.

अपने अलाइनमेंट डेटासेट के ख़िलाफ़, जज मॉडल चलाएं. अगर आपका अलाइनमेंट स्कोर, टारगेट से कम है, तो जज की वजह पढ़ें. इससे आपको यह समझने में मदद मिलेगी कि जवाब में गड़बड़ी क्यों हुई. सिस्टम के निर्देशों और जज के प्रॉम्प्ट में बदलाव करें, ताकि कमियों को दूर किया जा सके. जब तक आपको अपना टारगेट स्कोर न मिल जाए, तब तक इसे दोहराएं.

सबसे सही तरीके

जज को एक जैसा स्कोर देने में मदद करने के लिए, यहां दिए गए सबसे सही तरीके अपनाएं:

  • ओवरफ़िटिंग से बचें. निर्देश सामान्य होने चाहिए. साथ ही, आपके अलाइनमेंट डेटासेट के हिसाब से बहुत ज़्यादा खास नहीं होने चाहिए. अगर आपने कुछ खास निर्देश दिए हैं, जैसे कि कुछ वाक्यांशों का इस्तेमाल न करना, तो जज इस अलाइनमेंट टेस्ट को आसानी से पास कर लेगा. हालांकि, यह नए डेटा के लिए सामान्य तौर पर काम नहीं करेगा. इस समस्या को ओवरफ़िटिंग कहा जाता है.
  • सिस्टम को दिए गए निर्देशों और जज प्रॉम्प्ट को ऑप्टिमाइज़ करें. प्रॉम्प्ट को ऑप्टिमाइज़ करने के लिए, इन तकनीकों का इस्तेमाल किया जा सकता है: प्रॉम्प्ट में मैन्युअल तरीके से बदलाव करना, किसी दूसरे एलएलएम से सुधार के सुझाव मांगना या इन तकनीकों के कॉम्बिनेशन के आधार पर बदलाव लागू करना. प्रॉम्प्ट ऑप्टिमाइज़ेशन की तकनीकें, मैन्युअल से लेकर बहुत ज़्यादा अडवांस तक हो सकती हैं. उदाहरण के लिए, ऐसे एल्गोरिदम जो जैविक विकास की नकल करते हैं. बदलावों का लॉग रखें, ताकि ज़रूरत पड़ने पर उन्हें पहले जैसा किया जा सके.

ThemeBuilder के लिए अलाइनमेंट की सुविधा काम कर रही है या नहीं, यह देखने के लिए अलाइनमेंट टेस्ट खुद चलाएं.

अलाइनमेंट टेस्ट का उदाहरण.

बूटस्ट्रैपिंग की मदद से स्ट्रेस टेस्ट करना

अलाइनमेंट का 85% टारगेट हासिल करने का मतलब यह नहीं है कि आपका जज, असल दुनिया के डेटा के साथ अच्छी परफ़ॉर्मेंस देगा. बूटस्ट्रैपिंग नाम के स्टैटिस्टिकल हैक की मदद से, अपने जज को स्ट्रेस टेस्ट करें. बूटस्ट्रैपिंग की मदद से, डेटासेट के नए वर्शन बनाए जा सकते हैं. इसके लिए, आपको लेबलिंग पर ज़्यादा मेहनत करने की ज़रूरत नहीं होती.

** टेस्ट: अपने डेटासेट से 30 आइटम को बदलाव के साथ फिर से सैंपल करें. एक रन में, किसी मुश्किल मामले को पांच बार चुना जा सकता है. इससे टेस्ट ज़्यादा मुश्किल हो जाता है. इन रैंडमाइज़ किए गए सेट पर अलाइनमेंट टेस्ट को कई बार चलाएं. साथ ही, इन टेस्ट के आधार पर अलाइनमेंट के औसत और स्कोर के अंतर का हिसाब लगाएं. कोई तय संख्या नहीं है, लेकिन मध्यम आकार के प्रोजेक्ट के लिए 10 बार दोहराना एक अच्छा बेसलाइन है. ज़्यादा भरोसे के लिए, ज़्यादा बार दोहराएं. ** ठीक करें: अगर आपके अलाइनमेंट स्कोर में काफ़ी अंतर है, तो इसका मतलब है कि आपके जज पर अब तक भरोसा नहीं किया जा सकता. शुरुआत में आपका स्कोर, कुछ आसान सवालों की वजह से अच्छा आया था. अपने रूब्रिक को बड़ा करें और अलाइनमेंट डेटासेट में अलग-अलग तरह के मुश्किल उदाहरण जोड़ें.

बूटस्ट्रैप टेस्ट का विज़ुअल प्रज़ेंटेशन. ऑब्जेक्ट को फिर से सैंपल में शामिल किया जाता है. इसलिए, हो सकता है कि कुछ क्लास को ज़्यादा बार शामिल किया गया हो (बूटस्ट्रैप सैंपल 1 और 2 में पीले रंग के मार्बल), जबकि कुछ को कम बार शामिल किया गया हो (बूटस्ट्रैप सैंपल 1 और 2 में लाल रंग के मार्बल) या उन्हें शामिल ही न किया गया हो (बूटस्ट्रैप सैंपल 3 में हरे रंग के मार्बल). ResearchGate से लिए गए ओरिजनल साइंटिफ़िक फ़िगर देखें.

इसे खुद आज़माकर देखें.

बूटस्ट्रैप टेस्ट का उदाहरण.

खुद के जवाबों की जांच करना

जज पर भरोसा तब ही किया जा सकता है, जब वह एक ही इनपुट के लिए हमेशा एक जैसा जवाब दे. अगर आपने तापमान को 0 पर सेट किया है, तो जज को 100% सटीक जवाब देना चाहिए. पुष्टि करने के लिए टेस्ट करें.

  • जांच करें: अपने जज को एक ही डेटासेट पर कई बार चलाएं. उदाहरण के लिए, अलाइनमेंट डेटासेट से रैंडम ड्रॉ. दोहराए गए हर टेस्ट केस के लिए, वैरिएंस का हिसाब लगाएं. हमेशा एक जैसी वैल्यू दें (कोई अंतर नहीं होना चाहिए). अगर अंतर शून्य से ज़्यादा है, तो इसका मतलब है कि आपका जज एक ही इनपुट के लिए अलग-अलग जवाब देता है. इसलिए, टेस्ट पूरा नहीं हो सका.
  • ठीक करें: ऐसा हो सकता है कि जज के लिए दिया गया प्रॉम्प्ट अस्पष्ट हो या तापमान बहुत ज़्यादा हो. प्रॉम्प्ट के उन हिस्सों को फिर से लिखो जो साफ़ तौर पर नहीं दिख रहे हैं. खास तौर पर, स्कोरिंग रूब्रिक. अगर तापमान पहले से ही 0 पर सेट नहीं है, तो उसे 0 पर सेट करें या thinking_level को ज़्यादा पर सेट करें.

इसे काम करते हुए देखने के लिए, खुद टेस्ट चलाएं.

जज के फ़ैसलों में एकरूपता की जांच के लिए टर्मिनल आउटपुट.
इस उदाहरण में, हमने अपनी तीन मेट्रिक (मोटो टॉक्सिसिटी, मोटो ब्रैंड फ़िट, और कलर ब्रैंड फ़िट) के लिए छह-छह सैंपल टेस्ट किए. नतीजे लगभग पूरी तरह से स्थिर थे, लेकिन कुछ सैंपल के नतीजे अलग-अलग थे.

अंतिम परीक्षा

बूटस्ट्रैपिंग की मदद से, ओवरफ़िटिंग को रोकने के लिए शुरुआती जांच की जा सकती है. अब, आपको नए डेटा का इस्तेमाल करके आखिरी जांच करनी होगी. इससे यह पुष्टि होती है कि जज, नए इनपुट को सही स्कोर दे सकता है.

  • टेस्ट: इंसानों के लेबल किए गए 20 सैंपल का एक अलग फ़ाइनल परीक्षा डेटासेट रखें. इनका इस्तेमाल आपने अलाइनमेंट के दौरान नहीं किया हो. इस सेट के ख़िलाफ़ अपने जज को चलाएं.
  • ठीक करें: अगर आपका अलाइनमेंट स्कोर ज़्यादा रहता है, तो इसका मतलब है कि आपका जज तैयार है! अगर स्कोर में अचानक गिरावट आती है, तो इसका मतलब है कि आपने मॉडल को बहुत ज़्यादा डेटा के हिसाब से ट्रेन किया है. ऐसा तब होता है, जब आपने अलाइनमेंट के लिए दिए गए डेटा के हिसाब से, प्रॉम्प्ट में कई बार बदलाव किया हो. अपने प्रॉम्प्ट, रूब्रिक, और कुछ उदाहरणों को ज़्यादा जानकारी के साथ लिखें.

इसे काम करते हुए देखने के लिए, खुद टेस्ट चलाएं.

खास जानकारी

आपने अपने बुनियादी जज को बनाने के लिए अलग-अलग टेस्ट किए. इनमें ये शामिल हैं:

  • अलाइनमेंट टेस्ट से यह पता चलता है कि जज का जवाब सही है या नहीं.
  • बूटस्ट्रैपिंग और फ़ाइनल परीक्षा की जांच में डेटा की संवेदनशीलता की जांच की जाती है. क्या नए डेटा के आधार पर, जज अक्सर सही फ़ैसले लेता है?
  • सेल्फ़-कंसिस्टेंसी टेस्ट से सिस्टम नॉइज़ का पता चलता है. इससे यह पता चलता है कि एलएलएम जज के इंटरनल रैंडमनेस का असर नतीजों पर कितना पड़ता है.