Esquemas do sistema

Cada recurso de metadados está associado a um MetadataSchema específico. Para simplificar o processo de criação de recursos de metadados, o Vertex ML Metadata publica tipos predefinidos denominados esquemas do sistema para conceitos de ML comuns. Os esquemas do sistema estão no espaço de nomes system. Pode aceder aos esquemas do sistema como recursos MetadataSchema na API Vertex ML Metadata. Os esquemas têm sempre versões. O formato dos esquemas do sistema é um subconjunto da especificação OpenAPI 3.0.

Como usar esquemas do sistema

O Vertex AI usa esquemas do sistema para criar recursos de metadados para monitorizar os seus fluxos de trabalho de ML. Em seguida, pode filtrar e agrupar recursos em consultas de metadados através do campo schema_title. Para mais informações sobre como usar as funções de filtro, consulte o artigo Analise os metadados do Vertex ML.

Também pode usar esquemas do sistema através da API Vertex ML Metadata para criar recursos de metadados diretamente. Pode identificar um esquema do sistema pelo título e pela versão do esquema. Os campos nos esquemas do sistema são sempre considerados opcionais. Não está restrito aos campos predefinidos dos esquemas do sistema e também pode registar metadados arbitrários adicionais em qualquer recurso de metadados. Para mais informações sobre a utilização de esquemas do sistema para criar recursos de metadados, consulte o artigo Monitorize os metadados do Vertex ML.

Apresente uma lista dos seus esquemas

Para ver uma lista de todos os esquemas registados existentes, use o seguinte comando.

REST

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

Método HTTP e URL:

GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/default/metadataSchemas?pageSize=100&filter=schema_title=%22system*%22+OR+schema_title=%22google*%22

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

{
  "metadataSchemas": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/default/metadataSchemas/system-resolver-execution-v0-0-1",
      "schemaVersion": "0.0.1",
      "schema": "title: system.ResolverExecution\ntype: object\n",
      "schemaType": "EXECUTION_TYPE",
      "createTime": "2022-07-27T17:41:35.634Z"
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID//metadataStores/default/metadataSchemas/system-html-v0-0-1",
      "schemaVersion": "0.0.1",
      "schema": "title: system.HTML\ntype: object\n",
      "schemaType": "ARTIFACT_TYPE",
      "createTime": "2022-07-27T17:41:35.602Z"
    }
}

Correspondência de esquemas rigorosa

O Vertex ML Metadata suporta duas flags que permitem aos autores de esquemas aplicar a correspondência estrita de esquemas.

additionalProperties

O valor additionalProperties pode ser verdadeiro ou falso. Consistente com o esquema JSON, additionalProperties tem o valor predefinido true. Esta flag é definida ao nível superior do esquema. Se for definido como falso, não são permitidas propriedades opcionais. Por exemplo, no esquema abaixo, apenas os campos payload_format e container_format são aceites nos metadados com base neste esquema.

title: system.Dataset
version: 0.0.1
type: object
additionalProperties: false
properties:
  container_format:
    type: string
  payload_format:
    type: string

O esquema acima aceita os seguintes metadados:

fields {
  key: 'container_format'
  value: { string_value: 'Text' }
}
fields {
  key: 'payload_format'
  value: { string_value: 'CSV' }
}

No entanto, os seguintes metadados são rejeitados:

fields {
  key: 'container_format'
  value: { string_value: 'Text' }
}
fields {
  key: 'payload_format'
  value: { string_value: 'CSV' }
}
fields {
  key: 'optional_field'
  value: { string_value: 'optional_value' }
}

obrigatório

A palavra-chave required recebe uma matriz de zero ou mais strings. De acordo com o esquema JSON, as propriedades definidas pela palavra-chave properties não são obrigatórias. Pode fornecer uma lista de propriedades necessárias através da palavra-chave required. Por exemplo, o seguinte esquema requer sempre container_format. Também funciona em propriedades aninhadas. Por exemplo, o seguinte torna o elemento container_format obrigatório.

title: system.Dataset
version: 0.0.1
type: object
required: ['container_format']
properties:
  container_format:
    type: string
  payload_format:
    type: string

O esquema acima aceita os seguintes metadados:

fields {
  key: 'container_format'
  value: { string_value: 'Text' }
}

No entanto, os seguintes metadados são rejeitados:

fields {
  key: 'payload_format'
  value: { string_value: 'CSV' }
}

O esquema suporta propriedades aninhadas em que as propriedades têm um campo do tipo object. Num esquema aninhado, o nó de propriedades aninhadas pode ter uma required palavra-chave. Por exemplo:

title: system.Dataset
version: 0.0.1
type: object
properties:
  container_format:
    type: string
  payload:
    type: string
  nested_property:
    type: object
    required: ['property_1']
    properties:
      property_1:
        type: integer
      property_2:
        type: integer

O esquema acima aceita os seguintes metadados, uma vez que o campo nested_property não é obrigatório.

fields {
  key: 'container_format'
  value: { string_value: 'Text' }
}

Os seguintes metadados também são válidos.

fields {
  key: 'nested_property'
  value: {
    struct_value {
      fields {
        key: 'property_1'
        value: { number_value: 1 }
      }
      fields {
        key: 'property_2'
        value: { number_value: 1 }
      }
    }
  }
}

No entanto, os seguintes metadados são rejeitados:

fields {
  key: 'nested_property'
  value: {
    struct_value {
      fields {
        key: 'property_2'
        value: { number_value: 1 }
      }
    }
  }
}

Exemplos de esquemas do sistema

Os exemplos seguintes são esquemas de sistema comuns que estão disponíveis para utilização imediata.

Artefacto

system.Artifact é um esquema genérico que pode conter metadados sobre qualquer artefacto. Não estão definidos campos específicos neste esquema.

title: system.Artifact
version: 0.0.1
type: object

Conjunto de dados

system.Dataset representa um contentor de dados que foi consumido ou produzido por um passo do fluxo de trabalho de ML. Um conjunto de dados pode apontar para uma localização de ficheiro ou uma consulta, por exemplo, um URI do BigQuery.

title: system.Dataset
version: 0.0.1
type: object
properties:
  container_format:
    type: string
    description: "Format of the container. Examples include 'TFRecord', 'Text', or 'Parquet'."
  payload_format:
    type: string
   description: "Format of the payload. For example, 'proto:TFExample', 'CSV', or 'JSON'."

Modelo

system.Model representa um modelo preparado. O URI do modelo pode apontar para uma localização de ficheiro (PPP, contentor do Cloud Storage, unidade local) ou um recurso de API, como o recurso Model na API Vertex AI.

title: system.Model
version: 0.0.1
type: object
properties:
  framework:
    type: string
    description: "The framework type. For example: 'TensorFlow' or 'Scikit-Learn'."
  framework_version:
    type: string
    description: "The framework version. For example: '1.15' or '2.1'."
  payload_format:
    type: string
    description: "The format of the Model payload, for example: 'SavedModel' or 'TFLite'."

Métricas

system.Metrics representa as métricas de avaliação produzidas durante um fluxo de trabalho de ML. As métricas dependem da aplicação e do exemplo de utilização e podem consistir em métricas escalares simples, como a precisão, ou métricas complexas que são armazenadas noutro local do sistema.

title: system.Metrics
version: 0.0.1
type: object
properties:
  type:
  accuracy:
    type: number
    description: "Optional summary metric describing accuracy of a model."
  precision:
    type: number
    description: "Optional summary metric describing precision of a model."
  recall:
    type: number
    description: "Optional summary metric describing the recall of a model."
  f1score:
    type: number
    description: "Optional summary metric describing the f1-score of a model."
  mean_absolute_error:
    type: number
    description: "Optional summary metric describing the mean absolute error of a model."
  mean_squared_error:
    type: number
    description: "Optional summary metric describing the mean-squared error of a model."

What's Next?