مطورون يعملون مع شاشات متعددة

ما هو HumanEval؟

تم تعريف HumanEval

يُعد HumanEval معيارًا لتقييم قدرات إنشاء التعليمات البرمجية لنماذج اللغة الكبيرة (LLM). وتم تطويره بواسطة OpenAI لتقييم الإصدارات المبكرة من نماذج الذكاء الاصطناعي التي تشغل Codex، وكيل هندسة البرمجيات الخاص بالشركة.

تم تصميم معيار HumanEval خصيصًا للتعليمة البرمجية المنشأة بواسطة Python. وإنه يتجاوز الصياغة، ويتحقق من أن التعليمة البرمجية التي تم إنشاؤها دقيقة وتعمل على النحو المنشود.

يمكن الوصول إلى إطار عمل المعيار من مستودع OpenAI HumanEval GitHub. لدى HumanEval أيضًا لوحة متصدرين تصنف أداء نماذج إنتاج الشيفرة المختلفة، بما في ذلك مجموعة Claude، وKimi K2، وGoogle Gemma وGemini، وGPT-5 والإصدارات الأقدم GPT-4o وGPT-4 وعائلة IBM Granite وغيرها.

هيكل مجموعة البيانات

تتألف مجموعة بيانات HumanEval من 164 مشكلة برمجية مكتوبة يدويًا مع اختبارات الوحدات المقابلة لها.1 وتقيس هذه المشكلات قدرة النموذج على فهم اللغة ومعالجة السلاسل النصية والبحث والفرز. كما يقومون بتقييم مهارات حل المشكلات من حيث الرياضيات البسيطة والخوارزميات المعقدة. وتشبه هذه المهام البرمجية الأسئلة الخوارزمية، أو تمارين البرمجة، أو تحديات تصميم الأنظمة التي يتعامل معها مطورو البرمجيات خلال المقابلات التقنية.

تحتوي كل مهمة من مهام إنشاء التعليمات البرمجية على المكونات التالية:

  • تعريف الدالة

  • سلسلة التوثيق

  • محتوى الدالة

  • اختبارات الوحدة

تعريف الدالة

التعريف يحدد اسم الدالة ومعلماتها. على سبيل المثال، إليك تعريف دالة تحسب حاصل ضرب عددين صحيحين:            

def multiply(a, b):

سلسلة التوثيق

السلسلة الوثيقة هي مطالبة لغة طبيعية أو وصف للسلوك المتوقع للدالة وأهدافها وإدخالاتها ومخرجاتها. وتوضح هذه التعليقات ما تفعله الدالة، وتوجه النموذج عند إنشاء تعليمة Python برمجية.

على سبيل المثال، ستكون سلسلة التوثيق الخاصة بدالة الضرب هي:

“””Complete the function that takes two integers as inputs
and returns their product as the output.
Assume the inputs are always valid.
Examples:
multiply(8, 2) must return 16
multiply(0, 777) must return 0
multiply(-32,64) must return -2048
“””

محتوى الدالة

هذا مقطع مخصص للتعليمة البرمجية التي ينتجها النموذج. ويحمل الحل المنفَّذ للمشكلة بالنظر إلى محتوى الوظيفة وسلسلة التوثيق.

اختبارات الوحدة

تتحقق حالات الاختبار هذه من صحة التنفيذ الوظيفي للتعليمة البرمجية التي تم إنشاؤها عبر سيناريوهات مختلفة. ويُغذي كل اختبار إدخالات محددة للوظيفة ثم يتحقق من أن المخرجات تتوافق مع النتائج المقصودة.

فيما يلي بعض اختبارات الوحدة النموذجية لدالة الضرب:

def test_multiply():
    assert multiply(89, 0) == 0
    assert multiply(37, -5) == -185
    assert multiply(66, 17) == 1122

مقياس التقييم

العديد من معايير نماذج اللغة الكبيرة للكود تطبق منهجيات تستخدم لتوليد النصوص، مثل المقاييس القائمة على التطابق التي تقارن عينات التعليمات البرمجية المنشأة مع حل مرجعي. ولكن المقاييس القائمة على التطابق لا تأخذ عادةً في الاعتبار الطرق المختلفة التي يمكن من خلالها حل مشكلة ما، والتي يمكن أن يكون أي منها مكافئًا وظيفيًا للحل المرجعي.

لهذا السبب، اعتمد معيار HumanEval على صحة التنفيذ الوظيفي، التي تعتبر عينة التعليمات البرمجية المُنشأة صحيحة إذا اجتازت مجموعة من اختبارات الوحدة. ويعكس هذا النهج كيفية تقييم المطورين لنجاح التعليمة البرمجية الخاصة بهم من خلال تشغيلها عبر سلسلة من اختبارات الوحدة والتأكد من اجتيازها لكل منها.

يقيس HumanEval الصحة الوظيفية باستخدام مقاييس pass@k. ولكل مشكلة، يقوم النموذج بإنشاء عينات التعليمات البرمجية k. وإذا اجتازت أية عينة من هذه العينات اختبارات الوحدة، فسيتم اعتبار المشكلة قد تم حلها بشكل صحيح. وتقوم المقاييس pass@k بتقدير احتمال أن تكون واحدة على الأقل من العينات k صحيحة وظيفيًا.

أكاديمية الذكاء الاصطناعي

صعود الذكاء الاصطناعي التوليدي في قطاع الأعمال

تعرّف على الصعود التاريخي للذكاء الاصطناعي التوليدي وما يعنيه بالنسبة إلى قطاع الأعمال.

قيود HumanEval

يُعد HumanEval مجرد واحد من العديد من المعايير لتقييم النماذج اللغوية الكبيرة ذات التعليمات البرمجية. ولا يزال يجب على فرق تطوير البرمجيات تقييم التعليمات البرمجية التي تنشأها نماذج اللغة الكبيرةباستخدام اختباراتها الداخلية الخاصة ودمج مقاييس متعددة للحصول على رؤية أكثر شمولاً لأداء النموذج. ويظل نهج التفاعل البشري ضروريًا أيضا للمساعدة في ضمان دقة التعليمات البرمجية التي ينشأها الذكاء الاصطناعي وضبط وتحسين نماذج التعلم الآلي مع مرور الوقت.

فيما يلي بعض قيود معيار HumanEval:

  • تداخل بيانات التدريب مع الاختبار

  • عدم وجود تعقيد في العالم الحقيقي

  • تضييق نطاق مقياس قدرات البرمجة

  • دعم لغة البرمجة المقيد

التلوث

قد تكون مشاكل البرمجة المتضمنة في مجموعة البيانات قد تمت مواجهتها أثناء تدريب النموذج نظرًا لتوافرها على نطاق واسع. كما أن عدد المشكلات قليل بما يكفي لدرجة أن نماذج إنشاء التعليمات البرمجية ربما تتمكن من حفظها جميعًا.

عدم وجود تعقيد في العالم الحقيقي

تندرج مهام إنشاء التعليمات البرمجية داخل HumanEval عادةً ضمن النطاق السهل إلى المتوسط. ومع ذلك، تميل مهام البرمجة الواقعية إلى أن تكون أكثر تعقيدًا، وتشمل عمليات تكامل واجهة برمجة التطبيقات مع أنظمة متعددة، وقواعد تعليمات برمجية ضخمة، ومجموعات بيانات ضخمة.

كما أن المعيار يفشل في عكس الحالة المعقدة غالبًا لبيئات وسير العمل في تطوير البرمجيات الواقعية: حالات الاستخدام المتطورة، أو حالات الاختبار غير المكتملة، أو المتطلبات غير المتسقة، أو التعليمات البرمجية القديمة أو المواصفات الغامضة، على سبيل المثال لا الحصر.

تضييق نطاق مقياس قدرات البرمجة

البرمجة لا تقتصر فقط على صحة التنفيذ الوظيفي، بل هناك ما هو أكثر من ذلك. على سبيل المثال، لا يأخذ HumanEval الكفاءة في الاعتبار. وهذا يعني أن التعليمة البرمجية، التي يتم إنشاؤها بواسطة النموذج اللغوي الكبير دقيقة وتعمل كما هو متوقع، وقد لا تكون الحل الأكثر كفاءة وتحسينًا من حيث الأداء.

كما أن المعيار لا يأخذ في الاعتبار أفضل ممارسات البرمجة، مثل اصطلاحات البرمجة، ومعايير الأسلوب، والتعامل مع الأخطاء، والتحقق من صحة الإدخال، والبرمجة الآمنة.

دعم لغة البرمجة المقيد

تم تخصيص HumanEval خصيصًا للغة البرمجة Python مفتوحة المصدر. ويجب تقييم مصدر الرمز الذي تم إنشاؤه بلغات أخرى باستخدام معايير أخرى.

اختلافات HumanEval

يحتوي المعيار على عدد قليل من الإصدارات المختلفة التي تعالج بعض قيوده:

  • HumanEval+
     

  • HumanEval-V
     

  • HumanEval-X
     

  • HumanEvalNext

HumanEval+

تحتوي كل مشكلة برمجة في HumanEval على ما يقارب 7 إلى 8 اختبارات وحدة في المتوسط.1 HumanEval+ يعمل على زيادة تغطية الاختبارات بشكل ملحوظ لتصل إلى 764 اختبارًا في المتوسط لكل مشكلة، مما يتيح تقييمًا أكثر دقة.2

HumanEval-V

يبني HumanEval-V على سابقه لإنشاء معيار لنماذج الذكاء الاصطناعي متعددة الوسائط، وتحديدًا نماذج اللغة المرئية (VLM). ويقيس قدرة نماذج VLM على الفهم والاستدلال على المخططات والرسوم البيانية في سياقات البرمجة، وتنشئ التعليمات البرمجية بناءً على مخططات تدفق الخوارزميات أو تحويلات المصفوفة، على سبيل المثال.

HumanEval-X

يمدد HumanEval-X المعيار الأصلي ليشمل لغات البرمجة C++ وGo وJava وJavaScript. ويمكن استخدام مهامه البالغ عددها 820 مهمة لتقييم مهارات إنشاء التعليمات البرمجية وترجمة التعليمات البرمجية.

HumanEvalNext

يُعدّ HumanEvalNext تحسينًا لـ HumanEval. ويضيف المزيد من السياق من خلال شروح النوع (صياغة البرمجة للإشارة إلى أنواع بيانات معلمات الدالة وقيم الإرجاع)، ويتضمن المزيد من حالات الحافة ويقدم المزيد من اختبارات الوحدة ويزيد من صعوبة المشاكل.3

المؤلفون

Rina Diane Caballar

Staff Writer

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

حلول ذات صلة
IBM Bob

تسريع عملية تسليم البرامج مع Bob، شريكك المدعوم بالذكاء الاصطناعي للتطوير الآمن والمدرك للأهداف.

استكشف ®IBM Bob
حلول البرمجة بالذكاء الاصطناعي

عزّز كفاءة تطوير البرمجيات باستخدام أدوات موثوقة مدعومة بالذكاء الاصطناعي تساعد في تقليل الوقت المستغرق في كتابة التعليمات البرمجية، وتصحيح الأخطاء، وإعادة هيكلة التعليمات البرمجية، وإكمالها تلقائيًا—مما يمنح المطورين مساحة أكبر للابتكار.

استكشِف حلول البرمجة المدعومة بالذكاء الاصطناعي
الاستشارات والخدمات المتعلقة بالذكاء الاصطناعي

أعدّ ابتكار عمليات ومهام سير العمل الحساسة بإضافة الذكاء الاصطناعي لتعزيز التجارب وصنع القرارات في الوقت الفعلي والقيمة التجارية.

استكشف خدمات استشارات الذكاء الاصطناعي
اتخذ الخطوة التالية

الاستفادة من الذكاء الاصطناعي التوليدي والأتمتة المتقدمة لإنشاء كود جاهز للمؤسسات بشكل أسرع. يعتمد Bob على نماذج لتعزيز مهارات المطورين، مع تبسيط وأتمتة جهودك في التطوير والتحديث.

  1. اكتشف IBM Bob
  2. استكشِف حلول البرمجة المدعومة بالذكاء الاصطناعي