스터디

[책] 머신러닝 시스템 설계(Designing Machine Learning Systems)

수목원 2023. 5. 28. 01:11

한빛미디어의 '머신러닝 시스템 설계'는 머신러닝 모델의 개발과 서빙에 관한 다양한 이슈 포인트와 관리에 대한 내용을 다루는 책입니다. 이 책은 O'Reilly의 'Designing Machine Learning Systems'의 번역본으로, 모델의 개발, 평가, 배포에 대한 상세한 부분을 다룹니다.

이 책은 최근 Google의 Bard나 Microsoft의 Bing에 탑재된 다양한 GPT(Generative Pre-trained Transformer) 서비스들과 Few-shot 또는 Zero-shot Learning을 다루고 있지만, 여전히 기업에서는 모델의 개발과 활용에 대한 요구가 많고 빠르게 변화하고 있습니다. 따라서 모델의 개발은 여전히 중요한 과정입니다.

 

이 책은 독자들이 어떻게 문제를 해결할지에 대한 막막함을 해소하기 위해 실마리를 제공하며, MLOps(Machine Learning Operations)에 대한 이해를 돕습니다. 또한, 이 책은 실무적인 측면에 집중하고 있어 ML 개론을 알고자 하는 독자보다는 기본적인 ML 모델과 아키텍처, 통계에 대한 이해가 있는 독자들을 대상으로 합니다. 예측이나 이상 탐지와 같은 튜토리얼 정도를 한 번 해보신 독자들에게 큰 도움이 될 것입니다.

 

한빛미디어의 '머신러닝 시스템 설계'는 실무적인 경험을 공유하고, 머신러닝 모델의 개발과 운영에 대한 이해를 넓힐 수 있는 책입니다. 이 책은 ML 모델을 활용하는 독자들에게 중요한 지침과 실용적인 통찰력을 제공하여 머신러닝 시스템 설계에 대한 전문적인 이해를 돕습니다.

 

내용소개

본 서적은 아래와 같이 11개의 챕터로 구성되어 있고 각 챕터는 다음의 내용을 두고 있습니다.

1~3 장은 머신러닝 시스템에 대한 개요와 설계를 위한 소개 부분을 아래 내용을 다루고 있으며

간략히 훝어보고 넘어가도 되는 부분이라고 생각이 듭니다.

  • 머신러닝 UseCase 및 이해
  • 비지니스에 어떤 방식으로 머신러닝 시스템을 적용하고 설계 할 것인지
  • 머니러닝 문제를 구조화 하는 방법 및 데이터에 대한 개요
  • 데이터엔지니어링에 대한 기초(데이터 포멧, 모델, ETL, ACID, OLAP 등)

4~6장은 ML프로젝의 배포 전단계인 모델을 개발하고 평가하는 과정을 이야기 합니다.

  • 데이터 샘플링에 대한 이해와 레이블링, 데이터를 어떻게 정제하고 학습전에 가공해야 하는지
  • Feature Engineering에 대한 기법과 데이터 누수에 대한 부분
  • 좋은 피처를 설계하기 위한 노력들
  • 모델을 개발하고 트레이닝하는 방법(앙상블, 실험추적 및 버전관리, 분산훈련, 오토ML)
  • 테스트 데이터를 이용하여 훈련된 모델을 평가하는 방법

7~9장은 ML프로젝트의 배포와 이후의 단계를 다루며, 모니터링 및 업데이트 방안을 다룹니다.

  • 모델 배포를 위한 이해와 배포파이트라인으 통합 방법
  • 규모가 큰 모델을 서빙하기 위해 압축하는 방법(저차원 인수분해, 가지치기, 양자화등)
  • 배포후 모니터링을 위한 이해와 방법, 모니터링 도구들을 살펴보고 장애 대응
  • 배포된 모델을 재학습하여 좀 더 단단하게 만들고 운여에서 테스트 하는 방법
  • 사례를 통해 모델을 배포이후 생기는 다양한 케이스들을 살펴보고 이해함

10장은 협업에 대한 부분으로 여러 도구들 및 케이스들을 살펴봅니다.

  • MLOps를 통한 인프라와 도구들, 컨테이너 방식으로 개발환경을 만들어 워크플러우 관리
  • 머신러닝 플랫폼에 대한 이해

11장은 기술뿐 아니라 비지니스 결정자, 사용자와 상호작용하는 방법을 고민해봅니다.

  • 머신러닝의 인간적인 측면으로 일관성 있는 사용자 경험과 당연한 예측을 바라보는 방법
  • 팀구조와 책임있는 MLOps를 위한 사례를 살펴볼 수 있음

이미지와 적당한 예시들

 

이 책의 장점
  • 바야흐로 ML, 곧 AI붐인 세상에서 하루가 다르게 새로운 LLM들이 나오고 있지만 기본적인 부분의 ML모델을 만들고 서빙하는 부분도 중요하고 이를 위한 다양한 부분들을 살펴볼 수 있었음
  • 모델을 배포하는 즉 머신러닝 시스템의 전 후 일어날 수 있는 부분들을 다양하게 설명해줌
  • O'Reilly답게 다양한 주석 및 최신자료(논문 및 영상, 블로그등)들이 누적되어 찾아가 추가 설명을 볼 수 있었음

 

아쉬운점
아 흑 쉽지 않구만 ㅎㅎ
  • 나에겐 O'Reilly 어렵다..ㅎㅎ(엄밀히 오렐리가 어렵다기 보단 쉽지 않은 주제를 설명하고 있고 이해하고자 하다 보니...) 녹록하진 않은 진입장법, 간단히 ML시스템 하나 만들어볼까 하고 보기엔 버거울 수 있음
    아직 아니다 싶은 부분들은 빠르게 스킵하고 전반적인 내용이해를 해야하는 과정이 필요함
  • 일전이 ‘트렌스포머를 이용한 자연어치리’ 에도 그랬지만 번역본이다 보니 아무래도 한글화를 진행에 생소함

 

권장 독자

이 책은 MLOps 분야를 희망하거나 종사중인 독자들에게 추천하며
한번이라도 프로젝트를 진행해보았다는 가정하게 적극 추천하고 싶은 책이며
한번에 보는 것 보단 두고두고 필요한 순간에 보고 적용해 보면 좀 더 완성도 있는 프로덕트를 만들고 있을 것 입니다.

 

우버나 넷플릭스를 비롯해 1인 개발자까지 추천시스템 및 다양한 ML모델을 적용하는 경우
하나의 모델에서 시작해 수백 수천개의 모델을 만들고 배포하고 있다. 즉 어떤 서비스던 다양한 기능이 있고
자체모델은 필수가 되어 가고 있습니다.

 

이런 니즈를 이해하고 ML시스템에 CI/CD프로세스를 이해하고 조금씩 적용해가고 싶은 독자들에게
이 책은 매우 유익하고 가치있는 자료가 될 것입니다.

 

 

 

 

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