SWE-Refactor: A Repository-Level Benchmark for Real-World LLM-Based Code Refactoring
Este artículo presenta SWE-Refactor, un benchmark exhaustivo a nivel de repositorio que comprende 1.099 refactorizaciones de Java validadas, diseñado para superar las limitaciones de los conjuntos de datos existentes y evaluar las capacidades de nueve LLM, revelando que los modelos actuales tienen dificultades significativas con tareas de refactorización compuestas y complejas.
Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
Imagina que tienes una biblioteca enorme y antigua llena de libros escritos en un lenguaje muy específico (Java). Los libros funcionan perfectamente, pero las historias son desordenadas: los capítulos son demasiado largos, los personajes tienen nombres confusos y algunas escenas están dispersas en diferentes habitaciones. La refactorización de código es el proceso de limpiar estos libros para que sean más fáciles de leer y mantener, sin cambiar la historia real ni el final.
Durante mucho tiempo, hemos estado enseñando a las computadoras (específicamente, a los Modelos de Lenguaje Extensos o LLM) cómo escribir nuevas historias desde cero. Pero enseñarles a arreglar historias existentes sin romper la trama es mucho más difícil.
Este artículo presenta SWE-Refactor, un nuevo "examen" diseñado para probar qué tan buenas son estas computadoras de IA para limpiar código. Aquí está el desglose en términos sencillos:
1. El Problema: Los exámenes antiguos eran defectuosos
Antes de esto, los investigadores intentaban evaluar a la IA en la limpieza de código, pero las pruebas tenían tres grandes problemas:
- Demasiado simples: Solo pedían a la IA realizar arreglos diminutos de un solo paso (como renombrar una variable), ignorando trabajos complejos que requieren mover capítulos enteros.
- Datos con ruido: A veces, la "respuesta correcta" proporcionada en la prueba no era solo una limpieza; también incluía la corrección de errores o la adición de nuevas funciones. Esto confundía a la IA: "¿Debo limpiar la habitación o también pintar las paredes?".
- Falta de contexto: El código real es como una telaraña; cambiar una línea a menudo afecta a otras diez. Las pruebas antiguas no le daban a la IA suficiente "panorama general" (toda la biblioteca) para entender las conexiones.
2. La Solución: Un "Gimnasio" del mundo real para la IA
Los autores construyeron SWE-Refactor, un campo de entrenamiento y examen masivo y de alta calidad.
- Trabajo humano real: En lugar de inventar ejemplos falsos, buscaron en 18 proyectos de software Java reales y populares. Encontraron 1,099 ocasiones en las que desarrolladores humanos limpiaron el código con éxito.
- Limpieza pura: Utilizaron herramientas especiales para filtrar cualquier cambio que no fuera solo limpieza. Si un desarrollador corregía un error mientras limpiaba, ese ejemplo era descartado. Solo conservaron las limpiezas "puras".
- La biblioteca completa: No le dieron a la IA solo una página; le dieron el libro completo, el mapa de la biblioteca y la lista de quién lee qué, para que la IA entienda el contexto.
- La verificación del "Estándar de Oro": Para asegurarse de que la IA no hiciera trampa, verificaron tres cosas:
- ¿El código todavía compila (las páginas se mantienen unidas)?
- ¿Siguen pasando todas las pruebas (la historia aún tiene sentido)?
- ¿Realmente hizo la IA la tarea de limpieza específica solicitada, o simplemente escribió algo que funcionó?
3. Los Resultados del Examen: La IA es buena en tareas pequeñas, mala en las grandes
Los autores probaron 9 modelos de IA diferentes (incluyendo modelos famosos como GPT-4o y DeepSeek) en este nuevo examen.
- Los generalistas ganan: Los modelos de IA grandes y de propósito general (como GPT-4o) lo hicieron mucho mejor que los modelos de codificación más pequeños y especializados. Parece que entender el "panorama general" es más importante que solo conocer la sintaxis.
- Simple vs. Complejo: La IA fue decente en limpiezas simples de un solo paso (como "Extraer Método", que es como tomar un párrafo de un capítulo largo y convertirlo en un nuevo capítulo corto).
- El desafío compuesto: La IA tuvo dificultades significativas con las refactorizaciones compuestas. Estos son trabajos que requieren múltiples pasos a la vez, como "Toma este párrafo, muévelo a un capítulo diferente y renombra al personaje".
- La analogía: Imagina pedirle a un robot que mueva un sofá pesado. Puede hacerlo. Pero si le pides que "Mueva el sofá, pinte la pared detrás de él y reorganice la alfombra", a menudo olvida un paso o altera el orden.
- El dato: Incluso un agente de IA muy avanzado (OpenAI Codex) tuvo éxito solo el 39% de las veces en estas tareas complejas de múltiples pasos.
4. Cómo ayudar a la IA a tener éxito
El artículo también probó si darle más ayuda a la IA funcionaría:
- Recuperación (RAG): Darle a la IA ejemplos de limpiezas similares ayudó un poco.
- Flujo de trabajo Multi-Agente (El enfoque de equipo): Este fue el ganador. En lugar de un solo modelo de IA haciendo el trabajo, configuraron una "IA Desarrolladora" para escribir el código y una "IA Revisora" para criticarlo y pedir cambios. Este enfoque de "equipo" resolvió la mayoría de los problemas, demostrando que la IA necesita revisar su propio trabajo para manejar tareas compleas.
Resumen
SWE-Refactor es una prueba nueva, estricta y realista para la refactorización de código por IA. Demuestra que, si bien la IA se está volviendo buena en pequeñas correcciones de código, todavía tiene dificultades con las renovaciones complejas de múltiples pasos que requieren entender cómo se conectan las diferentes partes de un proyecto de software. Los autores han publicado todos sus datos y resultados para que otros investigadores puedan usar este "gimnasio" para entrenar mejores IA para el futuro.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.