본문 바로가기

Develop/DevOps

[MLOps] Basic Structures

반응형

Machine Learning Model은 이제 누구나 어렵지않게 보편화가 되어있고, 많이 알려져왔다. 하지만, 정작 만든모델을 어떻게 서비스에 반영시키냐에 질문엔 답하지는 못할것이다. 이렇게 만든 ML 모델을 서비스에 적용하는 기술(직군)이 MLOps다.

 

다음은 ML서비스가 어떻게 이뤄져있는지 구조도이다. 보시다시피 ML 코드는 정말 극히 일부분에 속한다. 얽혀있는게 매우매우 많다는 소리.

ML Project Lifecycle

- Scoping : Define project 어떤 프로젝트를 진행할것인지에 대한 정의

- Data : 어떤 데이터를 수집할것인지, 데이터 수집 baseline 정의 이후 라벨링작업 진행

- Modeling : Data에서 나온 결과물을 활용하여 머신러닝 모델 구축. 오탐 분석진행

- Deployment : 서비스에 적용 및 모니터링 & 유지보수 시스템 구축. Data와 Modeling전부 관여가 필요함

 

어떤 Speech Recognition Project로 예를들면

Scoping

- 음성인식 서비스를 프로젝트화

- 어떤 평가기준을 놓고 효율성을 따질건지 (Accuracy, latency, throughput)

- 리소스 및 프로젝트 소요시간 예상

Data

- Define data

어떤 음성에서 "Um, today's weather"(실제로 들리는 소리) 라고했을때 이를 라벨링을 어떻게 할것인지

1. Um, today's weather 2. Um... today's weather 3. today's weather 이라고할지 천차만별이다

 

또한, 음성이 끝난이후 얼마동안의 정적시간을 갖을건지도 고려를 해줘야한다. (100ms or 300ms... etc)

Modeling

앞서 처리한 데이터들을 활용하여 모델을 학습시키고, 해당 모델의 하이퍼 파라미터, 평가기준조정, 오류에 대한 분석을 진행한다.

Deployment

서비스에 해당 모델을 배포하는 과정

모바일에서 Speech API를 통해 얻은 Speech 데이터를 모델이 학습된 서버에 보낸이후, 서버에서 결과값을 다시 모바일쪽으로 전송하는 방식

그리도 모니터링쪽도 구축을해놔야하는데. 강좌에서 예시로 실제 Speech Recognition 프로젝트를 진행하고 서비스를 했을때, 모델에 학습데이터를 어른목소리만 학습을 시켜놨다보니, 어린이들 목소리가 들어가면 성능이 엄청낮아진다는걸 파악하게됨. 그래서 서비스를 잠시 중단하고 다시 모델을 학습시켰다는 예시를 들어줌.

반응형