Recupero metadati modello

Panoramica

Questa pagina mostra come ottenere informazioni o metadati su BigQuery ML di machine learning. 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
  • Chiamata a models.get tramite il metodo API direttamente o mediante le librerie client

Autorizzazioni obbligatorie

Per ottenere i metadati del modello, ti deve essere assegnato il READER 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.getMetadata. Se ti viene concesso bigquery.models.getMetadata autorizzazioni a livello di progetto, puoi ottenere metadati su modelli in qualsiasi set di dati nel progetto. I seguenti valori predefiniti, 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 metadati del modello. La --format per controllare l'output.

Per visualizzare solo le colonne delle caratteristiche del modello, usa 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 i dettagli completi, usa 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 comando seguente per visualizzare tutte le informazioni su mymodel in mydataset. mydataset si trova nella cartella myotherproject, non nel tuo progetto predefinito.

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

Inserisci il seguente comando per visualizzare solo le colonne delle caratteristiche per mymodel a 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 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"
	"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 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;

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