본문 바로가기
책리뷰

MLOps를 위한 기본서 - '머신러닝 시스템 설계' 리뷰

by 이제이 2023. 4. 23.
반응형

최근 들어 MLOps 시장은 급성장하고 있습니다. 마켓앤마켓에 의하면 2027년까지 MLOps 시장이 연간 41%의 성장률을 달성할 것이라고 예측하였습니다. 

 

 

특히 로코드, 노코드 시장이 늘어나고 대규모 AI 모델이 나오면서 모델 개발에서 머신러닝 및 딥러닝 모델을 서비스에 효과적으로 적용시키는 것에 많은 기업의 관심이 쏠리면서 MLOps에 대한 관심은 점차 늘어나고 있는 것 같습니다. 

 

그런데 보통 머신러닝을 공부한다고하면, 모델의 알고리즘을 배우거나 모델의 성능을 높이는데 초점을 맞추기 십상입니다. 캐글, 데이콘과 같은 대회의 목표 역시 모델의 성능을 높이는 것이죠. '머신러닝 시스템 설계'에서는 이 점을 언급하면서 MLOps를 설명합니다.  

 

목차
MLOps란? 
'머신러닝 시스템 설계' 소개
'머신러닝 시스템 설계'의 구성
'머신러닝 시스템 설계'의 장점 및 추천 

 

MLOps란?

MLOps(Machine Learning Operations)는 개발과 운영을 통합하는 머신러닝 엔지니어링 방식을 의미하는 것으로, 머신러닝 및 딥러닝 모델의 개발, 배포, 모니터링, 유지 관리 등을 포함한 젠체적인 모델 운영 라이프 사이클입니다. 

 

'머신러닝 시스템 설계' 에서는 단순히 ML 엔지니어(개발자, 데이터 과학자 등을 모두 포함한 개념) 입장에서의 모델 운영 라이프 사이클뿐 아니라 비즈니스 관점을 포함한 MLOps를 설명하고 있습니다. 아래의 그림과 같이 ML 사용자, 비즈니스 요구사항, 그리고 ML 시스템 개발자의 입장을 모두 포함한 것이 ML 시스템이라고 할 수 있습니다.

 

 

'머신러닝 시스템 설계' 소개

 

'머신러닝 시스템 설계'에서도 언급하듯 모델의 성능만을 높이는 연구용 머신러닝과 프로덕션용 머신러닝은 큰 차이가 있습니다. 연구용 머신러닝은 모델의 성능을 높이기 위해 모델을 너무 복잡하게 만들거나 모델의 공정성이나 해석 가능성을 무시하기도 합니다.

 

그러나 프로덕션용 머신러닝은 많은 것을 고려해야 합니다. 다양한 이해관계자들의 상이한 요구 사항을 최대한 고려해야 하고, 모델의 배포와 유지 관리를 생각해야 하며, 공정성과 모델의 해석 가능성도 잊어서는 안됩니다. 

 

'머신러닝 시스템 설계'는 실제 기업에서 일하거나 취업하기를 원하는 머신러닝 엔지니어를 위한 책이며, 머신러닝을 서비스에 도입하면서 경험할 수 있는 다양한 시나리오를 통해 MLOps의 처음부터 끝까지 상세히 설명하고 있습니다. 

 

 

https://www.hanbit.co.kr/store/books/look.php?p_code=B1811121220 

 

머신러닝 시스템 설계

프로덕션 환경에서 머신러닝을 다룰 때 무수히 생겨나는 물음표를 해결해줄 MLOps 지침서

www.hanbit.co.kr

 

출처: https://www.hanbit.co.kr/store/books/look.php?p_code=B1811121220

 

 

'머신러닝 시스템 설계'는 머신러닝 개론서가 아니기 때문에 이 책의 예상 독자는 머신러닝 모델, 신경망 아키텍처, 하이퍼파라미터 조정 등을 포함한 머신러닝 기술, 성능 평가, 통계 개념 등을 이미 알고 있는 사람입니다. 물론 책에서 간단히 설명하는 개념도 있지만 머신러닝을 처음 접하는 사람들에게는 이해하기 어려운 책일 수도 있습니다. 

 

'머신러닝 시스템 설계'의 구성

이 책의 구성은 크게 5 부분으로 이루어져 있습니다. 

 

머신러닝 시스템 기초

1장 머신러닝 시스템 개요

2장 머신러닝 시스템 설계 소개

 

기술적인 솔루션으로 바로 넘어가고 싶다면 1, 2장을 건너뛰어야 한다고 저자는 이야기하지만 나와 같은 초보자들에게는 MLOps의 기본 개념과 흐름을 잡기 위해 1, 2장은 반드시 읽어야 하는 부분입니다. 

머신러닝 프로젝트 배포 전 단계

4장 훈련 데이터

5장 피처 엔지니어링

6장 모델 개발과 오프라인 평가

 

4장에서는 훈련 데이터를 생성하는 여러 단계(샘플링, 레이블링, 데이터 불균형 문제 해결, 데이터 증강)을 다루고, 5장에서는 좋은 피처를 설계하기 위한 다양한 사례를 살펴 봅니다. 6장은 적합한 머신러닝 모델을 선택하는 방법, 다양한 모델로 실험하는 방법, 분산 훈련, 모델을 평가하는 방법을 배웁니다.

 

머신러닝 프로젝트의 배포와 배포 후 단계

7장 모델 배포와 예측 서비스

8장 데이터 분포 시프트와 모니터링

9장 연속 학습과 프로덕션 테스트

 

7장은 모델을 배포하는 다양한 방법을 다루고, 8장은 머신러닝과 관련된 장애의 주요 원인(흔련 데이터와 상이한 프로덕션 환경 데이터, 에지 케이스, 퇴행성 피드백 루프), 시프트의 3가지 유형(공변량 시프트, 레이블 시프트, 개념 드리프트), 모니터링 지표 등을 알아봅니다. 9장에서는 수동 훈련, 자동 재훈련, 자동 상태 유지 훈련, 무상태 연속 학습, 즉 기업이 연속 학습을 위해 인프라를 현대화하는 과정 4단계와 모델 업데이트 빈도, 스트리밍 인프라 등을 다룹니다. 

 

협업에 필요한 인프라 

3장 데이터 엔지니어링 기초

10장 MLOps를 위한 인프라와 도구

 

3장은 보통 데이터 엔지니어가 하는 작업이지만 MLOps 측면에서는 머신러닝 엔지니어도 알고 있어야 하는 부분을 다룹니다. 10장은 머신러닝 시스템에 필요한 다양한 인프라, 개발 환경, 자원 관리, 머신러닝 플랫폼 등을 다룹니다. 

 

머신러닝 시스템의 인간적 측면

11장 머신러닝의 인간적 측면

 

사용자 경험과 팀원들과의 협업  과정, 그리고 인공지능 윤리까지 다루고 있습니다. 

 

'머신러닝 시스템 설계'의 장점 및 추천 

이 책은 MLOps의 단계를 실제 기업에서 일하는 머신러닝 엔지니어가 마주칠 수 있는 다양한 상황과 업무를 다양한 시나리오와 예를 통해 다루고 있습니다. 그래서 책을 읽는 독자도 기업에서 일어날 수 있는 상황을 시뮬레이션하고 해결 방법을 찾을 수 있도록 합니다. 

 

그래서인지 이전에 들었던 다른 MLOps 강의와는 달리 MLOps에 대한 기본 개념이 부족한 저도 MLOps를 쉽게 이해할 수 있었습니다. 인공지능을 배우고 처음으로 MLOps 강의를 들었을 때는 데이터 엔지니어링이나 모델 배포 등에 대한 기본 지식이 없다보니 무슨 이야기를 하는지 알 수 없었지만 '머신러닝 시스템 설계'는 기본 개념부터 하나씩 상세히 설명해 주기 때문에 머신러닝과 딥러닝 모델 알고리즘만 배운 사람들도 MLOps에 쉽게 접근할 수 있을 것 같습니다.

 

다양한 예시, 실험, 그림을 통해 친절히 알려주기 때문에 누구나 쉽게 이해할 수 있습니다. 

다양한 시각화 자료가 사용되어 개념과 설명을 이해하기 쉽습니다.

 

뿐만 아니라 MLOps의 기술적인 부분 외에도 비즈니스 관점에서의 머신러닝 모델 적용과 실제 프로덕트를 배포하면서 겪을 수 있는 일들도 다루기 때문에 MLOps 개발자, 머신러닝 엔지니어 외에도 머신러닝/딥러닝을 이용한 서비스를 만들고 싶어하는 창업자, PM, 서비스 기획자 등 다양한 분야의 사람들에게도 도움이 될 것 같습니다. 

 

다만 이 책은 MLOps를 실제로 어떻게 수행하는지를 알려주는 튜토리얼이 아니기 때문에 MLOps의 세부 기술의 배우고 싶은 분에게는 맞지 않습니다. 하지만 MLOps의 세부 기술을 배우고 싶은 사람도 이 책을 먼저 읽는다면 MLOps의 큰 그림을 미리 파악할 수 있기 때문에 큰 도움이 될 것입니다.  

 

 

    "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

출처

https://www.ciokorea.com/news/271641

https://blog-ko.superb-ai.com/what-is-mlops/

 

반응형

댓글