Esquemas del sistema

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

Cómo usar los esquemas del sistema

Vertex AI usa esquemas del sistema para crear recursos de metadatos con los que monitorizar tus flujos de trabajo de aprendizaje automático. Después, puede filtrar y agrupar recursos en consultas de metadatos mediante el campo schema_title. Para obtener más información sobre cómo usar las funciones de filtro, consulta Analizar metadatos de Vertex ML.

También puede usar esquemas del sistema a través de la API Vertex ML Metadata para crear recursos de metadatos directamente. Puedes identificar un esquema del sistema por su título y su versión. Los campos de los esquemas del sistema siempre se consideran opcionales. No tienes que limitarte a los campos predefinidos de los esquemas del sistema, sino que también puedes registrar metadatos arbitrarios adicionales en cualquier recurso de metadatos. Para obtener más información sobre cómo usar esquemas del sistema para crear recursos de metadatos, consulta Monitorizar metadatos de Vertex ML.

Ver tus esquemas

Para ver una lista de todos los esquemas registrados, utiliza el siguiente comando.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

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

Deberías recibir una respuesta JSON similar a la siguiente:

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

Concordancia 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 de additionalProperties puede ser true o false. De acuerdo con el esquema JSON, additionalProperties tiene el valor predeterminado true. Esta marca se define en el nivel superior del esquema. Si se le asigna el valor false, no se permite ninguna propiedad opcional. Por ejemplo, en el siguiente esquema, solo se aceptan los campos payload_format y container_format en los metadatos basados en este esquema.

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

El esquema anterior acepta 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' }
}

obligatorio

La palabra clave required acepta una matriz de cero o más cadenas. De acuerdo con el esquema JSON, las propiedades definidas por la palabra clave properties no son obligatorias. Puede proporcionar una lista de propiedades obligatorias mediante la required palabra clave. Por ejemplo, el siguiente esquema siempre requiere container_format. También funciona en propiedades anidadas. Por ejemplo, lo siguiente hace que container_format sea obligatorio.

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

El esquema anterior acepta 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 tipo object. 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

El esquema anterior acepta los siguientes metadatos, ya que el campo nested_property no es obligatorio.

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

Los siguientes metadatos también son 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 }
      }
    }
  }
}

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 de sistema habituales que se pueden usar inmediatamente.

Artefacto

system.Artifact es un esquema genérico que puede contener metadatos sobre cualquier artefacto. No se han definido 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 ha consumido o generado un paso del flujo de trabajo de aprendizaje automático. Un conjunto de datos puede apuntar a una ubicación de archivo o a una consulta, como 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, segmento de Cloud Storage o unidad local) o a un recurso de API, como el recurso Model de 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 de aprendizaje automático. Las métricas dependen de la aplicación y del caso práctico, y pueden ser métricas escalares sencillas, como la precisión, o métricas complejas que se almacenan en otras partes 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é debo hacer ahora?