이 문서에서는 데이터 및 코드 기반의 커스텀 학습 모델을 중심으로 Google Cloud에서 머신러닝(ML)을 구현하기 위한 권장사항을 소개합니다. 추가 검토를 위한 키 작업 및 링크를 포함하여 ML 워크플로 전반에 걸쳐 커스텀 학습 모델을 개발하는 방법에 대한 권장사항을 제공합니다.
다음 다이어그램은 관련 제품을 포함하여 이 문서에서 다루는 ML 워크플로 단계 개요를 간략하게 보여줍니다.
- ML 개발
- 데이터 준비
- ML 학습
- 모델 배포 및 서빙
- ML 워크플로 조정
- 아티팩트 구성
- 모델 모니터링
이 문서는 모든 권장사항을 포함하지 않습니다. 이 문서의 목적은 데이터 과학자 및 ML 설계자가 Google Cloud에서 ML을 사용하는 것과 관련된 여러 활동 범위를 이해하고 그에 따라 계획할 수 있도록 돕기 위한 것입니다. 또한 AutoML과 같은 ML 개발 대안이 권장 도구 및 제품 사용에 설명되어 있지만, 이 문서에서는 주로 커스텀 학습 모델에 중점을 둡니다.
이 문서의 권장사항을 따르기 전에 Vertex AI 소개를 읽어보는 것이 좋습니다.
이 문서에서는 다음을 가정합니다.
- 주로 Google Cloud 서비스를 사용합니다. 하이브리드 및 온프레미스 접근방법은 이 문서에서 다뤄지지 않습니다.
- 학습 데이터를 수집하고 이를 Google Cloud에 저장합니다.
- ML, 빅데이터 도구, 데이터 전처리에 대한 중급 수준의 지식을 갖고 있을 뿐 아니라 Cloud Storage, BigQuery, Google 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은 이미지 분류 및 테이블 형식 회귀와 같은 일반적인 문제에 대한 학습 루틴을 제공합니다. 아키텍처 선택, 초매개변수 조정, 머신 프로비저닝과 같은 모델 학습 및 제공에 대한 거의 모든 특성이 사용자를 위해 처리되어 있습니다. |
|
Vertex AI 커스텀 학습 모델 | Vertex를 사용하면 고유 커스텀 학습 루틴을 실행하고 서버리스 아키텍처에 모든 유형의 모델을 배포할 수 있습니다. Vertex AI는 모델을 쉽게 개발할 수 있도록 초매개변수 조정 및 모니터링과 같은 추가적인 서비스를 제공합니다. 커스텀 학습 방법 선택을 참고하세요. |
|
ML 환경 설정
ML 환경을 설정할 때는 다음 권장사항을 따르는 것이 좋습니다.
- 실험 및 개발에 Vertex AI Workbench 노트북 사용
- 각 팀원에 대해 Vertex AI Workbench 인스턴스 만들기
- 기업 정책을 기반으로 ML 리소스 및 아티팩트 저장
- Python용 Vertex AI SDK 사용
실험 및 개발에 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를 사용하는 Python 방식의 방법인 Python용 Vertex AI SDK를 사용하여 PyTorch, TensorFlow, XGBoost, scikit-learn 등 즐겨 찾는 ML 프레임워크와 원활하게 작동합니다.
또는 브라우저를 통한 사용자 인터페이스로 Vertex AI 기능을 지원하는 Google Cloud 콘솔을 사용할 수 있습니다.
ML 개발
ML 개발을 위한 권장사항은 다음과 같습니다.
학습 데이터 준비
BigQuery에 구조화된 데이터 및 반구조화된 데이터 저장
Cloud Storage에 이미지, 동영상, 오디오, 구조화되지 않은 데이터 저장
구조화된 데이터에 Vertex AI Feature Store 사용
실험 분석에 Vertex AI TensorBoard 및 Vertex AI Experiments 사용
소규모 데이터 세트에 대해 Vertex AI Workbench 인스턴스 내에서 모델 학습
초매개변수 조정으로 모델의 예측 정확도 극대화
Vertex AI Workbench 인스턴스를 사용하여 모델 이해
특성 기여 분석을 사용하여 모델 예측에 대한 유용한 정보 획득
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 콘솔 마켓플레이스에는 Labelbox 및 Snorkel Flow와 같은 데이터 라벨링 솔루션도 있습니다.
구조화된 데이터에 Vertex AI Feature Store 사용
Vertex AI Feature Store를 사용하여 중앙 위치에서 ML 기능을 만들고, 유지 관리하고, 공유하고, 제공할 수 있습니다. 지연 시간이 짧은 워크로드를 제공하도록 최적화되어 있으며 BigQuery 테이블 또는 뷰에 지형지물 데이터를 저장할 수 있습니다. Vertex AI Feature Store를 사용하려면 온라인 스토어 인스턴스를 만들고 특성 뷰를 정의해야 합니다. BigQuery는 오프라인으로 작업할 수 있도록 이전 특성 데이터를 비롯한 모든 특성 데이터를 저장합니다.
실험 분석에 Vertex AI 텐서보드 및 Vertex AI Experiments 사용
모델을 개발할 때 Vertex AI TensorBoard를 사용하여 특정 실험을 시각화하고 비교하세요. 예를 들면 초매개변수를 기준으로 실험을 비교할 수 있습니다. 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 학습 서비스에서 제공되는 자동화된 모델 향상 도구인 초매개변수 조정을 사용합니다. 초매개변수 조정을 사용하면 최적 값에 도달하기 위해 여러 차례 학습을 실행하는 동안 초매개변수를 수동으로 조정하지 않아도 됩니다.
초매개변수 조정에 대한 자세한 내용은 초매개변수 조정 개요 및 초매개변수 조정 작업 만들기를 참고하세요.
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를 사용하여 테이블 형식 데이터 처리
Dataflow를 사용하여 데이터 처리
서버리스 Spark 데이터 처리에 Dataproc 사용
Vertex ML Metadata에 관리형 데이터 세트 사용
데이터 처리에 권장되는 방법은 사용 중인 데이터 유형 및 프레임워크에 따라 달라집니다. 이 섹션에서는 일반적인 시나리오에 대한 간략한 권장사항을 제공합니다.
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 학습에는 다음 권장사항을 따르는 것이 좋습니다.
관리형 서비스에서 코드 실행.
학습 파이프라인으로 작업 실행 운영화.
학습 체크포인트를 사용하여 현재 실험 상태 저장.
Cloud Storage에서 제공할 모델 아티팩트 준비
정기적으로 새 특성 값 컴퓨팅
ML 학습에서 운영화된 학습은 반복을 추적하고 성능을 관리하여 모델 학습을 반복 가능하게 만드는 프로세스를 의미합니다. Vertex AI Workbench 인스턴스는 소규모 데이터 세트의 반복 개발에 편리하지만 코드를 운영하여 재현 가능하고 대규모 데이터 세트로 확장할 수 있도록 하는 것이 좋습니다. 이 섹션에서는 학습 루틴을 운영화하기 위한 도구 및 권장사항을 설명합니다.
관리형 서비스에서 코드 실행
Vertex AI 학습 서비스에서 코드를 실행하거나 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 일괄 서빙 API에서 가져올 수 있습니다. 온라인 예측을 사용하는 경우 입력 인스턴스를 서비스로 보낼 수 있고, 서비스가 응답으로 예측을 반환합니다. 자세한 내용은 응답 본문 세부정보를 참고하세요.
온라인 예측을 위해 모델을 배포하는 경우 모델의 엔드포인트로 전달해야 하는 입력 또는 특성을 제공할 수 있는 확장 가능하고 지연 시간이 낮은 방법이 필요합니다. 이렇게 하려면 Google Cloud의 여러 데이터베이스 서비스 중 하나를 사용하거나 Vertex AI Feature Store의 온라인 서빙 API를 사용하면 됩니다. 온라인 예측 엔드포인트를 호출하는 클라이언트는 먼저 특성 서빙 솔루션을 호출하여 특성 입력을 가져온 후 이러한 입력으로 예측 엔드포인트를 호출할 수 있습니다. 예를 들어 모델을 점진적으로 교체하기 위해 동일한 엔드포인트에 여러 모델을 제공할 수 있습니다. 또는 여러 배포에서 리소스를 공유하여 테스트 및 프로덕션과 같은 여러 엔드포인트에 모델을 배포할 수 있습니다.
스트리밍 수집을 사용하면 특성 값을 실시간으로 업데이트할 수 있습니다. 이 방법은 온라인 서빙에 사용 가능한 최신 데이터를 우선시할 때 유용합니다. 예를 들어 스트리밍 이벤트 데이터를 수집할 수 있으며 Vertex AI Feature Store 스트리밍 수집은 몇 초 내에 이 데이터를 온라인 서빙 시나리오에서 사용할 수 있습니다.
추가적으로 커스텀 예측 루틴을 사용하여 입력 (요청) 및 출력 (응답) 처리와 모델 서버에 대한 형식을 맞춤설정할 수 있습니다.
자동 확장 사용 설정
온라인 예측 서비스를 사용하는 경우에는 대부분 최소 및 최대 노드를 설정하여 자동 확장을 사용 설정하는 것이 좋습니다. 자세한 내용은 커스텀 학습 모델의 예측 가져오기를 참조하세요. 고가용성 서비스수준계약(SLA)을 보장하기 위해서는 최소 2개 이상의 노드로 자동 확장을 설정하세요.
확장 옵션에 대해 자세히 알아보려면 ML 예측 확장을 참고하세요.
ML 워크플로 조정
ML 워크플로 조정에는 다음 권장사항을 따르는 것이 좋습니다.
Vertex AI Pipelines를 사용하여 ML 워크플로 조정
유연한 파이프라인 생성을 위해 Kubeflow Pipelines 사용
분산 ML 워크플로에 Vertex AI의 Ray 사용
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 Pipelines 및 Vertex AI Pipelines를 참고하세요.
분산 ML 워크플로를 위해 Vertex AI에서 Ray 사용
Ray는 Python 오픈소스, 확장 가능, 분산형 컴퓨팅 프레임워크를 통해 머신러닝 워크플로를 확장하는 일반적이고 통합된 분산형 프레임워크를 제공합니다. 이 프레임워크는 ML 생태계에 다양한 분산 프레임워크가 포함되어 발생하는 문제를 해결하는 데 도움이 될 수 있습니다(예: 여러 작업 병렬 처리, 예약, 리소스 관리 모드를 처리해야 하는 경우). Vertex AI용 Ray를 사용하여 Vertex AI에서 애플리케이션을 개발할 수 있습니다.
아티팩트 구성
아티팩트를 구성할 때 다음 권장사항을 따르는 것이 좋습니다.
아티팩트는 ML 워크플로의 각 단계에서 발생하는 출력입니다. 표준화된 방법으로 구성하는 것이 가장 좋습니다.
ML 모델 아티팩트를 구성합니다.
다음 위치에 아티팩트를 저장합니다.
스토리지 위치 | 아티팩트 |
소스 제어 저장소 |
|
실험 및 ML 메타데이터 |
|
모델 레지스트리 |
|
Artifact Registry |
|
Vertex AI Prediction |
|
파이프라인 정의 및 학습 코드에 소스 제어 저장소 사용
소스 제어를 사용하여 ML 파이프라인 및 이러한 파이프라인에서 사용하기 위해 빌드하는 커스텀 구성요소의 버전을 제어할 수 있습니다. Artifact Registry를 사용하여 공개적으로 표시하지 않고도 Docker 컨테이너 이미지를 저장, 관리, 보호할 수 있습니다.
모델 모니터링
모델을 프로덕션에 배포한 후 모델이 예상대로 작동하는지 확인하기 위해 성능을 모니터링해야 합니다. Vertex AI는 ML 모델을 모니터링하는 두 가지 방법을 제공합니다.
- 편향 감지: 이 접근방법은 모델 학습과 프로덕션 데이터 사이의 왜곡 정도를 확인합니다.
- 드리프트 감지: 이 유형의 모니터링에서는 프로덕션 데이터에서의 드리프트를 확인합니다. 드리프트는 입력의 통계 속성과 모델이 예측하려고 시도하는 대상이 예측할 수 없는 방법으로 시간 경과에 따라 변경될 때 발생합니다. 그 결과 시간이 지날수록 예측 정확도가 낮아질 수 있기 때문에 문제가 발생합니다.
모델 모니터링은 숫자 및 범주 특성과 같은 구조화된 데이터에 대해 작동하지만, 이미지와 같은 구조화되지 않은 데이터에 대해 작동하지 않습니다. 자세한 내용은 특성 편향 또는 드리프트에 대한 모니터링 모델을 참조하세요.
편향 및 드리프트 감지 사용
프로덕션 데이터가 학습 데이터에서 벗어났음을 알고 있는 것은 모델이 프로덕션에서 예상대로 수행되지 않음을 나타내는 강력한 표시이기 때문에 가능한 한 편향 감지를 사용하세요. 편향 감지를 위해서는 모델 학습을 위해 사용한 학습 데이터에 포인터를 제공함으로써 모델 모니터링 작업을 설정합니다.
학습 데이터에 액세스할 수 없다면 시간 경과에 따라 입력이 변경될 때 이를 알 수 있도록 드리프트 감지를 사용 설정합니다.
드리프트 감지를 사용하여 시간 경과에 따라 프로덕션 데이터가 편차를 보이는지 여부를 모니터링합니다. 드리프트 감지를 위해서는 모니터링하려는 기능 및 경고를 트리거하려는 해당 임곗값을 사용 설정합니다.
알림 기준 미세 조정
편향 또는 드리프트가 데이터에서 발생할 때 이를 알 수 있도록 알림 설정에 사용되는 기준을 조정합니다. 알림 기준은 사용 사례, 사용자의 도메인 전문 기술, 초기 모델 모니터링 측정항목에 따라 결정됩니다. 모니터링을 사용하여 측정항목을 기준으로 대시보드를 만들거나 알림을 구성하는 방법을 알아보려면 클라우드 모니터링 측정항목을 참조하세요.
특성 기여 분석을 사용하여 데이터 드리프트 또는 편향 감지
Vertex Explainable AI의 특성 기여 분석을 사용하여 모델 성능이 저하될 수 있다는 초기 신호로 데이터 드리프트 또는 편향을 감지할 수 있습니다. 예를 들어 모델이 원래 학습 및 테스트 데이터에서 예측을 위해 5가지 특성을 사용했지만 프로덕션에 들어갔을 때 완전히 다른 특성을 사용하기 시작한 경우 특성 기여 분석이 모델 성능 저하를 감지하는 데 도움이 됩니다.
이 방법은 기존의 편향 및 드리프트 감지 방법을 사용하여 비교하기 어려운 임베딩, 시계열과 같이 복잡한 특성 유형에 특히 효과적입니다. Vertex Explainable AI를 사용하여 특성 기여 분석은 모델 성능이 저하되는 경우를 나타낼 수 있습니다.
BigQuery를 사용하여 모델 모니터링 지원
BigQuery ML 모델 모니터링은 시간 경과에 따른 ML 모델의 성능을 추적하고 평가하는 데 도움이 되는 도구 및 기능의 집합입니다. 모델 모니터링은 실제 애플리케이션에서 모델 정확성과 안정성을 유지하는 데 필수적입니다. 다음 문제를 모니터링하는 것이 좋습니다.
- 데이터 비대칭: 이 문제는 학습 데이터와 제공 데이터 간에 특성 값 분포가 다를 때 발생합니다. 모델 학습 중에 저장되는 학습 통계는 원본 데이터가 없어도 편향 감지를 사용 설정할 수 있습니다.
- 데이터 드리프트: 실제 데이터는 시간이 지남에 따라 자주 변경됩니다. 모델 모니터링을 사용하면 모델이 프로덕션에서 보는 입력 데이터 (제공 데이터)가 학습된 데이터 (학습 데이터)와 크게 달라지기 시작하는 시점을 파악할 수 있습니다. 이로 인해 성능이 저하될 수 있습니다.
- 고급 데이터 비대칭 또는 드리프트: 세분화된 편향 또는 드리프트 통계를 원하는 경우 고급 데이터 비대칭 또는 드리프트를 모니터링합니다.
다음 단계
- Vertex AI 문서
- 머신러닝 작업 (MLOps) 실무자 가이드: ML의 지속적 배포 및 자동화를 위한 프레임워크
- Google Cloud의 AI 및 ML 워크로드와 관련된 원칙 및 권장사항에 관한 개요는 아키텍처 프레임워크의 AI 및 ML 관점을 참고하세요.
- 그 밖의 참조 아키텍처, 다이어그램, 튜토리얼, 권장사항을 알아보려면 클라우드 아키텍처 센터를 확인하세요.