Pode usar o Vertex ML Metadata para acompanhar e analisar os metadados produzidos pelos seus sistemas de aprendizagem automática (ML). Ao acompanhar estes metadados, torna-se mais fácil analisar o comportamento do seu sistema de ML. Isto pode ajudar a compreender as alterações no desempenho do seu sistema ou pode ajudar a comparar os artefactos que o seu sistema de ML produziu.
Se está a usar o Vertex ML Metadata pela primeira vez, leia a introdução ao Vertex ML Metadata para saber mais sobre o acompanhamento e a análise dos metadados do seu fluxo de trabalho de ML.
Saiba como consultar os metadados do Vertex ML que quer analisar das seguintes formas:
- Consultar todos os artefactos, execuções> ou contexto que correspondam aos seus critérios de filtragem.
- Consultar os artefactos de entrada e saída de uma execução, juntamente com os eventos, usados para associar os artefactos à execução.
- Consulta para o subgrafo de linhagem de um contexto. Esta consulta devolve os artefactos e as execuções de um contexto, juntamente com os eventos que associam os artefactos às execuções.
Consultar artefactos, execuções e contextos
Pode usar o SDK Vertex AI para Python ou a API REST para consultar registos de artefactos, execuções e contextos através de filtros para criar consultas como as seguintes:
- Que versões de um modelo preparado atingiram um determinado limite de qualidade?
- Que conjunto de dados é usado num determinado pipeline?
As secções seguintes demonstram como criar filtros e como consultar artefactos, execuções e contextos.
Vista geral da sintaxe de filtros
As secções seguintes descrevem como usar filtros para consultar artefactos, execuções e contextos.
Campos
Os seguintes campos são suportados quando filtra artefactos, execuções e contextos.
Artefacto | Execução | Contexto | |
---|---|---|---|
name |
|||
display_name |
|||
schema_title |
|||
create_time |
|||
update_time |
|||
metadata |
|||
state |
|||
uri |
O filtro tem de estar entre aspas. Todas as aspas que façam parte do filtro têm de ser escapadas com uma barra invertida.
Operadores de comparação
Pode usar os seguintes operadores de comparação nos seus filtros: =
, !=
, <
,
>
, >=
, <=
.
Por exemplo, os seguintes filtros permitem encontrar todos os artefactos em que o nome a apresentar é my_artifact.
REST
display_name=\"my_artifact\"
Python
"display_name=\"my_artifact\""
Para campos de string, pode usar a filtragem com carateres universais com o caráter *
.
Para campos de data/hora, como create_time
e update_time
, tem de formatar a data no formato RFC 3339. Por exemplo:
REST
create_time=\"2021-05-11T12:30:00-08:00\"
Python
"create_time=\"2021-05-11T12:30:00-08:00\""
Operadores lógicos
Pode usar os operadores lógicos AND
e OR
para combinar filtros e criar uma consulta complexa.
O exemplo seguinte demonstra como consultar artefactos do tipo
ai_platform.model
e um campo metadata
com um valor numérico
superior a 0,9.precision
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"
Filtre metadados com o operador de deslocamento
O campo metadata
é uma instância de
google.protobuf.Struct
cujo formato está definido no
esquema especificado no campo schema_title
. google.protobuf.Struct
é uma estrutura de dados que mapeia chaves para instâncias de google.protobuf.Value
. A estrutura de dados google.protobuf.Value
armazena valores em campos diferentes consoante o respetivo tipo de dados. Por exemplo:
- As strings são armazenadas como
metadata.FIELD_NAME.string_value
, - Os números são armazenados como
metadata.FIELD_NAME.number_value
, - Os valores booleanos são armazenados como
metadata.FIELD_NAME.bool_value
.
Para filtrar por metadata
, tem de usar o operador de deslocamento para se deslocar para o campo que quer filtrar. O operador de travessia usa o seguinte formato.
REST
metadata.FIELD_NAME.TYPE_NAME=\"FILTER_VALUE\"
Python
"metadata.FIELD_NAME.TYPE_NAME=\"FILTER_VALUE\""
Por exemplo, considere uma estrutura de metadados como a seguinte:
{
"field_1": 5,
"field_2": "example",
"field_3": {
...
},
"field_4": [],
"field_5": true,
}
As consultas seguintes ilustram como usar o operador de deslocamento para filtrar com base neste exemplo de metadados.
Filtre os registos que têm
metadata.field_1
com um valor inferior a 5.
REST
metadata.field_1.number_value<5
Python
"metadata.field_1.number_value<5"
Filtre os registos que têm
metadata.field_2
com um valor igual a exemplo.
REST
metadata.field_2.string_value=\"example\"
Python
"metadata.field_2.string_value=\"example\""
Filtre os registos que têm
metadata.field_5
com um valor igual a verdadeiro.
REST
metadata.field_5.bool_value=true
Python
"metadata.field_5.bool_value=true"
Filtre contextos pelas respetivas relações principais e secundárias
Pode usar o operador has para encontrar contextos que sejam o principal ou o secundário de um contexto especificado.
O operador has usa o seguinte formato:
"parent_contexts:\"CONTEXT_RESOURCE_NAME\""
"child_contexts:\"CONTEXT_RESOURCE_NAME\""
O nome do contexto tem de ser o nome completo do recurso do contexto, como
o seguinte:
project/PROJECT/locations/LOCATION/metadataStores/METADATA-STORE/contexts/CONTEXT
.
Os filtros seguintes demonstram como usar o operador has:
Filtre todos os contextos que são filhos do pipeline especificado.
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\""
Filtre todos os contextos que são um elemento principal do pipeline especificado.
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\""
Filtre contextos, execuções e artefactos por associação e atribuição
Pode usar a função in_context()
para filtrar artefatos ou execuções associados a um contexto. Pode usar a função with_execution()
para filtrar artefatos ou contextos específicos associados a uma execução. Da mesma forma, pode usar a função with_artifact()
para filtrar
execuções ou contextos específicos associados a um artefacto.
As funções de filtro são usadas no seguinte formato.
"in_context(\"CONTEXT_RESOURCE_NAME\")"
"with_execution(\"EXECUTION_RESOURCE_NAME\")"
"with_artifact(\"ARTIFACT_RESOURCE_NAME\")"
O contexto, a execução e os nomes dos artefactos têm de ser o nome completo do recurso, como o seguinte.
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
O exemplo seguinte demonstra como filtrar objetos que estão no pipeline especificado.
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\")"
Pode usar um caráter universal *
nas funções de filtro para filtrar parâmetros de cada recurso. Por exemplo, pode usar o seguinte para filtrar todas as execuções que atuam num tipo de artefacto system.model
.
REST
with_artifact(\"*\",\"schema_title='name.model'\")
Python
"with_artifact(\"*\",\"schema_title='name.model'\")"
Seguem-se outros parâmetros suportados nos quais pode aplicar filtros
input=true/false
: filtre os tipos de artefactos de entrada ou saída.event_time
: filtre as horas dos eventos de execuções ou artefactos.- Todos os outros campos de filtro suportados
Pode combinar os campos com operandos lógicos para criar consultas de filtros complexas. Tenha em atenção que a profundidade máxima da função aninhada suportada é 5.
Consulte artefactos
Os artefactos, como conjuntos de dados e modelos, representam os dados usados ou produzidos pelo seu fluxo de trabalho de ML. Siga as instruções abaixo para consultar artefactos.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION_ID: a sua região.
- PROJECT_ID: o seu ID do projeto.
- METADATA_STORE: o ID do armazenamento de metadados onde o artefacto é criado.
O repositório de metadados predefinido chama-se
default
. - PAGE_SIZE: (Opcional) O número máximo de artefactos a devolver. Se este valor não for especificado, o serviço devolve um máximo de 100 registos.
- PAGE_TOKEN: (Opcional) Um token de página de uma chamada MetadataService.ListArtifacts anterior. Especifique este token para obter a página seguinte de resultados.
FILTER: especifica as condições necessárias para incluir um artefacto no conjunto de resultados.
Método 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
Para enviar o seu pedido, expanda uma destas opções:
Deverá ver uma saída semelhante à seguinte. ARTIFACT_ID é o ID do registo do 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
: . Pode encontrar estes IDs na página de Google Cloud boas-vindas da consola.location
: consulte a lista de localizações disponíveis.display_name_filter
: filtro a aplicar ao nome a apresentar ao listar os recursos com o formato "display_name=\"my_filter\"" .create_date_filter
: filtro a aplicar ao nome create_date ao listar os recursos com o formato "create_time>\"2022-06-11T12:30:00-08:00\"",.
Consulte execuções
As execuções representam um passo no seu fluxo de trabalho de ML, como o pré-processamento de dados ou a formação de um modelo. Use as seguintes instruções para consultar execuções.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION_ID: a sua região.
- PROJECT_ID: .
- METADATA_STORE: o ID do armazenamento de metadados onde a execução é criada.
O repositório de metadados predefinido chama-se
default
. - PAGE_SIZE: (Opcional) O número máximo de artefactos a devolver. Se este valor não for especificado, o serviço devolve um máximo de 100 registos.
- PAGE_TOKEN: (Opcional) Um token de página de uma chamada MetadataService.ListArtifacts anterior. Especifique este token para obter a página seguinte de resultados.
FILTER: especifica as condições necessárias para incluir uma execução no conjunto de resultados.
Método 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
Para enviar o seu pedido, expanda uma destas opções:
Deverá ver uma saída semelhante à seguinte. EXECUTION_ID é o ID do registo de execução.
{ "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
: . Pode encontrar estes IDs na página de Google Cloud boas-vindas da consola.location
: consulte a lista de localizações disponíveis.display_name_filter
: filtro a aplicar ao nome a apresentar ao listar os recursos com o formato "display_name=\"my_filter\"" .create_date_filter
: filtro a aplicar ao nome create_date ao listar os recursos com o formato "create_time>\"2022-06-11T12:30:00-08:00\"",.
Consultar contextos
Os contextos permitem-lhe agrupar conjuntos de execuções, artefactos e outros contextos. Use as seguintes instruções para consultar contextos.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION_ID: a sua região.
- PROJECT_ID: .
- METADATA_STORE: o ID do armazenamento de metadados onde o contexto é criado.
O repositório de metadados predefinido chama-se
default
. - PAGE_SIZE: (Opcional) O número máximo de artefactos a devolver. Se este valor não for especificado, o serviço devolve um máximo de 100 registos.
- PAGE_TOKEN: (Opcional) Um token de página de uma chamada MetadataService.ListArtifacts anterior. Especifique este token para obter a página seguinte de resultados.
FILTER: especifica as condições necessárias para incluir um contexto no conjunto de resultados.
Método 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
Para enviar o seu pedido, expanda uma destas opções:
Deverá ver uma saída semelhante à seguinte. CONTEXT_ID é o ID do registo 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": {} } ] }
Consulte os artefactos de entrada e saída de uma execução
Use as instruções seguintes para consultar os artefactos e as execuções no contexto especificado, juntamente com os eventos que associam os artefactos às execuções.
SDK Vertex AI para Python
Artefactos de entrada
Esta amostra do SDK Python envolve a consulta de artefactos de entrada de uma execução.
Python
Artefactos de saída
Esta amostra do SDK Python envolve a consulta de artefactos de saída de uma execução.
Python
REST
Este exemplo de REST inclui a consulta de artefactos de entrada e saída de uma execução.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION_ID: a sua região.
- PROJECT_ID: .
- METADATA_STORE: o ID do armazenamento de metadados onde a execução é criada.
O repositório de metadados predefinido chama-se
default
. - EXECUTION_ID: o ID do registo de execução.
Método HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID:queryExecutionInputsAndOutputs
Para enviar o seu pedido, expanda uma destas opções:
Deverá ver uma saída semelhante à seguinte. EXECUTION_ID é o ID do registo de execução. Se o ID de execução não for especificado, o Vertex ML Metadata criou um identificador exclusivo para esta execução. ARTIFACT_ID é o ID do registo do 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 o subgrafo de linhagem de um contexto
Use as instruções seguintes para consultar os artefactos e as execuções no contexto especificado, juntamente com os eventos que associam os artefactos às execuções.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION_ID: a sua região.
- PROJECT_ID: .
- METADATA_STORE: o ID do armazenamento de metadados onde a execução é criada.
O repositório de metadados predefinido chama-se
default
. - CONTEXT_ID: (Opcional) O ID do registo de contexto.
Método HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID:queryContextLineageSubgraph
Para enviar o seu pedido, expanda uma destas opções:
Deverá ver uma saída semelhante à seguinte. EXECUTION_ID é o ID do registo de execução. Se o ID de execução não for especificado, o Vertex ML Metadata criou um identificador exclusivo para esta execução. ARTIFACT_ID é o ID do registo do 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", } ] }