Benchmark · coding
HumanEval+
HumanEval+, OpenAI के HumanEval कोड-जनरेशन बेंचमार्क का एक कठोर, विस्तारित संस्करण है: यह मूल 164 हाथ से लिखे Python प्रोग्रामिंग प्रश्नों को बनाए रखता है लेकिन (EvalPlus फ्रेमवर्क के ज़रिए) लगभग 80x अधिक टेस्ट केस जोड़ता है, और इसे pass@k मेट्रिक (आमतौर पर pass@1) से स्कोर किया जाता है।
और पढ़ें
- उदाहरण
- हर आइटम एक Python फ़ंक्शन signature के साथ एक प्राकृतिक-भाषा docstring देता है — अक्सर एक doctest उदाहरण सहित — जो वांछित व्यवहार बताता है (उदाहरण: 'सूची के उन तत्वों को क्रम में लौटाओ जो एक threshold से सख्ती से बड़े हैं'), और मॉडल को इसे लागू करने वाला फ़ंक्शन body उत्पन्न करना होता है।
- स्कोरिंग
- मेट्रिक pass@k है: प्रत्येक प्रश्न के लिए n >= k completions सैंपल किए जाते हैं, उनमें से c सभी टेस्ट पास करते हैं, और निष्पक्ष अनुमानक pass@k = 1 - C(n-c, k) / C(n, k) को 164 प्रश्नों पर औसत किया जाता है (सबसे अधिक pass@1 रिपोर्ट होता है)। एक completion तभी गिना जाता है जब वह पूरे विस्तारित टेस्ट सूट को पास करे, इसलिए HumanEval+ के स्कोर सादे HumanEval से कम रहते हैं।
- सत्यापन
- प्रत्येक completion को समय और मेमोरी सीमाओं के अंतर्गत एक पृथक sandbox में विस्तारित टेस्ट सूट के विरुद्ध चलाया जाता है, और इसे तभी स्वीकार किया जाता है जब हर टेस्ट केस पास हो — मूल टेस्ट के साथ-साथ EvalPlus द्वारा उत्पन्न इनपुट भी। कोई आंशिक अंक नहीं है: एक भी टेस्ट का फेल होना या टाइम-आउट होना पूरे नमूने को फेल कर देता है।
- यह क्यों मायने रखता है
- HumanEval के मूल टेस्ट विरल हैं, जिससे सूक्ष्म रूप से गलत समाधान भी निकल जाते हैं और रिपोर्ट की गई पास दरें बढ़ा देते हैं; HumanEval+ के ~80x सघन टेस्ट इन झूठे-सकारात्मक को उजागर करते हैं और मॉडल रैंकिंग को फिर से क्रमबद्ध कर देते हैं, जिससे यह कोड-जनरेशन मॉडलों के लिए एक मानक, अधिक कठोर शुद्धता जाँच बन जाता है।
हल किया गया उदाहरण
कार्य
एक प्रतिनिधि HumanEval+-शैली आइटम — docstring और doctest के साथ एक typed Python signature, जहाँ मॉडल को फ़ंक्शन body पूरा करना है:
```python
from typing import List
def above_threshold(numbers: List[float], threshold: float) -> List[float]:
"""Return the numbers from the input list that are strictly
greater than the given threshold, preserving their original order.
>>> above_threshold([1.0, 5.5, 2.3, 8.0], 3.0)
[5.5, 8.0]
"""
```
समाधान
```python
from typing import List
def above_threshold(numbers: List[float], threshold: float) -> List[float]:
return [n for n in numbers if n > threshold]
```
व्याख्या
यह list comprehension ठीक उन्हीं तत्वों को रखता है जो threshold से सख्ती से बड़े हैं और इनपुट क्रम को बनाए रखता है, जो specification और doctest ([5.5, 8.0]) को संतुष्ट करता है। ग्रेडिंग इसे पूरे HumanEval+ सूट पर चलाती है — खाली सूचियों, ऋणात्मक और सभी-समान मानों जैसे कई स्वतः-उत्पन्न किनारे के मामले — और केवल तभी 1 अंक देती है जब हर टेस्ट पास हो।
| तारीख़ | मॉडल | स्कोर | स्रोत |
|---|---|---|---|
| 2026-07-13 | Qwen3.5-4B | 13.0% | फ्लिंट सटीकता बनाए रखते हुए टोकन उपयोग कम करने के लिए तर्क ट्रेस को संकुचित करता है |