- Kubernetes를 활용한 Hyper Parameter Tuning과 ML model 배포를 위한 MLOps 플랫폼 개발
- 김석희
- 박보경
- 박종민 👑
- 신시온
- 이예림
최근들어 인공지능을 이용한 데이터 분석에 대한 수요가 높아지고 있다. 기업체와 연구원에서는 대규모 컴퓨팅 능력을 탑재한 서버를 사용해 수준 높은 데이터 분석을 수행하고 있다. 머신러닝에서 하이퍼파라미터는 모델 학습 프로세스를 제어하는 변수로서, 학습을 수행하기 위해 사전에 설정해야하는 값들이다. 예를 들어, Learning rate, Batch Size, Regularization Strength 등이 있다. 이러한 하이퍼 파라미터 값은 학습이 되지 않아, 가중치 같은 학습 매개 변수와는 달리, 모델 학습 프로세스에서 하이퍼 파라미터 값을 조정하지 않는다. 그래서 휴리스틱한 방법이나 경험에 따라 결정하는 경우가 많다. 하이퍼 파라미터 튜닝은 최적의 하이퍼 파라미터 값을 탐색하여, 모델의 예측 정확도를 최대화하는 프로세스이다. 최적의 값을 찾기 위해 하이퍼 파라미터를 수동으로 조정하여, 많은 학습 작업을 사람이 직접 실행해야 할 것이다. 이에 Kubernetes를 활용해 하이퍼파라미터 튜닝을 자동화한다면, 사람이 직접적인 수행없이도 대성의 목표값을 이루기 위한 최적의 변수 값을 찾을 수 있도록 도와준다. Container 와 Container Orchestration 기술은 SW개발 및 서비스 운영의 표준 환경이 되어가고 있으며, Docker와 Kubernetes는 이러한 기술의 선두주자이다. 본 프로젝트는 이러한 Container와 Container Orchestration 기술을 활용하여 HPT(Hyper Parameter Tuning)와 ML모델배포를 위한 서비스 기술을 개발한다.
웹 페이지에서 시스템 제어를 위한 웹 프론트엔드, Kubernetes와 웹프론트를 중계하는 웹 백엔드 개발
- 웹 프론트엔드
ML model 에 대한 hyper parameter tuning을 수행하기 위한 설정 model 배포를 위한 화면 구성 - 웹 백엔드
Kubernetes 엔진과 웹 프론트 사이를 중계 웹 프론트 엔드로부터 받은 요청을 Kubernetes 상의 각 엔진으로 전달 hyper parameter tuning및 배포와 관련된 메타 정보 관리
사용자로 부터 data set, 모델, hyper parameter값을 입력받아 ML수행
여러 컨테이너들의 오케스트레이션 및 관리 기능 여러 컨테이너에 걸쳐 서비스를 구축하고 클러스터 전체에 컨테이너의 일정을 계획하고 이런 컨테이너를 확장하여 컨테이너의 상태를 지속적으로 관리(자동 배치, 자동 재시작, 자동 복제, 자동 확장을 사용해 애플리케이션 상태 확인과 셀프 복구를 수행) 애플리케이션 배포 및 업데이트를 제어하고 자동화
최적의 hyper parameter 값을 탐색하여, 모델의 예측 정확도를 최대화 Kubernetes 환경 제어 사용자의 입력을 받아, Hyper Parameter의 조합에 따라, 동시에 다수의 Container를 생성하여 Hyper Parameter Tuning 수행
Hyper Parameter Tuning을 통해 생성된 다수의 모델 중, 최적의 모델을 선택해 배포 REST API를 통해 최적의 모델을 사용하도록 함 MLOps를 통한 ML수행 및 배포
서버 또는 클라우드 구매
개발 과정에서는 정형데이터를 통해 tuning을 한 후, 모든 개발이 완료된 후, 비정형 데이터를 인식할 수 있는 ML model로 다시 개발
- 김석희
- 박보경
- 신시온
- 이예림
- 박종민
본 프로젝트의 목표는 1차적으로 ML 개발자가 서비스를 개발할 때 해당 서비스에 적합한 모델을 찾는데 도움을 주는 것이다. 모든 과정이 웹에서 서비스되므로 수요자인 ML 개발자는 어떠한 환경 구축 없이도 필요로 하는 모델을 찾을 수 있다는 점에서 기존의 규모의 프로젝트였던 인공지능 프로젝트가 소규모 또는 1인 개발팀에게도 열리게 되는 기회가 될 것으로 보인다. 아울러 ML 개발에 있어 어느 정도의 관련 지식을 요구하는 Hyper Parameter Tuning에 대한 학습이 없어도 서비스 이용자가 자신의 데이터에 최적인 모델을 찾을 수 있으므로 서비스 이용자는 추가적인 ML 학습을 줄일 수 있어 개발에 대한 부담 역시 덜 수 있겠다. 여타 웹 서비스가 그러했듯, 본 프로젝트의 결과물 역시 여러 방면으로 수익을 창출 할 수 있을 것으로 예상되는데, 가장 대표적인 방법은 바로 구독 모델이다. 대표적인 클라우드 서비스인 Google Cloud Platform과 AWS 역시 월별 또는 사용량별 요금을 부과하는데, 본 서비스 역시 수요자인 ML 개발자가 요금을 지불하고 서비스를 이용하게 하는 방식이 도입될 수 있을 것이다. 그 외에 웹 사이트에 광고 배너 등을 부착하여 광고 수익을 창출하는 방식 등이 있다.