DVC 캐시와 스테이징 파일

DVC로 배우는 데이터 버저닝 입문

Ravi Bhadauria

Machine Learning Engineer

DVC 캐시

  • 추적되는 데이터 파일과 버전의 숨김 저장소
  • 커밋 전 임시 파일을 스테이징
    • 대용량 데이터셋과 바이너리 파일에 적합
  • 작업 공간의 .dvc 디렉터리 내에 존재
    • 위치 설정
      $ dvc cache dir ~/mycache
      

작업 공간 내 DVC 구조 이미지

DVC로 배우는 데이터 버저닝 입문

캐시에 파일 추가

  • 데이터 파일을 dvc에 추가
$ dvc add data.csv
100% Adding...|====================|1/1 [00:00, 53.55file/s]

To track the changes with git, run:
    git add data.csv.dvc
To enable auto staging, run:
    dvc config core.autostage true
DVC로 배우는 데이터 버저닝 입문

.dvc 파일

  • DVC로 추적된 각 파일에는 대응되는 .dvc 파일이 있음

    • data.csv -> data.csv.dvc
  • 데이터 파일을 버전 관리하려면 git commit -m "data.csv.dvc" 사용

  • .dvc 파일 내용

outs:

- md5: f38a850818377e97155d22755caa39d0
size: 16
hash: md5
path: data.csv
DVC로 배우는 데이터 버저닝 입문

DVC 캐시와의 상호작용

  • 캐시 파일 경로는 MD5 값을 사용
$ find .dvc/cache -type f
.dvc/cache/f3/8a850818377e97155d22755caa39d0
  • 데이터셋의 MD5 계산
$ md5 data.csv
MD5 (data.csv) = f38a850818377e97155d22755caa39d0
DVC로 배우는 데이터 버저닝 입문

DVC 캐시와의 상호작용

  • 자세한 출력을 위해 dvc add -v 사용

-v 플래그로 dvc add 실행 출력 이미지

DVC로 배우는 데이터 버저닝 입문

캐시에서 제거 및 정리

  • 추가한 파일은 dvc remove로 제거
$ dvc remove data.csv.dvc
  • 캐시를 비우려면 dvc gc 사용
    • 작업 공간 캐시는 -w 플래그로 제거
$ dvc gc -w
WARNING: This will remove all cache except items used in the workspace of the current repo.
Are you sure you want to proceed? [y/n]: y
Removed 1 objects from repo cache.
DVC로 배우는 데이터 버저닝 입문

요약

  • DVC 캐시는 커밋 전 데이터 파일을 스테이징
  • 캐시 위치 설정
    • dvc cache dir ~/mycache
  • 파일을 캐시에 추가
    • dvc add data.csv
    • 메타데이터가 담긴 .dvc 파일 생성
  • 추가한 파일 제거: dvc remove data.csv.dvc
    • 작업 공간 캐시는 dvc gc -w로 정리
DVC로 배우는 데이터 버저닝 입문

연습해 봅시다!

DVC로 배우는 데이터 버저닝 입문

Preparing Video For Download...