GPU vs Cloud en procesos Machine Learning (ML)

El reciente auge que ha experimentado el sector del Data Science ha impulsado a las organizaciones a reorientar sus estrategias de negocio mediante la transformación digital, aspirando a convertirse en “Data driven companies”. De una cantidad ingente de datos se derivan tanto una mayor facilidad para identificar oportunidades de negocio, valorar su potencial,  entender sus claves (“insights”). Son algunos ejemplos de cómo crear valor con los datos.

Por lo tanto, es necesario utilizar máquinas cada vez más potentes. Será necesario contar con una buena CPU, a ser posible con un buen número de cores, de la misma manera, y en cuanto a la memoria RAM, es usual que los Data Scientists requieran una RAM de 64 o 128GB de memoria, aunque en ocasiones esto tampoco es suficiente.

Por otro lado, en técnicas tanto de Machine Learning como de Deep Learning, ha cobrado gran importancia el uso de las GPU, unidades de procesamiento que combinan capacidad de cálculo y memoria para acelerar los procesos de cálculo. Por ejemplo, dentro de los paquetes de Python, las librerías XGBoost o Keras  incluyen procesos optimizados para la aceleración de GPU.

Debido a este gran número de requerimientos que necesitan las herramientas de un Data Scientist, Nvidia ha lanzado recientemente una máquina que reúne todo el hardware y software necesario para el  Data Scientist. Algunas de las técnicas soportadas son:

 

Machine Learning 

  • scikit-learn
  •  pandas
  • numpy
  • scipy
  • Xgboost

 

Deep Learning

  • TensorFlow
  • Keras
  • NLTK

 

No obstante, también se puede optar por la opción de los entornos cloud, ahora bien, ¿Qué es un Entorno Cloud? “Significa almacenar y acceder a datos y programas a través de Internet en lugar de hacerlo directamente al disco duro de nuestro ordenador.” ¿Qué combinación es mejor? No se puede establecer un ranking de mejor o peor, lo primero que se debe establecer es la siguiente pregunta; ¿Utilizaré esta herramienta con mucha frecuencia o no?, ¿Necesitaré escalabilidad? Una vez determinadas estas cuestiones es más fácil decantarse con una u otra opción.