Dans ce tutoriel, vous allez importer des modèles TensorFlow dans un ensemble de données BigQuery ML. Vous utilisez ensuite une requête SQL pour effectuer des prédictions à partir des modèles importés.
Objectifs
- Utilisez l'instruction
CREATE MODEL
pour importer des modèles TensorFlow dans BigQuery ML. - Utilisez la fonction
ML.PREDICT
pour effectuer des prédictions avec les modèles TensorFlow importés.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Vérifiez que l'API BigQuery est activée.
- Assurez-vous de disposer des autorisations nécessaires pour effectuer les tâches décrites dans ce document.
Rôles requis
Si vous créez un projet, vous en êtes le propriétaire et vous disposez de toutes les autorisations IAM (Identity and Access Management) requises pour suivre ce tutoriel.
Si vous utilisez un projet existant, le rôle Administrateur BigQuery Studio (roles/bigquery.studioAdmin
) vous accorde toutes les autorisations nécessaires pour suivre ce tutoriel.
Make sure that you have the following role or roles on the project:
BigQuery Studio Admin (roles/bigquery.studioAdmin
).
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Accéder à IAM - Sélectionnez le projet.
- Cliquez sur Accorder l'accès.
-
Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.
- Dans la liste Sélectionner un rôle, sélectionnez un rôle.
- Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez chaque rôle supplémentaire.
- Cliquez sur Enregistrer.
Pour en savoir plus sur les autorisations IAM dans BigQuery, consultez la page Autorisations BigQuery.
Créer un ensemble de données
Créez un ensemble de données BigQuery pour stocker votre modèle de ML.
Console
Dans la console Google Cloud, accédez à la page BigQuery.
Dans le volet Explorateur, cliquez sur le nom de votre projet.
Cliquez sur
Afficher les actions > Créer un ensemble de données.Sur la page Créer un ensemble de données, procédez comme suit :
Dans le champ ID de l'ensemble de données, saisissez
bqml_tutorial
.Pour Type d'emplacement, sélectionnez Multirégional, puis sélectionnez US (plusieurs régions aux États-Unis).
Les ensembles de données publics sont stockés dans l'emplacement multirégional
US
. Par souci de simplicité, stockez votre ensemble de données dans le même emplacement.- Conservez les autres paramètres par défaut, puis cliquez sur Créer un ensemble de données.
bq
Pour créer un ensemble de données, exécutez la commande bq mk
en spécifiant l'option --location
. Pour obtenir la liste complète des paramètres possibles, consultez la documentation de référence sur la commande bq mk --dataset
.
Créez un ensemble de données nommé
bqml_tutorial
avec l'emplacement des données défini surUS
et une description deBigQuery ML tutorial dataset
:bq --location=US mk -d \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Au lieu d'utiliser l'option
--dataset
, la commande utilise le raccourci-d
. Si vous omettez-d
et--dataset
, la commande crée un ensemble de données par défaut.Vérifiez que l'ensemble de données a été créé:
bq ls
API
Appelez la méthode datasets.insert
avec une ressource d'ensemble de données définie.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Importer un modèle TensorFlow
Les étapes suivantes vous expliquent comment importer un modèle depuis Cloud Storage.
Le chemin d'accès au modèle est gs://cloud-training-demos/txtclass/export/exporter/1549825580/*
. Le nom du modèle importé est imported_tf_model
.
Notez que l'URI Cloud Storage se termine par un caractère générique (*
). Ce caractère indique que BigQuery ML doit importer tous les éléments associés au modèle.
Le modèle importé est un modèle de classificateur de texte TensorFlow capable d'identifier le site Web ayant publié un titre d'article donné.
Pour importer le modèle TensorFlow dans votre ensemble de données, procédez comme suit.
Console
Dans la console Google Cloud, accédez à la page BigQuery.
Pour Créer, cliquez sur Requête SQL.
Dans l'éditeur de requête, saisissez cette instruction
CREATE MODEL
, puis cliquez sur Exécuter.CREATE OR REPLACE MODEL `bqml_tutorial.imported_tf_model` OPTIONS (MODEL_TYPE='TENSORFLOW', MODEL_PATH='gs://cloud-training-demos/txtclass/export/exporter/1549825580/*')
Une fois l'opération terminée, un message semblable à
Successfully created model named imported_tf_model
s'affiche.Votre nouveau modèle s'affiche dans le panneau Ressources. Les modèles sont indiqués par l'icône
.
Si vous sélectionnez le nouveau modèle dans le panneau Ressources, les informations relatives au modèle s'affichent sous l'éditeur de requête.
bq
Importez le modèle TensorFlow à partir de Cloud Storage en saisissant l'instruction
CREATE MODEL
suivante.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/*')"
Une fois le modèle importé, vérifiez qu'il apparaît dans l'ensemble de données.
bq ls bqml_tutorial
Le résultat ressemble à ce qui suit :
tableId Type ------------------- ------- imported_tf_model MODEL
API
Insérez une nouvelle tâche et renseignez la propriété jobs#configuration.query dans le corps de la requête.
{ "query": "CREATE MODEL `PROJECT_ID:bqml_tutorial.imported_tf_model` OPTIONS(MODEL_TYPE='TENSORFLOW' MODEL_PATH='gs://cloud-training-demos/txtclass/export/exporter/1549825580/*')" }
Remplacez PROJECT_ID
par le nom de votre projet et de votre ensemble de données.
BigQuery DataFrames
Avant d'essayer cet exemple, suivez les instructions de configuration pour BigQuery DataFrames du guide de démarrage rapide de BigQuery DataFrames. Pour en savoir plus, consultez la documentation de référence sur BigQuery DataFrames.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'ADC pour un environnement de développement local.
Importez le modèle à l'aide de l'objet TensorFlowModel
.
Pour en savoir plus sur l'importation de modèles TensorFlow dans BigQuery ML, y compris sur les exigences de format et de stockage, consultez la section Instruction CREATE MODEL
pour importer des modèles TensorFlow.
Effectuer des prédictions avec le modèle TensorFlow importé
Après avoir importé le modèle TensorFlow, vous utilisez la fonction ML.PREDICT
pour effectuer des prédictions avec le modèle.
La requête suivante utilise imported_tf_model
pour effectuer des prédictions à l'aide des données d'entrée de la table full
de l'ensemble de données public hacker_news
. Dans la requête, la fonction serving_input_fn
du modèle TensorFlow spécifie que le modèle s'attend à une seule chaîne d'entrée nommée input
. La sous-requête attribue l'alias input
à la colonne title
dans l'instruction SELECT
de la sous-requête.
Pour effectuer des prédictions avec le modèle TensorFlow importé, procédez comme suit :
Console
Dans la console Google Cloud, accédez à la page BigQuery.
Sous Créer, cliquez sur Requête SQL.
Dans l'éditeur de requêtes, saisissez cette requête qui utilise la fonction
ML.PREDICT
.SELECT * FROM ML.PREDICT(MODEL `bqml_tutorial.imported_tf_model`, ( SELECT title AS input FROM bigquery-public-data.hacker_news.full ) )
Les résultats de la requête doivent se présenter comme suit:
bq
Saisissez cette commande pour exécuter la requête qui utilise 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`))'
Les résultats doivent se présenter comme suit:
+------------------------------------------------------------------------+----------------------------------------------------------------------------------+ | 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
Insérez une nouvelle tâche et renseignez la propriété jobs#configuration.query comme dans le corps de la requête. Remplacez project_id
par le nom de votre projet.
{ "query": "SELECT * FROM ML.PREDICT(MODEL `project_id.bqml_tutorial.imported_tf_model`, (SELECT * FROM input_data))" }
BigQuery DataFrames
Avant d'essayer cet exemple, suivez les instructions de configuration pour BigQuery DataFrames du guide de démarrage rapide de BigQuery DataFrames. Pour en savoir plus, consultez la documentation de référence sur BigQuery DataFrames.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'ADC pour un environnement de développement local.
Utilisez la fonction predict
pour exécuter le modèle distant :
Les résultats doivent se présenter comme suit:
Dans les résultats de la requête, la colonne dense_1
contient un tableau de valeurs de probabilité, et la colonne input
contient les valeurs de chaîne correspondantes de la table d'entrée. Chaque valeur d'élément du tableau représente la probabilité que la chaîne d'entrée correspondante soit un titre d'article issu d'une publication spécifique.
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.
Supprimer le projet
Console
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
gcloud
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Supprimer des ressources individuelles
Vous pouvez également supprimer les ressources individuelles utilisées dans ce tutoriel:
Étape suivante
- Pour obtenir plus d'informations sur BigQuery ML, consultez la page Présentation de BigQuery ML.
- Pour commencer à utiliser BigQuery ML, consultez Créer des modèles de machine learning dans BigQuery ML.
- Pour en savoir plus sur l'importation de modèles TensorFlow, consultez la section Instruction
CREATE MODEL
pour importer des modèles TensorFlow. - Pour en savoir plus sur l'utilisation des modèles, consultez les ressources suivantes :
- Pour en savoir plus sur l'utilisation de l'API BigQuery DataFrames dans un notebook BigQuery, consultez les pages suivantes :