[MLOps] DVC 실습

GisangLee·2023년 3월 25일
0

ML

목록 보기
129/141

1.사전 준비

파이썬 및 git 설치 필요



2. DVC 설치

$ brew install dvc
# 또는
$ pip install dvc

# 특정 버전을 설치하고 싶을 경우
$ brew install dvc==2.6.4
# OR
$ pip install dvc==2.6.4
  • pip 으로 설치할 경우, 파이썬 가상환경 내에서 실행하는 것을 권장한다.

설치 확인

$ dvc --version
$ dvc --help


3. DVC 저장소 세팅

새 Directory 생성

$ mkdir dvc-tutorial

$ cd dvc-tutorial

해당 디렉토리를 git 저장소로 초기화

$ git init

해당 디렉토리를 dvc 저장소로 초기화

$ dvc init



4. DVC 기본 커맨드

dvc로 버전 tracking할 data 생성

$ mkdir data
$ cd data 
$ vi demo.txt
$ cat demo.txt
# Hello dude!

방금 생성한 데이터를 dvc로 tracking 하기

$ cd ..
$ dvc add data/demo.txt
$ git add data/demo.txt.dvc data/.gitignore

dvc add 에 의해 자동 생성된 파일 확인

$ cd data
$ ls -a # demo.txt.dvc 파일이 생성된 것을 확인
$ cat demo.txt.dvc # demo.txt 파일의 메타데이터를 가진 파일

git commit 수행

$ git commit -m "Add demo.txt.dvc"
  • .dvc 파일은 git push를 수행하여, git 레포지토리에 저장한다.

데이터가 실제로 저장될 원격 스토리지 세팅

  • 본인의 s3 또는 구글 드라이브 등과 같은 원격 스토리지를 생성한다.

  • 본인은 구글 드라이브를 써보겠다.

    구글 드라이브를 사용할 경우, 새로운 폴더를 만든 뒤,
    url로 부터 ID를 복사한다.

  • 복사한 ID를 원격 스토리지로 세팅한다.

$ dvc remote add -d storage gdrive://<GOOGLE_DRIVE_FOLDER_ID>

# dvc의 default remote storage로 gdrive://<GOOGLE_DRIVE_FOLDER_ID>를 세팅

dvc config를 git commit 하기

  • 이러한 변경된 사항을 git에서 관리하기 위함
$ git add dvc/config
$ git commit -m "add remote storage"

dvc push

  • 데이터를 remote storage에 업로드
$ dvc push


5. DVC 기본 커맨드 2

dvc pull

  • 데이터를 remote storage로부터 다운로드
$ cd dvc-tutorial 
$ rm -rf .dvc/cache/ # dvc 캐시 삭제
$ rm -rf data/demo.txt # dvc push 했던 데이터 삭제

# dvc pull로 구글 드라이브에 업로드했던 데이터 다운로드
$ dvc pull

# 다운받은 파일이 이전 데이터와 동일한지 확인
$ cat data/demo.txt

dvc checkout

  • data의 버전을 변경
  • 버전 변경 테스트를 위해, 새로운 버전의 data를 dvc push
# 데이터 변경 
$ vi data/demo.txt

# 변경됐는지 확인
$ cat data/demo.txt

# dvc add (data/demo.txt.dvc를 변경시켜주는 역할)
$ dvc add data/demo.txt

$ git add data/demo.txt.dvc
$ git commit -m "update demo.txt"

# 새로운 버전의 data 파일을 원격 스토리지에 업로드
$ dvc push

# .dvc파일을 깃 레포지토리에 업로드
$ git push 

구글 드라이브로 이동해서 새로운 파일이 업로드 되었는지 확인

  • 이전 버전의 데이터로 돌아가기
# git log 확인
$ git log --oneline

# demo.txt.dvc 파일을 이전 commit 버전으로 되돌린다.
$ git checkout <COMMIT_HASH> data/demo.txt.dvc

# dvc checkout
# demo.txt.dvc의 내용을 보고 demo.txt 파일을 이전 버전으로 변경
$ dvc checkout

# 데이터가 이전 버전으로 변경되었는지 확인
$ cat data/demo.txt

6. DVC의 추가 기능

python API를 사용한 제어

https://dvc.org/doc/api-reference

S3, HDFS, SSH 등의 원격 스토리지 제어

DAG로 Data Pipeline 관리

https://dvc.org/doc/start/data-pipelines

dvc metrics, dvc plots 등 커맨드로 사용한 각 실험의 metrics 기록 및 시각화

profile
포폴 및 이력서 : https://gisanglee.github.io/web-porfolio/

0개의 댓글