# 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
# 모델의 재현
## MLOps에서 모델은 어떻게 재현되는가?
머신러닝에서 안정적/반복적인 실험을 위해서는 '재현' 개념이 중요
1) 동일한 학습 및 평가 데이터를 활용해야 함 (학습시에 split의 경우에 수에 따라서도 성능이 서로 다름)
2) python 난수 추출 고정해야 함 (동일 커널에서 다시 실행시 서로 다른 난수 추출)
> 난수표 초기화 or random_state로 난수 추출 순서 지정 필요
> 그러나 학습시 random값이 유의미한 정보가 되므로 난수 통제 안하는 경우 있음
3) 라이브러리 패키지 버전 고정해야함
## 컨테이너
- 재현 목적으로 활용하는 소프트웨어중 하나
- 동일한 코드를 공유하는 방법 :
>> 수백명에게 공유해야 할 경우, 물리적인 노트북을 제공하는 것이 아니라, 가상의 노트북을 만들어 제공
- 가상의 환경 만드는 소프트웨어
1) Virtual machines : OS를 가상머신 기기마다 설치해서 사용 - 무겁지만 독립된 OS 사용
2) Containers : 실행되는 기기에 OS를 공유해서 사용 - 가볍지만 한 컨테이너에 문제가 생기면 전체에 영향
* 프로그래머스의 마키나락스 MLOps 강의를 참고하여 작성한 내용임
'MLOps' 카테고리의 다른 글
[MLOps] 6. MLflow 로깅 방법 (1) | 2024.04.18 |
---|---|
[MLOps] 5. 도커 Compose로 MLflow 시작하기 (0) | 2024.04.17 |
[MLOps] 4. MLflow 시작하기 (feat.도커) (0) | 2024.04.17 |
[MLOps] 3. 실험 관리 (0) | 2024.04.17 |
[MLOps] 2. 도커 사용 실습 - 이미지 build 및 .py파일 재현 (1) | 2024.04.17 |