Ahora los avances son impresionantes, AlphaCode de DeepMind supera a muchos programadores humanos en complicados retos de software.
El software dirige el mundo. Controla los teléfonos inteligentes, las armas nucleares y los motores de los coches. Pero hay escasez mundial de programadores. ¿No sería estupendo que cualquiera pudiera explicar lo que quiere que haga un programa y que un ordenador lo tradujera en líneas de código?
Un nuevo sistema de inteligencia artificial (IA) llamado AlphaCode está acercando a la humanidad un paso más a esa visión, según un nuevo estudio. Los investigadores afirman que el sistema -del laboratorio de investigación DeepMind, filial de Alphabet (empresa matriz de Google)- podría algún día ayudar a los programadores experimentados, pero probablemente no podrá sustituirlos. Todo esto en el evento Code Submit
Puede leer también | DeepMind de Google : ha anunciado sobre el caso de inteligencia artificial de 'nivel humano'
"Es muy impresionante el rendimiento que son capaces de lograr en algunos problemas bastante difíciles", afirma Armando Solar-Lezama, jefe del grupo de programación asistida por ordenador del Instituto Tecnológico de Massachusetts.
AlphaCode va más allá del anterior abanderado de la escritura de código de IA: Codex, un sistema lanzado en 2021 por el laboratorio de investigación sin ánimo de lucro OpenAI. El laboratorio ya había desarrollado GPT-3, un "gran modelo de lenguaje" experto en imitar e interpretar texto humano tras haber sido entrenado con miles de millones de palabras de libros digitales, artículos de Wikipedia y otras páginas de texto de Internet. OpenAI creó Codex ajustando GPT-3 a más de 100 gigabytes de código de Github, un repositorio de software en línea. El programa puede escribir código cuando se le pide una descripción cotidiana de lo que debe hacer, por ejemplo, contar las vocales de una cadena de texto. Pero su rendimiento es deficiente cuando se le plantean problemas complicados.
Puede leer también | La inteligencia artificial apuesta que Brasil ganará la Copa del Mundo Qatar 2022
Los creadores de AlphaCode se centraron en resolver esos problemas difíciles. Al igual que los investigadores del Codex, empezaron alimentando un gran modelo lingüístico con muchos gigabytes de código de GitHub, para que se familiarizara con la sintaxis y las convenciones de codificación. A continuación, lo entrenaron para traducir descripciones de problemas en código, utilizando miles de problemas recopilados de competiciones de programación. Por ejemplo, un problema puede pedir un programa que determine el número de cadenas binarias (secuencias de ceros y unos) de longitud n que no tienen ningún cero consecutivo.
Cuando se le presenta un problema nuevo, AlphaCode genera soluciones de código candidato (en Python o C++) y filtra las malas. Pero mientras que antes los investigadores utilizaban modelos como Codex para generar decenas o cientos de candidatos, DeepMind hizo que AlphaCode generara hasta más de un millón.
Puede leer también | Meta pidió a los usuarios que probaran su chatbot de Inteligencia Artificial
Para filtrarlos, AlphaCode conserva primero sólo el 1% de los programas que superan los casos de prueba que acompañan a los problemas. Para delimitar aún más el campo, agrupa los que se quedan en función de la similitud de sus resultados con entradas inventadas. A continuación, envía programas de cada grupo, uno a uno, empezando por el grupo más grande, hasta que encuentra uno que ha tenido éxito o llega a 10 envíos (aproximadamente el máximo que envían los humanos en los concursos). El envío desde distintos clusters le permite probar una amplia gama de tácticas de programación. Este es el paso más innovador del proceso de AlphaCode, afirma Kevin Ellis, informático de la Universidad de Cornell que trabaja en codificación de IA.
Tras el entrenamiento, AlphaCode resolvió alrededor del 34% de los problemas asignados, según informa DeepMind esta semana en Science. (En pruebas de referencia similares, Codex logró un porcentaje de éxito de un solo dígito).
Para poner a prueba su destreza, DeepMind inscribió a AlphaCode en concursos de codificación en línea. En concursos con al menos 5.000 participantes, el sistema superó al 45,7% de los programadores. Los investigadores también compararon sus programas con los de su base de datos de entrenamiento y descubrieron que no duplicaba grandes secciones de código o lógica. Generaba algo nuevo, una creatividad que sorprendió a Ellis.
Puede leer también | OpenAI entrenó con éxito un bot de Minecraft utilizando 70.000 horas de vídeos de juego
"Sigue siendo impresionante lo bien que funcionan los métodos de aprendizaje automático cuando se amplían", afirma. Los resultados son "asombrosos", añade Wojciech Zaremba, cofundador de OpenAI y coautor del artículo Codex.
Según Yujia Li, informático de DeepMind y coautor del artículo, la codificación de IA podría tener aplicaciones que van más allá de ganar competiciones. Podría hacer el trabajo sucio del software, liberando a los desarrolladores para trabajar a un nivel más alto o más abstracto, o podría ayudar a los no codificadores a crear programas sencillos.
Puede leer también | Microsoft presenta AI Artist Image Creator para el motor de búsqueda Bing y el navegador Edge
David Choi, otro de los autores del estudio en DeepMind, imagina el funcionamiento del modelo a la inversa: traducir el código en explicaciones de lo que está haciendo, lo que podría beneficiar a los programadores que intentan entender el código de otros. "Se pueden hacer muchas más cosas con modelos que entienden el código en general", afirma.
Por ahora, DeepMind quiere reducir los errores del sistema. Li dice que incluso si AlphaCode genera un programa funcional, a veces comete errores simples, como crear una variable y no usarla.
Hay otros problemas. AlphaCode requiere decenas de miles de millones de billones de operaciones por problema, una potencia de cálculo de la que sólo disponen las mayores empresas tecnológicas. Y los problemas que resolvía de las competiciones de programación en línea eran limitados y autocontenidos. Pero la programación en el mundo real suele requerir la gestión de grandes paquetes de código en múltiples lugares, lo que exige una comprensión más holística del software, afirma Solar-Lezama.
Puede leer también | Un ingeniero de Google afirma que AI Chatbot es consciente
El estudio también señala el riesgo a largo plazo de un software que se mejora a sí mismo de forma recursiva. Algunos expertos afirman que esa mejora automática podría dar lugar a una IA superinteligente que se apoderara del mundo. Aunque ese escenario pueda parecer remoto, los investigadores siguen queriendo que el campo de la codificación de la IA establezca guardarraíles, controles y equilibrios incorporados.
"Incluso si este tipo de tecnología se convierte en un gran éxito, habría que tratarla del mismo modo que se trata a un programador dentro de una organización", afirma Solar-Lezama. "No queremos una organización en la que un solo programador pueda hundirla".