Aggiornamento metadati modello

Panoramica

Questa pagina mostra come aggiornare i metadati del modello BigQuery ML. Puoi aggiorna i metadati del modello:

  • Utilizzo della console Google Cloud.
  • Utilizzo del comando bq update nello strumento a riga di comando bq.
  • Chiamata a models.patch API di Google direttamente o utilizzando le librerie client.

Puoi aggiornare i seguenti metadati del modello:

  • Descrizione: può essere aggiornata utilizzando la proprietà Console Google Cloud, strumento a riga di comando bq, API o librerie client.
  • Etichette: possono essere aggiornate utilizzando la console Google Cloud, lo strumento a riga di comando bq, l'API o le librerie client.
  • Data di scadenza: può essere aggiornata usando lo strumento bq, librerie client o API.

Autorizzazioni obbligatorie

Per aggiornare i metadati del modello, ti deve essere assegnato il WRITER nel set di dati oppure ti deve essere assegnato un ruolo Identity and Access Management (IAM) a livello di progetto che include le autorizzazioni bigquery.models.updateMetadata. Se ti viene concesso bigquery.models.updateMetadata autorizzazioni a livello di progetto, puoi: aggiornare i metadati per i modelli in qualsiasi set di dati nel progetto. Le seguenti i ruoli IAM predefiniti a livello di progetto includono bigquery.models.updateMetadata autorizzazioni:

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

Per ulteriori informazioni su ruoli e autorizzazioni IAM in BigQuery ML, consulta Controllo dell'accesso.

Aggiorna la descrizione di un modello

La descrizione di un modello è una stringa di testo utilizzata per identificare facilmente model.

Per aggiornare la descrizione di un modello:

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai alla pagina di BigQuery

  2. Nel pannello di navigazione, nella sezione Risorse, espandi le il nome del progetto e quello del set di dati.

  3. Fai clic sul nome del modello. I modelli sono indicati dall'icona del modello: icona modello.

  4. Fai clic sulla scheda Dettagli.

  5. Per aggiornare la descrizione del modello, fai clic sull'icona di modifica (a forma di matita) a destra di Descrizione.

  6. Nella finestra di dialogo Modifica descrizione, inserisci il testo e fai clic su Aggiorna.

bq

Per aggiornare la descrizione di un modello, esegui il comando bq update --model o -m e il flag --description.

Se aggiorni un modello in un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: [PROJECT_ID]:[DATASET].

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

Dove:

  • [STRING] è la stringa di testo che descrive il modello tra virgolette.
  • [PROJECT_ID] è l'ID progetto.
  • [DATASET] è il nome del set di dati.
  • [MODEL] è il nome del modello.

L'output comando è simile al seguente:

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

Puoi confermare le modifiche utilizzando il comando bq show. Per ulteriori informazioni per le informazioni, consulta Recuperare i metadati del modello.

Esempi:

Inserisci il comando seguente per aggiornare la descrizione di mymodel in mydataset nel progetto predefinito.

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

Inserisci il comando seguente per aggiornare la descrizione di mymodel in mydataset a myotherproject.

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

API

Per aggiornare la descrizione di un modello utilizzando l'API, chiama il metodo models.patch e fornire i projectId, datasetId e modelId. Per modificare la descrizione, aggiungere o aggiornare la "descrizione" per gli risorsa del modello.

Vai

Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Go BigQuery documentazione di riferimento.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.

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: %w", err)
	}
	defer client.Close()

	model := client.Dataset(datasetID).Model(modelID)
	oldMeta, err := model.Metadata(ctx)
	if err != nil {
		return fmt.Errorf("couldn't retrieve model metadata: %w", 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("couldn't update model: %w", err)
	}
	return nil
}

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Model;
import com.google.cloud.bigquery.ModelId;

// Sample to update description on a model
public class UpdateModelDescription {

  public static void runUpdateModelDescription() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    String modelName = "MY_MODEL_NAME";
    String newDescription = "A really great model.";
    updateModelDescription(datasetName, modelName, newDescription);
  }

  public static void updateModelDescription(
      String datasetName, String modelName, String newDescription) {
    try {
      // Initialize client that will be used to send requests. This client only needs to be created
      // once, and can be reused for multiple requests.
      BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

      Model model = bigquery.getModel(ModelId.of(datasetName, modelName));
      bigquery.update(model.toBuilder().setDescription(newDescription).build());
      System.out.println("Model description updated successfully to " + newDescription);
    } catch (BigQueryException e) {
      System.out.println("Model description was not updated \n" + e.toString());
    }
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Node.js BigQuery documentazione di riferimento.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.

// 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

Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Python BigQuery documentazione di riferimento.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.


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
    )
)

Aggiorna le etichette di un modello

Le etichette sono coppie chiave-valore che puoi collegare a una risorsa. Quando crei Risorse di BigQuery ML, le etichette sono facoltative. Per ulteriori informazioni, vedi Aggiunta e utilizzo delle etichette.

Per aggiornare le etichette di un modello:

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai alla pagina di BigQuery

  2. Nel pannello di navigazione, nella sezione Risorse, espandi le il nome del progetto e quello del set di dati.

  3. Fai clic sul nome del modello. I modelli sono indicato dall'icona del modello: icona modello.

  4. Fai clic sulla scheda Dettagli.

  5. Per aggiornare le etichette del modello, fai clic sull'icona di modifica (matita) a destra di Etichette.

  6. Nella finestra di dialogo Modifica etichette:

    • Per applicare altre etichette, fai clic su Aggiungi etichetta. Ogni chiave può essere usata una sola volta per set di dati, ma puoi usare la stessa chiave in all'interno dello stesso progetto.
    • Modifica le chiavi o i valori esistenti per aggiornare un'etichetta.
    • Fai clic su Update (Aggiorna) per salvare le modifiche.

bq

Per aggiornare le etichette di un modello, esegui il comando bq update --model o -m e il flag --set_label. Ripeti il --set_label per aggiungere o aggiornare più etichette.

Se aggiorni un modello in un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: [PROJECT_ID]:[DATASET].

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

Dove:

  • [KEY:VALUE] corrisponde a una coppia chiave-valore per un'etichetta che vuoi aggiungere o aggiornare. Se specifichi la stessa chiave di un'etichetta esistente, viene aggiornato il valore dell'etichetta esistente. La chiave deve essere univoca.
  • [PROJECT_ID] è l'ID progetto.
  • [DATASET] è il nome del set di dati.
  • [MODEL] è il nome del modello.

L'output comando è simile al seguente.

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

Puoi confermare le modifiche utilizzando il comando bq show. Per ulteriori informazioni per le informazioni, consulta Recuperare i metadati del modello.

Esempi:

Per aggiornare l'etichetta department su mymodel, inserisci il comando bq update e specifica department come chiave di etichetta. Ad esempio, per aggiornare department:shipping etichetta in department:logistics, inserisci quanto segue . mydataset si trova nella cartella myotherproject, non nel tuo progetto predefinito.

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

API

Per aggiornare le etichette di un modello utilizzando l'API, chiama il metodo models.patch e fornire i projectId, datasetId e modelId. Per modificare le etichette, aggiungere o aggiornare le "etichette" per gli risorsa del modello.

Aggiorna la data di scadenza di un modello

La scadenza di un modello è un valore timestamp che indica quando il modello viene eliminati. Puoi impostare la scadenza di un modello al momento della sua creazione utilizzando l'interfaccia a riga di comando, l'API o le librerie client. Puoi anche impostare o aggiornare per un modello dopo la sua creazione. La data di scadenza di un modello è spesso definito "time to live" o TTL.

Se non imposti una scadenza per un modello, il modello non scade mai deve eliminare il modello manualmente.

Il valore dell'ora di scadenza viene espresso in modo diverso a seconda su dove viene impostato il valore. Utilizza il metodo che ti offre livello di granularità:

  • Nello strumento a riga di comando, la scadenza è espressa in secondi dal Ora UTC. Quando specifichi la scadenza nella riga di comando, il numero intero in secondi viene aggiunto al timestamp UTC attuale.
  • Nell'API, la scadenza è espressa in millisecondi a partire dall'epoca. Se specifica un valore di scadenza inferiore al timestamp corrente, il modello scade immediatamente.

Per aggiornare la data e l'ora di scadenza di un modello:

Console

Al momento, l'impostazione o l'aggiornamento della data di scadenza su un modello non è supportate dalla console Google Cloud.

bq

Per aggiornare la data e l'ora di scadenza di un modello, esegui il comando bq update --model o -m e il flag --expiration.

Se aggiorni un modello in un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: [PROJECT_ID]:[DATASET].

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

Dove:

  • [INTEGER] è la durata (in secondi) del modello. La il valore minimo è 3600 secondi (un'ora). Data e ora di scadenza restituisce l'ora UTC attuale più il valore intero.
  • [PROJECT_ID] è l'ID progetto.
  • [DATASET] è il nome del set di dati.
  • [MODEL] è il nome del modello.

L'output comando è simile al seguente.

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

Puoi confermare le modifiche utilizzando il comando bq show. Per ulteriori informazioni per le informazioni, consulta Recuperare i metadati del modello.

Esempi:

Inserisci il seguente comando per aggiornare la scadenza di mymodel in Da mydataset a 5 giorni (432.000 secondi). mydataset è nella tua predefinita progetto.

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

Inserisci il seguente comando per aggiornare la scadenza di mymodel in Da mydataset a 5 giorni (432.000 secondi). mydataset si trova a myotherproject, non è il progetto predefinito.

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

API

Per aggiornare la scadenza di un modello utilizzando l'API, chiama il metodo models.patch e fornire i projectId, datasetId e modelId. Per modificare la scadenza, aggiungere o aggiornare il valore per gli risorsa del modello. "expirationTime" è espresso in millisecondi a partire dall'epoca.

Passaggi successivi