티스토리 뷰
ML Ops에는 다양한 구성요소가 있지만, 그 중 중요한 구성요소에 대해 알아보겠습니다.
ML Ops 구성요소 - 1) Serving
Production 환경에 사용할 수 있도록 모델을 배포하는 Serving 방식은 다음과 같습니다.
- Batch Serving
- Airflow, Cronjob 등으로 스케쥴링 작업 (학습과 예측을 별도의 작업으로 설정)
- API 형태로 요청이 올 때마다 Serving
- Flask , Fast API
- Docker
- kubernetes
- Serving 프레임워크 사용
- kuberflow, BentoML, Seldon Core, Cortex, KFServing, Tensorflow Serving Torch Serve 등
Server와 실시간으로 통신해야 하는 것이 아니라면, Batch Serving으로 구축하는 것도 좋은 방안입니다.
Batch Serving 의 결과를 DB에 저장하고 Server는 그 데이터를 주기적으로 가져가는 방식으로 통신 가능합니다.
그리고 머신러닝 모델을 운영하면서 점점 API형태로 변환할 수 있습니다.
ML Ops 구성요소 - 2) Data Validation
모델 학습 전에 모델을 재학습을 해야 할지 또는 파이프라인 실행을 멈춰야 할지를 결정하기 위해 필요합니다. 파이프라인에서 다음을 식별할 경우에 자동적으로 이루어집니다.
- 데이터 스키마 왜곡: 입력 데이터에 이상치가 있음을 의미합니다. 즉, 데이터 전처리 및 모델 학습과 같은 이어질 파이프라인 단계들이 예상되는 스키마를 준수하지 않는 데이터를 받게 된다는 것을 말합니다.
이 경우 데이터 사이언스팀이 조사할 수 있도록 파이프라인을 중지해야 합니다. 팀은 이러한 변경사항을 스키마에서 처리하기 위해 파이프라인에 대한 수정 또는 업데이트를 릴리즈 할 수 있습니다.- 스키마 왜곡의 예시 : 예기치 않은 Feature를 받거나, 예상되는 Feature 중 빠진 Feature가 있거나, Feature값이 예상 범위를 벗어난 경우
- 데이터 값 왜곡 : 데이터의 통계적 특징에 유의미한 변화가 있는 경우입니다. 이는 데이터 패턴이 변경되고 있음을 의미합니다. 이러한 변화를 포착하기 위해 모델의 재학습을 트리거하여야 합니다.
ML Ops 구성요소 - 3) Model Validation
이 단계는 새로운 데이터가 제공된 모델을 학습시킨 후에 이뤄집니다. 모델을 프로덕션으로 올리기 전에 사용자가 모델을 평가하고 검증합니다. 이 오프라인 모델 검증 단계는 다음으로 구성됩니다.
- 모델의 예측 품질을 평가하기 위해 테스트 데이터세트에서 학습된 모델을 사용하여 평가 지표값을 생성합니다.
- 새롭게 생성된 학습모델의 평가 지표 값을 현재 모델과 비교합니다(예: 프로덕션 모델, 기준 모델 또는 기타 비즈니스 요구사항 모델). 새 모델이 프로덕션으로 올리기 전에 현재 모델보다 우수한 성능을 제공하는지 확인합니다.
- 모델의 성능이 데이터의 다양한 세그먼트에서 일관성이 있는지 확인합니다. 예를 들어 새로 학습된 고객 이탈 모델은 이전 모델보다 전반적인 예측 정확도가 더 높을 수 있지만 고객 지역별정확도 값은 큰 차이가 날 수 있습니다.
- 인프라와의 호환성과 예측 서비스 API와의 일관성 등 모델의 배포가 가능한지 꼭 테스트해야 합니다.
ML Ops 구성요소 - 4) Experiment, Model Management
모델 학습 과정에서 생기는 모델 파일, 이미지 등(Artifact)을 모니터링할 수 있는 대시보드가 필요합니다. 모든 실험 내용을 관리하고 그 중에 특정 성능 메트릭이 제일 좋은 것을 선택하는 기능도 필요합니다. Seving하는 파트와 연결해서 학습된 모델을 쉽게 배포할 수 있어야 합니다.
이에 대한 다양한 서비스(Weight&Bias, Neptune 등) 중 제일 많이 사용하는서비스는 오픈소스인 MLflow입니다.
ML Ops 구성요소 - 5) Feature Store
학습 및 서비스 제공을 위해 Feature의 정의, 저장, 접근을 표준화한 중앙 저장소입니다.
Feature Store은 Feature값들이 처리량이 많은 Batch Serving과 저지연 실시간 서빙을 위한 API를 제공합니다.
Feature Store는 데이터 사이언티스트들이 다음의 작업을 수행할 수 있게 돕습니다.
- 동일하거나 비슷한 Feature를 다시 만들지 않고 사용 가능한 Feature 셋을 확인하고 재사용할 수 있습니다.
- Feature 및 관련 메타데이터를 관리함으로써 다른 정의를 가진 비슷한 Feature를 사용하는 것을 방지할 수 있습니다.
- 최신화된 Feature 값들을 제공할 수 있습니다.
- Feature Store를 실험, 지속적 학습, 실시간 서빙의 데이터 원천으로 사용함으로써 학습-서빙의 불균형을 피할 수 있습니다. 학습에 사용된 Feature들이 서빙에 사용되는 Feature들과 동일한 것들임을 확실히 할 수 있습니다.
- 실험을 위해서, 데이터 사이언티스트들은 Feature Store들로부터 Feature를 파일로 추출하여 실험을 진행합니다.
- 지속적 학습을 위해서는 자동화된 ML 학습 파이프라인은 학습 업무에 사용되는 데이터의 최신화된 Feature값 배치를 가져올 수 있습니다.
- 실시간 예측을 위해서, 예측 서비스는 요청된 엔티티 예를 들어, 고객 인구통계 특성, 제품 특성 등과 관련된 값들의 배치를 가져올 수 있습니다.
ML Ops 구성요소 - 6) 메타데이터 관리
ML 파이프라인의 각 실행에 대한 정보는 기록합니다. 이는 데이터 및 아티팩트(Artifact, 파이프라인 결과물로 예로 들면 모델) 계보, 재현성, 비교를 돕기 위해 기록되며, 에러와 이상을 디버깅하는 데도 도움이 됩니다.
파이프라인을 구동할 때마다 ML 메타데이터 저장소는 이레과 같은 메타데이터를 기록합니다.
- 실행된 파이프라인 및 구성요소 버전들
- 실행 시작 및 종료 일시와 파이프라인이 각 단계를 완료하는 데 걸린 시간
- 파이프라인의 실행 주체
- 파이프라인에 전달된 파라미터 값
- 파이프라인 각 단계에 생성된 아티팩트에 대한 경로나 정보. 예를 들면 준비된 데이터의 위치, 검증 시의 이상, 계산된 통계량, 카테고리형 Feature에서 추출된 어휘(발생한 모든 범주 리스트)입니다.
이러한 중간 결과물을 추적하면 이미 완료된 단계를 다시 실행하지 않고도 파이프라인이 실패한 단계로 인해 중단된 경우 가장 최근 단계에서 파이프라인을 재개할 수 있습니다. - 이전의 학습 모델에 대한 경로나 정보, 이는 이전 모델 버전으로 롤백해야 하거나 파이프라인의 모델 검증 단계에서 새로운 테스트 데이터가 제공될 때 이전 모델 버전에 대한 평가 지표를 계산해야 할 때 쓰입니다.
- 학습 및 테스트 셋에 대한 모델 평가 단계에서 계산한 모델 평가 지표들. 이 평가 지표들은 모델 검증 단계에서 새롭게 학습된 모델의 성능과 이전에 학습한 모델에 대해 기록된 성능을 비교하는 데 도움이 됩니다.
ML Ops 구성요소 - 7) ML 파이프라인 트리거
사용자의 아래와 같은 유스케이스마다 ML 프로덕션 파이프라인을 자동화하여 새로운 데이터로 모델을 재학습시킬 수 있습니다.
- 온디맨드 : Ad-hoc방식으로 파이프라인이 임시 수동 실행됩니다.
- 스케줄에 따라 : 라벨이 지정된 새로운 데이터는 매일, 매주 또는 매월 ML 시스템에 시스템적으로 사용할 수 있습니다. 재학습 빈도는 데이터 패턴이 얼마나 자주 바뀌지는지와 모델 재학습하는 것이 얼마나 비용이 드는지에 따라 달라집니다.
- 새로운 학습 데이터가 있을 때 : 새로운 데이터는 시스템적으로 ML 시스템에서 사용할 수 없으며 대신 새로운 데이터가 수집되어 원천 데이터베이스에서 쌓일 때 ad-hoc방식으로 임시로 사용할 수 있습니다.
- 모델 성능 저하 시 : 성능 저하가 눈에 띄는 경우 모델이 재학습됩니다.
- 데이터 분포의 유의미한 변화 시 : 실시간 모델의 전체 성능을 평가하기는 어렵지만 예측을 수행하는 데 사용되는 Feature들의 데이터 분포에 유의미한 변화가 있는지 감지하게 됩니다. 이러한 변경사항들은 모델이 오래되어 새로운 데이터로 재학습되어야 함을 의미합니다.
참고자료 :
1) https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning
'Data Science&AI' 카테고리의 다른 글
[XAI] XAI란 무엇인가? (0) | 2022.08.10 |
---|---|
[AI기사] 마이크로소프트, 비학습 데이터로 응답하는언어 모델 '고델(GODEL)' 공개 (0) | 2022.08.07 |
[MLOps] Google이 말하는 MLOps 수준 (0) | 2022.08.06 |
[MLOps] MLOps란 무엇인가? (0) | 2022.08.06 |
[Object Detection] 1. Object Detection이란? (0) | 2022.02.21 |
- Total
- Today
- Yesterday
- 영어공부
- Tableau vs QuickSight
- Concept Drift
- Generative BI
- 오토인코더
- amzaon quicksight
- 모델 배포
- 추천시스템
- SQLD자격증
- data drift
- pandas-gpt
- NHITS설명
- Data Drift와 Concept Drift 차이
- SQLD 정리
- 비즈니스 관점 AI
- 생성형BI
- Model Drift
- 최신시계열
- pandas-ai
- Model Drift Detection
- 모델 드리프트 대응법
- 시계열딥러닝
- Data Drift Detection
- SQLD
- 모델 드리프트
- 데이터 드리프트
- 영화 인턴
- AutoEncoder
- amazon Q
- On-premise BI vs Cloud BI
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |