← Últimos artículos
🤖 AI

Are LLMs Reliable Code Reviewers? Systematic Overcorrection in Requirement Conformance Judgement

Este artículo revela que los grandes modelos de lenguaje (LLM) sufren una sobrecorrección sistemática al juzgar la conformidad del código con requisitos naturales, proponiendo un filtro de verificación guiado por correcciones para mitigar estos errores de fiabilidad.

Autores originales: Haolin Jin, Huaming Chen

Publicado 2026-03-03
📖 5 min de lectura🧠 Análisis profundo

Autores originales: Haolin Jin, Huaming Chen

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 has contratado a un inspector de calidad súper inteligente (una Inteligencia Artificial) para revisar los planos de tus casas (el código de programación). Tu objetivo es que este inspector te diga si la casa cumple con lo que pediste en el contrato (los requisitos) o si tiene defectos.

La idea era maravillosa: en lugar de que tú revises cada ladrillo, le das el plano a la IA y ella te dice: "¡Todo perfecto!" o "¡Aquí hay un error!".

Pero, ¿qué descubrieron los autores de este estudio? Este inspector es demasiado paranoico y, a veces, se inventa problemas que no existen.

Aquí tienes la explicación de la investigación, traducida a un lenguaje sencillo y con analogías:

1. El Problema: "El Inspector Paranoico"

Los investigadores probaron a varios de los mejores "inspectores" (modelos de IA como GPT-4, Claude, Gemini, etc.) con miles de ejemplos de casas (código) que ya sabían que estaban bien construidas.

  • El hallazgo: La IA a menudo rechazaba casas perfectas. Decía: "Esta casa no cumple con el contrato" cuando, en realidad, cumplía todo.
  • La analogía: Es como si un inspector de tráfico te detuviera por ir a 50 km/h en una zona de 60 km/h, diciendo que vas "demasiado lento" o que "podrías haber ido más rápido", inventando reglas que nadie puso en el cartel.
  • El término técnico: A esto lo llaman "Sesgo de sobre-corrección". La IA prefiere decir "esto está mal" mil veces, antes que dejar pasar un solo error.

2. La Trampa: "Cuanto más le pides, peor se pone"

Uno pensaría que si le pides al inspector que sea más detallado, que te explique por qué cree que hay un error y que incluso te dibuje cómo arreglarlo, sería más preciso.

  • La sorpresa: ¡Al contrario! Cuando los investigadores le dijeron a la IA: "Por favor, explica tu decisión y propón una solución", la IA se volvió aún más paranoica.
  • La analogía: Imagina que le dices a un juez: "No solo digas si el acusado es culpable, sino que explícame tu razonamiento y dibuja cómo habría cometido el crimen". El juez, al intentar ser tan detallado, empieza a imaginar escenarios de crimen que nunca ocurrieron y condena a inocentes solo porque su explicación "suena convincente".
  • El resultado: Las instrucciones complejas hicieron que la IA rechazara más código correcto, no menos.

3. ¿Por qué lo hace? (Los "Fantasmas" de la IA)

Los investigadores analizaron las excusas que daba la IA para rechazar el código correcto. Descubrieron que la mayoría de sus errores se debían a tres tipos de "alucinaciones":

  1. Requisitos inventados: La IA añade reglas que nunca estuvieron en el contrato original (ej: "El código debería ser más rápido", aunque nadie pidió velocidad).
  2. Miedo a los extremos: Se preocupa demasiado por situaciones raras que nunca pasarían (ej: "¿Y si el usuario pone un número negativo?").
  3. Errores de lógica imaginarios: Dice que el algoritmo está mal, pero no puede demostrarlo con un ejemplo real.

4. La Solución Propuesta: "La Prueba de Fuego"

Como la IA es muy buena hablando pero mala juzgando sin pruebas, los autores propusieron un truco inteligente llamado "Filtro de Verificación Guiado por la Reparación".

  • Cómo funciona:

    1. Si la IA dice: "Este código está mal" y propone un arreglo (un "fix"), en lugar de confiar en sus palabras, ejecutamos el código.
    2. Corremos la versión original y la versión "arreglada" por la IA en una serie de pruebas reales.
    3. El veredicto:
      • Si la versión original ya pasaba todas las pruebas y la versión "arreglada" sigue pasando (o rompe algo), la IA estaba equivocada. ¡La IA se equivocó!
      • Si la versión original fallaba y la versión "arreglada" pasa, entonces la IA tenía razón.
  • La analogía: Es como si el inspector dijera: "Esta puerta no abre bien, voy a cambiar la cerradura". En lugar de creerle, le dices: "Espera, abre la puerta con la llave original". Si abre, le dices: "Ves, no necesitabas cambiar nada. Tu 'solución' fue innecesaria".

5. ¿Funcionó?

¡Sí! Al usar este filtro de "pruebas reales" en lugar de confiar solo en las palabras de la IA:

  • Redujeron drásticamente los errores de rechazar código bueno (de un 70% de errores a menos del 30% en algunos casos).
  • La IA dejó de ser tan paranoica porque su "arreglo" fue puesto a prueba y, a menudo, falló al intentar arreglar algo que ya estaba bien.

Conclusión en una frase

Las Inteligencias Artificiales actuales son excelentes para escribir código y explicar cosas, pero son muy malas revisando si el código cumple los requisitos si solo se basan en su propia opinión. Necesitamos obligarlas a demostrar sus errores con pruebas reales, no solo con palabras bonitas, para evitar que nos hagan perder el tiempo corrigiendo cosas que ya funcionaban.

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