Esercitazione sul flusso d'aria TFX

Panoramica

Panoramica

Questo tutorial è progettato per aiutarti a imparare a creare le tue pipeline di machine learning utilizzando TensorFlow Extended (TFX) e Apache Airflow come orchestratore. Funziona su Vertex AI Workbench e mostra l'integrazione con TFX e TensorBoard, nonché l'interazione con TFX in un ambiente Jupyter Lab.

Cosa starai facendo?

Imparerai come creare una pipeline ML utilizzando TFX

  • Una pipeline TFX è un grafo aciclico diretto, o "DAG". Ci riferiremo spesso alle pipeline come DAG.
  • Le pipeline TFX sono appropriate quando si distribuirà un'applicazione ML di produzione
  • Le pipeline TFX sono appropriate quando i set di dati sono grandi o possono diventare grandi
  • Le pipeline TFX sono appropriate quando la coerenza di formazione/servizi è importante
  • Le pipeline TFX sono appropriate quando la gestione delle versioni per l'inferenza è importante
  • Google utilizza le pipeline TFX per il machine learning di produzione

Consulta la Guida per l'utente di TFX per saperne di più.

Seguirai un tipico processo di sviluppo ML:

  • Ingestione, comprensione e pulizia dei nostri dati
  • Ingegneria delle funzionalità
  • Addestramento
  • Analisi delle prestazioni del modello
  • Insaponare, risciacquare, ripetere
  • Pronto per la produzione

Apache Airflow per l'orchestrazione della pipeline

Gli agenti di orchestrazione TFX sono responsabili della pianificazione dei componenti della pipeline TFX in base alle dipendenze definite dalla pipeline. TFX è progettato per essere portabile in più ambienti e framework di orchestrazione. Uno degli orchestratori predefiniti supportati da TFX è Apache Airflow . Questo laboratorio illustra l'uso di Apache Airflow per l'orchestrazione della pipeline TFX. Apache Airflow è una piattaforma per la creazione, la pianificazione e il monitoraggio programmatico dei flussi di lavoro. TFX utilizza Airflow per creare flussi di lavoro come grafici aciclici diretti (DAG) di attività. La ricca interfaccia utente semplifica la visualizzazione delle pipeline in esecuzione in produzione, il monitoraggio dell'avanzamento e la risoluzione dei problemi quando necessario. I flussi di lavoro di Apache Airflow sono definiti come codice. Questo li rende più gestibili, versionabili, testabili e collaborativi. Apache Airflow è adatto per pipeline di elaborazione in batch. È leggero e facile da imparare.

In questo esempio, eseguiremo una pipeline TFX su un'istanza impostando manualmente Airflow.

Gli altri agenti di orchestrazione predefiniti supportati da TFX sono Apache Beam e Kubeflow. Apache Beam può essere eseguito su più back-end di elaborazione dati (Beam Ruunners). Cloud Dataflow è uno di questi beam runner che può essere utilizzato per l'esecuzione di pipeline TFX. Apache Beam può essere utilizzato sia per pipeline di streaming che di elaborazione batch.
Kubeflow è una piattaforma ML open source dedicata a rendere semplici, portabili e scalabili le distribuzioni di flussi di lavoro di machine learning (ML) su Kubernetes. Kubeflow può essere utilizzato come orchestratore per le pipeline TFFX quando devono essere distribuite su cluster Kubernetes. Inoltre, puoi anche utilizzare il tuo agente di orchestrazione personalizzato per eseguire una pipeline TFX.

Maggiori informazioni sul flusso d'aria qui .

Set di dati sui taxi di Chicago

taxi.jpg

chicago.png

Utilizzerai il set di dati Taxi Trips rilasciato dalla città di Chicago.

Obiettivo del modello - Classificazione binaria

Il cliente darà una mancia superiore o inferiore al 20%?

Configura il progetto Google Cloud

Prima di fare clic sul pulsante Avvia laboratorio Leggi queste istruzioni. I lab sono a tempo e non puoi metterli in pausa. Il timer, che si avvia quando fai clic su Avvia lab , mostra per quanto tempo le risorse Google Cloud saranno a tua disposizione.

Questo laboratorio pratico ti consente di svolgere autonomamente le attività di laboratorio in un vero ambiente cloud, non in un ambiente di simulazione o demo. Lo fa fornendo nuove credenziali temporanee che utilizzi per accedere e accedere a Google Cloud per la durata del lab.

Di cosa hai bisogno Per completare questo laboratorio, hai bisogno di:

  • Accesso a un browser Internet standard (si consiglia il browser Chrome).
  • È ora di completare il laboratorio.

Come avviare il lab e accedere a Google Cloud Console 1. Fai clic sul pulsante Avvia lab . Se devi pagare per il laboratorio, si apre un pop-up per selezionare il metodo di pagamento. Sulla sinistra c'è un pannello popolato con le credenziali temporanee che devi usare per questo lab.

qwiksetup1.png

  1. Copia il nome utente, quindi fai clic su Apri Google Console . Il lab avvia le risorse e quindi apre un'altra scheda che mostra la pagina di accesso.

qwiksetup2.png

Suggerimento: apri le schede in finestre separate, una accanto all'altra.

qwiksetup3.png

  1. Nella pagina Accedi , incolla il nome utente che hai copiato dal pannello di sinistra. Quindi copia e incolla la password.
  1. Clicca sulle pagine successive:
  2. Accetta i termini e le condizioni.
  • Non aggiungere opzioni di recupero o autenticazione a due fattori (poiché si tratta di un account temporaneo).

  • Non registrarti per le prove gratuite.

Dopo alcuni istanti, Cloud Console si apre in questa scheda.

qwiksetup4.png

Attiva Cloud Shell

Cloud Shell è una macchina virtuale caricata con strumenti di sviluppo. Offre una home directory persistente da 5 GB e funziona su Google Cloud. Cloud Shell fornisce l'accesso da riga di comando alle tue risorse Google Cloud.

In Cloud Console, nella barra degli strumenti in alto a destra, fai clic sul pulsante Attiva Cloud Shell .

qwiksetup5.png

Fare clic su Continua .

qwiksetup6.png

Sono necessari alcuni istanti per il provisioning e la connessione all'ambiente. Quando sei connesso, sei già autenticato e il progetto è impostato sul tuo _PROJECT ID . Per esempio:

qwiksetup7.png

gcloud è lo strumento a riga di comando per Google Cloud. Viene preinstallato su Cloud Shell e supporta il completamento tramite scheda.

Puoi elencare il nome dell'account attivo con questo comando:

gcloud auth list

(Produzione)

ATTIVO: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net Per impostare l'account attivo, eseguire: $ gcloud config set account ACCOUNT

Puoi elencare l'ID del progetto con questo comando: gcloud config list project (Output)

[nucleo] progetto =

(Esempio di output)

[core] progetto = qwiklabs-gcp-44776a13dea667a6

Per la documentazione completa di gcloud, consulta la panoramica dello strumento da riga di comando gcloud .

Abilita i servizi Google Cloud

  1. In Cloud Shell, utilizza gcloud per abilitare i servizi utilizzati nel lab. gcloud services enable notebooks.googleapis.com

Distribuisci l'istanza Vertex Notebook

  1. Fare clic sul menu di navigazione e passare a Vertex AI , quindi a Workbench .

vertex-ai-workbench.png

  1. Nella pagina Istanze notebook, fai clic su Nuovo notebook .

  2. Nel menu Personalizza istanza, seleziona TensorFlow Enterprise e scegli la versione di TensorFlow Enterprise 2.x (con LTS) > Senza GPU .

vertex-notebook-create-2.png

  1. Nella finestra di dialogo Nuova istanza notebook , fai clic sull'icona della matita per modificare le proprietà dell'istanza.

  2. Per Instance name , inserisci un nome per la tua istanza.

  3. Per Region , seleziona us-east1 e per Zone , seleziona una zona all'interno della regione selezionata.

  4. Scorri verso il basso fino a Configurazione macchina e seleziona e2-standard-2 per Tipo di macchina.

  5. Lascia i campi rimanenti con i valori predefiniti e fai clic su Crea .

Dopo alcuni minuti, la console Vertex AI visualizzerà il nome della tua istanza, seguito da Open Jupyterlab .

  1. Fai clic su Apri JupyterLab . Una finestra di JupyterLab si aprirà in una nuova scheda.

Imposta l'ambiente

Clona il repository del laboratorio

Successivamente tfx il repository tfx nella tua istanza JupyterLab. 1. In JupyterLab, fare clic sull'icona Terminale per aprire un nuovo terminale.

Nota: se richiesto, fare clic su Cancel per Build consigliata.

  1. Per clonare il repository tfx Github, digita il seguente comando e premi Invio .
git clone https://github.com/tensorflow/tfx.git
  1. Per confermare di aver clonato il repository, fai doppio clic sulla directory tfx e conferma che puoi vederne il contenuto.

repo-directory.png

Installa le dipendenze del laboratorio

  1. Esegui quanto segue per andare alla tfx/tfx/examples/airflow_workshop/taxi/setup/ , quindi esegui ./setup_demo.sh per installare le dipendenze del lab:
cd ~/tfx/tfx/examples/airflow_workshop/taxi/setup/
./setup_demo.sh

Il codice sopra lo farà

  • Installa i pacchetti richiesti.
  • Crea una cartella del airflow d'aria nella cartella home.
  • Copia la cartella dags dalla cartella tfx/tfx/examples/airflow_workshop/taxi/setup/ alla cartella ~/airflow/ airflow/.
  • Copia il file csv da tfx/tfx/examples/airflow_workshop/taxi/setup/data a ~/airflow/data .

airflow-home.png

Configurazione del server Airflow

Crea una regola firewall per accedere al server Airflow nel browser

  1. Vai a <a href="https://console.cloud.google.com/networking/firewalls/list">https://console.cloud.google.com/networking/firewalls/list</a> e assicurati il nome del progetto è selezionato in modo appropriato
  2. Fai clic sull'opzione CREATE FIREWALL RULE in alto

regola-firewall.png

Nella finestra di dialogo Crea un firewall , segui i passaggi elencati di seguito.

  1. Per Name , inserisci airflow-tfx .
  2. Per Priorità , selezionare 1 .
  3. Per Destinazioni , seleziona All instances in the network .
  4. Per Intervalli IPv4 di origine , seleziona 0.0.0.0/0
  5. Per Protocolli e porte , fai clic su tcp e inserisci 7000 nella casella accanto a tcp
  6. Fai clic su Create .

create-firewall-dialog.png

Esegui il server del flusso d'aria dalla tua shell

Nella finestra Jupyter Lab Terminal, passa alla home directory, esegui il comando airflow airflow users create per creare un utente amministratore per Airflow:

cd
airflow users  create --role Admin --username admin --email admin --firstname admin --lastname admin --password admin

Quindi eseguire il comando airflow webserver e airflow scheduler per eseguire il server. Scegli la porta 7000 poiché è consentita attraverso il firewall.

nohup airflow webserver -p 7000 &> webserver.out &
nohup airflow scheduler &> scheduler.out &

Ottieni il tuo IP esterno

  1. In Cloud Shell, utilizza gcloud per ottenere l'IP esterno.
gcloud compute instances list

ip-istanza-gcloud.png

Esecuzione di un DAG/Pipeline

In un browser

Apri un browser e vai su http:// :7000

  • Nella pagina di accesso, inserisci il nome utente ( admin ) e la password ( admin ) che hai scelto durante l'esecuzione del comando airflow users create .

airflow-login.png

Airflow carica i DAG dai file di origine Python. Prende ogni file e lo esegue. Quindi carica tutti gli oggetti DAG da quel file. Tutti i file .py che definiscono gli oggetti DAG verranno elencati come pipeline nella home page del flusso d'aria.

In questo tutorial, Airflow esegue la scansione della cartella ~/airflow/dags/ alla ricerca di oggetti DAG.

Se apri ~/airflow/dags/taxi_pipeline.py e scorri fino in fondo, puoi vedere che crea e memorizza un oggetto DAG in una variabile denominata DAG . Quindi verrà elencato come pipeline nella home page del flusso d'aria come mostrato di seguito:

dag-home-full.png

Se fai clic su taxi, verrai reindirizzato alla visualizzazione a griglia del DAG. È possibile fare clic sull'opzione Graph in alto per ottenere la visualizzazione del grafico del DAG.

airflow-dag-graph.png

Attiva la pipeline dei taxi

Nella homepage puoi vedere i pulsanti che possono essere utilizzati per interagire con il DAG.

dag-pulsanti.png

Sotto l'intestazione delle azioni , fai clic sul pulsante di attivazione per attivare la pipeline.

Nella pagina taxi DAG , utilizzare il pulsante a destra per aggiornare lo stato della visualizzazione del grafico del DAG durante l'esecuzione della pipeline. Inoltre, puoi abilitare l' aggiornamento automatico per istruire Airflow ad aggiornare automaticamente la visualizzazione del grafico man mano che lo stato cambia.

dag-pulsante-refresh.png

Puoi anche utilizzare l'interfaccia a riga di comando di Airflow nel terminale per abilitare e attivare i DAG:

# enable/disable
airflow pause <your DAG name>
airflow unpause <your DAG name>

# trigger
airflow trigger_dag <your DAG name>

In attesa del completamento della pipeline

Dopo aver attivato la pipeline, nella vista DAG è possibile osservare l'avanzamento della pipeline mentre è in esecuzione. Durante l'esecuzione di ogni componente, il colore del contorno del componente nel grafico DAG cambierà per mostrare il suo stato. Quando un componente ha terminato l'elaborazione, il contorno diventerà verde scuro per indicare che è terminata.

dag-step7.png

Comprendere i componenti

Ora esamineremo in dettaglio i componenti di questa pipeline e esamineremo individualmente gli output prodotti da ogni fase della pipeline.

  1. In JupyterLab vai a ~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/

  2. Apri notebook.ipynb. notebook-ipynb.png

  3. Continuare il lab nel notebook ed eseguire ogni cella facendo clic sul pulsante Esegui ( pulsante-run.png ) nella parte superiore dello schermo. In alternativa, puoi eseguire il codice in una cella con SHIFT + ENTER .

Leggi la narrazione e assicurati di capire cosa sta succedendo in ogni cella.