Benchmark · coding

CRUXEval

0 نتائج 0 نماذج

يقيس CRUXEval (Code Reasoning, Understanding, and eXecution Evaluation) مدى جودة استدلال النموذج حول تنفيذ الكود عبر 800 دالة Python قصيرة، من خلال مهمتين — التنبؤ بمدخل يُنتج مخرجًا معيّنًا، والتنبؤ بالمخرج لمدخل معيّن — ويُقيَّم بالصحة الوظيفية pass@1.

اقرأ المزيد
مثال
تُعرض دالة Python قصيرة ومكتفية ذاتيًا. في التنبؤ بالمخرج، يُعطى النموذج مدخلًا محددًا وعليه أن يذكر القيمة الدقيقة التي تُعيدها الدالة؛ وفي التنبؤ بالمدخل، يُعطى المخرج وعليه أن يقدّم أي مدخل يُعيد إنتاجه.
طريقة التقييم
المقياس هو pass@1 (ويُذكر أيضًا pass@k باستخدام المُقدِّر غير المتحيّز القياسي): يولّد النموذج إجابة واحدة أو أكثر لكل مسألة، ويُتحقق من كل منها بتشغيل الدالة، والنتيجة هي نسبة المسائل المحلولة من أصل 800، وتُذكر بشكل منفصل لـ CRUXEval-I (المدخل) و CRUXEval-O (المخرج).
التحقق
يُتحقق من كل تنبؤ بالتنفيذ، لا بمطابقة السلاسل النصية. تُقبل إجابة المخرج فقط إذا ساوت القيمة المُعادة الحقيقية للدالة؛ وتُقبل إجابة المدخل فقط إذا أنتجت فعليًا المخرج الهدف عند تمريرها إلى الدالة، لذا فأي مدخل صالح مقبول، وليس المدخل الأصلي وحده.
لماذا يهم
التنبؤ بسلوك التنفيذ يفصل الاستدلال حول الكود عن كتابة الكود — إذ يمكن للنموذج توليد كود معقول دون تتبّع ما يفعله فعليًا. الدوال بسيطة ومكتفية ذاتيًا، مما يجعل CRUXEval اختبارًا نظيفًا لهذه المهارة، والاتجاهان يختبران الاستدلال الأمامي (المخرج) والخلفي (المدخل) معًا.
مثال محلول
المهمة
def f(nums): result = [] for n in nums: result.append(n * 2) return result assert f([1, 2, 3]) == ?? CRUXEval-O (التنبؤ بالمخرج): استبدل ?? بالقيمة التي تُعيدها f.
الحل
[2, 4, 6]
الشرح
تضاعف الحلقة كل عنصر في [1, 2, 3] لتنتج [2, 4, 6]. يشغّل التقييم assert f([1, 2, 3]) == [2, 4, 6] ولا يقبل الإجابة إلا إذا نجح هذا التأكيد.

لا توجد درجات موثّقة لهذا الـ Benchmark بعد.