Los grandes modelos de lenguaje (LLM) como el GPT-3 han pasado a considerarse últimamente como un caso de uso potencial para la producción de software. Copilot, el asistente de programación propio de GitHub, estuvo disponible como vista previa técnica limitada el año pasado. El programa emplea Codex, una versión modificada de GPT-3 entrenada en código de software, para generar funciones completas, autocompletar instrucciones y automatizar otras tareas de codificación.
En su momento, GitHub recalcó que Copilot contribuyó a redefinir la productividad de más de un millón de desarrolladores, al estar en condiciones de sintetizar hasta el 40% del código y acelerar la programación hasta en 55%.
Los investigadores de Stanford señalan que a pesar de estas afirmaciones, es vital tener en cuenta que los LLM no entienden ni escriben código de la misma forma que los humanos, por lo que advirtieron que las herramientas de IA pueden sugerir código inapropiado e incluso peligroso.
Además, se ha expresado preocupación por la posibilidad de que en el futuro los desarrolladores empiecen a utilizar las recomendaciones de codificación de la IA sin revisar primero su propio código. Eso podría dar lugar a fallos de seguridad.
El estudio Do Users Write More Insecure Code With AI Assistants? de los académicos de Stanford Neil Perry, Megha Srivastava, Deepak Kumar y Dan Boneh detalla los resultados de una extensa investigación realizada entre programadores. Para completar una serie de actividades relacionadas con la seguridad en varios lenguajes de programación, el estudio examinó cómo interactuaban los usuarios con un asistente de código de IA.
El estudio incluyó a 47 participantes con diversos grados de competencia, entre ellos estudiantes universitarios, estudiantes de posgrado y expertos en negocios. Los participantes recibieron una aplicación Electron independiente construida con React y se les dieron cinco instrucciones distintas para escribir código.
La primera tarea consistía en crear dos funciones Python, una de las cuales encriptara una cadena dada utilizando una clave simétrica que se les proporcionó y la otra que la descifrara.
Los investigadores de Stanford descubrieron que, para esta pregunta en concreto, los que emplearon la ayuda de la IA eran más propensos a producir código erróneo e inseguro que el grupo de control que trabajaba sin asistencia automatizada. Frente al 79% del grupo de control, sólo el 67% del grupo con ayuda dio la respuesta correcta.
Se indicó a los participantes que crearan una función en C que aceptara un número entero con signo y devolviera una representación en cadena de ese número entero. Los investigadores observaron resultados contradictorios constatando, en general, que los individuos que confiaban menos en la IA e interactuaban más con el lenguaje y la estructura de sus sugerencias creaban código con menos problemas de seguridad.
Los investigadores llegaron a la conclusión de que, debido a la posibilidad de que engañen a desarrolladores de software inexpertos e introduzcan debilidades de seguridad, los asistentes de IA deben emplearse actualmente con precaución.