MLOps

[MLOps] 1. MLOps 개념

mlslly 2024. 4. 17. 15:28

 

# MLOps의 대두 배경 

 

## 1. 머신러닝의 발달 

전통적인 소프트웨어에서는 Frontend + Backend + Infra구조였다면

머신러닝의 중요성 및 복잡성이 늘어나고 독립적으로 Backend, Infra와 소통하는 경우가 많아지면서 하나의 영역으로 분리됨

 

## 2.  머신러닝의 복잡도 증대 

AI는 데이터에 따른 소프트웨어. AI = software(data) 

 

같은 코드로도 학습 데이터가 무엇인지에 따라 AI 결과 달라짐.

해결하는 문제의 유형에 따라, 같은 문제 유형 안에서도 데이터의 범위 및 특성에 따라, 모델의 유형에 따라 달라짐 

다양한 경우의수 등으로 복잡도가 높아지면서 MLOps의 필요성이 대두

 

## 3. 어떤 기대 효과?

1. 데이터 사이언티스트 등이 문제풀이와 모델링에 더 집중 가능

2. 정교한 실험 설계와 관리 가능 ex. mlflow등의 인사이트 - 파라미터와 accuracy 관리 

3. 배포 모델 문제시 빠른 환경 재현 가능 ex. silent failure의 문제 / data drift

 

3

# 모델의 재현

 

## MLOps에서 모델은 어떻게 재현되는가? 

머신러닝에서 안정적/반복적인 실험을 위해서는 '재현' 개념이 중요

1) 동일한 학습 및 평가 데이터를 활용해야 함 (학습시에 split의 경우에 수에 따라서도 성능이 서로 다름)

2) python 난수 추출 고정해야 함 (동일 커널에서 다시 실행시 서로 다른 난수 추출) 

   >  난수표 초기화 or random_state로 난수 추출 순서 지정 필요 

   > 그러나 학습시 random값이 유의미한 정보가 되므로 난수 통제 안하는 경우 있음

3) 라이브러리 패키지 버전 고정해야함 

 

## 컨테이너 

- 재현 목적으로 활용하는 소프트웨어중 하나 

- 동일한 코드를 공유하는 방법 : 

>> 수백명에게 공유해야 할 경우, 물리적인 노트북을 제공하는 것이 아니라, 가상의 노트북을 만들어 제공

 

- 가상의 환경 만드는 소프트웨어

1) Virtual machines : OS를 가상머신 기기마다 설치해서 사용 - 무겁지만 독립된 OS 사용 

2) Containers : 실행되는 기기에 OS를 공유해서 사용 - 가볍지만 한 컨테이너에 문제가 생기면 전체에 영향

 

* 프로그래머스의 마키나락스 MLOps 강의를 참고하여 작성한 내용임