管理机器学习元数据

本指南演示了如何管理机器学习元数据。

准备工作

第一次在 Google Cloud 项目中使用 Vertex ML Metadata 时,Vertex AI 会创建项目的元数据存储区。

如果您希望使用 CMEK(客户管理的加密密钥)对元数据进行加密,则必须先使用 CMEK 创建元数据存储区,然后再使用 Vertex ML Metadata 跟踪或分析元数据。按照创建使用 CMEK 的元数据存储区中的说明配置项目的元数据存储区。

工件管理

创建工件

按照以下说明创建工件。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:您的区域。
  • PROJECT:您的项目 ID 或项目编号。
  • METADATA_STORE:在其中创建工件的元数据存储区的 ID。默认元数据存储区名为 default
  • ARTIFACT_ID:(可选)工件记录的 ID。如果未指定工件 ID,Vertex ML Metadata 会为此工件创建一个唯一标识符。
  • DISPLAY_NAME:工件的显示名称。此字段最多可包含 128 个 Unicode 字符。
  • URI:(可选)工件的存储位置。
  • ARTIFACT_STATE:(可选)状态枚举中的值,表示工件的当前状态。此字段由客户端应用管理。Vertex ML Metadata 不会检查状态转换的有效性。
  • METADATA_SCHEMA_TITLE:描述元数据字段的架构的标题。
  • METADATA_SCHEMA_VERSION:(可选)描述元数据字段的架构的版本。
  • METADATA:(可选)描述工件的属性,例如数据集类型。
  • DESCRIPTION:(可选)执行作业的说明。

HTTP 方法和网址:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/artifacts?artifactId=ARTIFACT_ID

请求 JSON 正文:

{
  "displayName": "DISPLAY_NAME",
  "uri": "URI",
  "state": "ARTIFACT_STATE",
  "schemaTitle": "METADATA_SCHEMA_TITLE",
  "schemaVersion": "METADATA_SCHEMA_VERSION",
  "metadata": {
    METADATA
  },
  "description": "DESCRIPTION"
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/12345/locations/us-central1/metadataStores/default/artifacts/example-artifact",
  "displayName": "Example artifact",
  "uri": "gs://your_bucket_name/artifacts/dataset.csv",
  "etag": "67891011",
  "createTime": "2021-05-18T00:29:24.344Z",
  "updateTime": "2021-05-18T00:29:24.344Z",
  "state": "LIVE",
  "schemaTitle": "system.Dataset",
  "schemaVersion": "0.0.1",
  "metadata": {
    "payload_format": "CSV"
  },
  "description": "Description of the example artifact."
}

查询现有工件

工件代表机器学习工作流使用或生成的数据,例如数据集和模型。按照以下说明查询现有工件。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:您的区域。
  • PROJECT:您的项目 ID 或项目编号。
  • METADATA_STORE:在其中创建工件的元数据存储区的 ID。默认元数据存储区名为 default
  • PAGE_SIZE:(可选)要返回的最大工件数。如果未指定此值,则最多返回 100 条记录。
  • PAGE_TOKEN:(可选)来自之前 MetadataService.ListArtifacts 调用的页面令牌。指定此令牌可获取下一页结果。
  • FILTER:指定将工件包括在结果集中所需的条件。

HTTP 方法和网址:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/artifacts?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "artifacts": [
    {
      "name": "projects/12345/locations/us-central1/metadataStores/default/artifacts/example-artifact",
      "displayName": "Example artifact",
      "uri": "gs://your_bucket_name/artifacts/dataset.csv",
      "etag": "67891011",
      "createTime": "2021-05-18T00:33:13.833Z",
      "updateTime": "2021-05-18T00:33:13.833Z",
      "state": "LIVE",
      "schemaTitle": "system.Dataset",
      "schemaVersion": "0.0.1",
      "metadata": {
        "payload_format": "CSV"
      },
      "description": "Description of the example artifact."
    },
    {
      "name": "projects/12345/locations/us-central1/metadataStores/default/artifacts/example-artifact-2",
      "displayName": "Another example artifact",
      "uri": "gs://your_bucket_name/artifacts/dataset-2.csv",
      "etag": "67891012",
      "createTime": "2021-05-18T00:29:24.344Z",
      "updateTime": "2021-05-18T00:29:24.344Z",
      "state": "LIVE",
      "schemaTitle": "system.Dataset",
      "schemaVersion": "0.0.1",
      "metadata": {
        "payload_format": "CSV"
      },
      "description": "Description of the other example artifact."
    }
  ]
}

删除现有工件

按照以下说明删除工件。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:您的区域。
  • PROJECT:您的项目 ID 或项目编号。
  • METADATA_STORE:在其中创建工件的元数据存储区的 ID。默认元数据存储区名为 default
  • ARTIFACT_ID:要删除的工件记录的 ID。

HTTP 方法和网址:

DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID/operations/85544",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.DeleteOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T20:05:30.179713Z",
      "updateTime": "2021-07-21T20:05:30.179713Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

完全清除工件

按照以下说明根据过滤条件删除多个工件。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:您的区域。
  • PROJECT:您的项目 ID 或项目编号。
  • METADATA_STORE:在其中创建工件的元数据存储区的 ID。默认元数据存储区名为 default
  • FILTER:指定要删除的工件所需的条件。例如:
    • 过滤显示名称中包含 example 的所有工件:"display_name = \"*example*\""
    • 过滤 2020-11-19T11:30:00-04:00 之前创建的所有工件:"create_time < \"2020-11-19T11:30:00-04:00\""
  • FORCE:指示是否执行实际完全清除。如果该标志设置为 false,则该方法将返回要删除的工件名称示例。

HTTP 方法和网址:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/artifacts:purge

请求 JSON 正文:

{
  "filter": "FILTER",
  "force": FORCE
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/operations/11531",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.PurgeArtifactsMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T21:02:33.757991Z",
      "updateTime": "2021-07-21T21:02:33.757991Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.PurgeArtifactsResponse",
    "purgeCount": "15"
  }
}

执行管理

创建执行任务

执行作业代表机器学习工作流中的一个步骤。按照以下说明创建执行作业。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:您的区域。
  • PROJECT:您的项目 ID 或项目编号。
  • METADATA_STORE:在其中创建执行作业的元数据存储区的 ID。默认元数据存储区名为 default
  • EXECUTION_ID:(可选)执行作业记录的 ID。如果未指定执行作业 ID,则 Vertex ML Metadata 会为执行作业创建一个唯一标识符。
  • DISPLAY_NAME:执行作业的显示名。此字段最多可包含 128 个 Unicode 字符。
  • EXECUTION_STATE:(可选)状态枚举中的值,表示执行的当前状态。此字段由客户端应用管理。Vertex ML Metadata 不会检查状态转换的有效性。
  • METADATA_SCHEMA_TITLE:描述元数据字段的架构的标题。
  • METADATA_SCHEMA_VERSION:(可选)描述元数据字段的架构的版本。
  • METADATA:(可选)描述执行作业的属性,例如执行参数。
  • DESCRIPTION:(可选)执行作业的说明。

HTTP 方法和网址:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/executions?executionId=EXECUTION_ID

请求 JSON 正文:

{
  "displayName": "DISPLAY_NAME",
  "state": "EXECUTION_STATE",
  "schemaTitle": "METADATA_SCHEMA_TITLE",
  "schemaVersion": "METADATA_SCHEMA_VERSION",
  "metadata": {
    METADATA
  },
  "description": "DESCRIPTION"
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/12345/locations/us-central1/metadataStores/default/executions/example-execution",
  "displayName": "Example Execution",
  "etag": "67891011",
  "createTime": "2021-05-18T00:04:49.659Z",
  "updateTime": "2021-05-18T00:04:49.659Z",
  "schemaTitle": "system.Run",
  "schemaVersion": "0.0.1",
  "metadata": {},
  "description": "Description of the example execution."
}

查找现有执行

按照以下说明查询现有执行。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:您的区域。
  • PROJECT:您的项目 ID 或项目编号。
  • METADATA_STORE:在其中创建执行作业的元数据存储区的 ID。默认元数据存储区名为 default
  • PAGE_SIZE:(可选)要返回的最大执行数。如果未指定此值,则最多返回 100 条记录。
  • PAGE_TOKEN:(可选)来自之前 MetadataService.ListExecutions 调用的页面令牌。指定此令牌可获取下一页结果。
  • FILTER:指定将执行作业包括在结果集中所需的条件。

HTTP 方法和网址:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/executions?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "executions": [
    {
      "name": "projects/12345/locations/us-central1/metadataStores/default/executions/example-execution-1",
      "displayName": "Example execution 1",
      "etag": "67891011",
      "createTime": "2021-05-18T00:06:56.177Z",
      "updateTime": "2021-05-18T00:06:56.177Z",
      "schemaTitle": "system.Run",
      "schemaVersion": "0.0.1",
      "metadata": {},
      "description": "Descrption of the example execution."
    },
    {
      "name": "projects/12345/locations/us-central1/metadataStores/default/executions/example-execution-2",
      "displayName": "Example execution 2",
      "etag": "67891011",
      "createTime": "2021-05-18T00:04:49.659Z",
      "updateTime": "2021-05-18T00:04:49.659Z",
      "schemaTitle": "system.Run",
      "schemaVersion": "0.0.1",
      "metadata": {},
      "description": "Descrption of the example execution."
    }
  ]
}

删除现有执行

按照以下说明删除执行。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:您的区域。
  • PROJECT:您的项目 ID 或项目编号。
  • METADATA_STORE:在其中创建执行作业的元数据存储区的 ID。默认元数据存储区名为 default
  • EXECUTION_ID:要删除的执行记录的 ID。

HTTP 方法和网址:

DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/executions/EXECUTION_ID

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/executions/EXECUTION_ID/operations/85544",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.DeleteOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T20:05:30.179713Z",
      "updateTime": "2021-07-21T20:05:30.179713Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

完全清除执行

按照以下说明根据过滤条件删除多个执行。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:您的区域。
  • PROJECT:您的项目 ID 或项目编号。
  • METADATA_STORE:在其中创建执行作业的元数据存储区的 ID。默认元数据存储区名为 default
  • FILTER:指定要删除的执行所需的条件。例如:
    • 过滤显示名称中包含 example 的所有执行:"display_name = \"*example*\""
    • 过滤 2020-11-19T11:30:00-04:00 之前创建的所有执行:"create_time < \"2020-11-19T11:30:00-04:00\""
  • FORCE:指示是否执行实际完全清除。如果该标志设置为 false,则该方法将返回要删除的执行名称示例。

HTTP 方法和网址:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/executions:purge

请求 JSON 正文:

{
  "filter": "FILTER",
  "force": FORCE
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/operations/11531",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.PurgeExecutionsMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T21:02:45.757991Z",
      "updateTime": "2021-07-21T21:02:45.757991Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.PurgeExecutionsResponse",
    "purgeCount": "2"
  }
}

上下文管理

创建上下文

借助上下文,您可以将工件和执行作业集组合在一起。按照以下说明创建上下文。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:您的区域。
  • PROJECT:您的项目 ID 或项目编号。
  • METADATA_STORE:在其中创建执行作业的元数据存储区的 ID。默认元数据存储区名为 default
  • CONTEXT_ID:(可选)上下文记录的 ID。如果未指定上下文 ID,则 Vertex ML Metadata 会为此上下文创建一个唯一标识符。
  • DISPLAY_NAME:上下文的显示名称。此字段最多可包含 128 个 Unicode 字符。
  • 为任何父级上下文指定 PARENT_CONTEXT 资源名称。一个上下文包含的父级上下文不能超过 10 个。
  • METADATA_SCHEMA_TITLE:描述元数据字段的架构的标题。
  • METADATA_SCHEMA_VERSION:(可选)描述元数据字段的架构的版本。
  • METADATA:(可选)描述上下文的属性。
  • DESCRIPTION:(可选)执行作业的说明。

HTTP 方法和网址:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/contexts?contextId=CONTEXT_ID

请求 JSON 正文:

{
  "displayName": "DISPLAY_NAME:",
  "parentContexts": [
    "PARENT_CONTEXT_1",
    "PARENT_CONTEXT_2"
  ],
  "schemaTitle": "METADATA_SCHEMA_TITLE",
  "schemaVersion": "METADATA_SCHEMA_VERSION",
  "metadata": {
    METADATA
  },
  "description": "DESCRIPTION"
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/12345/locations/us-central1/metadataStores/default/contexts/example-context",
  "displayName": "Example context:",
  "etag": "67891011",
  "createTime": "2021-05-18T01:52:51.642Z",
  "updateTime": "2021-05-18T01:52:51.642Z",
  "schemaTitle": "system.Experiment",
  "schemaVersion": "0.0.1",
  "metadata": {},
  "description": "Description of the example context."
}

查找现有上下文

按照以下说明查询现有上下文。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:您的区域。
  • PROJECT:您的项目 ID 或项目编号。
  • METADATA_STORE:在其中创建上下文的元数据存储区的 ID。默认元数据存储区名为 default
  • PAGE_SIZE:(可选)要返回的最大上下文数。如果未指定此值,则最多返回 100 条记录。
  • PAGE_TOKEN:(可选)来自之前 MetadataService.ListExecutions 调用的页面令牌。指定此令牌可获取下一页结果。
  • FILTER:指定将上下文包括在结果集中所需的条件。

HTTP 方法和网址:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/contexts?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "contexts": [
    {
      "name": "projects/12345/locations/us-central1/metadataStores/default/contexts/experiment-1",
      "displayName": "Experiment 1",
      "etag": "67891011",
      "createTime": "2021-05-18T22:36:02.153Z",
      "updateTime": "2021-05-18T22:36:02.153Z",
      "parentContexts": [],
      "schemaTitle": "system.Experiment",
      "schemaVersion": "0.0.1",
      "metadata": {}
    },
    {
      "name": "projects/12345/locations/us-central1/metadataStores/default/contexts/pipeline-run-1",
      "displayName": "Pipeline run 1",
      "etag": "67891011",
      "createTime": "2021-05-18T22:35:02.600Z",
      "updateTime": "2021-05-18T22:35:02.600Z",
      "parentContexts": [],
      "schemaTitle": "system.PipelineRun",
      "schemaVersion": "0.0.1",
      "metadata": {}
    }
  ]
}

删除现有上下文

按照以下说明删除上下文。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:您的区域。
  • PROJECT:您的项目 ID 或项目编号。
  • METADATA_STORE:在其中创建上下文的元数据存储区的 ID。默认元数据存储区名为 default
  • CONTEXT_ID:要删除的上下文记录的 ID。

HTTP 方法和网址:

DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/contexts/CONTEXT_ID

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/contexts/CONTEXT_ID/operations/85544",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.DeleteOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T20:05:30.179713Z",
      "updateTime": "2021-07-21T20:05:30.179713Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

完全清除上下文

按照以下说明根据过滤条件删除多个上下文。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:您的区域。
  • PROJECT:您的项目 ID 或项目编号。
  • METADATA_STORE:在其中创建上下文的元数据存储区的 ID。默认元数据存储区名为 default
  • FILTER:指定要删除的上下文所需的条件。例如:
    • 过滤显示名称中包含 example 的所有上下文:"display_name = \"*example*\""
    • 过滤 2020-11-19T11:30:00-04:00 之前创建的所有上下文:"create_time < \"2020-11-19T11:30:00-04:00\""
  • FORCE:指示是否执行实际完全清除。如果该标志设置为 false,则该方法将返回要删除的上下文名称示例。

HTTP 方法和网址:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/contexts:purge

请求 JSON 正文:

{
  "filter": "FILTER",
  "force": FORCE
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT/locations/LOCATION/metadataStores/METADATA_STORE/operations/11531",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.PurgeContextsMetadata",
    "genericMetadata": {
      "createTime": "2021-07-21T21:02:40.757991Z",
      "updateTime": "2021-07-21T21:02:40.757991Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.PurgeContextsResponse",
    "purgeCount": "5"
  }
}

后续步骤