HumanEval Benchmark — معيار HumanEval
HumanEval — هو مجموعة بيانات مرجعية (معيار) مصممة للتقييم الموضوعي لجودة الشيفرة البرمجية التي تولدها نماذج الذكاء الاصطناعي بناءً على وصف نصي للمهمة[1]. تم تقديمه في يوليو 2021 من قبل باحثين من OpenAI بقيادة مارك تشين (Mark Chen)، وأصبح أحد المعايير الرئيسية لقياس الصحة الوظيفية للبرامج المولّدة.
جاء تطوير HumanEval استجابةً للحاجة إلى طريقة موثوقة لتقييم توليد الشيفرات البرمجية. في السابق، كانت جودة الشيفرة المولّدة بواسطة نماذج اللغة تُقيَّم غالبًا بمقاييس غير مباشرة (مثل BLEU) أو يدويًا، وهو ما لم يكن يضمن تطابقها مع الأداء الفعلي للبرامج. يحل HumanEval هذه المشكلة من خلال التركيز على الصحة الوظيفية: حيث لا تُقيَّم الشيفرة المولّدة بناءً على تشابهها النحوي مع الحل المرجعي، بل بناءً على قدرتها على اجتياز مجموعة من اختبارات الوحدات (unit tests) الآلية بنجاح[1].
بنية مجموعة المهام
يتكون المعيار من 164 مهمة برمجية، تمت كتابتها يدويًا خصيصًا لهذه المجموعة من البيانات لضمان عدم وجودها في مجموعات بيانات تدريب النماذج. صِيغت جميع المهام بلغة Python وقُدمت على شكل مقتطفات برمجية مع وصف لها[2].
تتضمن كل مهمة ما يلي:
- ترويسة الدالة: بصمة الدالة مع اسمها ومعاملاتها.
- الوصف النصي: سلسلة توثيق (docstring) باللغة الإنجليزية تصف الوظيفة المطلوبة.
- جسم الدالة: مساحة فارغة يجب على النموذج ملؤها بالشيفرة المولّدة.
لكل مهمة، توجد أيضًا عناصر مخفية عن النموذج:
- الحل النموذجي (Canonical Solution): التنفيذ الصحيح (المرجعي) للدالة.
- مجموعة اختبارات الوحدات (unit tests): تُستخدم للتحقق التلقائي من صحة الشيفرة المولّدة. تغطي الاختبارات الحالات الأساسية والحدّية (edge cases).
تغطي المهام مجموعة واسعة من الموضوعات: بدءًا من تراكيب اللغة الأساسية والخوارزميات وصولًا إلى الرياضيات البسيطة، مما يجعل المجموعة متنوعة وصعبة بالنسبة للنماذج.
منهجية تقييم النماذج
المقياس الرئيسي للنجاح في HumanEval هو pass@k، والذي يقيس نسبة المهام التي حلّها النموذج بشكل صحيح وظيفيًا[1]. يُعتبر الحل ناجحًا إذا اجتازت الشيفرة المولّدة جميع الاختبارات الآلية لتلك المهمة.
- pass@1: المؤشر الأساسي والأكثر استخدامًا. وهو يمثل النسبة المئوية للمهام التي حلها النموذج من المحاولة الأولى (أي عند توليد إجابة واحدة لكل مهمة).
- pass@k: بشكل عام، يقيس هذا المقياس نسبة المهام التي ينجح فيها واحد على الأقل من بين k حل تم توليده بواسطة النموذج في اجتياز جميع الاختبارات. على سبيل المثال، يوضح pass@10 نسبة المهام التي يمكن للنموذج حلها إذا أُتيحت له 10 محاولات لكل مهمة.
نظرًا لأن الحساب المباشر لـ pass@k يتطلب عددًا كبيرًا من العينات، اقترح المؤلفون طريقة صحيحة إحصائيًا لحساب هذا المقياس، مما يسمح بالحصول على تقدير غير متحيز[1].
يتم الاختبار العملي في "بيئة معزولة" (sandbox) خاصة: حيث يتم تجميع الشيفرة المولّدة وتشغيلها على مجموعة من الاختبارات للتحقق من صحتها. يسمح هذا النهج بقياس قدرة النموذج على توليد شيفرة قابلة للتنفيذ وصحيحة، وليس مجرد شيفرة متشابهة نحويًا مع الحل المرجعي.
النتائج والتأثير في المجال
أظهرت التجارب الأولية على HumanEval فجوة كبيرة بين النماذج ذات الأغراض العامة والنماذج المدربة خصيصًا على الشيفرات البرمجية.
- في عام 2021، تمكن نموذج OpenAI Codex (الذي يضم 12 مليار مُعلَمة، ومدرب على شيفرات من GitHub) من حل ~28.8% من المهام من المحاولة الأولى (pass@1).
- في المقابل، لم يتمكن نموذج اللغة الأكبر GPT-3 (175 مليار مُعلَمة)، غير المدرب على الشيفرات، من حل أي مهمة بشكل صحيح[1].
أبرزت هذه النتائج ضرورة التدريب المتخصص على بيانات البرمجة لتحقيق توليد ناجح للشيفرات. بعد ظهور HumanEval، سرعان ما أصبح المعيار اختبارًا قياسيًا لمقارنة التقدم المحرز في النماذج الجديدة.
- وصلت نماذج سلسلة GPT-3.5 (بداية 2023) إلى ~72% في مقياس pass@1.
- أظهر نموذج GPT-4 (2023) نتائج أعلى، حيث حقق ~67% في نسخته الأساسية وتجاوز 85% بعد تعديلات إضافية[3].
- أظهرت النماذج المفتوحة المصدر، مثل Code Llama (من Meta، 2023) وWizardCoder (2023)، نتائج عالية أيضًا (~53% و~57% في مقياس pass@1 على التوالي)، متجاوزةً النماذج المسجلة الملكية المبكرة[4].
توسيعات المعيار وإصداراته
ألهم نجاح HumanEval إنشاء العديد من الإصدارات المشتقة المصممة لتقييم النماذج في سياقات أوسع.
- CL-HumanEval (Cross-Lingual HumanEval): إصدار متعدد اللغات (2024)، حيث تم تكييف مهام HumanEval الأصلية لاختبار قدرة النماذج على فهم الأوصاف بلغات مختلفة (إلى جانب الإنجليزية)، مع توليد الشيفرة بلغة Python[5].
- Multilingual HumanEval: توسيع (2023) يهدف إلى تقييم توليد الشيفرات بـ12 لغة برمجة مختلفة (بما في ذلك Java، وC#، وJavaScript، وغيرها) بناءً على وصف باللغة الإنجليزية[6].
- HumanEval-XL: معيار واسع النطاق (2024) يجمع بين النهجين السابقين. يحتوي على مهام بـ12 لغة برمجة وترجمات للأوصاف النصية إلى 23 لغة عالمية، بما في ذلك الروسية والصينية والعربية وغيرها. يضم HumanEval-XL إجمالاً أكثر من 22,000 زوج من "وصف-شيفرة"[7].
روابط خارجية
قراءات إضافية
- Liang, P. et al. (2022). Holistic Evaluation of Language Models (HELM). arXiv:2211.09110.
- Chang, Y. et al. (2023). A Survey on Evaluation of Large Language Models. arXiv:2307.03109.
- Ni, S. et al. (2025). A Survey on Large Language Model Benchmarks. arXiv:2508.15361.
- Biderman, S. et al. (2024). The Language Model Evaluation Harness (lm-eval): Guidance and Lessons Learned. arXiv:2405.14782.
- Kiela, D. et al. (2021). Dynabench: Rethinking Benchmarking in NLP. arXiv:2104.14337.
- Ma, Z. et al. (2021). Dynaboard: An Evaluation‑As‑A‑Service Platform for Holistic Next‑Generation Benchmarking. arXiv:2106.06052.
- Goel, K. et al. (2021). Robustness Gym: Unifying the NLP Evaluation Landscape. arXiv:2101.04840.
- Xu, C. et al. (2024). Benchmark Data Contamination of Large Language Models: A Survey. arXiv:2406.04244.
- Liu, S. et al. (2025). A Comprehensive Survey on Safety Evaluation of LLMs. arXiv:2506.11094.
- Chiang, W.-L. et al. (2024). Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. arXiv:2403.04132.
- Boubdir, M. et al. (2023). Elo Uncovered: Robustness and Best Practices in Language Model Evaluation. arXiv:2311.17295.
- Huang, L. et al. (2023). A Survey on Hallucination in Large Language Models. arXiv:2311.05232.
المراجع
- ↑ 1.0 1.1 1.2 1.3 1.4 Chen, M. et al. «Evaluating Large Language Models Trained on Code». arXiv:2107.03374, 2021. [١]
- ↑ «openai/openai_humaneval». Hugging Face Datasets. [٢]
- ↑ Niu, C. et al. «On Evaluating the Efficiency of Source Code Generated by LLMs». Proceedings of the 2nd International Conference on AI-generated Content, 2024. [٣]
- ↑ Lutfullaev, J. «HumanEval on LLMs Revisited in Late 2023». arXiv:2402.14852, 2023. [٤]
- ↑ Sato, M. et al. «CL-HumanEval: A Benchmark for Evaluating Cross-Lingual Transfer through Code Generation». Proceedings of the 38th Pacific Asia Conference on Language, Information and Computation, 2024. [٥]
- ↑ Athiwaratkun, B. et al. «Multilingual HumanEval: A Multilingual Code Generation Benchmark». arXiv:2307.11892, 2023. [٦]
- ↑ Liu, J. et al. «HumanEval-XL: A Multilingual Code Generation Benchmark for Cross-lingual Natural Language Generalization». LREC-COLING 2024. [٧]