Benchmark · coding

RepoCoder

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

يقيّم RepoCoder إكمال الشيفرة على مستوى المستودع: بالنظر إلى موضع في ملف مصدري، على النموذج أن يتنبأ بالشيفرة الناقصة مستعينًا بسياق مأخوذ من المستودع بأكمله. ويُبلغ معياره RepoEval عن Exact Match و Edit Similarity لإكمال السطر واستدعاء API، وعن نسبة نجاح اختبارات الوحدة لأجسام الدوال الكاملة.

اقرأ المزيد
مثال
إكمال سطر مكتوب جزئيًا داخل ملف في المستودع يستدعي دالة أو صنفًا معرّفًا في ملف آخر من المشروع نفسه — على النموذج أن يستخدم سياق المستودع العابر للملفات لإنتاج الإكمال الصحيح.
طريقة التقييم
يُقيَّم إكمال السطر واستدعاء API بمقياسي Exact Match (‏1 إذا طابق التنبؤ الشيفرة المرجعية المخفية تمامًا، وإلا 0) و Edit Similarity (‏1 − مسافة Levenshtein المعيّرة)، ويُحسب المتوسط على كل العينات كنسبة مئوية. أما إكمال جسم الدالة فيُقيَّم بالتنفيذ: يحل الجسم المولَّد محل الأصلي وعليه أن يجتاز اختبارات الوحدة الموجودة في المستودع.
التحقق
بالنسبة لبنود السطر/API، يُقبل التنبؤ لكل عينة بمقارنته بالشيفرة المرجعية المخفية من المستودع المصدري — إما تطابقًا تامًا (EM) أو بتشابه قائم على مسافة التحرير (ES). ولا يُقبل إكمال الدالة إلا إذا نجحت اختبارات الوحدة الخاصة بالمستودع على الجسم المولَّد. وقد اختيرت المستودعات حديثة وعالية الجودة للحد من تسرب بيانات التدريب.
لماذا يهم
تحدث البرمجة الحقيقية داخل قواعد شيفرة كبيرة قائمة، لا في مقتطفات معزولة. يختبر RepoCoder/RepoEval ما إذا كان النموذج قادرًا على استخدام واجهات API والرموز والأعراف الخاصة بالمشروع والمبعثرة عبر ملفات كثيرة — وهو مقياس لمساعدي البرمجة أكثر واقعية من تأليف دالة منفردة.
مثال محلول
المهمة
إكمال على مستوى السطر (RepoEval). في المستودع، يعرّف utils/config.py دالة مساعدة load_config(path)، ويبدأ trainer.py بـ from .utils.config import load_config. اعتمادًا على الشيفرة أدناه إضافةً إلى سياق المستودع العابر للملفات المُستَرجَع، تنبّأ بالسطر التالي الوحيد المخفي داخل __init__: ```python class Trainer: def __init__(self, path): ```
الحل
self.config = load_config(path)
الشرح
صحيح لأن load_config هي الدالة المساعدة الخاصة بالمستودع، المستوردة في أعلى trainer.py؛ ولا يكشفها إلا سياق المستودع العابر للملفات، لذا فإن أي تخمين عام (مثل تضمين قراءة JSON) سيخطئ. يُقيَّم السطر بمقياس Exact Match مقابل المرجع المخفي، ويمنح Edit Similarity درجة جزئية.

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