AlphaDev, desarrollado por Google DeepMind, está diseñado para encontrar algoritmos de computadora más eficientes. En una prueba, el sistema de IA descubrió algoritmos de ordenamiento que eran hasta un 70% más eficientes.

Google DeepMind ha desarrollado varios modelos de IA influyentes, incluyendo AlphaZero y MuZero. Estos algoritmos son utilizados por Google para mejorar la gestión de los centros de datos y la compresión de videos. Quizás el más influyente hasta la fecha sea AlphaFold, un algoritmo utilizado por investigadores de todo el mundo para ayudar en la investigación y desarrollo de proteínas.

Ahora, Google DeepMind presenta AlphaDev, un sistema de IA que utiliza el aprendizaje por refuerzo para descubrir nuevos algoritmos de computadora.

AlphaDev mejora algoritmos que se ejecutan billones de veces al día

«La sociedad digital está aumentando la demanda de cómputo y consumo de energía. En las últimas cinco décadas, hemos confiado en las mejoras del hardware para mantenernos al ritmo. Pero a medida que los microchips se acercan a sus límites físicos, es fundamental mejorar el código que se ejecuta en ellos para hacer la computación más potente y sostenible», explica Google DeepMind en su investigación. «Esto es especialmente importante para los algoritmos que componen el código que se ejecuta billones de veces al día».

Con AlphaDev, la empresa ha descubierto un nuevo algoritmo de ordenamiento más rápido que supera a los algoritmos desarrollados por humanos a lo largo de décadas. Estos algoritmos, que son de código abierto, respaldan desde la clasificación de los resultados de búsqueda en línea hasta los mensajes sociales y la computación en computadoras y teléfonos inteligentes.

Los nuevos algoritmos han llevado a mejoras en la biblioteca de ordenación libc++ LLVM, que ahora es hasta un 70% más rápida para secuencias más cortas y aproximadamente un 1,7% más rápida para secuencias con más de 250.000 elementos. AlphaDev también ha descubierto un algoritmo más rápido para la función de hashing, un proceso fundamental para almacenar y recuperar datos. El nuevo algoritmo de hashing mejora la eficiencia de las funciones de hashing en el centro de datos en el rango del 9% al 16% para datos de 30 bytes.

AlphaDev es el AlphaZero para las instrucciones de ensamblador

AlphaDev se basa en AlphaZero, pero en lugar de jugar a Go, Ajedrez o Shogi, AlphaDev juega con las instrucciones de ensamblador de la computadora. Las instrucciones de ensamblador son instrucciones de bajo nivel que la CPU de una computadora puede entender y ejecutar. Para descubrir nuevos algoritmos, el equipo ha convertido la ordenación en un «juego de ensamblador» para un solo jugador. En cada movimiento, AlphaDev observa el algoritmo que ha creado y la información contenida en la CPU. En cada movimiento, el sistema agrega una nueva instrucción al algoritmo.

Según Google DeepMind, el juego de ensamblador es increíblemente difícil porque requiere que AlphaDev pase eficientemente por una enorme cantidad de combinaciones posibles de instrucciones para encontrar un algoritmo adecuado.

A medida que AlphaDev construye el algoritmo, verifica si este es correcto comparando la salida del algoritmo con los resultados esperados. En el caso de los algoritmos de ordenación, esto implica proporcionar números desordenados como entrada y obtener números ordenados correctamente como salida. AlphaDev recibe recompensas durante el entrenamiento por ordenar los números correctamente y por la velocidad y eficiencia con la que lo hace. El objetivo final es encontrar un programa correcto y más rápido.

Una vez que AlphaDev encuentra estos algoritmos, el equipo los descodifica y los traduce al lenguaje C++.

AlphaDev para jugar con código C++ en el futuro

La optimización en instrucciones de ensamblador de bajo nivel ha sido muy eficiente, pero ha alcanzado sus límites a medida que el tamaño del algoritmo aumenta. El equipo está investigando actualmente la capacidad de AlphaDev para optimizar algoritmos directamente en lenguajes como C++.

«Vemos a AlphaDev como un paso hacia el desarrollo de herramientas de IA de uso general que podrían ayudar a optimizar todo el ecosistema de cómputo y resolver otros problemas que beneficiarán a la sociedad».

Para obtener más información, consulta la publicación en el blog AlphaDev.

Con contenido de The Decoder.