Gestire Vertex ML Metadata

Questa guida mostra come gestire Vertex ML Metadata.

Prima di iniziare

La prima volta che utilizzi Vertex ML Metadata in un progettoGoogle Cloud , Gemini Enterprise Agent Platform crea l'archivio di metadati del progetto.

Se vuoi criptare i metadati utilizzando una chiave di crittografia gestita dal cliente (CMEK), devi creare l'archivio dei metadati utilizzando una CMEK prima di utilizzare Vertex ML Metadata per monitorare o analizzare i metadati. Utilizza le istruzioni per creare un datastore dei metadati che utilizza una CMEK per configurare il datastore dei metadati del progetto.

Gestione degli elementi

Creazione di un artefatto

Utilizza REST o l'SDK Vertex AI Python per creare un artefatto.

REST

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto
  • METADATA_STORE: L'ID dello store di metadati in cui viene creato l'artefatto. L'archivio predefinito dei metadati si chiama default.
  • ARTIFACT_ID: (facoltativo) l'ID del record dell'artefatto. Se l'ID artefatto non è specificato, Vertex ML Metadata crea un identificatore univoco per questo artefatto.
  • DISPLAY_NAME: (facoltativo) il nome dell'artefatto definito dall'utente.
  • URI: (facoltativo) La posizione in cui è archiviato l'artefatto
  • ARTIFACT_STATE: (facoltativo) un valore dell'enumerazione State che rappresenta lo stato attuale dell'artefatto. Questo campo è gestito dalle applicazioni client. Vertex ML Metadata non controlla la validità delle transizioni di stato.
  • METADATA_SCHEMA_TITLE: il titolo dello schema che descrive il campo dei metadati. Il titolo dello schema deve rispettare il formato `.`. Lo spazio dei nomi deve iniziare con una lettera minuscola, può contenere caratteri minuscoli e numeri e può essere lungo da 2 a 20 caratteri. Il nome dello schema deve iniziare con una lettera maiuscola, può includere lettere e numeri e può avere una lunghezza compresa tra 2 e 49 caratteri.
  • METADATA_SCHEMA_VERSION: (facoltativo) la versione dello schema che descrive il campo dei metadati. schema_version deve essere una stringa di tre numeri separati da punti, ad esempio 1.0.0, 1.0.1. Questo formato consente di ordinare e confrontare le versioni.
  • METADATA: (Facoltativo) Proprietà che descrivono l'artefatto, ad esempio il tipo di set di dati.
  • DESCRIPTION: (facoltativo) una stringa leggibile che descrive lo scopo dell'esecuzione da creare.
  • LABELS:facoltativo. Metadati definiti dall'utente per organizzare gli artefatti.

Metodo HTTP e URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts?artifactId=ARTIFACT_ID

Corpo JSON della richiesta:

{
  "displayName": "DISPLAY_NAME",
  "uri": "URI",
  "state": "ARTIFACT_STATE",
  "schemaTitle": "METADATA_SCHEMA_TITLE",
  "schemaVersion": "METADATA_SCHEMA_VERSION",
  "metadata": {
    METADATA
  },
  "labels": {"LABEL_1":"LABEL_2"},
  "description": "DESCRIPTION"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/default/artifacts/ARTIFACT_ID",
  "displayName": "Example artifact",
  "uri": "gs://your_bucket_name/artifacts/dataset.csv",
  "etag": "67891011",
  "labels": {
    "test_label": "test_label_value"
  },
  "createTime": "2021-05-18T00:29:24.344Z",
  "updateTime": "2021-05-18T00:29:24.344Z",
  "state": "LIVE",
  "schemaTitle": "system.Dataset",
  "schemaVersion": "0.0.1",
  "metadata": {
    "payload_format": "CSV"
  },
  "description": "Description of the example artifact."
}

Python

Python

from typing import Dict, Optional

from google.cloud.aiplatform.metadata.schema.system import artifact_schema


def create_artifact_sample(
    project: str,
    location: str,
    uri: Optional[str] = None,
    artifact_id: Optional[str] = None,
    display_name: Optional[str] = None,
    schema_version: Optional[str] = None,
    description: Optional[str] = None,
    metadata: Optional[Dict] = None,
):
    system_artifact_schema = artifact_schema.Artifact(
        uri=uri,
        artifact_id=artifact_id,
        display_name=display_name,
        schema_version=schema_version,
        description=description,
        metadata=metadata,
    )
    return system_artifact_schema.create(project=project, location=location,)
  • project: . Puoi trovare questi ID nella pagina Benvenuto della console Google Cloud .
  • location: consulta l'elenco delle località disponibili.
  • uri: (facoltativo) l'identificatore uniforme di risorse per il file dell'artefatto, se esistente. Può essere vuoto se non è presente alcun file di artefatto.
  • artifact_id: (facoltativo) l'ID del record dell'artefatto. Se l'ID artefatto non è specificato, Vertex ML Metadata crea un identificatore univoco per questo artefatto.
  • display_name: (facoltativo) il nome dell'artefatto definito dall'utente.
  • schema_version: La versione dello schema che descrive il campo dei metadati.
  • description: (facoltativo) una stringa leggibile che descrive lo scopo dell'artefatto da creare.
  • metadata: Proprietà che descrivono l'artefatto, ad esempio i parametri dell'artefatto.

Cercare un artefatto esistente

Gli artefatti rappresentano i dati utilizzati o prodotti dal flusso di lavoro ML, come set di dati e modelli. Per cercare un artefatto esistente, utilizza REST o l'SDK Agent Platform per Python.

REST

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE: L'ID dello store di metadati in cui viene creato l'artefatto. L'archivio predefinito dei metadati si chiama default.
  • PAGE_SIZE: (Facoltativo) Il numero massimo di artefatti da restituire. Se questo valore non è specificato, il servizio restituisce un massimo di 100 record.
  • PAGE_TOKEN: (facoltativo) un token di pagina di una precedente chiamata MetadataService.ListArtifacts. Specifica questo token per ottenere la pagina successiva dei risultati.
  • FILTER: specifica le condizioni necessarie per includere un artefatto nel set di risultati.

Metodo HTTP e URL:

GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. ARTIFACT_ID è l'ID del record dell'artefatto.

{
  "artifacts": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/default/artifacts/ARTIFACT_ID",
      "displayName": "Example artifact",
      "uri": "gs://your_bucket_name/artifacts/dataset.csv",
      "etag": "67891011",
      "createTime": "2021-05-18T00:33:13.833Z",
      "updateTime": "2021-05-18T00:33:13.833Z",
      "state": "LIVE",
      "schemaTitle": "system.Dataset",
      "schemaVersion": "0.0.1",
      "metadata": {
        "payload_format": "CSV"
      },
      "description": "Description of the example artifact."
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID",
      "displayName": "Another example artifact",
      "uri": "gs://your_bucket_name/artifacts/dataset-2.csv",
      "etag": "67891012",
      "createTime": "2021-05-18T00:29:24.344Z",
      "updateTime": "2021-05-18T00:29:24.344Z",
      "state": "LIVE",
      "schemaTitle": "system.Dataset",
      "schemaVersion": "0.0.1",
      "metadata": {
        "payload_format": "CSV"
      },
      "description": "Description of the other example artifact."
    }
  ]
}

Python

Python

from typing import Optional

from google.cloud import aiplatform


def list_artifact_sample(
    project: str,
    location: str,
    display_name_filter: Optional[str] = "display_name=\"my_model_*\"",
    create_date_filter: Optional[str] = "create_time>\"2022-06-11\"",
    order_by: Optional[str] = None,
):
    aiplatform.init(project=project, location=location)

    combined_filters = f"{display_name_filter} AND {create_date_filter}"
    return aiplatform.Artifact.list(
        filter=combined_filters,
        order_by=order_by,
    )

  • project: . Puoi trovare questi ID nella pagina Benvenuto della console Google Cloud .
  • location: consulta l'elenco delle località disponibili.
  • display_name_filter: Filtro da applicare al nome visualizzato durante l'elenco delle risorse con il formato "display_name=\"my_filter\"" .
  • create_date_filter: filtro da applicare al nome create_date durante l'elenco delle risorse con il formato "create_time>\"2022-06-11T12:30:00-08:00\"".

Eliminare un artefatto esistente

Utilizza REST o l'SDK Vertex AI Python per eliminare un artefatto.

REST

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE: L'ID dello store di metadati in cui viene creato l'artefatto. L'archivio predefinito dei metadati si chiama default.
  • ARTIFACT_ID: l'ID del record dell'artefatto da eliminare.

Metodo HTTP e URL:

DELETE https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. Puoi utilizzare OPERATION_ID nella risposta per ottenere lo stato dell'operazione.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeleteOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T20:05:30.179713Z",
      "updateTime": "2021-07-21T20:05:30.179713Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

Python

Python

from google.cloud import aiplatform


def delete_artifact_sample(
    artifact_id: str,
    project: str,
    location: str,
):
    artifact = aiplatform.Artifact.get(
        resource_id=artifact_id, project=project, location=location
    )
    artifact.delete()

Elimina definitivamente gli artefatti

Utilizza le seguenti istruzioni per eliminare più artefatti in base a una condizione di filtro.

REST

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE: L'ID dello store di metadati in cui viene creato l'artefatto. L'archivio predefinito dei metadati si chiama default.
  • FILTER: specifica le condizioni richieste per l'eliminazione degli artefatti. Ad esempio:
    • Filtra tutti gli artefatti che contengono example nel nome visualizzato: "display_name = \"*example*\"".
    • Filtri per tutti gli artefatti creati prima del 19/11/2020T11:30:00-04:00: "create_time < \"2020-11-19T11:30:00-04:00\"".
  • FORCE: indica se eseguire o meno l'eliminazione definitiva. Se il flag è impostato su false, il metodo restituirà un campione dei nomi degli artefatti che verranno eliminati.

Metodo HTTP e URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts:purge

Corpo JSON della richiesta:

{
  "filter": "FILTER",
  "force": FORCE
}

Per inviare la richiesta, espandi una di queste opzioni: