システム スキーマ

各メタデータ リソースは、特定の MetadataSchema に関連付けられます。メタデータ リソースの作成プロセスを簡素化するために、Vertex ML Metadata では、一般的な ML のコンセプトに対応するシステム スキーマという事前定義のタイプを公開しています。システム スキーマは名前空間 system に存在します。システム スキーマは、Vertex ML Metadata API の MetadataSchema リソースとしてアクセスできます。スキーマは常にバージョニングされます。システム スキーマの形式は OpenAPI 3.0 仕様のサブセットです。

システム スキーマの使用方法

Vertex AI は、システム スキーマを使用して ML ワークフローを追跡するメタデータ リソースを作成します。その後、schema_title フィールドを使用して、メタデータ フィールド内のリソースをフィルタリングしてグループ化できます。フィルタ関数の使用方法については、Vertex ML Metadata の分析をご覧ください。

また、Vertex ML Metadata API でシステム スキーマを使用して、メタデータ リソースを直接作成することもできます。システム スキーマは、スキーマ タイトルとスキーマ バージョンによって識別できます。システム スキーマ内のフィールドは常にオプションとみなされます。システム スキーマの事前定義フィールドに制限されることはなく、任意のメタデータを任意のメタデータ リソースに記録できます。システム スキーマを使用してメタデータ リソースを作成する方法については、Vertex ML Metadata の追跡をご覧ください。

スキーマを一覧表示する

既存のすべての登録済みスキーマのリストを表示するには、次のコマンドを使用します。

REST

リクエストのデータを使用する前に、次のように置き換えます。

HTTP メソッドと 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

リクエストを送信するには、次のいずれかのオプションを開きます。

次のような JSON レスポンスが返されます。

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

厳密なスキーマ マッチング

Vertex ML Metadata は、スキーマ作成者が厳密なスキーマ マッチングを適用できる 2 つのフラグをサポートしています。

additionalProperties

additionalProperties の値は true または false です。JSON スキーマに合わせて、additionalProperties はデフォルトで true に設定されています。このフラグは、スキーマの最上位に設定されます。false に設定した場合は、省略可能なプロパティは使用できません。たとえば、次のスキーマの場合、このスキーマに基づくメタデータで payload_formatcontainer_format フィールドのみがサポートされます。

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

上記のスキーマは、次のメタデータを受け入れます。

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

ただし、次のメタデータは拒否されます。

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

required キーワードには、0 個以上の文字列の配列を指定します。JSON スキーマにより、properties キーワードで定義されたプロパティは不要です。required キーワードを使用して、必須プロパティのリストを指定できます。たとえば、次のスキーマには常に container_format が必要です。ネストされたプロパティでも機能します。たとえば、次のように container_format は必須になります。

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

上記のスキーマは、次のメタデータを受け入れます。

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

ただし、次のメタデータは拒否されます。

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

スキーマは、オブジェクト型のフィールドを持つネストされたプロパティをサポートします。ネストされたスキーマでは、ネストされたプロパティ ノードに required キーワードを含めることができます。次に例を示します。

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

上記のスキーマは、nested_property フィールド自体が不要なため、次のメタデータを受け入れます。

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

以下のメタデータも有効です。

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

ただし、次のメタデータは拒否されます。

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

システム スキーマの例

次に、すぐに使用できる一般的なシステム スキーマの例を示します。

アーティファクト

system.Artifact は、アーティファクトに関するメタデータを保持できる汎用スキーマです。このスキーマには特定のフィールドが定義されていません。

title: system.Artifact
version: 0.0.1
type: object

データセット

system.Dataset は、ML ワークフロー ステップで使用または生成されたデータのコンテナを表します。データセットは、ファイルの場所やクエリ(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'."

モデル

system.Model はトレーニング済みモデルを表します。モデルの URI は、ファイルの場所(PPP、Cloud Storage バケット、ローカル ドライブ)または API リソース(Vertex AI API の Model リソースなど)を指すことができます。

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

指標

system.Metrics は、ML ワークフロー中に生成される評価指標を表します。指標はアプリケーションとユースケースに応じて異なります。精度などの単純なスカラー指標でされている場合も、システムの他の場所に保存されている複雑な指標で構成される場合もあります。

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

次のステップ