머신러닝 시스템 구축 실전 가이드

머신러닝 시스템 구축 실전 가이드

$30.47
Description
비즈니스 시나리오로 체득하는 머신러닝 시스템 구축 노하우
과제 설정, 워크플로 설계, 시스템 구축과 개발 등 머신러닝 제품을 실제 비즈니스로 만들기 위해 알아야 할 모든 것을 다룬다. 머신러닝을 사용해서만 해결할 수 있는 비즈니스 과제인지 여부를 판단하고, 디자인 패턴에 따라 팀과 아키텍처를 설정한 다음, 프런트엔드, 백엔드, 인프라스트럭처, 파이프라인, BI 도구 등 워크플로에 필요한 전반적인 소프트웨어를 직접 구현해본다. 상품 수요 예측, 웹 서비스 위반 감지, 검색 시스템 개선 등 흔히 볼 수 있는 비즈니스 과제를 예로 들어 실습한다. 머신러닝 시스템을 설계하고 운용하려는 엔지니어에게 실질적인 도움이 되는 책.
저자

시부이 유스케

Launchable 소속 MLOps, 인프라, 백엔드, 안드로이드 엔지니어. 고양이 2마리와 함께 살고 있으며 집에 고양이용 해먹을 4개 가지고 있다. 본업으로 개발자 생산성을 위한 MLOps와 데이터 인프라를 개발하면서, MLOps 커뮤니티 운영도 열심히 하고 있다. SIer를 거쳐, 외국계 소프트웨어 벤더 및 스타트업에서 신규 제품 개발, 대규모 시스템 운영, 팀 관리에 종사했다. 전 직장인 메루카리에서 머신러닝을 시스템에 조합하는 디자인 패턴을 집필 및 공개했다.

목차

옮긴이 머리말 viii

베타리더 후기 x

시작하며 xii

이 책에 대하여 xv

CHAPTER 1 과제, 팀, 시스템 1

1.1 소프트웨어 기술을 활용해 비즈니스 과제를 해결하려면 3

1.2 과제를 머신러닝으로 해결할 시나리오를 결정한다 7

1.3 팀 크기와 스킬에 맞는 개발과 운용을 고려한다 11

1.4 머신러닝 시스템의 아키텍처를 설계한다 14

1.5 새로운 머신러닝 시스템 디자인 패턴 16

__1.5.1 평가 대시보드 패턴 16 / 1.5.2 잘못된 추론 지원 패턴 22

1.6 팀 구성 패턴 27

__1.6.1 개척자 패턴 28 / 1.6.2 스몰 팀 패턴 31 / 1.6.3 믹스트 팀 패턴 35

1.7 정리 40

CHAPTER 2 수요 예측 시스템 만들기 41

2.1 수요 예측의 목적 43

2.2 머신러닝 팀과 소프트웨어 개발 팀 구성의 예 45

__2.2.1 사내 최초 머신러닝 프로젝트 팀인 경우 46

__2.2.2 실적이 있는 머신러닝 팀의 경우 47 / 2.2.3 매트릭스형 팀의 경우 48

2.3 머신러닝으로 수요를 예측한다 49

__2.3.1 과제 설정 49 / 2.3.2 데이터 52 / 2.3.3 개발 환경 구성 57

__2.3.4 데이터 전처리 59 / 2.3.5 학습 74 / 2.3.6 추론 활용과 평가 84

2.4 수요 예측 시스템과 업무 워크플로 99

__2.4.1 프로젝트 초기 팀, 시스템, 워크플로 (2021년 1월~2021년 6월) 99

__2.4.2 프로젝트 전개 시기의 팀, 시스템, 워크플로 (2021년 7월 이후) 103

2.5 정리 122

CHAPTER 3 동물 이미지 애플리케이션의 위반 감지 시스템 만들기 123

3.1 동물 이미지 애플리케이션 개요 125

__3.1.1 AIAnimals 126 / 3.1.2 동물 이미지 애플리케이션과 시스템 129

__3.1.3 AIAnimals를 기동한다 133

__3.1.4 동물 이미지 애플리케이션에 위반 감지가 필요해졌다 153

3.2 위반 감지의 목적 153

__3.2.1 머신러닝을 사용해 감지할 위반을 결정한다 156

3.3 위반 감지에 필요한 데이터를 정의한다 157

3.4 위반 감지 시스템과 워크플로 설계 163

3.5 위반 감지 모델을 개발한다 168

__3.5.1 데이터를 결정한다 169 / 3.5.2 모델을 만든다 170 / 3.5.3 작업 실행 189

3.6 위반 감지 시스템을 실용화한다 198

__3.6.1 비동기 추론 패턴으로 만드는 위반 감지 시스템 203

__3.6.2 위반 감지를 모니터링한다 225

3.7 정리 239

CHAPTER 4 동물 이미지 애플리케이션 검색에 머신러닝 활용하기 241

4.1 동물 이미지 애플리케이션 검색 243

__4.1.1 필터링과 배열 245

4.2 머신러닝으로 검색을 개선한다 248

4.3 유사어 사전 작성 249

__4.3.1 접근 로그와 빈번하게 검색되는 단어 251

__4.3.2 단어 벡터를 사용한 유사어 사전 작성 255

__4.3.3 유사어 사전을 검색에 활용한다 259

4.4 순위 학습을 활용한 검색 결과 정렬 266

__4.4.1 데이터를 만든다 269 / 4.4.2 순위 학습 모델을 학습한다 285

__4.4.3 순위 학습을 사용해 검색 결과를 정렬한다 294

__4.4.4 순위 학습의 워크플로 298

__4.5 A/B 테스트를 구축한다 306

__4.5.1 2가지 모델의 학습 313

4.6 이미지를 사용한 검색 317

__4.6.1 MobileNet v3를 사용한 특징량 추출과 ScaNN을 사용한 인덱스 작성 321

__4.6.2 MobileNet v3와 ScaNN 추론기 326

__4.6.3 유사 이미지 검색의 자동 업데이트 330

4.7 사용자들이 사용하는 머신러닝을 위하여 334

마치며 336

찾아보기 340

출판사 서평

비즈니스사례와디자인패턴으로마스터하는머신러닝실용화의워크플로

머신러닝모델이나라이브러리각론을다룬책은많지만,머신러닝을실제로프로덕션시스템에적용하는일은또다른문제다.저자의비유를따르면그런책들은“생선손질방법이나전자레인지사용방법에관해서는설명하지만,요리를만드는방법은설명하지않는요리책”이다.하지만“요리를만들려는사람에게필요한책은실제로요리를만드는책”이다.저자는이러한문제의식아래머신러닝‘실용화’를다루는이책을썼다.머신러닝실용화는당면비즈니스과제가머신러닝을사용해서만해결할수있는과제인지여부를판단하는것부터시작된다.머신러닝도입결정후에는,팀크기와역량을고려해저자고유의디자인패턴에따라머신러닝아키텍처를설계하고팀을구성하는노하우를알려준다.여기까지가1장의내용으로,현실적인비즈니스상황을가정하고패턴별유스케이스를알려준다는점이돋보인다.

2장에서는식료품판매점의수요예측시스템을만들어보며실습을시작한다.개발팀의구성예시를들고,과제설정,시스템개발,워크플로설계까지전과정을자세히설명한다.모델관련구현에는Hydra,MLflow,사이킷런,LightGBM등을사용하고,비즈니스의사결정을위한BI도구로는Streamlit과Plotly를활용한다.구축한시스템과워크플로는MLOps관점에서변화하는상황에맞춰개선할수있어야하므로,쿠버네티스에배포하고아르고워크플로를사용해자동화하는방법까지살펴본다.3장에서는사용자가동물이미지를공유하는웹서비스에위반감지시스템을추가하는과정을다룬다.실습편의를위해저자가작성해둔안드로이드용앱이제공되며,특히FastAPI,PostgreSQL,Redis,RabbitMQ,일래스틱서치등으로구성된백엔드의구조를자세히설명한다.이후2장과마찬가지로위반이미지감지라는과제설정부터시작해시스템과워크플로를설계하고구현해나간다.MobileNetv3및텐서플로를사용해위반을판단하고텐서플로서빙과MLflowTrackingServer으로DB에저장한다.이시스템을프로덕션에적용하기위해추론을비동기로실행되게하고,모니터링을위해Streamlit으로웹페이지를만드는방법도간단히다룬다.

4장에서는3장의서비스의검색기능을개선하기위해검색시스템에머신러닝을도입하는과정을실습한다.순위학습과형태소분석(일본어)을설명하고구현하며,프로덕션적용을위해CronWorkflow로특징량생성작업을자동화한다.끝으로텍스트뿐아니라이미지로도검색할수있도록ScaNN인덱스작성을구현해유사이미지검색기능을앱에추가하고,인덱스업데이트역시자동화한다.각각의컴포넌트를조합해전체적인파이프라인이제대로돌아가게만드는법에초점을맞춘책으로서,이론이나개별적인디테일에매몰되지않고큰그림을보여준다는점이책의가장큰미덕이다.팀구성,백엔드,인프라스트럭처,BI도구등실제서비스가돌아가는데중요함에도간과되어온요소들까지살펴본다는점에서더욱의미있는실무적인머신러닝지침서라고할수있다.

주요내용

-머신러닝비즈니스과제를선정하는방법,과제를해결하기위한워크플로와시스템구축방법,머신러닝을활용하는팀구성노하우
-가공의AI상점에서식료품수요예측을위한머신러닝의활용및개발워크플로
-가공의동물이미지공유애플리케이션에서사용자의위반행동을감지하고제지하기위한워크플로,머신러닝시스템/평가시스템의구현방법
-검색시스템에머신러닝을활용해검색경험을개선/발전시키는방법