Vertex AI로 AutoML 예측 모델 빌드

1. 개요

이 실습에서 학습할 내용은 다음과 같습니다.

  • 관리형 데이터 세트 만들기
  • Google Cloud Storage 버킷에서 데이터 가져오기
  • AutoML에서 적절하게 사용할 수 있도록 열 메타데이터 업데이트
  • 예산 및 최적화 목표와 같은 옵션을 사용하여 모델 학습
  • 온라인 일괄 예측 실행

2. 데이터 검토

이 실습에서는 BigQuery 공개 데이터 세트의 아이오와주 주류 판매 데이터 세트 데이터를 사용합니다. 이 데이터 세트는 2012년부터 미국 아이오와주에서 이루어진 주류 도매 구매로 구성되어 있습니다.

데이터 세트 보기를 선택하여 원본 원시 데이터를 확인할 수 있습니다. 표에 액세스하려면 왼쪽 탐색 메뉴에서 bigquery-public-datasets 프로젝트, iowa_liquor_sales 데이터 세트, sales 표로 이동합니다. 미리보기를 선택하여 데이터 세트의 행을 확인할 수 있습니다.

f07c88368e7445c6.png

이 실습에서는 구매를 일별로 그룹화하기 위해 기본적인 데이터 사전 처리를 이미 완료했습니다. BigQuery 테이블에서 CSV 추출을 사용합니다. CSV 파일의 열은 다음과 같습니다.

  • ds: 날짜
  • y: 해당 날짜의 모든 구매 금액의 합계(달러)
  • holiday: 날짜가 미국 공휴일인지 나타내는 불리언
  • id: 시계열 식별자 (예: 매장별 또는 제품별로 여러 시계열 지원). 이 경우 하나의 시계열에서 전체 구매를 예측할 것이므로 각 행의 ID가 0으로 설정됩니다.

3. 데이터 가져오기

1단계: Vertex AI 데이터 세트로 이동하기

Cloud 콘솔의 왼쪽 탐색 메뉴에서 Vertex AI 메뉴의 데이터 세트에 액세스합니다.

d8f26bfce50bfdb5.png

2단계: 데이터 세트 만들기

표 형식 데이터를 선택한 다음 예측 문제 유형을 선택하여 새 데이터 세트를 만듭니다. iowa_daily 또는 원하는 다른 이름을 선택합니다.

4efeaebfd7845b9c.png

3단계: 데이터 가져오기

다음 단계는 데이터 세트로 데이터를 가져오는 것입니다. Cloud Storage에서 CSV를 선택하는 옵션을 선택합니다. 그런 다음 AutoML Demo Alpha 버킷에서 CSV 파일로 이동하여 automl-demo-240614-lcm/iowa_liquor/iowa_daily.csv를 붙여넣습니다.

4. 모델 학습

1단계: 모델 기능 구성하기

몇 분 후 AutoML에서 가져오기가 완료되었다는 알림을 보냅니다. 이때 모델 기능을 구성할 수 있습니다.

  • 시계열 식별자 열id로 선택합니다. 데이터 세트에는 하나의 시계열만 있으므로 이는 형식적인 단계입니다.
  • 시간 열ds로 선택합니다.

그런 다음 통계 생성을 선택합니다. 프로세스가 완료되면 누락된 %고유 값 통계가 표시됩니다. 이 프로세스는 몇 분 정도 걸릴 수 있으므로 원하는 경우 다음 단계로 진행해도 됩니다.

2단계: 모델 학습시키기

모델 학습을 선택하여 학습 프로세스를 시작합니다. AutoML이 선택되어 있는지 확인하고 계속을 클릭합니다.

5028ec6f242dfa6a.png

3단계: 모델 정의하기

  • 타겟 열y로 선택합니다. 이것이 예측할 값입니다.
  • 이전에 설정하지 않았다면 시계열 식별자 열을 id로, 타임스탬프 열ds로 설정합니다.
  • 데이터 세부사항로, 예측 기간7로 설정합니다. 이 필드는 모델이 예측할 수 있는 미래 기간의 수를 지정합니다.
  • 컨텍스트 윈도우7일로 설정합니다. 모델은 이전 30일의 데이터를 사용하여 예측합니다. 짧은 기간과 긴 기간 사이에는 절충이 필요하며 일반적으로 예측 기간의 1~10배 사이의 값을 선택하는 것이 좋습니다.
  • BigQuery에 테스트 데이터 세트 내보내기 체크박스를 선택합니다. 이 필드를 비워 두면 프로젝트에 데이터 세트와 테이블이 자동으로 생성됩니다. 원하는 위치를 지정할 수도 있습니다.
  • 계속을 선택합니다.

8d2f34779ba49bb1.png

4단계: 학습 옵션 설정하기

이 단계에서는 모델을 학습시킬 방법을 자세히 지정할 수 있습니다.

  • 특정 날짜가 미리 공휴일인지 알 수 있으므로 예측 시 holiday 열을 Available로 설정합니다.
  • 최적화 목표MAE로 변경합니다. 평균 절대 오차(MAE)는 평균 제곱 오차에 비해 이상치에 더 탄력적입니다. 변동이 심할 수 있는 일일 구매 데이터를 사용하므로 MAE가 적절한 측정항목입니다.
  • 계속을 선택합니다.

9557c92be32a1987.png

5단계: 학습 시작하기

원하는 예산을 설정합니다. 이 경우 1노드 시간이면 모델을 학습시키기에 충분합니다. 그런 다음 학습 프로세스를 시작합니다.

6단계: 모델 평가

학습 과정을 완료하는 데 1~2시간이 걸릴 수 있습니다 (추가 설정 시간 포함). 학습이 완료되면 이메일이 전송됩니다. 준비가 되면 생성한 모델의 정확도를 확인할 수 있습니다.

5. 예측

1단계: 테스트 데이터의 예측 검토

BigQuery 콘솔로 이동하여 테스트 데이터의 예측을 확인합니다. 프로젝트 내에 export_evaluated_data_items + <model name> + <timestamp> 명명 규칙을 사용하여 새 데이터 세트가 자동으로 생성됩니다. 해당 데이터 세트 내에서 evaluated_data_items 테이블을 찾아 예측을 검토할 수 있습니다.

이 표에는 다음과 같은 몇 가지 새로운 열이 있습니다.

  • predicted_on_[date column]: 예측이 이루어진 날짜입니다. 예를 들어 predicted_on_ds가 11/4이고 ds가 11/8이면 4일 후를 예측하는 것입니다.
  • predicted_[target column].tables.value: 예측값

9800c7c67d93db03.png

2단계: 일괄 예측 실행하기

마지막으로 모델을 사용하여 예측을 수행합니다.

입력 파일에는 예측할 날짜의 빈 값과 이전 데이터가 포함되어 있습니다.

ds

holiday

id

2020년 5월 15일

0

0

1751315.43

2020년 5월 16일

0

0

0

2020년 5월 17일

0

0

0

2020년 5월 18일

0

0

1612066.43

2020년 5월 19일

0

0

1773885.17

2020년 5월 20일

0

0

1487270.92

2020년 5월 21일

0

0

1024051.76

2020년 5월 22일

0

0

1471736.31

2020년 5월 23일

0

0

<empty>

2020년 5월 24일

0

0

<empty>

2020년 5월 25일

1

0

<empty>

2020년 5월 26일

0

0

<empty>

2020년 5월 27일

0

0

<empty>

2020년 5월 28일

0

0

<empty>

2020년 5월 29일

0

0

<empty>

AI Platform (통합) 왼쪽 탐색 메뉴의 일괄 예측 항목에서 새 일괄 예측을 만들 수 있습니다.

다음은 스토리지 버킷에 생성된 입력 파일의 예입니다. automl-demo-240614-lcm/iowa_liquor/iowa_daily_automl_predict.csv

이 소스 파일 위치를 제공할 수 있습니다. 그런 다음 예측을 Cloud Storage 위치에 CSV로 내보내거나 BigQuery로 내보낼 수 있습니다. 이 실습에서는 BigQuery를 선택하고 Google Cloud 프로젝트 ID를 선택합니다.

22e808dd5cbd4224.png

일괄 예측 프로세스는 몇 분 정도 걸립니다. 완료되면 일괄 예측 작업을 클릭하여 내보내기 위치를 비롯한 세부정보를 확인할 수 있습니다. BigQuery에서 왼쪽 탐색 메뉴의 프로젝트 / 데이터 세트 / 표로 이동하여 예측에 액세스해야 합니다.

이 작업은 BigQuery에 두 개의 서로 다른 테이블을 만듭니다. 하나에는 오류가 있는 행이 포함되고 다른 하나에는 예측이 포함됩니다. 다음은 예측 표의 출력 예시입니다.

9ead59dcc9ad1521.png

3단계: 결론

축하합니다. AutoML을 사용하여 예측 모델을 빌드하고 학습했습니다. 이 실습에서는 데이터 가져오기, 모델 빌드, 예측을 다루었습니다.

이제 자체 예측 모델을 빌드할 준비가 되었습니다.