쿠버네티스의 리소스 시리즈가 끝나고 이제부터 MLOps에서 데이터 관리, 모델 관리, 모델 서빙, 모델 모니터링 관련 오픈소스들을 소개하고자 합니다. 간단히 개념을 짚고 그것과 관련된 오픈소스들 소개 및 실습하는 글로 당분간 이어갈 생각입니다.
1. 데이터 관리 필요성
보통 Rawdata를 기점으로 해서 모델링을 하기 까지 많은 버전의 데이터가 생성됩니다. 만약에 시계열 데이터가 Rawdata라고 가정을 해보겠습니다. 일정 시간의 Moving average를 적용하는 경우가 상당히 많습니다. 예를 들면 15분, 30분, 1시간, 4시간, 12시간, 1일, 1주, 1개월 등등에 해당될 것 입니다. 그렇다면 이러한 이동평균 데이터들을 만들어서 실험을 하게 될 것입니다. 여기에 Feature Engineering까지 접목시킨다고 가정을 하면 어떤 데이터 + 어떤 Feature Engineering 방법을 활용하게 될 것이고, 수많은 버전의 데이터가 생길 것 입니다. 예전 같았으면 파일명 또는 디렉토리 명에 데이터 이름, 방법, 날짜 등의 조합으로 관리를 했었지만 이를 조금 더 좋게 해주는 데이터 버전 관리 오픈소스가 있습니다.
2. Github이 데이터와 안맞는 이유
소스코드에 대한 버전관리 툴은 Git이 대표적입니다. 하지만 깃을 호스팅하는 bitbucket, gitlab, github의 단점은 대용량 데이터를 다루기엔 부적격합니다. 목표 자체가 소스코드만을 협업하고 다루기 때문입니다. 그래서 통상적으로 깃허브를 살펴보면 코드를 올리고 README에 Amazon s3 또는 google drive에 데이터를 공유합니다.
그래서 큰 데이터와 코드를 함께 관리할 수 있는 Tool들이 있습니다. DVC, Pachyderm, Delta Lake, Dolt 등이 있는데, 그 중 무료이면서 사용법이 Git과 비슷하면서 난이도가 쉬운 축에 속하는 DVC(Data Version Control)을 다음 글에 다룰 예정입니다.
3. DVC의 특징
특징은 다음과 같습니다.
- amazon s3, google drive와 같은 대부분의 스토리지와 호환이 가능하다
- Github 이외의 Gitlab, Bitbucket 등의 대부분의 git 호스팅 서버와 연동이 가능하다.
- Data Pipeline 을 Dag 형태로 관리가 가능하다.
- Git과 유사한 인터페이스를 가지고 있습니다.
공식 문서
다음 글에서는 DVC 실습을 할 예정입니다. 이 부분을 하려면 깃의 기본적인 명령어(Git pull, push, add, commit)을 인지하고 있어야합니다.
git은 관련 자료가 너무 많아서 몇개 레퍼런스로 남깁니다. (아래 2개 영상은 기본 개념, 맨 밑에 영상은 제대로 배우는 영상입니다.)
* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'AI > MLOps' 카테고리의 다른 글
[패스트캠퍼스 챌린지 15일차] Model Management 개념 (0) | 2022.02.07 |
---|---|
[패스트캠퍼스 챌린지 14일차] DVC Tutorial (0) | 2022.02.06 |
[패스트캠퍼스 챌린지 12일차] Service & PVC (0) | 2022.02.04 |
[패스트캠퍼스 챌린지 11일차] Deployment (0) | 2022.02.03 |
[패스트캠퍼스 챌린지 10일차] POD (0) | 2022.02.02 |