Visión general
Visión general
Este tutorial está diseñado para ayudarlo a aprender a crear sus propias canalizaciones de aprendizaje automático con TensorFlow Extended (TFX) y Apache Airflow como orquestador. Se ejecuta en Vertex AI Workbench y muestra la integración con TFX y TensorBoard, así como la interacción con TFX en un entorno de Jupyter Lab.
¿Qué estarás haciendo?
Aprenderá a crear una canalización de ML con TFX
- Una canalización TFX es un gráfico acíclico dirigido o "DAG". A menudo nos referiremos a las canalizaciones como DAG.
- Las canalizaciones TFX son apropiadas cuando implementará una aplicación ML de producción
- Las canalizaciones TFX son apropiadas cuando los conjuntos de datos son grandes o pueden llegar a serlo
- Las canalizaciones de TFX son apropiadas cuando la consistencia de la capacitación o el servicio es importante
- Las canalizaciones TFX son apropiadas cuando la gestión de versiones para la inferencia es importante
- Google usa canalizaciones TFX para producción ML
Consulte la Guía del usuario de TFX para obtener más información.
Seguirá un proceso típico de desarrollo de ML:
- Ingerir, comprender y limpiar nuestros datos
- Ingeniería de características
- Capacitación
- Análisis del rendimiento del modelo
- Hacer espuma, enjuagar, repetir
- Listo para la producción
Apache Airflow para orquestación de canalizaciones
Los orquestadores de TFX son responsables de programar los componentes de la canalización de TFX en función de las dependencias definidas por la canalización. TFX está diseñado para ser portátil a múltiples entornos y marcos de orquestación. Uno de los orquestadores predeterminados admitidos por TFX es Apache Airflow . Este laboratorio ilustra el uso de Apache Airflow para la organización de canalizaciones de TFX. Apache Airflow es una plataforma para crear, programar y monitorear flujos de trabajo mediante programación. TFX usa Airflow para crear flujos de trabajo como gráficos acíclicos dirigidos (DAG) de tareas. La interfaz de usuario enriquecida facilita la visualización de canalizaciones que se ejecutan en producción, supervisa el progreso y soluciona problemas cuando es necesario. Los flujos de trabajo de Apache Airflow se definen como código. Esto los hace más mantenibles, versionables, comprobables y colaborativos. Apache Airflow es adecuado para canalizaciones de procesamiento por lotes. Es ligero y fácil de aprender.
En este ejemplo, vamos a ejecutar una canalización TFX en una instancia mediante la configuración manual de Airflow.
Los otros orquestadores predeterminados admitidos por TFX son Apache Beam y Kubeflow. Apache Beam puede ejecutarse en múltiples backends de procesamiento de datos (Beam Ruunners). Cloud Dataflow es uno de esos corredores de haz que se puede usar para ejecutar canalizaciones TFX. Apache Beam se puede usar tanto para canalizaciones de transmisión como de procesamiento por lotes.
Kubeflow es una plataforma de ML de código abierto dedicada a hacer que las implementaciones de flujos de trabajo de aprendizaje automático (ML) en Kubernetes sean simples, portátiles y escalables. Kubeflow se puede usar como orquestador para canalizaciones TFFX cuando es necesario implementarlas en clústeres de Kubernetes. Además, también puede usar su propio orquestador personalizado para ejecutar una canalización TFX.
Lea más sobre Airflow aquí .
Conjunto de datos de taxis de Chicago
Utilizará el conjunto de datos de viajes en taxi publicado por la ciudad de Chicago.
Modelo Objetivo - Clasificación binaria
¿El cliente dará una propina de más o menos del 20%?
Configurar el proyecto de Google Cloud
Antes de hacer clic en el botón Iniciar laboratorio Lea estas instrucciones. Los laboratorios están cronometrados y no se pueden pausar. El temporizador, que comienza cuando hace clic en Iniciar laboratorio , muestra cuánto tiempo estarán disponibles los recursos de Google Cloud.
Este laboratorio práctico le permite realizar las actividades de laboratorio usted mismo en un entorno de nube real, no en un entorno de simulación o demostración. Lo hace brindándole nuevas credenciales temporales que utiliza para iniciar sesión y acceder a Google Cloud durante la duración del laboratorio.
Lo que necesita Para completar este laboratorio, necesita:
- Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome).
- Es hora de completar el laboratorio.
Cómo iniciar su laboratorio e iniciar sesión en Google Cloud Console 1. Haga clic en el botón Iniciar laboratorio . Si necesita pagar el laboratorio, se abre una ventana emergente para que seleccione su método de pago. A la izquierda hay un panel con las credenciales temporales que debe usar para este laboratorio.
- Copie el nombre de usuario y luego haga clic en Abrir Google Console . El laboratorio activa los recursos y luego abre otra pestaña que muestra la página Iniciar sesión .
Sugerencia: Abra las pestañas en ventanas separadas, una al lado de la otra.
- En la página Iniciar sesión , pegue el nombre de usuario que copió del panel izquierdo. Luego copie y pegue la contraseña.
- Haga clic en las páginas siguientes:
- Acepta los términos y condiciones.
No agregue opciones de recuperación o autenticación de dos factores (porque esta es una cuenta temporal).
No se registre para pruebas gratuitas.
Después de unos momentos, Cloud Console se abre en esta pestaña.
Activar CloudShell
Cloud Shell es una máquina virtual cargada con herramientas de desarrollo. Ofrece un directorio de inicio persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a sus recursos de Google Cloud.
En Cloud Console, en la barra de herramientas superior derecha, haga clic en el botón Activar Cloud Shell .
Haga clic en Continuar .
Se tarda unos minutos en aprovisionar y conectarse al entorno. Cuando está conectado, ya está autenticado y el proyecto se establece en su _ID DE PROYECTO. Por ejemplo:
gcloud
es la herramienta de línea de comandos para Google Cloud. Viene preinstalado en Cloud Shell y admite la finalización de pestañas.
Puede enumerar el nombre de la cuenta activa con este comando:
gcloud auth list
(Producción)
ACTIVO: * CUENTA: estudiante-01-xxxxxxxxxxxx@qwiklabs.net Para configurar la cuenta activa, ejecute: $ gcloud config set account
ACCOUNT
Puede enumerar el ID del proyecto con este comando: gcloud config list project
(Salida)
[núcleo] proyecto =
(Salida de ejemplo)
[núcleo] proyecto = qwiklabs-gcp-44776a13dea667a6
Para obtener la documentación completa de gcloud, consulta la descripción general de la herramienta de línea de comandos de gcloud .
Habilitar los servicios de Google Cloud
- En Cloud Shell, use gcloud para habilitar los servicios que se usan en el laboratorio.
gcloud services enable notebooks.googleapis.com
Implementar una instancia de Vertex Notebook
- Haga clic en el menú de navegación y vaya a Vertex AI , luego a Workbench .
En la página de instancias de Notebook, haga clic en Nuevo Notebook .
En el menú Personalizar instancia, seleccione TensorFlow Enterprise y elija la versión de TensorFlow Enterprise 2.x (con LTS) > Sin GPU .
En el cuadro de diálogo Nueva instancia de notebook , haga clic en el ícono de lápiz para Editar las propiedades de la instancia.
Para Nombre de la instancia , ingrese un nombre para su instancia.
Para Región , seleccione
us-east1
y para Zona , seleccione una zona dentro de la región seleccionada.Desplácese hacia abajo hasta Configuración de la máquina y seleccione e2-standard-2 para Tipo de máquina.
Deje los campos restantes con su valor predeterminado y haga clic en Crear .
Después de unos minutos, la consola Vertex AI mostrará el nombre de su instancia, seguido de Open Jupyterlab .
- Haga clic en Abrir JupyterLab . Se abrirá una ventana de JupyterLab en una nueva pestaña.
Configurar el entorno
Clonar el repositorio de laboratorio
A continuación, clonará el repositorio tfx
en su instancia de JupyterLab. 1. En JupyterLab, haga clic en el ícono Terminal para abrir una nueva terminal.
Cancel
para compilación recomendada.
- Para clonar el repositorio
tfx
Github, escriba el siguiente comando y presione Entrar .
git clone https://github.com/tensorflow/tfx.git
- Para confirmar que ha clonado el repositorio, haga doble clic en el directorio
tfx
y confirme que puede ver su contenido.
Instalar dependencias de laboratorio
- Ejecute lo siguiente para ir a la
tfx/tfx/examples/airflow_workshop/taxi/setup/
, luego ejecute./setup_demo.sh
para instalar las dependencias del laboratorio:
cd ~/tfx/tfx/examples/airflow_workshop/taxi/setup/
./setup_demo.sh
El código anterior será
- Instale los paquetes necesarios.
- Cree una carpeta de
airflow
de aire en la carpeta de inicio. - Copie la carpeta
dags
de la carpetatfx/tfx/examples/airflow_workshop/taxi/setup/
a la carpeta~/airflow/
. - Copie el archivo csv de
tfx/tfx/examples/airflow_workshop/taxi/setup/data
a~/airflow/data
.
Configuración del servidor Airflow
Cree una regla de firewall para acceder al servidor de flujo de aire en el navegador
- Vaya a
<a href="https://console.cloud.google.com/networking/firewalls/list">https://console.cloud.google.com/networking/firewalls/list</a>
y asegúrese de el nombre del proyecto se selecciona apropiadamente - Haga clic en la opción
CREATE FIREWALL RULE
en la parte superior
En el cuadro de diálogo Crear un cortafuegos , siga los pasos que se indican a continuación.
- Para Nombre , coloque
airflow-tfx
. - Para Prioridad , seleccione
1
. - Para Destinos , seleccione
All instances in the network
. - Para rangos de IPv4 de origen , seleccione
0.0.0.0/0
- Para Protocolos y puertos , haga clic en
tcp
e ingrese7000
en el cuadro junto atcp
- Haz clic
Create
.
Ejecute el servidor de flujo de aire desde su shell
En la ventana Terminal de Jupyter Lab, cambie al directorio de inicio, ejecute el comando airflow users create
para crear un usuario administrador para Airflow:
cd
airflow users create --role Admin --username admin --email admin --firstname admin --lastname admin --password admin
Luego ejecute el airflow webserver
de aire y el comando del airflow scheduler
de flujo de aire para ejecutar el servidor. Elija el puerto 7000
ya que está permitido a través del firewall.
nohup airflow webserver -p 7000 &> webserver.out &
nohup airflow scheduler &> scheduler.out &
Consigue tu ip externa
- En Cloud Shell, use
gcloud
para obtener la IP externa.
gcloud compute instances list
Ejecutar un DAG/Pipeline
en un navegador
Abra un navegador y vaya a http://
- En la página de inicio de sesión, ingrese el nombre de usuario (
admin
) y la contraseña (admin
) que eligió al ejecutar el comandoairflow users create
.
Airflow carga DAG desde archivos fuente de Python. Toma cada archivo y lo ejecuta. Luego carga cualquier objeto DAG de ese archivo. Todos los archivos .py
que definen objetos DAG se enumerarán como canalizaciones en la página de inicio de flujo de aire.
En este tutorial, Airflow escanea la carpeta ~/airflow/dags/
en busca de objetos DAG.
Si abre ~/airflow/dags/taxi_pipeline.py
y se desplaza hasta la parte inferior, puede ver que crea y almacena un objeto DAG en una variable llamada DAG
. Por lo tanto, aparecerá como una tubería en la página de inicio de flujo de aire como se muestra a continuación:
Si hace clic en taxi, será redirigido a la vista de cuadrícula del DAG. Puede hacer clic en la opción Graph
en la parte superior para obtener la vista gráfica del DAG.
Activar la tubería de taxi
En la página de inicio puede ver los botones que se pueden usar para interactuar con el DAG.
Debajo del encabezado de acciones , haga clic en el botón de activación para activar la canalización.
En la página del DAG de taxi, use el botón de la derecha para actualizar el estado de la vista de gráfico del DAG a medida que se ejecuta la canalización. Además, puede habilitar la actualización automática para indicarle a Airflow que actualice automáticamente la vista del gráfico cuando cambie el estado.
También puede usar la CLI de Airflow en la terminal para habilitar y activar sus DAG:
# enable/disable
airflow pause <your DAG name>
airflow unpause <your DAG name>
# trigger
airflow trigger_dag <your DAG name>
Esperando a que se complete la canalización
Una vez que haya activado su canalización, en la vista de DAG, puede ver el progreso de su canalización mientras se ejecuta. A medida que se ejecuta cada componente, el color del contorno del componente en el gráfico DAG cambiará para mostrar su estado. Cuando un componente haya terminado de procesarse, el contorno se volverá verde oscuro para mostrar que ha terminado.
Entendiendo los componentes
Ahora veremos los componentes de esta canalización en detalle y examinaremos individualmente los resultados producidos por cada paso de la canalización.
En JupyterLab, vaya a
~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/
Abra notebook.ipynb.
Continúe con el laboratorio en el cuaderno y ejecute cada celda haciendo clic en Ejecutar ( ) icono en la parte superior de la pantalla. Alternativamente, puede ejecutar el código en una celda con SHIFT + ENTER .
Lea la narración y asegúrese de comprender lo que sucede en cada celda.