MLOps에서 크게 작업하는 것들은 다음과 같습니다.
- 실행 환경의 일관성 & 독립성 유지(Reproducibility)
- 스케줄 관리, 병렬 작업 관리, 유휴 자원 관리(Job Scheduling)
- 장애 및 트래픽 대응(Auto-healing & Auto-scaling)
이 작업을 돕게 하는 오픈소스는 대표적으로 containerization이 목적인 Docker와 container orchestration을 하는 Kubernetes가 있습니다. 대략적으로 무엇인지 살펴보도록 하겠습니다.
1. Contatinerization
Contatinerization은 Container에 명사화 시킨 단어인데, 그렇다면 Container를 먼저 무엇인지 알아야합니다.
Container는 "격리된 공간에서 프로세스를 실행시킬 수 있는 기술"이라고 일반적으로 정의를 합니다. 일단 현 단계에서 Basic하게 간단히 생각하면, 실행환경을 하나의 패키징화시키는 게 Contatinerization이라고 생각하면 됩니다.
2. Orchestration
말 그대로 여러개의 Container를 지휘하는 기술입니다. 정리하면 다음과 같습니다.
- 메모리(또는 저장공간)를 많이 필요로 하는 컨테이너를 메모리(또는 저장공간)가 많이 있는 서버에 배치
- GPU가 많이 필요로하는 컨테이너를 GPU 여유가 있는 서버에 배치
- 한 컨테이너에 장애가 생기면 동일한 컨테이너를 다른곳에 복제하여 생성
- 여러명이 서버를 함께 공유하며 어떤 모델 학습할 때 각자 스케쥴을 짜거나 GPU 자원이 남았는지 매번 확인하거나 학습이 끝나면 서버 자원을 깔끔히 정리 하는 것 등 귀찮은 일을 줄여줌
수많은 컨테이너와 인프라 환경을 정해진 룰에 따라 알아서 관리하는 것을 Container Orchestration이라고 부릅니다.
다음 글에서는 Docker로 찾아 뵙겠습니다.
* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'AI > MLOps' 카테고리의 다른 글
[패스트캠퍼스 챌린지 6일차] Docker 기본 명령어 (0) | 2022.01.29 |
---|---|
[패스트캠퍼스 챌린지 5일차] Docker 환경 구성 및 설치 (0) | 2022.01.28 |
[패스트캠퍼스 챌린지 3일차] MLOps의 구성요소 (0) | 2022.01.26 |
[패스트캠퍼스 챌린지 2일차] MLOps = ML + DevOps (0) | 2022.01.25 |
[패스트캠퍼스 챌린지 1일차] As-Is ML 프로젝트 진행 방식의 한계 (0) | 2022.01.24 |