Benchmark · agentic
SWE-bench
يختبر SWE-bench ما إذا كان نظام الذكاء الاصطناعي قادرًا على إصلاح أخطاء برمجية حقيقية: فهو يجمع 2294 مسألة (issue) حقيقية من مستودعات Python مفتوحة المصدر الشهيرة على GitHub ويطلب من النموذج إنتاج patch يصحّح الشيفرة. المقياس الرئيسي هو نسبة المسائل التي تم حلّها.
اقرأ المزيد
- مثال
- يقدّم عنصر نموذجي للنموذج تقرير خطأ أو طلب ميزة حقيقيًا مقدَّمًا في مشروع Python — مثل مسألة من Django أو scikit-learn — مع شيفرة ذلك المستودع، ويطلب منه إنتاج patch يحلّ المشكلة.
- طريقة التقييم
- الدرجة هي نسبة المسائل المحلولة من أصل 2294: لا تُحتسب المسألة إلا إذا نجح patch النموذج بعد تطبيقه في اجتياز مجموعة اختبارات المستودع نفسه.
- التحقق
- التحقق آلي بالكامل: يُطبَّق patch المُنتَج على المستودع وتُشغَّل اختبارات المشروع الحقيقية، ولا تُقبل المهمة كمحلولة إلا عندما تتحول الاختبارات المستهدفة الفاشلة إلى ناجحة وتبقى الاختبارات التي كانت ناجحة ناجحةً، دون حكم بشري أو تطابق تام.
- لماذا يهم
- يقيس مهارة هندسة البرمجيات الشاملة على شيفرة واقعية بدل التمارين البسيطة، ما يجعله مؤشرًا يُتابَع عن كثب لتقدّم وكلاء البرمجة؛ أما بالنسبة لأرقام العناوين الرئيسية فقد حلّ محلّه إلى حدّ كبير المجموعة الفرعية المُتحقَّق منها بشريًا SWE-bench Verified.
مثال محلول
المهمة
المستودع
psf/requests. أبلغ أحد المستخدمين أن تعيين ترويسة الطلب إلى None (لإزالة ترويسة افتراضية من الجلسة) لا يُحدث أي أثر: يبقى المفتاح ذو القيمة None في الترويسات المدمجة بدلاً من حذفه. بالنظر إلى المستودع عند الـ commit المعطوب وهذه المشكلة، أنشئ patch بحيث يحذف requests.sessions.merge_setting المفاتيح التي قيمتها None.الحل
--- a/requests/sessions.py
+++ b/requests/sessions.py
@@ -412,6 +412,11 @@ def merge_setting(request_setting, session_setting, dict_class=OrderedDict):
merged_setting = dict_class(to_key_val_list(session_setting))
merged_setting.update(to_key_val_list(request_setting))
+ # Remove keys that are set to None. Extract the keys first to avoid
+ # mutating the dictionary while iterating over it.
+ none_keys = [k for (k, v) in merged_setting.items() if v is None]
+ for key in none_keys:
+ del merged_setting[key]
+
return merged_setting
الشرح
بعد دمج قاموسَي الجلسة والطلب، فإن أي مفتاح يشير إلى
None جاء من تجاوز صريح على مستوى الطلب الغرض منه محو قيمة افتراضية، لذا يجمع الإصلاح هذه المفاتيح ويحذفها (مع بناء القائمة أولاً لتفادي تعديل القاموس أثناء التكرار). يقيّم SWE-bench عبر تطبيق الـ patch وتشغيل اختبارات FAIL_TO_PASS و PASS_TO_PASS الخاصة بالحالة، ولا تُعدّ محلولة إلا إذا نجحت جميعها.| التاريخ | النموذج | النتيجة | المصدر |
|---|---|---|---|
| 2025-11-25 | Claude Opus 4.5 | 80.9% | أنثروبيك تطلق كلاود أوبوس 4.5 بأحدث تقنيات البرمجة واستخدام الحاسوب |
| 2025-10-17 | Qwen3-Coder-480B-A35B-Instruct | 55.4% | أليبابا تطلق Qwen3-Coder-480B-A35B-Instruct، نموذج برمجة مفتوح المصدر يعادل أداء النماذج الخاصة |
| 2025-07-10 | Grok 4 Code | 75.0% | xAI تطلق غروك 4 بترتيب "الثقيل" متعدد الوكلاء وبيانات الويب المباشرة |
| 2025-05-22 | Claude Sonnet 4 | 72.7% | أنثروبيك تطلق كلاود أوبس 4 وسونيت 4 بتدابير سلامة ASL-3 |
| 2025-05-22 | Claude Opus 4 | 72.5% | أنثروبيك تطلق كلاود أوبس 4 وسونيت 4 بتدابير سلامة ASL-3 |
| 2025-05-22 | Claude Opus 4 | 72.5% | أنثروبيك تطرح كلاود أوبس 4 وسونيت 4 مع التفكير الممتد واستخدام الأدوات |
| 2025-05-22 | Claude Sonnet 4 | 72.7% | أنثروبيك تطرح كلاود أوبس 4 وسونيت 4 مع التفكير الممتد واستخدام الأدوات |
| 2025-02-24 | Claude 3.7 Sonnet | 70.3% | أنثروبيك تطلق كلاود 3.7 سونيت مع تحكم ديناميكي في التفكير |
| 2023-10-10 | Claude 2 | 1.96% | SWE-bench يقدم إطار عمل لتقييم نماذج اللغات على مشاكل GitHub الحقيقية |