DVC

김인조·2024년 7월 6일

1. DVC란?


  • Data Version Control
    • Large 사이즈의 데이터(이미지, 동영상, 음성 파일 등) 관리용으로 제작된 오픈소스
  • 최근에는 단순 데이터 버전 관리를 넘어, ML 모델 파이프라인 구축에도 사용되고 있음
  • S3, Google drive, Azure등 다양한 스토리지에 데이터를 저장할 수 있도록 호환됨

  • git과 유사한 인터페이스를 가짐

    • learning cost를 최소화하도록 일부러 깃의 인터페이스를 참고하여 만들었다고 함
    • 때문에, Git init 되어 있는 repository에서만 Dvc를 사용할 수 있음


2. 설치


  • DVC는 저장하는 remote storage 종류(S3, Google drive등)에 따라 설치 방법이 다름


pip 기준

# 모든 remote storage의 dependency 다운로드 (설치 시간 오래 걸림 )
pip install 'dvc[all]'

# S3용 DVC 다운로드 
pip install 'dvc[s3]'

# 구글 드라이브용 DVC 다운로드 
pip install 'dvc[gdrive]'

# SSH용 DVC 다운로드 
pip install 'dvc[ssh]'

Poetry 기준

# 모든 remote storage의 dependency 다운로드 (설치 시간 오래 걸림 )
poetry add 'dvc[all]'

# S3용 DVC 다운로드 
poetry add 'dvc[s3]'

# 구글 드라이브용 DVC 다운로드 
poetry add 'dvc[gdrive]'

# SSH용 DVC 다운로드 
poetry add 'dvc[ssh]'


3. 기본 사용 방법


3-1. Initialize


  • DVC init을 하기 전에 먼저 Git init을 해야함

# git initialize
git init 

# dvc initialize
dvc init 

# git 없이 dvc 사용하기
# 권장하지는 않음 
dvc init --no-scm


3-2. Remote storage에 연결


DVC Remote storage 관련 페이지

# 내 로컬의 /store 폴더에 저장하기 
dvc remote add -d storage /store

# 구글 드라이브에 저장 
# 저장소 URL: https://drive.google.com/drive/u/1/folders/<YOUR_UNIQUE_KEY>
dvc remote add -d storage gdrive://<YOUR_UNIQUE_KEY>


3-3. DVC 파일 만들기(DVC로 tracking 하기)


dvc add <YOUR_DATA>

# <YOUR_DATA>.dvc 파일 생성


3-4. Remote storage로 파일 업로드


dvc push 


3-5. Remote storage에서 데이터 다운로드


dvc pull <YOUR_DATA>.dvc 


4. Cache 사용 설정


4-1. DVC cache란?

  • 파일 중복 방지
  • 빠른 데이터 pull


4-2. DVC Cache 사용 케이스


  1. 여러 사용자가 하나의 서버에서 작업하며,
  2. 각자 자신의 workspace에 데이터를 다운로드 받아야하는 경우

  • 데이터 용량이 15GB이고 4명이서 작업을 한다면, 데이터 복사본의 총 용량은 60GB가 됨

  • 동일한 데이터라면 중앙에 집중화하는 것이 효율적

  • 이를 위한 기능이 dvc cache

    • 진짜 데이터는 중앙에서 관리
    • 대신 용량이 가벼운 바로 가기 데이터를 각 사용자에게 제공


4-3. cache 사용 설정

dvc cache dir <YOUR_CACHE_DIR>

dvc config cache.shared group
dvc config cache.type symlink  # symbolic link(바로가기) 생성


0개의 댓글