Benchmark · coding

Aider Polyglot

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

Aider Polyglot هو معيار لتحرير الشيفرة من أداة البرمجة Aider يختبر مدى جودة تحرير نموذج LLM لشيفرة موجودة عبر العديد من لغات البرمجة. النتيجة هي نسبة المهام التي تُنتج تعديلاتُها شيفرة صحيحة تجتاز اختبارات المهمة.

اقرأ المزيد
مثال
العنصر النموذجي هو تمرين برمجي على نمط Exercism بإحدى عدة لغات (Python أو Rust أو Go أو Java أو JavaScript أو C++)، حيث يجب على النموذج تحرير ملفات المصدر المقدَّمة لتنفيذ الدالة المطلوبة كي تجتاز اختباراتها.
طريقة التقييم
المقياس هو نسبة المهام المحلولة: لا تُحتسب المهمة إلا عندما تجتاز الشيفرة المحرَّرة جميع اختباراتها الآلية. كما يتتبع Aider عدد المرات التي تعود فيها التعديلات بالتنسيق الصحيح القابل للتطبيق.
التحقق
تُتحقَّق النتائج آليًا: تُشغَّل الملفات المحرَّرة على مجموعة اختبارات الوحدة لكل تمرين، ولا تنجح المهمة إلا إذا اجتازت جميع الاختبارات — دون تصويت بشري أو مقارنة بالتطابق التام.
لماذا يهم
إنه يحاكي سير عمل المطوّر الحقيقي — تحرير ملفات موجودة عبر العديد من اللغات بدلاً من كتابة مقاطع من الصفر — لذا فهو مؤشر عملي على مدى فائدة النموذج كمساعد برمجي.
مثال محلول
يختار Aider Polyglot 225 من أصعب تمارين البرمجة في Exercism موزّعة على C++ و Go و Java و JavaScript و Python و Rust؛ يُعطى النموذج التعليمات وملفًا هيكليًا (stub)، وعليه أن يعيد تعديلًا (بصيغة كتلة SEARCH/REPLACE الخاصة بـ aider) يجعل اختبارات الوحدة المخفية تنجح، مع محاولة إعادة تلقائية واحدة إذا فشلت المحاولة الأولى. يطلب عنصر تمثيلي بلغة Python باسم «Acronym» تحويل عبارة إلى اختصارها بأخذ الحرف الأول من كل كلمة بحرف كبير، مع معاملة المسافات والشرطات كفواصل وتجاهل بقية علامات الترقيم: بالنظر إلى `acronym.py` الذي يحتوي على `def abbreviate(text): pass`، اجعل اختبارات مثل `abbreviate("Portable Network Graphics") == "PNG"` و `abbreviate("Ruby on Rails") == "ROR"` تنجح. يستبدل الحل الصحيح الهيكل بكتلة SEARCH/REPLACE: ``` acronym.py <<<<<<< SEARCH def abbreviate(text): pass ======= import re def abbreviate(text): words = re.split(r"[^A-Za-z']+", text) return "".join(word[0].upper() for word in words if word) >>>>>>> REPLACE ``` الاستدلال: نقسّم النص عند أي سلسلة من الرموز غير الحرفية بحيث تفصل المسافات والشرطات بين الكلمات، ونتخلص من الأجزاء الفارغة، ثم نصل الحرف الأول بحرف كبير من كل كلمة متبقية — فينتج «ROR» من «Ruby on Rails». لا يُحتسب العنصر محلولًا إلا عندما تنجح كل اختبارات الوحدة، ويُبلّغ المعيار عن النسبة المئوية من التمارين الـ 225 التي حُلّت بهذه الطريقة.

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