Errores más rápidos que la velocidad del pensamiento

https://mempko.wordpress.com/2021/06/30/bugs-faster-than-the-speed-of-thought/

Tuve acceso al GPT-3 de OpenAI el año pasado y una de las primeras cosas que hice fue solicitarle una estructura de interfaz en C++ y hacer que escribiera la implementación. En general me sorprendieron los resultados. Algunas de las terminaciones eran incluso código que era claramente de proyectos de Github con enlaces válidos de Github. Mi pensamiento fue "Vaya, esto sería un autocompletado impresionante". Hoy, Github acaba de lanzar Copilot, que es una función de autocompletar impulsada por GPT-3. Es muy impresionante.



Cualquiera que haya creado un sistema de IA de producción sabrá que sólo el 20% del trabajo consiste en crear los modelos, el andamiaje alrededor es el 80% restante. Estoy seguro de que ha costado mucho trabajo pasar de utilizar el campo de juego de la GPT-3 a algo bien integrado en un IDE como Copilot.


Estar bien integrado es la clave del éxito de Copilot y va a ser utilizado por cientos de miles de programadores, si no un millón, muy rápidamente. Eso es precisamente lo que lo hace tan peligroso.


En Code Complete, Steve McConnell escribió extensamente sobre los defectos en los sistemas de producción. La tasa media de defectos de la industria es de unos 15 a 50 bugs por cada 1000 líneas de código. Algunas técnicas utilizadas por la NASA pueden conseguir que el recuento de errores sea casi nulo. El software de código abierto probablemente tiene MÁS errores por cada 1000 líneas de código porque la mayoría de los proyectos de código abierto tienen un desarrollador y no tienen ojos.


El copiloto no es mágico y, por término medio, funcionará peor que un programador humano. Si se entrena en el gigantesco corpus de 100 millones de proyectos de Github, seguramente tendrá más de 50 errores por cada 1000 líneas de código. Esto es más rápido que copiar y pegar fragmentos de código porque Copilot autocompletará el código que probablemente compilará y requerirá menos corrección humana. Todos los programadores entienden por qué copiar y pegar código es malo. Es probable que introduzca errores. Con Copilot, los errores se transmitirán más rápido que la velocidad del pensamiento.


¿Cuáles pueden ser las consecuencias de que el software con errores se escriba a un ritmo vertiginoso? El accidente mortal del Boeing 737 MAX8 de Ethiopian Airlines en 2019 fue el resultado de una IA que salió mal. Tomaron un sistema de seguridad que se suponía que solo debía participar en situaciones críticas y lo expandieron a situaciones no críticas. Los sistemas de caja negra matan. Imagina esto por un segundo, construir sistemas de IA es el futuro del software. Ya no escribirás algoritmos, sino el andamiaje de los sistemas de aprendizaje. Ahora imagina que tu andamiaje está escrito en su mayoría por Copilot. Los errores se propagarán de nuevas maneras, a través de sistemas que construyen sistemas.


Construir software es construir un pequeño mundo. Se trata de significado, y sabemos que GPT-3 no entiende de significado. Tampoco entenderá tu problema. Cuando los programadores se acostumbren a autocompletar el código que se compila, ¿hasta qué punto van a profundizar en él? ¿Lo revisarán cuidadosamente? Construir la interacción hombre-máquina es difícil y no quieres que los humanos escriban software dormidos al volante.

Comentarios

Popular

Herramientas de Evaluación de Sistemas Algorítmicos

Sistemas multiagentes: Desafíos técnicos y éticos del funcionamiento en un grupo mixto

Controversias éticas en torno a la privacidad, la confidencialidad y el anonimato en investigación social