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
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.
- 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.
Suggerimento: apri le schede in finestre separate, una accanto all'altra.
- Nella pagina Accedi , incolla il nome utente che hai copiato dal pannello di sinistra. Quindi copia e incolla la password.
- Clicca sulle pagine successive:
- 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.
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 .
Fare clic su Continua .
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:
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
- In Cloud Shell, utilizza gcloud per abilitare i servizi utilizzati nel lab.
gcloud services enable notebooks.googleapis.com
Distribuisci l'istanza Vertex Notebook
- Fare clic sul menu di navigazione e passare a Vertex AI , quindi a Workbench .
Nella pagina Istanze notebook, fai clic su Nuovo notebook .
Nel menu Personalizza istanza, seleziona TensorFlow Enterprise e scegli la versione di TensorFlow Enterprise 2.x (con LTS) > Senza GPU .
Nella finestra di dialogo Nuova istanza notebook , fai clic sull'icona della matita per modificare le proprietà dell'istanza.
Per Instance name , inserisci un nome per la tua istanza.
Per Region , seleziona
us-east1
e per Zone , seleziona una zona all'interno della regione selezionata.Scorri verso il basso fino a Configurazione macchina e seleziona e2-standard-2 per Tipo di macchina.
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 .
- 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.
Cancel
per Build consigliata.
- Per clonare il repository
tfx
Github, digita il seguente comando e premi Invio .
git clone https://github.com/tensorflow/tfx.git
- Per confermare di aver clonato il repository, fai doppio clic sulla directory
tfx
e conferma che puoi vederne il contenuto.
Installa le dipendenze del laboratorio
- 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 cartellatfx/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
.
Configurazione del server Airflow
Crea una regola firewall per accedere al server Airflow nel browser
- 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 - Fai clic sull'opzione
CREATE FIREWALL RULE
in alto
Nella finestra di dialogo Crea un firewall , segui i passaggi elencati di seguito.
- Per Name , inserisci
airflow-tfx
. - Per Priorità , selezionare
1
. - Per Destinazioni , seleziona
All instances in the network
. - Per Intervalli IPv4 di origine , seleziona
0.0.0.0/0
- Per Protocolli e porte , fai clic su
tcp
e inserisci7000
nella casella accanto atcp
- Fai clic su
Create
.
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
- In Cloud Shell, utilizza
gcloud
per ottenere l'IP esterno.
gcloud compute instances list
Esecuzione di un DAG/Pipeline
In un browser
Apri un browser e vai su http://
- Nella pagina di accesso, inserisci il nome utente (
admin
) e la password (admin
) che hai scelto durante l'esecuzione del comandoairflow users create
.
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:
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.
Attiva la pipeline dei taxi
Nella homepage puoi vedere i pulsanti che possono essere utilizzati per interagire con il DAG.
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.
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.
Comprendere i componenti
Ora esamineremo in dettaglio i componenti di questa pipeline e esamineremo individualmente gli output prodotti da ogni fase della pipeline.
In JupyterLab vai a
~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/
Apri notebook.ipynb.
Continuare il lab nel notebook ed eseguire ogni cella facendo clic sul pulsante Esegui (
) 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.