HumanEval एक कोड-जनरेशन AI benchmark है जिसे OpenAI ने 2021 में Codex पेश करने वाले पेपर के साथ जारी किया था, जो मूल GitHub Copilot को संचालित करने वाला मॉडल था। इसमें 164 हाथ से लिखे गए Python प्रोग्रामिंग समस्याएँ शामिल हैं, जिनमें से प्रत्येक में एक फ़ंक्शन सिग्नेचर, कार्य का वर्णन करने वाला एक docstring, और उत्पन्न समाधान की शुद्धता की जाँच करने के लिए उपयोग किए जाने वाले यूनिट टेस्ट का एक सेट शामिल है।
डिज़ाइन
प्रत्येक HumanEval समस्या एक मॉडल से केवल उसके सिग्नेचर और एक प्राकृतिक-भाषा docstring दिए जाने पर Python फ़ंक्शन बॉडी को पूरा करने के लिए कहती है, जैसे एक प्रोग्रामर लिखने से पहले एक छोटे कार्य का वर्णन कर सकता है। शुद्धता का निर्णय कार्यात्मक रूप से किया जाता है: एक उत्पन्न समाधान पास होता है यदि वह संलग्न यूनिट टेस्ट को संतुष्ट करता है, न कि एकल संदर्भ उत्तर से पाठ्य रूप से तुलना करके, जो एक ही फ़ंक्शन को लागू करने के कई अलग-अलग वैध तरीकों की अनुमति देता है। क्योंकि समस्याएँ मौजूदा कोड रिपॉजिटरी से स्क्रैप करने के बजाय विशेष रूप से बेंचमार्क के लिए हाथ से लिखी गई थीं, HumanEval को इस जोखिम को कम करने के लिए डिज़ाइन किया गया था कि समाधान पहले से ही मॉडल के प्रशिक्षण डेटा में शब्दशः मौजूद हों।
pass@k मीट्रिक
HumanEval ने कोड जनरेशन के मूल्यांकन के लिए pass@k मीट्रिक पेश या लोकप्रिय बनाया, जो इस संभावना को मापता है कि किसी मॉडल से स्वतंत्र रूप से नमूना किए गए k समाधानों में से कम से कम एक किसी दी गई समस्या के सभी यूनिट टेस्ट पास करता है। Pass@1 एकल-प्रयास सटीकता का अनुमान लगाता है, जबकि pass@100 या उच्च मान यह अनुमान लगाते हैं कि कई नमूनों में कहीं एक सही समाधान कितनी बार दिखाई देता है, जो विभिन्न वास्तविक-विश्व उपयोग पैटर्न, जैसे कई पुनः प्रयासों की अनुमति देने के तहत मॉडल की क्षमता को समझने के लिए उपयोगी है।
अपनाना और प्रगति
HumanEval जल्दी ही कोडिंग क्षमता के लिए एक मानक संदर्भ बिंदु बन गया, जिसे OpenAI, Anthropic, Google DeepMind, और Meta AI जैसे खुले-मॉडल डेवलपर्स द्वारा अपने Llama परिवार के साथ रिलीज़ घोषणाओं में सामान्य मूल्यांकन परिणामों के साथ रिपोर्ट किया गया। प्रदर्शन तेज़ी से बढ़ा: शुरुआती Codex मॉडल ने pass@1 पर 30% से कम समस्याओं को हल किया, जबकि 2023-2024 तक अग्रणी मॉडल 90% से अधिक तक पहुँच गए, जो व्यापक ज्ञान डोमेन में MMLU के साथ देखे गए संतृप्ति पैटर्न के समान है।
सीमाएँ और उत्तराधिकारी
HumanEval की समस्याएँ अपेक्षाकृत छोटी, स्व-निहित और Python-विशिष्ट हैं, जिसका अर्थ है कि मजबूत प्रदर्शन आवश्यक रूप से यह संकेत नहीं देता कि एक मॉडल बड़े, यथार्थवादी कोडबेस, बहु-फ़ाइल परियोजनाओं या अन्य प्रोग्रामिंग भाषाओं को संभाल सकता है। कई शुरुआती बेंचमार्क की तरह, डेटा संदूषण एक बढ़ती चिंता बन गई, क्योंकि समस्याएँ और समुदाय-लिखित समाधान ऑनलाइन व्यापक रूप से प्रसारित हुए और बाद के मॉडलों के प्रीट्रेनिंग डेटा में संभावित रूप से दिखाई दे सकते थे। इन सीमाओं ने कठिन और अधिक यथार्थवादी उत्तराधिकारियों को प्रेरित किया, विशेष रूप से SWE-bench, जो छोटे पृथक फ़ंक्शन के बजाय वास्तविक GitHub मुद्दों और पूर्ण कोडबेस में कार्यों को आधारित करता है, और मूल HumanEval प्रारूप के अन्य बहु-भाषा विस्तार।
विरासत
बाद के मानकों द्वारा अपने संकीर्ण दायरे के बावजूद, HumanEval ने कोड जनरेशन को मॉडलों में एक मापने योग्य, तुलनीय क्षमता के रूप में स्थापित करने में एक महत्वपूर्ण भूमिका निभाई, और इसका कार्यात्मक, परीक्षण-आधारित मूल्यांकन दृष्टिकोण, न कि संदर्भ समाधान से पाठ्य समानता, ने उद्योग भर में बाद के कोडिंग बेंचमार्क के डिज़ाइन को प्रभावित किया।