Skip to content

MLOps #

Find similar titles

1회 업데이트 됨.

Edit
  • 최초 작성자
  • 최근 업데이트
    hmkim

Structured data

Category
Management

배경 #

기계학습은 컴퓨터가 데이터를 학습하여, 새로운 데이터에 관한 결과를 예측하게 하는 알고리즘이다. 이러한 특성 덕에 기업 수익 예측, 음성 인식, 이상 감지 등 현실의 복잡하고 다양한 문제를 해결하는 데에 활용될 수 있다. 하지만 높은 정확성을 가진 기계학습 모델을 구축한다고 해도, 바로 실제 서비스로 배포하고 운영하기는 어렵다. 다양한 원인 중 하나는 기계학습 모형이 실제 서비스까지 도달하기 위해서는 부수적인 과정이 따른다는 것이다. 모델의 배포를 위해서는 API 서버와 같은 endpoint가 필요하며, 이 endpoint 개발을 위해서는 환경 구축, 설계, 개발, CI/CD 등의 작업이 필요하다. 또 다른 원인으로는 성능의 추적과 데이터 관리의 어려움이다. 기계학습 모형의 성능은 학습 데이터에 의존하기에, 실제 예측 데이터에 대한 성능이 보장되는지 추적하고, 필요한 경우 학습 데이터를 지속해서 업데이트해주어야 한다. 이때 업데이트하는 데이터가 기존의 데이터와 다른 경우, 추가적인 처리 과정이 요구되며, 모델을 변경해야 할 수도 있다. 위와 같은 이유로 기계학습 모델을 서비스화하기 위해서는, 성능 향상뿐만 아니라 안정적으로 운영하기 위한 노력이 필요하다.

MLOps란? #

MLOps는 Machine Learning Operations의 약어로, 프로덕션 환경에서 기계학습 모델을 안정적이고 효율적으로 배포 및 유지 관리하는 것을 목표로 하는 일련의 관행이다. 즉. MLOps는 특정 소프트웨어를 말하는 것이 아니며, 일종의 개발 문화이다. MLOps는 IT 분야에서 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말하는 DevOps(Development Operations)에서 유래하여, 유사한 목표를 가지지만 운영의 대상이 기계학습이라는 것에서 차이가 있다.

Image

MLOps는 크게 모델 개발(Model dev)단계와 모델 운영(Model Ops) 단계로 구분할 수 있다. 모델 개발단계에는 데이터 수집, 전처리, 모델 구축, 학습, 평가 등이 포함되며, 모델 운영 단계에는 모델의 배포나 모니터링이 포함된다. 각각의 단계는 명확히 구별되기 보다는 유기적으로 연결되며, 전 과정은 순환되는 구조이다.

MLOps 파이프라인 구성 요소 #

MLOps 는 “통합, 테스트, 배포, 테스트, 모니터링”의 파이프라인을 자동화하여 목표를 달성한다. 아래에서 그 요소를 각각 살펴보려 한다.

통합 #

기계학습은 여러 회에 걸친 실험이 중요하다. 기계학습 구축 과정에는 데이터 샘플링, 특징 선발, 모델 최적화 등이 포함되며, 이 과정마다 다양한 시도들이 코드로 작성된다. 따라서 여러 회에 걸친 실험 코드는 즉시 운영 가능한 형태가 아니다. 운영을 위해서는 프로덕션 데이터의 ETL, 분산처리, 불필요한 로직 제거, 연산 및 학습 단계 단순화 등의 운영 수준의 변형과정이 필요하다. 즉, MLOps의 통합은 실험환경에서 결정된 데이터 변형, 학습, 평가, 재학습 주기, 모니터링 지표 설정 등 실제 서비스 운영환경으로 통합되는 것을 의미한다.

테스트 #

기계학습을 활용한 예측 등은 일반적인 개발 테스트 방식으로 검증하기가 어렵다. 일반적인 소프트웨어 개발의 경우, 목적과 의도에 적합한 기능을 적절히 구현하는지를 확인하기 위하여 기능별로, 그리고 통합하여 검증을 수행할 수 있다. 하지만 기계학습 모형의 경우 내부 동작이나 결과를 정확한 수치로 예측하는 것이 어렵다. 따라서 기계학습의 성능 지표인 Accuracy, Precision/Recall curve, Confusion matrix 등을 활용하여 테스트를 수행할 수 있다.

모니터링 #

일반적인 소프트웨어의 경우 서버의 리소스 상태나 응답 시간과 같이 동작의 정상/비정상을 구분할 수 있는 지표가 존재한다. 하지만 기계학습의 경우 정상/비정상을 판단하는 방법은 복잡하고 다양하다. 프로젝트의 목적, 알고리즘, 데이터의 특성에 따라 비정상 동작을 판단하는 방법은 달라질 수 있으므로, 이를 고려하여 모니터링 지표를 선택해야 한다.

배포 #

MLOps의 배포는 단순하게 예측 모형의 API 제공하는 것이 아니며, 코드 통합, 새로운 데이터의 학습, 서비스로 모델 전달, 모니터링 방식 적용까지의 모두 포함해야 한다. MLOps의 파이프라인은 배포 후 다시 모델의 개발, 통합, 학습 등을 수행하도록 전환되어야 한다.

Image

MLOps 특징과 장점 #

MLOps의 특징과 장점은 다음과 같다.

  • 지속적 모델 개발
  • scalable training
  • 컴퓨팅 자원 최적화
  • 워크플로우 관리
  • 모니터링
    • 모델 성능 모니터링
    • 시스템 모니터링
    • 모델 로깅
  • 협력성 증대
  • 역할에 따른 관심사 분리
  • 운영 안정성 확보

MLOps 플랫폼 #

MLOps 파이프라인을 지원하는 플랫폼은 여러 개 존재한다. 가장 널리 사용되고 있는 플랫폼과 주목적은 아래 표와 같다. description과 focus의 내용을 활용하여, 활용 목적에 부합하는 플랫폼을 활용하면 된다.

Image

References #

  1. https://medium.com/daria-blog/mlops-란-무엇일까-7ba8d9aae221
  2. https://zzsza.github.io/mlops/2018/12/28/mlops/, https://www.slideshare.net/zzsza/mlops-kr-mlops-210605
  3. https://coffeewhale.com/what-is-mlops
  4. https://valohai.com/mlops-platforms-compared/
0.0.1_20240214_1_v81