IT

Continuous Machine Learning 환경을 위한 Lab 환경 구축하기

concave 2021. 9. 27. 20:39
반응형

Machine Learning 모델을 개발하다보면 개발 완료된 모델에 대한 지속적인 통합, 지속적인 배포 및 지속적인 학습을 고려해서 개발이 필요하며 처음에 시간이 좀 더 걸리더라도 이러한 MLOps 또는 GitOps 환경을 구축해두면 모델을 개발 및 유지보수 하는데 시간을 많이 절약할 수 있으며 이러한 시간 절감으로 인하여 같은 시간에 더욱 더 많은 모델을 개발 가능하게 된다. 이번 글에서는 Continouse Machine Learning 환경을 구축하기 위한 Lab 환경을 구축하여 간단한 모델을 개발해보고  MLOps와 GitOps를 이용한 지속적인 통합, 배포 및 학습 환경을 구현해보도록 한다.

 

전체적인 시스템 아키텍쳐는 아래 이미지와 같으며 시스템은 보안을 고려하여 최소한의 외부 접속을 고려하여 구축 될 것이다. 먼저 시스템 인증은 LDAP 기반의 Keycloak를 이용하여 OIDC를 제공하며 이는 Kubernetes, Kubeflow, Harbor, 그리고 Airflow의 인증으로 활용하게 된다. 

 

Lab Architecture

그리고 Private Container Image를 제공하기 위한 Harbor를 구축해본다. Kubernetes 보다 Harbor를 먼저 구축하는 이유는 Kubernetes에서 사용되는 기본적인 이미지를 Harbor에 저장하여 사용하려고 하기 때문이다. Harbor 구축이 완료되면 On-premese Kubernetes 구축이 가능하므로 Kubernetes 구축하고 이어서 Kubeflow 를 설치할 예정이다. Kubeflow는 최신 버전을 1.3을 활용하여 구축할 예정이다. 미자막으로 만들어진 모델에 대한 CI/CD를 활용할 수 있도록 Airflow 환경을 구축 할 것이다.

 

다음 글에서는 위에서 언급한 LDAP 서버부터 클러스터 모드로 구축하는 방법을 설명할 예정이다.

 

Reference

- https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning?hl=ko 

 

MLOps: 머신러닝의 지속적 배포 및 자동화 파이프라인  |  Google Cloud

MLOps: 머신러닝의 지속적 배포 및 자동화 파이프라인 이 문서에서는 머신러닝(ML) 시스템을 위한 지속적 통합(CI), 지속적 배포(CD), 지속적 학습(CT)을 구현하고 자동화하는 기술을 설명합니다. 데

cloud.google.com

반응형