[MLOps] DVC&Dagshub
DVC
DVC는 Data Version Control의 약자로 모델이나 데이터 버전 관리에 사용되는 툴이다.
설치는
pip install dvc
로 진행하고
git과 마찬가지로
dvc init
을 통해 dvc가 버전을 관리할 수 있도록 한다.
dvc init을 진행해주면 .dvc 디렉토리가 생기고 tmp, .gitignore, config 등의 파일과 디렉토리가 생기는 것을 확인할 수 있다.
dvc의 사용법은 git과 거의 같은데
dvc add 'data/data.txt'
을 통해 추적할 파일을 추가할 수 있다. 그런데 dvc add를 수행해주게 되면 .dvc파일이 생성되게 되는데, 위의 경우 data/data.txt.dvc가 생성된다.
내부를 열어보면
outs:
- md5: 0b1ebceb88b6324cafbda936c7500e37
size: 6
hash: md5
path: data.txt
와 같이 생겼다. md5는 해시 키인데, 이 해시 값은 특정 데이터에 매핑된다. 그러니까, 데이터를 변경하고 다시 dvc를 통해 .dvc 파일을 생성해주면 이 해시 값은 변경된다.
이 해시 값들은 루트 디렉토리에 있는 .dvc/cache 안에서도 찾아볼 수 있다.
data/data.txt 파일의 내용을 변경한 후 다시 dvc add 커맨드를 입력해보았다. 그 결과
outs:
- md5: cf1044dbd9d6a2055b7a1f0356a31399
size: 31
hash: md5
path: data.txt
파일이 변경되었기 때문에 해시 값이 달라진 것을 볼 수 있다. 이렇게 달라지는 해시 값들을 기반으로 파일을 트랙킹하고 있다고 볼 수 있다.

