Benchmark · coding

RepoBench

0 resultados 0 modelos

RepoBench es un benchmark de autocompletado de código a nivel de repositorio para Python y Java que mide si un sistema puede predecir la siguiente línea de código usando tanto el contexto dentro del archivo como el contexto entre archivos de otros ficheros del mismo repositorio. Consta de tres tareas — recuperación (RepoBench-R), completado de la siguiente línea (RepoBench-C) y la tubería de extremo a extremo (RepoBench-P) — evaluadas principalmente con Exact Match y Edit Similarity, y con la precisión de recuperación para la tarea de recuperación.

Leer más
Ejemplo
Dadas las líneas previas de un archivo fuente más fragmentos de código extraídos de otros archivos del mismo repositorio (por ejemplo, un módulo que define una función o clase auxiliar), predecir la única línea de código siguiente — normalmente una línea que llama o hace referencia a algo definido en otro archivo.
Puntuación
Completado (RepoBench-C y -P): la siguiente línea predicha se compara con la línea de referencia mediante Exact Match (porcentaje de líneas exactamente idénticas) y Edit Similarity (puntuación 0–100 = 1 − distancia de edición de Levenshtein normalizada); también se informa CodeBLEU. Recuperación (RepoBench-R): accuracy@k — la fracción de ítems cuyo fragmento entre archivos de referencia está entre los k candidatos mejor recuperados.
Verificación
La calificación es automática y basada en referencia (sin ejecución de código): la línea de salida del modelo se normaliza y se compara como cadena con la verdadera línea siguiente reservada del repositorio original. Con Exact Match un completado cuenta como correcto solo si es idéntico carácter a carácter a la línea de referencia; Edit Similarity otorga crédito parcial; una recuperación se acepta cuando el fragmento de referencia aparece entre los k primeros.
Por qué importa
Los asistentes de código reales deben razonar sobre todo un repositorio, no solo sobre el archivo abierto. RepoBench aísla el modelado del contexto entre archivos — recuperar el contexto correcto y predecir la siguiente línea que depende de él — por lo que se convirtió en un banco de pruebas estándar para modelos de código conscientes del repositorio y de contexto largo.
Ejemplo resuelto
Tarea
Contexto entre archivos (helpers/formatting.py): def to_title(text): return text.strip().title() Contexto dentro del archivo (report.py): from helpers.formatting import to_title def make_heading(raw): Predice la siguiente línea.
Solución
return to_title(raw)
Explicación
La línea siguiente reservada llama a to_title — la función auxiliar definida en el fragmento entre archivos e importada al principio — sobre el argumento de la función, que es exactamente lo que hacía aquí el código original del repositorio; un modelo que ignorara el otro archivo no podría saber que to_title es la llamada correcta. Calificación: Exact Match contra la línea de referencia, con Edit Similarity dando crédito parcial a las coincidencias cercanas.

Aún no hay puntuaciones verificadas para este benchmark.