rueki

Week 8. Data Management 본문

MLOPS/full stack deep learning review

Week 8. Data Management

륵기 2021. 10. 28. 18:16
728x90
반응형

Data 관리는 프로젝트의 목적, 기업환경, 프로그램 환경 등 다양한 이유에 따라서 체계가 다 다르다.

그러나, 목적 및 방향이 어떻든간에, 데이터는 머신 러닝 프로젝트의 성능에 가장 중요한 부분이고, 그에 따라서

그만큼 시간을 더 할애해야 한다.

 

 

대부분의 머신러닝 프로젝트에 사용하는 데이터들은 라벨링 된 많은 양의 데이터이다. 그러나 오픈 데이터 셋으로는 프로젝트 진행의 목적을 달성하기 어렵기 때문에, 대다수가 라벨링하는 것에 시간을 많이 투자한다.

이러한 한계점 때문에, semi-supervised learning, data augmentaion과 같은 다양한 기법들을 통해서 부족한 데이터 양을 보충하며 학습을 진행하기도 한다.

 

- Data Storage

 

File systems

Storage의 기본 계층으로써, 최대한 simple한 data들을 다루는 시스템이다. 그 데이터의 예시로, 텍스트 파일 및 바이너리 파일을 볼 수가 있다. 이러한 파일들은 용량이 작기 때문에 읽고 쓰기가 용이하다.

 

Object Storage

파일시스템에 적용하는 API 시스템으로써, 저장위치에 상관없이 파일 읽기, 쓰기 , 지우기를 할 수 있는 서비스이다.

이를 서비스에 내포함으로써, 버전관리 및 중복성을 다룰 수 있으며, 클라우드 시스템에도 충분히 빠르다.

 

 

Database

데이터를 구조화 시킴으로써 빠르게 저장 및 탐색할 수 있는 시스템이다. 데이터베이스를 통해서 구조화된 데이터를 빠르게 확장 및 탐색을 함에 따라 데이터 관리에 있어 시간을 단축할 수가 있다.

 

Data warehouse

정보에 기반하여 의사결 정을 내릴 수 있도록 온라인으로 분석 가능한 데이터의 집합체로, 데이터를 추출해서 데이터를 공통 스키마로 변환해서 불러오는 ETL로도 일컫는다.

 

Data lake

모든 데이터를 있는 그대로 다 모아서 필요한 것에 맞춰서 변형하여 로딩하는 형태에서 raw하게 데이터를 저장하는 저장소를 일컫는다.

요즘 트렌드는 warehouse 와 lake를 합쳐 lakehouse라 하여 구조화된 것과 아닌 것을 합친 하나의 플랫폼 형태로 유지한다.

 

- Feature store

Uber ML team에서 나온 플랫폼으로서, 머신러닝을 위한 feature를 저장해서 데이터베이스에서 데이터를 다루듯이 feature를 공유 및 관리하기 위한 레포지토리이다.

 

오프라인 부분에서는 data lake에서 데이터를 가지고와서 처리 및 가공을 하여 feature를 추출하고, 이를 

모델 훈련 시 사용하게 된다. 이러한 과정 속에서 대규모로 feature를 Hive와 같은 데이터 베이스에 저장하게 되는데, online 부분에서는 이것에 빠르게 접근을 하기 위해서 비관계형 데이터베이스에 연결해서 운영하여 빠른 접근을 목적으로 한다. 

feature store를 구축함으로서 feature의 재활용성이 높아지고, 데이터 가공 및 검증에 시간을 덜 쓰게 될 수 있다.

 

참고 : https://medium.com/daria-blog/feature-store

 

 

- Data Versinoing

 

1) No versioning

데이터가 파일시스템 및 DB에 저장되있어서, 버전화를 전혀 하지 않은 상태이다.

머신 러닝을 배포할 때, 데이터를 버전화 해야 모델도 버전화하여 배포가 가능하다.

 

2) Storing a snapshot of everything at training time.

훈련 시 일일히 버전화하여 저장하는 형태인데, 작업 프로세스가 매우 진부하고, 수동적이여서 이를 자동화 하는 것을 권장한다.

 

3) Versioned as a mix of assets and code.

식별화 해서 클라우드에 저장하는 형태로서, 그 예로 json 형태로 저장되고 관련 정보는 메타데이터로 제공한다.

 

4) Specialized solutions for version data.

데이터와 모델을 version화 해서 계속 관리하는 툴을 소개해주는데 버전화 하며 지속적으로 관리가 가능하다고 한다.

아래의 블로그에서 dvc 튜토리얼 관한 내용을 작성한 글을 읽어보면 더 이해가 쉬울 것 같다.https://lsjsj92.tistory.com/573

 

 

728x90
반응형
Comments