En este instructivo, importarás modelos de TensorFlow a un conjunto de datos de BigQuery ML. Luego, usas una consulta en SQL para generar predicciones a partir de los modelos importados.
Objetivos
- Usa la sentencia
CREATE MODEL
para importar modelos de TensorFlow en BigQuery ML. - Usa la función
ML.PREDICT
para hacer predicciones con los modelos de TensorFlow importados.
Costos
En este documento, usarás los siguientes componentes facturables de Trusted Cloud by S3NS:
Para generar una estimación de costos en función del uso previsto,
usa la calculadora de precios.
Cuando completes las tareas que se describen en este documento, podrás borrar los recursos que creaste para evitar que se te siga facturando. Para obtener más información, consulta Realiza una limpieza.
Antes de comenzar
-
In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
-
Verify that billing is enabled for your Trusted Cloud project.
Asegúrate de que la API de BigQuery esté habilitada.
- Asegúrate de tener los permisos necesarios para realizar las tareas de este documento.
-
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 Trusted 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 Trusted Cloud console, go to the IAM page.
Ir a IAM - Selecciona el proyecto.
- Haz clic en Otorgar acceso.
-
En el campo Principales nuevas, ingresa tu identificador de usuario. Este suele ser el identificador de un usuario que pertenece a un grupo de identidades de personal. Para obtener más información, consulta Representa a los usuarios del grupo de personal en políticas de IAM o comunícate con el administrador.
- En la lista Seleccionar un rol, elige uno.
- Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega uno más.
- Haz clic en Guardar.
En la consola de Trusted Cloud , ve a la página BigQuery.
En el panel Explorador, haz clic en el nombre de tu proyecto.
Haz clic en
Ver acciones > Crear conjunto de datos.En la página Crear conjunto de datos, haz lo siguiente:
En ID del conjunto de datos, ingresa
bqml_tutorial
.En Tipo de ubicación, selecciona Multirregión y, luego, EE.UU. (varias regiones en Estados Unidos).
Deja la configuración predeterminada restante como está y haz clic en Crear conjunto de datos.
Crea un conjunto de datos llamado
bqml_tutorial
con la ubicación de los datos establecida enUS
y una descripción deBigQuery ML tutorial dataset
:bq --location=US mk -d \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
En lugar de usar la marca
--dataset
, el comando usa el acceso directo-d
. Si omites-d
y--dataset
, el comando crea un conjunto de datos de manera predeterminada.Confirma que se haya creado el conjunto de datos:
bq ls
En la consola de Trusted Cloud , ve a la página BigQuery.
En Crear nuevo, haz clic en Consulta en SQL.
En el editor de consultas, ingresa esta sentencia
CREATE MODEL
y, luego, haz clic en Ejecutar.CREATE OR REPLACE MODEL `bqml_tutorial.imported_tf_model` OPTIONS (MODEL_TYPE='TENSORFLOW', MODEL_PATH='gs://cloud-training-demos/txtclass/export/exporter/1549825580/*')
Cuando se complete la operación, deberías ver un mensaje como
Successfully created model named imported_tf_model
.Tu nuevo modelo aparece en el panel Recursos. Los modelos se indican con el ícono de modelo:
.
Si seleccionas el modelo nuevo en el panel Recursos, la información sobre el modelo aparece debajo del Editor de consultas.
Para importar el modelo de TensorFlow desde Cloud Storage, ingresa la siguiente instrucción
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/*')"
Después de importar el modelo, verifica que aparezca en el conjunto de datos.
bq ls bqml_tutorial
El resultado es similar a este:
tableId Type ------------------- ------- imported_tf_model MODEL
En la consola de Trusted Cloud , ve a la página BigQuery.
En Crear nuevo, haz clic en Consulta en SQL.
En el editor de consultas, ingresa esta consulta que usa la función
ML.PREDICT
.SELECT * FROM ML.PREDICT(MODEL `bqml_tutorial.imported_tf_model`, ( SELECT title AS input FROM bigquery-public-data.hacker_news.full ) )
Los resultados de la búsqueda deberían verse así:
- In the Trusted 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.
- In the Trusted 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.
Opcional: Borra el conjunto de datos.
- Para obtener una descripción general de BigQuery ML, consulta Introducción a BigQuery ML.
- Para comenzar a usar BigQuery ML, consulta Crea modelos de aprendizaje automático en BigQuery ML.
- Para obtener más información sobre la importación de modelos de TensorFlow, consulta la declaración
CREATE MODEL
para importar modelos de TensorFlow. - Para obtener más información sobre cómo trabajar con modelos, consulta estos recursos:
- Para obtener más información sobre el uso de la API de BigQuery DataFrames en un notebook de BigQuery, consulta lo siguiente:
Para obtener más información sobre los permisos de IAM en BigQuery, consulta Permisos de BigQuery.
Crea un conjunto de datos
Crea un conjunto de datos de BigQuery para almacenar tu modelo de AA.
Console
bq
Para crear un conjunto de datos nuevo, usa el comando
bq mk
con la marca--location
. Para obtener una lista completa de los parámetros posibles, consulta la referencia del comandobq mk --dataset
.API
Llama al método
datasets.insert
con un recurso de conjunto de datos definido.{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Permite trabajar con BigQuery DataFrames.
Antes de probar este ejemplo, sigue las instrucciones de configuración de BigQuery DataFrames en la guía de inicio rápido de BigQuery con BigQuery DataFrames. Para obtener más información, consulta la documentación de referencia de BigQuery DataFrames.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura ADC para un entorno de desarrollo local.
Importa un modelo de TensorFlow
En los siguientes pasos, se muestra cómo importar un modelo desde Cloud Storage. La ruta de acceso al modelo es
gs://cloud-training-demos/txtclass/export/exporter/1549825580/*
. El nombre del modelo importado esimported_tf_model
.Ten en cuenta que el URI de Cloud Storage termina en un carácter comodín (
*
), que indica que BigQuery ML debe importar los recursos asociados con el modelo.El modelo importado es un modelo clasificador de texto de TensorFlow que predice qué sitio web publicó el título de un artículo determinado.
Para importar el modelo de TensorFlow a tu conjunto de datos, sigue estos pasos.
Console
bq
API
Inserta un nuevo trabajo y propaga la propiedad jobs#configuration.query en el cuerpo de la solicitud.
{ "query": "CREATE MODEL `PROJECT_ID:bqml_tutorial.imported_tf_model` OPTIONS(MODEL_TYPE='TENSORFLOW' MODEL_PATH='gs://cloud-training-demos/txtclass/export/exporter/1549825580/*')" }
Reemplaza
PROJECT_ID
por el nombre de tu proyecto y conjunto de datos.Permite trabajar con BigQuery DataFrames.
Antes de probar este ejemplo, sigue las instrucciones de configuración de BigQuery DataFrames en la guía de inicio rápido de BigQuery con BigQuery DataFrames. Para obtener más información, consulta la documentación de referencia de BigQuery DataFrames.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura ADC para un entorno de desarrollo local.
Importa el modelo con el objeto
TensorFlowModel
.Para obtener más información sobre cómo importar modelos de TensorFlow a BigQuery ML, incluidos los requisitos de formato y almacenamiento, consulta la declaración
CREATE MODEL
para importar modelos de TensorFlow.Realiza predicciones con el modelo de TensorFlow importado
Después de importar el modelo de TensorFlow, usas la función
ML.PREDICT
para hacer predicciones con el modelo.La siguiente consulta usa
imported_tf_model
para realizar predicciones con datos de entrada de la tablafull
en el conjunto de datos públicoshacker_news
. En la consulta, la funciónserving_input_fn
del modelo de TensorFlow especifica que el modelo espera una sola cadena de entrada llamadainput
. La subconsulta asigna el aliasinput
a la columnatitle
en la declaraciónSELECT
de la subconsulta.Para realizar predicciones con el modelo importado de TensorFlow, sigue estos pasos.
Console
bq
Ingresa este comando para ejecutar la 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`))'
Los resultados deberían verse así:
+------------------------------------------------------------------------+----------------------------------------------------------------------------------+ | 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
Inserta un nuevo trabajo y propaga la propiedad jobs#configuration.query como en el cuerpo de la solicitud. Reemplaza
project_id
por el nombre de tu proyecto.{ "query": "SELECT * FROM ML.PREDICT(MODEL `project_id.bqml_tutorial.imported_tf_model`, (SELECT * FROM input_data))" }
Permite trabajar con BigQuery DataFrames.
Antes de probar este ejemplo, sigue las instrucciones de configuración de BigQuery DataFrames en la guía de inicio rápido de BigQuery con BigQuery DataFrames. Para obtener más información, consulta la documentación de referencia de BigQuery DataFrames.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura ADC para un entorno de desarrollo local.
Usa la función
predict
para ejecutar el modelo remoto:Los resultados deberían verse así:
En los resultados de la consulta, la columna
dense_1
contiene un array de valores de probabilidad, y la columnainput
contiene los valores de cadena correspondientes de la tabla de entrada. Cada valor del elemento del array representa la probabilidad de que la cadena de entrada correspondiente sea el título de un artículo de una publicación en particular.Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
Borra el proyecto
Console
gcloud
Borra los recursos individuales
Como alternativa, quita los recursos individuales que se usan en este instructivo:
¿Qué sigue?
-
Roles requeridos
Si creas un proyecto nuevo, serás el propietario y se te otorgarán todos los permisos de Identity and Access Management (IAM) necesarios para completar este instructivo.
Si usas un proyecto existente, el rol de Administrador de BigQuery Studio (roles/bigquery.studioAdmin
) otorga todos los permisos necesarios para completar este instructivo.