DVC 데이터 파이프라인

DVC 데이터 파이프라인 (Data Pipelines)

큰 데이터 파일을 버전 관리하는 것만으로는 부족할 때가 많아요. 모델 학습 전에 데이터를 필터링·정리·변환해야 하니까요. DVC는 이런 데이터 처리 단계의 연속인 데이터 파이프라인을 정의·실행·추적할 수 있는 빌드 시스템을 제공해요. 비유하자면 DVC는 머신러닝 프로젝트를 위한 "Makefile" 시스템이에요.

출처: Get Started: Data Pipelines

파이프라인은 Git으로 버전 관리

DVC 파이프라인은 Git으로 버전 관리돼요. 프로젝트를 더 잘 조직하고, 원하는 순간에 전체 워크플로와 결과를 재현할 수 있게 해 주죠. 단순한 ETL 워크플로를 담을 수도, 복잡한 DAG(방향성 비순환 그래프) 파이프라인을 만들 수도 있어요. 파이프라인 위에서 머신러닝 실험을 관리하고, 실행을 제어하며, 파라미터를 주입하는 것도 이어서 할 수 있게 돼요.

파이프라인 스테이지

dvc stage add로 스테이지를 만들고, dvc repro로 파이프라인을 실행해요. 스테이지는 데이터 처리 단계를 뜻하며 의존성·출력·파라미터를 정의해요.

$ dvc stage add -n prepare \
    -d src/prepare.py -d data/data.xml \
    -o data/prepared \
    python src/prepare.py data/data.xml
$ dvc repro

각 스테이지의 정의는 dvc.yaml 파일에 기록돼요. 스테이지 사이의 의존성·출력을 DVC가 분석해 실행 계획을 만들기 때문에, 코드·데이터·출력 중 하나라도 바뀐 스테이지만 다시 실행해요.

실행 캐시

dvc repro의 실행 결과는 실행 캐시(run cache)에 저장돼요. 같은 입력·코드·파라미터로 이미 실행한 적이 있으면 결과 물체가 캐시에서 나와 중복 실행 없이 복원돼요. 이 캐시 덕분에 실험을 반복할 때 불필요한 재계산을 건너뛸 수 있어요.

스테이지 추가·확장

작업을 스테이지들로 나누면 각 단계가 재사용 가능하고, 파라미터를 개별 스테이지에 주입해 실험을 쉽게 관리해요. 파이프라인이 커지면 dvc dag로 스테이지 간 의존성을 그래프로 확인할 수 있어요.

더 알아보기