Recupero metadati modello

Questa pagina mostra come ottenere informazioni o metadati su BigQuery ML di grandi dimensioni. Per recuperare i metadati del modello:

  • Utilizzo della console Google Cloud
  • Utilizzo del comando dell'interfaccia a riga di comando bq show
  • Chiamata a models.get tramite il metodo API direttamente o mediante 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 sono state concesse autorizzazioni bigquery.models.getMetadata a livello di progetto, puoi recuperare i metadati dei modelli in qualsiasi set di dati del progetto. Le seguenti impostazioni predefinite, i ruoli IAM a livello di progetto includono le autorizzazioni bigquery.models.getMetadata:

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

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

Recupero metadati modello

Per ottenere metadati sui modelli:

Console

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

  2. Fai clic sul nome del modello.

  3. Sotto la casella dell'editor di query, fai clic su Dettagli. In questa pagina vengono visualizzati i metadati del modello, tra cui descrizione, etichette, dettagli e addestramento le opzioni di CPU e memoria disponibili.

    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 di caratteristiche del 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 progetto 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.

L'output comando è simile al seguente quando --format=pretty . Per visualizzare tutti i dettagli, utilizza il formato --format=prettyjson. La un 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 comando seguente 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 nel progetto predefinito.

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

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

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

API

Per ottenere i metadati del modello utilizzando l'API, chiama la funzione models.get e fornire i projectId, datasetId e modelId.

Vai

Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Go.

Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura 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 per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.

Per autenticarti a BigQuery, configura le 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;

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 Node.js riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Node.js.

Per autenticarti a BigQuery, configura le 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 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 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.

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