Estás leyendo la publicación: Cree su primera canalización de ML en Kubeflow
Las canalizaciones de Kubeflow son un método excelente para crear operaciones de aprendizaje automático portátiles y escalables. Es un componente del ecosistema Kubeflow más grande, que busca minimizar la complejidad y el tiempo necesarios para entrenar e implementar modelos de aprendizaje automático a escala. Entonces, en este artículo, cubriremos Kubeflow de manera teórica y práctica mediante la implementación de una canalización desde un Jupyter Notebook en particular. A continuación se presentan los puntos principales que vamos a discutir a través de este artículo.
Tabla de contenido
- ¿Qué es Kubeflow?
- ¿Cuáles son los casos de uso de Kubeflow?
- Configuración del entorno
- Creación de canalización de aprendizaje automático
Primero comprendamos el ecosistema de Kubeflow.
¿Qué es Kubeflow?
Kubeflow es un conjunto de herramientas de orquestación de pila de aprendizaje automático de extremo a extremo basado en Kubernetes para implementar, escalar y administrar sistemas complejos. Las características de Kubeflow, como operar servidores JupyterHub, que permiten que numerosas personas contribuyan a un proyecto al mismo tiempo, han demostrado ser una gran herramienta. Kubeflow enfatiza la gestión detallada del proyecto, así como el seguimiento y análisis en profundidad de dicho proyecto.
Los científicos e ingenieros de datos ahora pueden crear una canalización completamente funcional con pasos segmentados. Estas fases segmentadas en Kubeflow son componentes poco acoplados de una canalización de ML, una característica que no se ve en otros marcos que permiten que las canalizaciones se reutilicen y modifiquen para cargas de trabajo posteriores.
Kubeflow es un proyecto gratuito y de código abierto que facilita y coordina la ejecución de flujos de trabajo de aprendizaje automático en clústeres de Kubernetes (un sistema de orquestación de contenedores de código abierto para automatizar la implementación, el escalado y la administración de software).
Este es un marco nativo de la nube basado en Kubernetes para usar Machine Learning en sistemas en contenedores. La integración de Kubeflow y la expansión de Kubernetes se han vuelto fluidas, y Kubeflow se creó para ejecutarse en cualquier lugar donde Kubernetes tenga GCP, AWS, Azure, etc.
¿Cuáles son los casos de uso de Kubeflow?
Los modelos entrenados a menudo se ensamblan en un solo archivo y se almacenan en un servidor o computadora portátil. Luego, el modelo se carga en un proceso de servidor que acepta solicitudes de red para la inferencia del modelo, y el archivo se copia en una máquina que aloja la aplicación. Cuando varias aplicaciones requieren una salida de inferencia de modelo de un solo modelo, el proceso se vuelve más complicado, especialmente cuando se requieren actualizaciones y reversiones.
Kubeflow nos permite actualizar y revertir numerosas aplicaciones o servidores al mismo tiempo. Una vez que se completa la transacción de actualización, puede cambiar su modelo en un solo lugar y asegurarse de que todas las aplicaciones cliente reciban las actualizaciones rápidamente.
Es común que se compartan configuraciones y recursos de aprendizaje automático. Se requiere un entorno de aprendizaje automático multiinquilino para permitir un uso compartido simple y efectivo. Kubeflow Pipelines se puede usar para hacer uno.
Debe intentar proporcionar a cada colaborador su propio espacio. Kubernetes le permite programar y administrar contenedores, así como realizar un seguimiento de los trabajos pendientes y en ejecución para cada colaborador.
Para saber más sobre Kubeflow, siga estos artículos donde uno analiza las características, los casos de uso y el otro lo compara con MLFlow.
En la siguiente sección, analizaremos cómo podemos configurar entornos para crear una canalización de ML y, más adelante, crearemos una canalización de ML a partir de Jupyter Notebook.
Configuración del entorno
La configuración del entorno de Kubeflow viene en muchas formas, aquí la configuración del entorno significa crear una instancia virtual del tablero de la interfaz de usuario de Kubeflow donde realmente trabajaremos. El despliegue se puede realizar de forma local o servicios overcloud como Google Cloud Platform (GCP) o Amazon web services (AWS).
Puede seguir esta guía de instalación oficial para la implementación local, aunque la implementación local requiere especificaciones bastante altas, como mucho espacio de almacenamiento y RAM, mientras que la implementación basada en la nube es bastante simple y directa con MiniKF. MiniKF es una versión más liviana de Kubeflow que ahora tiene una solución llave en mano para el desarrollo, prueba e implementación de modelos.
Podemos configurar esto en GCP o AWS. Puede seguir aquí la instalación oficial para cualquiera de los dos. Cuando realice todos los pasos de instalación e inicie sesión en el tablero, la ventana debería verse así.
En el panel de la izquierda, hay varias funciones presentes que forman parte de la creación de canalizaciones. A continuación se muestran estos componentes.
- Hogar: El hogar es la ubicación central donde puede encontrar los materiales más recientes, los experimentos en curso y la documentación relevante.
- Cuadernos: Para administrar servidores para notebooks.
- TensorBoards: Para administrar los servidores de TensorBoard, use TensorBoards.
- Modelos: Para manejar los modelos de KFServing que se han implementado.
- Volúmenes: Para gestionar los Volúmenes del clúster.
- Experimentos (AutoML): Para realizar un seguimiento de las pruebas de Katib.
- Experimentos (KFP): Para administrar los experimentos de Kubeflow Pipelines (KFP).
- Tubería: Para realizar un seguimiento de las tuberías de KFP.
- Carreras: Para realizar un seguimiento de las carreras de KFP.
- Ejecuciones recurrentes: Para controlar las ejecuciones periódicas de KFP, vaya a Ejecuciones periódicas.
- Artefactos: Se rastrean los artefactos de metadatos de ML (MLMD).
- Ejecuciones: En MLMD, las ejecuciones se utilizan para realizar un seguimiento de las ejecuciones de varios componentes.
Creación de canalización de aprendizaje automático
A medida que hacemos nuestro trabajo en cuadernos, podemos simplemente conectar directamente nuestro cuaderno aquí a través del laboratorio de Jupyter y construir una canalización sofisticada a partir del cuaderno sofisticado. Dividiremos este procedimiento de construcción paso a paso.
Paso 1: Lanzar servidor de notebook
Una vez que configure el tablero, el servidor de la computadora portátil se puede iniciar desde la pestaña de la computadora portátil (la segunda opción en el panel) y crear un nuevo servidor para la computadora portátil mencionando cualquier nombre aleatorio para el servidor como se muestra en la imagen a continuación.
Después de la creación del servidor, conéctese a él y se abrirá la instancia de laboratorio de Jupyter en una nueva pestaña.
Paso 2: Conexión del portátil
Aquí puedes subir tu propio cuaderno o desde la terminal, puedes clonarlo desde el repositorio respectivo. Aquí estoy usando un cuaderno del repositorio de Kubeflow para eso necesitamos abrir la terminal y hacer un clonar https://github.com/kubeflow-kale/kale y abra y explore el cuaderno de conjuntos de datos titanic ml desde la carpeta de ejemplos.
Paso a paso, ejecute el cuaderno para ver si hay algún problema de dependencia. Si falta una biblioteca, agréguela en la parte superior del cuaderno y vuelva a ejecutar todas las celdas.
En este cuaderno, se utilizará el aprendizaje automático para crear un modelo que prediga qué pasajeros del Titanic sobrevivieron al naufragio. El conjunto de datos resume el destino de los pasajeros del Titanic según su estatus socioeconómico (clase), sexo, edad y supervivencia.
Paso 3: Convierta el cuaderno en canalización de Kubeflow
Después de ejecutar e inspeccionar el cuaderno, haga clic en el botón Kubeflow en el panel izquierdo para iniciar el método de creación de canalización. Examine cómo numerosas celdas se han convertido en parte de un solo paso de canalización y cómo un paso de canalización puede depender de pasos anteriores, que se pueden cambiar en función del flujo deseado.
Ahora seleccione Compilar y ejecutar en el menú desplegable. Realice un seguimiento del progreso de la instantánea, así como del desarrollo de Pipeline Run. Luego, para ver la ejecución, haga clic en el enlace para pasar a la interfaz de usuario de Kubeflow Pipelines. Llevará unos minutos ensamblar toda la tubería, así que tenga paciencia.
El proceso anterior se muestra debajo de la imagen.
Ahora que la canalización se ha creado y está lista para funcionar, es hora de ver los datos. Se puede acceder al tablero de Kubeflow Pipelines haciendo clic en el enlace del cuaderno ejecutar o haciendo clic en la pestaña ejecutar dentro del tablero.
Se mostrarán los componentes de canalización que se han definido. Cuando hayan terminado, se modificará la ruta de canalización de datos. Puede explorar cada tubería haciendo clic en ella y las observaciones respectivas se pueden ver en la ventana siguiente.
Eso es todo, por ahora, hemos creado con éxito la primera canalización sin problemas.
Ultimas palabras
Kubeflow y las canalizaciones de Kubeflow ahora se han convertido en una plataforma MLOps revolucionaria donde los trabajadores en período de prueba pueden usar directamente su computadora portátil para producir la canalización. A través de esta publicación, al principio, hemos visto conceptualmente qué es Kubeflow y, prácticamente, desde la creación del entorno hasta la implementación de la tubería, discutimos a fondo todo.