Deep Learning e IA en el cloud con almacenamiento NFS

  • Opinión

Jaime Balaña NetApp

A pesar de que pueda parecer un desarrollo tecnológico vertiginoso, el Deep Learning no apareció de la mañana a la noche. Sus inicios datan de los años 40, y marcaron el comienzo de donde nos encontramos hoy: más cerca que nunca de desarrollar una auténtica inteligencia artificial (IA). Pero ¿qué inclinó la balanza en las últimas décadas? La respuesta es sencilla: los datos.

Opinión de Jaime Balañá, director técnico de NetApp Iberia

Tenemos más datos a nuestra disposición, además de un mayor acceso y distribución de ellos, gracias en gran medida al crecimiento del cloud. Si esto se asocia a las mejoras en la potencia computacional, la aplicación del Deep Learning es enorme. Influye directamente en el software altamente preciso de diagnóstico médico, mejoras en los coches autodirigidos, videojuegos, marketing y traducción automática. 

Como ya habrás imaginado, el Deep Learning demanda un almacenamiento de alto rendimiento para manejar todos esos datos. Cloud Volumes Service para AWS y Cloud Volumes Service para Google Cloud es una solución que facilita, al mismo tiempo, la puesta en marcha y gestión de grandes unidades NFS.

Cómo se entrena el Deep Learning

¿Cómo se consumen las cargas de trabajo de Deep Learning? El punto neurálgico del desarrollo del Deep Learning y la IA son los científicos de datos. Ellos analizan creativamente conjuntos de datos para identificar y consolidar la estrategia de aplicaciones de una organización. Y el Deep Learning es una de las herramientas que utilizan: aplican modelos y algoritmos que entrenan un conjunto de datos recopilados, de modo que ese modelo pueda más tarde realizar una tarea específica por sí mismo con gran precisión.

Comienza con la fase de ingesta de datos. Aquí es donde los datos que van a utilizarse a efectos de entrenamiento se obtienen o importan de una fuente y, entonces, según cada caso, se depuran y normalizan. Una vez que se ha completado la fase de ingesta de datos, los científicos de datos ya disponen de un conjunto de datos para entrenar la IA. Ahora comienza la fase de entrenamiento del Deep Learning. Esta fase se caracteriza por las necesidades de computación paralela de alto nivel que normalmente se ejecuta mediante clústeres basados en GPU. El conjunto de datos en su totalidad debe alimentar la red neuronal varias veces para ajustar los hiperparámetros y acercarse al resultado deseado. 

En el léxico de la IA, estos ciclos (donde todo el conjunto de datos alimenta la red neuronal) se llaman «epoch». Dentro de cada epoch no es posible alimentar el conjunto de datos al completo de una vez en la red neuronal, es necesario realizar particiones en secciones de datos más pequeñas llamadas «batch» (lote). El tamaño del lote es el número de muestras de datos que pasarán por la red neuronal en un momento determinado. El número de estos lotes necesarios para completar un epoch se conoce como «iteración». 

El Deep Learning comienza como un proceso aleatorio en el que los hiperparámetros que usa el modelo para calcular los resultados se seleccionan inicialmente casi aleatoriamente. En función de los resultados obtenidos al final de cada lote, los científicos de datos calculan cuánto se desvían los resultados predichos por el modelo de IA de la «verdad». Usando un método denominado propagación, los científicos de datos pueden ajustar los valores de los hiperparámetros que influyen en esos resultados. El siguiente lote usa estos valores ajustados y comienza el proceso de entrenamiento con un nuevo lote hasta que los resultados generados por el modelo comienzan a ser más realistas.

Almacenamiento de datos para Deep Learning 

El flujo general que sigue una carga de trabajo de Deep Learning durante una fase de entrenamiento conforma en gran medida las necesidades de almacenamiento de los científicos de datos. El Deep Learning impone fuertes demandas en la computación paralela, que a su vez demanda un elevado ancho de banda de entrada del Data Lake del que se alimenta. El Deep Learning es una tarea de I/O con un perfil de lectura intensa que requiere de un alto rendimiento del almacenamiento. 

Es necesario almacenar y mantener accesibles versiones de todo el trabajo realizado para su uso en cualquier momento. Los periodos de entrenamiento de los conjuntos de datos pueden durar días, y las interrupciones accidentales pueden ser caras y prolongadas. Los científicos de datos necesitan guardar constantemente el progreso de cada epoch de entrenamiento por si necesitan retomar el entrenamiento en un punto determinado. También necesitan almacenar los resultados de cada epoch y ajustar los valores para gestionar el entrenamiento de cada modelo y hacer un seguimiento de los cambios en la exactitud de los resultados. 

Con todos estos requisitos de Big Data surge la necesidad de sistemas de archivos y soluciones de almacenamiento de gran capacidad que cumplan con las demandas de rendimiento de cargas de trabajo intensivas como alimentar el clúster durante los intervalos de entrenamiento del Deep Learning. Los científicos de datos utilizan a menudo un sistema de archivos eficiente como NFS, un importante contendiente en este campo. Esto les permite gestionar las demandas de alta capacidad, densidad, rendimiento, latencia y operaciones de I/O de los procesos de entrenamiento. Estos requisitos fundamentan todo el proceso de Deep Learning. NFS en el cloud ofrece ventajas específicas en este caso. Por ejemplo, un recurso compartido de archivos en el cloud puede escalarse y asegura una disponibilidad y rentabilidad totalmente distintas a las de un sistema en el entorno local.

También es importante que los científicos de datos puedan crear y compartir instantáneamente copias de cada versión, para que otros miembros del equipo puedan acceder a ellas, copiar el modelo y realizar las continuas pruebas necesarias durante la fase de entrenamiento.

Otro requisito es un sistema de archivos fácil de administrar y capaz de gestionar patrones de I/O tanto aleatorios como secuenciales sin sacrificar en rendimiento. Aquí es donde interviene Cloud Volumes Service para AWS y Cloud Volumes Service para Google Cloud.

Cumplir con las demandas de las cargas de trabajo de Deep Learning

Cloud Volumes Service para AWS y para Google Cloud admite la infraestructura de almacenamiento que requiere el Deep Learning durante la fase que más recursos demanda, cuando se entrena el algoritmo de IA. Al usar Cloud Volumes Service, puedes poner en marcha grandes recursos de NFS con tan solo unos clics, sin necesidad de tener que gestionar la configuración de la pila de almacenamiento subyacente.

Estos recursos compartidos NFS pueden albergar los conjuntos de datos de entrenamiento. Cada volumen de alta disponibilidad proporciona niveles de IOPS de más de 200k en varios clientes.. Esto se traduce en unos 3000 MB/s en lecturas secuenciales. Y solo en un volumen. También puedes ajustar el nivel de rendimiento de cada volumen sobre la marcha.

Mediante sus políticas de copias Snapshot automáticas y programables, puedes restablecer y replicar estas copias de solo lectura de los volúmenes al instante para un acceso compartido. Esto simplifica el proceso para otros miembros del equipo, que pueden así acceder a la información y realizar pruebas simultáneamente clonando volúmenes y montándolos desde otras instancias. 

Jaime Balañá, director técnico de NetApp Iberia