TATECHATLAS
◎ हिन्दी
कृत्रिम बुद्धिमत्ता / सुझाव

जोखिम-आधारित निर्णय लेने के लिए मल्टी-टास्क मॉडल मूल्यांकन

एक एकल समग्र स्कोर पर भरोसा करने के बजाय, विभिन्न कार्यों में विशिष्ट प्रदर्शन अंतराल की पहचान करने के लिए EvaluationSuites का उपयोग करना सीखें।

इस पृष्ठ पर

एक AI मॉडल का सटीक मूल्यांकन करने के लिए, अभ्यासकर्ताओं को एकल समग्र मेट्रिक्स से हटकर एक मल्टी-टास्क मूल्यांकन रणनीति अपनानी चाहिए। कई SubTasks से बने एक EvaluationSuite का उपयोग करके - जिसमें प्रत्येक में एक विशिष्ट इवैल्यूएटर, डेटासेट और मेट्रिक होता है - डेवलपर्स मॉडल व्यवहार के विभिन्न आयामों, जैसे कि सामान्य तर्क, निष्पक्षता और पूर्वाग्रह की जांच कर सकते हैं। यह दृष्टिकोण विशिष्ट जोखिम अक्षों की पहचान करने की अनुमति देता है; उदाहरण के लिए, एक मॉडल उच्च समग्र सटीकता दिखा सकता है लेकिन नेचुरल लैंग्वेज एंटेलमेंट (natural language entailment) में महत्वपूर्ण रूप से विफल हो सकता है या विशिष्ट जनसांख्यिकीय उपसमूहों में पूर्वाग्रह प्रदर्शित कर सकता है। निर्णय फिर इन व्यक्तिगत जोखिम प्रोफाइलों के आधार पर लिए जाते हैं, जिससे यह सुनिश्चित होता है कि एक उच्च औसत स्कोर किसी उच्च-जोखिम वाले कार्य में गंभीर विफलताओं को न छिपा दे।

मल्टी-टास्क मूल्यांकन रणनीति

मॉडल का मूल्यांकन करने के लिए एक एकल समग्र स्कोर पर भरोसा करना अक्सर गंभीर कमजोरियों को छिपा देता है। एक मॉडल एक व्यापक बेंचमार्क पर उच्च औसत सटीकता प्राप्त कर सकता है जबकि एक विशिष्ट, उच्च-जोखिम वाले कार्य पर विनाशकारी रूप से विफल हो सकता है। कार्यों के एक विविध सेट पर मॉडल का मूल्यांकन करने से विशिष्ट अक्षों के साथ प्रदर्शन अंतराल का पता लगाने में मदद मिलती है, जैसे कि इन-डोमेन परप्लेक्सिटी और सामान्य भाषा क्षमताओं के बीच विसंगति।

मूल्यांकन को अलग-अलग कार्यों में विभाजित करके, अभ्यासकर्ता एक ऐसे मॉडल के बीच अंतर कर सकते हैं जो सामान्य रूप से सक्षम है और वह जो केवल एक विशिष्ट डेटासेट पैटर्न के लिए ओवरफिट है। यह विस्तृत दृष्टिकोण निष्पक्षता, पूर्वाग्रह और विश्वसनीयता से संबंधित जोखिमों की पहचान करने के लिए आवश्यक है जिन्हें आमतौर पर वैश्विक औसत में नजरअंदाज कर दिया जाता है।

इवैल्यूएशन सूट तैयार करना

एक EvaluationSuite को SubTasks के संग्रह के रूप में संरचित किया जाता है। प्रत्येक SubTask एक टुपल है जिसमें एक इवैल्यूएटर, एक डेटासेट और एक मेट्रिक होता है। यह मॉड्यूलैरिटी सूट को विभिन्न मॉडल आयामों की जांच करने की अनुमति देती है। उदाहरण के लिए, एक SubTask सेंटीमेंट एनालिसिस के लिए टेक्स्ट वर्गीकरण पर केंद्रित हो सकता है, जबकि दूसरा तार्किक निरंतरता का परीक्षण करने के लिए नेचुरल लैंग्वेज एंटेलमेंट पर केंद्रित हो सकता है।

यह सुनिश्चित करने के लिए कि सूट व्यापक है, डेवलपर्स को ऐसे कार्य शामिल करने चाहिए जो सामान्य क्षमताओं का परीक्षण करें और वे भी जो पूर्वाग्रह की जांच के लिए डिज़ाइन किए गए हों। कुछ डेटासेट को इवैल्यूएटर के पास भेजे जाने से पहले इनपुट को सही ढंग से फॉर्मेट करने के लिए data_preprocessor की आवश्यकता होती है, जिससे यह सुनिश्चित होता है कि मॉडल को अपेक्षित स्कीमा में डेटा प्राप्त हो।

कार्यान्वयन और निष्पादन

तकनीकी रूप से, एक SubTask के लिए अनिवार्य गुणों की आवश्यकता होती है: task_type (समर्थित मूल्यांकन कार्यों के साथ मैपिंग) और data (एक Hugging Face डेटासेट ऑब्जेक्ट या नाम)। subset, split, और args_for_task जैसे अतिरिक्त गुण मूल्यांकन स्लाइस और उपयोग किए जाने वाले विशिष्ट मेट्रिक्स, जैसे कि accuracy या F1-score पर सटीक नियंत्रण की अनुमति देते हैं।

इस सुइट को एक run मेथड का उपयोग करके निष्पादित किया जाता है जो इनपुट के रूप में एक मॉडल या पाइपलाइन लेता है। यह प्रक्रिया एक विस्तृत रिपोर्ट तैयार करती है जिसमें कार्य का नाम, गणना किया गया मेट्रिक, और प्रदर्शन टेलीमेट्री जैसे कि कुल समय और प्रति नमूना लेटेंसी शामिल होती है।

import evaluate
from evaluate.evaluation_suite import SubTask

class Suite(evaluate.EvaluationSuite):
    def __init__(self, name):
        super().__init__(name)
        self.suite = [
            SubTask(
                task_type='text-classification',
                data='glue',
                subset='sst2',
                split='validation[:10]',
                args_for_task={
                    'metric': 'accuracy',
                    'input_column': 'sentence',
                    'label_column': 'label',
                    'label_mapping': {'LABEL_0': 0.0, 'LABEL_1': 1.0}
                }
            ),
            SubTask(
                task_type='text-classification',
                data='glue',
                subset='rte',
                split='validation[:10]',
                args_for_task={
                    'metric': 'accuracy',
                    'input_column': 'sentence1',
                    'second_input_column': 'sentence2',
                    'label_column': 'label',
                    'label_mapping': {'LABEL_0': 0, 'LABEL_1': 1}
                }
            )
        ]

suite = Suite('my-eval-suite')
results = suite.run('gpt2')

जोखिम और प्रदर्शन का विश्लेषण

एक मल्टी-टास्क रन का आउटपुट आमतौर पर एक तालिका होती है जहाँ प्रत्येक पंक्ति एक विशिष्ट कार्य का प्रतिनिधित्व करती है। इन पंक्तियों का औसत निकालने के बजाय, विश्लेषकों को विभिन्न कार्यों में सटीकता और लेटेंसी की भिन्नता की जांच करनी चाहिए। किसी विशिष्ट कार्य में उच्च लेटेंसी मॉडल द्वारा जटिल इनपुट की प्रोसेसिंग में बाधा का संकेत दे सकती है, जबकि निष्पक्षता-जांच कार्य में कम सटीकता पक्षपाती आउटपुट के उच्च जोखिम को दर्शाती है।

निर्णय लेने की प्रक्रिया फिर एक जोखिम-अक्ष मॉडल (risk-axis model) की ओर स्थानांतरित हो जाती है: यदि मॉडल किसी 'महत्वपूर्ण' कार्य (जैसे सुरक्षा) में विफल रहता है, तो इसे 'सामान्य' कार्यों पर इसके प्रदर्शन की परवाह किए बिना खारिज कर दिया जाता है। यह महत्वपूर्ण विफलताओं के 'औसत' होने से रोकता है और यह सुनिश्चित करता है कि मॉडल प्रत्येक आवश्यक क्षमता के लिए न्यूनतम सुरक्षा और प्रदर्शन सीमाओं को पूरा करता है।

उदाहरण आउटपुट: परिणामों में आमतौर पर task_name, accuracy, total_time_in_seconds, और latency_in_seconds के लिए कॉलम शामिल होते हैं। उदाहरण के लिए, glue/sst2 0.07s लेटेंसी के साथ 0.5 सटीकता दिखा सकता है, जबकि glue/rte 0.16s लेटेंसी के साथ 0.4 सटीकता दिखाता है।

import pandas as pd

results_data = {
    'task_name': ['glue/sst2', 'glue/rte'],
    'accuracy': [0.5, 0.4],
    'total_time_in_seconds': [0.74, 1.67],
    'latency_in_seconds': [0.07, 0.16]
}

df = pd.DataFrame(results_data)
print(df)

उपयोग की शर्तें

  • क्या मॉडल का मूल्यांकन कई अलग-अलग क्षमताओं (जैसे, तर्क बनाम भावना) पर करने की आवश्यकता है?
  • क्या कुछ विशिष्ट उच्च-जोखिम वाले विफलता मोड हैं जिनकी सामान्य सटीकता से स्वतंत्र रूप से निगरानी की जानी चाहिए?
  • क्या मूल्यांकन डेटासेट Hugging Face evaluate लाइब्रेरी के टास्क प्रकारों के साथ संगत है?
  • क्या डेटासेट को इवैल्यूएटर के पास भेजने से पहले कस्टम प्रीप्रोसेसिंग की आवश्यकता है?

EvaluationSuite के लिए डेटासेट का समर्थित Evaluator टास्क प्रकारों के साथ संगत होना आवश्यक है और गैर-मानक स्वरूपों के लिए कस्टम data_preprocessor कार्यों की आवश्यकता हो सकती है।

स्रोत

  1. Hugging Face Evaluate: EvaluationSuite ↗
  2. scikit-learn: cross-validation ↗
ऊपर जाएँ ↑