Systemschemas

Jede Metadatenressource ist einem bestimmten MetadataSchema zugeordnet. Damit der Erstellungsprozess von Metadatenressourcen einfacher wird, werden von Vertex ML Metadata vordefinierte Typen namens Systemschemas für gängige ML-Konzepte veröffentlicht. Systemschemas befinden sich unter dem Namespace system. Sie können auf Systemschemas als MetadataSchema-Ressourcen in der Vertex ML Metadata API zugreifen. Schemas sind immer versioniert. Das Format von Systemschemas ist eine Teilmenge der OpenAPI 3.0-Spezifikation.

Systemschemas verwenden

Vertex AI verwendet Systemschemas, um Metadatenressourcen zum Verfolgen Ihrer ML-Workflows zu erstellen. Anschließend können Sie mithilfe des Felds schema_title Ressourcen in Metadatenabfragen filtern und gruppieren. Weitere Informationen zur Verwendung von Filterfunktionen finden Sie unter ML-Metadaten analysieren.

Sie können Systemschemas auch über die Vertex ML Metadata API verwenden, um Metadatenressourcen direkt zu erstellen. Sie können ein Systemschema anhand seines Schematitels und seiner Schemaversion identifizieren. Felder in Systemschemas werden immer als optional angesehen. Sie sind nicht auf die vordefinierten Felder von Systemschemas beschränkt und können weitere beliebige Metadaten in einer Metadatenressource protokollieren. Weitere Informationen zur Verwendung von Systemschemas zum Erstellen von Metadatenressourcen finden Sie unter Vertex ML-Metadaten verfolgen.

Schemas auflisten

So rufen Sie eine Liste aller vorhandenen registrierten Schemas mit dem folgenden Befehl auf:

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION_ID: Ihre Region.
  • PROJECT_ID: Ihre Projekt-ID.

HTTP-Methode und 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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

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

Strikter Schemaabgleich

Vertex ML Metadata unterstützt zwei Flags, mit denen Schemaautoren den strikten Schemaabgleich erzwingen können.

additionalProperties

Der Wert additionalProperties kann „true“ oder „false“ sein. In Übereinstimmung mit dem JSON-Schema ist additionalProperties standardmäßig auf „true“ gesetzt. Dieses Flag wird auf oberster Ebene des Schemas festgelegt. Wenn es auf „false“ gesetzt ist, sind keine optionalen Attribute zulässig. Im folgenden Schema werden beispielsweise nur die Felder payload_format und container_format in den Metadaten anhand dieses Schemas akzeptiert.

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

Das obige Schema akzeptiert folgende Metadaten:

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

Die folgenden Metadaten werden jedoch abgelehnt:

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

Für das Keyword required wird ein Array aus null oder mehr Strings verwendet. In Übereinstimmung mit dem JSON-Schema sind die durch das Attribut „Schlüsselwort“ definierten Attribute nicht erforderlich. Mit dem Schlüsselwort required können Sie eine Liste der erforderlichen Properties bereitstellen. Das folgende Schema erfordert beispielsweise immer container_format. Funktioniert auch mit verschachtelten Properties. Im folgenden Beispiel ist container_format erforderlich.

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

Das obige Schema akzeptiert folgende Metadaten:

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

Die folgenden Metadaten werden jedoch abgelehnt:

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

Das Schema unterstützt verschachtelte Attribute, bei denen Attribute ein Feld vom Typ „Objekt“ haben. In einem verschachtelten Schema kann der verschachtelte Attributknoten das Schlüsselwort required haben. Beispiel:

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

Das obige Schema akzeptiert die folgenden Metadaten, da das Feld nested_property selbst nicht erforderlich ist.

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

Die folgenden Metadaten sind ebenfalls gültig.

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

Die folgenden Metadaten werden jedoch abgelehnt:

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

Beispiele für Systemschemas

Die folgenden Beispiele sind gängige Systemschemas, die sofort verwendet werden können.

Artefakt

system.Artifact ist ein generisches Schema, das Metadaten zu jedem Artefakt enthalten kann. In diesem Schema sind keine bestimmten Felder definiert.

title: system.Artifact
version: 0.0.1
type: object

Dataset

system.Dataset steht für einen Datencontainer, der entweder von einem ML-Workflow-Schritt verbraucht oder erstellt wurde. Ein Dataset kann entweder auf einen Dateispeicherort oder eine Abfrage verweisen, z. B. einen 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'."

Modell

system.Model steht für ein trainiertes Modell. Der URI des Modells kann auf einen Dateispeicherort (PPP, Cloud Storage-Bucket, lokales Laufwerk) oder eine API-Ressource wie die Modellressource in der Vertex AI API verweisen.

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

Messwerte

system.Metrics steht für Bewertungsmesswerte, die während eines ML-Workflows erstellt wurden. Die Messwerte sind abhängig von Anwendungen und Anwendungsfällen und können aus einfachen skalaren Messwerten wie der Genauigkeit oder komplexen Messwerten bestehen, die an anderer Stelle im System gespeichert sind.

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

Nächste Schritte