This graph shows how many times the word ______ has been mentioned throughout the history of the program.
Ya lo sabéis, DeepMind es uno de los mayores laboratorios de inteligencia artificial del
mundo, y tras años focalizados en desarrollar algoritmos inteligentes capaces de ganar a
juegos como el Go o el StarCraft, últimamente su interés se ha focalizado en algo mucho
más interesante, acelerar el descubrimiento de avances científicos.
Y quien haya visto alguna de las ponencias de Demis Hassabis, el CEO de DeepMind hablando
sobre este tema, también habrá sentido el corazón caliente y el estómago blandito
ante el vértigo de pensar que la inteligencia artificial podría colocarse como una herramienta
fundamental para resolver muchos de los grandes retos intelectuales de la humanidad.
Pero es que así está sucediendo, en los últimos años DeepMind ha acelerado descubrimientos
en aspectos tan fundamentales como la predicción del plegado de proteínas, algo fundamental
en biología estructural, el control del plasma en reactores de fusión nuclear, la predicción
precisa de fenómenos meteorológicos con inteligencia artificial y también ha marcado grandes avances
en genética, en mecánica cuántica, en matemáticas.
Todo esto una empresa que comenzó dominando juegos de mesa y juegos de ordenador.
Y esto último es muy relevante, porque aprender a jugar a juegos de mesa como el Go o el ajedrez
le permitió a DeepMind poder experimentar y desarrollar a estos algoritmos inteligentes
que ahora pueden empezar a aplicar a problemas mucho más determinantes.
Es más, muchas veces el planteamiento que sigue la gente de DeepMind es el de convertir
al problema científico en un juego, un juego que ahora la inteligencia artificial tiene
que aprender a ganar.
Y exactamente eso es lo que han hecho en esta ocasión con Alpha Tensor.
Y Carlos, ¿cuál es ese problema tan fundamental de la ciencia que han resuelto en esta ocasión?
Bueno, pues la multiplicación de matrices.
Y a lo mejor estarás pensando jajaja y eso pa que sirve saludos, pero tenemos que entender
que la multiplicación de matrices es una operación computacional clave en mucha de
la informática moderna.
Pero cuando estás haciendo piumpiún en el Fortnite, los gráficos tridimensionales que
se calculan en tu ordenador son vértices representados por vectores.
Y estos vectores rotan, cambian de posición, se transforman al multiplicarse con las matrices
adecuadas.
O por ejemplo, ya que estamos en este canal, una red neuronal.
Cuando tú coges las variables de entrada de una tabla de Excel y las introduces en
una red como esta, estos datos vienen representados por vectores, que cuando se van procesando
capa por capa, en realidad lo que está ocurriendo internamente es que se van multiplicando por
matrices de parámetros, ¿lo ves?
Y eso por poner dos ejemplos clave, pero hay muchos más.
Y es que no podemos entender la computación moderna sin una operación tan fundamental
como la multiplicación matricial.
¿Y cómo multiplicamos dos matrices?
Pues si recordáis las clases en el instituto, el método, el algoritmo que seguimos es el
siguiente.
Si quieres calcular el primer elemento de la primera fila, primera columna, iremos a esta
matriz aquí, cogeremos la primera fila, de esta matriz acá, cogeremos la primera columna,
multiplicaremos, sumaremos y obtendremos el primer resultado.
Para el valor de la segunda columna, pues tomaremos la primera fila, segunda columna
de esta matriz, multiplicaremos, sumaremos y obtendremos otro resultado.
Así sucesivamente, completando filas y columnas, iremos obteniendo el resultado de multiplicar
matricialmente.
Fijaos como este algoritmo que estamos siguiendo nos obliga a recorrer para cada fila, para
cada columna, cada valor que queremos multiplicar y sumar.
Es decir, esto para el que entienda un poquillo de código de programación, pues sería para
cada fila, cada columna, cada elemento.
Algo que se programaría con tres bucles for anidados.
Y esto supone un problema.
¿Qué problema?
Bueno, pues que entre más grandes sean las matrices que vamos a multiplicar, entre más
filas tengan, más columnas tengan, más elementos tengan, pues más operaciones habrá que hacer.
Si multiplicamos matrices de dos por dos, pues esto sería proporcional a recorrer dos
filas por dos columnas por sus valores, que serían ocho operaciones.
Pero es que si la matriz fuera de diez por diez, diez filas, diez columnas, esto escalaría
a diez por diez por diez, es decir, mil operaciones.
Y aquí ya estamos viendo el problema de que entre mayor sea el tamaño de estas matrices
que vamos a multiplicar, pues más rápido se va de madres el número de operaciones
que tenemos que ejecutar.
En concreto, diríamos que esta solución que todos hemos aprendido en el instituto,
de recorrer cada fila, cada columna, para una matriz de tamaño indefinido n, pues tendría
un coste de n por n por n, n cubo operaciones.
Y este n cubo, pues es el problema.
Claro, no habrá alguna forma de modificar los pasos que ejecutamos, de modificar este
algoritmo, de encontrar otra forma diferente de multiplicar matrices para poder reducir
esta complejidad computacional de n elevado al cubo y a ver si podemos bajar este número,
pues sí.
Y como puede ver, durante las últimas décadas el intelecto de muchos matemáticos nos ha
permitido ir reduciendo esta complejidad computacional.
De nuestra versión inicial, la de n cubo, hemos pasado por algoritmos que nos permitían
hacerlo en n elevado a 2,80 y pico, posteriormente a n elevado a 2,50 y algo.
Y en la década de los 90 ya encontramos algoritmos que lo hacen en 2,30 y pico, un punto desde
el que si os fijáis, pues pocos avances han ocurrido hasta el presente.
Esta gráfica de aquí es importantísima porque, bueno, pasar de aquí a aquí en 50
años parece poco, solo hemos pasado un exponente de 3 a 2,37, pero es que si comparamos donde
antes multiplicar una matriz de 10 por 10 nos podía llevar mil operaciones, con los
métodos actuales esta multiplicación nos llevaría solo 235 operaciones.
Una mejora sustancial, pero que de nuevo, como hemos visto, lleva décadas sin grandes
avances significativos.
Y aquí es donde entra Alfa-Tensor.
Mirad, Alfa-Tensor trabaja sobre los avances que logró el matemático Volker Strassen
en este punto de aquí.
El método Strassen fue el primero en probar que había mejores formas de multiplicar matrices
que el método tradicional que todos hemos seguido, el de coste n cubo.
Él mostró que si en vez de hacer el típico juego de multiplicaciones y sumas de cojo
esta fila con esta columna, si reorganizabas las operaciones de forma diferente, ¡ey!
le ahorrabas una operación.
Y esto, como indica el buen manual del ahorrador aplicado recurrentemente, pues te daba este
boost de eficiencia que hemos visto en la gráfica de aquí.
Así que reorganizando inteligentemente cómo ejecutamos estas operaciones matemáticas,
podemos aumentar el marcador de cuántas operaciones nos ahorramos.
Esto suena a juegaso, vale no, quizás no va a ser el Game of the Year, pero recordemos
que a ojo de una inteligencia artificial sí podría serlo, y que esta va a ser muy buena
ganando a este juego.
En concreto el juego que se ha construido es el siguiente.
Matemáticamente hay una equivalencia donde las operaciones para multiplicar dos matrices
de un determinado tamaño se pueden representar con un tensor tridimensional, este cubito
de aquí, y es por este tensor por lo que este sistema recibe el nombre de alpha tensor.
Sin entrar en muchas explicaciones de por qué, tienes que entender que este tensor contiene
unos y ceros para codificar el cómo se relacionan y operan los diferentes términos de las matrices
a multiplicar.
Y bueno, pues el objetivo de la inteligencia artificial será el de ir proponiendo formas
de ir modificando a este tensor para dejar todos sus valores a cero.
Cuando esto ocurre, los pasos dados por la inteligencia artificial definen un nuevo algoritmo
para multiplicar a las matrices, y el número de pasos dados, pues el número de operaciones
que tenemos que ejecutar.
Este es el valor que queremos reducir.
Claro, con esto cada vez que la inteligencia artificial consiga resolver este juego de
llevar al tensor a todos sus valores a cero, significará que ha encontrado un nuevo algoritmo
para multiplicar a las matrices.
Y hay, amigos, aquí donde el asunto se vuelve un problema, y es que el número de algoritmos
que la IA podría encontrar, que surge a partir de todas las posibles combinaciones de acciones
que esta podría hacer, es enorme.
O dicho en la frase favorita de DeepMind, es mayor al número de átomos del universo.
No pierdan oportunidad para decir siempre esta frase.
Y claro, la cosa es que de todos esos algoritmos, de todo este pajar, lo que queremos encontrar
es aquel algoritmo que reduzca el número de operaciones, una aguja que es bastante
complicada de encontrar.
Este es el juego al que tiene que jugar AlphaTensor.
Y amigos y amigas, como no puede ser de otra manera, la IA lo juega muy bien.
Y lo juega muy bien, y esto no debería sorprendernos, si es que este sistema ya nos tiene acostumbrados
a otras victorias muy reconocidas.
Y es que AlphaTensor no es un sistema 100% novedoso, sino que es una extensión de una
inteligencia artificial ya por todos conocida de DeepMind que es AlphaZero.
AlphaZero o AlphaZero es un sistema de aprendizaje reforzado que DeepMind desarrolló hace unos
añitos y que sorprendió a todos al ser capaz de dominar juegos como el ajedrez o el Go,
sin necesidad de mostrarle ningún dato de cómo se juega al ajedrez o al Go.
Es decir, AlphaZero, sin ninguna información de lo que era jugar bien o jugar mal, conseguía
de la nada aprender y elevar todo ese conocimiento para llegar a convertirse en el mejor jugador
de la historia en cada caso.
Es que incluso se han escrito libros de ajedrez dedicados solo a analizar los movimientos
más interesantes descubiertos por la IA.
Y esto ya lo hice en el pasado, teniendo una tecnología capaz de lograr esto en juegos,
pues era cuestión de tiempo que DeepMind se focalizara a tareas más interesantes.
En este caso, la versión actual de AlphaTensor, pues sí es cierto que es una extensión de
este sistema AlphaZero, pero evidentemente los últimos 5 años ha seguido actualizándose,
donde podemos ver que en algunos de los módulos se introducen arquitecturas más modernas
como los Transformers.
Con todo esto, el sistema que surge de aquí nos aporta unos resultados muy interesantes.
AlphaTensor, en todos los casos, acaba por encontrar un algoritmo que iguala o incluso
mejora el número de operaciones a ejecutar.
Y esto es súper súper súper impresionante por tres motivos.
Primero, y esta es muy evidente amigos, el titular del vídeo, la IA ha conseguido encontrar
algoritmos que son más eficientes que lo que el intelecto humano había conseguido
en los 50 años previos.
La IA ha empujado esta frontera que separa el conocimiento humano de lo que desconocemos
y ese muro, esa frontera, se ha movido.
Esto ejemplifica y sirve como una prueba de concepto muy muy importante de cara a que
otros investigadores, a que otros laboratorios, a que otras universidades, pues también empiezan
a aplicar la IA a problemas científicos de la misma forma que DeepMind lo ha hecho aquí.
Segundo, este sistema, como sucede muchas veces con la IA, no solo encuentra un algoritmo
que resuelva la tarea, sino que en su búsqueda, pues al mismo tiempo ha encontrado un montón
de nuevos algoritmos que desconocíamos, miles.
Esta luz que arroja al espacio de soluciones de este problema concreto pues puede ser de
grandísima utilidad para matemáticos que ahora pueden empezar a analizar las características
de estos algoritmos y poder entender mejor cómo funciona y continuar su investigación
para encontrar incluso algoritmos más eficientes.
Y es de esta capacidad que tiene AlphaTensor de encontrar un enorme surtido de algoritmos
que podrían servir para múltiples cosas dentro del problema de multiplicación de matrices
que aparece el tercer aspecto que para mí es el más interesante.
Y es que como hemos visto aquí el problema que le hemos planteado a AlphaTensor es el
de, oye, intenta encontrar un algoritmo que multiplique estas dos matrices, pero haciendo
que el número de pasos a ejecutar sea mínimo, es decir, encuentra el algoritmo más eficiente
respecto al número de operaciones.
Pero claro, es que este objetivo que hemos definido lo podemos modificar por otro que
nos puede interesar más.
Por ejemplo, ¿cuál es el algoritmo de multiplicación de matrices más eficiente que podríamos
encontrar para una tarjeta gráfica RTX 4090?
Claro, pensad que los circuitos, el set de instrucciones, el cómo se ejecutan estos
algoritmos en diferentes procesadores hace que su rendimiento pueda ser muy diferente.
Con lo cual, por mucho que hayas encontrado un algoritmo que sea óptimo teóricamente,
pues a lo mejor cuando lo llevas a la 4090, pues su rendimiento no es tan bueno.
Aquí es donde DeepMind de forma muy inteligente ha dicho, bueno, pues si sustituimos este
objetivo de intentar optimizar por el número de operaciones a intentar reducir el tiempo
que tarda en ejecutarse en una GPU concreta como una 4090, a lo mejor aquí AlphaTensor
encuentra algoritmos optimizados para estas GPUs.
Cambiando el objetivo de AlphaTensor, de esta forma se han encontrado nuevos algoritmos
que he ejecutado sobre ese hardware concreto, pues han podido ver mejoras de entre un 10
y un 20% a la hora de multiplicar matrices.
Y claro, esto está guapísimo porque te lo puedes llevar a otros objetivos, por ejemplo
búscame el algoritmo de multiplicación de matrices sobre una RTX 4090 que optimice el
coste energético.
Creo que nos acercamos hacia un punto donde gracias a la inteligencia artificial acelerando
estos avances científicos, tal cual nos demuestra DeepMind, pues vamos a vivir una explosión
de inteligencia sin precedentes.
No sé si os dais cuenta de la importancia de lo que estamos hablando, pero podríamos
estar en la antesala de un mundo donde la inteligencia artificial sea la encargada de
acelerar los descubrimientos científicos más importantes.
Y seguramente mientras estoy hablando ya en los laboratorios de DeepMind se está cocinando
el siguiente sistema que nos va a volar a todos la cabeza.
Y este proyecto no solo me ha emocionado porque ha tocado la fibra sensible de esta conexión
que existe entre la IA y la ciencia, que creo que va a ser súper súper importante, sino
porque también fue que a raíz de este tema me escribieron desde DeepMind dos de los investigadores
que han participado en justamente esta investigación.
He flipado porque conocen mi canal y eso ya para mí ha sido una sorpresa bastante gratificante.
Ya sabéis que DeepMind en mi canal siempre ha estado muy conectado, es una empresa, una
compañía, un laboratorio que yo tengo muy cercano a la historia de este canal.
Mis primeros vídeos podéis consultarlos, aunque me da toda la vergüenza, hablan de
publicaciones como AlphaZero y la verdad que me emociona bastante ver cómo hemos llegado
hasta este punto donde la propia DeepMind pues se interesa por mi trabajo y a venir
aquí.
¿Qué lejos hemos llegado?
Si a vosotros os gusta este contenido, si lo apoyáis, si lo valoráis y consideráis
que es muy importante que exista esta divulgación en YouTube, podéis apoyarlo a través de
Patreon con una aportación mensual, os dejo abajo los enlaces en la cajita de descripción
junto al resto de artículos, científicos y chicos, chicas, nos vemos con más inteligencia
artificial en el próximo vídeo.