머신러닝 시스템 구축 실전 가이드 : 비즈니스 사례로 배우는 머신러닝 제품 설계/구축/운용

머신러닝 시스템 구축 실전 가이드 : 비즈니스 사례로 배우는 머신러닝 제품 설계/구축/운용

$30.47
저자

시부이유스케

저자:시부이유스케

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



역자:김모세

소프트웨어엔지니어,소프트웨어품질엔지니어,애자일코치등다양한부문에서소프트웨어개발에참여했다.재미있는일,나와조직이성장하고성과를내도록돕는일에보람을느껴2019년부터번역을시작했다.지은책으로『코드품질시각화의정석』(지앤선,2015)이있고,옮긴책으로는『추천시스템입문』(한빛미디어,2023),『그림과작동원리로쉽게이해하는웹의기초/서버의기초』(위키북스,2023),『시스템을잘만들게하는기술』(위키북스,2023),『아트오브셸원라이너160제』(제이펍,2023),『애자일소프트웨어아키텍트의길』(에이콘출판,2022),『애자일개발의기술2/e』(에이콘출판,2023)등이있다.

목차


옮긴이머리말viii
베타리더후기x
시작하며xii
이책에대하여xv

CHAPTER1과제,팀,시스템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

CHAPTER2수요예측시스템만들기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

CHAPTER3동물이미지애플리케이션의위반감지시스템만들기123
3.1동물이미지애플리케이션개요125
__3.1.1AIAnimals126/3.1.2동물이미지애플리케이션과시스템129
__3.1.3AIAnimals를기동한다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

CHAPTER4동물이미지애플리케이션검색에머신러닝활용하기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.5A/B테스트를구축한다306
__4.5.12가지모델의학습313
4.6이미지를사용한검색317
__4.6.1MobileNetv3를사용한특징량추출과ScaNN을사용한인덱스작성321
__4.6.2MobileNetv3와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상점에서식료품수요예측을위한머신러닝의활용및개발워크플로
-가공의동물이미지공유애플리케이션에서사용자의위반행동을감지하고제지하기위한워크플로,머신러닝시스템/평가시스템의구현방법
-검색시스템에머신러닝을활용해검색경험을개선/발전시키는방법