مقاييس أداء SWE-Perf: معيار جديد لقياس تحسين أداء الرموز على مستوى المستودعات
يُعدّ تحسين أداء البرمجيات تحديًا مستمرًا، خاصةً على مستوى مستودعات الأكواد، حتى مع التقدم المُذهل الذي تُحرزه نماذج اللغات الكبيرة (LLMs) في مهام هندسة البرمجيات، بدءًا من توليد الأكواد ووصولًا إلى تصحيح الأخطاء. للتغلب على هذا التحدي، قدم باحثون من تيك توك ومؤسسات تعاونية معيارًا جديدًا يُسمى SWE-Perf، وهو أول معيار مُصمم خصيصًا لتقييم قدرة نماذج اللغات الكبيرة على تحسين أداء الأكواد في مستودعات حقيقية.
لماذا نحتاج إلى SWE-Perf؟
تختلف معايير الأداء الحالية، مثل SWE-Bench و Mercury و EFFIBench، عن SWE-Perf في تركيزها على دقة الأكواد أو كفاءتها على مستوى الوظائف الفردية. أما SWE-Perf، فيُركز على التعقيد والعمق السياقي لتحسين الأداء على مستوى المستودع بأكمله. فهو يوفر أساسًا كمّيًا قابلاً للتكرار لدراسة وتحسين قدرات نماذج اللغات الكبيرة في تحسين الأداء.
تتميز قواعد البيانات الحقيقية بالحجم الكبير والوحدات النمطية المُتداخلة بشكل مُعقد. يتطلب تحسين أدائها فهم التفاعلات بين الملفات المختلفة، ومسارات التنفيذ، والاختناقات الحسابية، وهي تحديات تتجاوز نطاق مجموعات البيانات المُفردة على مستوى الوظائف. تُقيّم نماذج اللغات الكبيرة حاليًا بشكل كبير على مهام مثل تصحيح بناء الجملة أو تحويلات الوظائف الصغيرة. لكن في بيئات الإنتاج، يمكن أن يُحقق تحسين الأداء عبر المستودعات فوائدًا أكبر على مستوى النظام بأكمله. وقد صُمّم SWE-Perf خصيصًا لقياس قدرات نماذج اللغات الكبيرة في مثل هذه الإعدادات.
بناء مجموعة البيانات
بُنيت مجموعة بيانات SWE-Perf من أكثر من 100,000 طلب سحب (Pull Request) عبر مستودعات GitHub عالية المستوى. وتشمل المجموعة النهائية 9 مستودعات، تتضمن:
- 140 حالة مُختارة بعناية تُظهر تحسينات قابلة للقياس وثابتة في الأداء.
- قواعد بيانات كاملة قبل وبعد التحسين.
- وظائف مُستهدفة مُصنفة على أنها (Oracle – مستوى الملف) أو (واقعية – مستوى المستودع).
- اختبارات الوحدة وبيئات Docker لتنفيذ قابل للتكرار وقياس الأداء.
- تصحيحات مُعدّة من قِبل خبراء تُستخدم كمعايير ذهبية.
لضمان الصحة، يجب أن يجتاز كل اختبار وحدة الشروط التالية:
- النجاح قبل وبعد التصحيح.
- إظهار مكاسب زمنية تشغيلية ذات دلالة إحصائية عبر 20 تكرارًا (اختبار Mann-Whitney U، p < 0.1).
يتم قياس الأداء باستخدام الحد الأدنى من مكاسب الأداء (δ)، مع عزل التحسينات الإحصائية المُنسوبة إلى التصحيح مع تصفية الضوضاء.
إعدادات المعايير: Oracle مقابل الواقعية
- إعداد Oracle: يستلم النموذج فقط الوظائف المُستهدفة والملفات المُقابلة. يختبر هذا الإعداد مهارات التحسين المُحلي.
- الإعداد الواقعي: يُعطى النموذج مستودعًا كاملاً ويجب عليه تحديد وتُحسين مسارات الأداء الحرجة بشكل مستقل. هذا هو النموذج الأقرب لكيفية عمل المهندسين البشر.
مقاييس التقييم
يُعرّف SWE-Perf إطار عمل تقييم بثلاثة مستويات، مع الإبلاغ عن كل مقياس بشكل مستقل:
- التطبيق (Apply): هل يمكن تطبيق التصحيح المُولّد من قِبل النموذج بشكل نظيف؟
- الدقة (Correctness): هل يحافظ التصحيح على السلامة الوظيفية (نجاح جميع اختبارات الوحدة)؟
- الأداء (Performance): هل يُحقق التصحيح تحسينًا زمنيًا قابلاً للقياس؟
لا يتم تجميع المقاييس في درجة واحدة، مما يسمح بتقييم أكثر دقة للمفاضلات بين الدقة النحوية ومكاسب الأداء.
النتائج التجريبية
يُقيّم المعيار العديد من نماذج اللغات الكبيرة الرائدة في كل من الإعدادين (Oracle) و (الواقعي):
| النموذج | الإعداد | الأداء (%) |
|---|---|---|
| Claude-4-opus | Oracle | 1.28 |
| GPT-4o | Oracle | 0.60 |
| Gemini-2.5-Pro | Oracle | 1.48 |
| Claude-3.7 (Agentless) | واقعي | 0.41 |
| Claude-3.7 (OpenHands) | واقعي | 2.26 |
| الخبير (التصحيح البشري) | – | 10.85 |
من الجدير بالذكر أن أفضل تكوينات نماذج اللغات الكبيرة لا تزال تقل بكثير عن أداء الإنسان. تتفوق طريقة OpenHands القائمة على الوكيل، والمبنية على Claude-3.7-sonnet، على التكوينات الأخرى في الإعداد الواقعي، لكنها لا تزال متأخرة عن التحسينات المُصممة من قِبل الخبراء.
الملاحظات الرئيسية
- تُعدّ الأطر القائمة على الوكيل مثل OpenHands أكثر ملاءمة للتحسينات المُعقدة متعددة الخطوات، حيث تتفوق على مطالبات النموذج المباشرة والنهج القائمة على خطوط الأنابيب مثل Agentless.
- يتدهور الأداء مع زيادة عدد الوظائف المُستهدفة – تُعاني نماذج اللغات الكبيرة من نطاقات التحسين الأوسع.
- تُظهر نماذج اللغات الكبيرة قابلية للتطوير محدودة في سيناريوهات وقت التشغيل الطويل، حيث تستمر الأنظمة الخبيرة في إظهار مكاسب الأداء.
| - يُظهر تحليل التصحيح أن نماذج اللغات الكبيرة تركز أكثر على الهياكل البرمجية منخفضة المستوى (مثل الاستيرادات وإعداد البيئة)، بينما يستهدف الخبراء التجريدات الدلالية عالية المستوى لتحسين الأداء.
الخلاصة
يمثل SWE-Perf خطوة محورية نحو قياس وتحسين قدرات نماذج اللغات الكبيرة في تحسين أداء البرمجيات في سير عمل هندسة البرمجيات الواقعية. يكشف عن فجوة كبيرة في القدرات بين النماذج الحالية والخبراء البشر، مما يُوفر أساسًا قويًا للبحوث المستقبلية في تحسين الأداء على مستوى المستودع. مع تطور نماذج اللغات الكبيرة، يمكن أن يُساعد SWE-Perf في توجيهها نحو تحسينات برمجية عملية جاهزة للإنتاج على نطاق واسع.







اترك تعليقاً