¿Por qué los GPUs son tan importantes para el Machine Learning?
¿A qué se debe que las unidades de procesamiento gráfico (mejor conocidas por sus por sus siglas en inglés: GPU) se hayan convertido en un elemento fundamental en el mundo del “machine learning” en los últimos años? Un estudio reciente (2021) de KPMG indica que un número cada vez mayor de empresas se embarcan en proyectos de implementación de modelos de AI, y la velocidad a la que se implementan los proyectos también crece. Ese mismo estudio señala que 84% de las empresas del sector financiero, 81% de las empresas del sector comercio y 93% del sector industrial ya han puesto en operación procesos funcionales basados en la AI. También señala que las funciones u operaciones que hacen uso de la AI han experimentado un crecimiento de dos dígitos en sectores como industrial, cuidados sanitarios, ciencias de la vida, comercio, servicios financieros y gobierno. Y hasta un 75% de las pequeñas empresas, de acuerdo al mismo estudio, también han implementado, aunque moderadamente, sistemas o procesos gestionados por AI. No se detalla en el estudio si estos proyectos se implementan con desarrollo propio o a través de plataformas pre-empaquetadas por terceros. De acuerdo con los autores, y cito: “las organizaciones están apostando a la AI para resolver los problemas fundamentales de la industria, pero queda aún mucho trabajo para aprovechar todo el potencial de la tecnología”.
El auge de los servicios AI, y la complejidad creciente de los modelos a implementar, han ocasionado una creciente demanda en el mercado de las GPUs que parece no va a disminuir en el mediano plazo. Algunos analistas (puedo citar a Anand Joshi de Gigacom) señalan que aún alquilar o disponer de un GPU en la nube se está volviendo bastante complicado. Los clientes de estos servicios a veces tienen que esperar a que los GPUs estén disponibles, y esto descontando ya las consecuencias que el COVID-19 tuvo en toda la manufactura mundial, que afortunadamente van desapareciendo paulatinamente.
Pero, ¿que hace a los GPUs tan importantes para el “Machine Learning”? Los GPU son diferentes a los CPU a pesar de ser también procesadores genéricos. Los GPU fueron desarrollados para ejecutar millones de operaciones de coma flotante, muy frecuentes en los cálculos para procesar gráficos en 3D, y liberar así a las CPU para tareas más importantes o cálculos más complejos. Por ejemplo, si queremos simular como se refleja la luz sobre una superficie, podemos representar esa superficie como una matriz de pixeles, y luego calcular como se refleja la luz en cada pixel aplicando la fórmula adecuada. Repetir eso millones de veces es lo que los GPUs hacen mejor. Y precisamente, dado que en el machine learning es necesario realizar miles de operaciones en paralelo, por ejemplo cálculos repetitivos sobre largas columnas de datos o pequeñas variaciones de la misma fórmula sobre millones de filas en un dataset, los GPUs encontraron rápidamente su grupo de entusiastas dentro del mundo AI. Estos ingenieros comprendieron todo el potencial de estos procesadores y desarrollaron las herramientas para trabajar con ellos. No se puede poner a trabajar los GPUs sin un código especial, por ejemplo el CUDA para los GPUs de NVIDIA, pero también es necesario tener la mentalidad y la arquitectura adecuada. Hay que diseñar los proyectos de forma que se puedan ejecutar muchas operaciones en paralelo (al mismo tiempo), y solo consolidar los resultados al final del proceso. También es necesario evitar los “for loops” a toda costa, trabajando en cuanto sea posible de forma matricial o columnar.
Con la creciente demanda de los servicios AI, los precios de los GPU se han ido incrementando paulatinamente, mientras que su disponibilidad se ha visto restringida. Incluso los proveedores de Ai en la nube parecen no poder mantener el ritmo de la demanda, y algunos de sus clientes empiezan a experimentar largos tiempos de espera para culminar sus proyectos. Eso, como dije antes, sin incluir los efectos de la pandemia. Para disponer de GPUs deben comprarse con antelación ( y pagar los altos precios de algunos brokers) o planificar para alquilarlos los tiempos de GPU en una de las plataformas disponibles, como Azure, AWS o Google Cloud. La mejor opción dependerá de las necesidades de cada empresa, de los recursos y la arquitectura de cada proyecto. Incluso si se alquilan, existen plataformas en la nube dedicadas a los servicios de ML que ofrecen SLAs que van desde un par de horas hasta disponibilidad por un mes entero. Alguna de ellas son Escher Cloud, UbiOps y Paperspacecore. En España, contamos específicamente con ASSECO Cloud, que tiene el respaldo de la mismísima NVIDIA.
Y un poco para finalizar en tono positivo, el desarrollo de nuevos GPUs no se detiene. NVIDIA, el líder mundial en GPUs, acaba de anunciar su modelo Hopper H100 con 86 billones de transistores. Estos GPUs de nueva generación prometen una capacidad de procesamiento sin precedentes, que sin entrar en muchos detalles técnicos, puede ayudar a descongestionar los actuales cuellos de botellas en los DC basados en la nube. Es decir, los GPU son y seguirán siendo piezas fundamentales para el AI, y el ML, y aunque temporalmente estemos experimentando problemas de disponibilidad, existen varias opciones para planificar y no detener los proyectos. Adicionalmente, el desarrollo no para y en poco tiempo la disponibilidad de nuevas GPU con mayores capacidades irá mejorando sin duda. Considero, sin embargo, que es importante entender el papel fundamental que juegan estas piezas de silicio en la implementación de los actuales y futuros modelos de AI, para poder gestionar eficientemente los proyectos de la empresa.
Carlos Alberto García
Data Scientist
Asseco Spain Group