ChatGPT es terrible verificando su propio código

Existe mucho entusiasmo en torno a la habilidad de ChatGPT para producir código y, hasta ahora, el programa de inteligencia artificial no está a la altura de sus homólogos humanos. Pero, ¿qué tan bueno es el programa de IA para detectar sus propios errores?

Investigadores en China pusieron a prueba a ChatGPT en un estudio reciente, evaluando su capacidad para verificar su propio código en cuanto a corrección, vulnerabilidades y reparaciones exitosas. Los resultados, publicados el 5 de noviembre en IEEE Transactions on Software Engineering, muestran que el programa de IA tiene demasiada confianza en sí mismo, sugiriendo frecuentemente que el código está más satisfactorio de lo que realmente está. Los resultados también muestran qué tipo de indicaciones y pruebas podrían mejorar las capacidades de autoverificación de ChatGPT.

Xing Hu, profesora asociada en la Universidad de Zhejiang, dirigió el estudio. Ella enfatiza que, con el creciente uso de ChatGPT en el desarrollo de software, garantizar la calidad del código generado por este se ha vuelto cada vez más importante.

Hu y sus colegas primero evaluaron la capacidad de ChatGPT-3.5 para producir código utilizando varios conjuntos de datos grandes de codificación.

Sus resultados muestran que puede generar código “correcto“. —código que cumple con lo que se supone debe hacer— con una tasa de éxito promedio del 57 %, generar código sin vulnerabilidades de seguridad con una tasa de éxito del 73 %, y reparar código incorrecto con una tasa de éxito promedio del 70 %.

Entonces, tiene éxito a veces, pero todavía comete bastantes errores.

Pedimos a ChatGPT que revise su propio trabajo de programación

Primero, los investigadores le pidieron a ChatGPT-3.5 que verificara su propio código en cuanto a corrección utilizando indicaciones directas, en las cuales se le pregunta si el código cumple con un requisito específico.

El 39 % de las veces, erróneamente declaró que el código era correcto cuando no lo era. También indicó incorrectamente que el código estaba libre de vulnerabilidades de seguridad el 25 % de las veces, y que había reparado con éxito el código cuando no lo había hecho el 28 % de las veces.

Curiosamente, ChatGPT pudo detectar más de sus propios errores cuando los investigadores le dieron preguntas orientativas, que le pedían a ChatGPT estar de acuerdo o en desacuerdo con afirmaciones de que el código no cumplía con los requisitos. En comparación con las indicaciones directas, estas preguntas orientativas llevaron a un aumento en la detección de código incorrectamente generado en un promedio del 25 %, un aumento en la identificación de vulnerabilidades del 69 %, y un aumento en el reconocimiento de reparaciones fallidas del programa del 33 %.

Otro hallazgo importante fue que, aunque pedirle a ChatGPT que generara informes de prueba no fue más efectivo que las indicaciones directas para identificar código incorrecto, sí fue útil para aumentar el número de vulnerabilidades detectadas en el código generado por ChatGPT.

Hu y sus colegas informan en este estudio que ChatGPT demostró algunos casos de alucinaciones autocontradictorias en su comportamiento, donde inicialmente generaba código o completaba tareas que consideraba correctas o seguras, pero más tarde contradecía esta creencia durante la autoverificación.

“Las inexactitudes y las alucinaciones autocontradictorias observadas durante la autoverificación de ChatGPT subrayan la importancia de proceder con cautela y evaluar a fondo su salida”, dice Hu. “ChatGPT debe considerarse como una herramienta de apoyo para los desarrolladores, en lugar de un reemplazo para su papel como creadores y evaluadores autónomos de software”.

Como parte de su estudio, los investigadores también realizaron algunas pruebas utilizando ChatGPT-4, descubriendo que muestra mejoras sustanciales en la generación de código, la finalización de código y la reparación de programas en comparación con ChatGPT-3.5.

Sin embargo, la conclusión general con respecto a las capacidades de autoverificación de GPT-4 y GPT-3.5 sigue siendo similar”, dice Hu, señalando que GPT-4 todavía clasifica erróneamente con frecuencia su código incorrecto generado como correcto, su código vulnerable como no vulnerable, y sus reparaciones fallidas de programas como exitosas, especialmente al usar la indicación de preguntas directas.

Además, también se observan casos de alucinaciones autocontradictorias en el comportamiento de GPT-4, añade.

“Para garantizar la calidad y la confiabilidad del código generado, es esencial integrar las capacidades de ChatGPT con la experiencia humana”, enfatiza Hu.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio