Benchmark · coding
HumanEval+
HumanEval+ هو نسخة صارمة وموسّعة من معيار HumanEval لتوليد الكود من OpenAI: يحتفظ بمسائل البرمجة الأصلية الـ164 المكتوبة يدويًا بلغة Python لكنه يضيف نحو 80x مزيدًا من حالات الاختبار (عبر إطار EvalPlus)، ويُقيَّم بمقياس pass@k (عادةً pass@1).
اقرأ المزيد
- مثال
- يقدّم كل عنصر توقيع دالة بلغة Python مع docstring بلغة طبيعية — غالبًا مع مثال doctest — يصف السلوك المطلوب (مثلًا: 'أعِد عناصر القائمة الأكبر تمامًا من عتبة معيّنة، بالترتيب')، وعلى النموذج أن يولّد جسم الدالة الذي يحقق ذلك.
- طريقة التقييم
- المقياس هو pass@k: لكل مسألة تُؤخذ عيّنة من n >= k من الإكمالات، ينجح c منها في كل الاختبارات، ويُحسب متوسط المُقدّر غير المتحيّز pass@k = 1 - C(n-c, k) / C(n, k) على الـ164 مسألة (الأكثر إبلاغًا هو pass@1). يُحتسب الإكمال فقط إذا اجتاز مجموعة الاختبارات الموسّعة بالكامل، لذا تكون درجات HumanEval+ أقل من HumanEval العادي.
- التحقق
- يُنفَّذ كل إكمال في بيئة معزولة (sandbox) مقابل مجموعة الاختبارات الموسّعة ضمن حدود للوقت والذاكرة، ويُقبل فقط إذا اجتازت كل حالات الاختبار — الاختبارات الأصلية إضافة إلى المدخلات المولَّدة بواسطة EvalPlus. لا توجد درجة جزئية: اختبار واحد يفشل أو ينتهي وقته يُسقِط العيّنة كلها.
- لماذا يهم
- اختبارات HumanEval الأصلية متفرقة، مما يسمح لحلول خاطئة بشكل خفي بالمرور وتضخيم معدلات النجاح المُبلَّغ عنها؛ أما اختبارات HumanEval+ الأكثف بنحو 80x فتكشف هذه الإيجابيات الكاذبة وتعيد ترتيب تصنيف النماذج، مما يجعله فحص صحة قياسيًا وأكثر صرامة لنماذج توليد الكود.
مثال محلول
المهمة
عنصر تمثيلي على نمط HumanEval+ — توقيع Python مُحدَّد الأنواع مع docstring و doctest، حيث يجب على النموذج إكمال جسم الدالة:
```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 بالعناصر الأكبر تمامًا من العتبة فقط ويحافظ على ترتيب الإدخال، محقّقًا المواصفة و doctest ([5.5, 8.0]). يُشغِّل التقييم هذا مقابل مجموعة HumanEval+ الكاملة — العديد من الحالات الحدّية المولَّدة تلقائيًا مثل القوائم الفارغة والأعداد السالبة والقيم المتساوية جميعها — ويمنح 1 فقط إذا اجتازت كل الاختبارات.
| التاريخ | النموذج | النتيجة | المصدر |
|---|---|---|---|
| 2026-07-13 | Qwen3.5-4B | 13.0% | تضغط Flint مسارات الاستدلال لتقليل استخدام الرموز مع الحفاظ على الدقة |