1. 서론
인공지능 구인 관련 글을 볼 때, MLOps 포지션이 있는 것을 자주 보아왔다. MLOps는 2019년 부터 부각되어온 용어로, 기업의 성공적인 데이터 사이언스 프로젝트에서 필수 요소이며, 조직과 비즈니스 리더들이 장기적 가치를 창출하고 데이터 사이언스, 머신러닝 및 AI를 주도할 때 리스크를 제거하는데 도움이 되는 프로세스이다.
책에서 제시하는 머신러닝 모델 생애주기로는 첫 번째, 비즈니스 목표 정의. 두 번째, 데이터에 대한 접근, 이해, 정리. 세 번째 머신러닝 모델 생성. 네 번째 머신러닝 모델 배포 그리고 반복으로 구성되어있다.
어떻게 보면 쉬워 보이는 프로세스 관리에 왜 애를 먹을까? 어느 정도 규모가 있는 머신러닝 모델 생애주기를 관리하기 어렵게 만드는 세 가지 요소로 다음과 같다.
1. 많은 의존성
비즈니스 요구사항과 데이터는 꾸준히 변화하고 있으며, 모델의 결과를 비즈니스의 목적과 부합하여 일정이상의 성능과 목표를 꾸준히 달성하도록 해야함.
2. 동일한 언어를 사용하지 않는 이해관계자들
머신러닝 모델 생애주기에는 PM, 데이터 사이언티스트, IT 개발 및 운영 팀 등 전반적인 팀들이 관련되어 있지만, 대부분의 경우 상호 소통의 어려움과 기반 기술 공유가 이루어지지 않음.
3. 소프트웨어 개발을 모르는 데이터 과학자
책에서 제시하는 데이터 과학자는 모델 구축 혹은 평가에 특화된 전문적 지식과 경력을 가지고 있으며, 애플리케이션 개발에 능숙하지 않음. 과연 위와 같은 문제점을 해소하기 위해서는 책에서 어떤 방법들을 제시했을까? 간단하게 추려보면 다음과 같다.
1. MLOps의 이해관계자들
2. MLOps의 핵심기능
3. ML 모델 개발
4. 상용화 준비
5. 상용 배포
6. 모니터링과 피드백 루프
7. 실제 사례
본 서에서는 구현에 관한 내용은 크게 없으나, MLOps 관련 전체적인 흐름을 파악하기에 탁월한 책이라고 생각이 든다. MLOps의 전체적인 맥락 파악과 동시에, 그 맥락에서 관심있는 파트를 선정하여 좀 더 디테일하게 공부해 낙나다면 충분히 실무에서 활용이 가능할 것으로 판단된다. 본 서를 읽으면서 추천해주고 싶은 대상은 다음과 같다.
- MLOps 관련 개발자
=> 현재 맡고 있는 포지션을 제하고, 전체적인 MLOps의 배경과 맥락을 파악하여 업무 지식 확장 및 소통에 도움이 될 것으로 보임.
- ML 관련 서비스 및 SI PM
=> ML 모델 개발과 배포 그리고 유지관리까지의 프로세스를 파악하기에 맞춤인 책이라고 판단함. 요구사항 분석 및 관리 시, ML 업무 프로세스 상 현재 진행 중인 과업의 위치를 파악 할 수 있게 도움을 줄 것으로 보임.
- ML 연구자 및 데이터 사이언티스트
=> 데이터 분석과 ML모델 개발 및 튜닝에 앞서, 어떠한 과정을 통해 현재 업무를 진행하게 되었는지에 대한 히스토리 파악과 더불어 배포와 유지관리를 고려하며 연구를 수행 할 수 있는 능력을 얻을 수 있을 것으로 보임.
- ML 분야 기획자 및 창업을 고민하는 자
=> ML 실사례와 함께 본 서에서 같이 제공되는 기법을 활용하여 다양한 바리에이션이 가능할 것으로 판단됨. 개인적으로 현재 뿐만 아니라 먼 미래에도 MLOps 산업의 먹거리가 풍부할 것으로 판단됨.
2. MLOps 도입 가이드
본 서 MLOps 도입 가이드는 'MLOps 개념과 필요성', 'MLOps 적용 방법', 'MLOps 실제 사례' 총 3개의 파트로 구성되어있다. MLOps 적용 방법 파트를 집중하여 읽었으며, 그 중 본인에게 제일 중요하다고 생각하는 '모델 개발' 부분을 정리함으로써 글을 마무리 짓겠다.
- 머신러닝 모델 구축의 필수 구성 요소
기초적인 내용으로 머신러닝 모델 구축과 검증에 관한 요소들을 정리하였다. 구체적인 설명이 군더더기 없이 깔끔해서 심플하지만 강력한 책이구나 라는 생각이 들었다. 개인적인 경험과 덧 붙여 정리한 것은 다음과 같다.
- 데이터 탐색
아무리 적합한 알고리즘을 사용하더라도 모델의 Output(성능)은 Input인 Data에 달려 있다. 따라서, 모델을 학습시키기 위해선 사전적으로 데이터 형태를 확인해야 한다. 아울러, 데이터의 불완전성, 부정확성, 불일치 등으로 인하여 데이터의 일부만을 사용 할 수도 있다. 다음은 데이터 탐색 과정의 예시이다.
- 수집된 데이터의 현황(누락, Outlier 등) 파악
- 데이터 분포(정규 분포, 의도를 담아 학습시키기 위한 분포 등) 파악
- 데이터 전처리(정리, 채움, 변경, 필터링, 자르기, 표본 추출 등)
- 서로 다른 열 간 상관관계 확인 및 분포 곡선 보간
- 타 연구결과의 데이터 및 모델 비교
개인적으로 ML 모델을 생성하기에 사전적으로 확실히 해야하는 부분이라고 생각한다. 데이터 탐색 과정에서 결정된 의사결정은 되도록이면 바뀌지 않고, 확실히 정의해야한다.
- 특성 엔지니어링 및 특성 선택
특성(Feautre)은 데이터가 모델에 표현되는 방식으로, 모델 자체로는 추론할 수 없는 것들에 대한 정보를 전달한다. 특성 엔지니어링 방법의 예시는 다음과 같다.
대게는 ML 프로젝트를 수행할 때 Feautre가 정의되어있는 경우가 잦다. 하지만, 그 값을 그대로 사용하기 애매하거나 보조지표가 필요한 경우 특성 엔지니어링을 수행하여 데이터 셋을 보강하게 된다.
3. 결론
본 서 'MLOps 도입 가이드'를 읽으면서 ML 프로젝트를 수행하기 위한 전반적인 프로세스에 대해 공부하는 시간을 가졌다. 측량, 의료, 공개 데이터 등 다양한 데이터를 접하면서 언제나 느낀 것은 훈련 대상 데이터의 정의이다. 다행히도 다양한 분야의 전문가들과 소통을 통해 Feature를 정의하고 모델을 구현하였으나, 언제나 이 부분에는 갈증이 있다. 본 서를 통해 MLOps의 전반적인 지식과 함께 실제 사례를 통해 어떤 식으로 접근하는 것이 효율적인지에 대해 생각하는 시간을 가졌다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다