En el mundo actual de la inteligencia artificial aplicada a la programación, la evaluación precisa y representativa de la eficiencia de los grandes modelos de lenguaje (LLMs) es fundamental. Durante años, muchos benchmarks se han centrado en un solo lenguaje de programación, predominantemente Python, lo que no refleja fielmente la complejidad y diversidad del ecosistema del desarrollo de software global. Frente a esta situación, SWE-Bench Multilingual emerge como una brillante solución que amplía el horizonte de evaluación hacia múltiples lenguajes y dominios de software, permitiendo una valoración más completa y realista de las habilidades de los modelos de lenguaje. SWE-Bench Multilingual forma parte de la familia SWE-Bench, un conjunto de benchmarks que pone a prueba las capacidades de los LLMs en tareas de ingeniería de software, pero, a diferencia de su predecesor centrado en Python, Multilingual incluye 300 tareas específicas derivadas de solicitudes de extracción reales en GitHub. Estas tareas provienen de 42 repositorios distintos que abarcan nueve lenguajes de programación prominentes, entre ellos C, C++, Go, Java, JavaScript, TypeScript, PHP, Ruby y Rust.
La selección está pensada para cubrir una gama amplia de dominios de aplicación, desde frameworks de desarrollo web hasta herramientas de procesamiento de datos, utilidades fundamentales y librerías comunes. El propósito principal detrás del desarrollo de SWE-Bench Multilingual es mejorar la representatividad y diversidad en la evaluación de los modelos y agentes inteligentes que asisten en la ingeniería de software. Hasta ahora, frameworks de agentes y benchmarks enfocados en Python han tendido a sobreajustarse, limitando la generalización y el rendimiento en otros lenguajes. Al facilitar una plataforma compatible con las infraestructuras actuales del SWE-Bench y manteniendo un tamaño manejable de 300 tareas, se busca acelerar la adopción y facilitar ejecuciones rápidas sin sacrificar calidad ni relevancia. La construcción del benchmark siguió un proceso riguroso que asegura la calidad y pertinencia de cada tarea.
Se partió de un análisis en profundidad de los repositorios más populares en GitHub para cada lenguaje seleccionado, filtrando cuidadosamente aquellos que tienen estructuras y herramientas de pruebas automatizadas adecuadas para asegurar la validez de los resultados. Tras esa etapa, se recopilaron y seleccionaron pares problema-solución basados en issues y pull requests reales, asegurando que las tareas sean representativas del trabajo cotidiano de los desarrolladores y que las pruebas asociadas sean precisas para evaluar corrección y estabilidad del software luego de aplicar la solución. Un aspecto técnico destacado es la manera en que SWE-Bench Multilingual maneja la configuración de entornos para las pruebas. A diferencia del SWE-Bench originario, que usa capas de imágenes Docker para optimizar la ejecución compartida de dependencias comunes, Multilingual evita la capa intermedia dado que la diversidad de repositorios y dependencias hace que esa estrategia no sea eficiente ni práctica. Se mantiene una imagen base por lenguaje y una por tarea para el testeo, simplificando el mantenimiento en un contexto de alta variedad.
Los resultados divulgados hasta ahora, con evaluaciones realizadas utilizando el sistema SWE-agent junto al modelo Claude 3.7 Sonnet, indican un índice de resolución del 43% en tareas Multilingual, en contraste con un 63% en SWE-Bench Verified enfocado en Python. Esto revela que los modelos actuales están significativamente más avanzados en Python, y todavía enfrentan retos notables en lenguajes como C, C++ o Go. El rendimiento varía considerablemente entre lenguajes. Por ejemplo, Rust registra la tasa más alta de resolución, mientras que C y C++ presentan las más bajas.
A pesar de que la dificultad intrínseca de las tareas puede influir, estimada parcialmente por el número de líneas de código modificadas en la solución ideal, no se observa una correlación estricta que explique la diferencia exclusivamente con esta variable. Lo mismo se aplica a la distribución de las acciones del agente a lo largo de las tareas, que es similar en fracasos y éxitos, sugiriendo que las capacidades del modelo son el factor limitante más relevante y no la estructura del agente. Uno de los puntos fuertes de SWE-Bench Multilingual es que aborda una carencia fundamental en el estudio actual de la inteligencia artificial en programación: la capacidad para manejar múltiples lenguajes y contextos. La mayoría de agentes existentes se diseñan con una visión centrada en Python, utilizando herramientas específicas como análisis de árboles sintácticos abstractos (AST) y otras utilidades que no se traducen fácilmente a otros lenguajes. Esto significa que, aunque su desempeño pueda ser favorable en proyectos basados en Python, su funcionalidad no siempre es aplicable a entornos de desarrollo heterogéneos.
SWE-Bench Multilingual desafía esta limitación y pone en evidencia la necesidad de avanzar hacia agentes verdaderamente multilingües y flexibles. Además, el dataset representa un acercamiento realista a la naturaleza de los problemas de ingeniería, ofreciendo tareas que requieren desde pocas hasta decenas de líneas de modificación, lo que refleja la variedad y complejidad que un desarrollador puede enfrentar en proyectos reales. Aunque la mayoría de las tareas tienden a ser pequeñas para facilitar la evaluación automatizada y rápida, los extremos que incluyen modificaciones más extensas también están presentes para brindar un panorama más completo. Respecto a la evaluación continua y la mejora, el uso del código abierto y la disponibilidad del conjunto de datos y herramientas en plataformas como HuggingFace garantiza que la comunidad pueda contribuir activamente, realizar comparativas con nuevos modelos y optimizar la integración con agentes diversos. La compatibilidad con el repositorio original de SWE-Bench permite que los usuarios puedan ampliar su cobertura sin complicaciones técnicas mayores.
También se subraya la importancia de futuros agentes con capacidades ampliadas, como el seguimiento y comprensión de enlaces externos a sitios online de reproducción de bugs (por ejemplo, StackBlitz), algo que actualmente muchos agentes no pueden manejar pero que es común en los reportes de problemas. El desarrollo de agentes con competencias para interpretar múltiples lenguajes, navegar contextos web y comprender interacciones complejas será un paso decisivo en la evolución de la asistencia automatizada en ingeniería de software. El trabajo en torno a SWE-Bench Multilingual también evidenció el valor de herramientas de inspección y visualización, tanto para la selección manual de problemas como para el análisis de las trayectorias ejecutadas por los agentes en sus intentos de resolución. Estas aplicaciones facilitan la exploración y comprensión en profundidad, contribuyendo a detectar áreas de dificultad, errores comunes y oportunidades de mejora técnica. Analizando el impacto potencial de SWE-Bench Multilingual, es claro que juega un papel crucial en el desarrollo y evaluación de tecnologías de inteligencia artificial que van más allá del dominio único, estimulando una perspectiva global y realista.