Acompaña el evento final de la Maratón Behind the Code 2020: 05/12 - Online ¡Inscríbete ahora!

Despliegue y utilice una plataforma de deep learning de infraestructuras múltiples en Kubernetes

Descripción

Como un profesional del deep learning, usted desea confiabilidad y escalabilidad mientras orquesta sus trabajos de entrenamiento. Además, le gustaría hacerlo de una manera coherente en todas las múltiples bibliotecas. Con Fabric for Deep Learning (FfDL) en Kubernetes, es posible lograrlo si les da a los usuarios la capacidad de aprovechar las bibliotecas de deep learning como Caffe, Torch y TensorFlow en la nube de manera resiliente con el mínimo esfuerzo. La plataforma utiliza una capa de distribución y orquestación que facilita el aprendizaje a partir de una gran cantidad de datos en una duración razonable de tiempo en todos los nodos de computación. Una capa de aprovisionamiento de recursos permite la administración de trabajo flexible en recursos heterogéneos, como las unidades de procesamiento de gráfico (GPU) y las unidades centrales de procesamiento (CPU), en una nube de infraestructura como servicio (IaaS).

Visión general

Las redes neuronales profundas de entrenamiento, conocidas como el deep learning (parte de los métodos de aprendizaje automático), son muy complejas e intensas a nivel computacional. Un usuario típico de deep learning no está necesariamente expuesto a los detalles del hardware subyacente y la infraestructura del software, incluso las caras máquinas de GPU de configuración, que instalan bibliotecas de deep learning y administran los trabajos durante la ejecución para manejar las fallas y la recuperación. A pesar de la facilidad para obtener el hardware de las nubes de IaaS y pagar por hora, el usuario todavía necesita administrar esas máquinas, instalar las bibliotecas necesarias y garantizar la resiliencia de los trabajos de entrenamiento de deep learning.

Aquí es donde reside la oportunidad de realizar el deep learning. En este code pattern, le mostraremos cómo desplegar un tejido de deep learning en Kubernetes. Gracias al uso de los artefactos de arquitectura nativa en la nube como Kubernetes, los microservicios, gráficos de Helm y el almacenamiento de objetos, le mostramos cómo desplegar y utilizar un tejido de deep learning. El tejido abarca varios motores de deep learning como TensorFlow, Caffe y PyTorch. Combina la flexibilidad, la facilidad de uso y el ahorro de un servicio en la nube con el poder del deep learning. Encontrará fácil de utilizar y al usar las API de REST, es posible personalizar el entrenamiento con diferentes recursos según los requisitos o presupuestos del usuario. Permita que los usuarios se enfoquen en el deep learning y en las aplicaciones en vez de enfocarse en las fallas.

Flujo

flujo

  1. El implementador de FfDL despliega la base del código de FfDL en un clúster de Kubernetes. El clúster de Kubernetes está configurado para utilizar GPU, CPU o ambas y tiene acceso al almacenamiento de objetos compatibles con S3. Si no se especifica, se crea localmente un S3 pod simulado.
  2. Una vez desplegada, el científico de datos carga los datos de entrenamiento del modelo al almacenamiento de objetos compatibles con S3. FfDL asume que los datos ya se encuentran en el formato requerido como se indica por las diferentes infraestructuras de deep learning.
  3. El usuario crea un archivo de manifiesto del modelo de FfDL. El archivo de manifiesto contiene diferentes campos que describen el modelo en FfDL, su información de almacenamiento de objetos, sus requisitos de recursos y varios argumentos (incluso hiperparámetros) que se requieren para la ejecución del modelo durante el entrenamiento y la prueba. El usuario luego interactúa con FfDL al usar CLI/SDK o IU para desplegar el archivo de manifiesto del modelo de FfDL con un archivo de definición de modelo. El usuario lanza el trabajo de entrenamiento y supervisa su progreso.
  4. El usuario descarga el modelo entrenado y los registros correspondientes una vez que el trabajo de entrenamiento haya finalizado.

Instrucciones

Encuentre los datos detallados para este patrón en README (En Inglés). Los pasos le mostrarán cómo se hace lo siguiente:

  1. Compile y codifique y cree imágenes de Docker.
  2. Instale los componentes de FfDL con la instalación de Helm.
  3. Ejecute un script para configurar Grafana para monitorear FfDL.
  4. Obtenga sus puntos finales de Grafana, IU web de FfDLy API de REST de FfDL.
  5. Ejecute algunos trabajos sencillos para formar un modelo de red convolucional con TensorFlow y Caffe.

Aviso

El contenido aquí presentado fue traducido de la página IBM Developer US. Puede revisar el contenido original en este link.