이 페이지에서는 Google Cloud 콘솔 또는 Vertex AI API를 사용하여 동영상 데이터 세트에서 AutoML 동작 인식 모델을 학습시키는 방법을 설명합니다.
AutoML 모델 학습
Google Cloud 콘솔
Google Cloud 콘솔의 Vertex AI 섹션에서 데이터 세트 페이지로 이동합니다.
모델을 학습시키는 데 사용할 데이터 세트의 이름을 클릭하여 세부정보 페이지를 엽니다.
새 모델 학습을 클릭합니다.
새 모델의 표시 이름을 입력합니다.
학습 데이터 분할 방법을 수동으로 설정하려면 고급 옵션을 펼치고 데이터 분할 옵션을 선택합니다. 자세히 알아보기
계속을 클릭합니다.
모델 학습 방법을 선택합니다.
AutoML
은 광범위한 사용 사례에 적합합니다.Seq2seq+
는 실험에 적합합니다. 이 알고리즘은 아키텍처가 더 간단하고 사용하는 검색 공간이 더 작으므로AutoML
보다 빠르게 수렴할 가능성이 높습니다. 실험 결과 Seq2Seq+는 짧은 시간 예산과 1GB 미만의 데이터 세트에서 잘 작동합니다.
학습 시작을 클릭합니다.
데이터의 규모 및 복잡성과 학습 예산(지정한 경우)에 따라 모델 학습에 많은 시간이 소요될 수 있습니다. 탭을 닫았다가 나중에 다시 돌아와도 됩니다. 모델 학습이 완료되면 이메일이 전송됩니다.
학습이 시작되고 몇 분 후에 모델의 속성 정보에서 학습 노드 시간 추정을 확인할 수 있습니다. 학습을 취소하면 현재 제품에 요금이 부과되지 않습니다.
API
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT: 프로젝트 ID
- LOCATION: 데이터 세트가 있고 모델이 생성된 리전입니다. 예를 들면
us-central1
입니다. - TRAINING_PIPELINE_DISPLAY_NAME: 필수. TrainingPipeline의 표시 이름입니다.
- DATASET_ID: 학습 데이터 세트의 ID입니다.
-
TRAINING_FRACTION, TEST_FRACTION:
fractionSplit
객체는 선택사항이며 데이터 분할을 제어하기 위해 사용됩니다. 데이터 분할 제어에 대한 자세한 내용은 AutoML 모델의 데이터 분할 정보를 참조하세요. 예를 들면 다음과 같습니다.{"trainingFraction": "0.8","validationFraction": "0","testFraction": "0.2"}
- MODEL_DISPLAY_NAME: 학습된 모델의 표시 이름입니다.
- MODEL_DESCRIPTION: 모델에 대한 설명입니다.
- MODEL_LABELS: 모델을 구성할 모든 키-값 쌍 세트입니다. 예를 들면 다음과 같습니다.
- "env": "prod"
- "tier": "backend"
- EDGE_MODEL_TYPE:
MOBILE_VERSATILE_1
: 범용 용도
- PROJECT_NUMBER: 프로젝트의 자동으로 생성된 프로젝트 번호
HTTP 메서드 및 URL:
POST https://LOCATION-aiplatform.googleapis.com/beta1/projects/PROJECT/locations/LOCATION/trainingPipelines
JSON 요청 본문:
{ "displayName": "TRAINING_PIPELINE_DISPLAY_NAME", "inputDataConfig": { "datasetId": "DATASET_ID", "fractionSplit": { "trainingFraction": "TRAINING_FRACTION", "validationFraction": "0", "testFraction": "TEST_FRACTION" } }, "modelToUpload": { "displayName": "MODEL_DISPLAY_NAME", "description": "MODEL_DESCRIPTION", "labels": { "KEY": "VALUE" } }, "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_object_tracking_1.0.0.yaml", "trainingTaskInputs": { "modelType": ["EDGE_MODEL_TYPE"], } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/beta1/projects/PROJECT/locations/LOCATION/trainingPipelines"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth 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/beta1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content
응답에는 사양 및 TRAININGPIPELINE_ID에 대한 정보가 포함됩니다.
Java
이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 Vertex AI Java API 참고 문서를 참조하세요.
Vertex AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Vertex AI SDK for Python을 설치하거나 업데이트하는 방법은 Vertex AI SDK for Python 설치를 참조하세요. 자세한 내용은 Python API 참고 문서를 확인하세요.
REST를 사용하여 데이터 분할 제어
학습 데이터가 학습, 검증, 테스트 세트 간에 분할되는 방식을 제어할 수 있습니다. Vertex AI API를 사용할 경우 Split
객체를 사용하여 데이터 분할을 결정합니다. Split
객체는 InputConfig
객체에 여러 객체 유형 중 하나로 포함되어 있으며, 각 객체는 학습 데이터를 분할하는 다른 방법을 제공합니다. 하나의 방법만 선택할 수 있습니다.
-
FractionSplit
:- TRAINING_FRACTION: 학습 세트에 사용할 학습 데이터의 비율입니다.
- VALIDATION_FRACTION: 검증 세트에 사용할 학습 데이터의 비율입니다. 동영상 데이터에는 사용되지 않습니다.
- TEST_FRACTION: 테스트 세트에 사용할 학습 데이터의 비율입니다.
비율 중 하나라도 지정된 경우 모두 지정해야 합니다. 비율의 합은 1.0이 되어야 합니다. 비율에 대한 기본값은 데이터 유형에 따라 다릅니다. 자세히 알아보기
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
-
FilterSplit
: - TRAINING_FILTER: 이 필터와 일치하는 데이터 항목은 학습 세트에 사용됩니다.
- VALIDATION_FILTER: 이 필터와 일치하는 데이터 항목은 검증 세트에 사용됩니다. 동영상 데이터는 '-'여야 합니다.
- TEST_FILTER: 이 필터와 일치하는 데이터 항목은 테스트 세트에 사용됩니다.
이 필터는 ml_use
라벨 또는 데이터에 적용하는 모든 라벨과 함께 사용할 수 있습니다. ml-use 라벨과 기타 라벨을 사용하여 데이터를 필터링하는 방법을 자세히 알아보세요.
다음 예시에서는 검증 세트가 포함된 ml_use
라벨과 함께 filterSplit
객체를 사용하는 방법을 보여줍니다.
"filterSplit": { "trainingFilter": "labels.aiplatform.googleapis.com/ml_use=training", "validationFilter": "labels.aiplatform.googleapis.com/ml_use=validation", "testFilter": "labels.aiplatform.googleapis.com/ml_use=test" }