[책] 머신러닝 시스템 설계(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프로세스를 이해하고 조금씩 적용해가고 싶은 독자들에게 이 책은 매우 유익하고 가치있는 자료가 될 것입니다.