Administrar modelos
En esta página, se muestra cómo administrar modelos de BigQuery ML, lo que incluye cómo copiar modelos y cómo cambiarles el nombre.
Roles obligatorios
Para obtener los permisos que necesitas para leer y crear modelos de BigQuery, pídele a tu administrador que te otorgue el rol de IAM de Editor de datos de BigQuery (roles/bigquery.dataEditor
) en el proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para leer y crear modelos de BigQuery. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para leer y crear modelos de BigQuery:
-
Para leer información de los modelos, haz lo siguiente:
bigquery.models.getData
-
Para crear modelos, sigue estos pasos:
bigquery.models.create
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Cambia el nombre de los modelos
No puedes cambiar el nombre de un modelo existente. Si necesitas cambiar el nombre del modelo, sigue los pasos para copiar el modelo. Cuando especifiques el destino en la operación de copia, usa el nombre de modelo nuevo.
Copia modelos
Para copiar uno o más modelos de un conjunto de datos fuente a un conjunto de datos de destino, puedes hacer lo siguiente:
- Usa la consola de Google Cloud
- Usar el comando
bq cp
de la herramienta de línea de comandos de bq - Llama directamente al método de la API jobs.insert y configura un trabajo de copia o usa las bibliotecas cliente.
Limitaciones en la copia de modelos
Los trabajos de copia de modelos están sujetos a las siguientes limitaciones:
- Cuando copias un modelo, el nombre del modelo de destino debe respetar las mismas convenciones de nombres que cuando creas un modelo.
- Las copias de modelos están sujetas a los límites de BigQuery en los trabajos de copia.
- La consola de Google Cloud no admite la copia de un modelo.
- No se admite la copia de varios modelos fuente en un solo comando.
- Cuando copias un modelo mediante la CLI, la marca
--destination_kms_key
no es compatible.
Cómo copiar un modelo
Puedes copiar un modelo de la siguiente forma:
- Con el comando
bq cp
de la herramienta de línea de comandos - Llama al método de la API
jobs.insert
y configura un trabajo de copia o usa las bibliotecas cliente.
Para copiar un modelo, haz lo siguiente:
Console
La consola de Google Cloud no admite la copia de modelos.
bq
Ejecuta el comando bq cp
. Marcas opcionales:
-f
o--force
reemplaza un modelo existente en el conjunto de datos de destino y no solicita confirmación.-n
o--no_clobber
muestra el siguiente mensaje de error si el modelo existe en el conjunto de datos de destino:'[PROJECT_ID]:[DATASET].[MODEL]' already exists, skipping
.Si no se especifica
-n
, el comportamiento predeterminado es solicitarte que elijas si deseas reemplazar el modelo de destino.
Si el conjunto de datos de origen o de destino se encuentra en un proyecto que no es el predeterminado, debes agregar el ID del proyecto a los nombres de los conjuntos de datos con el siguiente formato: PROJECT_ID:DATASET
.
Proporciona la marca --location
y configura el valor según tu ubicación.
bq --location=LOCATION cp -f -n PROJECT_ID:DATASET.SOURCE_MODEL PROJECT_ID:DATASET.DESTINATION_MODEL
Reemplaza lo siguiente:
- LOCATION:
El nombre de tu ubicación. La marca
--location
es opcional. Por ejemplo, si usas BigQuery en la región de Tokio, puedes configurar el valor de la marca comoasia-northeast1
. Puedes configurar un valor predeterminado para la ubicación con el archivo .bigqueryrc. Para obtener una lista completa de las ubicaciones, consulta Ubicaciones de BigQuery. - PROJECT_ID: El ID de tu proyecto
- DATASET: Es el nombre del conjunto de datos de origen o de destino.
- SOURCE_MODEL: Es el modelo que copias.
- DESTINATION_MODEL: Es el nombre del modelo en el conjunto de datos de destino.
Ejemplos:
Ingresa el siguiente comando para copiar mydataset.mymodel
a mydataset2
.
Ambos conjuntos de datos se encuentran en tu proyecto predeterminado y se crearon en la ubicación multirregional US
.
bq --location=US cp mydataset.mymodel mydataset2.mymodel
Ingresa el siguiente comando para copiar mydataset.mymodel
y reemplazar un modelo de destino con el mismo nombre. El conjunto de datos fuente se encuentra en tu proyecto predeterminado. El conjunto de datos de destino se encuentra en myotherproject
. La combinación de teclas -f
se utiliza para reemplazar el modelo de destino sin una solicitud.
mydataset
y myotherdataset
se crearon en la ubicación multirregional US
.
bq --location=US cp -f mydataset.mymodel myotherproject:myotherdataset.mymodel
Ingresa el siguiente comando para copiar mydataset.mymodel
y mostrar un error si el conjunto de datos de destino contiene un modelo con el mismo nombre. El conjunto de datos fuente se encuentra en tu proyecto predeterminado. El conjunto de datos de destino se encuentra en myotherproject
. La combinación de teclas -n
se utiliza para evitar reemplazar un modelo con el mismo nombre.
Los dos conjuntos de datos se crearon en la ubicación multirregional US
.
bq --location=US cp -n mydataset.mymodel myotherproject:myotherdataset.mymodel
Ingresa el siguiente comando para copiar mydataset.mymodel
a mydataset2
y cambiar el nombre del modelo mymodel2
. Ambos conjuntos de datos se encuentran en tu proyecto predeterminado.
Ambos conjuntos de datos se crearon en la región asia-northeast1
.
bq --location=asia-northeast1 cp mydataset.mymodel mydataset2.mymodel2
API
Para copiar un modelo mediante el uso de la API, llama al método bigquery.jobs.insert
y configura un trabajo copy
. Especifica tu ubicación en la propiedad location
en la sección jobReference
del recurso de trabajo.
Debes especificar los siguientes valores en tu configuración de trabajo:
"copy": { "sourceTable": { // Required "projectId": string, // Required "datasetId": string, // Required "tableId": string // Required }, "destinationTable": { // Required "projectId": string, // Required "datasetId": string, // Required "tableId": string // Required }, "createDisposition": string, // Optional "writeDisposition": string, // Optional },
Donde:
sourceTable
: proporciona información sobre el modelo que se copiará.destinationTable
: proporciona información sobre el modelo nuevo.createDisposition
: especifica si se debe crear el modelo si no existe.writeDisposition
: especifica si se reemplaza un modelo existente.
Encripta modelos
Si deseas obtener más información sobre el uso de una clave de encriptación administrada por el cliente (CMEK) para encriptar un modelo, consulta Usa CMEK para proteger modelos de BigQuery ML.
¿Qué sigue?
- 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 cómo trabajar con modelos, consulta: