Tutorial 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 farai?

Imparerai come creare una pipeline ML utilizzando TFX

  • Una pipeline TFX è un grafico aciclico diretto, o "DAG". Faremo spesso riferimento 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 tra formazione e servizio è 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:

  • Acquisizione, comprensione e pulizia dei nostri dati
  • Ingegneria delle funzionalità
  • Formazione
  • Analisi delle prestazioni del modello
  • Schiuma, risciacqua, ripeti
  • Pronto per la produzione

Apache Airflow per l'orchestrazione della pipeline

Gli orchestratori 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 creare, pianificare e monitorare i flussi di lavoro in modo programmatico. 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 dei progressi e la risoluzione dei problemi quando necessario. I flussi di lavoro Apache Airflow sono definiti come codice. Ciò li rende più gestibili, modificabili, testabili e collaborativi. Apache Airflow è adatto per pipeline di elaborazione batch. È leggero e facile da imparare.

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

Gli altri orchestratori predefiniti supportati da TFX sono Apache Beam e Kubeflow. Apache Beam può essere eseguito su più backend di elaborazione dati (Beam Ruunners). Cloud Dataflow è uno di questi beam runner che può essere utilizzato per eseguire pipeline TFX. Apache Beam può essere utilizzato sia per pipeline di streaming che per pipeline di elaborazione batch.
Kubeflow è una piattaforma ML open source dedicata a rendere le distribuzioni di flussi di lavoro di machine learning (ML) su Kubernetes semplici, portatili e scalabili. Kubeflow può essere utilizzato come orchestratore per le pipeline TFFX quando devono essere distribuite sui cluster Kubernetes. Inoltre, puoi anche utilizzare il tuo orchestratore 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 più o meno del 20%?

Configura il progetto Google Cloud

Prima di fare clic sul pulsante Avvia laboratorio, leggere queste istruzioni. I laboratori 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 rese disponibili.

Questo laboratorio pratico ti consente di svolgere tu stesso le attività di laboratorio in un ambiente cloud reale, non in un ambiente simulato o dimostrativo. A tale scopo, ti vengono fornite nuove credenziali temporanee che utilizzi per accedere a Google Cloud per la durata del lab.

Cosa ti serve Per completare questo lab, ti serve:

  • 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 in cui puoi selezionare il metodo di pagamento. Sulla sinistra è presente un pannello popolato con le credenziali temporanee che devi utilizzare 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, affiancate.

qwiksetup3.png

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

  • Non iscriverti alle prove gratuite.

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

qwiksetup4.png

Attiva Cloud Shell

Cloud Shell è una macchina virtuale ricca di strumenti di sviluppo. Offre una home directory persistente da 5 GB e funziona su Google Cloud. Cloud Shell fornisce l'accesso dalla 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 eseguire il provisioning e connettersi all'ambiente. Quando sei connesso, sei già autenticato e il progetto è impostato sul tuo _PROJECT ID . Per esempio:

qwiksetup7.png

gcloud è lo strumento da riga di comando per Google Cloud. Viene preinstallato su Cloud Shell e supporta il completamento con schede.

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 progetto con questo comando: gcloud config list project (Output)

progetto [principale] =

(Esempio di output)

progetto [principale] = 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 accedere a Vertex AI , quindi a Workbench .

vertice-ai-workbench.png

  1. Nella pagina Istanze notebook, fare 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 .

vertice-notebook-create-2.png

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

  2. Per Nome istanza , inserisci un nome per la tua istanza.

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

  4. Scorri verso il basso fino a Configurazione macchina e seleziona e2-standard-2 per Tipo 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 dell'istanza, seguito da Open Jupyterlab .

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

Imposta l'ambiente

Clona il repository del laboratorio

Successivamente clonerai 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 Compilazione consigliata.

  1. Per clonare il repository Github tfx , digita il comando seguente 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.

repository-directory.png

Installare le dipendenze del laboratorio

  1. Eseguire quanto segue per accedere alla cartella tfx/tfx/examples/airflow_workshop/taxi/setup/ , quindi eseguire ./setup_demo.sh per installare le dipendenze del laboratorio:
cd ~/tfx/tfx/examples/airflow_workshop/taxi/setup/
./setup_demo.sh

Il codice sopra lo farà

  • Installa i pacchetti richiesti.
  • Crea una cartella airflow nella cartella Home.
  • Copia la cartella dags dalla tfx/tfx/examples/airflow_workshop/taxi/setup/ alla cartella ~/airflow/ .
  • Copia il file CSV da tfx/tfx/examples/airflow_workshop/taxi/setup/data a ~/airflow/data .

flusso d'aria-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. Fare clic sull'opzione CREATE FIREWALL RULE in alto

firewall-rule.png

Nella finestra di dialogo Crea un firewall , seguire 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 , selezionare 0.0.0.0/0
  5. Per Protocolli e porte , fare clic su tcp e inserire 7000 nella casella accanto a tcp
  6. Fare clic Create .

create-firewall-dialog.png

Esegui il server Airflow dalla tua shell

Nella finestra del Terminale di Jupyter Lab, passa alla directory home, esegui il comando 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 tramite 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

gcloud-istanza-ip.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 sorgente 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 . Pertanto 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 grafica del DAG.

flusso d'aria-dag-graph.png

Attiva la pipeline dei taxi

Nella homepage sono visibili i pulsanti che possono essere utilizzati per interagire con il DAG.

dag-buttons.png

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

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

dag-pulsante-refresh.png

Puoi anche utilizzare la CLI Airflow nel terminale per abilitare e attivare i tuoi 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 visualizzazione DAG è possibile osservare l'avanzamento della pipeline mentre è in esecuzione. Durante l'esecuzione di ciascun componente, il colore del contorno del componente nel grafico DAG cambierà per mostrarne lo stato. Quando un componente ha terminato l'elaborazione, il contorno diventerà verde scuro per indicare che l'operazione è terminata.

dag-step7.png

Comprendere i componenti

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

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

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

  3. Continuare l'attività di laboratorio nel blocco appunti ed eseguire ogni cella facendo clic sul pulsante Esegui ( esegui-pulsante.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.