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 générer des prédictions à partir des modèles importés.
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).
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" } }
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 les ADC pour un environnement de développement local.
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.
Sous Créer, cliquez sur Requête SQL.
Dans l'éditeur de requête, saisissez l'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 tel que
Successfully created model named imported_tf_model
doit s'afficher.Votre nouveau modèle apparaît 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 depuis 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 -m 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 les 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 l'importation de modèles TensorFlow.
Effectuer des prédictions à l'aide du 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
dans l'ensemble de données public hacker_news
. Dans la requête, la fonction serving_input_fn
du modèle TensorFlow indique 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é, suivez ces étapes.
Console
Dans la console Google Cloud , accédez à la page BigQuery.
Sous Créer, cliquez sur Requête SQL.
Dans l'éditeur de requête, saisissez la 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 devraient 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 sous la forme suivante :
+------------------------------------------------------------------------+----------------------------------------------------------------------------------+ | 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 les ADC pour un environnement de développement local.
Utilisez la fonction predict
pour exécuter le modèle TensorFlow :
Les résultats doivent se présenter sous la forme suivante :
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.