banner

Noticias

May 28, 2023

El juego de Google DeepMind

Los algoritmos generados por IA ya están siendo utilizados por millones de desarrolladores.

La racha de descubrimientos de DeepMind en informática fundamental continúa. El año pasado, la compañía usó una versión de su IA AlphaZero para juegos para encontrar nuevas formas de acelerar el cálculo de una pieza matemática crucial en el corazón de muchos tipos diferentes de código, batiendo un récord de 50 años.

Ahora ha vuelto a hacer el mismo truco, dos veces. Usando una nueva versión de AlphaZero llamada AlphaDev, la empresa con sede en el Reino Unido (recientemente rebautizada como Google DeepMind después de una fusión con el laboratorio de inteligencia artificial de su empresa hermana en abril) ha descubierto una forma de ordenar elementos en una lista hasta un 70% más rápido que la mejor existente. método.

También encontró una manera de acelerar un algoritmo clave utilizado en criptografía en un 30%. Estos algoritmos se encuentran entre los bloques de construcción más comunes en el software. Pequeñas aceleraciones pueden marcar una gran diferencia, reduciendo costos y ahorrando energía.

La nueva versión de AlphaZero descubrió una forma más rápida de realizar la multiplicación de matrices, un problema central en la informática que afecta a miles de tareas informáticas cotidianas.

"La Ley de Moore está llegando a su fin, donde los chips se están acercando a sus límites físicos fundamentales", dice Daniel Mankowitz, científico investigador de Google DeepMind. "Necesitamos encontrar formas nuevas e innovadoras de optimizar la informática".

"Es un nuevo enfoque interesante", dice Peter Sanders, que estudia el diseño y la implementación de algoritmos eficientes en el Instituto de Tecnología de Karlsruhe en Alemania y que no participó en el trabajo. "La clasificación sigue siendo una de las subrutinas más utilizadas en la informática", dice.

DeepMind publicó hoy sus resultados en Nature. Pero las técnicas que descubrió AlphaDev ya están siendo utilizadas por millones de desarrolladores de software. En enero de 2022, DeepMind presentó sus nuevos algoritmos de clasificación a la organización que administra C++, uno de los lenguajes de programación más populares del mundo, y luego de dos meses de rigurosa investigación independiente, los algoritmos de AlphaDev se agregaron al lenguaje. Este fue el primer cambio en los algoritmos de clasificación de C++ en más de una década y la primera actualización que involucró un algoritmo descubierto usando IA.

DeepMind agregó sus otros algoritmos nuevos a Abseil, una colección de código abierto de algoritmos C++ preescritos que puede usar cualquiera que codifique con C++. Estos algoritmos de criptografía calculan números llamados hashes que se pueden usar como identificaciones únicas para cualquier tipo de datos. DeepMind estima que sus nuevos algoritmos ahora se usan billones de veces al día.

AlphaDev se basa en AlphaZero, el modelo de aprendizaje por refuerzo que DeepMind entrenó para dominar juegos como el Go y el ajedrez. El avance de DeepMind fue tratar el problema de encontrar un algoritmo más rápido como un juego y luego hacer que su IA lo gane, el mismo método que usó para acelerar los cálculos en la investigación del año pasado.

En el caso de AlphaDev, el juego consiste en elegir instrucciones de la computadora y colocarlas en orden para que las líneas de código resultantes formen un algoritmo. AlphaDev gana el juego si el algoritmo es correcto y más rápido que los existentes. Suena simple, pero para jugar bien, AlphaDev debe buscar entre una cantidad astronómica de movimientos posibles.

DeepMind eligió trabajar con ensamblaje, un lenguaje de programación que se puede usar para dar instrucciones específicas sobre cómo mover números en un chip de computadora. Pocos humanos escriben en ensamblador; es el lenguaje al que se traduce el código escrito en lenguajes como C++ antes de ejecutarse. La ventaja del ensamblado es que permite dividir los algoritmos en pasos detallados, un buen punto de partida si está buscando atajos.

Los chips de computadora tienen diferentes ranuras donde se colocan y procesan los números. El ensamblaje incluye instrucciones básicas para manipular lo que hay en estas ranuras, como mov(A,B), que le dice a una computadora que mueva el número que está en la ranura A a la ranura B, y cmp(A,B), que le dice a la computadora que verifique si lo que hay en la ranura A es menor, igual o mayor que lo que hay en la ranura B. Largas secuencias de tales instrucciones pueden llevar a cabo todo lo que hacen las computadoras.

Durante décadas, los programadores escribieron sistemas críticos en C y C++. Ahora recurren a Rust.

AlphaDev juega un movimiento en el juego al agregar una nueva instrucción de ensamblaje al algoritmo que está construyendo. Para empezar, AlphaDev agregaría instrucciones al azar, generando algoritmos que no se ejecutarían. Con el tiempo, tal como lo hizo AlphaZero con los juegos de mesa, aprendió a jugar movimientos ganadores. Agregó instrucciones que condujeron a algoritmos que no solo se ejecutaban, sino que eran correctos y rápidos.

DeepMind se centró en algoritmos para clasificar listas cortas de tres a cinco elementos. Dichos algoritmos son llamados una y otra vez en programas que clasifican listas más largas. Las aceleraciones en estos algoritmos cortos tendrán, por lo tanto, un efecto colateral acumulativo.

Pero los algoritmos cortos también han sido estudiados y optimizados por humanos durante décadas. Mankowitz y sus colegas comenzaron con un algoritmo para clasificar una lista de tres elementos solo como prueba de concepto. La mejor versión humana de este algoritmo incluye 18 instrucciones. No creían que serían capaces de mejorarlo.

"Honestamente, no esperábamos lograr nada mejor", dice. "Pero para nuestra sorpresa, logramos hacerlo más rápido. Inicialmente pensamos que se trataba de un error o una falla o algo así, pero cuando analizamos el programa nos dimos cuenta de que AlphaDev en realidad había descubierto algo".

AlphaDev encontró una manera de ordenar una lista de tres elementos en 17 instrucciones en lugar de 18. Lo que descubrió fue que se podían omitir ciertos pasos. "Cuando lo miramos después, dijimos: 'Vaya, eso definitivamente tiene sentido'", dice Mankowitz. "Pero para descubrir algo como esto [sin AlphaDev], se requieren personas que sean expertas en lenguaje ensamblador".

AlphaDev no pudo vencer a la mejor versión humana del algoritmo para clasificar una lista de cuatro elementos, que requiere 28 instrucciones. Pero superó a la mejor versión humana en cinco elementos, reduciendo el número de instrucciones de 46 a 42.

Eso equivale a una aceleración significativa. El algoritmo C++ existente para clasificar una lista de cinco elementos tomó alrededor de 6,91 nanosegundos en un chip Intel Skylake típico. AlphaDev tomó 2.01 nanosegundos, alrededor de un 70% más rápido.

Un año después de que tomó por sorpresa a los biólogos, AlphaFold ha cambiado la forma en que trabajan los investigadores y ha puesto a DeepMind en un nuevo rumbo.

DeepMind compara el descubrimiento de AlphaDev con uno de los movimientos extraños pero ganadores de AlphaGo en su partido de Go contra el gran maestro Lee Sedol en 2016. "Todos los expertos observaron este movimiento y dijeron: 'Esto no es lo correcto. Es un movimiento pobre. '", dice Mankowitz. "Pero en realidad fue el movimiento correcto, y AlphaGo terminó no solo ganando el juego, sino también influyendo en las estrategias que los jugadores profesionales de Go comenzaron a usar".

Sanders está impresionado, pero no cree que los resultados deban exagerarse. "Estoy de acuerdo en que las técnicas de aprendizaje automático están cambiando cada vez más las reglas del juego en la programación, y todos esperan que las IA pronto puedan inventar nuevos y mejores algoritmos", dice. "Pero aún no hemos llegado allí".

Por un lado, Sanders señala que AlphaDev solo usa un subconjunto de las instrucciones disponibles en el ensamblaje. Muchos algoritmos de clasificación existentes usan instrucciones que AlphaDev no probó, dice. Esto hace que sea más difícil comparar AlphaDev con los mejores enfoques rivales.

Es cierto que AlphaDev tiene sus límites. El algoritmo más largo que produjo tenía 130 instrucciones, para clasificar una lista de hasta cinco elementos. En cada paso, AlphaDev seleccionó entre 297 posibles instrucciones de ensamblaje (entre muchas más). "Más allá de 297 instrucciones y juegos de ensamblaje de más de 130 instrucciones, el aprendizaje se volvió lento", dice Mankowitz.

Eso es porque incluso con 297 instrucciones (o movimientos de juego), la cantidad de algoritmos posibles que AlphaDev podría construir es mayor que la cantidad posible de juegos de ajedrez (10120) y la cantidad de átomos en el universo (alrededor de 1080).

Para algoritmos más largos, el equipo planea adaptar AlphaDev para que funcione con instrucciones C++ en lugar de ensamblaje. Con un control menos detallado, AlphaDev podría pasar por alto ciertos atajos, pero el enfoque sería aplicable a una gama más amplia de algoritmos.

A Sanders también le gustaría ver una comparación más exhaustiva con los mejores enfoques ideados por humanos, especialmente para algoritmos más largos. DeepMind dice que eso es parte de su plan. Mankowitz quiere combinar AlphaDev con los mejores métodos ideados por humanos, haciendo que la IA se base en la intuición humana en lugar de empezar desde cero.

Después de todo, es posible que se encuentren más aceleraciones. "Para que un ser humano haga esto, requiere una experiencia significativa y una gran cantidad de horas, tal vez días, tal vez semanas, para revisar estos programas e identificar mejoras", dice Mankowitz. "Como resultado, no se ha intentado antes".

"De repente cambié mi punto de vista sobre si estas cosas van a ser más inteligentes que nosotros".

Hinton hablará en EmTech Digital el miércoles.

ChatGPT ha provocado especulaciones sobre la inteligencia artificial general. Pero la próxima fase real de la IA será en dominios y contextos específicos.

Vea a Hinton hablar con Will Douglas Heaven, editor senior de IA de MIT Technology Review, en EmTech Digital.

Descubra ofertas especiales, noticias destacadas, próximos eventos y más.

¡Gracias por enviar su correo electrónico!

Parece que algo salió mal.

Estamos teniendo problemas para guardar sus preferencias. Intente actualizar esta página y actualícelas una vez más. Si continúa recibiendo este mensaje, comuníquese con nosotros en [email protected] con una lista de boletines que le gustaría recibir.

COMPARTIR