Esquemas do sistema

Cada recurso de metadados é associado a um MetadataSchema específico. Para simplificar o processo de criação de recursos de metadados, o Vertex ML Metadata publica tipos predefinidos chamados esquemas do sistema para conceitos comuns de ML. Os esquemas do sistema estão no namespace system. É possível acessar os esquemas do sistema como recursos MetadataSchema na API Vertex ML Metadata. Os esquemas têm sempre o controle de versão. O formato dos esquemas do sistema é um subconjunto da especificação OpenAPI 3.0.

Como usar esquemas do sistema

A Vertex AI usa esquemas do sistema para criar recursos de metadados para rastrear seus fluxos de trabalho de ML. Em seguida, é possível filtrar e agrupar recursos em consultas de metadados usando o campo schema_title. Para mais informações sobre como usar as funções de filtro, consulte Analisar metadados de Vertex ML.

Também é possível usar esquemas do sistema por meio da API Vertex ML Metadata para criar recursos de metadados diretamente. É possível identificar um esquema de sistema por título e versão do esquema. Os campos em esquemas do sistema são sempre considerados opcionais. Os usuários não estão restritos aos campos predefinidos dos esquemas do sistema, mas também podem registrar outros metadados arbitrários em qualquer recurso de metadados. Para saber mais sobre como usar esquemas do sistema para criar recursos de metadados, consulte Rastrear metadados de Vertex ML.

Liste seus esquemas

Para ver uma lista de todos os esquemas registrados atuais, use o comando a seguir.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

Método HTTP e URL:

GET http://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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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 restrita de esquema

A Vertex ML Metadata é compatível com duas sinalizações que permitem que os autores do esquema apliquem uma correspondência estrita do esquema.

additionalProperties

O valor additionalProperties pode ser verdadeiro ou falso. De maneira consistente com o esquema JSON, additionalProperties padroniza para verdadeiro. Essa sinalização é definida no nível superior do esquema. Se ela for definida como falsa, nenhuma propriedade opcional será permitida. Por exemplo, no esquema abaixo, somente os campos payload_format e container_format são aceitos nos metadados com base nesse 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 serão recusados:

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' }
}

required

A palavra-chave required usa uma matriz com zero ou mais strings. De maneira consistente com o esquema JSON, as propriedades definidas pela palavra-chave de propriedades não são obrigatórias. Você pode fornecer uma lista de propriedades obrigatórias usando a palavra-chave required. Por exemplo, o esquema a seguir sempre requer container_format. Também funciona em propriedades aninhadas. O exemplo a seguir torna 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 serão recusados:

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

O esquema é compatível com propriedades aninhadas em que as propriedades têm um campo de tipo de objeto. Em um esquema aninhado, o nó de propriedades aninhadas pode ter uma palavra-chave required. 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 metadados a seguir, já que o próprio campo nested_property não é obrigatório.

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

Os metadados a seguir 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 serão recusados:

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

Exemplos de esquema do sistema

Os exemplos a seguir são esquemas comuns de sistema disponíveis para uso imediato.

Artefato

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

title: system.Artifact
version: 0.0.1
type: object

Conjunto de dados

system.Dataset representa um contêiner de dados consumidos ou produzidos por uma etapa do fluxo de trabalho de ML. Um conjunto de dados pode apontar para um local de arquivo 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 treinado. O URI do modelo pode apontar para um local de arquivo (PPP, bucket do Cloud Storage, unidade local) ou um recurso de API, como o recurso Modelo 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 do aplicativo e do caso de uso, podendo consistir em métricas escalares simples, como precisão ou métricas complexas, armazenadas em outro lugar no 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."

A seguir