rueki

dvc 사용법 본문

MLOPS

dvc 사용법

륵기 2022. 2. 8. 23:21
728x90
반응형

https://dvc.org/doc/start/data-and-model-versioning

 

Get Started: Data and Model Versioning

Get started with data and model versioning in DVC. Learn how to use a regular Git workflow for datasets and ML models, without storing large files in Git.

dvc.org

 

data versioning 할 때 사용하는 툴로써, 코드나 모델에만 버전을 매기는 것이 아니라 학습에 사용하는 데이터에 대해 버전을 매기는 툴이다.

 

1. 설치

pip install dvc

설치는 위 명령어만 입력하면 간단하게 설치가 된다.

 

2. 예시 데이터 셋 다운로드

dvc get https://github.com/iterative/dataset-registry \
          get-started/data.xml -o data/data.xml

dvc에서 제공해주는 예제 파일인데 다운받아서 사용한다.

이 데이터를 이제 versioning을 어떻게 하는지 설명해준다.

 

3. dvc에 data 파일 올리기

dvc add data/data.xml

 

4. git에 add하고 commit

git add data/data.xml.dvc data/.gitignore
git commit -m "Add raw data"

 

5. 클라우드 저장소에 데이터 올리기

여기서는 예시로 구글드라이브로 설정했는데, 데이터가 큰 경우 아마존에 올려서 사용을 보통 한다곤 한다.

dvc remote add -d storage gdrive://"구글드라이브 폴더 맨 뒤의 ID"
dvc remote add -d storage s3://mybucket/dvcstore

구글 드라이브에 올릴 때 위의 명령줄을 입력, Amazon S3할 때는 아래 명령어를 사용한다고 한다.

 

6. dvc에 push하기

dvc push

 

7. data 를 변경해서 올려보기

cp data/data.xml /tmp/data.xml
cat /tmp/data.xml >> data/data.xml

 

이렇게 하면 데이터가 2배로 늘려서 변경을 하게 되었다.

dvc add data/data.xml
git commit data/data.xml.dvc -m "Dataset updates"
dvc push

git log해서 commit 했던 기록들을 보면 처음 데이터 commit 했을 때, 데이터 수정했을 때까지 기록이 남아있다.

 

8. 이전 버전으로 변경하기

checkout을 사용해서 변경하는데 git에서 branch 변경할 때 사용한 것과 유사

git checkout HEAD~1 data/data.xml.dvc
dvc checkout
git commit data/data.xml.dvc -m "Revert dataset updates"

 

9. git repo에 올리기

git remote add origin ~
git push -u origin main

이렇게 관리를 git으로 할 수 있다고 한다.

이게 가능한 이유는 데이터에 대한 메타데이터를 dvc가 생성을 해주고 checkout을 통해서 버전 이동도 가능하기때문에

원하는 데이터의 상태에 다시 가서 학습을 할 수도 있고 여러모로 편한 것 같다.

 

728x90
반응형
Comments