Google Cloud에서 머신러닝 구현을 위한 권장사항

Last reviewed 2022-12-15 UTC

이 문서에서는 데이터 및 코드 기반의 커스텀 학습 모델을 중심으로 Google Cloud에서 머신러닝(ML)을 구현하기 위한 권장사항을 소개합니다. 추가 검토를 위한 키 작업 및 링크를 포함하여 머신러닝 워크플로 전반에 걸쳐 커스텀 학습 모델을 개발하는 방법에 대한 권장사항을 제공합니다.

다음 다이어그램은 다음을 포함하여 이 문서에서 다뤄지는 ML 워크플로 단계 개요를 간략하게 보여줍니다.

  1. ML 개발
  2. 데이터 처리
  3. 운영 학습
  4. 모델 배포 및 서빙
  5. ML 워크플로 조정
  6. 아티팩트 구성
  7. 모델 모니터링

Google Cloud의 머신러닝 워크플로

이 문서는 모든 권장사항을 포함하지 않습니다. 이 문서의 목적은 데이터 과학자 및 머신러닝 설계자가 Google Cloud에서 ML을 사용하는 것과 관련된 여러 활동 범위를 이해하고 그에 따라 계획할 수 있도록 돕기 위한 것입니다. 또한 AutoML과 같은 ML 개발 대안이 권장 도구 및 제품 사용에 설명되어 있지만, 이 문서에서는 커스텀 학습 모델을 중심으로 설명합니다.

이 문서의 권장사항을 따르기 전에 Vertex AI 소개를 읽어보는 것이 좋습니다.

이 문서에서는 다음과 같이 가정합니다.

  • 주로 Google Cloud 서비스를 사용합니다. 하이브리드 및 온프레미스 접근방법은 이 문서에서 다뤄지지 않습니다.

  • 학습 데이터를 수집하고 이를 Google Cloud에 저장합니다.

  • 머신러닝, 빅데이터 도구, 데이터 전처리에 대한 중급 수준의 지식을 갖고 있을 뿐 아니라 Cloud Storage, BigQueryGoogle Cloud 기초를 숙지하고 있습니다.

머신러닝을 처음 다뤄보는 경우 Google의 머신러닝 단기집중과정을 참조하세요.

다음 표에서는 이 문서에 설명된 대로 ML 워크플로의 각 단계에 대한 권장 도구 및 제품을 보여줍니다.

머신러닝 워크플로 단계 권장 도구 및 제품
ML 환경 설정
ML 개발
데이터 처리
운영 학습
모델 배포 및 서빙
ML 워크플로 조정
아티팩트 구성
모델 모니터링

Google은 Vertex AI 커스텀 학습 모델 솔루션에 대한 사전 빌드된 학습 루틴 대안으로 AutoML, Vertex AI 예측, BigQuery ML을 제공합니다. 다음 표에서는 이러한 옵션 또는 Vertex AI를 언제 사용해야 하는지에 대한 권장사항을 제공합니다.

ML 환경 설명 이 환경을 선택해야 하는 경우...
BigQuery ML BigQuery ML은 데이터, 인프라, 사전 정의된 모델 유형을 단일 시스템으로 통합합니다.
AutoML(Vertex AI의 맥락에서) AutoML은 이미지 분류 및 테이블 형식 회귀와 같은 일반적인 문제에 대한 학습 루틴을 제공합니다. 아키텍처 선택, 초매개변수 조정, 머신 프로비저닝과 같은 모델 학습 및 제공에 대한 거의 모든 특성이 사용자를 위해 처리되어 있습니다.
Vertex AI 커스텀 학습 모델 Vertex를 사용하면 고유 커스텀 학습 루틴을 실행하고 서버리스 아키텍처에 모든 유형의 모델을 배포할 수 있습니다. Vertex AI는 모델을 쉽게 개발할 수 있도록 초매개변수 조정 및 모니터링과 같은 추가적인 서비스를 제공합니다. 커스텀 학습 메서드 선택을 참조하세요.
  • 문제가 BigQuery ML 또는 AutoML에 대해 이 표에 나열된 조건과 일치하지 않습니다.
  • 온프레미스 또는 다른 클라우드에서 이미 학습을 실행 중이고 플랫폼 간 일관성이 필요합니다.

머신러닝 환경 설정

실험 및 개발에 Vertex AI Workbench 노트북 사용

도구에 관계없이 쓰기를 포함한 실험 및 개발에 Vertex AI Workbench 노트북을 사용하는 것이 좋습니다. 코드, 작업 시작, 쿼리 실행, 상태 확인의 예시입니다. 노트북 인스턴스를 사용하면 간단하고 재현 가능한 방식으로 Google Cloud의 모든 데이터 및 인공지능(AI) 서비스에 액세스할 수 있습니다.

노트북 인스턴스는 즉시 사용 가능한 안전한 소프트웨어 및 액세스 패턴도 제공합니다. 네트워크 및 Identity and Access Management와 같은 Google Cloud 속성 및 노트북 인스턴스와 연결된 소프트웨어(컨테이너 사용)를 맞춤설정하는 것이 일반적입니다. 자세한 내용은 Vertex AI 구성요소사용자 관리 노트북 소개를 참조하세요.

각 팀원에 대한 노트북 인스턴스 만들기

데이터 과학팀의 각 구성원에 대해 사용자 관리 노트북 인스턴스를 만듭니다. 팀 구성원이 여러 프로젝트에 관여하고 있고 특히 프로젝트에 여러 가지 종속 항목이 포함되어 있다면 여러 노트북 인스턴스를 사용하고 각각의 인스턴스를 가상 작업공간으로 취급하는 것이 좋습니다. 사용 중이 아니면 노트북 인스턴스를 중지할 수 있습니다.

기업 정책을 기반으로 ML 리소스 및 아티팩트 저장

가장 간단한 액세스 제어는 데이터 세트 및 모델과 같은 원시 및 Vertex AI 리소스와 아티팩트를 동일한 Google Cloud 프로젝트에 저장하는 것입니다. 보다 일반적으로는 회사에 액세스를 제어하는 정책이 있습니다. 리소스 및 아티팩트가 여러 프로젝트에 걸쳐서 저장되는 경우 Identity and Access Management(IAM)를 사용하여 회사의 프로젝트 간 액세스 제어를 구성할 수 있습니다.

Python용 Vertex AI SDK 사용

Python용 Vertex AI SDK를 사용합니다. 이 방식은 PyTorch, TensorFlow, XGBoost, scikit-learn을 포함하여 즐겨 사용하는 ML 프레임워크와 원활하게 작동하는 엔드 투 엔드 모델 빌드 워크플로에 Vertex AI를 사용하는 Python 방식입니다.

또는 Google Cloud 콘솔을 사용할 수 있습니다. 이 방식은 브라우저를 통한 사용자 인터페이스로 Vertex AI 기능을 지원합니다.

머신러닝 개발

머신러닝 개발에는 데이터 준비, 실험 및 모델 평가가 포함됩니다. 머신러닝 문제를 해결할 때는 일반적으로 최적 모델을 찾기 위해 여러 다른 모델을 빌드하고 비교해야 합니다.

일반적으로 데이터 과학자는 서로 다른 아키텍처, 입력 데이터 세트, 초매개변수, 하드웨어를 사용하여 모델을 학습시킵니다. 데이터 과학자는 정확도, 정밀도, 테스트 데이터 세트에 대한 재현율과 같은 집계 성능 측정항목을 조사하여 결과 모델을 평가합니다. 마지막으로 데이터 과학자는 특정 데이터 하위 집합, 서로 다른 모델 버전, 서로 다른 모델 아키텍처에 대해 모델 성능을 평가합니다.

학습 데이터 준비

모델 학습을 위해 사용되는 데이터는 어느 시스템에서든 가져올 수 있습니다. 예를 들어 온라인 서비스 시스템의 로그, 로컬 기기의 이미지, 웹에서 가져온 문서 등에서 가져올 수 있습니다.

데이터 원본에 관계없이 소스 시스템에서 데이터를 추출하고 이를 ML 학습에 최적화된 형식 및 스토리지로 변환합니다(작업 소스와 별개). Vertex AI에서 사용할 학습 데이터를 준비하는 방법에 대한 자세한 내용은 Vertex AI에서 사용할 학습 데이터 준비를 참조하세요.

BigQuery에 구조화된 데이터 및 반구조화된 데이터 저장

구조화된 데이터 또는 반구조화된 데이터를 사용하는 경우 프로젝트 구조에 대한 BigQuery의 권장사항에 따라 모든 데이터를 BigQuery에 저장하는 것이 좋습니다. 대부분의 경우 BigQuery에도 중간의 처리된 데이터를 저장할 수 있습니다. 최대 속도를 위해서는 학습 데이터에 대해 뷰 또는 서브 쿼리를 사용하는 대신 구체화된 데이터를 저장하는 것이 더 좋습니다.

BigQuery Storage API를 사용하여 BigQuery 외부에서 데이터를 읽습니다. 아티팩트 추적의 경우 관리되는 테이블 형식 데이터 세트를 사용하는 것이 좋습니다. 다음 표에서는 API를 더 쉽게 사용할 수 있게 해주는 Google Cloud 도구를 보여줍니다.

다음을 사용하는 경우 이 Google Cloud 도구 사용
TensorFlow 또는 Keras BigQuery용 tf.data.dataset 리더
TFX BigQuery 클라이언트
Dataflow BigQuery I/O 커넥터
기타 프레임워크(예: PyTorch, XGBoost, scilearn-kit) BigQuery Python 클라이언트 라이브러리

Cloud Storage에 이미지, 동영상, 오디오, 구조화되지 않은 데이터 저장

이러한 데이터는 Cloud Storage의 대형 컨테이너 형식으로 저장합니다. 이것은 TensorFlow를 사용하는 경우 샤딩된 TFRecord 파일에 적용되고 다른 프레임워크를 사용하는 경우에는 Avro 파일에 적용됩니다.

Cloud Storage에 대한 읽기 및 쓰기 처리량이 향상되므로 많은 개별 이미지, 동영상, 오디오 클립을 큰 파일로 조합합니다. 100~10,000개 샤드 사이의 최소 100mb 이상 파일을 목표로 합니다.

데이터 관리를 사용 설정하기 위해 Cloud Storage 버킷 및 디렉터리를 사용하여 샤드를 그룹화합니다. 자세한 내용은 Cloud Storage란 무엇인가요?를 참조하세요.

구조화되지 않은 데이터에 Vertex AI Data Labeling 사용

특히 구조화되지 않은 데이터의 경우 사람이 데이터에 라벨을 제공해야 할 수 있습니다. 이 작업에 Vertex AI Data Labeling을 사용하면 됩니다. 직접 라벨 작업자를 고용하고 작업 관리를 위해 Google Cloud의 소프트웨어를 사용하거나 Google의 내부 라벨 작업자를 사용하여 태스크를 수행할 수 있습니다. 자세한 내용은 데이터 라벨 지정 요청을 참조하세요.

구조화된 데이터에 Vertex AI Feature Store 사용

모델 학습 위치에 관계없이 구조화된 데이터로 모델을 학습시킬 때는 다음 단계를 따르세요.

  1. Vertex AI Feature Store를 검색하여 기존 특성이 요구사항을 충족하는지 확인합니다.

    1. Vertex AI Feature Store를 열고 사용 사례와 관련된 또는 모델에 전달하고 싶은 신호가 포함된 기능이 이미 있는지 확인하기 위해 검색을 수행합니다.

    2. Vertex AI Feature Store에서 사용하려는 특성이 있으면 Vertex AI Feature Store의 일괄 제공 기능을 사용하여 학습 라벨에 이러한 특성을 가져옵니다.

  2. 새 특성 만들기 Vertex AI Feature Store에 필요한 특성이 없는 경우 데이터 레이크의 데이터를 사용하여 새 특성을 만듭니다.

    1. 데이터 레이크에서 원시 데이터를 가져오고 필요한 특성 처리 및 엔지니어링을 수행하도록 스크립트를 작성합니다.

    2. Vertex AI Feature Store에서 가져온 특성 값과 데이터 레이크에서 만든 새 특성 값을 조인합니다. 이 특성 값을 병합하면 학습 데이터 세트가 생성됩니다.

    3. 주기적인 작업을 설정하여 새 특성의 업데이트된 값을 계산합니다. 특성이 유용하다고 판단하여 프로덕션에 배치하려면 필요한 주기로 정기 예약 작업을 설정하여 해당 특성의 업데이트된 값을 계산하고 Vertex AI Feature Store로 수집합니다. 새로운 특성을 Vertex AI Feature Store에 추가하면 이 특성을 온라인으로 제공하는 솔루션(온라인 예측 사용 사례용)이 자동으로 생기며, 자체 ML 모델에 대한 가치를 얻을 수 있는 조직의 다른 사용자와 특성을 공유할 수 있습니다.

자세한 내용은 Vertex AI Feature Store를 참조하세요.

블록 스토리지에 데이터 저장 금지

네트워크 파일 시스템과 같은 블록 스토리지 또는 가상 머신(VM) 하드 디스크에 데이터를 저장하지 마세요. 이러한 도구는 Cloud Storage 또는 BigQuery보다 관리하기 어렵고, 종종 성능 조정 문제가 발생합니다. 이와 비슷하게, Cloud SQL과 같은 데이터베이스에서 직접 데이터를 읽지 마세요. 대신 BigQuery 및 Cloud Storage에 데이터를 저장하세요. 자세한 내용은 Cloud Storage 문서 및 BigQuery에 대한 데이터 로드 소개를 참조하세요.

실험 분석에 Vertex AI 텐서보드 및 Vertex AI 실험 사용

모델을 개발할 때 Vertex AI 텐서보드를 사용하여 특정 실험을 시각화하고 비교하세요. 예를 들면 초매개변수를 기준으로 실험을 비교할 수 있습니다. Vertex AI 텐서보드는 데이터 과학자 및 ML 연구원의 실험 추적, 비교, 공유를 효율적으로 수행할 수 있도록 지원하는 비용 효율적인 보안 솔루션이 포함되어, 기업에서 즉시 사용 가능한 관리형 Vertex AI 텐서보드 서비스입니다. Vertex AI 텐서보드를 사용하면 시간 경과에 따른 손실 및 정확도와 같은 실험 측정항목을 추적하고 모델 그래프를 시각화하며 임베딩을 저차원 공간으로 투영할 수 있습니다.

Vertex AI 실험을 사용하여 Vertex ML Metadata와 통합하고 매개변수, 측정항목, 데이터 세트 및 모델 아키텍처 간의 연결을 기록하고 빌드합니다.

소규모 데이터 세트에 대해 노트북 인스턴스 내에서 모델 학습

데이터 세트의 크기가 작거나 대규모 데이터 세트의 하위 집합이라면 노트북 인스턴스 내에서 모델을 학습시키는 것으로 충분할 수 있습니다. 더 큰 데이터 세트 또는 분산 학습에 학습 서비스를 사용하면 도움이 될 수 있습니다. 학습을 일정에 따라 진행하거나 추가 데이터 도착 시 학습한다면, 데이터 세트의 크기가 작더라도 Vertex AI 학습 서비스를 사용하여 학습을 프로덕션화하는 것이 좋습니다.

초매개변수 조정으로 모델의 예측 정확도 극대화

모델의 예측 정확도를 극대화하기 위해서는 모델을 학습시킬 때 서로 다른 초매개변수 구성을 테스트하기 위해 Google Cloud 및 Vertex AI Vizier의 처리 인프라를 활용하는 Vertex AI Training에서 제공되는 자동화된 모델 향상 도구인 초매개변수 조정을 사용합니다. 초매개변수 조정은 최적 값에 도달하기 위해 여러 학습을 실행하는 동안 초매개변수를 수동으로 조정할 필요가 없습니다.

초매개변수 조정에 대한 자세한 내용은 초매개변수 조정 개요초매개변수 조정 사용을 참조하세요.

노트북 인스턴스를 사용하여 모델 이해

노트북 인스턴스를 사용하여 모델을 평가하고 이해합니다. scikit-learn과 같은 기본 제공되는 일반 라이브러리 외에도 노트북 인스턴스에는 What-if 도구(WIT)언어 통역 도구(LIT)가 포함되어 있습니다. WIT를 사용하면 여러 기법을 통해 모델의 편향을 양방향으로 분석할 수 있는 반면, LIT를 사용하면 시각적, 양방향, 확장 가능한 도구를 통해 자연어 처리 모델 동작을 파악할 수 있습니다.

특성 기여 분석을 사용하여 모델 예측에 대한 유용한 정보 획득

Vertex Explainable AI는 모델이 예측을 생성하는 이유에 대한 유용한 정보를 제공하도록 특성 기여 분석을 제공하는 ML 구현 프로세스의 핵심 부분입니다. 모델에서 예측을 수행하기 위한 입력으로 사용되는 각 특성의 중요도를 자세히 기술함으로써 Vertex Explainable AI는 모델의 동작을 더 효과적으로 이해하고 모델에서 신뢰를 쌓을 수 있게 해줍니다.

Vertex Explainable AI는 테이블 형식 및 이미지 데이터를 기반으로 커스텀 학습 모델을 지원합니다.

Vertex Explainable AI에 대한 자세한 내용은 다음을 참조하세요.

데이터 처리

데이터 처리에 권장되는 방법은 사용 중인 데이터 유형 및 프레임워크에 따라 달라집니다. 이 섹션에서는 일반적인 시나리오에 대한 간략한 권장사항을 제공합니다.

BigQuery를 사용하여 구조화된 데이터 및 반구조화된 데이터 처리

BigQuery를 사용하여 처리되지 않은 구조화된 데이터 또는 반구조화된 데이터를 저장합니다. BigQuery ML을 사용하여 모델을 빌드하는 경우 데이터 전처리를 위해 BigQuery에 빌드된 변환을 사용합니다. AutoML을 사용하는 경우 데이터 전처리를 위해 AutoML에 빌드된 변환을 사용합니다. 커스텀 모델을 빌드하는 경우 BigQuery 변환을 사용하는 것이 가장 비용 효율적인 방법일 수 있습니다.

Dataflow를 사용하여 데이터 처리

데이터 볼륨이 큰 경우 Apache Beam 프로그래밍 모델을 사용하는 Dataflow를 사용하는 것이 좋습니다. Dataflow를 사용하여 구조화되지 않은 데이터를 TFRecord와 같은 바이너리 데이터 형식으로 변환할 수 있습니다. 이 형식은 학습 프로세스 중 데이터 수집 성능을 향상시킬 수 있습니다.

서버리스 Spark 데이터 처리에 Dataproc 사용

또는 조직이 Apache Spark 코드베이스 및 기술에 투자한 경우 Dataproc를 사용할 수 있습니다. 메모리에 들어가는 더 작은 데이터 세트의 경우 일회용 Python 스크립트를 사용합니다.

Cloud SQL에서 표현할 수 없는 변환 또는 스트리밍을 위한 변환을 수행해야 할 경우 Dataflow와 Pandas 라이브러리 조합을 사용할 수 있습니다.

ML 메타데이터에 관리형 데이터 세트 사용

데이터가 ML용으로 사전 처리되면 Vertex AI에서 관리형 데이터 세트를 사용하는 것이 좋습니다. 관리형 데이터 세트를 사용하면 데이터와 커스텀 학습 모델 간의 명확한 링크를 만들 수 있으며 설명적, 자동 또는 수동 분할을 학습, 테스트, 검증 세트로 제공할 수 있습니다.

관리형 데이터 세트는 필요하지 않습니다. 학습 코드에서 데이터 분할을 더 제어하고 싶거나 데이터와 모델 간의 계보가 애플리케이션에 중요하지 않은 경우 이를 사용하지 않도록 선택할 수 있습니다.

자세한 내용은 데이터 세트커스텀 학습 애플리케이션에서 관리형 데이터 세트 사용을 참조하세요.

운영 학습

운영화된 학습은 모델 학습을 반복 가능하게 만들고, 반복을 추적하고, 성능을 관리하는 프로세스를 의미합니다. Vertex AI Workbench 노트북은 소규모 데이터 세트의 반복 개발에 편리하지만 코드를 운영하여 재현 가능하고 대규모 데이터 세트로 확장할 수 있도록 하는 것이 좋습니다. 이 섹션에서는 학습 루틴을 운영화하기 위한 도구 및 권장사항을 설명합니다.

관리형 서비스에서 코드 실행

Vertex AI 학습 서비스 또는 Vertex AI Pipelines에서 코드를 실행하는 것이 좋습니다.

선택적으로 딥 러닝 가상 머신 컨테이너에서 또는 Compute Engine에서 직접 코드를 실행할 수 있습니다. 하지만 이 접근 방법은 Vertex AI 관리형 서비스가 보다 비용 효율적인 자동 확장 및 버스트 기능을 제공하기 때문에 권장되지 않습니다.

학습 파이프라인으로 작업 실행 운영화

Vertex AI에서 학습 작업 실행을 운영화하기 위해 학습 파이프라인을 만듭니다. 일반 ML 파이프라인과 다른 학습 파이프라인은 학습 작업을 캡슐화합니다. 학습 파이프라인에 대해 자세히 알아보려면 학습 파이프라인 만들기REST 리소스: projects.locations.trainingPipelines를 참조하세요.

학습 체크포인트를 사용하여 현재 실험 상태 저장

이 문서의 ML 워크플로에서는 대화식으로 학습을 진행하지 않는다고 가정합니다. 모델이 실패하고 체크포인트가 지정되지 않았으면 모델이 메모리에 없기 때문에 학습 작업 또는 파이프라인이 종료되고 데이터가 손실됩니다. 이 시나리오를 방지하기 위해서는 상태가 손실되지 않도록 항상 학습 체크포인트를 사용하는 방식으로 작업하세요.

Cloud Storage에 학습 체크포인트를 저장하는 것이 좋습니다. 실험 또는 학습 실행을 위해 서로 다른 폴더를 만듭니다.

체크포인트에 대한 자세한 내용은 TensorFlow Core의 학습 체크포인트, PyTorch에서 일반 체크포인트 저장 및 로드, 머신러닝 설계 패턴을 참조하세요.

Cloud Storage에서 제공할 모델 아티팩트 준비

커스텀 학습 모델 또는 커스텀 컨테이너의 경우 버킷 리전이 프로덕션에 사용 중인 리전 엔드포인트와 일치하는 Cloud Storage 버킷에 모델 아티팩트를 저장합니다. 자세한 내용은 버킷 리전을 참조하세요.

동일한 Google Cloud 프로젝트에 Cloud Storage 버킷을 저장합니다. Cloud Storage 버킷이 다른 Google Cloud 프로젝트에 있는 경우 모델 아티팩트를 읽을 수 있는 Vertex AI 액세스 권한을 부여해야 합니다.

Vertex AI 사전 빌드된 컨테이너를 사용하는 경우 모델 아티팩트의 파일 이름이 다음 예시와 정확하게 일치하는지 확인합니다.

  • TensorFlow SavedModel: saved_model.pb

  • Scikit-learn: model.joblib 또는 model.pkl

  • XGBoost: model.bst

  • PyTorch: model.pth

하나 이상의 모델 아티팩트의 형식으로 모델을 저장하는 방법을 알아보려면 예측을 위해 모델 아티팩트 내보내기를 참조하세요.

정기적으로 새 특성 값 컴퓨팅

종종 모델에는 Vertex AI Feature Store에서 가져온 특성 하위 집합이 사용됩니다. Vertex AI Feature Store의 특성은 온라인 제공을 위해 미리 준비됩니다. 데이터 레이크에서 데이터를 가져와서 데이터 과학자가 만든 새 특성의 경우, 특성 새로고침 요구에 따라 필요한 주기로 새 특성 값을 정기적으로 컴퓨팅하기 위해 해당 데이터 처리 및 특성 추출 작업(또는 이상적으로 Dataflow)을 예약하고, 온라인 또는 일괄 제공을 위해 이를 Vertex AI Feature Store로 수집하는 것이 좋습니다.

모델 배포 및 서빙

모델 배포 및 제공은 모델을 프로덕션에 배치하는 것을 의미합니다. 학습 작업을 출력하면 Cloud Storage에 저장된 하나 이상의 모델 아티팩트가 출력되며, Vertex AI Model Registry에 업로드하여 예측 서빙 시 이 파일을 사용할 수 있습니다. 예측 제공은 두 가지 유형이 있습니다. 배치 예측은 정기적인 주기로 데이터 배치를 스코어링하기 위해 사용되고, 온라인 예측은 라이브 애플리케이션에 대한 거의 실시간의 데이터 스코어링을 위해 사용됩니다. 두 방법 모두 입력 데이터를 클라우드에서 호스팅되는 ML 모델로 전달하고, 각 데이터 인스턴스에 대해 추론을 가져와서 학습된 모델로부터 예측을 얻을 수 있게 해줍니다. 자세히 알아보려면 배치 예측 가져오기커스텀 학습 모델에서 온라인 예측 가져오기를 참조하세요.

클라이언트와 모델 서버 사이의 P2P 요청의 지연 시간을 낮추려면 Vertex AI 비공개 엔드포인트를 사용합니다. 이렇게 하면 특히 예측 요청을 수행하는 애플리케이션과 제공 바이너리가 동일한 로컬 네트워크 내에 있는 경우에 유용합니다. 인터넷 라우팅 오버헤드를 줄이고 Virtual Private Cloud를 사용하여 P2P 연결을 수행할 수 있습니다.

필요한 머신의 수와 유형 지정

예측을 위해 모델을 배포하려면 다른 중앙 처리 장치(CPU) 가상 머신(VM) 유형 또는 그래픽 처리 장치(GPU) 유형과 같이 모델에 적합한 하드웨어를 선택합니다. 자세한 내용은 머신 유형 또는 확장 등급 지정을 참조하세요.

모델에 대한 입력 계획

모델을 배포하는 것 외에도 입력을 모델에 어떻게 전달할지를 결정해야 합니다. 배치 예측을 사용하는 경우 데이터 레이크에서 데이터를 가져오거나 Vertex AI Feature Store 일괄 제공 API에서 가져올 수 있습니다. 온라인 예측을 사용하는 경우 입력 인스턴스를 서비스로 보낼 수 있고, 서비스가 응답으로 예측을 반환합니다. 자세한 내용은 응답 본문 세부정보를 참조하세요.

온라인 예측을 위해 모델을 배포하는 경우 모델의 엔드포인트로 전달해야 하는 입력 또는 특성을 제공할 수 있는 확장 가능하고 지연 시간이 낮은 방법이 필요합니다. 이렇게 하려면 Google Cloud에서 많은 데이터베이스 서비스 중 하나를 사용하거나 Vertex AI Feature Store의 온라인 제공 API를 사용하면 됩니다. 온라인 예측 엔드포인트를 호출하는 클라이언트는 먼저 특성 제공 솔루션을 호출하여 특성 입력을 가져온 후 이러한 입력으로 예측 엔드포인트를 호출할 수 있습니다.

스트리밍 수집을 사용하면 특성 값을 실시간으로 업데이트할 수 있습니다. 이 방법은 온라인 제공에 사용 가능한 최신 데이터를 우선시할 때 유용합니다. 예를 들어 스트리밍 이벤트 데이터를 수집할 수 있으며 Vertex AI Feature Store 스트리밍 수집은 몇 초 내에 이 데이터를 온라인 제공 시나리오에서 사용할 수 있습니다.

추가적으로 커스텀 예측 루틴을 사용하여 입력(요청) 및 출력(응답) 처리와 모델 서버에 대한 형식을 맞춤설정할 수 있습니다.

자동 확장 사용 설정

온라인 예측 서비스를 사용하는 경우에는 대부분 최소 및 최대 노드를 설정하여 자동 확장을 사용 설정하는 것이 좋습니다. 자세한 내용은 커스텀 학습 모델의 예측 가져오기를 참조하세요. 고가용성 서비스수준계약(SLA)을 보장하기 위해서는 최소 2개 이상의 노드로 자동 확장을 설정하세요.

확장 옵션에 대해 자세히 알아보려면 머신러닝 예측 확장을 참조하세요.

머신러닝 워크플로 조정

Vertex AI는 모델을 필요한 만큼 재학습할 수 있는 완전 관리형 서비스인 Vertex AI Pipelines로 ML 워크플로를 자동화하기 위해 ML 워크플로 조정을 제공합니다. 모델이 변화에 적응하고 시간 경과에 따라 성능을 유지하도록 재학습을 진행하면서 최적의 모델 재학습 주기를 선택할 때 데이터가 얼마나 변경될지를 고려하세요.

ML 조정 워크플로는 이미 자신의 모델을 설계 및 빌드하고, 프로덕션에 배치한 후 ML 모델에 작동하는 항목과 그렇지 않은 항목을 구분하려는 고객들에게 가장 효과적입니다. 실험에 사용되는 코드는 일부 수정을 통해 나머지 ML 워크플로에도 유용할 수 있습니다. 자동화된 ML 워크플로를 사용하기 위해서는 Python에 익숙하고, 컨테이너와 같은 기본 인프라를 이해하고 있고, ML 및 데이터 과학 지식이 있어야 합니다.

Vertex AI Pipelines를 사용하여 ML 워크플로 조정

각 데이터 프로세스, 학습, 평가, 테스트, 배포를 수동으로 시작할 수 있지만 Vertex AI Pipelines를 사용하여 흐름을 조정하는 것이 좋습니다. 자세한 내용은 MLOps 수준 1: ML 파이프라인 자동화를 참조하세요.

Vertex AI Pipelines는 KubeFlow, TensorFlow Extended(TFX), Airflow에서 생성된 DAG 실행을 지원합니다.

유연한 파이프라인 생성을 위해 Kubeflow Pipelines 사용

관리되는 파이프라인을 작성하려는 대부분의 사용자의 경우 Kubeflow Pipelines SDK가 권장됩니다. Kubeflow Pipelines는 간단한 코드를 사용하여 파이프라인을 생성할 수 있게 해주는 유연한 방식입니다. 또한 AutoML과 같은 Vertex AI 기능을 파이프라인에 포함할 수 있게 해주는 Google Cloud 파이프라인 구성요소를 제공합니다. Kubeflow Pipelines에 대해 자세히 알아보려면 Kubeflow PipelinesVertex AI Pipelines를 참조하세요.

아티팩트 구성

아티팩트는 ML 워크플로의 각 단계에서 발생하는 출력입니다. 표준화된 방법으로 구성하는 것이 가장 좋습니다.

ML 모델 아티팩트 구성

다음 위치에 아티팩트를 저장합니다.

스토리지 위치 아티팩트
소스 제어 저장소
  • Vertex AI Workbench 노트북
  • 파이프라인 소스 코드
  • 사전 처리 함수
  • 모델 소스 코드
  • 모델 학습 패키지
  • 제공 함수
실험 및 ML 메타데이터
  • 실험
  • 매개변수
    • 초매개변수
    • 메타 매개변수
  • 측정항목
  • 데이터 세트 아티팩트
  • 모델 아티팩트
  • 파이프라인 메타데이터
Vertex AI Model Registry
  • 학습된 모델
Artifact Registry
  • 파이프라인 컨테이너
  • 커스텀 학습 환경
  • 커스텀 예측 환경
Vertex AI Prediction
  • 배포된 모델

파이프라인 정의 및 학습 코드에 소스 제어 저장소 사용

소스 제어를 사용하여 ML 파이프라인 및 이러한 파이프라인에서 사용하기 위해 빌드하는 커스텀 구성요소의 버전을 제어할 수 있습니다. Artifact Registry를 사용하여 공개적으로 표시하지 않고도 Docker 컨테이너 이미지를 저장, 관리, 보호할 수 있습니다.

모델 모니터링

모델을 프로덕션에 배포한 후 모델이 예상대로 작동하는지 확인하기 위해 성능을 모니터링해야 합니다. Vertex AI는 ML 모델을 모니터링하는 두 가지 방법을 제공합니다.

  • 편향 감지: 이 접근방법은 모델 학습과 프로덕션 데이터 사이의 왜곡 정도를 확인합니다.

  • 드리프트 감지: 이 유형의 모니터링에서는 프로덕션 데이터에서의 드리프트를 확인합니다. 드리프트는 입력의 통계 속성과 모델이 예측하려고 시도하는 대상이 예측할 수 없는 방법으로 시간 경과에 따라 변경될 때 발생합니다. 그 결과 시간이 지날수록 예측 정확도가 낮아질 수 있기 때문에 문제가 발생합니다.

모델 모니터링은 숫자 및 범주 특성과 같은 구조화된 데이터에 대해 작동하지만, 이미지와 같은 구조화되지 않은 데이터에 대해 작동하지 않습니다. 자세한 내용은 특성 편향 또는 드리프트에 대한 모니터링 모델을 참조하세요.

편향 및 드리프트 감지 사용

프로덕션 데이터가 학습 데이터에서 벗어났음을 알고 있는 것은 모델이 프로덕션에서 예상대로 수행되지 않음을 나타내는 강력한 표시이기 때문에 가능한 한 편향 감지를 사용하세요. 편향 감지를 위해서는 모델 학습을 위해 사용한 학습 데이터에 포인터를 제공함으로써 모델 모니터링 작업을 설정합니다.

학습 데이터에 액세스 권한이 없으면 시간 경과에 따라 입력이 변경될 때 이를 알 수 있도록 드리프트 감지를 사용 설정합니다.

드리프트 감지를 사용하여 시간 경과에 따라 프로덕션 데이터가 편차를 보이는지 여부를 모니터링합니다. 드리프트 감지를 위해서는 모니터링하려는 기능 및 경고를 트리거하려는 해당 임곗값을 사용 설정합니다.

알림 기준 미세 조정

편향 또는 드리프트가 데이터에서 발생할 때 이를 알 수 있도록 알림 설정에 사용되는 기준을 조정합니다. 알림 기준은 사용 사례, 사용자의 도메인 전문 기술, 초기 모델 모니터링 측정항목에 따라 결정됩니다. 모니터링을 사용하여 측정항목을 기준으로 대시보드를 만들거나 알림을 구성하는 방법을 알아보려면 클라우드 모니터링 측정항목을 참조하세요.

특성 기여 분석을 사용하여 데이터 드리프트 또는 편향 감지

Vertex Explainable AI의 특성 기여 분석을 사용하여 모델 성능이 저하되는 초기 표시기로 데이터 드리프트 또는 편향을 감지할 수 있습니다. 예를 들어 모델이 원래 학습 및 테스트 데이터에서 예측을 위해 5가지 특성을 사용했지만 프로덕션에 들어갔을 때 완전히 다른 특성을 사용하기 시작한 경우 특성 기여 분석이 모델 성능 저하를 감지하는 데 도움이 됩니다.

이 방법은 임베딩 및 시계열과 같이 기존의 편향 및 드리프트 방법을 사용하여 비교하기 어려운 복잡한 특성 유형에 특히 유용합니다. Vertex Explainable AI를 사용하여 특성 기여 분석은 모델 성능이 저하되는 경우를 나타낼 수 있습니다.

다음 단계