Puedes usar Vertex ML Metadata para monitorizar y analizar los metadatos que producen tus sistemas de aprendizaje automático. Al monitorizar estos metadatos, resulta más fácil analizar el comportamiento de tu sistema de aprendizaje automático. Esto puede ayudarte a entender los cambios en el rendimiento de tu sistema o a comparar los artefactos que ha producido tu sistema de aprendizaje automático.
Si no conoces Vertex ML Metadata, consulta la introducción a este servicio para obtener más información sobre cómo hacer un seguimiento y analizar los metadatos de tu flujo de trabajo de aprendizaje automático.
Consulta cómo puedes buscar los metadatos de Vertex ML que quieras analizar de las siguientes formas:
- Consulta de todos los artefactos, ejecuciones> o contextos que coincidan con tus criterios de filtrado.
- Consulta los artefactos de entrada y salida de una ejecución junto con los eventos, que se usan para conectar los artefactos con la ejecución.
- Consulta del subgrafo de linaje de un contexto. Esta consulta devuelve los artefactos y las ejecuciones de un contexto, junto con los eventos que conectan los artefactos con las ejecuciones.
Consultar artefactos, ejecuciones y contextos
Puedes usar el SDK de Vertex AI para Python o la API REST para consultar registros de artefactos, ejecuciones y contextos mediante filtros para crear consultas como las siguientes:
- ¿Qué versiones de un modelo entrenado han alcanzado un determinado umbral de calidad?
- ¿Qué conjunto de datos se usa en una determinada canalización?
En las siguientes secciones se muestra cómo crear filtros y cómo consultar artefactos, ejecuciones y contextos.
Información general sobre la sintaxis de los filtros
En las siguientes secciones se describe cómo usar filtros para consultar artefactos, ejecuciones y contextos.
Campos
Se admiten los siguientes campos al filtrar artefactos, ejecuciones y contextos.
Artefacto | Ejecución | Contexto | |
---|---|---|---|
name |
|||
display_name |
|||
schema_title |
|||
create_time |
|||
update_time |
|||
metadata |
|||
state |
|||
uri |
El filtro debe ir entre comillas. Las comillas que formen parte de tu filtro deben incluirse con una barra invertida.
Operadores de comparación
Puedes usar los siguientes operadores de comparación en tus filtros: =
, !=
, <
, >
, >=
y <=
.
Por ejemplo, el siguiente filtro busca todos los artefactos cuyo nombre visible sea my_artifact.
REST
display_name=\"my_artifact\"
Python
"display_name=\"my_artifact\""
En los campos de cadena, puede usar el filtro de comodín con el carácter *
.
En los campos de marca de tiempo, como create_time
y update_time
, debe dar formato a la fecha con el formato RFC 3339. Por ejemplo:
REST
create_time=\"2021-05-11T12:30:00-08:00\"
Python
"create_time=\"2021-05-11T12:30:00-08:00\""
Operadores lógicos
Puedes usar los operadores lógicos AND
y OR
para combinar filtros y crear una consulta compleja.
En el siguiente ejemplo se muestra cómo consultar artefactos de tipo ai_platform.model
y un campo metadata
precision
con un valor numérico superior a 0,9.
REST
schema_title=\"ai_platform.Model\"+AND+metadata.precision.number_value>0.9
Python
"create_time=\"schema_title=\"ai_platform.Model\" AND metadata.precision.number_value>0.9"
Filtrar metadatos con el operador de recorrido
El campo metadata
es una instancia de google.protobuf.Struct
cuyo formato se define en el esquema especificado en el campo schema_title
. google.protobuf.Struct
es una estructura de datos que asigna claves a instancias de google.protobuf.Value
. La estructura de datos google.protobuf.Value
almacena valores en diferentes campos en función de su tipo de datos. Por ejemplo:
- las cadenas se almacenan como
metadata.FIELD_NAME.string_value
, - los números se almacenan como
metadata.FIELD_NAME.number_value
, - Los valores booleanos se almacenan como
metadata.FIELD_NAME.bool_value
.
Para filtrar por metadata
, debe usar el operador de recorrido para ir al campo por el que quiere filtrar. El operador de recorrido usa el siguiente formato.
REST
metadata.FIELD_NAME.TYPE_NAME=\"FILTER_VALUE\"
Python
"metadata.FIELD_NAME.TYPE_NAME=\"FILTER_VALUE\""
Por ejemplo, considera una estructura de metadatos como la siguiente:
{
"field_1": 5,
"field_2": "example",
"field_3": {
...
},
"field_4": [],
"field_5": true,
}
Las siguientes consultas muestran cómo usar el operador de recorrido para filtrar este ejemplo de metadatos.
Filtra los registros que tengan
metadata.field_1
con un valor inferior a 5.
REST
metadata.field_1.number_value<5
Python
"metadata.field_1.number_value<5"
Filtra los registros que tengan
metadata.field_2
con un valor igual a ejemplo.
REST
metadata.field_2.string_value=\"example\"
Python
"metadata.field_2.string_value=\"example\""
Filtra los registros que tengan
metadata.field_5
con un valor igual a true.
REST
metadata.field_5.bool_value=true
Python
"metadata.field_5.bool_value=true"
Filtrar contextos por sus relaciones entre elementos superiores y secundarios
Puedes usar el operador has para buscar contextos que sean el elemento superior o secundario de un contexto especificado.
El operador "has" usa el siguiente formato:
"parent_contexts:\"CONTEXT_RESOURCE_NAME\""
"child_contexts:\"CONTEXT_RESOURCE_NAME\""
El nombre del contexto debe ser el nombre completo del recurso del contexto, como el siguiente:
project/PROJECT/locations/LOCATION/metadataStores/METADATA-STORE/contexts/CONTEXT
.
Los siguientes filtros muestran cómo usar el operador "has":
Filtra todos los contextos que sean elementos secundarios de la canalización especificada.
REST
parent_contexts:\"project/12345/locations/us-central1/metadataStores/default/contexts/pipeline_1\"
Python
"parent_contexts:\"project/12345/locations/us-central1/metadataStores/default/contexts/pipeline_1\""
Filtra todos los contextos que sean elementos superiores de la canalización especificada.
REST
child_contexts:\"project/12345/locations/us-central1/metadataStores/default/contexts/pipeline_1\"
Python
"child_contexts:\"project/12345/locations/us-central1/metadataStores/default/contexts/pipeline_1\""
Filtrar contextos, ejecuciones y artefactos por asociación y atribución
Puedes usar la función in_context()
para filtrar artefactos o ejecuciones
que estén asociados a un contexto. Puedes usar la función with_execution()
para filtrar artefactos o contextos específicos asociados a una ejecución. Del mismo modo, puedes usar la función with_artifact()
para filtrar ejecuciones o contextos específicos asociados a un artefacto.
Las funciones de filtro se usan con el siguiente formato.
"in_context(\"CONTEXT_RESOURCE_NAME\")"
"with_execution(\"EXECUTION_RESOURCE_NAME\")"
"with_artifact(\"ARTIFACT_RESOURCE_NAME\")"
El contexto, la ejecución y los nombres de los artefactos deben ser el nombre completo del recurso, como se indica a continuación.
project/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA-STORE/contexts/CONTEXT
project/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA-STORE/executions/EXECUTION
project/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA-STORE/artifacts/ARTIFACT
En el siguiente ejemplo se muestra cómo filtrar objetos que se encuentran en la canalización especificada.
REST
in_context(\"project/12345/locations/us-central1/metadataStores/default/contexts/pipeline_1\")
Python
"in_context(\"project/12345/locations/us-central1/metadataStores/default/contexts/pipeline_1\")"
Puede usar un comodín *
en las funciones de filtro para filtrar parámetros de cada recurso. Por ejemplo, puedes usar lo siguiente para filtrar todas las ejecuciones
que actúan sobre un tipo de artefacto system.model
.
REST
with_artifact(\"*\",\"schema_title='name.model'\")
Python
"with_artifact(\"*\",\"schema_title='name.model'\")"
Estos son otros parámetros admitidos por los que puede filtrar:
input=true/false
: filtra los tipos de artefactos de entrada o salida.event_time
: filtra las horas de los eventos de ejecuciones o artefactos.- Todos los demás campos de filtro admitidos
Puedes combinar los campos con operandos lógicos para crear consultas de filtro complejas. Ten en cuenta que la profundidad máxima admitida de funciones anidadas es 5.
Consultar artefactos
Los artefactos, como los conjuntos de datos y los modelos, representan los datos que utiliza o produce tu flujo de trabajo de aprendizaje automático. Sigue estas instrucciones para consultar artefactos.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION_ID: tu región.
- PROJECT_ID: tu ID de proyecto.
- METADATA_STORE: 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) Número máximo de artefactos que se devolverán. Si no se especifica este valor, el servicio devuelve un máximo de 100 registros.
- PAGE_TOKEN: (Opcional) 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, despliega una de estas opciones:
Debería ver un resultado similar al siguiente. ARTIFACT_ID es 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
: . Puedes encontrar estos IDs en la página de bienvenida de la Google Cloud consola.location
: consulta la lista de ubicaciones disponibles.display_name_filter
: filtro que se aplicará al nombre visible al enumerar los recursos con el formato "display_name=\"mi_filtro\"" .create_date_filter
: filtro que se aplicará al nombre de create_date al enumerar los recursos con el formato "create_time>\"2022-06-11T12:30:00-08:00\"",.
Consultar ejecuciones
Las ejecuciones representan un paso de tu flujo de trabajo de aprendizaje automático, como el preprocesamiento de datos o el entrenamiento de un modelo. Sigue estas instrucciones para consultar las ejecuciones.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION_ID: tu región.
- PROJECT_ID: .
- METADATA_STORE: ID del almacén de metadatos en el que se crea la ejecución.
El almacén de metadatos predeterminado se llama
default
. - PAGE_SIZE: (opcional) Número máximo de artefactos que se devolverán. Si no se especifica este valor, el servicio devuelve un máximo de 100 registros.
- PAGE_TOKEN: (Opcional) 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 una ejecución 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/executions?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER
Para enviar tu solicitud, despliega una de estas opciones:
Debería ver un resultado similar al siguiente. EXECUTION_ID es el ID del registro de ejecución.
{ "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
project
: . Puedes encontrar estos IDs en la página de bienvenida de la Google Cloud consola.location
: consulta la lista de ubicaciones disponibles.display_name_filter
: filtro que se aplicará al nombre visible al enumerar los recursos con el formato "display_name=\"mi_filtro\"" .create_date_filter
: filtro que se aplicará al nombre de create_date al enumerar los recursos con el formato "create_time>\"2022-06-11T12:30:00-08:00\"",.
Consultar contextos
Los contextos te permiten agrupar conjuntos de ejecuciones, artefactos y otros contextos. Sigue estas instrucciones para consultar contextos.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION_ID: tu región.
- PROJECT_ID: .
- METADATA_STORE: ID del almacén de metadatos en el que se crea el contexto.
El almacén de metadatos predeterminado se llama
default
. - PAGE_SIZE: (opcional) Número máximo de artefactos que se devolverán. Si no se especifica este valor, el servicio devuelve un máximo de 100 registros.
- PAGE_TOKEN: (Opcional) 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 contexto 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/contexts?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER
Para enviar tu solicitud, despliega una de estas opciones:
Debería ver un resultado similar al siguiente. CONTEXT_ID es el ID del registro de contexto.
{ "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": {} } ] }
Consulta de los artefactos de entrada y salida de una ejecución
Sigue estas instrucciones para consultar los artefactos y las ejecuciones del contexto especificado, así como los eventos que conectan los artefactos con las ejecuciones.
SDK de Vertex AI para Python
Artefactos de entrada
Este ejemplo del SDK de Python implica consultar los artefactos de entrada de una ejecución.
Python
Artefactos de salida
Este ejemplo del SDK de Python implica consultar los artefactos de salida de una ejecución.
Python
REST
Este ejemplo de REST incluye consultas de los artefactos de entrada y salida de una ejecución.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION_ID: tu región.
- PROJECT_ID: .
- METADATA_STORE: 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: ID del registro de ejecución.
Método HTTP y URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID:queryExecutionInputsAndOutputs
Para enviar tu solicitud, despliega una de estas opciones:
Debería ver un resultado similar al siguiente. 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. ARTIFACT_ID es el ID del registro del artefacto.
{ "artifacts": [ { "name": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID", "displayName": "Example artifact", "uri": "gs://your_bucket_name/artifacts/dataset.csv", "etag": "678901011", "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." }, { "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID", "displayName": "Example artifact 2", "uri": "gs://your_bucket_name/artifacts/dataset.csv", "etag": "678901011", "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." } ], "executions": [ { "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID", "displayName": "Example execution 1", "etag": "678901011", "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." } ], "events": [ { "artifact": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID", "execution": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/executions/EXECUTION_ID", "eventTime": "2021-05-18T00:04:49.659Z",, "type": "INPUT", }, { "artifact": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID", "execution": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/executions/EXECUTION_ID", "eventTime": "2021-05-18T00:04:49.659Z",, "type": "OUTPUT", } ] }
Consultar el subgrafo de linaje de un contexto
Sigue estas instrucciones para consultar los artefactos y las ejecuciones del contexto especificado, así como los eventos que conectan los artefactos con las ejecuciones.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION_ID: tu región.
- PROJECT_ID: .
- METADATA_STORE: 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.
Método HTTP y URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID:queryContextLineageSubgraph
Para enviar tu solicitud, despliega una de estas opciones:
Debería ver un resultado similar al siguiente. 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. ARTIFACT_ID es el ID del registro del artefacto.
{ "artifacts": [ { "name": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID", "displayName": "Example artifact", "uri": "gs://your_bucket_name/artifacts/dataset.csv", "etag": "678901011", "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." }, { "name": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID", "displayName": "Example artifact 2", "uri": "gs://your_bucket_name/artifacts/dataset.csv", "etag": "678901011", "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." } ], "executions": [ { "name": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/executions/EXECUTION_ID", "displayName": "Example execution 1", "etag": "678901011", "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." } ], "events": [ { "artifact": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID", "execution": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/executions/EXECUTION_ID", "eventTime": "2021-05-18T00:04:49.659Z",, "type": "INPUT", }, { "artifact": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID", "execution": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/executions/EXECUTION_ID", "eventTime": "2021-05-18T00:04:49.659Z",, "type": "OUTPUT", } ] }