MLOps

[MLOps] 12. 데이터 관리 (feat.MinIO 소개)

mlslly 2024. 4. 22. 19:26

데이터 관리의 필요성 

 

1. ML Research vs ML Production 

 

ML에서 다양한 이유에서 데이터 관리의 필요성이 대두되나, 특히 연구와 배포의 괴리 문제 해결을 위해 중요함. 

배포 이전 연구 단계에서, Competition 의 경우 지정된 데이터만, Research 의 경우 벤치마크 데이터만 사용하는 경우가 다수인데,

배포 이후 시간의 흐름에 따라 데이터가 변화하면서 모델의 성능은 필연적으로 떨어짐.

 

2. Data Drift 문제의 발생

 

이런 문제를 Data Drift 현상이라고 하는데,

Train 데이터의 distribution과 Real world 데이터의 distribution이 서로 다르기 때문에 발생.

현실에서는 순간적으로, 지속적으로, 점진적으로, 일시적으로 등 데이터가 변화하므로 모델을 새로운 데이터로 지속적인 재학습이 필요함.

 

예를 들어, 추천모델 개발에서 새로운 현실 데이터가 계속 추가됨에 따라 데이터는 끊임없이 변화함

ex. 상품의 유행 변경, 새로운 상품 유입, 상품 생산 작업의 변경, 기기의 고장 등의 다양한 요인들

 

따라서 데이터를 모니터링하면서 Drift여부에 따른 조치 및 재학습이 필요.

 

 

3. Data Versioning 의 필요성

 

이런 맥락에서 Data 관리 및 versioning의 필요성이 대두됨. 

아래처럼 데이터를 묶는 단위를 고안해서 시간의 흐름에 따른 버전 관리 필요.


Minio란? 

 

가능한 데이터 관리 툴로 MinIO가 있음.

 

 

Minimal Object Storage로, 데이터 저장 및 관리에 사용되는 툴이자 빠르고 쉬운 오픈소스 분산 객체 스토리지 시스템.

Multi-Cloud로 데이터 인프라를 어떤 클라우드에서나 구축할 수 있도록 해주고,

데이터나 어플리케이션에 대한 일관된 인터페이스 제공 가능하다고 함. 

특히 Amazon Web Services의 S3 (Simple Storage Service)와 호환 가능한 API를 제공하는 스토리지 도구로 유용

 

이후 포스팅들에서 MinIO를 통해 데이터 관리하는 방법을 알아볼 것 

 

https://min.io/

 

MinIO | S3 & Kubernetes Native Object Storage for AI

MinIO's High Performance Object Storage is Open Source, Amazon S3 compatible, Kubernetes Native and is designed for cloud native workloads like AI.

min.io

https://github.com/minio/minio

 

GitHub - minio/minio: The Object Store for AI Data Infrastructure

The Object Store for AI Data Infrastructure. Contribute to minio/minio development by creating an account on GitHub.

github.com

 

 

 

* 참고자료 

 

데이터 관리 필요성의 다양한 유형에 대한 포스팅 

https://www.redhat.com/ko/topics/data-services/what-is-data-management

 

데이터 관리(Data management)란?

데이터 관리란 핵심 시스템 및 애플리케이션을 배포하고 전략적 의사결정을 지원하기 위한 프로세스를 뜻하며, 데이터의 수집, 저장, 활용, 및 유지관리를 포함합니다

www.redhat.com

 

MinIO에 대한 설명 포스팅 

https://www.itmaya.co.kr/wboard/view.php?wb=tech&idx=21

 

ITMAYA

 

www.itmaya.co.kr