MLOps

ML LifeCycle 구성요소 & MLOps 상세

jungmin.park 2025. 4. 9. 23:32

ML Life Cycle

  • 머신러닝 모델을 개발, 배포, 유지보수하는 모든 단계를 정리하는 Life Cycle
  • 크게 다음과 같은 단계로 구분을 지을 수 있음

머신러닝 라이프 사이클 구성요소

  1. 데이터를 수집 & 준비 : Data Collection and Preparation
  2. 피처 엔지니어링 : Feature Enginnering
  3. 모델 엔지니어링 : Model Selection and Model Learning
  4. 모델 평가&튜닝 : Model Evaluation and Model Tuning
  5. 모델 배포 & 모니터링 : Deployment and Monitoring
  6. 재평가 및 모델 업데이트 : ReEvaluation and Model Update

ML을 다룰때 간과하고 있는 단계가 있다 그 단계는 5,6단계 모델 배포 & 모니터링 / 재평가 및 모델 업데이트 단계이다.

ML을 개발할 때 4번까지만 고려를 하는데 MLOps 입장에서는 5,6단계를 통해 모델을 더 안정화시킬 수 있으며 새로운 데이터가 들어오면서 모델이 편향될 경우 업데이트 재평가 및 업데이트 과정을 거치면 좀 더 개선된 모델을 만들어 낼 수 있다.

따라서 MLOps 공부를 하며 5,6번을 이번에 좀 더 주의깊게 살펴 볼 필요가 있다.

 

직무별 ML Life Cycle

데이터 엔지니어 : 데이터를 수집하고 머신러닝 모델을 개발하기에 적합하게 전처리를 하는 역할

데이터 사이언티스트 : 머신러닝 모델을 구축하고 데이터로 모델을 개발하는 역할

ML 엔지니어, 개발자 : 그 모델을 웹/앱에 implement하고, 그 product를 배포, 유지, 보수하는 일을 하는 역할

 


1. 데이터를 수집 & 준비 : Data Collection and Preparation

문제 정의 및 요구사항 -> Data 수집 -> EDA
  • 문제 정의 및 요구사항
    • 우리가 해결해야 할 문제를 위해 필요한 데이터가 무엇인가?
    • 우리가 해결하려는 문제는 무엇인가?
  • Data 수집
    • 다양한 소스로부터 데이터를 수집
    • 해당 데이터를 분석에 사용 가능한 형태로 정제 및 변환
  • EDA
    • 데이터의 핵심적인 특성 분포, 상관관계, 이상치 등을 조사하고 요약

2. 피처 엔지니어링 : Feature Engineering

EDA -> Feature Engineering
  • Feature Engineering
    • ML모델 구축 및 평가에 사용할 데이터를 준비 Encoding/Transformation/Sampling/결측치 처리 등이 포함

3. 모델 엔지니어링 : Model Selection과 Model Training

  • Model Selection
    • 데이터와 문제에 가장 적합한 모델 유형과 아키텍쳐를 선택
  • Model Training
    • 모델의 parameter를 최적화하도록 학습(MSE, Cross Entropy 등과 같은 loss 함수 기반)

5. 모델 배포 & 모니터링 : Model Deployment와 Monitoring

  • 최종 선택된 모델을 실제 Application으로 상품화 배포 진행
Model Integration -> Monitoring and Feedback -> Scaling and Maintenance
  • 모델 통합 : Model Integration
    • ML Model을 Application코드와 Database에 통합하는 과정
  • 모니터링 및 피드백 : Monitoring and Feedback
    • 모델 성능을 지속적으로 모니터링하고 사용자 피드백을 수집하여, 시스템을 시간이 지남에 따라 개선
  • 유지보수 : Scaling and Maintenance
    • 어플리케이션 소비자 증가(사용 증가)에 대응하기 위한 시스템 확장 및 데이터나 비즈니스 요구사항 변경에 따른 AI 모델 유지보수

6. 모델 재평가 및 업데이트 : Re Evaluation과 Model Update

ML LifeCycle은 배포로 끝나는 것이 아닌 실제로 모델을 정기적으로 재평가하고 업데이트하여 정확성과 관련성을 유지하는 것이 중요

Monitoring Feedback -> Re Evaluation -> Model Update
  • Monitoring Feedback 
    • 사용자로부터 모델 성능과 정확성에 대한 피드백을 수집
  • Re Evaluation
    • 새로운 데이터로 모델을 평가하여 모델 성능 저하를 감지
  • Model Update
    • 모델을 새로운 데이터 혹은 알고리즘 등으로 업데이트하여 정확성을 개선

ML LifeCycle에서 다양한 문제

 

ML LifeCycle은 배포로 끝나는 것이 아니다. 실제로 모델을 정기적으로 재평가하고 업데이트하여 정확성과 관련성을 유지하는 것이 중요

Re-Evaluation 과 Update을 고려해줘야한다.

 

데이터 보안 문제

데이터 보안 위협

  • 데이터 노출 : 머신러닝에서 사용되는 데이터는 민감한 정보를 포함할 수 있는데 노출이 될 경우 개인 정보 침해 등의 문제가 발생
  • 데이터 조작 : 공격자(해커)가 데이터를 조작가능
  • 데이터 유출 : 외부로 유출될 경우 악용될 우려가 있다

데이터 보안을 위한 대책

  • 데이터 암호화 : 데이터를 암호화하여 외부로부터 보호
  • 데이터 분할 : 머신러닝에 사용되는 데이터를 여러 분산 시스팀에 나눠서 저장
  • 접근 제어 : 머신러닝 데이터에 대한 접근을 제한하여 외부로부터 보호
  • 로그 관리 : 데이터에 대한 접근 기록을 감시하여 외부 침입 시 신속한 대응

윤리적 문제

Bias와 Fairness

  • 데이터나 모델에서의 bias는 모델 accuracy와 fairness(공정성)에 영향을 미침
    • 예) 인종이나 성별 등 특정 인구 그룹에 대한 편견이나 차별성이 모델에 내재될 수 있음
  • 이를 위해 모델 데이터를 검토하고, 균형있는 데이터를 수집, 모델을 학습시키기 전에 데이터를 균형있게 조정하는 것이 필요
  • 모델의 공정성을 평가하기 위해 다양한 fairness metric을 사용할 수 있음

데이터 개인정보 보호

  • ML 개발을 위해 수집된 데이터는 개인정보일 가능성이 높아 익명성 또는 적절한 보안 처리를 해야함
  • 데이터 수집 및 사용시 관련 법규와 윤리적 지침을 준수해야함

신뢰도 문제

모델 해석성

  • 일부 ML 모델은 해석이 어려워, 모델의 예측 결과를 설명하기 어려움
  • 이로인해 ML 모델의 신뢰성에 대한 의구심을 불러 일으키거나, 올바르지 않은 결정을 내릴 수 있게함
  • 이를 해결하기 위해 모델을 설명 가능한 방식으로 개발하거나, 모델 결정 과정을 시각화하는 것이 필요

데이터 소스의 신뢰성

  • ML 모델의 성능과 결과는 모델이 학습한 데이터 소스의 신뢰성에 크게 영향을 받음
  • 만약 데이터 소스가 품질이 낮거나 편향되어 있다면, 모델 성능이 하락하거나 잘못된 결론을 내릴 수 있음
  • 이를 해결하기 위해, 데이터 소스의 품질을 검증하고 데이터를 다양한 소스에서 수집하며 적절한 데이터 전처리를 수행하는 것이 중요

ML System

  • 데이터 분석, 모델 훈련, 예측 생성 등을 포함하는 시스템
  • 머신러닝 모델과 관련된 어플리케이션 및 도구의 집합
  • 특정 비즈니스 문제를 해결하기 위해 데이터를 분석하고 학습하여 예측 모델을 제공

단순히 좋은 머신러닝 모델만으로 시스템을 운영할 수 없다. 모델이 핵심이기는 하나 프로덕션ML 시스템의 운영을 고려한다면 모델을 운영하기 위한 기반 데이터와 인프라를 포함한 모든 시스템이 유기적으로 돌아가야 한다.

 

주요 구성 요소

  • 데이터 수집 및 처리
  • 모델 개발 및 훈련
  • 예측 및 추론 메커니즘
  • 사용자 인터페이스 및 API

 

ML System은 ML Life Cycle을 모두 고려하지 않는다.

  • 시스템은 특정 머신러닝 모델의 구현과 기능에 초점을 마주지만, 모델 전체 생명 주기를 관리 최적화에는 초점이 많이 잡혀있지 않음
  • 시스템은 모델이 실제로 수행하는 작업과 관련이 있으며 특정 시점에 구축된 모델을 기반으로 함

-> ML System은 ML Life Cycle에서의 모니터링, 지속적인 모델 업데이트/지속적 배포, 신뢰성 관리 등은 고려되지 않음

 


MLOps란 무엇인가 

 

상세설명

  • MLOps는 전체적인 ML Life Cycle과 관련된 프로세스를 통합 -> 상품화 ML에 집중
  • 데이터 수집, 모델 구축 및 학습, 모델 배포, 모델 모니터링, 유지보수 관리, 피드백 관리, 리소스 관리 등이 포함
  • MLOps는 이러한 작업들을 자동화하고 표준화화여, 모델 개발 주기와 배포 주기를 빠르게 하고, 이를 안정적으로 운영할 수 있도록 지원
  • MLOps는 Machine Learning 모델을 적용하고 운영하는 방법을 혁신적으로 변화시킴
    • 과거 : 모델이 학습되고 배포되는 것에 집중
    • 현재 : 모델이 운영되는 시스템을 안정적으로 운영하고 유지보수 하기 위한 작업이 중요시됨
  • ML System보다는 더 많은 것을 다루는 것이 MLOps
ML System 비교 사항 MLOps
데이터 분석, 모델 훈련, 예측 생성 등을 포함하는 시스템 정의 머신러닝 모델의 개발, 배포 및 운영을 최적화하는 방법론 및 관행
특정 머신러닝 모델의 구현과 기능 초점 모델의 전체 생명주기 관리 및 최적화
데이터 처리, 모델 훈련, 예측 및 추론, 사용자 인터페이스 주요 구성 요소 ML System의 구성요소 + 모델 버전 관리, 자동화된 테스트 및 배포, 성능 모니터링
비즈니스 요구사항을 충족하는 데이터기반 예측 제공 목적 머신러닝 모델의 신속한 개발 및 안정적 운영지원
머신러닝 모델과 관련된 작업을 포함 공통점 머신러닝을 비즈니스 프로세스를 통합하려는 목표 공유
구체적인 머신러닝 모델 작업에 초점
한 번의 구축에 초점을 맞춤
차이점 지속적인 통합, 배포 및 모니터링에 초점을 맞춤

 

MLOps의 필요성

  • ML 학습 모델을 개발하고 배포하고 관리하는 전체 프로세스를 자동화하고 최적화하기 위해 필요
  • 기계학습 모델의 신뢰성 확보 : MLOps을 통해 모델의 품질을 높일 수 있다. 기계학습은 데이터와 알고리즘에 의존하기 때문에 데이터의 품질 문제나 알고리즘 오류로 부정확한 결과를 받을 수 있지만 MLOps을 통해 예방하고 모델 신뢰성 확보가 가능함
  • 빠른 개발과 배포 : MLOps을 통해 개발자는 데이터 처리, 모델 훈련 및 모델 배포 등의 프로세스를 자동화, CI/CD 파이프라인 구축하여 머신러닝 모델을 더욱 빠르게 개발하고 배포가능
  • 재현성과 확장성 : MLOps는 데이터와 모델의 버전 관리, 코드의 수정 내역을 관리하여, 모델의 재현성을 보장할 수 있음
  • 비용 절감 : 모델을 빠르게 개발하고 배포하면서 비용을 절감할 수 있음. MLOps를 사용하면 인력, 시간, 자원 등의 비용을 줄일 수 있으며 모델 성능 개선을 더욱 많은 비즈니스 가치 창출이 가능

 

MLOps의 핵심기능

자동화된 빌드, 테스트 및 배포, 모델 최적화 -> 버전 관리와 협업 -> 데이터 관리 및 모니터링
-> 성능 모니터링 및 로깅 -> 보안 및 규정 준수

데이터 관리 및 처리

  • 기능 : 데이터 수집, 저장, 전처리 및 관리
  • 예시 : Data Engineer가 매일 웹사이트에서 사용자 행동 데이터를 수집하여 클라우드 기반 데이터 웨어하우스에 저장. 이 데이터는 Data Scientist에 의해 필요한 형식으로 전처리되며, 결측치 처리/정규화/feature engineering 등이 포함

모델 개발 및 훈련

  • 기능 : 머신러닝 모델의 선택, 개발, 훈련 및 검증, HyperParameter Tuning 최적화
  • 예시 : Data Scientist가 고객 이탈 예측 모델을 위해 여러 알고리즘을 실험하고, 교차 검증을 사용하여 최적 모델을 선택. 최적화 알고리즘을 통해서 모델성능 최적화 진행

모델 배포 및 서빙

  • 기능 : 훈련된 모델을 프로덕션 환경에 배포하고 사용자에게 서비스 제공
  • 예시 : MLOps 엔지니어가 훈련된 모델을 Docker 컨테이너에 패키징하고, Kubernetes 클러스터를 사용하여 스케일링 가능하고 높은 가용성을 가진
    환경에 배포합니다. 모델은 REST API를 통해 실시간 예측 서비스를 제공합니다.

모니터링 및 로깅

  • 기능 : 배포된 모델의 성능 모니터링 및 로깅
  • 예시 : 모델의 예측 성능이 시간이 지남에 따라 변할 수 있으므로, Prometheus와 같은 도구를 사용하여 모델의 응답 시간, 에러율, 정확도 등을 지속적으로 모니터링. 문제가 발견되면 로그 데이터를 분석하여 원인을 파악.

자동화 및 CI/CD

  • 기능 : 코드 변경 시 자동으로 모델을 재훈련, 테스트 및 배포하는 프로세스.
  • 예시 : Data Scientist가 모델의 성능을 개선하기 위해 알고리즘을 수정하면, 이 변경은 Git에 커밋되고, Jenkins와 같은 CI/CD 도구가 변경 사항을 감지하여 자동으로 새로운 모델을 훈련, 테스트 및 프로덕션 환경에 배포

협업 및 버전 관리

  • 기능 : 팀원 간의 협업 및 프로젝트의 버전 관리
  • 예시 : 프로젝트의 모든 코드, 데이터, 모델 버전이 Git과 DVC(Data Version Control)를 통해 관리. 이를 통해 프로젝트 내의 모든 변경 사항을 추적하고, 필요시 이전 버전으로 롤백할 수 있음

보안 및 규정 준수

  • 기능 : 저장되거나 전송되는 데이터의 보안을 유지.
  • 예시 : 모든 중요 데이터는 저장 시 암호화되며, 전송 시 SSL/TLS와 같은 안전한 프로토콜을 사용하여 암호화됩니다. 이는 데이터가 무단 접근이나 해킹으로부터 보호되도록 보장합니다.


접근 제어 및 권한 관리

  • 기능 : 시스템 및 데이터에 대한 접근을 엄격하게 관여
  • 예시 : 사용자 및 서비스 계정에 대한 역할 기반 접근 제어(RBAC)를 구현하여, 필요한 최소한의 권한만 부여. 예를 들어, 데이터 과학자에게는 데이터 분석 권한은 있지만, 운영 데이터베이스를 수정할 권한은 없을 수 있음.

 

MLOps를 위한 도구

CI/CD 도구
• MLOps에서 핵심적 역할
• ML Pipeline을 자동화하여 빠르게 릴리즈하고 모델 및 서빙 품질을 향상시키는데 필수적
• CI/CD 도구로는 Jenkins, Travis CI, Circle CI, GitLab CI 등이 존재함

모델 관리 및 배포 도구
• 머신 러닝 모델의 개발, 관리, 배포, 모니터링을 담당
• 대표적으로 Kuberflow, MLflow, Seldon Core, KubeDirector 등이 존재함

데이터 관리 도구
• 데이터 수집, 저장, 전처리, 변환, 버전 관리를 지원
• 대표적으로 DVC, Pachyderm, Kuberflow data pipelines 등이 존재함

로깅 및 모니터링 도구
• 모델의 성능 및 안정성을 보장하기 위해 필요
• 모델 및 인프라에 대한 모니터링, 로그 수집, 성능 및 사용량 추적, 경고 및 예측 등을 지원
• 대표적으로 Prometheus, Grafana, ELK Stack, Datadog 등이 있음

보안 도구
• 머신 러닝 모델과 관련된 데이터 및 시스템 보안을 유지하기 위해 사용
• 대표적으로는 HashiCorp Valut, Kubernetes Secrets, SOPS 등이 있음