Independientemente de la industria en la que opere su empresa, el software juega un papel cada vez más importante, desde la gestión de inventario hasta la comunicación con el cliente. Como resultado, los desarrolladores tienen más demanda que nunca, lo que está impulsando la automatización de algunas de las tareas más fáciles que consumen su tiempo.
Las herramientas de productividad como Eclipse y Visual Studio sugieren fragmentos de código que los desarrolladores pueden incluir fácilmente en su trabajo mientras escriben. Estas funciones automatizadas se basan en modelos de lenguaje sofisticados que han aprendido a leer y escribir. codigo de computadora después de absorber miles de ejemplos. Pero al igual que otros modelos de aprendizaje profundo entrenados en grandes conjuntos de datos sin instrucciones explícitas, los modelos de lenguaje diseñados para procesar código tienen vulnerabilidades integradas.
“Si no tiene mucho cuidado, un pirata informático puede manipular sutilmente las entradas de estos modelos para predecir cualquier cosa”, dice Shashank Srikant, graduado del Departamento de Ingeniería Eléctrica y Ciencias de la Computación del MIT. “Estamos tratando de investigar y prevenirlo”.
En un nuevo artículo, Srikant y MIT-IBM Watson AI Lab revelan un método automatizado para encontrar debilidades en los modelos de procesamiento de código y reentrenarlos para hacerlos más resistentes a los ataques. Esto es parte de un esfuerzo más amplio del investigador del MIT Una-May O’Reilly y el investigador afiliado de IBM Sijia Liu para utilizar la inteligencia artificial para hacer que las herramientas de desarrollo automatizadas sean más inteligentes y seguras. El equipo presentará sus resultados el próximo mes en una conferencia internacional sobre representación del aprendizaje.
Una máquina capaz de programar por sí misma alguna vez pareció ciencia ficción. Sin embargo, el crecimiento exponencial de la potencia informática, los avances en el procesamiento del lenguaje natural y el exceso de código libre en Internet han hecho posible automatizar al menos algunos aspectos del diseño de software.
Capacitado en GitHub y otros programa– compartiendo páginas web, los modelos de procesamiento de código aprenden a generar programas, al igual que otros modelos de lenguaje aprenden a escribir artículos de noticias o poesía. Esto les permite actuar como un asistente inteligente, anticipándose a lo que desarrolladores de software Hará el siguiente y ofrecerá ayuda. Pueden sugerir programas que se ajusten a la tarea o generar resúmenes de programas para documentar el rendimiento del software. Los modelos de procesamiento de código también se pueden entrenar para encontrar y corregir errores. Sin embargo, a pesar de su potencial para aumentar la productividad y mejorar la calidad del software, representan un riesgo de seguridad que los científicos apenas están comenzando a descubrir.
Srikant y sus colegas descubrieron que los modelos de procesamiento de código se pueden engañar simplemente cambiando el nombre de una variable, insertando una declaración de impresión falsa o introduciendo otras operaciones cosméticas en los programas que el modelo intenta procesar. Estos programas sutilmente alterados funcionan normalmente, pero engañan al modelo y los procesan incorrectamente, lo que resulta en una mala decisión.
Los errores pueden tener graves consecuencias para todo tipo de modelos de procesamiento de código. El modelo de detección de malware se puede engañar para que confunda malware con inofensivo. El modelo de finalización de código puede ser estafado y ofrecer sugerencias incorrectas o maliciosas. En ambos casos, los virus pueden pasar a través de un programador desprevenido. Existe un problema similar con los modelos de visión por computadora: edite algunos píxeles clave en la imagen de entrada, y el modelo puede confundir a los cerdos con los aviones y las tortugas con los rifles, según ha demostrado otra investigación del MIT.
Como los mejores modelos de lenguaje, los modelos de procesamiento de código tienen un gran inconveniente: son expertos en la relación estadística entre palabras y frases, pero solo entienden vagamente su verdadero significado. Por ejemplo, el modelo de lenguaje OpenAI GPT-3 puede escribir prosa que cambia de articulada a sin sentido, pero solo el lector humano puede notar la diferencia.
Los modelos de procesamiento de código no son diferentes. “Si realmente aprenden las características inherentes del programa, será difícil engañarlos”, dice Srikant. – Pero no es así. Son relativamente fáciles de engañar en estos días.
En el documento, los científicos propusieron un marco para el cambio automático de programas para revelar debilidades en los modelos que los procesan. Resuelve un problema de optimización de dos partes; el algoritmo identifica sitios en el programa donde agregar o reemplazar texto hace que el modelo cometa la mayoría de los errores. También identifica qué tipos de cambios plantean el mayor riesgo.
Los investigadores dicen que los marcos revelan cuán frágiles son algunos modelos. Su modelo de suma de texto falló en un tercio de los casos en los que se realizó una única edición del programa; informa que falló en más de la mitad de los casos cuando se realizaron cinco cambios. Por otro lado, muestran que el modelo puede aprender de sus errores y, por lo tanto, potencialmente obtener una comprensión más profunda de la programación.
“Nuestro marco de ataque Modeloy volver a entrenarlo en estos exploits específicos podría ayudar a los modelos de procesamiento de código a comprender mejor la intención del programa “, dice el coautor Liu del estudio.” Esta es una dirección emocionante que espera investigación.
En el fondo, queda una pregunta más importante: ¿de qué están aprendiendo exactamente estas cajas negras de aprendizaje profundo? – ¿Razonan sobre el código como lo hacen los humanos? Si no, ¿cómo podemos crearlo? dice O’Reilly. “Este es el gran desafío al que nos enfrentamos”.
Genere programas de computadora opuestos utilizando apagones optimizados. openreview.net/forum?id=PH5PH9ZO_4
Entregado por
Instituto de Tecnología de Massachusetts
Esta historia se volvió a publicar por cortesía de MIT News (web.mit.edu/newsoffice/), un sitio popular de noticias sobre investigación, innovación y enseñanza del MIT.