← Últimos artículos
💻 computer science

What Makes a Programming Problem Hard for a Language Model? An Empirical Study of Item Difficulty Across Code LLMs on Two Benchmarks

Este artículo presenta un estudio empírico que demuestra que la dificultad de los problemas en los benchmarks de generación de código es una métrica estable y transferible impulsada por características de la especificación (como ejemplos y longitud del prompt) en HumanEval y por la complejidad de la solución en MBPP, ofreciendo perspectivas críticas para mejorar la evaluación, la calificación automática y el diseño de herramientas educativas a medida que las puntuaciones agregadas de los modelos se saturan.

Autores originales: TANZIM ISLAM KHAN

Publicado 2026-07-13
📖 6 min de lectura🧠 Análisis profundo

Autores originales: TANZIM ISLAM KHAN

Artículo original bajo licencia CC BY 4.0 (https://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 mágica de acertijos gigantesca y que has invitado a todo un zoológico de diferentes "solucionadores" de IA para intentar descifrarlos. Algunos solucionadores son pequeños hámsteres con cerebros grandes (modelos pequeños), y otros son elefantes gigantes y superinteligentes (como GPT-4). Usualmente, cuando comprobamos qué tan inteligentes son estas IA, simplemente les damos una puntuación única, como una nota final en la escuela. Pero este artículo argumenta que una nota única es aburrida y engañosa. Es como decir que un examen de matemáticas es "difícil" solo porque sacaste una C, sin preguntar: ¿Cuáles fueron las preguntas complicadas? ¿Fueron los problemas de palabras largas, o los que no tenían ejemplos?

El autor, Tanzim Islam Khan, decidió dejar de mirar la nota final y empezar a mirar los acertijos mismos. Tomó dos conjuntos famosos de acertijos de programación (llamados HumanEval y MBPP) y los pasó por un experimento masivo. Tomó las respuestas de 31 modelos de IA diferentes (que van desde modelos diminutos de 1 billón de parámetros hasta el gigante GPT-4) y volvió a ejecutar cada una de las respuestas en un entorno de pruebas (sandbox) seguro y aislado para ver si realmente funcionaba. ¡Eso son 13,400 ejecuciones!

El Gran Descubrimiento: ¿Qué hace que un acertijo sea difícil?

El artículo encontró algo sorprendente que cambia nuestra forma de pensar sobre la "dificultad".

En el conjunto HumanEval (los acertijos con descripciones largas y muchos ejemplos de respuestas), la dificultad no dependía de qué tan complicado fuera el código de la solución. Dependía enteramente de cómo estaba escrito el acertijo.

  • La Pista Mágica: Si el acertijo incluía ejemplos resueltos (como mostrarle a la IA: "Aquí está la entrada A, aquí está la salida B"), la IA lo resolvía fácilmente. Cuantos más ejemplos, más fácil era.
  • La Trampa: Si el acertijo era largo y palabrero, o si carecía de esos ejemplos útiles, la IA tenía dificultades, incluso si el código necesario para resolverlo era simple.
  • La Prueba: Los autores construyeron una máquina de predicción. Cuando les alimentaron solo con el texto del acertijo (el prompt), podía predecir qué tan difícil era el acertijo con un R2R^2 de 0.45 mediante validación cruzada, lo cual coincidía con el rendimiento del modelo completo. Pero cuando les alimentaron solo con la complejidad del código de la solución (como contar bucles o variables), apenas sabía nada (R2R^2 de 0.11).

El Giro: El Otro Libro de Acertijos

Luego miraron el conjunto MBPP. Estos acertijos son diferentes; son súper cortos, como susurros de una sola frase, y no tienen ejemplos en absoluto.

  • ¡Aquí, las reglas se invirtieron! Como cada acertijo se veía igual (corto y vago), el texto no le decía a la IA qué hacer. En su lugar, la dificultad dependía de qué tan difícil era la solución realmente.
  • Si el código requería una lógica compleja, la IA fallaba. Si el código era simple, la IA tenía éxito.
  • La Lección: Un problema es difícil para una IA basándose en la parte de las instrucciones que es más variable. Si las instrucciones varían mucho (como en HumanEval), las instrucciones mandan. Si las instrucciones son todas iguales (como en MBPP), la complejidad de la respuesta manda.

Lo que el Artículo Clarifica

El artículo argumenta explícitamente en contra de la idea de que "un código más difícil siempre equivale a un problema más difícil".

  • Midieron la complejidad de las soluciones de referencia (usando cosas como la "complejidad ciclomática" y el "volumen de Halstead") y encontraron que en HumanEval, estos números eran predictores mucho más débiles de la dificultad que las características del prompt. Una solución compleja no era necesariamente más difícil de generar si las instrucciones eran claras y estaban llenas de ejemplos.
  • También descartaron la idea de que la dificultad sea solo un golpe de suerte de qué modelos de IA se están probando. Demostraron que la dificultad es una propiedad estable del problema en sí mismo. Ya sea que pruebes a una IA del tamaño de un hámster o a una del tamaño de un elefante, los mismos acertijos siguen siendo los más difíciles y los más fáciles. Incluso comprobaron esto eliminando un modelo a la vez, y el ranking no cambió (correlación ρ0.99\rho \ge 0.99).

¿Qué tan seguros estamos?

Los autores están muy seguros, pero son cuidadosos con sus palabras.

  • Midieron esto directamente ejecutando el código 13,400 veces en un sandbox.
  • Demostraron la estabilidad probándolo contra una versión "fortalecida" de las pruebas (que tienen 80 veces más verificaciones para HumanEval y 35 veces más para MBPP). Incluso con estas pruebas más duras, el ranking de problemas difíciles vs. fáciles se mantuvo casi igual (correlación ρ=0.88\rho = 0.88).
  • Simularon (o mejor dicho, volvieron a ejecutar) los resultados con diferentes configuraciones (como cambiar la "temperatura" para hacer a la IA más aleatoria) y encontraron que el ranking de dificultad se mantuvo constante (ρ=0.87\rho = 0.87).
  • Sugirieron que a medida que las IA se vuelvan más inteligentes y comiencen a resolver casi todo en estas pruebas antiguas (saturación), mirar qué problemas específicos siguen siendo difíciles se volverá aún más importante.

El Contexto Futuro

El artículo también echa un vistazo al "futuro" (según la línea de tiempo del artículo de junio de 2026). Observa que las IA más nuevas y superpotentes (como GPT-5.x y Claude Opus 4.8) básicamente han dejado de usar estos viejos acertijos porque son demasiado fáciles para ellas ahora. La frontera se ha movido hacia tareas de codificación del mundo real mucho más difíciles. Pero la lección sigue siendo la misma: a medida que los problemas fáciles desaparecen, entender por qué los que quedan difíciles lo son, se convierte en la clave para construir mejores herramientas.

En Resumen

Si quieres saber si un problema de codificación es difícil para una IA, no mires solo el código que necesita escribir. ¡Mira las instrucciones!

  • ¿Instrucciones ricas con ejemplos? La IA pasará de largo sin esfuerzo, sin importar qué tan complejo sea el código.
  • ¿Instrucciones vagas o sin ejemplos? La IA tendrá dificultades, incluso si el código es simple.
  • ¿Instrucciones cortas, de una sola frase? Entonces la complejidad del código en sí es lo que lo hace difícil.

El artículo nos da un mapa para predecir estas dificultades sin siquiera necesidad de ejecutar la IA, simplemente leyendo el enunciado del problema. Es una herramienta para que los maestros construyan mejores ejercicios y para que los ingenieros construyan mejores benchmarks, asegurando que no solo estamos probando si una IA puede adivinar la respuesta, sino si realmente puede entender el acertijo.

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