Investigadores de DeepMind, el grupo de inteligencia artificial de Google, han logrado desarrollar una herramienta de aprendizaje por refuerzo que puede generar algoritmos altamente optimizados sin necesidad de ser entrenada con ejemplos de código humano. El enfoque utilizado consiste en tratar la programación como un juego.
DeepMind es conocido por su capacidad para enseñar a sus sistemas a jugar juegos, como el ajedrez y el Go, mediante el aprendizaje automático. Esta metodología ha demostrado ser altamente efectiva, permitiendo a los sistemas descubrir enfoques y estrategias que los humanos no han considerado. Sin embargo, trasladar este enfoque al campo de la programación presenta desafíos adicionales.
En el caso de la optimización de algoritmos de programación, DeepMind ha adoptado el mismo enfoque de tratarlo como un juego. Han desarrollado un sistema llamado AlphaDev que utiliza algoritmos de ensamblador x86 para minimizar la latencia del código generado. El sistema se basa en el aprendizaje por refuerzo, lo que le permite desarrollar gradualmente la capacidad de escribir código eficiente y optimizado.
AlphaDev consta de varios componentes, incluyendo una función de representación que evalúa el rendimiento general del código a medida que se desarrolla, un proceso de búsqueda de árbol de Monte Carlo para seleccionar instrucciones de ensamblador y una evaluación del código resultante en términos de latencia y validez. A través del aprendizaje por refuerzo, AlphaDev adquiere conocimiento sobre cómo lograr un estado de juego ganador, es decir, un algoritmo de ordenamiento completo con la menor latencia posible.
Lo destacado de este sistema es que no requiere ejemplos de código humano para su entrenamiento. En cambio, AlphaDev genera sus propios ejemplos de código y los evalúa, conservando información sobre las combinaciones de instrucciones efectivas en el proceso de ordenamiento.
La utilidad de esta herramienta radica en la capacidad de optimizar algoritmos bien comprendidos, como las funciones de ordenamiento, de una manera que los enfoques tradicionales basados en ejemplos de código humano no podrían lograr. Los resultados han sido tan prometedores que el código generado por AlphaDev ha sido incorporado a la biblioteca estándar de C++ de LLVM, lo que significa que ahora se ejecuta miles de millones de veces al día.
Este avance en la generación de algoritmos optimizados tiene el potencial de impulsar el desarrollo de software más eficiente y de alto rendimiento, así como abrir nuevas posibilidades en el campo de la programación al descubrir enfoques innovadores que no habían sido considerados previamente.