AI 용어집 · 기초 · 데이터 엔지니어링 · MLOps·LLMOps
데이터 버전 관리 Data Versioning
데이터 버전 관리는 데이터셋이 바뀔 때마다 그 상태를 기록해 두어, 언제든 특정 시점의 데이터를 다시 꺼내고 무엇이 바뀌었는지 비교할 수 있게 하는 것이다.
어떻게 작동하나
데이터를 수정하거나 새로 추가할 때마다 그 시점의 상태에 버전 표시(스냅숏)를 남긴다. 큰 파일은 저장소에 그대로 두고, 버전 관리 도구는 파일의 고유한 지문(해시)과 위치만 기록하는 방식을 흔히 쓴다. 이렇게 하면 같은 파일이 여러 버전에 걸쳐 중복 저장되지 않는다. 코드 버전과 데이터 버전을 함께 묶어 두면 '이 모델은 어떤 코드와 어떤 데이터로 학습했는지'를 정확히 남길 수 있다.
왜 중요한가
머신러닝 모델의 결과는 코드뿐 아니라 학습 데이터에 크게 좌우된다. 데이터가 조용히 바뀌면 같은 코드로 다시 학습해도 다른 모델이 나오고, 성능이 떨어진 원인을 찾기 어렵다. 데이터 버전 관리가 있으면 실험을 똑같이 다시 재현하고, 문제가 생긴 데이터를 이전 상태로 되돌릴 수 있다. 규제나 감사에서 '이 결정에 어떤 데이터를 썼는가'를 증명할 때도 근거가 된다.
알아 둘 점
코드용 버전 관리 도구를 그대로 쓰면 큰 데이터 파일 때문에 저장소가 금방 무거워진다. 그래서 데이터 전용 도구나 데이터 레이크하우스의 테이블 형식이 제공하는 '시간 여행(과거 시점 조회)' 기능을 쓰는 경우가 많다. 모든 버전을 영원히 남기면 저장 비용이 늘어나므로 보관 기간 규칙을 정해야 한다. 개인정보가 담긴 데이터는 옛 버전에도 남아 있을 수 있어 삭제 요청을 처리할 때 주의가 필요하다.
코드 버전 관리 vs 데이터 버전 관리
코드 버전 관리텍스트 파일 중심
- 파일이 작아 통째로 저장해도 됨
- 줄 단위로 차이를 보기 쉬움
데이터 버전 관리큰 데이터셋 중심
- 해시·위치만 기록해 중복 저장을 피함
- 시간 여행으로 과거 시점 조회
- 보관 기간·개인정보 삭제를 함께 고려
공통 둘을 묶어 두면 어떤 코드와 데이터로 결과를 냈는지 재현할 수 있다
예시
한 팀이 고객 문의 분류 모델을 다시 학습했더니 성능이 떨어졌다고 하자. 데이터 버전 관리를 해 두었다면 이전 모델이 쓴 데이터 버전과 새 버전을 비교해, 최근 라벨링 작업에서 잘못된 라벨이 대량으로 들어간 것을 찾아내고 이전 데이터로 되돌려 다시 학습할 수 있다. 실험 추적 도구나 모델 레지스트리와 함께 쓰면 모델마다 사용한 데이터 버전이 자동으로 기록된다.