Vertex ML Metadata 관리

이 가이드에서는 Vertex ML Metadata를 관리하는 방법을 설명합니다.

시작하기 전에

Google Cloud 프로젝트에서 Vertex ML Metadata를 처음 사용하면 Vertex AI가 프로젝트의 메타데이터 저장소를 만듭니다.

고객 관리 암호화 키(CMEK)를 사용하여 메타데이터를 암호화하려면 Vertex ML 메타데이터를 사용하여 메타데이터를 추적하거나 분석하기 전에 CMEK를 사용하여 메타데이터 저장소를 만들어야 합니다. CMEK를 사용하는 메타데이터 저장소 만들기 안내에 따라 프로젝트의 메타데이터 저장소를 구성합니다.

아티팩트 관리

아티팩트 만들기

REST 또는 Python용 Vertex AI SDK를 사용하여 아티팩트를 만듭니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION_ID: 리전
  • PROJECT_ID: 프로젝트 ID
  • METADATA_STORE: 아티팩트가 생성되는 메타데이터 저장소 ID입니다. 기본 메타데이터 저장소 이름은 default로 지정됩니다.
  • ARTIFACT_ID: (선택사항) 아티팩트 레코드의 ID입니다. 아티팩트 ID를 지정하지 않으면 Vertex ML Metadata에서 이 아티팩트의 고유 식별자를 만듭니다.
  • DISPLAY_NAME: (선택사항) 아티팩트의 사용자 정의 이름입니다.
  • URI: (선택 사항) 아티팩트가 저장되는 위치입니다.
  • ARTIFACT_STATE: (선택 사항) 아티팩트의 현재 상태를 나타내는 상태 열거의 값입니다. 클라이언트 애플리케이션에서 이 필드를 관리합니다. Vertex ML Metadata에서는 상태 변환의 유효성을 확인하지 않습니다.
  • METADATA_SCHEMA_TITLE: 메타데이터 필드를 설명하는 스키마의 제목입니다. 스키마 제목이 `.` 형식을 충족해야 합니다. 네임스페이스는 소문자로 시작해야 하며 소문자와 숫자를 포함할 수 있고 2~20자 사이여야 합니다. 스키마 이름은 대문자로 시작해야 하고, 문자 및 숫자를 포함할 수 있으며, 길이가 2~49자일 수 있습니다.
  • METADATA_SCHEMA_VERSION: (선택사항) 메타데이터 필드를 설명하는 스키마의 버전입니다. schema_version은 1.0.0, 1.0.1과 같이 마침표로 구분된 3개 숫자로 된 문자열이어야 합니다. 이 형식은 버전 정렬 및 비교를 도와줍니다.
  • METADATA: (선택사항) 데이터 세트 유형과 같은 아티팩트를 설명하는 속성입니다.
  • DESCRIPTION: (선택사항) 사람이 읽을 수 있는 문자열로서, 실행을 만드는 목적을 설명합니다.
  • LABELS: (선택사항) 아티팩트를 구성하는 사용자 정의 메타데이터입니다.

HTTP 메서드 및 URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/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
  },
  "labels": {"LABEL_1":"LABEL_2"},
  "description": "DESCRIPTION"
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/default/artifacts/ARTIFACT_ID",
  "displayName": "Example artifact",
  "uri": "gs://your_bucket_name/artifacts/dataset.csv",
  "etag": "67891011",
  "labels": {
    "test_label": "test_label_value"
  },
  "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."
}

Python

Python

from typing import Dict, Optional

from google.cloud.aiplatform.metadata.schema.system import artifact_schema


def create_artifact_sample(
    project: str,
    location: str,
    uri: Optional[str] = None,
    artifact_id: Optional[str] = None,
    display_name: Optional[str] = None,
    schema_version: Optional[str] = None,
    description: Optional[str] = None,
    metadata: Optional[Dict] = None,
):
    system_artifact_schema = artifact_schema.Artifact(
        uri=uri,
        artifact_id=artifact_id,
        display_name=display_name,
        schema_version=schema_version,
        description=description,
        metadata=metadata,
    )
    return system_artifact_schema.create(project=project, location=location,)
  • project: 프로젝트 ID입니다. 이러한 ID는 Google Cloud 콘솔 시작 페이지에서 찾을 수 있습니다.
  • location: 사용 가능한 위치 목록을 참조하세요.
  • uri: (선택사항) 아티팩트 파일의 동일한 리소스 식별자입니다. 실제 아티팩트 파일이 없으면 비어 있을 수 있습니다.
  • artifact_id: (선택사항) 아티팩트 레코드의 ID입니다. 아티팩트 ID를 지정하지 않으면 Vertex ML Metadata에서 이 아티팩트의 고유 식별자를 만듭니다.
  • display_name: (선택사항) 아티팩트의 사용자 정의 이름입니다.
  • schema_version: 메타데이터 필드를 설명하는 스키마의 버전입니다.
  • description: (선택사항) 사람이 읽을 수 있는 문자열로서, 아티팩트를 만드는 목적을 설명합니다.
  • metadata: 아티팩트를 설명하는 속성(예: 아티팩트 매개변수)입니다.

기존 아티팩트 조회

아티팩트는 데이터 세트 및 모델과 같이 ML 워크플로에서 사용되거나 생성된 데이터를 나타냅니다. 기존 아티팩트를 조회하려면 REST 또는 Python용 Vertex AI SDK를 사용합니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION_ID: 리전
  • PROJECT_ID: 프로젝트 ID
  • METADATA_STORE: 아티팩트가 생성되는 메타데이터 저장소 ID입니다. 기본 메타데이터 저장소 이름은 default로 지정됩니다.
  • PAGE_SIZE: (선택사항) 반환할 최대 아티팩트 수입니다. 이 값을 지정하지 않으면 서비스에서 레코드를 최대 100까지 반환합니다.
  • PAGE_TOKEN: (선택사항) 이전 MetadataService.ListArtifacts 호출의 페이지 토큰입니다. 결과의 다음 페이지를 가져오려면 이 토큰을 지정하세요.
  • FILTER: 결과 집합에 아티팩트를 포함하는 데 필요한 조건을 지정합니다.

HTTP 메서드 및 URL:

GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 출력이 표시됩니다. ARTIFACT_ID는 아티팩트 레코드의 ID입니다.

{
  "artifacts": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/default/artifacts/ARTIFACT_ID",
      "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/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID",
      "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."
    }
  ]
}

Python

Python

from typing import Optional

from google.cloud import aiplatform


def list_artifact_sample(
    project: str,
    location: str,
    display_name_filter: Optional[str] = "display_name=\"my_model_*\"",
    create_date_filter: Optional[str] = "create_time>\"2022-06-11\"",
    order_by: Optional[str] = None,
):
    aiplatform.init(project=project, location=location)

    combined_filters = f"{display_name_filter} AND {create_date_filter}"
    return aiplatform.Artifact.list(
        filter=combined_filters,
        order_by=order_by,
    )

  • project: 프로젝트 ID입니다. 이러한 ID는 Google Cloud 콘솔 시작 페이지에서 찾을 수 있습니다.
  • location: 사용 가능한 위치 목록을 참조하세요.
  • display_name_filter: 표시 이름에 적용할 필터이며 "display_name=\"dcmmy_filter\"" 형식의 리소스를 나열합니다.
  • create_date_filter: create_date 이름에 적용할 필터이며 "create_time>\"2022-06-11T12:30:00-08:00\"" 형식의 리소스를 나열합니다.

기존 아티팩트 삭제

REST 또는 Python용 Vertex AI SDK를 사용하여 아티팩트를 삭제합니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION_ID: 리전
  • PROJECT_ID: 프로젝트 ID
  • METADATA_STORE: 아티팩트가 생성되는 메타데이터 저장소 ID입니다. 기본 메타데이터 저장소 이름은 default로 지정됩니다.
  • ARTIFACT_ID: 삭제할 아티팩트 레코드의 ID입니다.

HTTP 메서드 및 URL:

DELETE https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 출력이 표시됩니다. 응답의 OPERATION_ID를 사용하여 작업 상태를 가져올 수 있습니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.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"
  }
}

Python

Python

from google.cloud import aiplatform


def delete_artifact_sample(
    artifact_id: str,
    project: str,
    location: str,
):
    artifact = aiplatform.Artifact.get(
        resource_id=artifact_id, project=project, location=location
    )
    artifact.delete()

아티팩트 삭제

다음 안내에 따라 필터 조건을 기준으로 여러 아티팩트를 삭제합니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION_ID: 리전
  • PROJECT_ID: 프로젝트 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 메서드 및 URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts:purge

JSON 요청 본문:

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

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 출력이 표시됩니다. 응답의 OPERATION_ID를 사용하여 작업 상태를 가져올 수 있습니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.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.v1.PurgeArtifactsResponse",
    "purgeCount": "15"
  }
}

실행 관리

실행 만들기

실행은 ML 워크플로의 단계를 나타냅니다. REST 또는 Python용 Vertex AI SDK를 사용하여 실행을 만듭니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION_ID: 리전
  • PROJECT_ID: 프로젝트 ID
  • METADATA_STORE: 실행이 생성된 메타데이터 저장소 ID입니다. 기본 메타데이터 저장소 이름은 default로 지정됩니다.
  • EXECUTION_ID: 실행 레코드의 ID입니다. 실행 ID를 지정하지 않으면 Vertex ML Metadata에서 이 실행의 고유 식별자를 생성합니다.
  • DISPLAY_NAME: 실행의 표시 이름입니다. 이 필드에는 유니코드 문자가 최대 128자까지 포함될 수 있습니다.
  • EXECUTION_STATE: (선택사항) 실행의 현재 상태를 나타내는 상태 열거의 값입니다. 클라이언트 애플리케이션에서 이 필드를 관리합니다. Vertex ML Metadata에서는 상태 변환의 유효성을 확인하지 않습니다.
  • METADATA_SCHEMA_TITLE: 메타데이터 필드를 설명하는 스키마의 제목입니다. 스키마 제목이 `.` 형식을 충족해야 합니다. 네임스페이스는 소문자로 시작해야 하며 소문자와 숫자를 포함할 수 있고 2~20자 사이여야 합니다. 스키마 이름은 대문자로 시작해야 하고, 문자 및 숫자를 포함할 수 있으며, 길이가 2~49자일 수 있습니다.
  • METADATA_SCHEMA_VERSION: (선택사항) 메타데이터 필드를 설명하는 스키마의 버전입니다. schema_version은 1.0.0, 1.0.1과 같이 마침표로 구분된 3개 숫자로 된 문자열이어야 합니다. 이 형식은 버전 정렬 및 비교를 도와줍니다.
  • METADATA: (선택사항) 실행 매개변수와 같은 실행을 설명하는 속성입니다.
  • DESCRIPTION: (선택사항) 사람이 읽을 수 있는 문자열로서, 실행을 만드는 목적을 설명합니다.
  • LABELS: (선택사항) 실행을 구성하는 사용자 정의 메타데이터입니다.

HTTP 메서드 및 URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions?executionId=EXECUTION_ID

JSON 요청 본문:

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

}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
  "displayName": "Example Execution",
  "etag": "67891011",
  "labels": {
    "test_label": "test_label_value"
  },
  "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."
}

Python

Python

from typing import Any, Dict, List, Optional

from google.cloud import aiplatform
from google.cloud.aiplatform.metadata.schema.system import execution_schema


def create_execution_sample(
    display_name: str,
    input_artifacts: List[aiplatform.Artifact],
    output_artifacts: List[aiplatform.Artifact],
    project: str,
    location: str,
    execution_id: Optional[str] = None,
    metadata: Optional[Dict[str, Any]] = None,
    schema_version: Optional[str] = None,
    description: Optional[str] = None,
):
    aiplatform.init(project=project, location=location)

    with execution_schema.ContainerExecution(
        display_name=display_name,
        execution_id=execution_id,
        metadata=metadata,
        schema_version=schema_version,
        description=description,
    ).create() as execution:
        execution.assign_input_artifacts(input_artifacts)
        execution.assign_output_artifacts(output_artifacts)
        return execution
  • display_name: 실행의 표시 이름입니다. 이 필드에는 유니코드 문자가 최대 128자까지 포함될 수 있습니다.
  • input_artifacts: 입력 아티팩트를 나타내는 aiplatform.Artifact의 하나 이상의 인스턴스 목록입니다.
  • output_artifacts: 출력 아티팩트를 나타내는 aiplatform.Artifact의 하나 이상의 인스턴스 목록입니다.
  • project: 프로젝트 ID 이러한 ID는 Google Cloud 콘솔 시작 페이지에서 찾을 수 있습니다.
  • location: 사용 가능한 위치 목록을 참조하세요.
  • execution_id: 실행 레코드의 ID입니다. 실행 ID를 지정하지 않으면 Vertex ML Metadata에서 이 실행의 고유 식별자를 생성합니다.
  • metadata: 실행 매개변수와 같은 실행을 설명하는 속성입니다.
  • schema_version: 메타데이터 필드를 설명하는 스키마의 버전입니다.
  • description: (선택사항) 사람이 읽을 수 있는 문자열로서, 실행을 만드는 목적을 설명합니다.

기존 실행 조회

REST 또는 Python용 Vertex AI SDK를 사용하여 기존 실행을 조회합니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION_ID: 리전
  • PROJECT_ID: 프로젝트 ID
  • METADATA_STORE: 실행이 생성된 메타데이터 저장소 ID입니다. 기본 메타데이터 저장소 이름은 default로 지정됩니다.
  • PAGE_SIZE: (선택사항) 반환할 최대 아티팩트 수입니다. 이 값을 지정하지 않으면 서비스에서 레코드를 최대 100까지 반환합니다.
  • PAGE_TOKEN: (선택사항) 이전 MetadataService.ListArtifacts 호출의 페이지 토큰입니다. 결과의 다음 페이지를 가져오려면 이 토큰을 지정하세요.
  • FILTER: 결과 집합에 실행을 포함하는 데 필요한 조건을 지정합니다.

HTTP 메서드 및 URL:

GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 출력이 표시됩니다. EXECUTION_ID는 실행 레코드의 ID입니다.

{
  "executions": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
      "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": "Description of the example execution."
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
      "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": "Description of the example execution."
    }
  ]
}

Python

Python

from google.cloud import aiplatform


def get_execution_sample(
    execution_id: str,
    project: str,
    location: str,
):
    execution = aiplatform.Execution.get(
        resource_id=execution_id, project=project, location=location
    )

    return execution

기존 실행 삭제

REST 또는 Python용 Vertex AI SDK를 사용하여 실행을 삭제합니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION_ID: 리전
  • PROJECT_ID: 프로젝트 ID
  • METADATA_STORE: 실행이 생성된 메타데이터 저장소 ID입니다. 기본 메타데이터 저장소 이름은 default로 지정됩니다.
  • EXECUTION_ID: 삭제할 실행 레코드의 ID입니다.

HTTP 메서드 및 URL:

DELETE https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 출력이 표시됩니다. 응답의 OPERATION_ID를 사용하여 작업 상태를 가져올 수 있습니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.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"
  }
}

Python

Python

from google.cloud import aiplatform


def delete_execution_sample(
    execution_id: str,
    project: str,
    location: str,
):
    execution = aiplatform.Execution.get(
        resource_id=execution_id, project=project, location=location
    )
    execution.delete()

실행 삭제

필터를 기준으로 실행 여러 개를 삭제하려면 다음 안내를 따르세요.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION_ID: 리전
  • PROJECT_ID: 프로젝트 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 메서드 및 URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions:purge

JSON 요청 본문:

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

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 출력이 표시됩니다. 응답의 OPERATION_ID를 사용하여 작업 상태를 가져올 수 있습니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.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.v1.PurgeExecutionsResponse",
    "purgeCount": "2"
  }
}

컨텍스트 관리

컨텍스트 만들기

컨텍스트를 사용하면 아티팩트 및 실행의 집합을 그룹화할 수 있습니다. REST 또는 Python용 Vertex AI SDK를 사용하여 컨텍스트를 만듭니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION_ID: 리전
  • PROJECT_ID: 프로젝트 ID
  • METADATA_STORE: 실행이 생성된 메타데이터 저장소 ID입니다. 기본 메타데이터 저장소 이름은 default로 지정됩니다.
  • CONTEXT_ID: (선택사항) 컨텍스트 레코드의 ID입니다. 컨텍스트 ID를 지정하지 않으면 Vertex ML Metadata에서 이 컨텍스트의 고유 식별자를 만듭니다.
  • DISPLAY_NAME: 컨텍스트의 표시 이름입니다. 이 필드에는 유니코드 문자가 최대 128자까지 포함될 수 있습니다.
  • PARENT_CONTEXT: 상위 컨텍스트의 리소스 이름을 지정합니다. 컨텍스트에 포함되는 상위 컨텍스트는 10개를 초과할 수 없습니다.
  • METADATA_SCHEMA_TITLE: 메타데이터 필드를 설명하는 스키마의 제목입니다. 스키마 제목이 `.` 형식을 충족해야 합니다. 네임스페이스는 소문자로 시작해야 하며 소문자와 숫자를 포함할 수 있고 2~20자 사이여야 합니다. 스키마 이름은 대문자로 시작해야 하고, 문자 및 숫자를 포함할 수 있으며, 길이가 2~49자일 수 있습니다.
  • METADATA_SCHEMA_VERSION: (선택사항) 메타데이터 필드를 설명하는 스키마의 버전입니다. schema_version은 1.0.0, 1.0.1과 같이 마침표로 구분된 3개 숫자로 된 문자열이어야 합니다. 이 형식은 버전 정렬 및 비교를 도와줍니다.
  • METADATA: 컨텍스트를 설명하는 속성(예: 컨텍스트 매개변수)입니다.
  • DESCRIPTION: (선택사항) 사람이 읽을 수 있는 문자열로서, 실행을 만드는 목적을 설명합니다.
  • LABELS: (선택사항) 컨텍스트를 구성하는 사용자 정의 메타데이터입니다.

HTTP 메서드 및 URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/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
  },
  "labels": {"LABEL_1":"LABEL_2"},
  "description": "DESCRIPTION"

}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 출력이 표시됩니다. CONTEXT_ID는 컨텍스트 레코드의 ID입니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID",
  "displayName": "Example context:",
  "etag": "67891011",
  "labels": {
    "test_label": "test_label_value"
  },
  "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."
}

Python

Python

from typing import Any, Dict, Optional

from google.cloud import aiplatform
from google.cloud.aiplatform.metadata.schema.system import context_schema


def create_context_sample(
    display_name: str,
    project: str,
    location: str,
    context_id: Optional[str] = None,
    metadata: Optional[Dict[str, Any]] = None,
    schema_version: Optional[str] = None,
    description: Optional[str] = None,
):
    aiplatform.init(project=project, location=location)

    return context_schema.Experiment(
        display_name=display_name,
        context_id=context_id,
        metadata=metadata,
        schema_version=schema_version,
        description=description,
    ).create()
  • display_name: 컨텍스트의 표시 이름입니다. 이 필드에는 유니코드 문자가 최대 128자까지 포함될 수 있습니다.
  • project: 프로젝트 ID 이러한 ID는 Google Cloud 콘솔 시작 페이지에서 찾을 수 있습니다.
  • location: 사용 가능한 위치 목록을 참조하세요.
  • context_id: (선택사항) 컨텍스트 레코드의 ID입니다.
  • metadata: 컨텍스트를 설명하는 속성(예: 컨텍스트 매개변수)입니다.
  • schema_version: 메타데이터 필드를 설명하는 스키마의 버전입니다.
  • description: (선택사항) 사람이 읽을 수 있는 문자열로서, 실행을 만드는 목적을 설명합니다.

기존 컨텍스트 조회

REST 또는 Python용 Vertex AI SDK를 사용하여 기존 컨텍스트를 조회합니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION_ID: 리전
  • PROJECT_ID: 프로젝트 ID
  • METADATA_STORE: 컨텍스트가 생성되는 메타데이터 저장소 ID입니다. 기본 메타데이터 저장소 이름은 default로 지정됩니다.
  • PAGE_SIZE: (선택사항) 반환할 최대 아티팩트 수입니다. 이 값을 지정하지 않으면 서비스에서 레코드를 최대 100까지 반환합니다.
  • PAGE_TOKEN: (선택사항) 이전 MetadataService.ListArtifacts 호출의 페이지 토큰입니다. 결과의 다음 페이지를 가져오려면 이 토큰을 지정하세요.
  • FILTER: 결과 집합에 컨텍스트를 포함하는 데 필요한 조건을 지정합니다.

HTTP 메서드 및 URL:

GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 출력이 표시됩니다. CONTEXT_ID는 컨텍스트 레코드의 ID입니다.

{
  "contexts": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID",
      "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/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID",
      "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": {}
    }
  ]
}

Python

Python

from google.cloud import aiplatform


def get_context_sample(
    context_id: str,
    project: str,
    location: str,
):
    context = aiplatform.Context.get(
        resource_id=context_id, project=project, location=location)
    return context

기존 컨텍스트 삭제

REST 또는 Python용 Vertex AI SDK를 사용하여 컨텍스트를 삭제합니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION_ID: 리전
  • PROJECT_ID: 프로젝트 ID
  • METADATA_STORE: 컨텍스트가 생성되는 메타데이터 저장소 ID입니다. 기본 메타데이터 저장소 이름은 default로 지정됩니다.
  • CONTEXT_ID: (선택사항) 컨텍스트 레코드의 ID입니다.

HTTP 메서드 및 URL:

DELETE https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 출력이 표시됩니다. 응답의 OPERATION_ID를 사용하여 작업 상태를 가져올 수 있습니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.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"
  }
}

Python

Python

from google.cloud import aiplatform


def delete_context_sample(
    context_id: str,
    project: str,
    location: str,
):
    context = aiplatform.Context.get(
        resource_id=context_id, project=project, location=location
    )
    context.delete()

컨텍스트 삭제

다음 안내에 따라 필터 조건을 기준으로 여러 컨텍스트를 삭제합니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION_ID: 리전
  • PROJECT_ID: 프로젝트 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 메서드 및 URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts:purge

JSON 요청 본문:

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

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 출력이 표시됩니다. 응답의 OPERATION_ID를 사용하여 작업 상태를 가져올 수 있습니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.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.v1.PurgeContextsResponse",
    "purgeCount": "5"
  }
}

다음 단계