Recupero metadati modello

Panoramica

Questa pagina mostra come ottenere informazioni o metadati sui modelli di BigQuery ML. Puoi ottenere i metadati del modello in base a:

  • Utilizzo della console Google Cloud
  • Utilizzo del comando dell'interfaccia a riga di comando bq show
  • Chiamare il metodo API models.get direttamente o utilizzando le librerie client

Autorizzazioni obbligatorie

Per ottenere i metadati del modello, devi disporre del ruolo READER nel set di dati oppure devi disporre di un ruolo IAM (Identity and Access Management) a livello di progetto che include le autorizzazioni bigquery.models.getMetadata. Se ti vengono concesse le autorizzazioni bigquery.models.getMetadata a livello di progetto, puoi ottenere i metadati sui modelli in qualsiasi set di dati del progetto. I seguenti ruoli IAM predefiniti a livello di progetto includono le autorizzazioni bigquery.models.getMetadata:

  • bigquery.dataViewer
  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.metadataViewer
  • bigquery.admin

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

Recupero metadati modello

Per ottenere i metadati sui modelli:

Console

  1. Nel pannello di navigazione, nella sezione Risorse, espandi il progetto e seleziona un set di dati.

  2. Fai clic sul nome del modello.

  3. Sotto la casella dell'editor query, fai clic su Dettagli. Questa pagina mostra i metadati del modello, tra cui descrizione, etichette, dettagli e opzioni di addestramento.

    Metadati del modello nella console Google Cloud

bq

Esegui il comando bq show con il flag --model o -m per visualizzare i metadati del modello. Il flag --format può essere utilizzato per controllare l'output.

Per visualizzare solo le colonne delle caratteristiche per il modello, utilizza il flag --schema con il flag --model. Quando utilizzi il flag --schema, --format deve essere impostato su json o prettyjson.

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

bq show --model --format=prettyjson [PROJECT_ID]:[DATASET].[MODEL]

Dove:

  • [PROJECT_ID] è l'ID progetto.
  • [DATASET] è il nome del set di dati.
  • [MODEL] è il nome del modello.

Quando viene utilizzato il flag --format=pretty, l'output comando è il seguente. Per visualizzare i dettagli completi, usa il formato --format=prettyjson. L'output di esempio mostra i metadati per un modello di regressione logistica.

+--------------+---------------------+---------------------+---------------------------+--------+-----------------+-----------------+
|      Id      |     Model Type      |   Feature Columns   |       Label Columns       | Labels |  Creation Time  | Expiration Time |
+--------------+---------------------+---------------------+---------------------------+--------+-----------------+-----------------+
| sample_model | LOGISTIC_REGRESSION | |- column1: string  | |- label_column: int64    |        | 03 May 23:14:42 |                 |
|              |                     | |- column2: bool    |                           |        |                 |                 |
|              |                     | |- column3: string  |                           |        |                 |                 |
|              |                     | |- column4: int64   |                           |        |                 |                 |
+--------------+---------------------+---------------------+---------------------------+--------+-----------------+-----------------+

Esempi:

Inserisci il seguente comando per visualizzare tutte le informazioni su mymodel in mydataset. mydataset è nel tuo progetto predefinito.

bq show --model --format=prettyjson mydataset.mymodel

Inserisci il seguente comando per visualizzare tutte le informazioni su mymodel in mydataset. mydataset si trova in myotherproject, non è il tuo progetto predefinito.

bq show --model --format=prettyjson myotherproject:mydataset.mymodel

Inserisci il seguente comando per visualizzare solo le colonne delle caratteristiche per mymodel in mydataset. mydataset si trova in myotherproject, non nel tuo progetto predefinito.

bq show --model --schema --format=prettyjson \
myotherproject:mydataset.mymodel

API

Per ottenere i metadati del modello utilizzando l'API, chiama il metodo models.get e fornisci i valori projectId, datasetId e modelId.

Go

Prima di provare questo esempio, segui le istruzioni di configurazione di Go disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.

Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.

import (
	"context"
	"fmt"
	"io"

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

// printModelInfo demonstrates fetching metadata about a BigQuery ML model and printing some of
// it to an io.Writer.
func printModelInfo(w io.Writer, 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()

	meta, err := client.Dataset(datasetID).Model(modelID).Metadata(ctx)
	if err != nil {
		return fmt.Errorf("couldn't retrieve metadata: %w", err)
	}
	fmt.Fprintf(w, "Got model '%q' with friendly name '%q'\n", modelID, meta.Name)
	return nil
}

Java

Prima di provare questo esempio, segui le istruzioni di configurazione di Java disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.

Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare 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;

public class GetModel {

  public static void runGetModel() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    String modelName = "MY_MODEL_ID";
    getModel(datasetName, modelName);
  }

  public static void getModel(String datasetName, String modelName) {
    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();

      ModelId modelId = ModelId.of(datasetName, modelName);
      Model model = bigquery.getModel(modelId);
      System.out.println("Model: " + model.getDescription());

      System.out.println("Successfully retrieved model");
    } catch (BigQueryException e) {
      System.out.println("Cannot retrieve model \n" + e.toString());
    }
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.

Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.

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

async function getModel() {
  // Retrieves model named "my_existing_model" in "my_dataset".

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

  const dataset = bigquery.dataset(datasetId);
  const [model] = await dataset.model(modelId).get();

  console.log('Model:');
  console.log(model.metadata.modelReference);
}

Python

Prima di provare questo esempio, segui le istruzioni di configurazione di Python disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.

Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare 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.

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

Passaggi successivi