데이터 세트에서 메타데이터 및 주석 내보내기

Vertex AI를 사용하면 Dataset 리소스에서 메타데이터 및 주석 세트를 내보낼 수 있습니다. 이 기능은 주석 변경, 추가 또는 삭제로 구성된 특정 컬렉션의 기록을 유지하려는 경우에 유용할 수 있습니다.

Dataset를 내보내면 Vertex AI에서 Dataset의 메타데이터와 주석이 포함된 JSON Lines 파일을 하나 이상 만들고 이러한 JSON Lines 파일을 선택한 Cloud Storage 디렉터리에 저장합니다.

이미지, 텍스트, 동영상 Dataset 리소스를 내보낼 수 있습니다. 테이블 형식 Dataset 리소스는 내보낼 수 없습니다.

Dataset를 내보내면 Dataset가 기반으로 하는 이미지, 텍스트 또는 동영상 데이터의 추가 사본이 생성되지 않습니다. 내보내기 프로세스에 의해 생성된 JSON Lines 파일에는 데이터를 Dataset로 가져올 때 지정한 데이터의 원래 Cloud Storage URI가 포함됩니다.

Google Cloud 콘솔 또는 API를 사용하여 Dataset 내보내기

Google Cloud Console 또는 Vertex AI API를 사용하여 Dataset를 내보낼 수 있습니다. 해당 탭의 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔의 Vertex AI 섹션에서 데이터 세트 페이지로 이동합니다.

    데이터세트 페이지로 이동

  2. 리전 드롭다운 목록에서 Dataset가 저장된 위치를 선택합니다.

  3. Dataset 행을 찾습니다. 모든 주석 세트 또는 특정 주석 세트의 메타데이터와 주석을 내보낼 수 있습니다.

    • Dataset의 모든 주석 세트에 대한 메타데이터 및 주석을 내보내려면 더보기 를 클릭한 다음 데이터 세트 내보내기를 클릭합니다.

      그러면 Vertex AI에 각 주석 세트의 JSON Lines 파일 집합을 만들도록 지시합니다.

    • 특정 주석 세트의 메타데이터 및 주석을 내보내려면 다음을 수행합니다.

      1. 노드 확장 을 클릭하여 Dataset의 각 주석 세트에 대한 행을 표시합니다.

      2. 내보낼 주석 세트의 행에서 더보기 를 클릭한 다음 주석 세트 내보내기를 클릭합니다.

      그러면 Vertex AI에 지정한 주석 세트의 JSON Lines 파일 집합을 만들도록 지시합니다.

  4. 데이터 내보내기 대화상자에서 Vertex AI에서 내보낸 JSON Lines 파일을 저장할 Cloud Storage 디렉터리를 입력합니다. 내보내기를 클릭합니다.

REST

Dataset ID 가져오기

Dataset를 내보내려면 Dataset의 숫자 ID를 알아야 합니다. Dataset의 표시 이름은 알지만 ID를 모르는 경우API를 사용해 ID를 가져오는 방법을 알아보려면 다음 섹션을 참조하세요.

표시 이름에서 데이터 세트 ID 가져오기

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

  • LOCATION: Dataset가 저장된 위치. 예를 들면 us-central1입니다.

  • PROJECT_ID: 프로젝트 ID

  • DATASET_DISPLAY_NAME: Dataset의 표시 이름

HTTP 메서드 및 URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?filter=displayName=DATASET_DISPLAY_NAME

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

다음 명령어를 실행합니다.

curl -X GET \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?filter=displayName=DATASET_DISPLAY_NAME"

PowerShell

다음 명령어를 실행합니다.

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?filter=displayName=DATASET_DISPLAY_NAME" | Select-Object -Expand Content

다음 예시 응답이 ...로 잘려 Dataset의 ID를 찾을 수 있는 위치를 강조합니다. DATASET_ID 자리에 있는 숫자입니다.

{
  "datasets": [
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID",
      "displayName": "DATASET_DISPLAY_NAME",
      ...
    }
  ]
}

또는 Google Cloud 콘솔에서 Dataset의 ID를 가져올 수 있습니다. Vertex AI 데이터 세트 페이지로 이동하여 ID 열에서 이 값을 찾으세요.

데이터세트 페이지로 이동

하나 이상의 주석 세트 내보내기

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

  • LOCATION: Dataset가 저장된 위치. 예를 들면 us-central1입니다.

  • PROJECT_ID: 프로젝트 ID

  • DATASET_ID: Dataset의 숫자 ID입니다.

  • EXPORT_DIRECTORY: Vertex AI에서 내보낸 JSON Lines 파일을 저장할 디렉터리의 Cloud Storage URI(gs://로 시작)입니다. 액세스 권한이 있는 Cloud Storage 버킷에 있어야 하지만 디렉터리는 아직 존재하지 않아도 됩니다.

  • FILTER: 내보낼 주석 세트를 결정하는 필터 문자열입니다.

    • 모든 Dataset의 주석 세트에 대한 메타데이터 및 주석을 내보내려면 FILTER를 빈 문자열로 바꾸거나 요청 본문의 annotationsFilter 필드를 생략합니다. 그러면 Vertex AI에 각 주석 세트의 JSON Lines 파일 집합을 만들도록 지시합니다.

    • 특정 주석 세트의 메타데이터 및 주석을 내보내려면 FILTER를 다음으로 바꿉니다.

      labels.aiplatform.googleapis.com/annotation_set_name=ANNOTATION_SET_ID
      

      이렇게 하면 Vertex AI에 숫자 ID ANNOTATION_SET_ID가 있는 주석 세트의 JSON Lines 파일 집합을 만들도록 지시할 수 있습니다.

      지정할 주석 세트의 숫자 ID를 찾으려면 Google Cloud 콘솔에서 주석 세트를 확인하고 URL에서 annotationSetId 다음에 있는 값을 찾습니다.

HTTP 메서드 및 URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:export

JSON 요청 본문:

{
  "exportConfig": {
    "gcsDestination": {
      "outputUriPrefix": "EXPORT_DIRECTORY"
    },
    "annotationsFilter": "FILTER"
  }
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:export"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:export" | Select-Object -Expand Content

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

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.ExportDataOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-02-17T00:54:58.827429Z",
      "updateTime": "2021-02-17T00:54:58.827429Z"
    },
    "gcsOutputDirectory": "EXPORT_DIRECTORY/export-data-DATASET_DISPLAY_NAME-2021-02-17T00:54:58.734772Z"
  }
}

일부 요청은 완료하는 데 시간이 걸리는 장기 실행 작업을 시작합니다. 이러한 요청은 작업 상태를 보거나 작업을 취소하는 데 사용할 수 있는 작업 이름을 반환합니다. Vertex AI는 장기 실행 작업을 호출하는 도우미 메서드를 제공합니다. 자세한 내용은 장기 실행 작업 다루기를 참조하세요.

내보낸 파일 설명

이전 섹션에서 지정한 내보내기 디렉터리 내에서 Vertex AI는 Dataset의 표시 이름과 타임스탬프로 라벨이 지정된 새 디렉터리를 만듭니다. 예를 들면 export-data-DATASET_DISPLAY_NAME-2021-02-17T00:54:58.734772Z입니다. 이 디렉터리 내에서 내보낸 각 주석 세트의 하위 디렉터리를 찾을 수 있습니다.

주석 세트마다 JSON Lines 파일을 하나 이상 찾을 수 있습니다. 각 JSON Lines 파일의 각 행은 주석 세트의 데이터 항목을 나타냅니다. 각 데이터 항목에는 데이터를 Vertex AI로 가져올 때 지정한 메타데이터 및 주석과 함께 데이터를 가져온 후 추가한 메타데이터와 주석이 포함될 수 있습니다. 예를 들어 Dataset에 대한 데이터 라벨 지정을 요청했거나 Google Cloud 콘솔의 Dataset에 라벨 또는 주석을 수동으로 추가한 경우 이 정보는 내보낸 파일에 포함됩니다.

주석 세트를 여러 개 내보내면 같은 데이터 항목이 JSON Lines 파일 여러 개에 나타날 수 있습니다. 예를 들어 주석 세트가 여러 개 있는 이미지 Dataset를 내보내면 JSON Lines 파일 하나에는 단일 라벨 분류 주석이 있는 데이터 항목이 포함되고 다른 주석 세트의 또 다른 JSON Lines 파일에는 대신 객체 감지 주석이 있는 동일한 데이터 항목이 포함될 수 있습니다.

내보낸 파일 형식은 intoVertex AI로 데이터를 가져오는 데 사용할 수 있는 JSON Lines 가져오기 파일 형식과 일치합니다. 이 형식은 데이터 유형(이미지, 테이블 형식, 텍스트, 동영상)과 목표(예: 객체 추적, 항목 추출 또는 분류)에 따라 달라집니다. 예를 들어 단일 라벨 이미지 분류에 대한 주석 세트를 내보내는 경우 각 JSON Lines 파일의 각 행 형식은 이미지 데이터 준비의 설명대로 gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml 스키마 파일에 따라 지정됩니다.

주석 세트 유형마다 다른 JSON Lines 형식에 대한 자세한 내용은 다음 가이드를 참조하세요.

다음 단계