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

Last reviewed 2024-09-09 UTC

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

다음 다이어그램은 관련 상품을 포함하여 이 문서에서 다루는 ML 워크플로 단계를 간략하게 보여줍니다.

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

Google Cloud의 ML 워크플로

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

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

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

  • 주로 Google Cloud 서비스를 사용합니다. 하이브리드 및 온프레미스 접근방법은 이 문서에서 다루지 않습니다.
  • 학습 데이터를 수집하고 이를 Google Cloud에 저장합니다.
  • ML, 빅데이터 도구, 데이터 전처리에 대한 중급 수준의 지식을 갖고 있을 뿐 아니라 Cloud Storage, BigQueryGoogle Cloud 기초를 숙지하고 있습니다.

ML을 처음 사용하는 경우 Google의 ML 단기집중과정을 참고하세요.

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

ML 워크플로 단계 권장 도구 및 제품
ML 환경 설정
ML 개발
데이터 준비
ML 학습
모델 배포 및 서빙
ML 워크플로 조정
아티팩트 구성
모델 모니터링
관리형 오픈소스 플랫폼

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

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

ML 환경 설정

ML 환경을 설정할 때는 다음 권장사항을 따르는 것이 좋습니다.

실험 및 개발에 Vertex AI Workbench 인스턴스 사용

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

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

또는 Google Cloud의 보안 및 규정 준수 기능을 사용하는 공동작업을 위한 관리형 노트북 환경인 Colab Enterprise를 사용할 수 있습니다.

각 팀원별로 Vertex AI Workbench 인스턴스 만들기

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

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

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

Python용 Vertex AI SDK 사용

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

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

ML 개발

ML 개발을 위한 권장사항은 다음과 같습니다.

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

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

학습 데이터 준비

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

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

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

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

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

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

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

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

이 경우 Cloud Storage에 대한 읽기 및 쓰기 처리량이 늘어나므로 개별 이미지, 동영상, 오디오 클립의 수가 많으면 큰 파일로 결합하세요. 100~10,000개 샤드 사이의 최소 100mb 이상 파일을 목표로 합니다.

데이터 관리를 사용 설정하기 위해 Cloud Storage 버킷 및 디렉터리를 사용하여 샤드를 그룹화합니다. 자세한 내용은 Cloud Storage 제품 개요를 참고하세요.

Google Cloud 콘솔에서 데이터 라벨링 서비스 사용

Google Cloud 콘솔에서 Vertex AI 페이지를 통해 학습 데이터를 만들고 가져올 수 있습니다. Gemini의 프롬프트 및 조정 기능을 사용하면 맞춤 분류, 항목 추출, 감정 분석으로 텍스트 데이터를 관리할 수 있습니다. Google Cloud 콘솔 Marketplace에는 LabelboxSnorkel Flow와 같은 데이터 라벨 지정 솔루션도 있습니다.

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

Vertex AI Feature Store를 사용하여 중앙 위치에서 ML 기능을 만들고, 유지 관리하고, 공유하고, 서빙할 수 있습니다. 지연 시간이 짧은 워크로드를 서빙하도록 최적화되어 있으며 BigQuery 테이블 또는 뷰에 특성 데이터를 저장할 수 있습니다. Vertex AI Feature Store를 사용하려면 온라인 스토어 인스턴스를 만들고 특성 뷰를 정의해야 합니다. BigQuery는 사용자가 오프라인으로 작업할 수 있도록 이전 특성 데이터를 비롯한 모든 특성 데이터를 저장합니다.

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

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

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

데이터 세트의 크기가 작은 경우 Vertex AI Workbench 인스턴스 내에서 모델 학습

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

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

모델의 예측 정확도를 극대화하기 위해서는 모델을 학습시킬 때 서로 다른 하이퍼파라미터 구성을 테스트하기 위해 Google Cloud 및 Vertex AI Vizier의 처리 인프라를 활용하는 Vertex AI Training 서비스에서 제공되는 자동화된 모델 향상 도구인 하이퍼파라미터 조정을 사용합니다. 하이퍼파라미터 조정을 사용하면 최적 값에 도달하기 위해 여러 차례 학습을 실행하는 동안 하이퍼파라미터를 수동으로 조정하지 않아도 됩니다.

하이퍼파라미터 조정에 대한 자세한 내용은 하이퍼파라미터 조정 개요하이퍼파라미터 조정 작업 만들기를 참고하세요.

Vertex AI Workbench 인스턴스를 사용하여 모델 이해

Vertex AI Workbench 인스턴스를 사용하여 모델을 평가하고 이해합니다. Vertex AI Workbench 인스턴스에는 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 변환을 사용하는 것이 가장 비용 효율적인 방법일 수 있습니다.

대규모 데이터 세트의 경우 BigQuery에서 파티셔닝을 사용하는 것이 좋습니다. 이렇게 하면 쿼리 성능과 비용 효율성을 개선할 수 있습니다.

Dataflow를 사용하여 데이터 처리

데이터 볼륨이 큰 경우 Apache Beam 프로그래밍 모델을 사용하는 Dataflow를 사용하는 것이 좋습니다. Dataflow를 사용하여 구조화되지 않은 데이터를 TFRecord와 같은 바이너리 데이터 형식으로 변환할 수 있습니다. 이렇게 하면 학습 단계에서 데이터 수집 성능이 높아집니다.

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

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

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

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

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

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

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

ML 학습

ML 학습을 위한 권장사항은 다음과 같습니다.

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

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

코드를 Vertex AI Training 서비스에서 실행하거나 Vertex AI Pipelines로 조정하는 것이 좋습니다. 원하는 경우 Deep Learning VM Image, Deep Learning Containers 또는 Compute Engine에서 직접 코드를 실행할 수 있습니다. 하지만 자동 확장 및 버스트 기능과 같은 Vertex AI의 기능을 사용하는 경우 이 접근 방식을 사용하지 않는 것이 좋습니다.

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

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

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

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

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

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

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

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

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

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

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

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

모델에 대한 입력 계획

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

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

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

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

자동 확장 사용 설정

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

확장 옵션에 대해 자세히 알아보려면 ML 예측 확장을 참고하세요.

ML 워크플로 조정

ML 워크플로를 조정하는 경우 다음 권장사항을 따르는 것이 좋습니다.

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 워크플로를 위해 Vertex AI 기반 Ray 사용

Ray는 Python 오픈소스, 확장 가능한 분산 컴퓨팅 프레임워크를 통해 머신러닝 워크플로를 확장하는 일반적이고 통합된 분산형 프레임워크를 제공합니다. 이 프레임워크는 ML 생태계에 다양한 분산 프레임워크가 포함되어 발생하는 문제를 해결하는 데 도움이 될 수 있습니다(예: 다양한 태스크 동시 로드, 예약, 리소스 관리 모드를 처리해야 하는 경우). Vertex AI 기반 Ray를 사용하여 Vertex AI 기반 애플리케이션을 개발할 수 있습니다.

아티팩트 구성

아티팩트를 구성할 때는 다음 권장사항을 따르는 것이 좋습니다.

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

ML 모델 아티팩트를 구성합니다.

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

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

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

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

모델 모니터링

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

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

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

편향 및 드리프트 감지 사용

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

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

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

알림 기준 미세 조정

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

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

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

이 방법은 기존의 편향 및 드리프트 감지 방법을 사용하여 비교하기 어려운 임베딩, 시계열과 같이 복잡한 특성 유형에 특히 효과적입니다. 특성 기여 분석을 Vertex Explainable AI와 함께 사용하면 모델 성능이 저하되었는지 확인할 수 있습니다.

BigQuery를 사용하여 모델 모니터링 지원

BigQuery ML 모델 모니터링은 시간 경과에 따른 ML 모델의 성능을 추적하고 평가하는 데 도움이 되는 도구 및 기능의 집합입니다. 모델 모니터링은 실제 애플리케이션에서 모델 정확성과 안정성을 유지하는 데 필수적입니다. 다음 문제를 모니터링하는 것이 좋습니다.

  • 데이터 비대칭: 이 문제는 학습 데이터와 서빙 데이터 간에 특성 값 분포가 다를 때 발생합니다. 모델 학습 중에 저장되는 학습 통계는 원본 데이터가 없어도 비대칭 감지를 지원할 수 있습니다.
  • 데이터 드리프트: 실제 데이터는 시간이 지남에 따라 자주 변경됩니다. 모델 모니터링을 사용하면 모델이 프로덕션에서 보는 입력 데이터(서빙 데이터)가 학습된 데이터(학습 데이터)와 크게 달라지기 시작하는 시점을 파악할 수 있습니다. 이러한 드리프트로 인해 성능이 저하될 수 있습니다.
  • 고급 데이터 비대칭 또는 드리프트: 세분화된 비대칭 또는 드리프트 통계를 원하는 경우 고급 데이터 비대칭 또는 드리프트를 모니터링합니다.

다음 단계