Home Ciencia y Tecnología El lado oscuro de la IA: confiabilidad, seguridad y seguridad en la...

El lado oscuro de la IA: confiabilidad, seguridad y seguridad en la generación de códigos

47
0

Resumen y 1 Introducción

2. Conceptualizaciones previas de asistencia inteligente para programadores

3. Una breve descripción de los modelos de idiomas grandes para la generación de código

4. Herramientas de programación comercial que utilizan modelos de idiomas grandes

5. Implicaciones de fiabilidad, seguridad e seguridad de los modelos de IA generadores de código

6. Usabilidad y estudios de diseño de programación asistida por AI-AI

7. Informes de experiencia y 7.1. Escribir indicaciones efectivas es difícil

7.2. La actividad de la programación cambia hacia la verificación y la depuración desconocida

7.3. Estas herramientas son útiles para la boilerplate y la reutilización de códigos

8. La insuficiencia de las metáforas existentes para la programación asistida por AI-AI

8.1. Asistencia de IA como búsqueda

8.2. Asistencia de IA como compilación

8.3. Ayuda de IA como programación de pares

8.4. Una forma distinta de programación

9. Problemas con la aplicación a la programación del usuario remaining

9.1. Problema 1: Especificación de intención, descomposición del problema y pensamiento computacional

9.2. Problema 2: corrección del código, calidad y (sobre) confianza

9.3. Problema 3: Comprensión y mantenimiento del código

9.4. Problema 4: Consecuencias de la automatización en la programación del usuario remaining

9.5. Problema 5: Sin código y el dilema de la respuesta directa

10. Conclusión

A. Fuentes de informes de experiencia

Referencias

5. Implicaciones de fiabilidad, seguridad e seguridad de los modelos de IA generadores de código

Los modelos de IA que generan código presentan desafíos significativos a los problemas relacionados con la confiabilidad, la seguridad y la seguridad. Dado que la salida del modelo puede ser un artefacto de software program complejo, determinar si la salida es “correcta” necesita una evaluación mucho más matizada que las simples tareas de clasificación. Los humanos tienen problemas para evaluar la calidad del software program, y las prácticas como la revisión del código, la aplicación de técnicas de análisis estáticos y dinámicos, and many others., han demostrado ser necesarios para garantizar la buena calidad del código escrito por los humanos. Métodos actuales para evaluar la calidad del código generado por IA, como se incorporan en puntos de referencia como Humaneval (Chen, Tworek, Jun, Yuan, De Oliveira Pinto, et al., 2021), MBPP (Austin et al., 2021) y CodeContests (Y. Li et al., 2022B), determinan la corrección funcional de un conjunto de funciones enteras de un conjunto. Dichos enfoques de evaluación no consideran problemas de legibilidad, integridad o la presencia de posibles errores que los desarrolladores de software program luchan constantemente por superar.

El trabajo previo (Chen, Tworek, Jun, Yuan, De Oliveira Pinto, et al., 2021) explora numerosas implicaciones de los modelos de IA que generan código, incluidos los problemas de excesiva dependencia, desalineación (el desajuste entre lo que el usuario solicita el usuario y lo que realmente quiere el usuario), sesgo, impacto económico e implicaciones de seguridad. Si bien estos temas son extensos e importantes, debido a las limitaciones de espacio, solo los mencionamos brevemente aquí y señalamos un trabajo relacionado adicional cuando sea posible. La excesiva dependencia ocurre cuando los individuos hacen suposiciones optimistas sobre la corrección de la salida de un modelo de IA, lo que lleva a daños. Para los modelos de generación de código, los usuarios pueden asumir que el código es correcto, no tiene vulnerabilidades de seguridad, and many others. y esos supuestos pueden conducir a que se escriban e implementen un código inseguro de menor calidad o inseguro. Las implementaciones existentes de modelos AI para código, como el copilot de GitHub (Ziegler, 2021), tienen documentación que enfatiza la necesidad de revisar, probar y probar cuidadosamente el código tal como un desarrollador examinaría el código de cualquier fuente externa. Queda por ver si los problemas de exceso de relación relacionados con la generación de código de IA darán como resultado nuevos desafíos de calidad de software program.

Dado que la IA que genera código está capacitada en grandes repositorios públicos, existe la posibilidad de que los datos de capacitación de baja calidad influyan en los modelos para sugerir un código o código de baja calidad que contenga vulnerabilidades de seguridad. Un estudio temprano del copiloto de GitHub (Pearce et al., 2021) examina si las sugerencias de código pueden contener vulnerabilidades de seguridad conocidas en una variedad de escenarios y encuentra casos en los que se genera código inseguro. Más allá de la detección cuidadosa de un nuevo código utilizando herramientas estáticas y dinámicas existentes que detectan vulnerabilidades de seguridad en código generado por humanos, también hay posibles mitigaciones que pueden reducir la probabilidad de que el modelo haga tales sugerencias. Estos incluyen mejorar la calidad normal de los datos de capacitación eliminando repositorios de baja calidad y ajustar el modelo de gran lenguaje específicamente para reducir la salida de patrones inseguros conocidos.


fuente