Actualiza los metadatos del modelo

Descripción general

En esta página, se muestra cómo actualizar los metadatos del modelo de BigQuery ML. Puedes actualizar metadatos del modelo mediante lo siguiente:

  • Usa Cloud Console.
  • Usa el comando bq update de la CLI.
  • Llama directamente al método models.patch de la API o usa las bibliotecas cliente.

Se pueden actualizar los siguientes metadatos del modelo:

  • Descripción: se puede actualizar mediante la IU web de BigQuery, la CLI, la API o las bibliotecas cliente.
  • Etiquetas: se pueden actualizar mediante la IU web de BigQuery, la CLI, la API o las bibliotecas cliente.
  • Hora de vencimiento: se puede actualizar mediante la CLI, la API o las bibliotecas cliente.

Permisos necesarios

Para actualizar los metadatos del modelo, debes tener asignada la función WRITER en el conjunto de datos o una función de IAM a nivel de proyecto que incluya permisos bigquery.models.updateMetadata. Si se te otorgan permisos bigquery.models.updateMetadata a nivel de proyecto, puedes actualizar los metadatos de los modelos en cualquier conjunto de datos del proyecto. Las siguientes funciones predefinidas de IAM a nivel de proyecto incluyen los permisos bigquery.models.updateMetadata:

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.admin

Para obtener más información sobre las funciones de IAM y los permisos en BigQuery ML, consulta Control de acceso. Si deseas obtener más información sobre las funciones a nivel del conjunto de datos, consulta Funciones básicas para conjuntos de datos en la documentación de BigQuery.

Actualiza la descripción de un modelo

La descripción de un modelo es una string de texto que se usa para identificar fácilmente el modelo.

Para actualizar la descripción de un modelo, haz lo siguiente:

Console

  1. Ve a la IU web de BigQuery en Cloud Console.

    Ir a la IU web de BigQuery

  2. En el panel de navegación, en la sección Recursos, expande el nombre de tu proyecto y del conjunto de datos.

  3. Haz clic en el nombre de tu modelo. Los modelos se indican con el ícono del modelo: ícono del modelo.

  4. Haz clic en la pestaña Detalles.

  5. Para actualizar la descripción del modelo, haz clic en el ícono de edición (lápiz) a la derecha de la Descripción.

  6. En el diálogo Editar descripción, ingresa tu texto y, luego, haz clic en Actualizar.

CLI

Para actualizar la descripción de un modelo, ejecuta el comando bq update con la marca --model o -m y la marca --description.

Si estás actualizando un modelo de un proyecto que no es tu proyecto predeterminado, agrega el ID del proyecto al conjunto de datos en el siguiente formato: [PROJECT_ID]:[DATASET].

bq ls --model --description "[STRING]" [PROJECT_ID]:[DATASET].[MODEL]

Donde:

  • [STRING] es la string de texto que describe tu modelo entre comillas.
  • [PROJECT_ID] es el ID del proyecto.
  • [DATASET] es el nombre del conjunto de datos.
  • [MODEL] es el nombre del modelo.

El resultado del comando se ve de la siguiente manera:

Model '[PROJECT_ID]:[DATASET].[MODEL]' successfully updated.

Puedes confirmar los cambios ejecutando el comando bq show. Para obtener más información, consulta Obtén metadatos del modelo.

Ejemplos:

Ingresa el siguiente comando para actualizar la descripción de mymodel en mydataset en tu proyecto predeterminado.

bq update --model --description "My updated description" \
mydataset.mymodel

Ingresa el siguiente comando para actualizar la descripción de mymodel en mydataset en myotherproject.

bq update --model --description "My updated description" \
myotherproject:mydataset.mymodel

API

Para actualizar la descripción de un modelo mediante la API, llama al método models.patch y especifica projectId, datasetId y modelId. Si deseas modificar la descripción, agrega o actualiza la propiedad “description” del recurso del modelo.

Go

import (
	"context"
	"fmt"

	"cloud.google.com/go/bigquery"
)

// updateModelDescription demonstrates fetching BigQuery ML model metadata and updating the
// Description metadata.
func updateModelDescription(projectID, datasetID, modelID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	// modelID := "mymodel"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	model := client.Dataset(datasetID).Model(modelID)
	oldMeta, err := model.Metadata(ctx)
	if err != nil {
		return fmt.Errorf("Metadata: %v", err)
	}
	update := bigquery.ModelMetadataToUpdate{
		Description: "This model was modified from a Go program",
	}
	if _, err = model.Update(ctx, update, oldMeta.ETag); err != nil {
		return fmt.Errorf("Update: %v", err)
	}
	return nil
}

Node.js

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function updateModel() {
  // Updates a model's metadata.

  /**
   * TODO(developer): Uncomment the following lines before running the sample
   */
  // const datasetId = "my_dataset";
  // const modelId = "my__model";

  const metadata = {
    description: 'A really great model.',
  };

  const dataset = bigquery.dataset(datasetId);
  const [apiResponse] = await dataset.model(modelId).setMetadata(metadata);
  const newDescription = apiResponse.description;

  console.log(`${modelId} description: ${newDescription}`);
}

Python


from google.cloud import bigquery

# Construct a BigQuery client object.
client = bigquery.Client()

# TODO(developer): Set model_id to the ID of the model to fetch.
# model_id = 'your-project.your_dataset.your_model'

model = client.get_model(model_id)  # Make an API request.
model.description = "This model was modified from a Python program."
model = client.update_model(model, ["description"])  # Make an API request.

full_model_id = "{}.{}.{}".format(model.project, model.dataset_id, model.model_id)
print(
    "Updated model '{}' with description '{}'.".format(
        full_model_id, model.description
    )
)

Actualiza las etiquetas de un modelo

Las etiquetas son pares clave-valor que puedes adjuntar a un recurso. Cuando creas recursos de BigQuery ML, las etiquetas son opcionales. Para obtener más información, consulta Cómo agregar y usar etiquetas en la documentación de BigQuery.

Para actualizar las etiquetas de un modelo, haz lo siguiente:

Console

  1. Ve a la IU web de BigQuery en Cloud Console.

    Ir a la IU web de BigQuery

  2. En el panel de navegación, en la sección Recursos, expande el nombre de tu proyecto y del conjunto de datos.

  3. Haz clic en el nombre de tu modelo. Los modelos se indican con el ícono del modelo: ícono del modelo.

  4. Haz clic en la pestaña Detalles.

  5. Para actualizar las etiquetas del modelo, haz clic en el ícono de edición (lápiz) a la derecha de Etiquetas.

  6. En el diálogo Editar etiquetas, haz lo siguiente:

    • Para aplicar etiquetas adicionales, haz clic en Agregar etiqueta (Add Label). Se puede usar cada clave solo una vez por conjunto de datos, pero puedes usar la misma clave en otros conjuntos de datos del mismo proyecto.
    • Modifica las claves o valores existentes para actualizar una etiqueta.
    • Haz clic en Actualizar para guardar los cambios.

CLI

Para actualizar las etiquetas de un modelo, ejecuta el comando bq update con la marca --model o -m y la marca --set_label. Repite la marca --set_label para agregar o actualizar varias etiquetas.

Si estás actualizando un modelo de un proyecto que no es tu proyecto predeterminado, agrega el ID del proyecto al conjunto de datos en el siguiente formato: [PROJECT_ID]:[DATASET].

bq update --model --set_label [KEY:VALUE] \
[PROJECT_ID]:[DATASET].[MODEL]

Donde:

  • [KEY:VALUE] corresponde a un par clave-valor de una etiqueta que deseas agregar o actualizar. Si especificas la misma clave que una etiqueta existente, se actualiza el valor de la etiqueta existente. La clave debe ser exclusiva.
  • [PROJECT_ID] es el ID del proyecto.
  • [DATASET] es el nombre del conjunto de datos.
  • [MODEL] es el nombre del modelo.

El resultado del comando se ve de la siguiente manera.

Model '[PROJECT_ID]:[DATASET].[MODEL]' successfully updated.

Puedes confirmar los cambios ejecutando el comando bq show. Para obtener más información, consulta Obtén metadatos del modelo.

Ejemplos:

Para actualizar la etiqueta department en mymodel, ingresa el comando bq update y especifica department como clave de etiqueta. Por ejemplo, para actualizar la etiqueta department:shipping a department:logistics, ingresa el siguiente comando. mydataset está en myotherproject, no en tu proyecto predeterminado.

bq update --model --set_label department:logistics \
myotherproject:mydataset.mymodel

API

Para actualizar las etiquetas de un modelo con la API, llama al método models.patch y proporciona projectId, datasetId y modelId. A fin de modificar las etiquetas, agrega o actualiza la propiedad “labels” del recurso del modelo.

Actualiza la hora de vencimiento de un modelo

La hora de vencimiento de un modelo es un valor de marca de tiempo que determina cuándo se borra el modelo. Puedes configurar la hora de vencimiento de un modelo cuando lo creas mediante el uso de la CLI, la API o de las bibliotecas cliente. También puedes configurar o actualizar la hora de vencimiento en un modelo después de su creación. Se suele hablar de "tiempo de actividad” o TTL para referirse a la hora de vencimiento de un modelo.

Si no configuras una hora de vencimiento en un modelo, el modelo nunca vencerá y deberás borrarlo manualmente.

El valor para la hora de vencimiento se expresa de manera diferente según dónde se configure el valor. Usa el método que te dé el nivel apropiado de detalle:

  • En la herramienta de línea de comandos, el vencimiento se expresa en segundos a partir la hora UTC actual. Cuando especificas el vencimiento en la línea de comandos, se suma el número entero en segundos a la marca de tiempo UTC actual.
  • En la API, el vencimiento se expresa en milisegundos desde el ciclo de entrenamiento. Si especificas un valor de vencimiento menor que la marca de tiempo actual, el modelo vence inmediatamente.

Para actualizar la hora de vencimiento de un modelo, haz lo siguiente:

Console

Actualmente, no se admite la configuración o actualización de la hora de vencimiento de un modelo en la IU web de BigQuery en Google Cloud Console.

CLI

Para actualizar la hora de vencimiento de un modelo, ejecuta el comando bq update con la marca --model o -m y la marca --expiration.

Si estás actualizando un modelo de un proyecto que no es tu proyecto predeterminado, agrega el ID del proyecto al conjunto de datos en el siguiente formato: [PROJECT_ID]:[DATASET].

bq update --model --expiration [INTEGER] \
[PROJECT_ID]:[DATASET].[MODEL]

Donde:

  • [INTEGER] es la vida útil (en segundos) del modelo. El valor mínimo es 3,600 segundos (una hora). La hora de vencimiento se evalúa según la hora UTC actual más el número entero.
  • [PROJECT_ID] es el ID del proyecto.
  • [DATASET] es el nombre del conjunto de datos.
  • [MODEL] es el nombre del modelo.

El resultado del comando se ve de la siguiente manera.

Model '[PROJECT_ID]:[DATASET].[MODEL]' successfully updated.

Puedes confirmar los cambios ejecutando el comando bq show. Para obtener más información, consulta Obtén metadatos del modelo.

Ejemplos:

Ingresa el comando siguiente a fin de actualizar la fecha de vencimiento de mymodel en mydataset a 5 días (432,000 segundos). mydataset está en tu proyecto predeterminado.

bq update --model --expiration 432000 mydataset.mymodel

Ingresa el comando siguiente a fin de actualizar la fecha de vencimiento de mymodel en mydataset a 5 días (432,000 segundos). mydataset está en myotherproject, no en el proyecto predeterminado.

bq update --model --expiration 432000 myotherproject:mydataset.mymodel

API

Para actualizar el vencimiento de un modelo con la API, llama al método models.patch y proporciona projectId, datasetId y modelId. A fin de modificar el vencimiento, agrega o actualiza la propiedad “expirationTime” del recurso del modelo. "expirationTime" se expresa en milisegundos desde el ciclo de entrenamiento.

Próximos pasos