1. Panoramica
In questo lab imparerai a creare un sistema end-to-end di dati e AI per il rilevamento delle frodi in tempo reale su Google Cloud. L'obiettivo è capire come passare dai dati non elaborati a una pipeline ML pronta per la produzione in esecuzione su Google Cloud. Questo lab utilizza i seguenti prodotti Google Cloud:
Cosa imparerai?
La creazione di una pipeline ML end-to-end può essere impegnativa. In questo lab imparerai a creare e scalare una pipeline ML end-to-end utilizzando i servizi Google Cloud come BigQuery e Vertex AI. Ti accompagneremo in un percorso che ti mostrerà come passare dai dati non elaborati all'AI in produzione. L'obiettivo di apprendimento di alto livello per questo lab è:
- Scopri le best practice per creare sistemi di dati per l'AI su Google Cloud.
- Scopri come eseguire il feature engineering con BigQuery utilizzando SQL (per l'elaborazione batch) e Apache Beam utilizzando Dataflow (elaborazione in tempo reale) e utilizza Vertex AI Feature Store.
- Come eseguire l'analisi dei dati utilizzando BigQuery e librerie Python come Pandas e Plotly.
- Come addestrare un modello ML con BigQuery ML tramite SQL.
- Come utilizzare Vertex AI per archiviare, eseguire il deployment e monitorare il modello.
- Come utilizzare Vertex AI Pipelines per formalizzare il flusso di lavoro da dati ad AI.
IMPORTANTE: il costo per eseguire questo lab su Google Cloud è di circa 100$.
2. Dai dati non elaborati all'AI con Vertex AI e BigQuery
Questo lab tratta i più recenti prodotti di analisi dei dati e AI disponibili su Google Cloud, come Vertex AI e BigQuery ML. Vertex AI e BigQuery semplificano il passaggio dai dati non elaborati all'AI e offrono un'esperienza di sviluppo senza interruzioni per aiutarti a essere più produttivo nel portare i tuoi modelli in produzione. Se hai bisogno di assistenza, consulta la pagina di supporto.
Vertex AI include molti prodotti diversi per supportare i flussi di lavoro end-to-end dai dati all'AI. Di seguito trovi una panoramica di tutte le funzionalità di Vertex AI:

3. Caso d'uso e dati di FraudFinder
FraudFinder è una serie di blocchi note che insegnano il percorso completo dai dati all'AI su Google Cloud, attraverso il caso d'uso del rilevamento di frodi in tempo reale. Nei notebook imparerai a leggere i dati storici delle transazioni di pagamento archiviati in un data warehouse, a leggere da un flusso live di nuove transazioni, a eseguire l'analisi esplorativa dei dati (EDA), a eseguire il feature engineering, a importare le funzionalità in un Feature Store, ad addestrare un modello utilizzando il Feature Store, a registrare il modello in un Model Registry, a valutare il modello, a eseguire il deployment del modello in un endpoint, a eseguire l'inferenza in tempo reale sul modello con il Feature Store e a monitorare il modello.
Il rilevamento delle frodi copre la classificazione e il rilevamento delle anomalie, domini probabilmente estesi all'interno del machine learning. Ciò rende il rilevamento delle frodi un buon caso d'uso per una storia reale facile da comprendere e un ottimo modo per mostrare e utilizzare i dati end-to-end nell'architettura di AI su Google Cloud. Non è necessario essere esperti di frodi per comprendere l'architettura end-to-end. Il pattern per l'architettura può essere applicato ad altri casi d'uso.
Di seguito è riportata una panoramica dell'architettura di FraudFinder:

Set di dati
Il set di dati viene sintetizzato utilizzando il codice del progetto Machine Learning for Credit Card Fraud Detection - Practical Handbook di Kaggle. Il rilevamento delle frodi in tempo reale è strutturalmente diverso dal rilevamento delle frodi basato su batch ed è caratterizzato da quanto segue:
- Alta frequenza (ad es. 1000 al secondo) di richieste di previsione
- Bassa latenza (ad es. < 1 sec) della richiesta di previsione → risposta
- La previsione viene in genere eseguita per 1 campione per richiesta di previsione o potrebbe essere in "micro-batch" (ad es. 1000 transazioni inviate come batch per l'inferenza quasi in tempo reale)
- Il feature engineering per la pubblicazione deve essere precalcolato o calcolato in tempo reale
Set di dati storici di FraudFinder
Esistono tabelle BigQuery pubbliche con transazioni di pagamento storiche, che consentono agli utenti di addestrare i propri modelli ed eseguire il feature engineering utilizzando i dati in BigQuery.
cymbal-fraudfinder (project)
|-`tx` (dataset)
|-`tx` (table: transactions without labels)
|-`txlabels` (table: transactions with fraud labels (1 or 0))
|-demographics
|-`customers` (table: profiles of customers)
|-`terminals` (table: profiles of terminals)
|-`customersterminals` (table: profiles of customers and terminals within their radius)
Perché in tempo reale?
In questo lab imparerai a sfruttare i dati in tempo reale e ad applicare il feature engineering e l'inferenza in tempo reale. Le funzionalità in tempo reale possono aiutarti a migliorare il modello sfruttando indicatori che altrimenti non potresti utilizzare durante il tempo di inferenza.
Dati di streaming in tempo reale di FraudFinder
Nell'ambito del lab FraudFinder sono disponibili argomenti Pub/Sub pubblici con transazioni di pagamento di live streaming che gli utenti possono utilizzare per testare comodamente gli endpoint dei modelli e le funzionalità di streaming. Pub/Sub è un servizio di messaggistica asincrono e scalabile. Utilizzerai questi argomenti per trasmettere in streaming le funzionalità ed eseguire l'inferenza online. Gli utenti possono anche passare da argomenti con tassi di frode di base a tassi più elevati per visualizzare il monitoraggio del modello. Sono disponibili i seguenti argomenti Pub/Sub pubblici:
ff-txff-txlabels
4. Configura il progetto e l'istanza del notebook
Per eseguire questo lab, devi avere un progetto Google Cloud Platform con la fatturazione abilitata. Per creare un progetto, segui le istruzioni.
IMPORTANTE: ti consigliamo di eseguire questo lab in un nuovo progetto. Questo lab copre molti prodotti diversi ed è più facile eliminare l'intero progetto al termine del lab.
Quando hai un progetto, continua con i seguenti passaggi. I passaggi seguenti sono disponibili anche nel file README.md del repository.
Passaggio 1: attiva le API
Innanzitutto, vai al progetto che hai appena creato e apri una shell cloud. Questo passaggio potrebbe richiedere alcuni minuti perché verrà eseguito il provisioning di una nuova Cloud Shell se non ne hai mai attivata una.

Successivamente, esegui il seguente codice in Cloud Shell copiandolo e incollandolo. Lo script attiverà le API necessarie e creerà sottoscrizioni Pub/Sub per leggere le transazioni di streaming dagli argomenti Pub/Sub pubblici. Attendi un po' di tempo per l'esecuzione di tutti i comandi.
gcloud services enable notebooks.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable pubsub.googleapis.com
gcloud services enable run.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable dataflow.googleapis.com
gcloud services enable bigquery.googleapis.com
gcloud pubsub subscriptions create "ff-tx-sub" --topic="ff-tx" --topic-project="cymbal-fraudfinder"
gcloud pubsub subscriptions create "ff-txlabels-sub" --topic="ff-txlabels" --topic-project="cymbal-fraudfinder"
# Run the following command to grant the Compute Engine default service account access to read and write pipeline artifacts in Google Cloud Storage.
PROJECT_ID=$(gcloud config get-value project)
PROJECT_NUM=$(gcloud projects list --filter="$PROJECT_ID" --format="value(PROJECT_NUMBER)")
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:${PROJECT_NUM}-compute@developer.gserviceaccount.com"\
--role='roles/storage.admin'
Passaggio 2: crea un'istanza di Vertex AI Workbench
Poi vai alla sezione Vertex AI della console Cloud. Poi vai a Workbench:

Abilita l'API Vertex AI Workbench (API Notebook) se non è abilitata.

Una volta attivata, seleziona NOTEBOOK GESTITI DALL'UTENTE:

Poi seleziona NUOVO QUADERNO. Puoi scegliere Python 3.

Assegna un nome al notebook, ad esempio fraudfinder, poi fai clic su Impostazioni avanzate.

Importante: assicurati di selezionare Service Account in Permissions.

Importante: in Sicurezza seleziona "Abilita terminale" se non è già abilitato.

Puoi lasciare invariate tutte le altre impostazioni avanzate.
Quindi, fai clic su Crea. Il provisioning dell'istanza richiede un paio di minuti.
Una volta creata l'istanza, seleziona Apri JupyterLab.

Passaggio 3: imposta i ruoli IAM
Per semplicità, supponiamo che utilizzerai il service account Compute Engine predefinito. Questa non è la best practice per i workload di produzione. La best practice consiste nel creare service account dedicati per ogni applicazione ed evitare di utilizzare quelli predefiniti. Per saperne di più sulle best practice per i service account, consulta la nostra documentazione. Il service account Compute predefinito avrà un aspetto simile a questo: 123456789123-compute@developer.gserviceaccount.com. Vai ad IAM Admin e fai clic su ADD. Nella visualizzazione, cerca e seleziona il service account predefinito di Compute Engine, quindi assegna i seguenti ruoli:
BigQuery AdminStorage AdminStorage Object AdminVertex AI AdministratorPub/Sub Admin
Dovrebbe avere un aspetto simile a questo. Non dimenticare di salvare le nuove impostazioni.

Passaggio 4: clona il repository GitHub
Dopo aver creato e eseguito l'accesso all'istanza di notebook, è il momento di configurare l'ambiente. Innanzitutto, apri una finestra del terminale.

Copia, incolla ed esegui il seguente comando nel terminale del notebook:
git clone https://github.com/GoogleCloudPlatform/fraudfinder.git
L'esecuzione di questo comando clonerà il repository FraudFinder nell'istanza del notebook. Dopo aver eseguito git clone, troverai la cartella fraudfinder nella tua istanza del notebook a sinistra. Ora vai alla cartella fraudfinder. Qui troverai i notebook necessari per il lab.
A partire dalle sezioni successive, devi seguire le istruzioni riportate nei blocchi note. Continua con la configurazione dell'ambiente.
5. Configurazione dell'ambiente
Questa sezione illustra i passaggi per configurare l'ambiente del progetto. In questa sezione, verranno trattati i seguenti obiettivi di apprendimento:
- Configura l'ambiente, inclusi i pacchetti.
- Carica i dati in BigQuery.
- Leggi i dati dagli argomenti Pub/Sub pubblici.
Continua con il seguente notebook e segui le istruzioni passo passo:
00_environment_setup.ipynb
6. Analisi esplorativa dati
Questa sezione ti insegnerà a eseguire un'analisi esplorativa dei dati per comprendere meglio i dati sulle frodi. In questa sezione, verranno trattati i seguenti obiettivi di apprendimento:
- Estrarre ed esplorare i dati da BigQuery utilizzando SQL
- Tracciare i dati delle transazioni utilizzando BigQuery e Plotly
- Applica aggregazioni di dati e crea un grafico a dispersione
Continua con il notebook successivo e segui le istruzioni passo passo:
01_exploratory_data_analysis.ipynb
7. Feature engineering in modalità batch e flusso
In questa sezione lavorerai sul feature engineering per generare caratteristiche per l'addestramento del modello dai dati non elaborati. Utilizzeremo batch e streaming. Entrambi i casi d'uso sono importanti per la copertura del rilevamento di frodi. In questa sezione, verranno trattati i seguenti obiettivi di apprendimento:
- Come creare funzionalità utilizzando BigQuery e SQL
- Crea un Vertex AI Feature Store e inserisci i dati
- Come gestire i dati di streaming e importarli in Feature Store
Continua con i due notebook seguenti in questo ordine e segui le istruzioni riportate nei notebook:
02_feature_engineering_batch.ipynb03_feature_engineering_streaming.ipynb
8. Addestramento, previsione, formalizzazione e monitoraggio del modello
In questa sezione, addestrerai e implementerai il tuo primo modello BigQuery Model per rilevare possibili casi di frode. Imparerai anche a prendere il codice di addestramento e deployment e a formalizzarlo in una pipeline automatizzata. Imparerai anche a fare previsioni online e a monitorare il modello in produzione. In questa sezione, verranno trattati i seguenti obiettivi di apprendimento:
- Come addestrare un modello BigQuery ML e registrarlo in Vertex AI Model Registry
- Esegui il deployment del modello come endpoint su Vertex AI
- Come utilizzare l'SDK Vertex AI
- Come prendere il modello BigQuery ML e creare una pipeline ML end-to-end
- Come utilizzare Vertex AI Model Monitoring
Continua con i seguenti Notebook in questo ordine e segui le istruzioni riportate. I notebook si trovano nella cartella BQML. Segui passo passo il notebook:
04_model_training_and_prediction.ipynb05_model_training_pipeline_formalization.ipynb06_model_monitoring.ipynb07_model_inference.ipynb
🎉 Congratulations! 🎉
Hai imparato a creare un'architettura di dati per l'AI su Google Cloud.
9. Esegui la pulizia
Ti consigliamo di eseguire questo lab su un nuovo progetto. Questo lab copre molti prodotti diversi, quindi è più semplice eliminare l'intero progetto al termine del lab. Nella nostra documentazione puoi trovare maggiori informazioni su come eliminare il progetto.
Se invece vuoi eliminare i servizi, segui le istruzioni riportate in Notebooks o elimina le risorse create.