Machine Learning con Red Hat Openshift por el Ministerio de Defensa de Israel
|Case Study: ML on OpenShift with NVIDIA DGX at MOD Israel
Introducción al Aprendizaje Automático en OpenShift
- El video comienza con una introducción al tema del aprendizaje automático (machine learning) automatizado utilizando OpenShift. Se menciona que los presentadores son parte del Cuerpo de Defensa de Israel (IDF) y han desarrollado una plataforma de aprendizaje automático avanzada sobre OpenShift y Kubernetes.
- Se discute la importancia de utilizar modelos de aprendizaje automático para facilitar el trabajo de los científicos de datos y los ingenieros de software en la organización.
- El aprendizaje automático se define como el proceso de aprender de datos previos para hacer predicciones sobre el futuro, lo cual será ilustrado a través de un ejemplo concreto relacionado con diagnósticos médicos.
«El aprendizaje automático es simplemente aprender de datos previos para predecir el futuro.»
Desafíos en el Proceso de Aprendizaje Automático
- Se presentan diversos desafíos en la creación y el despliegue de modelos de aprendizaje automático. El primero se refiere a la infraestructura, ya que se requieren muchos recursos únicos como GPU y CPU, lo que puede dificultar su asignación dinámica y económica.
- Otro desafío es la falta de historia en el ciclo de construcción de modelos. Las evaluaciones de modelos no se almacenan adecuadamente, lo que impide reutilizar información valiosa en proyectos futuros.
- La optimización también se menciona como un desafío, donde se busca una herramienta que permita explorar un amplio espacio de búsqueda para encontrar la mejor combinación de modelos. Finalmente, se discute la brecha de conocimiento entre científicos de datos y ingenieros de software que puede impedir que los modelos lleguen a producción.
«El proceso de aprendizaje automático puede ser exhaustivo, y solo un pequeño porcentaje de modelos llega a producción.»
Propuestas de Solución para los Desafíos
- Para abordar el desafío del entorno, se implementa Jupyter Hub, una herramienta común entre los científicos de datos, que permite gestionar recursos de manera más eficiente y dinámica a través de la creación de entornos específicos para cada proyecto.
- Respecto al problema de la historia, se propone construir un rastreador de modelos de aprendizaje automático que registre las distintas configuraciones y resultados obtenidos en experimentos previos, asegurando que esta información esté disponible para futuras referencias.
- Se abordará la cuestión de la optimización y la implementación de modelos, facilitando la colaboración entre científicos de datos e ingenieros para que ambos puedan trabajar juntos y asegurar que los modelos se desplieguen apropiadamente.
«Resolveremos la falta de historial almacenando los resultados y configuraciones de cada modelo en nuestro rastreador de ML.»
Creación y gestión de proyectos en OpenShift
- Se presenta la interfaz de usuario de la plataforma OpenShift, donde se puede crear un nuevo proyecto solo especificando el nombre y la descripción del mismo. Además, el usuario puede controlar qué recursos se utilizarán para ejecutar los pods y las cargas de trabajo necesarias para sus experimentos.
- Después de crear el proyecto, se observa un proyecto vacío y se inicia la ejecución de un algoritmo de árbol de decisión con diferentes parámetros, importando un paquete de Python previamente escrito que se empleará durante la representación del modelo.
- Se realiza un seguimiento de las métricas de precisión y otros elementos específicos del modelo para permitir un análisis detallado de los experimentos realizados.
«Estamos creando un seguimiento aquí y sabemos cómo inputar el objeto del modelo que damos como entrada.»
Optimización de modelos de aprendizaje automático
- La plataforma permite a los equipos de aprendizaje automático ayudar a los científicos de datos a optimizar modelos con facilidad mediante la implementación de un algoritmo de búsqueda inteligente. En este proceso, se definen las operaciones básicas de ciencia de datos y una función objetivo, además de establecer un espacio de búsqueda entre dos algoritmos: árboles de decisión y k-vecinos más cercanos.
- Se lleva a cabo la búsqueda a través de un amplio rango de parámetros para cada algoritmo, especificando cuántas combinaciones se evaluarán y ejecutando el ajuste en OpenShift. Esto se logra sin tener que examinar todas las combinaciones posibles, utilizando una búsqueda inteligente que mejora la eficiencia.
«Estamos definiendo un espacio de búsqueda realmente grande para nuestro problema de optimización.»
Despliegue de modelos y arquitectura de GPU en OpenShift
- Al abordar los desafíos de despliegue, se hace hincapié en la simplicidad requerida para especificar los marcos de trabajo y las funciones de preprocesamiento necesarias para la implementación de modelos. El sistema garantiza que los modelos se puedan escalar eficientemente a través de OpenShift.
- Se describen los componentes esenciales de la arquitectura, incluyendo el uso de nodos de computación con varias tarjetas NVIDIA GPU, lo cual es crucial para ejecutar modelos de aprendizaje automático más complejos. Se menciona un problema en la asignación de GPUs en el que un pod no puede compartir su GPU con otro pod, lo que lleva al desarrollo de un plugin personalizado para la programación de GPU que permite un uso más eficiente de los recursos.
«Cada pod puede utilizar su GPU, y el problema es que no se optimiza el uso completo de las GPUs disponibles.»
Implementación de AutoML para simplificar la ciencia de datos
- La vídeo también presenta AutoML como una tecnología que está revolucionando el campo, permitiendo que los modelos de aprendizaje automático sean construidos automáticamente a partir de conjuntos de datos como archivos CSV. Este proceso automatizado permite a los científicos de datos evitar la necesidad de conocimiento exhaustivo en codificación o ciencia de datos para obtener resultados de alta calidad.
- Se realiza una demostración de carga de datos y extracción de columnas relevantes para el modelo, seguido por la optimización de modelos complejos que pueden requerir mucho tiempo de computación, dependiendo del tamaño del conjunto de datos. El resultado final es la creación de un modelo que es expuesto como una API REST para realizar predicciones.
«AutoML automatiza el trabajo del científico de datos, permitiendo construir modelos de calidad con solo proporcionar un conjunto de datos.»
Pruebas de modelos y arquitectura de OpenShift
- Se está llevando a cabo un proceso de prueba para los modelos, permitiendo soporte para diferentes proyectos. Cada proyecto puede tener múltiples implementaciones, lo que permite intercambiar los modelos servidos a través de una API. Esto es especialmente útil para que los científicos de datos prueben los nuevos modelos que están desarrollando.
- La infraestructura que soporta este proceso incluye implementaciones escalables de modelos, un hub de Jupyter y múltiples notebooks. La organización utiliza un almacenamiento de objetos llamado MinIO para guardar modelos y rastrear experimentos. Además, se emplea PostgreSQL como base de datos para la aplicación.
- La comunicación dentro de la arquitectura se logra a través de un clúster de RabbitMQ, que permite mantener una comunicación estable entre las tareas de optimización que se realizan en el clúster.
«Cada proyecto puede tener múltiples implementaciones, lo que permite intercambiar los modelos servidos a través de una API.»
Impacto en la organización y crecimiento
- El uso de modelos de aprendizaje automático ha llevado a una mejora promedio del 30% en rendimiento y otras métricas evaluadas. En el último medio año, la cantidad de modelos de aprendizaje automático aumentó en un 70%, lo que también contribuyó a un incremento significativo del 600% en el número de usuarios.
- Sin embargo, la organización se ha enfrentado a varios desafíos, como la depuración remota de código. No todos los científicos de datos pueden trabajar en Jupyter, ya que algunos necesitan máquinas locales que a menudo requieren una GPU para el procesamiento.
- Se está buscando una forma de permitir que el código se ejecute en un pod en el servidor con GPU, mientras que el científico de datos puede trabajar en su máquina local. Además, la automatización en el almacenamiento de experimentos es una área de mejora en la que se desea simplificar el proceso de guardar qué modelo, métrica o resultado es relevante.
«La automatización en el almacenamiento de experimentos es un área de mejora en la que se desea simplificar el proceso.»
Desafíos técnicos y colaboración en Open Data Hub
- Existen desafíos para gestionar múltiples clústeres de OpenShift y Kubernetes, especialmente en diferentes ubicaciones. Esto implica la necesidad de operar y monitorear estos clústeres de manera efectiva.
- El proyecto Open Data Hub se ha desarrollado como una arquitectura de referencia que ayuda a construir servicios de aprendizaje automático en OpenShift. Este proyecto no solo está diseñado para su uso interno, sino que también está siendo publicado como código abierto para que otros lo utilicen.
- Open Data Hub incluye diversas herramientas y tecnologías, como Kafka para el streaming y un hub de Jupyter que permite el uso de imágenes de notebooks preconstruidos. También cuenta con una biblioteca de IA que optimiza frameworks como TensorFlow, basándose en una infraestructura abierta.
«Open Data Hub se ha desarrollado como una arquitectura de referencia que ayuda a construir servicios de aprendizaje automático en OpenShift.»