Esquemas del sistema

Cada recurso de metadatos está asociado con un MetadataSchema específico. A fin de simplificar el proceso de creación de recursos de metadatos, Vertex ML Metadata publica tipos predefinidos llamados esquemas del sistema para conceptos comunes del AA. Los esquemas del sistema residen en el espacio de nombres system. Puedes acceder a los esquemas del sistema como recursos de MetadataSchema en la API de Vertex ML Metadata. Los esquemas siempre tienen versiones. El formato de los esquemas del sistema es un subconjunto de la especificación de OpenAPI 3.0.

Cómo usar esquemas del sistema

Vertex AI usa esquemas del sistema a fin de crear recursos de metadatos para realizar un seguimiento de los flujos de trabajo del AA. Luego, puedes filtrar y agrupar recursos en consultas de metadatos mediante el campo schema_title. Si deseas obtener más información para usar las funciones de filtro, consulta Analiza Vertex ML Metadata.

También puedes usar esquemas del sistema a través de la API de Vertex ML Metadata para crear recursos de metadatos directamente. Puedes identificar un esquema del sistema por el título y la versión del esquema. Los campos en los esquemas del sistema siempre se consideran opcionales. No estás restringido a los campos predefinidos de los esquemas del sistema y también puedes registrar metadatos arbitrarios adicionales en cualquier recurso de metadatos. Si deseas obtener más información sobre el uso de esquemas de sistema para crear recursos de metadatos, consulta Realiza un seguimiento de Vertex ML Metadata.

Enumera tus esquemas

Para ver una lista de todos tus esquemas registrados existentes, usa el siguiente comando.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:

Método HTTP y 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 tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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"
    }
}

Coincidencia estricta de esquemas

Vertex ML Metadata admite dos marcas que permiten a los autores de esquemas aplicar una coincidencia estricta de esquemas.

additionalProperties

El valor additionalProperties puede ser verdadero o falso. De acuerdo con el esquema JSON, additionalProperties se establece de forma predeterminada en verdadero. Esta marca se configura en el nivel superior del esquema. Si se configura como falso, no se permiten propiedades opcionales. Por ejemplo, en el siguiente esquema, solo se aceptan los campos payload_format y container_format en los metadatos según este esquema.

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

En el esquema anterior, se aceptan los siguientes metadatos:

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

Sin embargo, se rechazarán los siguientes metadatos:

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

La palabra clave required toma un array de cero o más strings. De acuerdo con el esquema JSON, no se requieren las propiedades que define la palabra clave de las propiedades. Puedes proporcionar una lista de propiedades obligatorias con la palabra clave required. Por ejemplo, el siguiente esquema siempre requiere container_format. También funciona en propiedades anidadas. Por ejemplo, a continuación, se requiere container_format.

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

En el esquema anterior, se aceptan los siguientes metadatos:

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

Sin embargo, se rechazarán los siguientes metadatos:

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

El esquema admite propiedades anidadas en las que las propiedades tienen un campo de objeto de tipo. En un esquema anidado, el nodo de propiedades anidadas puede tener una palabra clave required. Por ejemplo:

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

En el esquema anterior, se aceptan los siguientes metadatos, ya que el campo nested_property en sí no es obligatorio.

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

También son válidos los siguientes metadatos.

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

Sin embargo, se rechazarán los siguientes metadatos:

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

Ejemplos de esquemas del sistema

Los siguientes ejemplos son esquemas comunes del sistema que están disponibles para su uso inmediato.

Artefacto

system.Artifact es un esquema genérico que puede contener metadatos sobre cualquier artefacto. No se definen campos específicos en este esquema.

title: system.Artifact
version: 0.0.1
type: object

Conjunto de datos

system.Dataset representa un contenedor de datos que se consumió o se produjo en un paso de flujo de trabajo del AA. Un conjunto de datos puede apuntar a una ubicación de archivo o a una consulta, por ejemplo, un URI de 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 un modelo entrenado. El URI del modelo puede apuntar a una ubicación de archivo (PPP, un bucket de Cloud Storage, una unidad local) o a un recurso de la API, como el recurso del modelo en la API de 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 las métricas de evaluación producidas durante un flujo de trabajo del AA. Las métricas dependen de la aplicación y del caso de uso, y pueden constar de métricas escalares simples, como la exactitud o métricas complejas que se almacenan en otro lugar del 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."

¿Qué sigue?