MLOps 03 - 실험 추적과 모델 학습 관리
어떤 실험이 최선이었는지 기억하는가?
모델을 학습시키다 보면 자연스럽게 수많은 실험을 하게 된다. 학습률을 바꿔보고, 레이어 수를 조정하고, 정규화 기법을 적용하고, 데이터 전처리 방식을 변경한다. 처음에는 노트북에 메모하거나 파일 이름에 버전을 붙이는 것으로 충분하다고 느낀다. modelv1, modelv2final, modelv2finalreal 같은 파일명이 생기기 시작하는 것이다.
과연 이 방식이 지속 가능할까? 실험이 수십 개를 넘어가면 어떤 하이퍼파라미터 조합이 가장 좋은 결과를 냈는지, 그때 사용한 데이터셋은 무엇이었는지, 전처리는 어떻게 했는지를 정확히 파악하기 어려워진다. 더 심각한 문제는, 한 달 전의 실험을 재현해야 할 때 동일한 결과를 만들어내지 못하는 상황이다.
추적하지 않은 실험의 대가
실험을 체계적으로 추적하지 않으면 여러 문제가 동시에 발생한다.
첫째, 재현성이 사라진다. 좋은 결과를 냈던 실험을 다시 실행했는데 같은 결과가 나오지 않는다면, 그 실험의 가치는 사실상 없는 셈이다. 코드, 데이터, 환경 설정 중 무엇이 달랐는지 추적할 수 없기 때문이다.
둘째, 협업이 어려워진다. 팀원이 수행한 실험의 결과를 이해하려면 그 사람에게 직접 물어봐야 한다. 실험 기록이 개인의 노트북이나 로컬 파일에만 존재하면, 지식이 개인에게 종속되어 팀 전체의 생산성이 저하된다.
셋째, 의사결정이 느려진다. 어떤 모델을 프로덕션에 배포할 것인지 결정하려면, 후보 모델들의 성능을 객관적으로 비교할 수 있어야 한다. 비교 기준이 없으면 직감에 의존하게 되고, 이는 결국 잘못된 선택으로 이어질 수 있다.
실험 추적의 핵심 요소
체계적인 실험 추적 시스템은 각 실험에 대해 몇 가지 핵심 정보를 기록해야 한다.
파라미터(Parameters)는 모델의 설정값이다. 학습률, 배치 크기, 에포크 수, 모델 아키텍처 등이 여기에 해당한다. 메트릭(Metrics)은 실험의 결과를 정량적으로 나타내는 값이다. 정확도, 손실값, F1 스코어, AUC 등이 이에 해당한다. 아티팩트(Artifacts)는 실험 과정에서 생성되는 산출물이다. 학습된 모델 파일, 혼동 행렬 이미지, 특성 중요도 그래프 등이 포함된다. 마지막으로 환경 정보는 실험이 수행된 조건이다. 사용된 라이브러리 버전, GPU 종류, 운영체제, 랜덤 시드 등이 기록되어야 재현이 가능해진다.
실험 기록 구조:
├── 파라미터: lr=0.001, batch_size=64, epochs=100
├── 메트릭: accuracy=0.94, loss=0.18, f1=0.92
├── 아티팩트: model.pkl, confusion_matrix.png
└── 환경: Python 3.10, PyTorch 2.0, CUDA 11.8, seed=42
MLflow와 W&B 비교
실험 추적 도구 중에서 가장 널리 사용되는 것은 MLflow와 Weights & Biases(W&B)이다.
| 항목 | MLflow | W&B |
|---|---|---|
| 호스팅 | 자체 호스팅 (오픈소스) | 클라우드 SaaS (무료 티어 있음) |
| 실험 추적 | 파라미터, 메트릭, 아티팩트 로깅 | 파라미터, 메트릭, 아티팩트 + 시스템 메트릭 자동 수집 |
| 시각화 | 기본 차트 제공 | 풍부한 인터랙티브 대시보드 |
| 모델 레지스트리 | 내장 | 별도 기능으로 제공 |
| 협업 | 중앙 서버 공유 | 팀 워크스페이스, 리포트 기능 |
| 학습 곡선 | 낮음 | 중간 |
MLflow는 오픈소스이기 때문에 자체 인프라에 설치하여 데이터를 완전히 통제할 수 있다는 것이 가장 큰 장점이다. 보안이나 컴플라이언스 요구사항이 엄격한 조직에서 선호된다. 실험 추적 외에도 모델 레지스트리, 프로젝트 패키징, 모델 서빙 등의 기능을 하나의 플랫폼에서 제공한다.
W&B는 설정이 간편하고 시각화가 뛰어나다. 코드 몇 줄을 추가하는 것만으로 실험 추적이 시작되며, GPU 사용률이나 메모리 같은 시스템 메트릭까지 자동으로 수집한다. 팀 단위의 협업 기능과 실험 결과를 공유할 수 있는 리포트 기능이 강점이다.
두 도구 모두 핵심적인 실험 추적 기능은 충실히 제공한다. 조직의 상황에 따라 선택하면 되는데, 데이터 통제권이 중요하면 MLflow를, 빠른 도입과 풍부한 시각화가 필요하면 W&B를 고려하는 것이 일반적이다.
하이퍼파라미터 튜닝 전략
실험 추적 시스템이 갖추어지면, 하이퍼파라미터 튜닝을 보다 체계적으로 수행할 수 있다.
가장 단순한 방법은 그리드 서치(Grid Search)로, 가능한 모든 조합을 시도하는 것이다. 직관적이지만 파라미터 수가 늘어나면 조합의 수가 기하급수적으로 증가하여 비현실적이 된다. 랜덤 서치(Random Search)는 파라미터 공간에서 무작위로 조합을 선택하는 방식으로, 그리드 서치보다 효율적으로 좋은 영역을 탐색할 수 있다는 것이 연구를 통해 밝혀져 있다.
보다 발전된 방법으로는 베이지안 최적화(Bayesian Optimization)가 있다. 이전 실험 결과를 바탕으로 다음에 시도할 파라미터 조합을 지능적으로 선택하는 방식이다. Optuna나 W&B Sweeps 같은 도구가 이를 지원하며, 적은 실험 횟수로 최적에 가까운 결과를 찾을 수 있다는 장점이 있다.
어떤 튜닝 전략을 사용하든, 실험 추적 시스템이 없으면 결과를 비교하고 분석하는 것 자체가 불가능에 가깝다. 추적 시스템은 튜닝의 전제 조건인 셈이다.
재현 가능한 실험이 신뢰할 수 있는 모델을 만든다
실험 추적은 단순히 기록을 남기는 것이 아니다. 어떤 조건에서 어떤 결과가 나왔는지를 투명하게 관리함으로써, 팀 전체가 동일한 기준으로 모델을 평가하고 의사결정할 수 있게 하는 것이다. 재현할 수 없는 실험은 과학이 아니며, 재현할 수 없는 모델은 프로덕션에 배포할 수 없다.
다음 포스트에서는 학습된 모델을 체계적으로 관리하기 위한 모델 버전 관리와 레지스트리를 살펴본다.