El proyecto consiste en desarrollar una plataforma capaz de entrenar y desplegar modelos de aprendizaje supervisado de manera distribuida, utilizando Ray, Docker y Scikit-Learn. La plataforma debe procesar conjuntos de datos etiquetados, entrenar múltiples modelos en paralelo y ponerlos en producción mediante una API funcional. El sistema debe reflejar los conceptos de computación distribuida aprendidos en el curso, garantizando escalabilidad, tolerancia a fallos y eficiencia.
-
Entrenamiento Distribuido
- Implementar un sistema que permita el entrenamiento simultáneo de múltiples modelos de machine learning sobre un mismo dataset.
- Soporte para cargar y procesar datos en un entorno distribuido.
-
Despliegue de Modelos (Serving)
- Desarrollo de una API REST o programática para interactuar con los modelos entrenados.
- Integración con contenedores Docker para garantizar portabilidad y reproducibilidad con autodescubrimiento.
-
Monitoreo y Visualización
- Generación de gráficas que muestren:
- Métricas de rendimiento durante el entrenamiento (ej: precisión, pérdida).
- Estadísticas de inferencia en producción (ej: latencia, uso de recursos).
- Generación de gráficas que muestren:
- ✅ Diseño de un sistema distribuido que cumpla con las funcionalidades básicas y opcionales.
- ✅ Implementación de tolerancia a fallos (ej: replicación de nodos, autodescubrimiento).
- ✅ Capacidad de entrenar múltiples datasets secuencialmente en una misma ejecución.
- ✅ Uso eficiente de Ray para gestión de tareas y recursos.
- Entrenamiento y serving de varios datasets simultáneamente.
- Estadísticas avanzadas: Comparativa de modelos, análisis de tendencias, etc.
- Eliminación del punto único de fallo en el líder del clúster.
- Interfaz gráfica (GUI) para gestión y visualización del sistema.
- Seguridad: Encriptación de comunicaciones y autenticación de nodos.
- Entrega: 22 Junio 11:59:59 pm