Recupero metadati modello

Questa pagina spiega come ottenere informazioni o metadati sui modelli BigQuery ML. Puoi ottenere i metadati del modello:

  • Utilizzando la Google Cloud console
  • Utilizzando il comando dell'interfaccia a riga di comando bq show
  • Chiamando direttamente il metodo models.get API o utilizzando le librerie client

Autorizzazioni obbligatorie

Per ottenere i metadati del modello, devi avere il ruolo READER nel set di dati oppure un ruolo IAM (Identity and Access Management) a livello di progetto che includa bigquery.models.getMetadata autorizzazioni. Se ti vengono concesse le autorizzazioni bigquery.models.getMetadata a livello di progetto, puoi ottenere i metadati dei 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 dei modelli:

Console

  1. Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

    Pulsante evidenziato per il riquadro Spazio di esplorazione.

    Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro a sinistra per aprirlo.

  2. Nel riquadro Spazio di esplorazione , espandi il progetto, fai clic su Set di dati e seleziona il set di dati.

  3. Fai clic sulla scheda Modelli, quindi sul nome di un modello per selezionarlo.

  4. Fai clic sulla scheda Dettagli. Questa scheda mostra i metadati del modello, inclusi la descrizione, le etichette, il tipo di modello e le opzioni di addestramento.

bq

Esegui il comando bq show con il flag --model o -m per visualizzare i metadati del modello. Il --format flag 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 stai recuperando 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

Sostituisci quanto segue:

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

L'output comando è simile al seguente quando viene utilizzato il flag --format=pretty. Per visualizzare tutti i dettagli, utilizza il formato --format=prettyjson. L'output di esempio mostra i metadati di 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 si trova nel progetto predefinito.

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

Inserisci il comando seguente 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 comando seguente per visualizzare solo le colonne di caratteristiche di mymodel in mydataset. mydataset si trova in myotherproject, non nel progetto predefinito.

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

API

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

Vai

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

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 di configurazione Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.jsBigQuery.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery.Python

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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