Reducing Hallucinations in LLM-Generated Code via Semantic Triangulation
Este artículo presenta la triangulación semántica, un marco teórico que reduce las alucinaciones en el código generado por modelos de lenguaje mediante la transformación de problemas en variantes disociativas para verificar la consistencia entre soluciones independientes, logrando así una mayor precisión en la selección de programas correctos en comparación con métodos existentes.
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
¡Claro que sí! Imagina que los Modelos de Lenguaje Grandes (como los que usan para escribir código) son como genios muy inteligentes pero un poco soñadores. A veces, cuando les pides que escriban un programa, no solo inventan soluciones, sino que a veces "alucinan": crean código que parece perfecto a primera vista, pero que tiene errores ocultos o simplemente no funciona.
El problema es que, si le pides al mismo genio que se revise a sí mismo (o que invente un examen para su propio trabajo), es muy probable que se engañe a sí mismo. Si el genio cometió un error, también inventará un examen que aprueba ese error. Es como pedirle a un ladrón que escriba su propia declaración de inocencia; ¡siempre dirá que es inocente!
Aquí es donde entra la idea brillante de este paper: La Triangulación Semántica.
🕵️♂️ La Analogía del Detective y los Sospechosos
Imagina que eres un detective (el sistema de verificación) y tienes un grupo de sospechosos (los programas generados por la IA). Quieres saber cuál es el inocente (el código correcto).
El método antiguo (Votación Mayoritaria):
Preguntas a todos los sospechosos: "¿Qué hiciste?". Si 10 de ellos dicen la misma mentira (un error común), el detective cree que esa es la verdad. Pero si todos están "coludidos" (la IA comete el mismo error en todos sus intentos), la votación solo confirma la mentira.El método de los "Testigos Parciales" (Especificaciones automáticas):
Pides a la IA que invente un testigo (una especificación formal) para ver si los sospechosos dicen la verdad. Pero como el testigo también lo inventó la misma IA, si el sospechoso miente, el testigo también mintirá para coincidir con él. Es como traer a un testigo que es primo del sospechoso; ¡obviamente van a coincidir en la coartada falsa!La Triangulación Semántica (El nuevo método):
Aquí es donde el detective es realmente listo. En lugar de preguntar a los mismos sospechosos de la misma manera, cambia radicalmente la perspectiva.Imagina que tienes un sospechoso que dice: "Robé el banco usando una escalera".
- Pregunta normal: "¿Cómo subiste?" (Respuesta: "Con la escalera").
- Pregunta de Triangulación (Inversión): En lugar de preguntar cómo subió, le preguntas: "Si te doy una escalera y un banco, ¿qué persona podría haber subido?".
Si el sospechoso es un mentiroso (alucinación), su historia original y su historia invertida probablemente no coincidirán. Se le caerá la máscara porque la IA no tiene una comprensión real de la lógica, solo imita patrones. Si cambia el ángulo de la pregunta, el patrón de mentira se rompe.
Pero, si el sospechoso es inocente (código correcto), su historia se mantendrá coherente sin importar desde qué ángulo la mires. La verdad es robusta; la mentira no.
🔺 ¿Cómo funciona en la práctica?
El equipo de investigadores creó una herramienta llamada just-tri-it que hace tres cosas mágicas para "desenredar" la mentira:
- Inversión del Problema: Si el código original debe convertir una lista de nombres en números, la herramienta le pide a la IA que escriba un código que haga lo contrario: convertir esos números de nuevo en nombres. Si el código original tiene un error, es muy difícil que el código inverso (que requiere una lógica totalmente distinta) tenga el mismo error exacto.
- Enumeración de Respuestas: En lugar de pedir "una solución", le pide a la IA: "Dame todas las soluciones posibles". Luego compara si la solución original está dentro de esa lista completa.
- Descomposición: Si el problema es muy grande, lo rompe en piezas pequeñas y verifica que cada pieza encaje perfectamente con las otras.
🏆 Los Resultados (La prueba de fuego)
Probaron esto con modelos muy avanzados (como GPT-4o y DeepSeek) en problemas de programación difíciles.
- El resultado: La triangulación logró encontrar el código correcto un 24% más a menudo que los métodos anteriores.
- Lo más importante: Funciona incluso cuando la IA tiene muy poca probabilidad de acertar (cuando está "atascada" y genera muchos errores). Los métodos antiguos fallaban aquí, pero la triangulación lograba detectar la verdad entre la niebla.
- El caso de los problemas "inexactos": A veces hay muchas respuestas correctas (por ejemplo, "dame un número par"). Los métodos antiguos se confundían porque no había una única respuesta correcta. La triangulación entendió que, aunque las respuestas sean diferentes, todas deben encajar en la lógica inversa, y así pudo elegir correctamente.
💡 En resumen
Este paper nos dice que para detectar las alucinaciones de la IA, no debemos pedirle que se revise a sí misma con sus propias reglas. En su lugar, debemos cambiar el juego por completo: pedirle que resuelva el problema al revés, o desde otro ángulo.
Si el código es real y correcto, sobrevivirá a cualquier cambio de perspectiva. Si es una alucinación, se romperá como un castillo de naipes cuando sople un viento diferente. Es una forma de usar la lógica para que la IA no pueda engañarse a sí misma.
¿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.