Estás leyendo la publicación: Una guía de Orchest para construir canalizaciones de ML
La creación de canalizaciones es uno de los procedimientos más importantes en cualquier tarea de desarrollo de aplicaciones. Podemos definir una canalización como una disposición de archivos que están interconectados y ejecutarlos en un flujo proporciona el objetivo final de la canalización. Hay una variedad de plataformas que están disponibles para brindar el servicio de construcción o fabricación de tuberías. Orchest es una de ellas y plataformas recientemente desarrolladas que comprenden los requisitos de los usuarios y proporcionan una interfaz de un solo lugar para construir canalizaciones. En este artículo, analizaremos la herramienta Orchest para crear canalizaciones de aprendizaje automático. Los puntos principales que se discutirán en el artículo se enumeran a continuación.
Tabla de contenido
- ¿Qué es Orquesta?
- Unirse a la orquesta
- Tubería de construcción
- Paso 1: Recopilación de datos
- Paso 2: Preprocesamiento de datos
- Paso 3: Definición del modelo
- Paso 4: Recopilación de precisión
Empecemos por entender qué es Orchest.
¿Qué es Orquesta?
Orchest es una herramienta que se puede utilizar para crear canalizaciones de aprendizaje automático. Usando esta biblioteca, podemos construir tuberías de una manera visualizada usando la interfaz de usuario provista por Orchest. Una de las mejores cosas de esta herramienta es que no requiere ninguna integración de terceros o DAG. Usar esta herramienta es muy fácil y podemos usar el laboratorio de Júpiter o VSCode con esta herramienta para construir nuestros modelos de aprendizaje automático en la configuración de canalización. Esta herramienta brinda a sus instalaciones varios lenguajes como python, R y Julia.
La compilación de canalizaciones en Orchest contiene los pasos que usamos para compilar el modelo y cada paso contiene un archivo ejecutable y la interfaz de usuario de Orchest los interconecta entre sí mediante los nodos. Esta herramienta crea una representación que nos informa sobre el flujo de datos de un paso a otro. Podemos elegir, soltar y conectar pasos muy fácilmente con esta herramienta y esta característica hace que Orchest sea fácil de usar. La visualización del progreso de la tubería nos ayuda a hacer que el flujo de datos sea preciso y también podemos depurar los códigos si encontramos algún error.
Para instalar este toolkit en nuestro entorno se requiere tener una versión de Docker Engine mayor o igual a 20.10.7. Para instalar este kit de herramientas en los sistemas operativos macOS y Linux necesitamos clonar e instalar Orchest en el entorno que podemos hacer usando el siguiente código
git clone https://github.com/orchest/orchest.git && cd orchest ./orchest install
Luego de clonar e instalar podemos iniciarlo usando las siguientes líneas de códigos:
./arranque de orquesta
Con las funciones mencionadas anteriormente, Orchest también ofrece otras integraciones, como que podemos crear una aplicación web utilizando streamlit o podemos escribir códigos para solicitar datos de Postgres SQL. En este artículo, nuestro objetivo es hacer una tubería usando Orchest. Para que podamos entender cómo se procesa. Comencemos por implementar una canalización que pueda clasificar los datos del iris.
¿Está buscando un repositorio completo de bibliotecas de Python utilizadas en ciencia de datos? echa un vistazo aquí.
Unirse a la orquesta
Antes de comenzar con la canalización de Orchest, debemos saber cómo podemos iniciar sesión o crear una cuenta con Orchest. Para ello podemos pasar por esta página. Después de crear una cuenta, podemos tener varias opciones con las que se puede construir fácilmente una canalización de datos. Para este artículo, estamos utilizando un espacio libre donde podemos practicar nuestros proyectos. Como espacio libre, obtenemos un volumen de 50 GB con 2 vCPU y una instancia de especificaciones de 8 GiB. Aquí puede obtener toda la canalización. La descripción general de esta canalización tendrá el siguiente aspecto si no cambia nada.
Comencemos con el proceso.
En primer lugar, para crear una canalización, debemos hacer clic en el botón Crear canalización que aparece en la pestaña de canalización después de iniciar nuestra instancia.
Después de crear una tubería y darle un nombre, obtendremos una página negra como se muestra en la imagen a continuación.
Aquí el nuevo botón de paso es para hacer nuestros pasos. Cada paso contendrá un archivo que puede ser de archivos de extensión R, Python, Julia. En mi tubería, he usado el lenguaje python. Echemos un vistazo a cómo hago una canalización para la clasificación del iris.
Tubería de construcción
Paso 1: Recopilación de datos
La siguiente imagen es para el paso que ayudó a la canalización a obtener los datos de sklearn.
En este paso, tenemos un archivo ipynb que se puede abrir en el cuaderno jupyter. En tiempo real también obtendremos un archivo jupyter para escribir códigos al que se puede acceder haciendo clic en el paso. Los siguientes códigos se han utilizado para completar este paso.
import orchest import pandas as pd from sklearn.datasets import load_iris df_data, df_target = load_iris(return_X_y=True) orchest.output((df_data, df_target), name=”data”)
En el código anterior, debemos centrarnos en la primera y la última línea. Hemos importado Orchest que ya está instalado en el entorno de notebooks y Orchest.output() nos ayuda a exportar la salida de un paso actual al siguiente paso y es necesario vincular el siguiente paso usando la flecha que obtenemos en la canalización interfaz.
Paso 2: Preprocesamiento de datos
Este paso consiste en los códigos para preprocesar los datos que obtenemos en el primer paso. La siguiente imagen es del segundo paso.
Debajo de este paso, podemos encontrar los siguientes códigos
importar orchest desde sklearn.model_selection importar train_test_split desde sklearn.pipeline importar Pipeline desde sklearn.preprocessing importar MinMaxScaler data = orchest.get_inputs() X, y = data[“data”]
scaler = MinMaxScaler() X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20) X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) orchest.output((X_train, y_train, X_test, y_test), nombre=”datos_entrenamiento”)
En este paso, hemos utilizado el módulo orchest.get_input() para importar los datos del paso anterior y dividir los datos y nuevamente pasar los datos divididos para el siguiente paso.
Paso 3: Definición del modelo
En este paso, podemos encontrar que hemos combinado tres pasos. Hemos modelado los datos de pasos preprocesados utilizando tres modelos (regresión logística, árbol de decisión, bosque aleatorio). La siguiente imagen es la representación de este paso.
El código que hemos introducido en estos pasos es similar. Acabamos de cambiar el modelo, por lo que a continuación he publicado los códigos de un solo modelo.
import numpy as np import orchest from sklearn.linear_model import LogisticRegression from sklearn.metrics import mean_squared_error # Recuperar los datos del paso anterior. datos = orquesta.get_inputs() X_tren, y_tren, X_prueba, y_prueba = datos[“training_data”]
model = LogisticRegression() model.fit(X_train, y_train) from sklearn.metrics import precision_score y_pred = model.predict(X_test) test_accracy = precision_score(y_test, y_pred) Orchest.output(test_accracy, name=”logistic-regression-accuracy” )
En los códigos anteriores, podemos ver cómo se recopilan los datos del paso anterior y cómo se impulsan los resultados finales del modelo para el siguiente paso.
Paso 4: Recopilación de precisión
Después de definir y ajustar el modelo, el paso 4 es nuestro paso final que recopilará la precisión de todos los modelos. La imagen de abajo es la imagen de nuestra canalización final.
Los códigos en los pasos finales son los siguientes:
import orchest data = orchest.get_inputs() for name, value in data.items(): if name != “unnamed”: print(f”\n{name:30} {value}”)
Producción:
Aquí podemos ver el resultado final. También podemos verificar esto usando el botón de registro en la interfaz de la canalización.
Aquí también podemos obtener la información si algún componente de las canalizaciones necesita correcciones de errores o tiene errores.
Ultimas palabras
En este artículo, discutimos qué es Orchest y descubrimos que es una manera fácil de construir la canalización de aprendizaje automático con él. También analizamos un ejemplo que se puede seguir para crear canalizaciones de aprendizaje automático. Después de iniciar sesión, puede ver este canal de ejemplo usando este enlace.