LLMs aprueban prueba, pero no siempre sirven al código

Fuentes: Many SWE-bench-Passing PRs Would Not Be Merged into Main

Este informe de METR analiza la discrepancia entre los resultados de los modelos de lenguaje grandes (LLMs) en el benchmark SWE-bench Verified y su utilidad real en proyectos de código abierto. SWE-bench Verified es una herramienta para evaluar la capacidad de los LLMs para resolver problemas de programación. Un puntaje del 60% en este benchmark podría sugerir que un modelo resuelve el 60% de los problemas, pero la realidad es más compleja.

El estudio involucró a 4 desarrolladores (maintainers) de tres repositorios de SWE-bench Verified (scikit-learn, Sphinx y pytest) que revisaron 296 pull requests (PRs) generados por IA. Se compararon estos resultados con los de 47 PRs escritos por humanos que fueron efectivamente aceptados (los llamados “golden patches”). El hallazgo principal es que, en promedio, los maintainers rechazaban aproximadamente el 40% de los PRs generados por IA que pasaban el test automático de SWE-bench. Esto significa que el puntaje del benchmark estaba sobreestimando la utilidad real de los modelos en un 24%.

La razón de esta diferencia no es que los modelos sean inherentemente incapaces de producir código correcto, sino que los benchmarks son entornos controlados y simplificados. Los maintainers evalúan el código en función de factores como la calidad, el cumplimiento de las normas del repositorio, la integración con el código existente y la inclusión de pruebas, aspectos que no se evalúan completamente en el benchmark. Los modelos de IA, al no tener la capacidad de iterar y recibir feedback como un desarrollador humano, no pueden corregir estos problemas.

Este estudio no implica que los benchmarks sean inútiles; son una herramienta valiosa para comparar modelos. Sin embargo, advierte que los resultados de los benchmarks deben interpretarse con cautela y no como una medida definitiva de la capacidad de un modelo para contribuir a proyectos reales de código abierto. Es crucial considerar factores como la calidad del código, la adherencia a las normas del proyecto y la capacidad de integración, que no se reflejan completamente en los puntajes de los benchmarks.

En resumen, el informe destaca la importancia de una evaluación más completa de la utilidad de los LLMs en el desarrollo de software, más allá de los resultados de los benchmarks automatizados, y enfatiza la necesidad de feedback humano y un proceso iterativo para mejorar la calidad del código generado por IA.