← Últimos artículos
💻 computer science

PROBE: Benchmarking Code Generation in Large Language Models

El artículo presenta PROBE, un marco de referencia integral que evalúa la generación de código en Grandes Modelos de Lenguaje a través de la corrección funcional, la proximidad de la solución y la calidad del código, revelando que, si bien los modelos muestran potencial, frecuentemente tienen dificultades con problemas complejos, lenguajes con pocos recursos y errores fundamentales.

Autores originales: Rodrigo Pato Nogueira, Marco Vieira, João R. Campos

Publicado 2026-07-16
📖 4 min de lectura☕ Lectura para el café

Autores originales: Rodrigo Pato Nogueira, Marco Vieira, João R. Campos

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 estás enseñando a un robot a cocinar. No quieres simplemente que el robot siga una receta; quieres que entienda por qué los ingredientes combinan bien, que pruebe el plato y sepa si tiene suficiente sal, y que se asegure de no incendiar la cocina por accidente. Este es el mundo de los Modelos de Lenguaje de Gran Escala (LLM) en la ingeniería de software. Piensa en estos modelos como robots superinteligentes que han leído casi todos los libros de cocina (código) que se han escrito jamás. Pueden mirar una descripción como "haz un sándwich" e instantáneamente escribir las instrucciones (código) para hacerlo. Pero aquí está el truco: el hecho de que un robot pueda escribir instrucciones no significa que el sándwich vaya a saber bien, o que las instrucciones no te digan que uses una motosierra en lugar de un cuchillo. A los científicos les importa profundamente esto porque, a medida que dejamos que estos robots escriban más de nuestro software, necesitamos saber si son realmente fiables o si solo están adivinando y esperando lo mejor.

Entra en escena PROBE, una nueva y superorganizada "prueba de sabor" para estos robots que escriben código. Antes de esto, la mayoría de las pruebas eran un poco como preguntarle a un robot: "¿Hiciste el sándwich?" y solo comprobar si el robot decía "Sí". Si el sándwich estaba quemado o no tenía pan, a la prueba no le importaba mientras el robot afirmara que había terminado. Los investigadores detrás de PROBE se dieron cuenta de que esto no era justo. Construyeron un sistema de evaluación mucho más estricto y colorido que comprueba tres cosas: ¿Realmente funcionó el código? (Corrección Funcional), ¿Qué tan cerca estuvo la receta del robot de una receta humana perfecta? (Proximidad) y ¿Era el código desordenado o elegante? (Calidad del Código).

El equipo sometió a seis robots diferentes —algunos pequeños y de código abierto, otros enormes y propietarios— a la prueba en cinco "lenguajes" diferentes (Python, C++, Java, C y Rust). Probaron tres formas diferentes de hablar con los robots: solo dar una orden, mostrar primero un ejemplo, o dejar que el robot lo intentara, fallara y luego corrigiera sus errores basándose en mensajes de error.

Esto es lo que encontraron, y es una mezcla de progreso emocionante y algunos errores muy divertidos y muy humanos. Primero, los robots más grandes generalmente lo hicieron mejor, pero incluso los más inteligentes no eran perfectos. Resolvieron aproximadamente el 70% de los problemas fáciles, pero tuvieron serias dificultades con los difíciles. Segundo, mostrarle al robot un ejemplo primero (una técnica llamada "Aprendizaje en Contexto") apenas ayudó en absoluto. Era como mostrarle a un chef una foto de un sándwich antes de pedirle que hiciera uno; ya sabía cómo hacerlo, así que la foto no cambió mucho. Sin embargo, dejar que el robot lo intentara, fallara y luego darle el mensaje de error para que lo arreglara (Incorporación de Retroalimentación) fue un cambio radical. Ayudó a los robots a corregir errores simples, como olvidar importar una herramienta, y aumentó su tasa de éxito en un 5% aproximadamente.

Pero la verdadera historia está en los errores. Los robots a menudo fallaban de formas sorprendentemente básicas. Intentaron construir casas con demasiados ladrillos (errores de memoria), olvidaron traer las llaves de la puerta (faltas de importación) o se quedaron atrapados en un bucle intentando contar cada grano de arena en una playa (algoritmos ineficientes). Un robot incluso intentó calcular un número tan grande que causó que el sistema entrara en pánico, tal como una calculadora se rompe cuando divides por cero. Curiosamente, los robots fueron buenos en Python pero terribles en Rust, un lenguaje que es muy estricto con la seguridad, lo que sugiere que no han leído suficientes "libros de cocina de Rust" todavía.

Lo más importante es que los investigadores descubrieron que, incluso cuando lograban que el código "funcionara", el código era a menudo más simple y corto de lo que un humano escribiría. Aunque eso suena bien, a veces significaba que los robots estaban tomando atajos que no se sostendrían en el mundo real. El estudio concluye que, si bien estas herramientas de IA están mejorando, todavía son propensas a cometer errores tontos y evitables. No están listas para quedarse solas en la cocina todavía; necesitan a un chef humano que revise la receta antes de servirla al mundo.

¿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.

Probar Digest →