A veces los cambios más importantes son los que nos pasan inadvertidos. El pasado 5 de mayo, IBM anunció el Proyecto CodeNet con muy poca atención académica o de los medios de comunicación.
CodeNet es una continuación de ImageNet, una enorme base de datos de imágenes junto con sus descripciones; las imágenes son gratuitas para usos no comerciales. ImageNet ahora es esencial para el avance de la tecnología deep learning de la visión artificial (o Computer Vision).
CodeNet es un intento de lograr para la escritura de código de inteligencias artificiales (IA) lo que ImageNet logró con la escritura de visión artificial: hablamos de una base de datos de más de 14 millones de muestras de código, en 50 lenguajes de programación y destinados a resolver 4.000 problemas de codificación. El dataset también contiene numerosos datos adicionales, como la cantidad de memoria necesaria para que el software se ejecute y registre las salidas del código en ejecución.
Acelerando el machine learning
El argumento principal de IBM para defender CodeNet es que está diseñado para actualizar fácil y rápidamente los sistemas que estén programados en código desactualizado, algo que muchos llevaban pidiendo desde el pánico del efecto 2000 hace 20 años, cuando muchos creían que los sistemas heredados e infradocumentados podrían fallar, provocando desastrosas consecuencias.
Ahora bien, como analistas de seguridad, creemos que la implicación más importante de CodeNet y proyectos del estilo es su potencial para bajar las barreras de la programación, así como la posibilidad de programar en Código de Lenguaje Natural (NLC por sus siglas en inglés).
En los últimos años empresas como OpenAI y Google han mejorado enormemente las tecnologías de Procesamiento del Lenguaje Natural (NLP). Estos programas impulsados por aprendizaje machine learning están diseñados para comprender e imitar mejor el lenguaje humano natural y traducir entre diferentes idiomas. El entrenamiento de estos sistemas de aprendizaje automático requiere acceso a un gran conjunto de datos con textos escritos en los lenguajes humanos de nuestra elección. El NLC también lleva todo esto a la codificación.
Crear código es una habilidad que lleva tiempo, más aún si queremos dominarla, y un programador experto tiende a tener que dominar varios lenguajes de programación a la vez. El NLC, por el contrario, aprovecha las tecnologías de NLP y grandes bases de datos al estilo de CodeNet para permitir que cualquiera use el inglés (o, en última instancia, el francés, el chino o cualquier otro idioma natural) para programar. Podría hacer que tareas como diseñar una página web sea tan simple como escribir "crear un fondo rojo con la imagen de un avión, el logotipo de mi empresa en el medio y un botón de contacto debajo" para que esa página wed se cree al instante. Sería el resultado de una traducción automática del lenguaje común llevado al código.
Es evidente que IBM no era la única pensando esto. GPT-3, el modelo de PNL líder en la industria de OpenAI, se ha utilizado para permitir la programación de un sitio web o una app escribiendo un texto simple de aquello que buscas. Al poco tiempo del anuncio de IBM, Microsoft anunció que había comprado los derechos exclusivos de GPT-3.
Desde 2018 Microsoft también es propietario de GitHub, el mayor repositorio de código fuente abierto en Internet. La compañía ha aumentado el potencial de GitHub con GitHub Copilot, un asistente de inteligencia artificial. Cuando el programador ingresa la acción que desea programar, Copilot genera una muestra de código que podría ser lo que está buscando. El programador puede aceptar esa muestra generada por IA, editarla o rechazarla, simplificando drásticamente el proceso de codificación. Copilot es un gran paso hacia la NLC, pero aún no está del todo logrado.
Consecuencias de la programación del lenguaje natural
Aunque la NLC aún no es del todo factible, nos encaminamos hacia un futuro donde la programación sea mucho más accesible para la persona promedio a gran velocidad, y las implicaciones van a ser enormes.
Primero, habrá consecuencias para la investigación y el desarrollo. Se argumenta que cuanto mayor es el número de potenciales innovaciones, mayor es la tasa de innovación. Al eliminar las barreras a la codificación, se expande el potencial de innovación a través de la programación.
Además, disciplinas académicas tan variadas como la física computacional o la sociología estadística dependen cada vez más de programas informáticos personalizados para procesar datos. La disminución de la habilidad requerida para crear estos programas aumentará la capacidad de los investigadores en campos especializados fuera de las ciencias de la computación para implementar tales métodos y hacer nuevos descubrimientos.
Por supuesto, también hay riesgos, y uno de ellos, por irónico que parezca, es que la programación se “desdemocratice”. Hoy en día hay numerosas plataformas para programar. Cada plataforma ofrece distintas características que favorecen a diferentes tipos de programación, pero ninguna ofrece una gran ventaja competitiva. Cualquier nuevo programador podría usar fácilmente una terminal de codificación "básica" y encontrarse en una pequeña desventaja.
Sin embargo, las IAs al nivel requerido para crear la NLC no se puede desarrollar o implementar sin una importante inversión de dinero, y es probable que acabe siendo monopolizada por las principales empresas tech como son Microsoft, Google o IBM. El servicio puede ofrecerse por un precio, o, como la mayoría de los servicios de redes sociales, de forma gratuita, pero con condiciones de uso desfavorables o abusivas para el consumidor.
También hay razones de peso para creer que esas tecnologías acaben dominadas por las grandes plataformas por la forma en la que funciona el machine learning. En teoría programas del tipo Copilot mejoran cuando se les introduce data nuevo: cuanto más se usen, mejores acabarán siendo. Y eso hará en el futuro que sea más difícil que se introduzcan nuevos competidores en el sector, pese a que puedan ofrecer mejores productos finales o incluso más éticos.
Como no hagamos grandes esfuerzos para frenar este proceso, todo apunta a que los conglomerados capitalistas serán los custodios o gatekeepers de la próxima revolución del código.
Autores: David Murakami Wood, Profesor asociado de sociología en la Universidad de Queen, Ontario; David Eliot, estudiante de master en Estudios de Vigilancia en la Universidad de Queen, Ontario.
Este artículo ha sido publicado originalmente en The Conversation. Puedes leer el artículo original aquí.
Fotos: Unsplash.