머신러닝 팀은 운영 중인 모델이 어떤 데이터와 코드로 학습되었는지, 정확히 어떤 데이터셋 버전을 사용했는지 확인하는 과정에서 난관에 봉착한다. 모델 배포의 근거가 되는 실험 지표와 데이터 간의 연결 고리가 끊겨 있으면, 6개월 전 배포한 모델을 재현하거나 현재 운영 중인 모델의 학습 데이터를 파악하기 위해 며칠씩 로그와 노트북, 아마존 S3(Amazon Simple Storage Service, 클라우드 객체 저장소) 버킷을 뒤져야 한다. 이러한 추적성 결여는 의료, 금융, 자율주행 등 엄격한 감사 규정이 요구되는 산업군에서 치명적인 문제로 작용한다.
데이터 계보 추적을 위한 기술 스택과 워크플로우
이번 워크플로우는 DVC(Data Version Control, 대규모 데이터셋과 머신러닝 아티팩트를 관리하는 오픈소스 도구), SageMaker AI(아마존의 머신러닝 모델 구축·학습·배포 플랫폼), 그리고 SageMaker AI MLflow App(머신러닝 수명 주기를 관리하는 관리형 서비스)을 통합하여 데이터 계보를 완성한다. 데이터는 원본 데이터셋에서 처리 과정을 거쳐 DVC로 버전이 관리되고, SageMaker AI에서 학습된 뒤 MLflow에 등록되는 4단계 흐름을 따른다. 최종적으로 운영 모델은 MLflow 실행 기록을 거쳐 DVC 커밋으로 이어지고, 이는 아마존 S3의 특정 데이터셋 상태와 연결되는 완벽한 추적 체인을 형성한다. 환경 구축을 위해서는 다음의 사전 요구사항이 필요하다.
bash
필수 의존성 설치
pip install -r requirements.txt
사용자는 공식 저장소에서 제공하는 노트북을 통해 데이터셋 수준과 레코드 수준의 계보 추적 패턴을 직접 실행할 수 있다. 깃(Git, 소스 코드 버전 관리 도구) 제공자로 AWS CodeCommit을 사용하지만, GitHub나 GitLab 등 다른 환경에서도 DVC 리모트 설정만 변경하면 동일하게 작동한다.
데이터 버전 관리와 모델 수명 주기의 역할 분담
예전에는 DVC가 데이터 버전 관리와 실험 추적을 모두 담당하거나, 혹은 별도의 파이프라인 도구에 의존해야 했다. 이제는 DVC가 데이터의 상태를 Git 커밋 해시로 고정하고, MLflow가 학습 과정과 모델 등록을 전담하는 방식으로 역할이 명확히 나뉜다. DVC는 MD5 해시를 사용하여 변경된 파일만 저장하므로 대규모 데이터셋을 다룰 때 저장소 용량을 효율적으로 관리한다. 반면 MLflow는 모델 레지스트리와 배포 통합에 강점이 있다. 학습 시 DVC 커밋 해시를 `data_git_commit_id`라는 매개변수로 기록하면, MLflow에 등록된 모델이 어떤 데이터셋을 기반으로 생성되었는지 즉시 역추적이 가능하다. 이는 데이터와 학습, 배포라는 세 가지 축을 하나의 해시값으로 묶어주는 핵심 연결 고리다.
실무 환경에서의 데이터 추적성 확보
개발자가 체감하는 가장 큰 변화는 모델 배포 이후의 감사 프로세스다. CIFAR-10(이미지 분류를 위한 표준 데이터셋)을 활용한 실험에서, 데이터셋을 확장하거나 샘플링 비율을 조정할 때마다 DVC는 데이터 상태를 버전화하고, SageMaker AI 처리 작업은 이를 S3에 저장한다. 이후 MLflow는 이 과정을 기록하여 특정 모델 버전이 어떤 데이터셋 버전에서 파생되었는지 명확히 증명한다. 규제 산업군에서 특정 레코드를 학습 데이터에서 제외해야 하는 상황이 발생할 때, 기존처럼 파편화된 로그를 분석할 필요 없이 DVC와 MLflow의 결합된 기록만으로 즉각적인 대응이 가능하다.




