Neste tutorial, você vai importar modelos do TensorFlow para um conjunto de dados do BigQuery ML. Em seguida, use uma consulta SQL para fazer previsões com base nos modelos importados.
Objetivos
- Use a instrução
CREATE MODEL
para importar modelos do TensorFlow para o BigQuery ML. - Use a função
ML.PREDICT
para fazer previsões com os modelos do TensorFlow importados.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Saiba mais em Limpeza.
Antes de começar
- 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.
Verifique se a API BigQuery está ativada.
- Verifique se você tem as permissões necessárias para realizar as tarefas neste documento.
Funções exigidas
Se você criar um projeto, será o proprietário dele e receberá todas as permissões do Identity and Access Management (IAM) necessárias para concluir este tutorial.
Se você estiver usando um projeto existente, o papel Administrador do BigQuery Studio (roles/bigquery.studioAdmin
) concede todas as permissões necessárias para concluir este tutorial.
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.
Acessar o IAM - Selecionar um projeto.
- Clique em CONCEDER ACESSO.
-
No campo Novos principais, insira seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.
- Na lista Selecionar um papel, escolha um.
- Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.
- Clique em Salvar.
Para mais informações sobre as permissões do IAM no BigQuery, consulte Permissões do BigQuery.
Criar um conjunto de dados
Crie um conjunto de dados do BigQuery para armazenar seu modelo de ML.
Console
No Console do Google Cloud, acesse a página BigQuery.
No painel Explorer, clique no nome do seu projeto.
Clique em
Conferir ações > Criar conjunto de dados.Na página Criar conjunto de dados, faça o seguinte:
Para o código do conjunto de dados, insira
bqml_tutorial
.Em Tipo de local, selecione Multirregião e EUA (várias regiões nos Estados Unidos).
Os conjuntos de dados públicos são armazenados na multirregião
US
. Para simplificar, armazene seus conjuntos de dados no mesmo local.- Mantenha as configurações padrão restantes e clique em Criar conjunto de dados.
bq
Para criar um novo conjunto de dados, utilize o
comando bq mk
com a sinalização --location
. Para obter uma lista completa de parâmetros, consulte a
referência
comando bq mk --dataset
.
Crie um conjunto de dados chamado
bqml_tutorial
com o local de dados definido comoUS
e uma descrição deBigQuery ML tutorial dataset
:bq --location=US mk -d \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Em vez de usar a flag
--dataset
, o comando usa o atalho-d
. Se você omitir-d
e--dataset
, o comando vai criar um conjunto de dados por padrão.Confirme se o conjunto de dados foi criado:
bq ls
API
Chame o método datasets.insert
com um recurso de conjunto de dados definido.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Importar um modelo do TensorFlow
As etapas a seguir mostram como importar um modelo do Cloud Storage.
O caminho para o modelo é
gs://cloud-training-demos/txtclass/export/exporter/1549825580/*
. O nome do modelo importado é imported_tf_model
.
O URI do Cloud Storage termina em um caractere curinga (*
).
Esse caractere indica que o BigQuery ML precisa importar todos os recursos
associados ao modelo.
O modelo importado é um modelo de classificador de texto do TensorFlow que prevê qual site publicou um determinado título de artigo.
Para importar o modelo do TensorFlow para seu conjunto de dados, siga estas etapas.
Console
No Console do Google Cloud, acesse a página BigQuery.
Em Criar novo, clique em Consulta SQL.
No editor de consultas, insira esta instrução
CREATE MODEL
e clique em Executar.CREATE OR REPLACE MODEL `bqml_tutorial.imported_tf_model` OPTIONS (MODEL_TYPE='TENSORFLOW', MODEL_PATH='gs://cloud-training-demos/txtclass/export/exporter/1549825580/*')
Quando a operação for concluída, você vai receber uma mensagem como
Successfully created model named imported_tf_model
.O novo modelo vai aparecer no painel Resources. Os modelos são indicados pelo ícone:
.
Se você selecionar o novo modelo no painel Recursos, as informações sobre o modelo serão exibidas abaixo do Editor de consultas.
bq
Importe o modelo do TensorFlow do Cloud Storage digitando a seguinte instrução
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/*')"
Depois de importar o modelo, verifique se ele aparece no conjunto de dados.
bq ls bqml_tutorial
O resultado será assim:
tableId Type ------------------- ------- imported_tf_model MODEL
API
Insira um novo job e preencha a propriedade jobs#configuration.query no corpo da solicitação.
{ "query": "CREATE MODEL `PROJECT_ID:bqml_tutorial.imported_tf_model` OPTIONS(MODEL_TYPE='TENSORFLOW' MODEL_PATH='gs://cloud-training-demos/txtclass/export/exporter/1549825580/*')" }
Substitua PROJECT_ID
pelo nome do seu projeto e do conjunto de dados.
BigQuery DataFrames
Antes de testar esta amostra, siga as instruções de configuração dos BigQuery DataFrames no Guia de início rápido do BigQuery: como usar os BigQuery DataFrames. Para mais informações, consulte a documentação de referência do BigQuery DataFrames.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.
Importe o modelo usando o objeto TensorFlowModel
.
Para mais informações sobre como importar modelos do TensorFlow no BigQuery ML, incluindo requisitos de formato e armazenamento, consulte a instrução CREATE MODEL
para importar modelos do TensorFlow.
Fazer previsões com o modelo importado do TensorFlow
Depois de importar o modelo do TensorFlow, use a
função ML.PREDICT
para fazer previsões com o modelo.
A consulta a seguir usa imported_tf_model
para fazer previsões usando dados de entrada da tabela full
no conjunto de dados público hacker_news
. Na consulta,
a função serving_input_fn
do modelo do TensorFlow especifica que
o modelo espera uma única string de entrada chamada input
. A subconsulta atribui o
alias input
à coluna title
na instrução SELECT
da subconsulta.
Para fazer previsões com o modelo importado do TensorFlow, siga estas etapas.
Console
No Console do Google Cloud, acesse a página BigQuery.
Em Criar novo, clique em Consulta SQL.
No editor de consultas, insira esta consulta que usa a função
ML.PREDICT
.SELECT * FROM ML.PREDICT(MODEL `bqml_tutorial.imported_tf_model`, ( SELECT title AS input FROM bigquery-public-data.hacker_news.full ) )
Os resultados da consulta vão ficar assim:
bq
Digite este comando para executar a consulta que usa 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`))'
Os resultados devem ficar assim:
+------------------------------------------------------------------------+----------------------------------------------------------------------------------+ | 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
Insira um novo job e
preencha a propriedade
jobs#configuration.query
como no corpo da solicitação. Substitua project_id
pelo nome do
projeto.
{ "query": "SELECT * FROM ML.PREDICT(MODEL `project_id.bqml_tutorial.imported_tf_model`, (SELECT * FROM input_data))" }
BigQuery DataFrames
Antes de testar esta amostra, siga as instruções de configuração dos BigQuery DataFrames no Guia de início rápido do BigQuery: como usar os BigQuery DataFrames. Para mais informações, consulte a documentação de referência do BigQuery DataFrames.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.
Use a função predict
para executar o modelo remoto:
Os resultados devem ficar assim:
Nos resultados da consulta, a coluna dense_1
contém uma matriz de valores de probabilidade, e a coluna input
contém os valores de string correspondentes da tabela de entrada. Cada valor de elemento da matriz representa
a probabilidade de que a string de entrada correspondente seja um título de artigo
de uma publicação específica.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
Excluir o projeto
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
Excluir recursos individuais
Como alternativa, remova os recursos individuais usados neste tutorial:
Opcional: exclua o conjunto de dados.
A seguir
- Para uma visão geral do BigQuery ML, consulte Introdução ao BigQuery ML.
- Para começar a usar o BigQuery ML, consulte Criar modelos de machine learning no BigQuery ML.
- Para mais informações sobre como importar modelos do TensorFlow, consulte
A instrução
CREATE MODEL
para importar modelos do TensorFlow. - Para mais informações sobre como trabalhar com modelos, consulte estes recursos:
- Para mais informações sobre como usar a API BigQuery DataFrames em um notebook do BigQuery, consulte: