DVC
[참조] 패스트캠퍼스 - 머신러닝 서비스 구축을 위한 실전 MLOps
Data Management
머신러닝 서비스를 구축하게 되면 일반적인 소프트웨어 프로젝트와 다르게 대용량의 데이터 저장소를 필요로 하게 된다.
- Git LFS
- Git + Cloud Service(Google Drive, S3 등)
이와 같이 대용량 스토리지를 연동해서 사용할 수 있지만 불편함이 생겨 소스 코드와 데이터 버전을 동시에 관리할 수 있는 툴들이 등장한다.
- DVC
- Pachyderm
- Delta Lake
- Dolt
DVC(Data Version Control)
- 대부분의 스토리지와 호환
- Github, GitLab, Bitbucket 등 git 호스팅 서버와 연동
- 전처리 코드들을 포함한 데이터 파이프라인을 DAG로 관리 가능
- Git과 유사한 인터페이스
DVC 실행
설치
- 파이썬 설치
- git 설치
- dvc 설치
pip install dvc
저장소 세팅
- 원하는 경로로 이동
- 해당 경로 git 저장소로 초기화
git init
- 해당 경로 dvc 저장소로 초기화
dvc init
Push
- data 경로에 data(demo.txt) 생성
- dvc로 tracking
dvc add data/demo.txt
- demo.txt.dvc 파일 생성
- git commit
- 구글 드라이브 폴더 경로 id 세팅
dvc remote add -d storage gdrive://<구글 드라이브 폴더 ID>
- dvc config git에 commit
- 데이터 remote storage(구글 드라이브 폴더)에 업로드
dvc push
만약 아래 에러가 발생한다면
ERROR: unexpected error - gdrive is supported, but requires 'dvc-gdrive' to be installed: No module named 'dvc_gdrive'
다음 패키지를 설치
pip install dvc[gdrive]
- 구글 드라이브에 업로드가 정상적으로 되었고 파일을 다운받아도 동일한 파일임을 확인 가능
Pull
- 기존 dvc 캐시 삭제
rm -rf .dvc/cache/
- pull 확인을 위해 기존 데이터 삭제
rm -rf data/demo.txt
- 데이터 가져오기
dvc pull
버전 변경
- 데이터 변경
vim data/demo.txt
- add해서 .dvc 파일 변경
dvc add data/demo.txt
- git에도 add 후 commit
git add data/demo.txt.dvc
git commit -m "메시지"
push
dvc push
git push
Checkout
- git 로그에서
확인 git log --oneline
- demo.txt.dvc 파일을 이전 버전으로 되돌림
git checkout <COMMIT_HASH> data/demo.txt.dvc
- demo.txt.dvc 내용을 확인하고 demo.txt 파일을 이전 버전으로 변경
dvc checkout
[참조]패스트캠퍼스 - 머신러닝 서비스 구축을 위한 실전 MLOps
끝!