2 분 소요


DVC(Data Version Control)

데이터셋의 크기가 계속 증가하면서 저장 공간 부족 문제가 발생하거나 라벨링 방식의 변경이나 새로운 데이터의 추가로 인해 데이터셋의 버전 관리가 복잡해지고 팀원 간 데이터 공유와 동기화에 어려움을 겪는걸 볼 수 있다.

이러한 데이터와 관련된 이슈를 줄일 수 있는 도구가 바로 DVC(Data Version Control)이다.


DVC는 Git과 유사한 방식으로 데이터의 버전을 관리할 수 있게 해주는 오픈소스 도구이다. DVC의 주요 이점은 다음과 같다

  1. 효율적인 저장 공간 활용: DVC는 데이터의 변경 사항만을 저장하므로, 중복 저장을 방지하고 저장 공간을 절약할 수 있다.
  2. 데이터셋 버전 관리: 라벨링 방식 변경이나 새로운 데이터 추가 시, 각 버전을 쉽게 관리하고 필요시 이전 버전으로 롤백할 수 있다.
  3. 팀 협업 개선: 중앙 집중식 데이터 저장소를 통해 팀원 간 데이터 공유와 동기화가 용이해진다.
  4. 실험 재현성 확보: 코드, 데이터, 모델 버전을 일치시켜 실험의 재현성을 보장할 수 있다.

DVC 사이트에 나와 있는 사용 사례들을 조금 더 자세히 들여다보면,

데이터 및 모델 버전 관리

image

DVC는 Git과 유사한 방식으로 데이터와 모델의 버전을 관리할 수 있게 해주는 도구이다. 대용량 파일을 효율적으로 저장하고, 데이터 변환을 코드화하며, 실험을 추적하는 기능을 제공한다.

프로젝트의 버전 히스토리는 트리 구조로 표현되며, 각 노드는 특정 시점의 데이터, 모델, 코드의 상태를 포함한다. 이를 통해 프로젝트의 모든 요소를 일관성 있게 추적하고, 필요할 때 특정 버전으로 쉽게 돌아갈 수 있어 실험의 재현성과 협업을 크게 향상 시킨다. 결과적으로 데이터 과학자들은 프로젝트의 모든 구성 요소를 체계적으로 관리하고, 작업 흐름을 개선할 수 있다.


머신러닝을 위한 CI/CD

Data Version Control(DVC)과 Continuous Machine Learning(CML) 도구를 사용하여 데이터, 모델, 코드의 버전 관리, 자동화된 테스트, 메트릭 보고, 클라우드 기반 실험 등을 구현할 수 있다.

이러한 도구들은 CI/CD 파이프라인을 ML 프로젝트에 통합하여 모델의 지속적인 개선, 품질 보증, 효율적인 리소스 관리를 가능케 하며, 결과적으로 ML 프로젝트의 생산성과 신뢰성을 크게 향상시킬 수 있다.


빠르고 안전한 데이터 캐싱 허브

image

DVC의 데이터 저장 구조는 효율성과 협업을 극대화한다. 여러 프로젝트가 중앙의 DVC 캐시를 공유하며, 이 캐시는 다시 원격 스토리지(예: S3, GCP)와 연결된다. 이러한 구조는 데이터 중복을 줄이고 효율적인 저장 및 접근을 가능하게 한다.

DVC 사용의 주요 이점으로는 빠른 데이터 전송, 비용 효율성, 중복 방지, 빠른 데이터 전환 등이 있다. 또한 데이터 보안을 강화하며, 스토리지 인프라의 유연성을 제공한다. 특히 공유 개발 서버 환경에서 DVC의 캐싱 기능은 리소스 활용도를 높이고 효율적인 협업을 가능하게 한다. 이를 통해 데이터 과학팀은 대규모 데이터 세트를 더 효과적으로 관리하고 활용할 수 있다.


데이터 레지스트리

데이터 레지스트리는 데이터 과학 프로젝트를 위한 일종의 패키지 관리 시스템으로, 다음과 같은 주요 이점을 제공한다.

  • 재사용성: 간단한 CLI 명령으로 데이터셋과 모델을 쉽게 재현하고 관리할 수 있다.
  • 지속성: 메타데이터와 실제 데이터를 분리하여 저장함으로써 데이터의 내구성을 향상시킨다.
  • 저장소 최적화: 여러 프로젝트에서 공유하는 데이터를 중앙 집중화하여 관리한다.
  • 코드로서의 데이터: Git 워크플로우의 이점(커밋, 히스토리, 브랜칭, 폴 리퀘스트 등)을 데이터와 모델 라이프사이클에 적용할 수 있다.
  • 보안: DVC로 제어되는 원격 저장소에 대한 접근을 제한하여 데이터 보안을 강화할 수 있다.

댓글남기기