[MLOps] 2. MLOps lifecycle and core capabilities
Building an ML-enabled system
-
ML 기반 시스템을 구축하는 것은 데이터 엔지니어링, ML 엔지니어링, 애플리케이션 엔지니어링 작업을 결합한 다면적인 과업이다.
그림 1. 데이터 엔지니어링, ML 엔지니어링, 애플리케이션 엔지니어링의 관계
- 데이터 엔지니어링은 데이터를 수집, 통합, 정제하여 다양한 운영 작업, 데이터 분석 작업, ML 작업을 지원하는 과정이다.
- 데이터 엔지니어링은 분석 및 ML 계획의 성공에 결정적인 역할을 할 수 있다.
- 만약 조직이 견고한 데이터 엔지니어링 프로세스와 기술을 갖추고 있지 않다면, 이후의 비즈니스 의사결정, 고급 분석 또는 ML 프로젝트의 성공 가능성이 낮아질 수 있다.
- ML 모델은 보통 데이터 엔지니어링 팀이 생성한 정제된 데이터를 사용하여 구축되고, 운영 환경에 배포된다.
- 이 모델들은 독립적으로 운영되지 않으며, 비즈니스 인텔리전스 시스템, 비즈니스 애플리케이션, 프로세스 제어 시스템, 임베디드 시스템 등 다양한 애플리케이션 시스템의 일부로 작동한다.
- 애플리케이션에 ML 모델을 통합하는 것은 중요한 작업이며 배포된 모델이 애플리케이션에서 효과적으로 사용되고 있는지 확인하고, 모델 성능을 모니터링하는 것이 필요하다.
- 또한 클릭율, 매출 증대, 사용자 경험과 같은 관련된 비즈니스 KPI 를 수집하고 모니터링해야 한다. 이러한 정보는 ML 모델이 비즈니스에 미치는 영향을 이해하고 이에 따라 적응하는 데 도움을 준다.
MLOps lifecycle
-
MLOps 라이프사이클은 통합되고 반복적인 7개의 프로세스를 포함한다.
그림 2. MLOps Lifecycle
-
이 프로세스들은 다음과 같이 구성될 수 있다.
- ML 개발(ML development)은 데이터 준비 및 변환에서 모델 학습과 평가에 이르기까지 여러 작업으로 구성된 견고하고 재현 가능한 모델 학습 절차(학습 파이프라인 코드)를 실험하고 개발하는 것이다.
- 학습 운영화(Training operationalization)는 반복 가능하고 안정적인 학습 파이프라인을 패키징, 테스트, 배포하는 과정을 자동화하는 것이다.
- 지속적 학습(Continuous training)은 새로운 데이터나 코드 변경에 대응하여, 또는 일정에 따라 새로운 학습 설정과 함께 학습 파이프라인을 반복적으로 실행하는 것이다.
- 모델 배포(Model deployment)는 모델을 패키징하고, 테스트하고, 온라인 실험과 프로덕션 서빙을 위한 서빙 환경에 배포하는 것이다.
- 예측 서빙(Prediction serving)은 프로덕션에 배포된 모델을 추론을 위해 서빙하는 것이다.
- 지속적 모니터링(Continuous monitoring)은 배포된 모델의 효과성과 효율성을 모니터링하는 것이다.
- 데이터 및 모델 관리(Data and model management)는 ML 아티팩트를 관리하여 감사 가능성, 추적 가능성, 규정 준수를 지원하는 중심적이고 교차 기능적인 역할을 한다. 또한 데이터 및 모델 관리는 ML 아티팩트의 공유 가능성, 재사용 가능성, 발견 가능성을 촉진할 수 있다.
MLOps: An end-to-end workflow
-
그림 3은 MLOps 프로세스들이 서로 상호작용하는 방식에 대한 단순화된 표준 흐름을 보여주며, high level 에서의 제어 흐름과 주요 입력 및 출력을 중심으로 설명하고 있다.
그림 3. MLOps 프로세스
- 이것은 모든 프로세스를 순차적으로 거쳐야 하는 폭포수 방식의 워크플로우가 아니다.
- 프로세스를 건너뛸 수도 있고, 특정 단계를 반복하거나 일부 프로세스의 순서를 반복할 수도 있다. 위 그림은 다음과 같은 흐름을 보여준다.
- [ML 개발(ML development), code & config]
- ML 개발 단계에서 핵심 활동은 실험이다. 데이터 과학자와 ML 연구자들이 모델 아키텍처와 학습 루틴을 프로토타이핑하면서 라벨이 지정된 데이터셋을 만들고, 데이터 및 모델 관리 프로세스를 통해 관리되는 feature 와 다른 재사용 가능한 ML 아티팩트를 활용한다.
- 이 과정의 주요 출력물은 데이터 전처리, 모델 아키텍처, 모델 학습 설정을 포함하여 공식화된 학습 절차이다.
- [학습 운영화(Training operationalization), training pipeline]
- ML 시스템이 지속적인 학습(모델의 반복적 재학습, continuous training)을 필요로 하는 경우, 학습 절차는 학습 파이프라인으로 운영화된다.
- 이를 위해 CI/CD 루틴이 필요하며, 이를 통해 파이프라인을 빌드, 테스트, 배포하여 대상 실행 환경에 배치한다.
- [지속적 학습(Continuous training), registered model]
- 지속적 학습 파이프라인은 재학습 트리거에 따라 반복적으로 실행되며, 모델을 출력물로 생성한다.
- 모델은 새로운 데이터가 생성되거나 모델 성능 저하가 감지될 때 재학습된다. 학습 파이프라인에서 생성되는 다른 학습 아티팩트와 메타데이터도 추적된다.
- 파이프라인이 성공적인 모델 후보를 생성하면, 해당 후보는 모델 관리 프로세스에 의해 등록된 모델로 추적된다.
- [모델 배포(Model deployment), serving packages]
- 등록된 모델은 주석이 달리고, 검토 및 릴리스 승인을 거쳐 프로덕션 환경에 배포된다.
- 이 과정은 no-code 솔루션을 사용하는 경우 상대적으로 불투명할 수 있으며, 점진적 배포를 위한 맞춤형 CI/CD 파이프라인을 구축하는 작업이 포함될 수 있다.
- [예측 서빙(Prediction serving), serving logs]
- 배포된 모델은 지정된 배포 패턴에 따라 예측을 제공한다.
- 온라인, 배치, 또는 스트리밍 예측.
- 예측을 제공하는 것 외에도, 서빙 런타임은 모델 설명을 생성하고, 서빙 로그를 캡처하여 지속적 모니터링 프로세스에서 사용할 수 있도록 한다.
- [지속적 모니터링(Continuous monitoring)]
- 지속적 모니터링 프로세스는 모델의 예측 효과성과 서비스 성능을 모니터링한다.
- 효과성 성능 모니터링의 주요 관심사는 모델 성능 저하, 예를 들어 데이터 및 concept 변화의 감지다.
- 모델 배포는 또한 지연 시간, 처리량, 하드웨어 자원 활용, 실행 오류와 같은 효율성 지표를 모니터링할 수 있다.
- [ML 개발(ML development), code & config]
MLOps capabilities
- 위에서 강조된 핵심 MLOps 프로세스를 효과적으로 구현하기 위해서는 조직이 핵심 기술 역량을 구축해야 한다.
- 이러한 역량은 통합된 ML 플랫폼을 통해 제공될 수 있다.
- 또는 특정 작업에 가장 적합한 벤더 도구를 결합하거나, 맞춤형 서비스로 개발하거나, 이러한 접근 방식을 조합하여 만들어질 수 있다.
- 대부분의 경우, 이러한 프로세스는 한 번에 모두 배포되지 않고 단계적으로 배포된다. 이러한 ML 프로세스와 역량을 도입하는 계획은 비즈니스 우선순위와 조직의 기술 및 역량 성숙도에 맞춰져야 한다.
- 예를 들어, 많은 조직이 ML 개발, 모델 배포, 예측 서빙 프로세스에 중점을 두고 시작한다. 이러한 조직의 경우, 비교적 소수의 ML 시스템을 시범 운영할 때 지속적 학습(CT)과 지속적 모니터링(Continuous Monitoring)이 필요하지 않을 수 있다.
-
그림 4는 MLOps 에 일반적으로 요구되는 핵심 기술 역량을 보여준다. 이러한 역량은 기능적 구성 요소로 추상화되며, 특정 제품 및 기술과 다대다로 매핑될 수 있다.
그림 4. MLOps 핵심 기술 역량
- 모든 IT 워크로드를 지원하기 위해 필요한 몇 가지 기본 역량이 있는데, 여기에는 신뢰할 수 있고 확장 가능하며 안전한 컴퓨팅 인프라가 포함된다.
- 대부분의 조직은 이미 이러한 역량에 투자하고 있으며, 이를 ML 워크플로우에 활용하여 이점을 얻을 수 있다.
- 이러한 역량은 여러 클라우드에 걸쳐 있을 수 있으며, 일부는 온프레미스에서 운영될 수도 있다. 이상적으로는, 전문화된 ML 가속기와 같은 고급 역량이 포함된다.
- 추가로, 조직은 소프트웨어 시스템을 신속하고 안정적으로 빌드, 테스트, 릴리스, 운영하기 위해 표준화된 구성 관리 및 CI/CD 역량을 갖추어야 하며, 여기에는 ML 시스템도 포함된다.
- 그림에서 볼 수 있듯 이러한 기본 역량 위에 MLOps 의 핵심 역량들이 놓여있다. 여기에는 실험(Experimentation), 데이터 처리(Data processing), 모델 학습(Model training), 모델 평가(Model evaluation), 모델 서빙(Model serving), 온라인 실험(Online experimentation), 모델 모니터링(Model monitoring), ML 파이프라인(ML pipeline), 모델 레지스트리(Model registry)가 포함된다.
- 마지막으로, 통합과 상호작용을 가능하게 하는 두 가지 교차 기능 역량으로 ML 메타데이터 및 아티팩트 저장소와 ML 데이터셋 및 feature 저장소가 있다.
- 아래부터는 각 MLOps 핵심 역량의 특성을 보자.
Experimentation
- 실험 역량은 데이터 과학자와 ML 연구자가 협력하여 탐색적 데이터 분석(EDA)을 수행하고, 모델 아키텍처를 프로토타입으로 만들며, 학습 루틴을 구현할 수 있도록 한다.
- ML 환경은 이들이 모듈화되고, 재사용 가능하며, 테스트 가능한 소스 코드를 작성할 수 있도록 해야 하며, 소스 코드는 버전 관리가 되어야 한다.
- 실험에서 주요 기능은 다음과 같다.
- Git 과 같은 버전 관리 도구와 통합된 노트북 환경을 제공한다.
- 재현성과 비교를 위해 데이터, 하이퍼 파라미터, 평가 지표 등의 정보를 포함한 실험을 추적한다.
- 데이터와 모델을 분석하고 시각화한다.
- 데이터셋 탐색, 실험 찾기, 구현 검토를 지원한다.
- 플랫폼 내의 다른 데이터 서비스 및 ML 서비스와 통합된다.
Data processing
- 데이터 처리 역량은 ML 개발, Continuous Training 파이프라인, 예측 서빙 각 ML 프로세스에서 사용할 대규모 데이터를 준비하고 변환할 수 있도록 한다.
- 데이터 처리에서 주요 기능은 다음과 같다.
- 빠른 실험을 위한 대화형 실행(ex. notebook)과 프로덕션에서 장기 실행 작업을 지원한다.
- 다양한 데이터 소스 및 서비스에 대한 데이터 커넥터와 다양한 데이터 구조 및 포맷을 위한 데이터 인코더 및 디코더를 제공한다.
- 구조화된 데이터(테이블형 데이터)와 비구조화된 데이터(텍스트, 이미지 등)를 위한 풍부하고 효율적인 데이터 변환과 ML feature 엔지니어링을 제공한다.
- ML 학습 및 서빙 작업을 위해서 확장 가능한 배치 및 스트림 데이터 처리를 지원한다.
Model training
- 모델 학습 역량은 강력한 알고리즘을 효율적이고 비용 효과적으로 실행하여 ML 모델을 학습할 수 있도록 한다.
- 모델 학습은 모델의 크기와 학습에 사용되는 데이터셋의 크기에 따라 확장 가능해야 한다.
- 모델 학습에서 주요 기능은 다음과 같다.
- 일반적인 ML 프레임워크를 지원하고 커스텀 실행 환경도 지원한다.
- 여러 GPU 와 여러 작업자를 위해 다양한 전략으로 대규모 분산 학습을 지원한다.
- ML 가속기를 필요에 따라 사용할 수 있도록 한다.
- 대규모로 효율적인 하이퍼 파라미터 튜닝과 목표 최적화를 가능하게 한다.
- 이상적으로는 자동화된 feature 선택 및 엔지니어링, 모델 아키텍처 검색 및 선택을 포함한 자동화된 ML(AutoML) 기능을 내장하고 있다.
Model evaluation
- 모델 평가 역량은 모델의 효과성을 실험 중에는 대화식으로, 프로덕션에서는 자동으로 평가할 수 있게 한다.
- 모델 평가에서 주요 기능은 다음과 같다.
- 평가 데이터셋에서 모델의 배치 스코어링을 대규모로 수행한다.
- 데이터의 다양한 슬라이스에 대해 미리 정의된 평가 지표 또는 맞춤형 평가 지표를 계산한다.
- 다양한 지속적 학습(CT) 실행에서 학습된 모델의 예측 성능을 추적한다.
- 여러 모델의 성능을 시각화하고 비교한다.
- 가상 분석을 위한 도구를 제공하고, 편향 및 공정성 문제를 식별할 수 있게 한다.
- 다양한 설명 가능한 AI 기술을 사용하여 모델 행동을 해석할 수 있게 한다.
Model serving
- 모델 서빙 역량은 모델을 프로덕션 환경에 배포하고 서빙할 수 있게 한다.
- 모델 서빙에서 주요 기능은 다음과 같다.
- low-latency, near-real-time(online) 예측과 높은 처리량의 배치(offline) 예측을 지원한다.
- 일반적인 ML 서빙 프레임워크(ex. TensorFlow Serving, TorchServe, Nvidia Triton, 그 외 Scikit-learn 및 XGBoost 모델용)와 커스텀 실행 환경을 기본적으로 지원한다.
- 여러 모델이 계층적으로 또는 동시에 호출되어 결과가 집계되는 복합 예측 루틴을 가능하게 하며, 필요한 경우 전처리 또는 후처리 루틴도 지원한다.
- ML 추론 가속기를 효율적으로 사용하며, 스파이크가 있는 작업 부하에 맞춰 자동으로 확장하고 비용과 지연 시간을 균형 있게 조절할 수 있도록 한다.
- 주어진 모델 예측에 대한 feature 기여도와 같은 기술을 사용하여 모델 설명 가능성을 지원한다.
- 예측 서빙 요청과 응답을 분석을 위해 로그로 기록한다.
Online experimentation
- 온라인 실험 역량은 새로 학습된 모델을 릴리즈하기 전에, 현재 모델(있는 경우)과 비교하여 프로덕션 환경에서 어떻게 성능을 발휘하는지 이해할 수 있도록 해준다.
- 예를 들어, 서빙 인구의 작은 하위 집합을 사용하여 새로운 추천 시스템이 클릭률과 전환율에 미치는 영향을 이해하는 데 온라인 실험을 사용할 수 있다.
- 온라인 실험의 결과는 모델 레지스트리 역량과 통합되어 모델을 프로덕션에 배포할지 여부를 결정하는 데 도움이 된다.
- 온라인 실험은 성능이 좋지 않은 모델을 폐기하고 성능이 좋은 모델을 채택하는 데 도움을 줌으로써 ML 릴리즈의 신뢰성을 높인다.
- 온라인 실험에서 주요 기능은 다음과 같다.
- 카나리 배포와 섀도우 배포를 지원한다.
- 트래픽 분할과 A/B 테스트를 지원한다.
- Multi-Armed Bandit(MAB) 테스트를 지원한다.
Model monitoring
- 모델 모니터링 역량은 배포된 모델의 효율성과 효과성을 프로덕션 환경에서 추적하여 예측 품질과 비즈니스 연속성을 보장할 수 있도록 한다.
- 이 역량은 모델이 오래되어 조사하고 업데이트해야 할 필요가 있는지 알려준다.
- 모델 모니터링에서 주요 기능은 다음과 같다.
- 지연 시간 및 서빙 자원 활용과 같은 모델 효율성 지표를 측정한다.
- 스키마 이상, 데이터 변화, 개념 변화 및 드리프트를 포함한 데이터 왜곡(data skew)을 감지한다.
- 모델 평가 역량과 모니터링을 통합하여 정답(gt) 레이블이 제공되는 경우 배포된 모델의 효과성 성능을 지속적으로 평가한다.
ML pipelines
- ML 파이프라인 역량은 복잡한 ML 학습 및 예측 파이프라인을 프로덕션 환경에서 설치하고, 조정하며, 자동화할 수 있게 한다.
- ML 워크플로우는 다양한 구성 요소를 조정하며, 각 구성 요소는 파이프라인에서 특정 작업을 수행한다.
- ML 파이프라인의 주요 기능은 다음과 같다.
- 파이프라인을 필요에 따라(on-demand), 일정에 따라(on a schedule), 또는 지정된 이벤트에 반응하여 트리거할 수 있다.
- ML 개발 중 디버깅을 위한 로컬 대화형 실행을 가능하게 한다.
- ML 메타데이터 추적 역량과 통합하여 파이프라인 실행 매개변수를 캡처하고 아티팩트를 생성한다.
- 공통 ML 작업을 위한 기본 구성 요소 세트를 제공하며, 커스텀 구성 요소도 허용한다.
- 로컬 머신과 확장 가능한 클라우드 플랫폼 등 다양한 환경에서 실행할 수 있다.
- 선택적으로, 파이프라인 설계 및 구축을 위한 GUI 기반 도구를 제공한다.
Model registry
- 모델 레지스트리 역량은 ML 모델의 라이프사이클을 중앙 저장소에서 관리할 수 있게 한다.
- 이를 통해 프로덕션 모델의 품질을 보장하고 모델 발견을 가능하게 한다.
- 모델 레지스트리의 주요 기능은 다음과 같다.
- 학습 및 배포된 ML 모델을 등록, 조직, 추적하고 버전 관리를 한다.
- 배포 가능성을 위해 모델 메타데이터와 런타임 종속성을 저장한다.
- 모델 문서화 및 보고서를 유지한다(ex. 모델 카드 사용).
- 모델 평가 및 배포 역량과 통합하여 온라인 및 오프라인 평가 지표를 추적한다.
- 모델 출시 과정(검토, 승인, 릴리즈, 롤백)을 관리한다. 이러한 결정은 오프라인 성능 및 공정성 지표와 온라인 실험 결과를 바탕으로 한다.
Dataset and feature repository
- 데이터셋 및 feature 저장소 역량은 ML 데이터 자산의 정의와 저장을 통합할 수 있게 한다.
- 최신의 고품질 데이터 자산을 중앙 저장소에 보유함으로써 공유 가능성, 발견 가능성, 재사용성을 높인다.
- 또한 저장소는 학습 및 추론에 데이터 일관성을 제공한다. 이는 데이터 과학자와 ML 연구자들이 데이터 준비 및 feature 엔지니어링에 소요되는 시간을 절약하도록 돕는다.
- 데이터 및 feature 저장소의 주요 기능은 다음과 같다.
- 데이터 자산의 공유 가능성, 발견 가능성, 재사용성 및 버전 관리를 지원한다.
- 이벤트 스트리밍 및 온라인 예측 작업을 위한 실시간 데이터 수집과 low-latency 서빙을 가능하게 한다.
- 추출, 변환, 적재(ETL) 프로세스 및 모델 학습, 스코어링 작업을 위한 고처리량 배치 수집과 서빙을 지원한다.
- point-in-time 쿼리를 위한 feature 버전 관리를 가능하게 한다.
- 테이블 데이터, 이미지, 텍스트 등 다양한 데이터 형태를 지원한다.
- ML 데이터 자산은 개별 feature 수준에서 관리될 수도 있고 전체 데이터셋 수준에서 관리될 수도 있다.
- 예를 들어, feature 저장소에는 나이 그룹, 우편번호, 성별과 같은 feature 를 포함하는 ‘고객’이라는 엔티티가 포함될 수 있다. 반면, 데이터셋 저장소는 고객 및 제품 엔티티의 feature 와 구매 및 웹 활동 이벤트 로그를 포함하는 고객 이탈 데이터셋을 포함할 수 있다.
ML metadata and artifact tracking
- 다양한 유형의 ML 아티팩트는 MLOps 라이프사이클의 여러 프로세스에서 생성된다. 여기에는 기술 통계 및 데이터 스키마, 학습된 모델, 평가 결과 등이 포함된다.
- ML 메타데이터는 이러한 아티팩트에 대한 정보로, 위치, 유형, 속성, 실험 및 실행과의 연관성을 포함한다.
- ML 메타데이터 및 아티팩트 추적 역량은 모든 다른 MLOps 역량의 기초가 된다.
- 이 역량은 복잡한 ML 작업 및 파이프라인의 재현성과 디버깅을 가능하게 한다.
- ML 메타데이터 및 아티팩트 추적의 주요 기능은 다음과 같다.
- ML 아티팩트의 추적 가능성 및 계보 추적을 제공한다.
- 실험 및 파이프라인 파라미터 구성을 공유하고 추적한다.
- ML 아티팩트를 저장, 접근, 조사, 시각화, 다운로드 및 보관한다.
- 모든 다른 MLOps 역량과 통합된다.
Deep dive of MLOps processes
- 다음 포스트부터는 아래의 핵심 MLOps 프로세스(핵심 역량이 포함된)를 자세히 알아보자.
- ML 개발(ML development)
- 학습 운영화(Training operationalization)
- 지속적 학습(Continuous training)
- 모델 배포(Model deployment)
- 예측 서빙(Prediction serving)
- 지속적 모니터링(Continuous monitoring)
- 데이터 및 모델 관리(Data and model management)
- 주요 작업과 작업 간의 제어 흐름, 작업에 의해 생성된 주요 아티팩트, 그리고 작업이 다른 상류 및 하류 프로세스와 어떻게 연결되는지를 설명한다.
- 또한 지속적인 학습 파이프라인 실행, 모델 배포, 모델의 예측 성능 모니터링과 같은 작업의 구체적인 세부 사항에 대해서도 다룬다.
- MLOps 프로세스는 필요한 개발 및 운영 역량을 갖춘 통합 ML 플랫폼에서 진행된다. 인프라 엔지니어는 Terraform 과 같은 IaC 도구와 configuration 관리를 사용하여 개발, 테스트, 스테이징, 프로덕션과 같은 다양한 환경에서 필요한 개발 및 운영 역량을 갖춘 통합 ML 플랫폼을 구축할 수 있다.
- 각 환경은 필요한 컴퓨팅 자원, 데이터 접근, MLOps 역량 서비스의 하위 집합을 구성하여 설정된다.
댓글 남기기