DVC(Data Version Control)는 ML 데이터와 모델의 버전 관리 도구입니다. Git이 코드를 추적하듯, DVC는 대용량 데이터 파일, 모델 가중치, 파이프라인을 추적합니다. Git 위에서 동작하며 데이터 자체는 원격 스토리지(S3, GCS 등)에 저장하고 Git에는 메타데이터만 커밋합니다.
Git 저장소 원격 스토리지 (S3/GCS)
────────── ──────────────────
코드 (.py, .yaml) 대용량 데이터 (.csv, .parquet)
설정 (params.yaml) 모델 가중치 (.pt, .bin)
DVC 메타파일 (.dvc) 중간 산출물
dvc.lock (파이프라인 상태)
# 초기화git init && dvc init# 데이터 추적dvc add data/dataset.csv# → data/dataset.csv.dvc 생성 (메타데이터)# → .gitignore에 data/dataset.csv 자동 추가git add data/dataset.csv.dvc .gitignoregit commit -m "Add dataset v1"# 원격 스토리지 설정dvc remote add -d myremote s3://my-bucket/dvc-storedvc push # 데이터 → S3 업로드# 데이터 가져오기 (다른 머신에서)git clone <repo>dvc pull # S3에서 데이터 다운로드
데이터 버전 관리
# 데이터 업데이트cp new_data.csv data/dataset.csvdvc add data/dataset.csvgit add data/dataset.csv.dvcgit commit -m "Update dataset v2"dvc push# 이전 버전으로 되돌리기git checkout HEAD~1 -- data/dataset.csv.dvcdvc checkout# → dataset.csv가 v1으로 복원