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 il datastore dei metadati utilizzando una CMEK prima di utilizzare Vertex ML Metadata per monitorare o analizzare i metadati. Utilizza le istruzioni Crea un datastore dei metadati che utilizza una CMEK per configurare il datastore dei metadati del tuo 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 dell'archivio metadati in cui viene creato l'artefatto. L'archivio metadati predefinito 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 di 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 dell'archivio metadati in cui viene creato l'artefatto. L'archivio metadati predefinito 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 dell'archivio metadati in cui viene creato l'artefatto. L'archivio metadati predefinito 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 visualizzare 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 dell'archivio metadati in cui viene creato l'artefatto. L'archivio metadati predefinito 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 effettiva. Se il flag è impostato su false, il metodo restituirà un campione di nomi di 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:

Dovresti visualizzare 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/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.PurgeArtifactsMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T21:02:33.757991Z",
      "updateTime": "2021-07-21T21:02:33.757991Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.PurgeArtifactsResponse",
    "purgeCount": "15"
  }
}

Gestione dell'esecuzione

Creazione di un'esecuzione

Le esecuzioni rappresentano un passaggio del flusso di lavoro ML. Utilizza REST o l'SDK Vertex AI Python per creare un'esecuzione.

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE: l'ID del metadata store in cui viene creata l'esecuzione. Il metadata store predefinito si chiama default.
  • EXECUTION_ID: l'ID del record di esecuzione. Se l'ID esecuzione non è specificato, Vertex ML Metadata crea un identificatore univoco per questa esecuzione.
  • DISPLAY_NAME: il nome visualizzato dell'esecuzione. Questo campo può contenere fino a 128 caratteri Unicode.
  • EXECUTION_STATE: (facoltativo) un valore dell'enumerazione State che rappresenta lo stato attuale dell'esecuzione. 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'esecuzione, ad esempio i parametri di esecuzione.
  • DESCRIPTION: (facoltativo) una stringa leggibile che descrive lo scopo dell'esecuzione da creare.
  • LABELS: (Facoltativo) Metadati definiti dall'utente per organizzare le esecuzioni.

Metodo HTTP e URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions?executionId=EXECUTION_ID

Corpo JSON della richiesta:

{
  "displayName": "DISPLAY_NAME",
  "state": "EXECUTION_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/METADATA_STORE/executions/EXECUTION_ID",
  "displayName": "Example Execution",
  "etag": "67891011",
  "labels": {
    "test_label": "test_label_value"
  },
  "createTime": "2021-05-18T00:04:49.659Z",
  "updateTime": "2021-05-18T00:04:49.659Z",
  "schemaTitle": "system.Run",
  "schemaVersion": "0.0.1",
  "metadata": {},
  "description": "Description of the example execution."
}

Python

Python

from typing import Any, Dict, List, Optional

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


def create_execution_sample(
    display_name: str,
    input_artifacts: List[aiplatform.Artifact],
    output_artifacts: List[aiplatform.Artifact],
    project: str,
    location: str,
    execution_id: Optional[str] = None,
    metadata: Optional[Dict[str, Any]] = None,
    schema_version: Optional[str] = None,
    description: Optional[str] = None,
):
    aiplatform.init(project=project, location=location)

    with execution_schema.ContainerExecution(
        display_name=display_name,
        execution_id=execution_id,
        metadata=metadata,
        schema_version=schema_version,
        description=description,
    ).create() as execution:
        execution.assign_input_artifacts(input_artifacts)
        execution.assign_output_artifacts(output_artifacts)
        return execution
  • display_name: il nome visualizzato dell'esecuzione. Questo campo può contenere fino a 128 caratteri Unicode.
  • input_artifacts: un elenco di una o più istanze di aiplatform.Artifact che rappresentano un artefatto di input.
  • output_artifacts: un elenco di una o più istanze di aiplatform.Artifact che rappresentano un artefatto di output.
  • project: . Puoi trovare questi ID nella pagina Benvenuto della console Google Cloud .
  • location: consulta l'elenco delle località disponibili.
  • execution_id: l'ID del record di esecuzione. Se l'ID esecuzione non è specificato, Vertex ML Metadata crea un identificatore univoco per questa esecuzione.
  • metadata: proprietà che descrivono l'esecuzione, ad esempio i parametri di esecuzione.
  • schema_version:la versione dello schema che descrive il campo dei metadati.
  • description: (facoltativo) una stringa leggibile che descrive lo scopo dell'esecuzione da creare.

Cercare un'esecuzione esistente

Utilizza REST o l'SDK Vertex AI Python per cercare un'esecuzione esistente.

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE: l'ID del metadata store in cui viene creata l'esecuzione. Il metadata store predefinito 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'esecuzione 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/executions?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. EXECUTION_ID è l'ID del record di esecuzione.

{
  "executions": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
      "displayName": "Example execution 1",
      "etag": "67891011",
      "createTime": "2021-05-18T00:06:56.177Z",
      "updateTime": "2021-05-18T00:06:56.177Z",
      "schemaTitle": "system.Run",
      "schemaVersion": "0.0.1",
      "metadata": {},
      "description": "Description of the example execution."
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
      "displayName": "Example execution 2",
      "etag": "67891011",
      "createTime": "2021-05-18T00:04:49.659Z",
      "updateTime": "2021-05-18T00:04:49.659Z",
      "schemaTitle": "system.Run",
      "schemaVersion": "0.0.1",
      "metadata": {},
      "description": "Description of the example execution."
    }
  ]
}

Python

Python

from google.cloud import aiplatform


def get_execution_sample(
    execution_id: str,
    project: str,
    location: str,
):
    execution = aiplatform.Execution.get(
        resource_id=execution_id, project=project, location=location
    )

    return execution

Eliminare un'esecuzione esistente

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

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE: l'ID del metadata store in cui viene creata l'esecuzione. Il metadata store predefinito si chiama default.
  • EXECUTION_ID: l'ID del record di esecuzione da eliminare.

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti visualizzare 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/executions/EXECUTION_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_execution_sample(
    execution_id: str,
    project: str,
    location: str,
):
    execution = aiplatform.Execution.get(
        resource_id=execution_id, project=project, location=location
    )
    execution.delete()

Elimina le esecuzioni

Per eliminare più esecuzioni in base a un filtro, segui queste istruzioni.

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE: l'ID del metadata store in cui viene creata l'esecuzione. Il metadata store predefinito si chiama default.
  • FILTER: specifica le condizioni richieste per l'eliminazione delle esecuzioni. Ad esempio:
    • Filtri per tutte le esecuzioni che contengono example nel nome visualizzato: "display_name = \"*example*\"".
    • Filtri per tutte le esecuzioni create prima del 19/11/2020 alle ore 11:30 -04:00: "create_time < \"2020-11-19T11:30:00-04:00\"".
  • FORCE: indica se eseguire o meno l'eliminazione effettiva. 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/executions:purge

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti visualizzare 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/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.PurgeExecutionsMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T21:02:45.757991Z",
      "updateTime": "2021-07-21T21:02:45.757991Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.PurgeExecutionsResponse",
    "purgeCount": "2"
  }
}

Gestione del contesto

Creare un contesto

I contesti consentono di raggruppare insiemi di artefatti ed esecuzioni. Utilizza REST o l'SDK Vertex AI Python per creare un contesto.

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE:l'ID del metadata store in cui viene creata l'esecuzione. Il metadata store predefinito si chiama default.
  • CONTEXT_ID: (facoltativo) l'ID del record di contesto. Se l'ID contesto non è specificato, Vertex ML Metadata ha creato un identificatore univoco per questo contesto
  • DISPLAY_NAME: il nome visualizzato del contesto. Questo campo può contenere fino a 128 caratteri Unicode.
  • PARENT_CONTEXT: specifica il nome della risorsa per tutti i contesti principali. Un contesto non può avere più di 10 contesti principali.
  • 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: proprietà che descrivono il contesto, ad esempio i parametri di contesto.
  • DESCRIPTION:(facoltativo) una stringa leggibile che descrive lo scopo dell'esecuzione da creare.
  • LABELS: (Facoltativo) Metadati definiti dall'utente per organizzare i contesti.

Metodo HTTP e URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts?contextId=CONTEXT_ID

Corpo JSON della richiesta:

{
  "displayName": "DISPLAY_NAME:",
  "parentContexts": [
    "PARENT_CONTEXT_1",
    "PARENT_CONTEXT_2"
  ],
  "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 vedere un output simile al seguente. CONTEXT_ID è l'ID del record di contesto.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID",
  "displayName": "Example context:",
  "etag": "67891011",
  "labels": {
    "test_label": "test_label_value"
  },
  "createTime": "2021-05-18T01:52:51.642Z",
  "updateTime": "2021-05-18T01:52:51.642Z",
  "schemaTitle": "system.Experiment",
  "schemaVersion": "0.0.1",
  "metadata": {},
  "description": "Description of the example context."
}

Python

Python

from typing import Any, Dict, Optional

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


def create_context_sample(
    display_name: str,
    project: str,
    location: str,
    context_id: Optional[str] = None,
    metadata: Optional[Dict[str, Any]] = None,
    schema_version: Optional[str] = None,
    description: Optional[str] = None,
):
    aiplatform.init(project=project, location=location)

    return context_schema.Experiment(
        display_name=display_name,
        context_id=context_id,
        metadata=metadata,
        schema_version=schema_version,
        description=description,
    ).create()
  • display_name: il nome visualizzato del contesto. Questo campo può contenere fino a 128 caratteri Unicode.
  • project: . Puoi trovare questi ID nella pagina Benvenuto della console Google Cloud .
  • location: consulta l'elenco delle località disponibili.
  • context_id: (facoltativo) l'ID del record di contesto.
  • metadata: proprietà che descrivono il contesto, ad esempio i parametri di contesto.
  • schema_version: La versione dello schema che descrive il campo dei metadati.
  • description: (facoltativo) una stringa leggibile che descrive lo scopo del contesto da creare.

Cercare un contesto esistente

Utilizza REST o l'SDK Vertex AI Python per cercare un contesto esistente.

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE: l'ID del datastore di metadati in cui viene creato il contesto. Il datastore di metadati predefinito 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 contesto 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/contexts?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. CONTEXT_ID è l'ID del record di contesto.

{
  "contexts": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID",
      "displayName": "Experiment 1",
      "etag": "67891011",
      "createTime": "2021-05-18T22:36:02.153Z",
      "updateTime": "2021-05-18T22:36:02.153Z",
      "parentContexts": [],
      "schemaTitle": "system.Experiment",
      "schemaVersion": "0.0.1",
      "metadata": {}
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID",
      "displayName": "Pipeline run 1",
      "etag": "67891011",
      "createTime": "2021-05-18T22:35:02.600Z",
      "updateTime": "2021-05-18T22:35:02.600Z",
      "parentContexts": [],
      "schemaTitle": "system.PipelineRun",
      "schemaVersion": "0.0.1",
      "metadata": {}
    }
  ]
}

Python

Python

from google.cloud import aiplatform


def get_context_sample(
    context_id: str,
    project: str,
    location: str,
):
    context = aiplatform.Context.get(
        resource_id=context_id, project=project, location=location)
    return context

Eliminare un contesto esistente

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

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE: l'ID del datastore di metadati in cui viene creato il contesto. Il datastore di metadati predefinito si chiama default.
  • CONTEXT_ID: (facoltativo) l'ID del record di contesto.

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti visualizzare 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/contexts/CONTEXT_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_context_sample(
    context_id: str,
    project: str,
    location: str,
):
    context = aiplatform.Context.get(
        resource_id=context_id, project=project, location=location
    )
    context.delete()

Elimina i contesti

Utilizza le seguenti istruzioni per eliminare più contesti 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 del datastore di metadati in cui viene creato il contesto. Il datastore di metadati predefinito si chiama default.
  • FILTER: specifica le condizioni richieste dai contesti da eliminare. Ad esempio:
    • Filtri per tutti i contesti che contengono example nel nome visualizzato: "display_name = \"*example*\"".
    • Filtri per tutti i contesti creati prima del 19/11/2020 alle 11:30 -04:00: "create_time < \"2020-11-19T11:30:00-04:00\"".
  • FORCE: indica se eseguire o meno l'eliminazione effettiva. Se il flag è impostato su false, il metodo restituirà un campione di nomi di contesto che verranno eliminati.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti visualizzare 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/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.PurgeContextsMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T21:02:40.757991Z",
      "updateTime": "2021-07-21T21:02:40.757991Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.PurgeContextsResponse",
    "purgeCount": "5"
  }
}

Passaggi successivi