In questo tutorial, importi i modelli TensorFlow in un set di dati BigQuery ML. Poi, utilizzi una query SQL per fare previsioni a partire dai modelli importati.
Obiettivi
- Utilizza l'istruzione
CREATE MODELper importare i modelli TensorFlow in BigQuery ML. - Utilizza la funzione
ML.PREDICTper fare previsioni con i modelli TensorFlow importati.
Costi
In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'utilizzo previsto,
utilizza il calcolatore prezzi.
Al termine delle attività descritte in questo documento, puoi evitare l'addebito di ulteriori costi eliminando le risorse che hai creato. Per saperne di più, consulta Esegui la pulizia.
Prima di iniziare
- Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verifica che la fatturazione sia abilitata per il tuo progetto Google Cloud .
Verifica che l'API BigQuery sia attivata.
- Assicurati di disporre delle autorizzazioni necessarie per eseguire le attività descritte in questo documento.
Ruoli obbligatori
Se crei un nuovo progetto, ne sei il proprietario e ti vengono concesse tutte le autorizzazioni IAM (Identity and Access Management) necessarie per completare questo tutorial.
Se utilizzi un progetto esistente, il ruolo
BigQuery Studio Admin (roles/bigquery.studioAdmin) concede tutte le
autorizzazioni necessarie per completare questo tutorial.
Assicurati di disporre del seguente ruolo o dei seguenti ruoli nel progetto:
Amministratore BigQuery Studio (roles/bigquery.studioAdmin).
Controlla i ruoli
-
Nella console Google Cloud vai alla pagina IAM.
Vai a IAM - Seleziona il progetto.
-
Nella colonna Entità, trova tutte le righe che identificano te o un gruppo di cui fai parte. Per scoprire a quali gruppi appartieni, contatta il tuo amministratore.
- Per tutte le righe che ti specificano o ti includono, controlla la colonna Ruolo per verificare se l'elenco dei ruoli include i ruoli richiesti.
Concedi i ruoli
-
Nella console Google Cloud vai alla pagina IAM.
Vai a IAM - Seleziona il progetto.
- Fai clic su Concedi l'accesso.
-
Nel campo Nuove entità, inserisci il tuo identificatore dell'utente. In genere si tratta dell'indirizzo email di un Account Google.
- Fai clic su Seleziona un ruolo, quindi cerca il ruolo.
- Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo successivo.
- Fai clic su Salva.
Per saperne di più sulle autorizzazioni IAM in BigQuery, consulta Autorizzazioni BigQuery.
Crea un set di dati
Crea un set di dati BigQuery per archiviare il tuo modello ML.
Console
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro Explorer, fai clic sul nome del progetto.
Fai clic su Visualizza azioni > Crea set di dati.
Nella pagina Crea set di dati, segui questi passaggi:
In ID set di dati, inserisci
bqml_tutorial.Per Tipo di località, seleziona Multi-regione e poi Stati Uniti.
Lascia invariate le restanti impostazioni predefinite e fai clic su Crea set di dati.
bq
Per creare un nuovo set di dati, utilizza il
comando bq mk --dataset.
Crea un set di dati denominato
bqml_tutorialcon la località dei dati impostata suUS.bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Verifica che il set di dati sia stato creato:
bq ls
API
Chiama il metodo datasets.insert con una risorsa dataset definita.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Importare un modello TensorFlow
I passaggi riportati di seguito mostrano come importare un modello da Cloud Storage.
Il percorso del modello è
gs://cloud-training-demos/txtclass/export/exporter/1549825580/*. Il nome del modello
importato è imported_tf_model.
Tieni presente che l'URI Cloud Storage termina con un carattere jolly (*).
Questo carattere indica che BigQuery ML deve importare qualsiasi asset
associato al modello.
Il modello importato è un modello di classificazione del testo TensorFlow che prevede quale sito web ha pubblicato un determinato titolo di articolo.
Per importare il modello TensorFlow nel tuo set di dati, segui questi passaggi.
Console
Nella console Google Cloud , vai alla pagina BigQuery.
Per Crea nuovo, fai clic su Query SQL.
Nell'editor di query, inserisci questa istruzione
CREATE MODELe poi fai clic su Esegui.CREATE OR REPLACE MODEL `bqml_tutorial.imported_tf_model` OPTIONS (MODEL_TYPE='TENSORFLOW', MODEL_PATH='gs://cloud-training-demos/txtclass/export/exporter/1549825580/*')
Al termine dell'operazione, dovresti visualizzare un messaggio simile a
Successfully created model named imported_tf_model.Il nuovo modello viene visualizzato nel riquadro Risorse. I modelli sono indicati dall'icona del modello:
.Se selezioni il nuovo modello nel riquadro Risorse, le informazioni sul modello vengono visualizzate sotto l'editor di query.
bq
Importa il modello TensorFlow da Cloud Storage inserendo la seguente istruzione
CREATE MODEL.bq query --use_legacy_sql=false \ "CREATE OR REPLACE MODEL `bqml_tutorial.imported_tf_model` OPTIONS (MODEL_TYPE='TENSORFLOW', MODEL_PATH='gs://cloud-training-demos/txtclass/export/exporter/1549825580/*')"
Dopo aver importato il modello, verifica che venga visualizzato nel set di dati.
bq ls -m bqml_tutorial
L'output è simile al seguente:
tableId Type ------------------- ------- imported_tf_model MODEL
API
Inserisci un nuovo job e compila la proprietà jobs#configuration.query nel corpo della richiesta.
{ "query": "CREATE MODEL `PROJECT_ID:bqml_tutorial.imported_tf_model` OPTIONS(MODEL_TYPE='TENSORFLOW' MODEL_PATH='gs://cloud-training-demos/txtclass/export/exporter/1549825580/*')" }
Sostituisci PROJECT_ID con il nome del tuo progetto e del tuo set di dati.
BigQuery DataFrames
Prima di provare questo esempio, segui le istruzioni di configurazione di BigQuery DataFrames nella guida rapida di BigQuery per l'utilizzo di BigQuery DataFrames. Per ulteriori informazioni, consulta la documentazione di riferimento di BigQuery DataFrames.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale.
Importa il modello utilizzando l'oggetto TensorFlowModel.
Per saperne di più sull'importazione di modelli TensorFlow in
BigQuery ML, inclusi i requisiti di formato e archiviazione, consulta l'istruzione
CREATE MODEL per l'importazione di modelli TensorFlow.
Elabora previsioni con il modello TensorFlow importato
Dopo aver importato il modello TensorFlow, utilizza la
funzione ML.PREDICT
per fare previsioni con il modello.
La seguente query utilizza imported_tf_model per fare previsioni utilizzando i dati di input
dalla tabella full nel set di dati pubblico hacker_news. Nella query,
la funzione serving_input_fn del modello TensorFlow specifica che
il modello prevede una singola stringa di input denominata input. La sottoquery assegna
l'alias input alla colonna title nell'istruzione SELECT della sottoquery.
Per fare previsioni con il modello TensorFlow importato, segui questi passaggi.
Console
Nella console Google Cloud , vai alla pagina BigQuery.
Nella sezione Crea nuovo, fai clic su Query SQL.
Nell'editor di query, inserisci questa query che utilizza la funzione
ML.PREDICT.SELECT * FROM ML.PREDICT(MODEL `bqml_tutorial.imported_tf_model`, ( SELECT title AS input FROM bigquery-public-data.hacker_news.full ) )
I risultati della query dovrebbero essere simili a questi:
bq
Inserisci questo comando per eseguire la query che utilizza ML.PREDICT.
bq query \ --use_legacy_sql=false \ 'SELECT * FROM ML.PREDICT( MODEL `bqml_tutorial.imported_tf_model`, (SELECT title AS input FROM `bigquery-public-data.hacker_news.full`))'
I risultati dovrebbero essere simili a questi:
+------------------------------------------------------------------------+----------------------------------------------------------------------------------+ | dense_1 | input | +------------------------------------------------------------------------+----------------------------------------------------------------------------------+ | ["0.6251608729362488","0.2989124357700348","0.07592673599720001"] | How Red Hat Decides Which Open Source Companies t... | | ["0.014276246540248394","0.972910463809967","0.01281337533146143"] | Ask HN: Toronto/GTA mastermind around side income for big corp. dev? | | ["0.9821603298187256","1.8601855117594823E-5","0.01782100833952427"] | Ask HN: What are good resources on strategy and decision making for your career? | | ["0.8611106276512146","0.06648492068052292","0.07240450382232666"] | Forget about promises, use harvests | +------------------------------------------------------------------------+----------------------------------------------------------------------------------+
API
Inserisci un nuovo job e
compila la
proprietà jobs#configuration.query
come nel corpo della richiesta. Sostituisci project_id con il nome del tuo progetto.
{ "query": "SELECT * FROM ML.PREDICT(MODEL `project_id.bqml_tutorial.imported_tf_model`, (SELECT * FROM input_data))" }
BigQuery DataFrames
Prima di provare questo esempio, segui le istruzioni di configurazione di BigQuery DataFrames nella guida rapida di BigQuery per l'utilizzo di BigQuery DataFrames. Per ulteriori informazioni, consulta la documentazione di riferimento di BigQuery DataFrames.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale.
Utilizza la funzione predict per eseguire il modello TensorFlow:
I risultati dovrebbero essere simili a questi:
Nei risultati della query, la colonna dense_1 contiene un array di valori di probabilità e la colonna input contiene i valori stringa corrispondenti della tabella di input. Ogni valore dell'elemento dell'array rappresenta la probabilità che la stringa di input corrispondente sia il titolo di un articolo di una determinata pubblicazione.
Esegui la pulizia
Per evitare che al tuo Account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina il progetto
Console
- Nella console Google Cloud , vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona quello che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.
gcloud
Elimina un progetto Google Cloud :
gcloud projects delete PROJECT_ID
Elimina singole risorse
In alternativa, rimuovi le singole risorse utilizzate in questo tutorial:
(Facoltativo) Elimina il set di dati.
Passaggi successivi
- Per una panoramica di BigQuery ML, consulta Introduzione a BigQuery ML.
- Per iniziare a utilizzare BigQuery ML, consulta Creare modelli di machine learning in BigQuery ML.
- Per ulteriori informazioni sull'importazione dei modelli TensorFlow, vedi
L'istruzione
CREATE MODELper l'importazione dei modelli TensorFlow. - Per saperne di più su come lavorare con i modelli, consulta queste risorse:
- Per saperne di più sull'utilizzo dell'API BigQuery DataFrames in un notebook BigQuery, consulta: