Beyond Pass Rate: A Multilingual, Execution-Grounded Evaluation of Open Code LLMs
Este artículo presenta una evaluación a gran escala, multilingüe y basada en la ejecución de nueve modelos de lenguaje de código abierto sobre más de 2.700 problemas de LeetCode, revelando que los modelos actuales están significativamente por detrás del rendimiento humano y que sus clasificaciones y modos de fallo varían sustancialmente según los lenguajes y la dificultad de los problemas, resaltando así las limitaciones de las tablas de clasificación de métrica única.
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 eres el entrenador principal de un equipo de programación y necesitas contratar a un nuevo programador asistente. La forma estándar de entrevistar a los candidatos es darles un único acertijo corto y ver si lo resuelven. Si lo logran, obtienen un "aprobado". Si fallan, obtienen un "reprobado".
Este artículo argumenta que este método de "aprobado/reprobado" es como juzgar a un chef solo por si sabe hervir un huevo. Te dice muy poco sobre si puede cocinar una comida compleja, manejar ingredientes picantes o mantener limpia su cocina.
Aquí está lo que hicieron los investigadores, explicado de forma sencilla:
El Gran Experimento: Unas Olimpiadas de Programación Masivas
En lugar de un solo acertijo, los investigadores organizaron unas masivas "Olimpiadas de Programación".
- Los Concursantes: Invitaron a 9 modelos de IA de código abierto (los "asistentes") a competir.
- La Arena: Utilizaron 2,707 problemas de programación gratuitos de LeetCode (un sitio popular para la práctica de programación).
- Los Lenguajes: No usaron solo un lenguaje (como el inglés); probaron a las IA en 12 lenguajes de programación diferentes (como Python, Java, C++, etc.).
- La Escala: En total, realizaron más de 325,000 intentos. Eso es como hacer que cada concursante intente cada acertijo en cada lenguaje.
Los Hallazgos: Es Complicado
Los investigadores descubrieron que no existe una única "mejor" IA. Quién gana depende enteramente de lo que estés buscando.
1. El "Generalista" vs. El "Especialista"
- Yi-Coder-9B-Chat fue el ejecutor "promedio" más consistente. Si le pedías resolver una mezcla aleatoria de problemas, obtenía el mayor número de ellos correctamente en general.
- Qwen2.5-Coder-14B-Instruct era el especialista en "modo difícil". No ganó la mayor cantidad de problemas fáciles, pero cuando los acertijos se volvían realmente difíciles, esta IA era a la que había que vencer. También logró resolver la mayor variedad de problemas diferentes, incluso si no logró cada uno de ellos a la perfección.
- Gemma-2-27B-IT era el "obsesivo de la limpieza". Aunque no resolvió la mayor cantidad de problemas, el código que escribió era el más limpio y seguía más reglas.
2. La Brecha Humana
Incluso la mejor IA del estudio solo resolvió aproximadamente el 23% de los problemas correctamente en promedio. En comparación, un programador humano resolvería alrededor del 57% de ellos. Esto significa que las IA aún están lejos de ser lo suficientemente fiables como para trabajar solas; son más bien como pasantes junior que necesitan mucha supervisión.
3. El Muro del "Error de Compilación"
Los investigadores observaron por qué fallaban las IA. Encontraron un patrón sorprendente: el 63% de los fallos ocurrieron antes de que el código siquiera se ejecutara.
Piensa en un coche que no arranca porque el bloque del motor está agrietado. No puedes ni siquiera probar si el coche corre rápido o lento porque ni siquiera enciende. La mayoría de las IA fallaban porque escribían código con errores básicos de sintaxis (erroos tipográficos, falta de corchetes) en lugar de errores de lógica. Fallaban al "compilar" (convertirse en un programa funcional) mucho antes de que pudieran ser probadas por su corrección.
4. La Paradoja del "Código Limpio"
Aquí está el giro: la IA que escribió el código más limpio (Gemma) no fue la que resolvió más problemas. Por el contrario, la IA que resolvió más problemas (Qwen) escribió código que era más "desordenado" y tenía más advertencias de una herramienta de limpieza de código.
- Analogía: Imagina a dos estudiantes tomando un examen. El Estudiante A escribe un ensayo muy ordenado y perfectamente formateado, pero se equivoca en la respuesta. El Estudiante B escribe un ensayo desordenado, con tachones y palabras tachadas, pero acierta la respuesta.
- El artículo muestra que el "éxito funcional" (obtener la respuesta correcta) y la "calidad estática" (escribir código limpio) son dos cosas distintas. No puedes asumir que un modelo que escribe código limpio resolverá tu problema, y un modelo que resuelve tu problema podría escribir código desordenado.
5. El Lenguaje Importa
Una IA que es excelente escribiendo en Python podría ser terrible escribiendo en C++. Las clasificaciones cambiaron dependiendo de qué lenguaje se le pidiera a la IA usar. Esto demuestra que no puedes simplemente decir "El Modelo X es el mejor". Tienes que decir "El Modelo X es el mejor para Python, pero el Modelo Y es mejor para Java".
La Conclusión Final
El artículo concluye que debemos dejar de buscar una única "puntuación" para juzgar las IA de programación. Al igual que no juzgarías a un médico solo por su capacidad de dar puntos de sutura (ignorando su capacidad de diagnosticar una enfermedad), no deberíamos juzgar a las IA de programación solo por una "tasa de aprobación".
Para entender verdaderamente estas herramientas, necesitamos observar:
- Qué lenguajes hablan bien.
- Cómo manejan los problemas difíciles.
- Si fallan debido a errores tipográficos o por mala lógica.
- Si el código que escriben es lo suficientemente limpio para ser mantenido.
Los investigadores construyeron una base de datos masiva y detallada de estos resultados para que otros puedan ver exactamente cómo y por qué estos modelos tienen éxito o fracasan, en lugar de ver simplemente un número en una tabla de clasificación.
¿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.