관리 메뉴

KorSA

GCP(Google Cloud Platform)와 MLOps 본문

Development Experience/*Ops

GCP(Google Cloud Platform)와 MLOps

Praiv. 2022. 1. 4. 17:38
320x100

※ 이 글은 "MLOps: Big Picture in GCP"를 참고하여 작성되었습니다.

 

GCP(Google Cloud Platform)이란 아마존의 AWS, MS의 Azure와 같은 퍼플릭 클라우드 서비스이다.

 

GCP에서는 단순히 저장 공간과 연산 능력을 제공하는 서비스 이외에도 Machine Learning을 위한 MLOps 인프라도 있는데, MLOps의 각 영역에 특화된 여러 개의 서비스는 다음과 같다.

 

1. GKE(Google Kubernetes Engine)

Kubernetes를 한번 wrapping하여 사용자가 Kubernetes의 세세한 설정(how it works)을 신경쓰지 않고도 Kubernetes의 전반적인 동작(what it does)을 제어하는 서비스이다.

 

2. Kubeflow

GKE가 Kubernetes상의 job들을 처리하는 역할이라면, Kubeflow는 이 job들이 어떠한 dependency를 갖고 어느 순서로 작동해야 하는지를 관리하는 서비스이다.

 

3. AI Platform Pipeline

Kubeflow는 직접 관리할 경우 담당자 한 명이 전담해야 할 정도로 복잡하기 때문에 kubeflow를 총괄적으로 관리해주는 서비스이다.

 

4. AI Platform Notebook

GCP상에서 제공해주는 Jupyter Lab이다.

 

5. TFX(TensorFlow eXtended)

TensorFlow의 확장 버전으로 AI Platform Pipeline과 Kubernetes의 job을 손쉽게 다루는 서비스이다.

* TensorFlow: 머신러닝과 딥러닝을 위한 모델 프레임워크

 

6. Cloud Function

serverless 형태의 서비스로, Cloud Storage나 BigQuery 같은 DataSource에서 변화가 감지되면 이벤트를 트리거하여 AI Platform Pipeline이 실행되도록 한다.

 

7. Cloud Build

Code Repository에서 변경사항이 감지되면 AI Platform Pipeline이 실행되도록 하는 서비스이다.

 

8. 자동화

Cloud Function과 Cloud Build를 사용하면 GCP 환경 내에서 아래와 같은 자동화된 작업을 실행할 수 있다.

  1. DataSet이 바뀌면 변화를 자동으로 감지하여 AI Platform Pipeline을 실행시킴.
  2. 데이터 전처리 전략 변경, 모델 변경, 배포 옵션 변경 등 Source Code 수준의 변화가 생길 경우 이를 자동으로 감지하여 AI Platform Piepline을 실행시킴.

 

9. GCP의 MLOps 서비스를 써볼 만한 상황?

GCP에서 제공해주는 MLOps 서비스들이 여러개인데 아마 사용자들은 이들 전부 혹은 이들 중 일부의 서비스가 필요로 할 것이다. 아래의 세 경우는 ML 작업을 진행할 때 대표적으로 발생하는 케이스와 적절한 GCP 서비스이다.

  1. 데이터가 점점 많아진다.. -> Dataflow
  2. 모델 발전과 데이터 양의 증가가 동시에 일어난다.. -> AI Platform Training / Tuning
  3. end user의 수가 점점 증가한다.. -> Ai Platform Prediction

 

10. 데이터 저장

데이터 저장은 일반적인 경우 CSV 등의 파일 시스템 혹은 DBMS를 사용하는데 GCP에서는 데이터 버전 컨트롤을 지원해주는 Cloud Storage 서비스를 사용하거나 BigQuery를 사용한다.

 

파일시스템과 BigQuery를 GCP에서 사용하려면 ExampleGen(파일 시스템)이나 BigQueryExampleGen(BigQuery) 같은 패키지를 TFX hook을 통해 import하여 사용할 수 있다.

 

728x90
728x90
Comments