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 Google Cloud progetto, Vertex AI 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 archivio dei metadati che utilizza una chiave di crittografia gestita dal cliente (CMEK) per configurare l'archivio dei metadati del progetto.

Gestione degli elementi

Creazione di un artefatto

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

REST

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

  • 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ò essere lungo da 2 a 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 esiste un file di artefatto effettivo.
  • 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 Vertex AI per Python.

REST

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

  • 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 per Python per eliminare un artefatto.

REST

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

  • 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

Segui le istruzioni riportate di seguito per eliminare più artefatti in base a una condizione di filtro.

REST

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

  • 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:
    • Filtri per 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 restituisce 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:

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/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 per Python per creare un'esecuzione.

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE: L'ID dello store di metadati in cui viene creata l'esecuzione. L'archivio predefinito dei metadati 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ò essere lungo da 2 a 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 per Python per cercare un'esecuzione esistente.

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE: L'ID dello store di metadati in cui viene creata l'esecuzione. 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'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 per Python per eliminare un'esecuzione.

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE: L'ID dello store di metadati in cui viene creata l'esecuzione. L'archivio predefinito dei metadati 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 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/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 esecuzioni

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

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE: L'ID dello store di metadati in cui viene creata l'esecuzione. L'archivio predefinito dei metadati 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 definitiva. Se il flag è impostato su false, il metodo restituisce 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 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/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 ti consentono di raggruppare insiemi di artefatti ed esecuzioni. Utilizza REST o l'SDK Vertex AI per Python per creare un contesto.

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE:L'ID dello store di metadati in cui viene creata l'esecuzione. L'archivio predefinito dei metadati 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ò essere lungo da 2 a 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 per Python per cercare un contesto esistente.

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE: l'ID dello store di metadati in cui viene creato il contesto. 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 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 per Python per eliminare un contesto.

REST

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

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE: l'ID dello store di metadati in cui viene creato il contesto. L'archivio predefinito dei metadati 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 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/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()

Svuotamento dei 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 seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: .
  • METADATA_STORE:L'ID dello store di metadati in cui viene creato il contesto. L'archivio predefinito dei metadati 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 ore 11: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 di nomi di contesti 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 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/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