Schémas système

Chaque ressource de métadonnées est associée à un MetadataSchema spécifique. Pour simplifier le processus de création de ressources de métadonnées, Vertex ML Metadata publie des types prédéfinis appelés schémas système pour les concepts de ML courants. Les schémas système existent sous l'espace de noms system. Vous pouvez accéder aux schémas système en tant que ressources MetadataSchema dans l'API Vertex ML Metadata. Les schémas appliquent systématiquement la gestion des versions. Le format des schémas système est un sous-ensemble de la spécification OpenAPI 3.0.

Utiliser des schémas système

Vertex AI utilise des schémas système pour créer des ressources de métadonnées permettant de suivre vos workflows de ML. Vous pouvez ensuite filtrer et regrouper des ressources dans les requêtes de métadonnées à l'aide du champ schema_title. Pour en savoir plus sur l'utilisation des fonctions de filtre, consultez la page Analyser les ressources Vertex ML Metadata.

Vous pouvez également utiliser les schémas système via l'API Vertex ML Metadata pour créer directement des ressources de métadonnées. Vous pouvez identifier un schéma système en fonction de son titre et de sa version. Les champs des schémas système sont toujours considérés comme facultatifs. Vous n'êtes pas limité aux champs prédéfinis des schémas système et vous pouvez également consigner des métadonnées arbitraires supplémentaires sur n'importe quelle ressource de métadonnées. Pour en savoir plus sur l'utilisation de schémas système pour créer des ressources de métadonnées, consultez la section Suivre les ressources Vertex ML Metadata.

Répertorier vos schémas

Pour afficher la liste de tous vos schémas enregistrés existants, utilisez la commande suivante.

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

Méthode HTTP et 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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

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

Correspondance de schéma stricte

Vertex ML Metadata accepte deux options permettant aux auteurs de schémas d'appliquer une mise en correspondance de schémas stricte.

additionalProperties

La valeur additionalProperties peut être vraie ou fausse. Conformément au schéma JSON, additionalProperties est défini par défaut sur "true". Cette option est définie au niveau supérieur du schéma. Si elle est définie sur "false", aucune propriété facultative n'est autorisée. Par exemple, dans le schéma ci-dessous, seuls les champs payload_format et container_format sont acceptés dans les métadonnées d'après ce schéma.

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

Le schéma ci-dessus accepte les métadonnées suivantes :

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

Toutefois, les métadonnées suivantes seront refusées :

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

obligatoire

Le mot clé required utilise un tableau de zéro ou plusieurs chaînes. Conformément au schéma JSON, les propriétés définies par le mot clé "properties" ne sont pas obligatoires. Vous pouvez fournir une liste de propriétés requises à l'aide du mot clé required. Par exemple, le schéma suivant nécessite toujours container_format. Il fonctionne également avec les propriétés imbriquées. Par exemple, le schéma suivant rend le champ container_format obligatoire.

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

Le schéma ci-dessus accepte les métadonnées suivantes :

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

Toutefois, les métadonnées suivantes seront refusées :

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

Le schéma accepte les propriétés imbriquées possédant un champ de type objet. Dans un schéma imbriqué, le nœud des propriétés imbriquées peut inclure un mot clé required. Exemple :

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

Le schéma ci-dessus accepte les métadonnées suivantes, car le champ nested_property n'est pas requis.

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

Les métadonnées suivantes sont également valides.

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

Toutefois, les métadonnées suivantes seront refusées :

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

Exemples de schémas système

Les exemples suivants sont des schémas système courants disponibles pour une utilisation immédiate.

Artefact

system.Artifact est un schéma générique qui peut contenir des métadonnées sur tout artefact. Aucun champ spécifique n'est défini dans ce schéma.

title: system.Artifact
version: 0.0.1
type: object

Ensemble de données

system.Dataset représente un conteneur de données qui a été consommé ou produit par une étape de workflow de ML. Un ensemble de données peut pointer vers un emplacement de fichier ou une requête, par exemple un URI 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'."

Modèle

system.Model représente un modèle entraîné. L'URI du modèle peut pointer vers un emplacement de fichier (PPP, bucket Cloud Storage, lecteur local) ou une ressource d'API, telle que la ressource Model dans l'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étriques

system.Metrics représente les métriques d'évaluation générées lors d'un workflow de ML. Les métriques dépendent de vos applications et de vos cas d'utilisation. Elles peuvent être constituées de métriques scalaires simples, telles que des justesses ou des métriques complexes stockées ailleurs dans le système.

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."

Étapes suivantes