과제 설정, 워크플로 설계, 시스템 구축과 개발 등 머신러닝 제품을 실제 비즈니스로 만들기 위해 알아야 할 모든 것을 다룬다. 머신러닝을 사용해서만 해결할 수 있는 비즈니스 과제인지 여부를 판단하고, 디자인 패턴에 따라 팀과 아키텍처를 설정한 다음, 프런트엔드, 백엔드, 인프라스트럭처, 파이프라인, BI 도구 등 워크플로에 필요한 전반적인 소프트웨어를 직접 구현해본다. 상품 수요 예측, 웹 서비스 위반 감지, 검색 시스템 개선 등 흔히 볼 수 있는 비즈니스 과제를 예로 들어 실습한다. 머신러닝 시스템을 설계하고 운용하려는 엔지니어에게 실질적인 도움이 되는 책.
Contents
옮긴이 머리말 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
Author
시부이 유스케,김모세
Launchable 소속 MLOps, 인프라, 백엔드, 안드로이드 엔지니어. 고양이 2마리와 함께 살고 있으며 집에 고양이용 해먹을 4개 가지고 있다. 본업으로 개발자 생산성을 위한 MLOps와 데이터 인프라를 개발하면서, MLOps 커뮤니티 운영도 열심히 하고 있다. SIer를 거쳐, 외국계 소프트웨어 벤더 및 스타트업에서 신규 제품 개발, 대규모 시스템 운영, 팀 관리에 종사했다. 전 직장인 메루카리에서 머신러닝을 시스템에 조합하는 디자인 패턴을 집필 및 공개했다.
Launchable 소속 MLOps, 인프라, 백엔드, 안드로이드 엔지니어. 고양이 2마리와 함께 살고 있으며 집에 고양이용 해먹을 4개 가지고 있다. 본업으로 개발자 생산성을 위한 MLOps와 데이터 인프라를 개발하면서, MLOps 커뮤니티 운영도 열심히 하고 있다. SIer를 거쳐, 외국계 소프트웨어 벤더 및 스타트업에서 신규 제품 개발, 대규모 시스템 운영, 팀 관리에 종사했다. 전 직장인 메루카리에서 머신러닝을 시스템에 조합하는 디자인 패턴을 집필 및 공개했다.