Além dos esquemas de sistema predefinidos, os metadados do Vertex ML oferecem um modelo de dados extensível através de esquemas personalizados. Os esquemas personalizados são MetadataSchemas definidos pelo utilizador. Use esquemas personalizados para verificar o tipo de propriedades de metadados e para consultar recursos por esquema, por exemplo, "listar todos os artefactos do tipo MyCustomModel
.
Para definir um esquema personalizado, tem de criar um recurso MetadataSchema num
MetadataStore específico que descreva o esquema esperado. O formato do esquema é um subconjunto da especificação OpenAPI 3.0{class: external}, com a restrição de que o esquema de nível superior tem de ser do tipo object
. Todos os tipos de dados suportados pelo OpenAPI 3.0 (por exemplo, número inteiro, número, string, booleano, matriz, objeto) são suportados como propriedades deste objeto de esquema de nível superior. Uma restrição é que cada campo na secção de propriedades só pode ser atribuído a um tipo de dados. Os tipos mistos não são suportados. Os requisitos de dados avançados, como mínimo, máximo, múltiplos e formatos de strings, também não são suportados.
Como registar os seus próprios esquemas personalizados
O processo de criação de um MetadataSchema personalizado é semelhante ao de criação de novos recursos de metadados. As instruções seguintes mostram como criar um MetadataSchema de exemplo. Os MetadataSchemas estão apenas no âmbito do MetadataStore associado.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION_ID: a região do seu MetadataStore.
- PROJECT_ID: o ID do projeto ou o número.
- METADATA_STORE: o ID do armazenamento de metadados onde o MetadataSchema é criado.
O repositório de metadados predefinido chama-se
default
. A menos que seja necessário um novo MetadataStore, pode usar a loja predefinida. - METADATA_SCHEMA_ID: (Opcional) O ID do registo MetadataSchema. Se o ID não for especificado, o Vertex ML Metadata cria um identificador exclusivo para este MetadataSchema.
- METADATA_SCHEMA_TITLE: o título do esquema que descreve o campo de metadados. O título do esquema tem de cumprir o formato `
. `. O espaço de nomes tem de começar por uma letra minúscula, pode conter carateres minúsculos e números, e pode ter entre dois e vinte carateres. O nome do esquema tem de começar com uma letra maiúscula, pode incluir letras e números, e pode ter entre 2 e 49 carateres. - METADATA_SCHEMA_VERSION: (Opcional) A versão do esquema que descreve o campo de metadados.
schema_version
tem de ser uma string de três números separados por pontos, por exemplo, 1.0.0 ou 1.0.1. Este formato ajuda a ordenar e comparar versões. - METADATA_SCHEMA_TYPE: o tipo de recurso de metadados ao qual o esquema criado se aplica.
Os tipos são:
ARTIFACT_TYPE
,EXECUTION_TYPE
ouCONTEXT_TYPE
. - METADATA_SCHEMA: o esquema detalhado a criar.
- DESCRIPTION: (Opcional) Uma string legível que descreve a finalidade da execução a ser criada.
- ARTIFACT_ID: (Opcional) O ID do registo do artefacto. Se o ID do artefacto não for especificado, o Vertex ML Metadata cria um identificador exclusivo para este artefacto.
- DISPLAY_NAME: (Opcional) O nome do artefacto definido pelo utilizador.
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/metadataSchemas?metadata_schema_id=METADATA_SCHEMA_ID
Corpo JSON do pedido:
{ "schemaVersion": "0.0.1", "schema": "title: test.Experiment\ntype: object", "schemaType": "CONTEXT_TYPE", }
Para enviar o seu pedido, expanda uma destas opções:
Deverá ver uma saída semelhante à seguinte. Pode usar o METADATA_SCHEMA_ID é o ID do registo MetadataSchema.
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/metadataSchemas/METADATA_SCHEMA_ID", "schemaVersion": "0.0.1", "schema": "title: test.Experiment\ntype: object", "schemaType": "CONTEXT_TYPE", "createTime": "2021-04-06T05:24:04.575481815Z" }
As chamadas subsequentes para criar, obter ou listar artefactos podem, em seguida, fazer referência a este esquema especificando o nome (demo.Artifact) no campo schema_title e a versão (0.0.1) no schema_version do recurso Artifact. Para mais informações sobre como criar, obter ou listar recursos de metadados, consulte o artigo Monitorize os metadados do Vertex ML.
Crie versões dos seus esquemas
Todos os recursos MetadataSchema têm versões. Um utilizador pode criar um esquema que use o mesmo schema_title que outro esquema, mas uma schema_version diferente. Para criar um recurso metadataSchema com uma versão diferente, um utilizador pode fornecer um número de versão diferente e conteúdo do esquema modificado.
O exemplo seguinte cria uma versão 0.0.2 do esquema demo.Artifact:
sample_schema_versioned = aip.MetadataSchema()
sample_schema_versioned.schema_type = aip.MetadataSchema.MetadataSchemaType.ARTIFACT_TYPE
sample_schema_versioned.schema ="title: demo.Artifact\ntype: object\nproperties:\n framework:\n type: string\n description: \"The framework type\"\n model_version:\n type: integer\n description: \"The version of the model\""
sample_schema_versioned.schema_version = "0.0.2"
sample_schema_versioned.description = "sample schema 2"
store_client.create_metadata_schema(parent=metadata_store.name, metadata_schema=sample_schema_versioned)
Os campos no esquema são sempre considerados opcionais, pelo que não existe compatibilidade com versões anteriores ou posteriores entre as versões do mesmo schema_title. Os utilizadores continuam a poder usar o schema_title para filtrar e agrupar recursos para análise. Para mais informações sobre como usar funções de filtro, consulte o artigo Analisar metadados do Vertex ML.