各メタデータ リソースは、特定の 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
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION_ID: 使用するリージョン。
- PROJECT_ID: 実際のプロジェクト ID。
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_format
と container_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."