Vertex ML Metadata te permite hacer un seguimiento de los metadatos que producen tus flujos de trabajo de aprendizaje automático (AA) y analizarlos. Si no estás familiarizado con Vertex ML Metadata, lee la introducción a Vertex ML Metadata para obtener más información sobre el seguimiento y el análisis de los metadatos de tu flujo de trabajo de AA.
En esta guía, se muestra cómo registrar metadatos mediante el siguiente proceso:
- Crear una Ejecución que represente un paso en tu flujo de trabajo de AA.
- Buscar Artefactos existentes para encontrar artefactos de entrada que ya estén escritos en el almacén de metadatos.
- Crea artefactos para las entradas de tu ejecución que aún no se hayan escrito en el almacén de metadatos y cualquier salida que produzca esta ejecución.
- Crear Eventos para representar la relación entre la ejecución y sus artefactos de entrada y salida.
De forma opcional, agrega la ejecución y los artefactos a un contexto. Usa un contexto para agrupar conjuntos de ejecuciones y artefactos. Por ejemplo, si experimentas para encontrar el mejor conjunto de hiperparámetros a fin de entrenar un modelo, cada experimento puede ser una ejecución diferente con su propio conjunto de parámetros y métricas. Puedes comparar las ejecuciones dentro de un contexto para encontrar el experimento que produjo el mejor modelo.
Para poder agregar ejecuciones y artefactos a un contexto, debes crear un contexto.
Hay dos formas de crear recursos de Vertex ML Metadata. Puedes usar comandos de REST o el SDK de Vertex AI para Python. El SDK para Python simplifica la creación y el descubrimiento de varios tipos de recursos. Cuando creas ejecuciones mediante Python, la carga útil no tiene que construirse de forma manual.
Antes de comenzar
La primera vez que usas metadatos del AA de Vertex en un proyecto de Google Cloud, Vertex AI crea el almacén Vertex ML Metadata de tu proyecto.
Si deseas que tus metadatos se encripten a través de una clave de encriptación administrada por el cliente (CMEK), debes crear tu almacén de metadatos con una CMEK antes de usar Vertex ML Metadata para hacer un seguimiento de los metadatos o analizarlos. Usa la creación de un almacén de metadatos que use una CMEK para configurar el almacén de metadatos de tu proyecto.
Crear una ejecución
Las ejecuciones representan un paso en tu flujo de trabajo del AA. Usa las siguientes instrucciones para crear una ejecución.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:
- LOCATION_ID: Tu región.
- PROJECT_ID: El ID del proyecto.
- METADATA_STORE: Es el ID del almacén de metadatos en el que se crea la ejecución.
El almacén de metadatos predeterminado se llama
default
. - EXECUTION_ID: Es el ID del registro de ejecución. Si no se especifica el ID de ejecución, Vertex ML Metadata crea un identificador único para esta ejecución.
- DISPLAY_NAME: Es el nombre visible de la ejecución. Este campo puede contener hasta 128 caracteres Unicode.
- EXECUTION_STATE: (Opcional) Es un valor de la enumeración de estado que representa el estado actual de la ejecución. Las aplicaciones cliente administran este campo. Vertex ML Metadata no verifica la validez de las transiciones de estado.
- METADATA_SCHEMA_TITLE: Es el título del esquema que describe el campo de metadatos. El título del esquema debe cumplir con el formato “
. ”. El espacio de nombres debe comenzar con una letra minúscula, puede contener caracteres minúsculas y números, y puede tener entre dos y veinte caracteres. El nombre del esquema debe comenzar con una letra mayúscula, puede incluir letras y números, y tener entre 2 y 49 caracteres. - METADATA_SCHEMA_VERSION: (Opcional) Es la versión del esquema que describe el campo de metadatos.
schema_version
debe ser una string de 3 números separados por puntos, por ejemplo, 1.0.0, 1.0.1. Este formato ayuda a ordenar y comparar versiones. - METADATA: (Opcional) Son las propiedades que describen la ejecución, como los parámetros de ejecución.
- DESCRIPTION: (Opcional) Una string legible que describe el propósito de la ejecución que se creará.
- LABELS: Opcional Metadatos definidos por el usuario para organizar tus ejecuciones.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions?executionId=EXECUTION_ID
Cuerpo JSON de la solicitud:
{ "displayName": "DISPLAY_NAME", "state": "EXECUTION_STATE", "schemaTitle": "METADATA_SCHEMA_TITLE", "schemaVersion": "METADATA_SCHEMA_VERSION", "metadata": { METADATA }, "labels": {"LABEL_1":"LABEL_2"}, "description": "DESCRIPTION" }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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
display_name
: Es el nombre visible de la ejecución. Este campo puede contener hasta 128 caracteres Unicode.input_artifacts
: Una lista de una o más instancias de aiplatform.Artifact que representan un artefacto de entrada.output_artifacts
: Una lista de una o más instancias de aiplatform.Artifact que representan un artefacto de salida.project
: El ID del proyecto. Puedes encontrar estos ID en la página de bienvenida de la consola de Google Cloud.location
: Consulta Lista de ubicaciones disponibles.execution_id
: Es el ID del registro de ejecución. Si no se especifica el ID de ejecución, Vertex ML Metadata crea un identificador único para esta ejecución.metadata
: Son las propiedades que describen la ejecución, como los parámetros de ejecución.schema_version
: Es la versión del esquema que describe el campo de metadatos.description
: (Opcional) Una string legible que describe el propósito de la ejecución que se creará.
Buscar un artefacto existente
Los artefactos representan los datos que tu flujo de trabajo del AA usa o produce, como conjuntos de datos y modelos. Usa las siguientes instrucciones para buscar un artefacto existente.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:
- LOCATION_ID: Tu región.
- PROJECT_ID: El ID del proyecto.
- METADATA_STORE: Es el ID del almacén de metadatos en el que se crea el artefacto.
El almacén de metadatos predeterminado se llama
default
. - PAGE_SIZE: (Opcional) Es el número máximo de artefactos que se mostrarán. Si no se especifica este valor, el servicio muestra un máximo de 100 registros.
- PAGE_TOKEN: (Opcional) Es un token de página de una llamada anterior a MetadataService.ListArtifacts. Especifica este token para obtener la siguiente página de resultados.
FILTER: Especifica las condiciones necesarias para incluir un artefacto en el conjunto de resultados.
Método HTTP y 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
Para enviar tu solicitud, expande una de estas opciones:
Deberías ver un resultado similar al siguiente. ARTIFACT_ID: El ID del registro del artefacto.
{ "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
project
: El ID del proyecto. Puedes encontrar estos ID en la página de bienvenida de la consola de Google Cloud.location
: Consulta Lista de ubicaciones disponibles.display_name_filter
: Filtro que se aplicará al nombre visible mientras se enumeran los recursos con el formato "display_name=\"my_filter\"" .create_date_filter
: Filtro que se aplicará al nombre de create_date mientras se enumeran los recursos con el formato "create_time>\"2022-06-11T12:30:00-08:00\"",.
Crear artefactos
Usa las siguientes instrucciones para crear un artefacto.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:
- LOCATION_ID: Tu región.
- PROJECT_ID: El ID del proyecto.
- METADATA_STORE: Es el ID del almacén de metadatos en el que se crea el artefacto.
El almacén de metadatos predeterminado se llama
default
. - ARTIFACT_ID: (Opcional) El ID del registro del artefacto. Si no se especifica el ID del artefacto, Vertex ML Metadata crea un identificador único para este artefacto.
- DISPLAY_NAME: (Opcional) Es el nombre definido por el usuario del artefacto.
- URI: (Opcional) Es la ubicación en la que se almacena el artefacto
- ARTIFACT_STATE: (Opcional) Es un valor de la enumeración de estado que representa el estado actual del artefacto. Las aplicaciones cliente administran este campo. Vertex ML Metadata no verifica la validez de las transiciones de estado.
- METADATA_SCHEMA_TITLE: Es el título del esquema que describe el campo de metadatos. El título del esquema debe cumplir con el formato “
. ”. El espacio de nombres debe comenzar con una letra minúscula, puede contener caracteres minúsculas y números, y puede tener entre dos y veinte caracteres. El nombre del esquema debe comenzar con una letra mayúscula, puede incluir letras y números, y tener entre 2 y 49 caracteres. - METADATA_SCHEMA_VERSION: (Opcional) Es la versión del esquema que describe el campo de metadatos.
schema_version
debe ser una string de 3 números separados por puntos, por ejemplo, 1.0.0, 1.0.1. Este formato ayuda a ordenar y comparar versiones. - METADATA: Son las propiedades que describen el artefacto, como el tipo de conjunto de datos.
- DESCRIPTION: (Opcional) Una string legible que describe el propósito de la ejecución que se creará.
- LABELS: Opcional. Metadatos definidos por el usuario para organizar los artefactos.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts?artifactId=ARTIFACT_ID
Cuerpo JSON de la solicitud:
{ "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" }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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
project
: El ID del proyecto. Puedes encontrar estos ID en la página de bienvenida de la consola de Google Cloud.location
: Consulta Lista de ubicaciones disponibles.uri
: (Opcional) El identificador de recursos uniforme para el archivo de artefactos, si existe uno. Puede estar vacío si no hay un archivo de artefactos real.artifact_id
: (Opcional) El ID del registro del artefacto. Si no se especifica el ID del artefacto, Vertex ML Metadata crea un identificador único para este artefacto.display_name
: (Opcional) Es el nombre definido por el usuario del artefacto.schema_version
: Es la versión del esquema que describe el campo de metadatos.description
: (Opcional) Una string legible que describe el propósito del artefacto que se creará.metadata
: Propiedades que describen el artefacto, como los parámetros del artefacto.
Crea eventos para vincular artefactos a una ejecución
Los eventos representan la relación entre una ejecución y sus artefactos de entrada y salida. Usa las siguientes instrucciones para crear eventos que vinculen artefactos con una ejecución.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:
- LOCATION_ID: Tu región.
- PROJECT_ID: El ID del proyecto.
- METADATA_STORE: Es el ID del almacén de metadatos en el que se crea la ejecución.
El almacén de metadatos predeterminado se llama
default
. - EXECUTION_ID: Es el ID del registro de ejecución.
ARTIFACT: Es el nombre del recurso del artefacto. El nombre del recurso tiene el siguiente formato:
projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID
- EVENT_TYPE: (Opcional) Un valor de la enumeración de EventType que especifica si el artefacto es una entrada o salida de la ejecución.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID:addExecutionEvents
Cuerpo JSON de la solicitud:
{ "events": [ { "artifact": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID", "type": "EVENT_TYPE" } ] }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.
Python
Python
input_artifacts
: Una lista de una o más instancias de aiplatform.Artifact que representan un artefacto de entrada.output_artifacts
: Una lista de una o más instancias de aiplatform.Artifact que representan un artefacto de salida.project
: El ID del proyecto. Puedes encontrar estos ID en la página de bienvenida de la consola de Google Cloud.location
: Consulta Lista de ubicaciones disponibles.execution_id
: Es el ID del registro de ejecución. Si no se especifica el ID de ejecución, Vertex ML Metadata crea un identificador único para esta ejecución.metadata
Son las propiedades que describen la ejecución, como los parámetros de ejecución.schema_version
: Es la versión del esquema que describe el campo de metadatos.description
: (Opcional) Una string legible que describe el propósito de la ejecución que se creará.
Crea un contexto
Los contextos te permiten agrupar conjuntos de artefactos y ejecuciones. Usa las siguientes instrucciones para crear un contexto. Ten en cuenta que Vertex AI Experiments crea un contexto que registra de forma automática los artefactos y las ejecuciones en ese contexto (consulta Crea o borra un experimento).
REST
Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:
- LOCATION_ID: Tu región.
- PROJECT_ID: El ID del proyecto.
- METADATA_STORE: Es el ID del almacén de metadatos en el que se crea la ejecución.
El almacén de metadatos predeterminado se llama
default
. - CONTEXT_ID: (Opcional) El ID del registro de contexto. Si no se especifica el ID de contexto, Vertex ML Metadata crear un identificador único para este contexto.
- DISPLAY_NAME: Es el nombre visible del contexto. Este campo puede contener hasta 128 caracteres Unicode.
- PARENT_CONTEXT: Especifica el nombre del recurso para los contextos superiores. Un contexto no puede tener más de 10 contextos superiores.
- METADATA_SCHEMA_TITLE: Es el título del esquema que describe el campo de metadatos. El título del esquema debe cumplir con el formato “
. ”. El espacio de nombres debe comenzar con una letra minúscula, puede contener caracteres minúsculas y números, y puede tener entre dos y veinte caracteres. El nombre del esquema debe comenzar con una letra mayúscula, puede incluir letras y números, y tener entre 2 y 49 caracteres. - METADATA_SCHEMA_VERSION: (Opcional) Es la versión del esquema que describe el campo de metadatos.
schema_version
debe ser una string de 3 números separados por puntos, por ejemplo, 1.0.0, 1.0.1. Este formato ayuda a ordenar y comparar versiones. - METADATA: Propiedades que describen el contexto, como los parámetros del contexto.
- DESCRIPTION: (Opcional) Una string legible que describe el propósito de la ejecución que se creará.
- LABELS: Opcional Metadatos definidos por el usuario para organizar tus contextos.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts?contextId=CONTEXT_ID
Cuerpo JSON de la solicitud:
{ "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" }
Para enviar tu solicitud, expande una de estas opciones:
Deberías ver un resultado similar al siguiente. CONTEXT_ID: El ID del registro de contexto.
{ "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
display_name
: Es el nombre visible del contexto. Este campo puede contener hasta 128 caracteres Unicode.project
: El ID del proyecto. Puedes encontrar estos ID en la página de bienvenida de la consola de Google Cloud.location
: Consulta Lista de ubicaciones disponibles.context_id
: (Opcional) El ID del registro de contexto.metadata
: Propiedades que describen el contexto, como los parámetros del contexto.schema_version
: Es la versión del esquema que describe el campo de metadatos.description
: (Opcional) Una string legible que describe el propósito del contexto que se creará.
Agrega artefactos y ejecuciones a un contexto
Usa las siguientes instrucciones para agregar artefactos y ejecuciones a un contexto.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:
- LOCATION_ID: Tu región.
- PROJECT_ID: El ID del proyecto.
- METADATA_STORE: Es el ID del almacén de metadatos en el que se crea la ejecución.
El almacén de metadatos predeterminado se llama
default
. - CONTEXT: (Opcional) El ID del registro de contexto.
Especifica el nombre del recurso ARTIFACT para cualquier artefacto que quieras agregar a este contexto. El nombre del recurso tiene el siguiente formato:
projects/PROJECT_ID/locations/location/metadataStores/metadata-store/artifacts/artifact
Especifica el nombre del recurso EXECUTION para cualquier ejecución que quieras agregar a este contexto. El nombre del recurso tiene el siguiente formato:
projects/PROJECT_ID/locations/location/metadataStores/metadata-store/executions/execution
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT:addContextArtifactsAndExecutions
Cuerpo JSON de la solicitud:
{ "artifacts": [ "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID" ], "executions": [ "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID" ] }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.