AutoML 모델의 데이터 분할 정보

이 페이지에서는 Vertex AI가 AutoML 모델을 교육하기 위해 데이터의 교육, 검증 및 테스트 세트를 사용하는 방법과 이 세 가지 세트 간에 데이터가 분할되는 방식을 제어하는 방법을 설명합니다. AutoML은 학습 데이터의 데이터 유형에 따라 데이터 분할을 다르게 사용합니다.

이 페이지에서는 이미지, 텍스트, 동영상 데이터의 데이터 분할을 설명합니다. 테이블 형식 데이터의 데이터 분할에 대한 자세한 내용은 테이블 형식 데이터의 데이터 분할을 참조하세요.

이미지

이미지 데이터 세트의 경우 AutoML은 학습 세트를 사용하여 모델을 학습시키고, 검증 세트를 사용하여 모델이 학습 중 반환하는 결과를 검증합니다. 학습이 완료되면 AutoML이 테스트 세트를 사용하여 최종 평가 측정항목을 제공합니다.

텍스트

텍스트 데이터 세트에서 학습 및 검증 세트는 다양한 사전 처리, 아키텍처, 초매개변수 옵션 조합을 시도하는 데 사용됩니다. 이러한 시도를 통해 학습된 모델을 만들며, 검증 세트를 바탕으로 모델의 품질을 평가하고 추가 옵션 조합을 살펴봅니다.

추가 시도가 품질 향상으로 이어지지 않는다면, 해당 버전의 모델이 최종이자 최고 성능의 학습된 모델로 간주됩니다. 그리고 Vertex AI는 동시 조정 단계에서 결정한 매개변수와 아키텍처를 바탕으로 추가 모델 2개의 학습을 진행합니다.

  1. 사용자의 학습 및 검증 세트로 학습을 진행한 모델

    Vertex AI는 이 모델에서 테스트 세트를 사용해 모델 평가 측정항목을 생성합니다. 테스트 세트는 전체 과정 중 이 시점에서 처음으로 사용되며, 최종 평가 측정항목이 최종 학습된 모델을 프로덕션 단계에 배포했을 때의 성능을 편향 없이 반영하는지 확인하는 역할을 합니다.

  2. 사용자의 학습, 검증, 테스트 세트로 학습을 진행한 모델

    이 모델은 예측을 요청할 때 사용합니다.

동영상

동영상 데이터 세트의 경우 AutoML은 모델 학습을 위해 학습 세트를 사용한 후 테스트 세트를 사용하여 최종 평가 측정항목을 제공합니다. 검증 세트는 동영상 데이터 세트에 사용되지 않습니다.

Vertex AI에서 자동으로 데이터를 분할하도록 할 수 있습니다. 데이터는 백분율에 따라 3개의 세트로 무작위 분할됩니다. 이 방법은 데이터 분할을 위한 가장 쉬운 방법이며 대부분의 경우에 문제 없이 작동합니다.

설정 텍스트 이미지 동영상
학습 80 80 80
검증 10 10 해당 사항 없음
테스트 10 10 20

기본 데이터 분할을 사용하려면 Google Cloud 콘솔에서 기본값을 수락하거나 API의 분할 필드를 비워 둡니다.

데이터를 세트로 분할하는 방법을 제어하려면 다음 옵션을 사용할 수 있습니다.

위의 옵션 중 하나만 선택할 수 있으며, 모델을 학습시킬 때 선택하게 됩니다. 이러한 옵션 중 일부에서는 학습 데이터를 변경해야 합니다(예: ml_use 라벨). 데이터 분할 옵션을 사용하기 위해 이들 옵션을 위한 데이터 또는 라벨을 포함할 필요는 없습니다. 즉, 모델을 학습시킬 때 여전히 다른 옵션을 선택할 수 있습니다.

비정형 데이터 수동 분할

수동 분할을 '사전 정의된 분할'이라고도 합니다.

ml_use 라벨을 사용하여 데이터 분할을 제어하려면 데이터에 ml_use 라벨을 설정해야 합니다.

ml_use 라벨 값 설정

Google Cloud 콘솔을 사용하여 데이터를 가져올 때(데이터 항목별, 또는 전체 가져오기 파일에 대하여) 또는 데이터를 가져온 후 비전, 동영상, 텍스트 데이터에 ml_use 라벨을 설정할 수 있습니다.

가져오기 시에 개별 데이터 항목에 ml_use 설정

JSON Lines 데이터에서 aiplatform.googleapis.com/ml_use 필드에 값을 포함하거나 CSV 파일의 첫 번째 열 값을 설정하여 각 데이터 항목에 ml_use 라벨을 설정할 수 있습니다. 자세한 내용은 데이터 유형에 대한 데이터 준비 관련 정보를 참조하세요.

어떤 데이터 항목이 데이터 안에서 반복적인 경우(동일한 동영상, 이미지, 또는 텍스트 스니펫이 가져오기 파일에 여러 번 나타나는 경우) Vertex AI는 처음 접한 데이터 항목에 ml_use 값을 사용하고, 이후의 모든 ml_use 값은 무시합니다. 처음 접한 항목이 반드시 업로드 파일 시작 부분에 있는 항목이 아닐 수도 있습니다.

전체 업로드 파일에 ml_use 설정

ml_use 값별로 데이터를 여러 업로드 파일로 정렬할 수 있는 경우, Google Cloud 콘솔을 사용하여 파일을 업로드할 때 파일별 드롭다운 메뉴를 사용하거나 datasets.import 메서드에서 dataItemLabels 맵 필드를 사용하여 전체 업로드 파일에 ml_use 값을 설정할 수 있습니다.

업로드 파일에 ml_use를 설정했는데 파일에도 ml_use 값이 포함되어 있으면 파일의 ml_use 값이 파일 전체 값보다 우선합니다.

가져오기 후에 ml_use 설정

데이터를 업로드한 후에 목록 뷰에서 하나 이상의 항목을 선택하고 ML 사용 할당 드롭다운 메뉴를 사용하여 Google Cloud 콘솔의 특정 데이터 항목의 ml_use 값을 설정하거나 업데이트할 수 있습니다.

데이터 파일을 다시 업로드하면 ml_use 값이 변경되었더라도 ml_use 값이 업데이트되지 않습니다. Vertex AI API를 사용하여 가져온 후에는 ml_use 값을 업데이트할 수 없습니다.

ml_use 라벨 사용

모델을 학습시킬 때 Google Cloud 콘솔의 데이터 분할에 수동(고급)을 지정합니다. Vertex AI API를 사용하여 학습하는 경우 FilterSplit 객체를 사용하고 학습 필터에 labels.aiplatform.googleapis.com/ml_use=training, 유효성 검사 필터에 labels.aiplatform.googleapis.com/ml_use=validation, 테스트 필터에 labels.aiplatform.googleapis.com/ml_use=test를 지정합니다. 예를 들면 다음과 같습니다.

model = job.run(
dataset=dataset,
model_display_name=_name,
training_filter_split="labels.aiplatform.googleapis.com/ml_use=training",
validation_filter_split="labels.aiplatform.googleapis.com/ml_use=validation",
test_filter_split="labels.aiplatform.googleapis.com/ml_use=test")

ml_use 값이 있는 모든 데이터 항목이 지정된 세트에 할당됩니다. ml_use가 설정되지 않은 데이터 항목은 학습 프로세스에서 제외됩니다.

데이터 필터 분할

다른 라벨(ml-use 이외) 및 다른 필드를 사용해서 Vertex AI API의 FilterSplit 객체를 사용하여 데이터를 분할할 수 있습니다. 예를 들어 trainingFilterlabels.flower=rose로, validationFilterlabels.flower=daisy로, testFilterlabels.flower=dahlia로 설정할 수 있습니다. 이렇게 설정하면 rose로 라벨이 지정된 모든 데이터가 학습 세트에 추가되고, daisy로 라벨이 지정된 모든 데이터가 검증 세트에 추가되고, dahlia로 라벨이 지정된 모든 데이터가 테스트 세트에 추가됩니다.

여러 필드로 필터링하면 데이터 항목이 2개 이상의 필터와 일치할 수 있습니다. 이 경우 학습 세트, 검증 세트, 마지막으로 테스트 세트의 순서로 적용됩니다. 즉, 테스트 세트의 필터와 일치하고 학습 또는 검증 필터와 일치하지 않을 경우에만 항목이 테스트 세트에 배치됩니다. 항목이 이러한 세트 중 어느 필터와도 일치하지 않으면 학습에서 제외됩니다.

모델이 예측할 항목과 관련하여 데이터 분할에 카테고리를 사용하지 마세요. 각 세트는 모델이 예측을 수행하는 데 사용하는 데이터 범위를 반영해야 합니다. (예를 들어 꽃 유형으로 사진을 카테고리화할 것으로 예상되는 모델에 이전에 설명한 필터를 사용하지 마세요.)

필터가 어떤 항목과도 일치하지 않게 하려면 필터를 '-'(마이너스 기호)로 설정합니다.

수학적 분할

수학적 분할을 '비율 분할'이라고도 합니다.

기본적으로 데이터는 데이터 유형의 기본 백분율에 따라 세트로 무작위 분할됩니다. 비율은 더해서 100이 되는 모든 값이 가능합니다(Vertex AI API에서는 합이 최대 1.0이 되는 분수를 사용합니다)

비율(백분율)을 변경하려면 FractionSplit 객체를 사용하여 비율을 정의하세요. 이미지, 텍스트, 동영상 데이터 유형의 경우 Google Cloud 콘솔을 사용하여 모델을 학습할 때 분할 백분율을 업데이트할 수도 있습니다.