Articulo de referencia

AlphaDev

AlphaDev es un sistema de inteligencia artificial desarrollado por Google DeepMind para descubrir algoritmos informáticos mejorados mediante aprendizaje por refuerzo . AlphaDev ...

AlphaDev es un sistema de inteligencia artificial desarrollado por Google DeepMind para descubrir algoritmos informáticos mejorados mediante aprendizaje por refuerzo . AlphaDev se basa en AlphaZero , un sistema que dominó los juegos de ajedrez , shogi y go mediante autoaprendizaje. AlphaDev aplica el mismo enfoque para encontrar algoritmos más rápidos para tareas fundamentales como la ordenación y el hashing . [ 1 ] [ 2 ] [ 3 ]

Desarrollo

El 7 de junio de 2023, Google DeepMind publicó un artículo en Nature que presentaba AlphaDev, el cual descubrió nuevos algoritmos que superaban a los métodos de vanguardia para algoritmos de ordenación pequeños. [ 1 ] Por ejemplo, AlphaDev encontró una secuencia de lenguaje ensamblador más rápida para ordenar secuencias de 5 elementos. [ 4 ] Tras analizar los algoritmos en profundidad, AlphaDev descubrió dos secuencias únicas de instrucciones de ensamblador llamadas movimientos de intercambio y copia de AlphaDev que evitan una sola instrucción de ensamblador cada vez que se aplican. [ 1 ] [ 3 ] Para algoritmos de ordenación variable, AlphaDev descubrió estructuras de algoritmos fundamentalmente diferentes. Por ejemplo, para VarSort4 (ordenación de hasta 4 elementos), AlphaDev descubrió un algoritmo 29 instrucciones de ensamblador más corto que el de referencia humano. [ 1 ] AlphaDev también mejoró la velocidad de los algoritmos de hash hasta en un 30 % en ciertos casos. [ 2 ]

En enero de 2022, Google DeepMind presentó sus nuevos algoritmos de ordenación a la organización que gestiona C++ , uno de los lenguajes de programación más populares del mundo, y tras una revisión independiente, los algoritmos de AlphaDev se añadieron a la biblioteca. [ 5 ] Este fue el primer cambio en los algoritmos de ordenación de la biblioteca estándar de C++ en más de una década y la primera actualización que involucró un algoritmo descubierto mediante IA. [ 5 ] En enero de 2023, DeepMind también añadió su algoritmo de hash para entradas de 9 a 16 bytes a la biblioteca de código abierto de C++ Abseil . [ 6 ] [ 5 ] Google estima que estos dos algoritmos se utilizan billones de veces al día. [ 7 ]

Diseño

AlphaDev se basa en AlphaZero, el modelo de aprendizaje por refuerzo que DeepMind entrenó para dominar juegos como el Go y el ajedrez. [ 5 ] El avance de la compañía fue tratar el problema de encontrar un algoritmo más rápido como un juego y luego entrenar su IA para ganarlo. [ 2 ] AlphaDev juega un juego para un solo jugador donde el objetivo es construir iterativamente un algoritmo en lenguaje ensamblador que sea rápido y correcto. [ 1 ] AlphaDev utiliza una red neuronal para guiar su búsqueda de movimientos óptimos y aprende de su propia experiencia y demostraciones sintéticas. [ 1 ]

AlphaDev muestra el potencial de la IA para avanzar en los fundamentos de la computación y optimizar el código según diferentes criterios. Google DeepMind espera que AlphaDev inspire nuevas investigaciones sobre el uso de la IA para descubrir nuevos algoritmos y mejorar los existentes. [ 2 ]

Algoritmo

El algoritmo de aprendizaje principal en AlphaDev es una extensión de AlphaZero .

Codificación de la programación en lenguaje ensamblador en un juego

Para utilizar AlphaZero en la programación en lenguaje ensamblador, los autores crearon una representación vectorial basada en Transformer de los programas en lenguaje ensamblador diseñada para capturar su estructura subyacente. [ 1 ] Esta representación finita permite que una red neuronal juegue a la programación en lenguaje ensamblador como un juego con un número finito de movimientos posibles (como el Go),

La representación utiliza los siguientes componentes:

  • En una red Transformer, los códigos de operación de ensamblaje se convierten a codificaciones one-hot y se concatenan para formar la secuencia de entrada sin procesar.
  • Una red perceptrón multicapa , que codifica el "estado de la CPU", es decir, los estados de cada registro y ubicación de memoria para un conjunto dado de entradas,

Jugando al juego

El estado del juego es el programa en lenguaje ensamblador generado hasta un punto determinado.

El movimiento del juego es una instrucción adicional que se agrega al programa de ensamblaje actual.

La recompensa del juego depende de la corrección y la latencia del programa ensamblador. Para reducir costos, AlphaDev solo calcula la latencia real medida en menos del 0,002 % de los programas generados, ya que no la evalúa durante el proceso de búsqueda. En su lugar, utiliza dos funciones que estiman la corrección y la latencia mediante aprendizaje supervisado, utilizando los valores reales de corrección y latencia medidos.

Resultado

Hashing

AlphaDev desarrolló algoritmos de hash para entradas de 9 a 16 bytes para Abseil, una colección de código abierto de algoritmos preescritos en C++. [ 8 ]

Biblioteca de ordenación estándar de LLVM

AlphaDev descubrió nuevos algoritmos de ordenación que permitieron mejoras de hasta un 70 % en la biblioteca de ordenación LLVM libc++ para secuencias cortas y de aproximadamente un 1,7 % para secuencias de más de 250 000 elementos. Estas mejoras se aplican a los tipos de datos uint32, uint64 y float para las arquitecturas de CPU ARMv8, Intel Skylake y AMD Zen 2. El ensamblaje condicional sin bifurcaciones y el nuevo movimiento de intercambio de AlphaDev contribuyeron a estas mejoras de rendimiento. Los algoritmos descubiertos se obtuvieron mediante ingeniería inversa, desde el lenguaje ensamblador de bajo nivel a C++, y se han incluido oficialmente en la biblioteca de ordenación estándar libc++. [ 6 ]

Deserialización mejorada en protobuf

AlphaDev aprendió una función de deserialización de VarInt optimizada en protobuf [ 9 ] , superando la prueba de referencia humana para entradas de un solo valor en aproximadamente tres veces en términos de velocidad. AlphaDev también descubrió un nuevo movimiento de asignación de VarInt, que combina dos operaciones en una sola instrucción para reducir la latencia.

Comparación con el enfoque lógico de la IA

El rendimiento de AlphaDev se comparó con la superoptimización estocástica, [ 10 ] un enfoque de IA lógica. Este último se ejecutó con al menos la misma cantidad de recursos y tiempo de ejecución que AlphaDev. Los resultados mostraron que AlphaDev-S requiere una cantidad prohibitiva de tiempo para optimizar directamente la latencia, ya que esta debe calcularse después de cada mutación. Por lo tanto, AlphaDev-S optimiza para un indicador de latencia, específicamente la longitud del algoritmo, y, luego, al final del entrenamiento, se buscan todos los programas correctos generados por AlphaDev-S.

Véase también

Referencias

  1. 1 2 3 4 5 6 7 Mankowitz, Daniel J.; Michi, Andrea; Zhernov, Anton; Gelmi, Marco; Selvi, Marco; Paduraru, Cosmin; Leurent, Edouard; Iqbal, Shariq; Lespiau, Jean-Baptiste; Ahern, Alex; Koppe, Thomas; Millikin, Kevin; Gaffney, Stephen; Elster, Sophie; Broshear, Jackson; Gamble, Chris; Milan, Kieran; Tung, Robert; Hwang, Minjae; Cemgil, Taylan; Barekatain, Mohammadamin; Li, Yujia; Mandhane, Amol; Hubert, Thomas; Schrittwieser, Julian; Hassabis, Demis; Kohli, Pushmeet; Riedmiller, Martin; Vinyals, Oriol; Silver, David (2023). "Algoritmos de clasificación más rápidos descubiertos mediante aprendizaje profundo por refuerzo" . Nature . 618 (7964): 257– 263. Bibcode : 2023Natur.618..257M . doi : 10.1038/ s41586-023-06004-9 . PMC 10247365. PMID 37286649 .  
  2. 1 2 3 4 "AlphaDev descubre algoritmos de ordenación más rápidos" . Blog . Google DeepMind. 7 de junio de 2023. Archivado del original el 20 de junio de 2023. Consultado el 20 de junio de 2023 .
  3. 1 2 Tunney, Justine (2023-06-20). "Understanding DeepMind's Sorting Algorithm" . justine.lol . Archivado del original el 18-06-2023 . Recuperado el 20-06-2023 .
  4. Github - AlphaDev , DeepMind, 21/06/2023 , consultado el 21/06/2023
  5. 1 2 3 4 Heaven, Will Douglas (7 de junio de 2023). "La IA de juegos de Google DeepMind acaba de encontrar otra forma de hacer que el código sea más rápido" . MIT Technology Review . Archivado del original el 14 de junio de 2023. Recuperado el 20 de junio de 2023 .
  6. 1 2 "⚙ D118029 Introducir funciones de ordenación sin ramificaciones para sort3, sort4 y sort5" . reviews.llvm.org . Consultado el 21 de junio de 2023 .
  7. Sparkes, Matthew (7 de junio de 2023). "La nueva forma de DeepMind AI de clasificar objetos podría acelerar la computación global" . New Scientist . Consultado el 20 de junio de 2024 .
  8. "Reemplazar absl::Hash para entradas de 9 a 16 bytes según los hallazgos de AlphaZero por el equipo de Abseil · abseil/abseil-cpp@74eee2a" . GitHub . Consultado el 24 de junio de 2023 .
  9. "Serialización y deserialización del búfer de protocolo VarInt" . protobuf.dev . Consultado el 24 de junio de 2023 .
  10. Schkufza, Eric; Sharma, Rahul; Aiken, Alex (2013-03-16). "Superoptimización estocástica" . ACM SIGARCH Computer Architecture News . 41 (1): 305– 316. arXiv : 1211.0557 . doi : 10.1145/2490301.2451150 . ISSN 0163-5964 . 
  • Comprender el avance de AlphaDev de DeepMind en la optimización de algoritmos de ordenación
  • Comprender el algoritmo de ordenación de DeepMind
Obtenido de " https://en.wikipedia.org/w/index.php?title=AlphaDev&oldid=1357594541 "