Un sistema de inteligencia artificial ha descubierto un nuevo método para la multiplicación de matrices, que consiste en multiplicar filas y columnas de números. Esto puede aumentar la velocidad de cómputo de las computadoras hasta en un 20 por ciento.
Una inteligencia artificial (IA) de la empresa DeepMind ha descubierto una nueva forma de multiplicar cuadrículas de números (matrices). Es la primera vez en más de cincuenta años que se produce un gran avance en el campo de esta ‘simple’ operación matemática. Debido a que este tipo de multiplicación es la base de muchas tareas informáticas, el descubrimiento podría aumentar la velocidad de algunos cálculos informáticos hasta en un 20 por ciento.
Abeja multiplicación de matrices las filas y columnas de números se multiplican entre sí. Es una tarea computacional que ocurre en casi todo el software, especialmente en aplicaciones gráficas, IA y simulaciones científicas. Incluso una pequeña mejora en la eficiencia de estos algoritmos podría ahorrar mucha energía.
LEA TAMBIÉN
Una forma extrema de encriptación podría resolver el problema de privacidad de los grandes datos
Primer avance en cincuenta años
Durante siglos se creyó que la forma más eficiente de multiplicar matrices es proporcional al número de elementos a multiplicar. En otras palabras, cuanto más grandes sean las matrices, más difícil será la tarea.
Sin embargo, en 1969, el matemático Volker Strassen demostró que multiplicar dos matrices, cada una de las cuales consta de dos filas y dos columnas, no requiere necesariamente ocho multiplicaciones. Con un ingenioso truco, ese número puede reducirse a siete. Este enfoque, llamado algoritmo strass, requiere que hagas una suma adicional, pero eso es un pequeño sacrificio: la suma le lleva a la computadora mucho menos tiempo que la multiplicación.
El algoritmo Strass ha sido el enfoque más eficiente para la mayoría de los tamaños de matriz durante más de cincuenta años. Se han encontrado algunas mejoras menores, pero no son fáciles de encajar en los códigos de computadora.
La IA de DeepMind, llamada AlphaTensor, ahora ha descubierto una forma más rápida que solo funciona en el hardware actual. AlphaTensor se enfrentó al desafío de crear un algoritmo de trabajo que realizara la tarea en el menor número de pasos posible. La IA encontró un algoritmo para multiplicar dos matrices de cuatro filas y cuatro columnas con solo 47 multiplicaciones. Eso es mejor que las 49 multiplicaciones necesarias en el algoritmo de Strassen.
AlphaTensor también desarrolló técnicas para matrices de otros tamaños. En total, pudo encontrar nuevos algoritmos para setenta formatos de matriz diferentes.
Para cada tamaño de matriz, AlphaTensor descubrió miles de algoritmos de trabajo. Para las matrices de 4×4, por ejemplo, encontró 14.000. Pero solo unos pocos de ellos eran mejores que el algoritmo actual.
IA intuitiva
científico de IA Hussein Fawzic de DeepMind dice que los resultados son matemáticamente precisos, pero lejos de ser intuitivos para los humanos. “Realmente no sabemos por qué se le ocurrió esto al sistema”, dice. ‘¿Por qué es esta la mejor forma de multiplicar matrices? Eso no está claro.
“De alguna manera, la IA está desarrollando una intuición de lo que se ve bien y lo que se ve mal. Sinceramente, no puedo decirte exactamente cómo funciona. Creo que todavía queda trabajo teórico por hacer antes de que entendamos exactamente cómo la IA hace estas cosas”, dice Fawzi.
Ganancia de energía
Los algoritmos pueden aumentar la velocidad de computación de los componentes de la computadora entre un 10 y un 20 por ciento. Esto se ha probado, entre otras cosas, con un procesador de gráficos del fabricante de computadoras Nvidia y un unidad de procesamiento de tensores de Google. No está claro si tales ganancias también se pueden lograr en dispositivos comunes, como un teléfono inteligente o una computadora portátil.
científico de la computación caballero james de la Universidad de Sussex en el Reino Unido dice que todo tipo de software que se ejecuta en supercomputadoras, como los sistemas de inteligencia artificial y la simulación del clima, no son más que multiplicaciones de matrices a gran escala. “Si este enfoque se implementa allí, aceleraría las cosas”, dice.
científico de la computación Oded Laquis de la Universidad de Londres subraya que los nuevos algoritmos pueden mejorar la eficiencia de muchos programas porque la multiplicación de matrices es una operación muy común.
Más soluciones de IA
Además, es probable que sigan más algoritmos nuevos, dice. “Creo que veremos más soluciones diseñadas por IA para otros problemas de naturaleza similar, incluso si eso rara vez será algo tan central como la multiplicación de matrices”.
“Hay mucha demanda de este tipo de tecnologías, porque un algoritmo más ligero significa no solo resultados más rápidos, sino también un menor consumo de energía”, dice Lachish. Esto le permite realizar una tarea más liviana en computadoras más pequeñas que consumen menos energía, o en las mismas computadoras, pero en menos tiempo.
Los logros de DeepMind no significan que los programadores humanos se quedarán sin trabajo. ‘¿Deberían preocuparse los programadores? Tal vez en un futuro lejano”, dice Lachish. ‘La optimización automática se ha realizado en la industria de los microchips durante décadas. Esta es solo otra herramienta importante para el programador humano”.
MULTIPLICACIÓN DE MATRICES
Multiplicas dos matrices multiplicando siempre una fila de la primera matriz por una columna de la segunda matriz.
Tomemos, por ejemplo, dos matrices de 2×2. Para el primer cuadro (arriba a la izquierda) del resultado, multiplique la fila 1 de la matriz 1 con la columna 1 de la matriz 2. Para hacer esto, multiplique el primer número de la primera fila de la matriz 1 con el primer número de la primera columna de la matriz 2. le sumas el resultado a la multiplicación del segundo número de la primera fila de la matriz 1 y el segundo número de la primera columna de la matriz 2. Para el segundo recuadro (arriba a la derecha) haces lo mismo, solo que ahora tomas los números de la fila 1 de la matriz 1 y la columna 2 de la matriz 2. De esta manera, puede llenar gradualmente las cuatro casillas.