System schemas

Each metadata resource is associated with a specific MetadataSchema . To simplify the metadata resource creation process Vertex ML Metadata publishes predefined types called system schemas for common ML concepts. System schemas live under the namespace system . You can access system schemas as MetadataSchema resources in the Vertex ML Metadata API. Schemas are always versioned. The format of system schemas is a subset of the OpenAPI 3.0 specification .

How to use system schemas

Vertex AI uses system schemas to create metadata resources for tracking your ML workflows. You can then filter and group resources in metadata queries by using the schema_title field. For more information about how to use filter functions, see Analyze Vertex ML Metadata .

You can also use system schemas through the Vertex ML Metadata API to create metadata resources directly. You can identify a system schema by its schema title and schema version. Fields in system schemas are always considered optional. You aren't restricted to the predefined fields of system schemas and can also log additional arbitrary metadata to any metadata resource. For more information about using system schemas to create metadata resources, see Track Vertex ML Metadata .

List your schemas

To view a list of all your existing registered schemas using the following command.

REST

Before using any of the request data, make the following replacements:

  • LOCATION_ID : Your region.
  • PROJECT_ID : Your project ID .

HTTP method and 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

To send your request, expand one of these options:

You should receive a JSON response similar to the following:

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

Strict schema matching

Vertex ML Metadata supports two flags that allow schema authors to enforce strict schema matching.

additionalProperties

The additionalProperties value can be true or false. Consistent with JSON Schema, additionalProperties defaults to true. This flag is set at the top level of the schema. If it's set to false, no optional properties are allowed. For example in the below schema, only the fields payload_format and container_format are accepted in the metadata based on this schema.

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

The above schema accepts the following metadata:

  f 
 ields 
  
 { 
  
 key 
 : 
  
 'co 
 nta 
 i 
 ner 
 _ 
 f 
 orma 
 t 
 ' 
  
 value 
 : 
  
 { 
  
 s 
 tr 
 i 
 n 
 g_value 
 : 
  
 'Tex 
 t 
 ' 
  
 } 
 } 
 f 
 ields 
  
 { 
  
 key 
 : 
  
 'payload_ 
 f 
 orma 
 t 
 ' 
  
 value 
 : 
  
 { 
  
 s 
 tr 
 i 
 n 
 g_value 
 : 
  
 'CSV' 
  
 } 
 } 
 

However following metadata will be rejected:

  f 
 ields 
  
 { 
  
 key 
 : 
  
 'co 
 nta 
 i 
 ner 
 _ 
 f 
 orma 
 t 
 ' 
  
 value 
 : 
  
 { 
  
 s 
 tr 
 i 
 n 
 g_value 
 : 
  
 'Tex 
 t 
 ' 
  
 } 
 } 
 f 
 ields 
  
 { 
  
 key 
 : 
  
 'payload_ 
 f 
 orma 
 t 
 ' 
  
 value 
 : 
  
 { 
  
 s 
 tr 
 i 
 n 
 g_value 
 : 
  
 'CSV' 
  
 } 
 } 
 f 
 ields 
  
 { 
  
 key 
 : 
  
 'op 
 t 
 io 
 nal 
 _ 
 f 
 ield' 
  
 value 
 : 
  
 { 
  
 s 
 tr 
 i 
 n 
 g_value 
 : 
  
 'op 
 t 
 io 
 nal 
 _value' 
  
 } 
 } 
 

required

The required keyword takes an array of zero or more strings. Consistent with JSON Schema, the properties defined by the properties keyword are not required. You can provide a list of required properties using the required keyword. For example the following schema always requires container_format . Works on nested properties as well. For example following makes the container_format required.

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

The above schema accepts the following metadata:

  f 
 ields 
  
 { 
  
 key 
 : 
  
 'co 
 nta 
 i 
 ner 
 _ 
 f 
 orma 
 t 
 ' 
  
 value 
 : 
  
 { 
  
 s 
 tr 
 i 
 n 
 g_value 
 : 
  
 'Tex 
 t 
 ' 
  
 } 
 } 
 

However following metadata will be rejected:

  f 
 ields 
  
 { 
  
 key 
 : 
  
 'payload_ 
 f 
 orma 
 t 
 ' 
  
 value 
 : 
  
 { 
  
 s 
 tr 
 i 
 n 
 g_value 
 : 
  
 'CSV' 
  
 } 
 } 
 

The schema supports nested properties where properties has a field of type object. In a nested schema, the nested properties node can have a required keyword. For example:

  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 
 

The above schema accepts the following metadata, since the nested_property field itself is not required.

  f 
 ields 
  
 { 
  
 key 
 : 
  
 'co 
 nta 
 i 
 ner 
 _ 
 f 
 orma 
 t 
 ' 
  
 value 
 : 
  
 { 
  
 s 
 tr 
 i 
 n 
 g_value 
 : 
  
 'Tex 
 t 
 ' 
  
 } 
 } 
 

Following metadata is also valid.

  f 
 ields 
  
 { 
  
 key 
 : 
  
 ' 
 neste 
 d_proper 
 t 
 y' 
  
 value 
 : 
  
 { 
  
 s 
 tru 
 c 
 t 
 _value 
  
 { 
  
 f 
 ields 
  
 { 
  
 key 
 : 
  
 'proper 
 t 
 y_ 
 1 
 ' 
  
 value 
 : 
  
 { 
  
 nu 
 mber_value 
 : 
  
 1 
  
 } 
  
 } 
  
 f 
 ields 
  
 { 
  
 key 
 : 
  
 'proper 
 t 
 y_ 
 2 
 ' 
  
 value 
 : 
  
 { 
  
 nu 
 mber_value 
 : 
  
 1 
  
 } 
  
 } 
  
 } 
  
 } 
 } 
 

However following metadata will be rejected:

  f 
 ields 
  
 { 
  
 key 
 : 
  
 ' 
 neste 
 d_proper 
 t 
 y' 
  
 value 
 : 
  
 { 
  
 s 
 tru 
 c 
 t 
 _value 
  
 { 
  
 f 
 ields 
  
 { 
  
 key 
 : 
  
 'proper 
 t 
 y_ 
 2 
 ' 
  
 value 
 : 
  
 { 
  
 nu 
 mber_value 
 : 
  
 1 
  
 } 
  
 } 
  
 } 
  
 } 
 } 
 

System schema examples

The following examples are common system schemas that are available for immediate use.

Artifact

system.Artifact is a generic schema that can hold metadata about any artifact. No specific fields are defined in this schema.

  title 
 : 
  
 system.Artifact 
 version 
 : 
  
 0.0.1 
 type 
 : 
  
 object 
 

Dataset

system.Dataset represents a container of data that was either consumed or produced by an ML workflow step. A dataset can point to either a file location or a query, for example a BigQuery URI.

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

Model

system.Model represents a trained model. The URI of the model can point to a file location (PPP, Cloud Storage bucket, local drive) or an API resource such as the Model resource in Vertex AI API.

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

Metrics

system.Metrics represents evaluation metrics produced during an ML workflow. Metrics are application and use case dependent and can consist of simple scalar metrics like accuracy or complex metrics that are stored elsewhere in the system.

  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?

Create a Mobile Website
View Site in Mobile | Classic
Share by: