AI 모델 개발: 추적 및 재현성 – 버전 관리
ㅁ 추적 및 재현성
ㅇ 정의:
실험 과정에서 사용된 데이터, 코드, 모델, 하이퍼파라미터, 환경 설정 등을 기록하고 관리하여 동일한 결과를 재현할 수 있도록 하는 관리 활동.
ㅇ 특징:
– 실험 단계별 변경 이력을 기록하여 비교 가능
– 협업 시 실험 상태 및 결과를 공유 가능
– 재현 가능한 환경 설정(패키지 버전, OS 환경 등) 포함
ㅇ 적합한 경우:
– 모델 성능 비교를 위해 동일 조건에서 재실행이 필요한 경우
– 여러 명이 같은 프로젝트에서 실험을 병행하는 경우
– 규제 준수나 연구 검증을 위해 실험 이력 보존이 필요한 경우
ㅇ 시험 함정:
– 단순히 코드만 저장하는 것을 추적 및 재현성 확보로 오인하는 경우
– 데이터 버전 관리 없이 코드만 관리하면 재현 불가능
ㅇ 시험 대비 “패턴 보기” 예시:
O: “실험 결과를 재현하기 위해 데이터, 코드, 환경 정보를 모두 기록한다.”
X: “실험 재현성은 코드만 저장하면 충분하다.”
================================
1. 버전 관리
ㅇ 정의:
코드, 데이터, 모델 아티팩트 등의 변경 이력을 체계적으로 기록·관리하여 과거 상태로 복원하거나 변경 내용을 추적할 수 있도록 하는 시스템 및 절차.
ㅇ 특징:
– Git, DVC, MLflow 등 다양한 도구 활용 가능
– 커밋, 태그, 브랜치 등을 통해 시점별 상태 관리
– 데이터와 모델 파일은 대용량 저장소 또는 전용 버전 관리 도구 필요
ㅇ 적합한 경우:
– 여러 버전의 모델을 실험하며 성능 비교가 필요한 경우
– 협업 환경에서 변경 충돌을 방지하고 이력을 남겨야 하는 경우
ㅇ 시험 함정:
– 버전 관리가 코드에만 국한된다고 착각하는 경우
– 대용량 데이터는 Git에서 직접 관리 가능하다고 생각하는 경우
ㅇ 시험 대비 “패턴 보기” 예시:
O: “모델 학습에 사용한 데이터셋과 코드, 하이퍼파라미터를 버전 관리한다.”
X: “버전 관리는 소스 코드만 관리하는 것을 의미한다.”
ㅁ 추가 학습 내용
버전 관리는 Git을 넘어 데이터 버전 관리(DVC), 모델 버전 관리(MLflow, Model Registry)까지 포함해야 한다. 실험 재현성을 위해서는 환경 설정 파일(requirements.txt, conda.yml)과 랜덤 시드 고정도 함께 관리해야 한다. 시험에서는 ‘재현성 확보’와 ‘버전 관리’를 혼동하는 함정이 자주 등장하므로, 재현성은 버전 관리, 환경 복원, 데이터 관리가 결합되어야 가능하다는 점을 명확히 구분해야 한다. 또한 MLOps 관점에서는 버전 관리가 CI/CD 파이프라인과 연계되어야 한다.