Workflow Management
비즈니스나 기술 프로세스의 설계, 실행, 모니터링 및 최적화를 포함하는 전체적인 접근 방식
MLOps 워크플로우는 일반적으로 다음과 같은 단계들을 포함합니다 [4], [10]:
데이터 수집 및 전처리 (Data Ingestion & Preprocessing): 다양한 소스에서 데이터를 수집하고, 분석 및 모델 학습에 적합한 형태로 정제, 변환하는 과정입니다.
특성 엔지니어링 (Feature Engineering): 원본 데이터에서 모델 학습에 필요한 의미 있는 특성(Feature)을 생성하는 과정입니다.
모델 학습 (Model Training): 전처리된 데이터를 사용하여 머신러닝 모델을 학습시키는 과정입니다. 다양한 알고리즘과 하이퍼파라미터를 사용하여 여러 실험을 수행할 수 있습니다.
모델 평가 및 검증 (Model Evaluation & Validation): 학습된 모델의 성능을 평가하고, 실제 운영 환경에 배포하기에 적합한지 검증하는 과정입니다.
모델 레지스트리 (Model Registry): 학습 및 검증이 완료된 모델을 중앙 저장소에 등록하고 버전을 관리하는 과정입니다.
모델 배포 (Model Deployment): 검증된 모델을 실제 서비스 환경(예: 웹 서버, 엣지 디바이스)에 배포하여 예측 또는 추론을 수행할 수 있도록 하는 과정입니다.
모델 모니터링 (Model Monitoring): 배포된 모델의 성능, 예측 결과, 입력 데이터의 변화(데이터 드리프트, 컨셉 드리프트) 등을 지속적으로 모니터링하는 과정입니다.
재학습 및 업데이트 (Retraining & Updating): 모니터링 결과 모델 성능 저하가 감지되거나 새로운 데이터가 축적되었을 때 모델을 재학습하고 업데이트된 모델을 다시 배포하는 과정입니다.
워크플로우 관리가 왜 중요할까요?
MLOps에서 워크플로우 관리가 중요한 이유는 다음과 같습니다.
자동화 및 효율성: 수동으로 여러 단계를 진행하는 것은 시간이 많이 소요되고 오류 발생 가능성이 높습니다. 워크플로우 관리를 통해 이러한 과정들을 자동화하여 효율성을 극대화할 수 있습니다 [3], [10].
재현성 (Reproducibility): 어떤 데이터와 코드로 어떤 모델이 학습되었고, 어떤 과정으로 배포되었는지 전체 과정을 추적하고 필요할 때 동일한 결과를 재현할 수 있도록 합니다 [8].
확장성 (Scalability): 데이터 양이 늘어나거나 모델의 수가 많아져도 워크플로우 시스템을 통해 안정적으로 확장하여 관리할 수 있습니다 [9].
협업 강화: 데이터 과학자, ML 엔지니어, IT 운영팀 등 다양한 역할을 가진 팀원들이 동일한 파이프라인을 이해하고 협력하여 작업을 진행할 수 있도록 표준화된 환경을 제공합니다.
빠른 배포 및 업데이트: 자동화된 워크플로우를 통해 모델 학습 및 배포 주기를 단축하여 비즈니스 변화나 데이터 변화에 빠르게 대응할 수 있습니다.
MLOps 워크플로우 관리를 위한 도구:
MLOps에서 워크플로우 관리를 위해 다양한 도구들이 사용됩니다.
Apache Airflow: 앞서 알아보신 것처럼, 파이썬 기반으로 복잡한 DAG 형태의 워크플로우를 정의하고 스케줄링 및 모니터링하는 데 강점이 있습니다. 다양한 외부 시스템과의 연동이 용이하여 MLOps 파이프라인의 오케스트레이션 레이어로 널리 활용됩니다.
Kubeflow Pipelines: 쿠버네티스(Kubernetes) 기반의 MLOps 플랫폼인 Kubeflow의 한 구성 요소로, 컨테이너화된 ML 워크플로우를 구축하고 관리하는 데 사용됩니다. 확장성과 휴대성이 높습니다.
MLflow: 자체적인 워크플로우 오케스트레이션 기능보다는 실험 추적, 모델 패키징, 모델 레지스트리 등 MLOps의 특정 단계에 초점을 맞추지만, Airflow 등 다른 워크플로우 도구와 함께 사용되어 전체 파이프라인을 구성합니다.
