이 책은 MLOps와 DevOps의 개념을 종합적으로 이해하고, 깊이 있는 학습을 돕기 위해 다양한 실습을 포함하고 있습니다. 머신러닝 모델의 안정적인 운영을 위한 배포 방법과 AutoML, 컨테이너, 엣지 컴퓨팅, 모델 이식성 등 MLOps의 중요한 기술 영역을 다룹니다. 뿐만 아니라 AWS, 애저 환경, GCP 등 다양한 클라우드 플랫폼에서의 MLOps 경험을 쌓을 수 있도록 실습을 제공합니다. 저자의 실제 경험을 바탕으로 한 MLOps 사례 및 MLOps 실무자들의 인터뷰 내용도 소개하고 있습니다. 부록에서는 MLOps 구현 시 고려해야 할 사항과 MLOps 커리어 준비를 위한 인터뷰 질문 및 기술 포트폴리오에 필요한 작성 Tip도 제공하여 실무에 쉽게 적용할 수 있도록 도와줍니다.
저자소개
저자
노아 기프트
Pragmatic A.I. Labs의 창업가다. 현재 몇몇 주요 대학의 학생 및 교수진을 대상으로 머신러닝 및 클라우드 아키텍처 컨설팅을 제공하고 있다. 대학원 기계 학습, MLOps, AI, 데이터 과학 과정을 가르치고 설계한다.
저자
알프레도 데자
열정적인 소프트웨어 엔지니어이자 연설가 겸 작가다. 20년 정도 DevOps와 소프트웨어 엔지니어링 경험을 지닌 전직 올림픽 선수이기도 하다. 현재 머신러닝 엔지니어링을 가르치고 있으며 소프트웨어 개발, 개인 프로젝트, 운동에 대해 전 세계를 돌아다니며 강연하고 있다. DevOps와 파이썬에 관한 책을 여러 권 저술했으며 인프라, 테스트, 강력한 개발 사례에 대한 자신의 견해를 계속 공유하고 있다.
역자
이장후
대학교에서 컴퓨터공학을 공부하다가 갑자기 휴학 후 창업에 도전해 칵테일 바를 열어보기도 하고, 자율주행 킥보드를 만드는 일에 1년 6개월간 뛰어들었다가 최근에는 AI MSP를 다루는 회사에서 데이터 사이언티스트로 일하기도 했다. 이 소개를 쓰는 순간에는 학생 신분으로 프랑스에서 경험을 쌓고 있다.
살아가며 배우고 느낀 것들을 광적으로 쓰고 기록하며 롤모델의 이름을 딴 개인 블로그 다빈치 작업실(https://davincijang.space)에 포스팅하고 있다.
역자
이일섭
카드 회사 AI 팀에서 근무하고 있으며 산업공학과 박사과정을 통해 생성형 AI를 연구하고 있습니다. 커뮤니티 ‘데이터야놀자’에서 활동하며, AI 교육봉사 단체 ‘AI야, 놀자’에서도 활약하고 있습니다. 『데이터 품질의 비밀』(디코딩, 2023)과 『MLOps 실전 가이드』, 『GPT-4를 활용한 인공지능 앱 개발』(이상 한빛미디어, 2023)을 번역했습니다.
GS 리테일에서 머신러닝 엔지니어 및 데이터 플랫폼 엔지니어로 근무하고 있다. 2022년 하반기에는 GS 리테일 우수사원상을 수상하였다. 클라우드 기반 MLOps 파이프라인 설계 및 구현에 전문성을 갖추고 있으며, 효율적이고 현대적인 아키텍처를 구축하는 데 관심이 있다.
최근에는 데이터 분석 플랫폼의 고도화와 기술 지원을 담당하며 아키텍처 고도화, IaC, 데이터 저장 정책 및 메커니즘, 비용 최적화, 모니터링, 분석 환경 정책 등 다양한 영역의 업무를 수행하고 있다.
2018년 IITP의 지원을 받아 퍼듀 대학교에서 빅데이터와 관련된 연구와 프로젝트를 수행하면서 데이터에 대한 관심을 키웠다.
역자
맹윤호[감수]
이화여대 신산업융합대학 겸임교수로 데이터 분석 및 AI 강의를 하고 있으며, 카논그룹의 CTO로 재직 중이다.
이전에는 IBM의 Data&AI 팀에서 엔지니어로 근무했으며, 이후 카카오벤처스 패밀리사인 1z Labs를 공동창업한 후, 지분을 매각한 바 있다. 연세대학교에서 데이터 분석 전공으로 석사 과정을 졸업하고 박사 과정을 수료했다.
SK C&C, KISTI, NRF, DBpia 등에서 프로젝트를 진행하였으며 Apache Zeppelin, Qiskit, KoGPT-2 등 오픈소스 프로젝트에 기여했다.
삼성, 현대, LG, 딜로이트 등 기업을 대상으로 강연하고 연세대학교, 이화여대, 중앙대학교, 동덕여대, 상명대학교, 순천대학교 등에서도 강연했다. 참여 도서로는 『머신러닝 디자인 패턴』(한빛미디어, 2021), 『Do it 강화 학습 입문』(이지스퍼블리싱, 2021), 『코딩 진로』(호모루덴스, 2021), 『초소형 머신러닝 TINYML』(한빛미디어, 2020), 『쉽게 배우는 AWS AI 서비스』(한빛미디어, 2022), 『하이퍼레저 블록체인 개발』(한빛미디어, 2019), 『블록체인의 정석』(지앤선, 2019) 등이 있다. 깃허브에서 @YUNHO0130으로 활동하고 기술 블로그와 유튜브 채널을 운영하고 있다.
MLOps는 AI 시대에 맞춰 진화한 DevOps로 알려져 있습니다. 간단히 말해 MLOps는 DevOps 방법론을 활용하여 머신러닝을 자동화하는 프로세스라고 할 수 있습니다. DevOps의 핵심 철학 중 하나인 자동화에 대한 중요성을 강조하는 측면에서 MLOps는 DevOps의 계보를 잇는 것입니다.
『MLOps 실전 가이드』는 MLOps와 DevOps의 이론뿐만 아니라 머신러닝 모델을 실제 운영 환경에서 배포하고 관리하는 방법과 자동화에 필수적 요소인 지속적인 통합(CI)와 지속적인 배포(CD), 더 나아가 지속적인 개선이라는 의미를 가진 카이젠(Kazien) 개념까지 포괄적으로 다룹니다. 더불어 AWS, Azure, Google Cloud Platform과 같은 플랫폼에서 MLOps를 구현하는 방법과 역자가 경험했던 MLOps 실제 사례도 포함하고 있습니다.
이 책은 MLOps에 대한 개념을 통찰력 있게 설명하고자 합니다. ChatGPT를 활용한 번역이 아닌 역자진이 원문을 직접 번역하고, 소스 코드를 리팩토링하여 사례별 Hands-on 실습 코드를 제공합니다. 또한 본문에 등장하는 ‘역자 노트’는 역자가 최신 내용을 참고하여 직접 설명을 추가해 독자들이 더 잘 이해할 수 있도록 하였습니다. 각 장이 끝날 때마다 등장하는 ‘연습해보기’와 ‘생각해보기’를 통해 학습한 내용을 복습하고 비판적인 사고를 가지며 MLOps의 다양한 인사이트를 얻을 수 있습니다.
- 한번 모델을 만들게 되면 시간이 지나면 정확도가 떨어지게 된다. 왜냐하면 입력 데이터들이 변화하기 때문이다. 따라서 한번 만들면 끝나는 프로그램과는 다르게, 머신러닝을 통해서 만든 모델은 재학습이 필요로 하는데 이러한 선순환의 구조를 만드는게 MLOps의 핵심이다. 이러한 MLOps A-Z 까지 빠르게 개념을 잡을 수 있도록 해준다.
[내가 찾고자 했던 질문들]
MLOps 구현하기 위한 Tips
작은 단계부터 시작한다.
클라우드를 활용한다.
함께 협업하는 팀원이 클라우드 플랫폼 및 머신러닝에 대한 전문성을 갖도록 자료를 공유하며, 같이 공부 한다.
프로젝트 시작부터 자동화를 염두하고 구축한다. 초기 단계부터 자동화를 고려하여야 추후에도 지속적인 배포와 통합이 가능하다.
파이프라인을 지속적으로 개선하는 활동을 한다.
간단한 도구로 구현할 수 있는 비지니스 문제는 딥러닝을 이용하지 않아도 된다.
2. MLOps 생산성 과 보안 개선할 수 있는 Tips
최소 권한의 원칙(PLP : Principle of Least Privilege) 적용한다.
한빛미디어의 'MLOps 실전가이드'는 최신 기술과 거대 언어 모델인 GPT-4와 Google의 Gemini 같은 발전과 함께 MLOps 분야에 대한 내용을 다루고 있습니다. 이 책은 O'Reilly의 ‘Practical MLOps’의 번역본이지만, 번역이 어색하지 않고 자연스러워서 읽기에 불편함이 없으며, 실습 위주의 내용과 다양한 클라우드 플랫폼(GCP, AWS, Azure)에서의 예제를 포함하여 매우 유익한 내용을 제공하고 있습니다.
O'Reilly 출판사의 관련 책들은 때때로 번역이 어색하고 이해하기 어려운 부분이 있다는 편견이 있습니다. 그러나 'MLOps 실전가이드'는 상대적으로 상세한 내용으로 구성되어 있어서 어려운 점이 있더라도 열심히 읽어보면 내용을 충분히 이해할 수 있습니다. 책은 어려운 점이 있더라도 필요한 부분만 빠르게 찾아서 읽기에도 좋은 구성을 가지고 있습니다.
각 장마다 연습해보기와 생각해보기 란이 있는데, 이는 답이 주어지지 않지만 각 챕터의 내용을 심화하는 데 도움을 줍니다. 이러한 실습과 고민의 기회를 통해 독자들은 학습을 더욱 심도 있게 진행할 수 있습니다.
'MLOps 실전가이드'는 최신 기술과 다양한 클라우드 플랫폼에서의 예제를 바탕으로 MLOps에 대한 이해를 쉽게 할 수 있도록 하며, 데이터 사이언티스트들에게 매우 유익한 책으로 평가됩니다.
직업이 직업인지라 MLOps는 물론 여러 가지 인프라, 플랫폼에 대한 책은 꽤 읽은 편이다. 이 책만큼 수다스럽다고 느껴지는 책은 언뜻 기억나지가 않는다. 아래에 옮겨둔 목차를 보아도 알 수 있듯이 MLOps 엔지니어가 능숙하길 기대 받는 영역을 모두 다루었다고 해도 과언이 아니다. 코세라의 MLOps 강좌보다 많은 얘기를 한다. 현장은 코세라에서 다루고 싶어도 그러지 못할 정도로 난장판이기 때문이다.
난장판을 헤쳐왔을 저자들은 하고 싶은 말이 참 많아 보인다. 때문에 MLOps를 해볼까 하는 3년차 이내 엔지니어는 이 책을 보고 장벽을 많이 느낄 듯하다. 출간 전에 이 책을 읽은 베타리더들도 그런 걱정을 해서였는지 광범위하고 어렵게 느껴질 수 있겠지만 다양한 인사이트를 얻을 수 있다거나 다이빙 포인트를 잘 안내한다며 추천하고 있다. 이런 저런 AI 프로젝트를 벌이고 운영했던 경험을 비춰 보았을 때에 이 책이 이야기하는 주제는 2023년 기준 MLOps 기술의 합집합에 가깝다고 본다. 내가 무엇을 모르는지 자각하는 도구로 활용하길 바란다. 더불어 너무 걱정하지 않아도 좋을 게, 이 책의 저자는 두 명이고 모두 말이 많은 직업을 가졌다. 저자들의 해박함에 기가 죽을 필요는 없다. 저걸 한가하게 혼자서 다 하게 하는 조직은 없다.
소소하게 이 책을 소화할 팁을 더해보고자 한다. 쿠버네티스를 마스터하고 이 책을 볼 필요는 없지만 ssh가 뭔지는 알고 도커가 뭔지는 알아야 시작이 가능하다. ONNX가 뭔지 모르면 곤란하다. 어디 블로그를 통하든 뭘 하든 텐서플로나 파이토치로 모델을 만들어 학습하고 API를 띄우는 예제는 실행하며 대략적은 구조는 알아야 이 책을 훑어보는 게 가능하다. Google Colab으로도 할 수 있는 범위다. 이 정도를 할 줄 알면 무슨 얘기인지 도저히 이해가 가지 않는 용어들이 나와도 일단 한 번 완독하는 게 좋겠다. 양산형 인공지능 도서들과는 달리 저자들이 한두 달만에 익힌 경험을 책으로 옮긴 게 아니므로 한번에 이해가 가지 않는 게 당연하다. 회사 자원을 잘 써서 실습을 꼭 해야 자기 것이 되니 눈치 잘 보면서 꼭 클라우드에서 돌려보길 바란다.
안타깝게도 학생은 클라우드 환경에서 실습하기가 꽤 힘들다. 웹 서버 좀 돌려보기와는 차원이 다르게 돈이 나간다. 퍼블릭 클라우드 계정을 계속 만들어 쓰든 어떻게든 무료 포인트를 잘 받아서 일부라도 돌려보면 도움이 크게 되겠다. 취업을 위해서 이걸 다 해내려고 들지는 않는 게 좋겠다. 정말 불가능하다고 단언한다. 왜 해야 하는지 모르기 때문이다. 행여 주니어에게 MLOps 전반적으로 능숙하길 바라는 정신 나간 조직은 피해야 한다. 학생은 앞서 얘기한 것에 이어서 MLflow, BentoML에 Yatai까지만 돌려볼 줄 알아도 사랑 받을 만하다. MLOps도 좋지만 리눅스 OS, 리눅스로 다루는 네트워크, 도커 기술에 친숙해지는 게 더 우선이다. 그걸 모르는 조직 역시 당장은 급해도 피하는 게 낫다. 건투를 빈다.
최근들어서 관심있게 살펴보는 주제가 여러개 있는데, 그 중 하나가 MLOps이다. 개인적인 생각으로는 MLOps는 뭔가 AI의 이론적인 내용과 관련이 있다기보다는 조금 시스템적으로 이를 어떻게 처리하냐에 대한 내용을 주로 다루는 듯 하다. 사실 개인적으로 관심을 가지게 된 이유는 아무래도 내가 만든 모델을 실제 환경에 적용하는데 있어서 고려해야 될 부분이 한 두개가 아니라는 것을 느끼고 있기 때문이다. 단순히 책이나 어디에 나와있는 예제처럼 단순히 1회성에만 그치는 것이 아니라 실제 모델을 적용하려면, 지속적으로 모델을 학습하면서 성능 개선도 해야 되고, 내가 만든 모델을 언제 어떻게 배포해야 되는지에 대해서고 고민을 해야 된다. 아무리 리소스가 충분하고, 뛰어난 알고리즘이 있다고 하더라도, 뭔가 체계적인 프로세스가 정립되어 있지 않는다면 모델을 실제 환경에 적용한다는 것은 거의 불가능한 일이다. 다행히 최근 거의 대부분의 클라우드 업체나 MLOps를 지원해주는 툴들이 많이 나와있고, 계속해서 발전해나가고 있다.
이번에 살펴볼 책은 여타 MLOps의 기초나 간단한 소개를 넘어서 뭔가 실용적인 측면에서 접근한 책이다. 책의 제목에서도 알 수 있다시피 다양한 MLOps 시스템과 활용 사례에 대해서 다루고 있다. 심지어는 엣지 컴퓨팅과 엮어서 MLOps를 응용한 사례도 제공하고 있다. 그래서 일반적인 docker를 사용한 파이프라인 구축을 넘어서 뭔가 서비스로 적용된 MLOps 사례를 살펴보고 싶은 사람에게는 좋은 길잡이가 될 수 있다. 개인적으로는 중간중간에 역자 노트가 담겨져 있어서 누군가 가져볼만한 궁금증에 대해서 역자가 나름 정리한 내용을 담아놓은게 이 책의 좋은 부분이라고 생각한다.
그런데.. 책의 내용이 뭐랄까 좀 너무 중구난방식으로 흩어져있다는 생각도 들었다. 물론 다양한 사례를 담는 의도에서 책속에 AWS, Azure, GCP에 대한 사례와 실습을 담긴 했는데, 아마 실제로 써본 사람은 알겠지만 각 사에서 제공하는 서비스는 사용자 편의성을 제공하는 측면에서 전체 프로세스가 간략화되어 있고, 실제로 써본다고 해서 MLOps를 느낄 수 있는 것도 아니다. 결국 자기가 익숙한 시스템이 아닌 이상 해당 책 부분은 그냥 넘어가게 될텐데, 그러게 되면 생각보다 책에서 얻게 되는 내용이 적어지게 된다. (특히 AutoML관련된 챕터에서는 진짜 GCP에만 해당되는 내용이고, MLOps랑 관련없는 얘기들이 많이 포함된거 같다.) 그리고 아무래도 책이 2020년에 써졌다보니 몇몇 부분이 outdate된 부분이 있을거 같은데, 일부 책의 도식이나 예제 화면을 보면 20년 화면 그대로 들어있는게 있어서 해당 부분은 역자분들이 조금 관심있게 봤으면 좋지 않았을까 하는 아쉬움이 살짝 있다. (물론 일부 부분은 개인 환경에서 돌리고 올린 부분도 있다.)
다양한 MLOps의 사례를 담고 이를 실용적으로 접근하고자 한 책의 의도는 정말 잘 담겨져 있다고 생각한다. 하지만 개인적인 생각을 하나 달자면 너무 서비스별로 나눠서 설명하고, 결국 한 서비스에 익숙한 독자라면 넘기는 내용이 많기도 하고, 개인적으로 MLOps 쪽에서 알고 싶은 부분 중 하나인 Model Versioning이나 Lineage Managing 관련 내용은 살펴볼 수가 없어서 좀 기대에서 벗어난 책이었던 것 같다. 내가 너무 원하는 것만 생각하고 책은 읽은 것일지도...
(해당 포스트에서 소개하고 있는 "MLOps 실전 가이드" 책은 한빛 미디어로부터 제공받았음을 알려드립니다.)
MLOps 에 대한 내용은 주로 DevOps와 관련된 내용을 참고해 오고 있었는데 이렇게 딱 MLOps 만을 한정한 책이 나와 인상깊게 읽게 되었다.
머신러닝 모델을 만들었다면 이를 꾸준히 개선하고 운영해야 좀 더 나은 모델로 현실세계 문제를 해결하는데 도움이 되기 때문에 모델을 서빙하고 운영하는 것에 대한 중요성을 실감하고 있던터라 더 인상깊게 읽어볼 수 있었다.
또, 기존에는 종이책으로 주로 읽었지만 이번 책은 e-book으로 신청해서 읽었는데 지하철이나 이동중에 핸드폰만 있어도 잠깐씩 볼 수 있다는 점이 좋았다.
클라우드 제품군별 챕터
실용적인 접근 방식을 통해 “Practical MLOps”는 MLOps를 실제로 구현하고 적용하는 방법에 초점을 맞추고 있는 점이 좋았으며, 데이터 관리, 모델 훈련, 모델 배포, 모델 모니터링 등의 주제를 다루며, 이를 위한 도구와 기술에 대해 자세히 설명하고 AutoML뿐만 아니라 주로 사용되는 클라우드 제품군 별(AWS, Azure, GCP)로 설명을 제공한다는 점도 인상적이었다.
참고로 이 책에서 챕터별로 소개하는 클라우드 서비스는 아래 3가지다.
Amazon Web Services (AWS): AWS는 대규모 클라우드 컴퓨팅 서비스를 제공하며 EC2, S3, Lambda, SageMaker 등 다양한 서비스를 제공하고 있다.
Microsoft Azure: Azure는 마이크로소프트가 제공하는 클라우드 컴퓨팅 서비스로 Virtual Machines, Blob Storage, Azure Kubernetes Service, Azure Machine Learning 등 다양한 서비스를 제공하고 있다.
Google Cloud Platform (GCP): GCP는 구글이 제공하는 클라우드 컴퓨팅 서비스로 Compute Engine, Cloud Storage, Kubernetes Engine, AI Platform 등 다양한 서비스를 제공하고 있다.
생각해 보기
이 책은 MLOps의 다양한 측면을 다루고 있으며, 데이터 관리, 모델 개발과 배포, 모니터링 및 유지보수 등에 대한 상세한 가이드를 제공한다. 또, 가이드 뿐만 아니라 중간중간 연습해 보기와 생각해 보기를 제공하고 있는데 해당 챕터를 통해 아래와 같은 고민해볼만한 질문을 던져주는 점이 좋다.
2025년이나 2035년에는 머신러닝의 어떤 요소가 완전히 자동화되어 있고, 어떤 요소가 여전히 사람의 도움을 필요로 하고 있을까?
하드웨어부터 운영체제 프레임워크까지 모든 기술 스택에 대하여 수직계열화 전략을 펼치는 거대 IT 기업들이 어떤 기업들과 긍정적인 시너지를 낼 수 있을까?
머신러닝의 데이터 전처리 및 피쳐 추출, 하이퍼파라미터 튜닝, 모델 선택 등의 요소를 어떻게 자동화 할지? 머신러닝 모델의 설계 및 개발, 데이터의 품질 관리, 모델의 성능 평가 및 해석 등을 잘하기 위해서는 어떤 고민을 해야할지? 머신러닝 알고리즘 자체의 한계나 예외 상황에 대처하기 위해 어떤 개선을 해야할지 등을 고민하게 해준다.
MLOps에서의 중요한 과제
MLOps에서 발생하는 어려움에 대한 중요한 과제를 언급하고 있으며 대표적인 도전 과제로 윤리적 문제와 의도치 않은 결과, 운영 능력의 부족, 예측 정확도와 성능 목표 사이의 균형에 대해 제시한다. 머신러닝 시스템의 실제 운영에서 유지보수 비용이 막대하게 발생하는 것이 일반적이며, “Hidden Technical Debt in Machine Learning Systems” 논문을 추가자료로 추천하여 더 고민해 볼 것을 제시한다.
MLOps 최종 프로젝트 체크리스트
최종 프로젝트 체크리스트를 참고하여 MLOps를 운영하고 준비하는데 활용해 볼 수 있도록 예시를 제시해준 점도 좋다.
최종 프로젝트 체크리스트의 예시
머신러닝 예측/추론이 수행되는가?
별도의 환경이 있는가?
포괄적인 모니터링과 경고가 있는가?
올바른 데이터스토어가 사용되었는가? (관계형, 그래프, 키/값 등)
최소 권한 원칙이 적용되었는가?
데이터가 이동 및 저장 중에 암호화되었는가?
성능 검증을 위해 응용 프로그램을 테스트했는가?
소프트스킬에 대한 조언
IT 기술 분야는 하드스킬뿐만 아니라 배우는 소프트스킬도 중요한데 마지막 부분에 있는 조언 또한 인상적이었다.
소프트웨어 관련 직업은 끊임없이 학습하고 숙련되어야 한다.
학습하는 과정은 고통을 받고, 실수를 허용하는 과정이다.
회사에서는 모든 사항을 제공하기 어렵기 때문에 개인적으로 학습 방법과 시간을 확보해야 한다.
업무 시간 중 20% 정도를 학습에 할애하는 것이 권장된다.
또 운영과정에서는 실패를 자주 마주할 수 밖에 없는데 학습하는 과정이 고통을 받고 실수를 허용하는 과정이라는 점에서 마음의 위로가 되기도 했다.
우리가 MLOps에 관심을 갖는 것은 Machine Learning을 통해 해결하고자 하는 문제가 있기 때문이다. 이 책의 저자는 Athlete Inelligence 라는 마케팅 비지니스를 구축했다. 이 때, ML을 통해 여러가지 예측을 수행하였고 이를 지속적으로 관리하기 위해 MLOps 파이프라인을 통해 서비스를 안정적으로 유지할 수 있었다고 한다.
우리가 풀고 싶은 문제는 무엇일까? 혹은 해내고 싶은 미션은 무엇일까? 생각을 거듭하여 명확한 문제 정의를 하였다면 DevOps와 MLOps를 통해 세상에 좋은 영향을 펼쳐보자. 이 책은 그 여행을 도와주는 좋은 나침반이 될 것이다.
DevOps가 개발의 생산성과 운영의 안정성을 최적화하기 위한 문화이자 방법론이라고 한다면, MLOps는 DevOps의 문화, 철학, 방법론을 시스템에 적용한 것이라고 할 수 있다. 따라서 MLOps를 다루려면 개발과 운영부터 클라우드를 포함한 시스템 그리고 머신러닝까지 알아야 한다. 이 책은 어느 것 하나 버릴 것 없이 마치 퍼즐 조각처럼, MLOps라는 완성된 그림을 향해 시행착오 없이 목적지까지 잘 도착할 수 있도록 훌륭한 지도처럼 독자를 이끌고 있다.
MLOps는 머신러닝이 뜨기 시작하기부터 엄청 뜨고 있는 분야이다. 요즘은 머신러닝 모델만 잘 만들어야 되는 것이 아닌 파이프라인까지 잘 만들어야 한다. MLOps는 머신러닝(ML)과 DevOps의 합성어로 쉽게 설명하면 머신러닝 모델을 개발하고 배포하는 과정을 자동화하는 것이다. 이게 어떻게 가능한가 궁금한 사람들이 많을 것이다. 나 또한 그렇게 공부를 시작했으며, 현재는 머신러닝을 공부하고 더 나은 파이프라인을 만들기 위해 MLOps, 백엔드 부분을 더 공부해보고 있다. 이 책 또한 나에게 도움이 될 것 같아 읽게 됐다.
엄청 쉽다고는 말하지 못 할 것 같다. 그러나 MLOps에 대해 관심이 있고 한 번이라도 공부해본 분들께는 이 책을 추천할 것 같다. 제목 그대로 실전 가이드이기에 이론적인 부분보다는 실습 위주로 설명이 되어있다. 그러나 이론적인 부분도 충분히 설명이 되어있기 때문에 커맨드라인 환경, 파이썬, 컨테이너 등 기본 개념만 있다면 이 책을 읽기에 더욱 수월할 것이다. MLOps에 관심이 있다면 한 번쯤 읽어봐야 할 책이라고 생각한다.
이 책은 위에서도 언급 했듯이 실습 가이드 그 자체라고 말할 수 있다. MLOps를 공부하고 싶다면 이런 것들은 알아야 한다고 간접적으로 알려주는듯이 말한다. MLOps라는 분야 자체가 엄청 많은 것들을 알아야 할 수 있는 분야이기에 이렇게 설명했다고 생각한다. 깊이보다는 다양한 것들을 알려주기 위한 책이라 말할 수 있다. 그래서 이 책을 읽고 나면 MLOps에 대해 어떤 것들을 공부해야 하는지 알 수 있을 것이다. 재밌었던 점은 각 챕터의 마지막에 '연습해보기'와 '생각해보기'가 있는데 문제를 해결해야 한다는 것이 재밌었다. 연습해보기는 실습 위주로 문제를 풀어야 하고 생각해보기는 이론적인 부분을 생각해서 풀어봐야 한다. 이런 부분까지 다 해결해보면 MLOps에 대해 더 잘 이해할 수 있지 않을까. 개인적으로 설명도 꽤 잘 되어 있고, 번역도 잘 되어 있다고 느꼈다. 또한, 지금 하고 있는 공부에 여유가 생긴다면 MLOps에 대해 더 깊게 공부해보고 싶다는 생각이 들었다.
* 머신러닝 모델의 안정적인 운영과 성공적인 CI/CD를 위한 MLOps 엔지니어링 노하우
* MLOps 포트폴리오 작성 Tip, MLOps 실무자의 인터뷰 수록
* 최신 내용 기반한 역자 노트 추가 및 소스 코드 리팩토링 반영
이 책은 MLOps와 DevOps의 개념을 종합적으로 이해하고, 깊이 있는 학습을 돕기 위해 다양한 실습을 포함하고 있습니다. 머신러닝 모델의 안정적인 운영을 위한 배포 방법과 AutoML, 컨테이너, 엣지 컴퓨팅, 모델 이식성 등 MLOps의 중요한 기술 영역을 다룹니다. 뿐만 아니라 AWS, 애저 환경, GCP 등 다양한 클라우드 플랫폼에서의 MLOps 경험을 쌓을 수 있도록 실습을 제공합니다. 저자의 실제 경험을 바탕으로 한 MLOps 사례 및 MLOps 실무자들의 인터뷰 내용도 소개하고 있습니다. 부록에서는 MLOps 구현 시 고려해야 할 사항과 MLOps 커리어 준비를 위한 인터뷰 질문 및 기술 포트폴리오에 필요한 작성 Tip도 제공하여 실무에 쉽게 적용할 수 있도록 도와줍니다.
[MLOps 실전 가이드는 어떤 책인가?]
ㆍAWS, 애저, 구글 클라우드 플랫폼에서의 MLOps 실습
ㆍ최신 내용 기반한 역자 노트 추가 및 소스 코드 리팩토링
ㆍ연습해보기와 생각해보기로 자체 복습습
ㆍMLOps 포트 폴리오 작성 Tip 소개
[이 책의 대상 독자]
ㆍMLOps 코드와 함께 문서를 작성해야 하는 소프트웨어 개발자
ㆍ다양한 플랫폼에서의 MLOps를 경험하고 싶은 개발자
ㆍ머신러닝 개발과 함께 실제 서비스 배포를 위한 엔지니어링이 궁금한 개발자
[이 책의 구성]
[서평]
"MLOps 실전 가이드"는 MLOps와 DevOps 모두에 정통한 저자가 저술한 이 책은 독자들을 이 두 분야의 융합을 통해 개념을 종합적으로 이해하고 MLops로 머신러닝 모델의 안정적인 운영과 성공적인 CI/CD를 위한 MLOps 엔지니어링 노하우를 배울수 있습니다.
이 책의 강점은 이론에서 실제 구현에 이르는 MLOps에 대한 포괄적인 접근 방식에 있습니다. 핵심 개념에 견고한 기반을 마련하고 MLOps와 DevOps 간의 관계를 명확히 하고 자동화의 중요성을 강조하는 것으로 시작합니다. 저자는 이러한 진화가 어떻게 AI 시대에 맞게 조정되어 오늘날의 기술 환경에 적절하고 시의적절하게 만드는지 자세히 설명합니다.
"MLOps 실전 가이드"의 두드러진 특징 중 하나는 MLOps실습 학습에 중점을 두고, 자동화된 번역에 의존하지 않고 번역가가 직접 원문을 직접 번역하고 소스코드를 제시하여 독자가 능동적으로 자료에 참여할 수 있도록 합니다. 이 실용적인 측면을 통해 개발자는 원활하게 진행하고 새로 얻은 지식을 실제 프로젝트에 적용할 수 있습니다.
책 전반에 걸쳐 "역자 노트" 통합은 독자들에게 최신 업데이트와 보충 설명을 제공하는 사려 깊은 터치입니다. 이러한 주석은 잠재적인 이해 격차를 해소하여 MLOps를 처음 접하는 독자도 복잡한 개념을 쉽게 이해할 수 있도록 합니다.
또 다른 칭찬할 만한 측면은 AWS, Azure 및 Google Cloud Platform을 포함한 주요 클라우드 플랫폼에 초점을 맞추고 있다는 것입니다.
이 책은 이러한 환경에서 MLOps를 구현하는 방법에 대한 단계별 지침을 제공하므로 기계 학습 모델을 배포하고 관리하는 데 실용적인 지침을 찾는 개발자에게 좋은 노하우가 될 것입니다.
실제 사례를 포함하면 가이드에 진정성을 더할 수 있습니다. 독자는 번역가의 경험에서 귀중한 통찰력을 얻을 수 있어 책의 신뢰도를 더욱 높일 수 있습니다.
이 책은 다양한 수준의 소프트웨어 개발자를 대상으로 합니다. 사소한 개선 영역 중 하나는 학습 경험을 향상시키기 위해 더 많은 시각 자료 또는 다이어그램을 포함하는 것입니다. 시각 자료는 종종 복잡한 개념을 효과적으로 전달하는 데 도움이 됩니다.
결론적으로 "MLOps 실전 가이드"는 MLOps 및 DevOps 통합에 대한 포괄적인 이해를 배울수 있으며, 자동화, 실습 및 실제 시나리오에 중점을 둔 책으로 개발자가 AI 기반 자동화의 세계에서 탁월한 성과를 거두는 데 필요한 기술과 인사이트를 제공합니다. MLOps과 함께 DevOps 서비스 배포에 대해 궁금한 사람이라면 반드시 읽어야 할 책입니다.
이 책은 실전 입문이라는 책 답게 ML 모델의 개발부터 배포, 운영까지의 전 과정을 다루고 있다. 머신 러닝 모델의 생애 주기를 다루면서 ML Ops의 필요성과 중요성을 알수 있다.
책은 총 12개의 장으로 구성되어 있고 각 장마다 다른 주제를 다루고 있다. 첫 장과 두번째 장에서는 ML Ops 의 기본 개념과 장점을 소개하고 있으며 세번째 장부터는 실전적인 내용들을 차례대로 접근한다. 데이터 수집, 모델 훈련, 평가, 배포, 모니터링, 유지지보수, 그리고 AWS, Azure, GCP 환경에서 활용하는 방법 등을 설명해준다.
최근 몇년 동안 머신 러닝 모델의 훈련과 개발은 크게 발전했지만 이를 공부하고 운영환경에 적용하는데에는 여전히 어렵다는게 현실이다. 그리고 개개인이 스스로 공부를 하면서 구축을 해보기에는 많은 도전과 시행착오가 필요하다. 그리고 여기저기 인터넷에 내용들이 많이 있지만 어떤 것들을 참고해봐야 할지 조차도 판단하기 어렵다. 그에 비해서 이 책은 ML Ops의 개념을 이해하기 쉽게 설명하고, 구현에 필요한 다양한 도구와 기술들을 소개함으로써 이러한 어려움을 해소해 주고있다.
그렇기 때문에 이 책은 개발자, 시스테관리자, 클라우드 엔지니어 등과 같이 머신 러닝모델을 개발하고 운영하는데 관심이 있는 모든 분들에게 도움이 될것 같다. 그리고 초보자들도 따라할 수 있도록 자세한 가이드를 제공하기 때문에 하나하나 따라 해볼수 있을 것이다.
요즘 대기업에서는 A.I 및 IoT를 위해 머신러닝에 대해 개발을 추진하는 추세입니다. 머신러닝이란 기술은 인간의 뇌구조를 묘사한 뉴럴 네트웍에 기반한 기술이고 굉장히 다양한 일들을 하고 있는데 예전에는 단순히 로봇에 학습을 시켜서 사람을 따라하게 만들었지만 이제는 로봇뿐만 아니라 스피커, 청소기등등이 자신들이 가지고 있는 학습 데이터에 기반해서 판단을 내리고 행동하는 초연결시대로 나아가기 위한 기술이기 때문입니다.그래서 구글, 삼성같은 IT관련 대기업들은 이미 머신러닝에 관련된 기술자들을 교육해서 키워내는 등 첫번째 선두로 등장하기 위해 엄청난 경쟁을 벌이고 있을 정도로 21세기의 핵심 기술중 하나입니다. 소프트웨어 엔지니어링 프로세스뿐만 아니라 데이터나 모델링까지 자동화하는 행위를 MLOps라고 하는데 DevOps 방법론을 사용하여 머신러닝을 자동화하는 프로세스라고 생각하시면 됩니다.
제가 이 책을 선택한 이유는 MLOps의 기본 개념부터 시작하여 테스팅, 린팅, CI/CD와 같은 DevOps 관련 개념과 예시, AWS/GCP/애저에서의 구성 및 실제 예시들, 깃허브 액션과 쿠버네티스를 이용한 구축 방법 등 MLOps를 시작할 때 필요한 지식이 모두 들어있어 기본적인 개념은 물론이고 클라우드별 MLOps 실습과 함꼐 실제 MLOps 서비스를 제공할 때 고려해야할 사안들까지 정리하여 알려주며 또한 다양한 플랫폼의 실제 예시를 설명하여 머신러닝에 대한 사회적 관심이 깊어지는 현재에 MLOps를 위한 기초 개념뿐만 아니라 어떻게 머신러닝 모델을 효과적으로 배포하고 관리할 것인지 알 수 있기 때문입니다.
이 책의 특성은 머신러닝 엔지니어링과 MLOps의 철학적인 개념과 이유, 이론, 실습 및 실전 내용까지 모두 포함하여 독자가 이해하고 따라 할 수 있도록 단계별로 구성되어 있어 클라우드 플랫폼별 사용 방법부터 마이크로서비스, 실전 사례 소개까지 MLOps를 이해하고 실천 및 실무자가 실제 작업 프로젝트에 기여하는데 도움 되는 주제를 담고 있습니다. 이 책은 머신러닝 엔지니어링과 클라우드의 MLOps에 초점을 맞추고 있어 MLOps에 대한 개념을 통찰력 있게 설명하고 사례별 Hands-on 실습 코드를 제공함으로써 독자가 MLOps의 본질을 명확히 이해하고 다양한 기술 전문가의 경력과 실용적인 팁을 함께 제공하여 현업에 바로 적용할 수 있도록 도와줍니다. 특히 클라우드 플랫폼별로 MLOps를 구축하는 방법과 실제 사례가 포함되어 있어 실무 활용도가 매우 높다는 점입니다.
구성
Chapter 1: MLOps 세상으로 초대
Chapter 2: MLOps를 시작하기 위한 기본 개념
Chapter 3: 컨테이너와 엣지 디바이스를 위한 MLOps
Chapter 4: 머신러닝 애플리케이션에 지속적 배포를 적용하기
Chapter 5: AutoML과 KaizenML
Chapter 6: 모니터링과 로깅
Chapter 7: AWS를 이용한 MLOps
Chapter 8: 애저 환경과 MLOps
Chapter 9: 구글 클라우드 플랫폼과 쿠버네티스
Chapter 10: 머신러닝 상호운용성
Chapter 11: MLOps 명령줄 도구와 마이크로서비스 구축
Chapter 12: MLOps 실사례 연구
APPENDIX A: 기술 자격증
APPENDIX B: MLOps를 위한 기술 포트폴리오 작성 Tip
파트별로 나누어 봤을때 1~2장은 DevOps와 MLOps의 이론과 실습에 대해 설명하고 있고, 3~4장은 자동화와 지속적인 통합과 지속적인 배포의 구성에 대해, 5~6장은 KaizenML과 모니터링에 대해, 7~9장은 AWS, 애저, GCP에 대해, 10~11장은 AutoML, 컨테이너, 엣지 컴퓨팅, 모델 이식성을 포함하여 머신러닝 운영에서 요구될 수 있는 중요한 기술 분야들에 대해, 12장은 저자의 실제 업무에서의 경험을 바탕으로 MLOps를 수행하면서 마주했던 실제 사례에 대해 설명하고 있습니다.
개인적인 생각으로 학습은 머신러닝 프로그래밍을 처음 배우는 초보자, ML 엔지니어, 데이터 과학자, 데이터 엔지니어, ML 플랫폼 엔지니어, 엔지니어링 관리자 등 ML 관련 직무로 취업 및 이직을 희망하시는 분들께서는 우선 ML 모델, 신경망 아키텍쳐, 지표, 통계 같은 기초 개념과 기본 ML 기술, 일반적인 ML 작업 등 기술적인 요소에 대해 학습하신 다음에 1장부터 시작하시면 좋을 것 같고 어느정도 경험이 있으신 분들(2년차~ 또는 ML 플랫폼 및 ML 서비스를 구축 및 관리한 경험이 있음)부터는 2장까지는 쭉 훓으시면서 머신러닝 시스템에 대해 파악한다는 방식으로 보시고 3장부터 학습하시는 것이 좋을것 같습니다.
개인적으로 약간의 단점이 어쩌면 욕심일수도 있는게 좀더 많은 실습 예제 및 비즈니스 케이스가 담겨있으면 더 좋았지 않았을까라는 아쉬움이 있습니다.
저의 리뷰를 읽어주셔서 감사합니다. 다음에는 좀더 유용하고 좋은 책으로 더 나은 리뷰를 통해 여러분께 책을 소개시켜드릴 수 있도록 더 노력하겠습니다.
1. MLOPs이란?
MLOps란 DevOps의 머신러닝 버전입니다. DevOPs란 Development와 operation의 합성어입니다.
Devops에선 “테스트의 자동화”, “CI”, “CD”등에 대해 다룹니다.
대상 독자 : 솔직히 posix (unix,linux,mac ) shell에 익숙하고, python의 기계학습, docker, cloud 환경, 등등 배경지식이 좀 있으신 분이 읽어야 할 것 같습니다.
모두 짧은 설명이 나오나, 부족한 느낌입니다.
2. 책의 내용
읽은 내용 중 기억에 남는 내용 위주로 적어 봤습니다.
automl : 데이터만 준다면 모델을 자동으로 만들어준다.
종류로는
github action github에서 자동으로 테스트 해주고 해당 루틴을 실행 해 준다.
C++로 작업을 하는데 헷갈리는 용어들이 있었습니다.
Sanitizers 코드를 실행하면서 분석하는 동적 분석기이다.
Linters 코드를 실행하면서 분석하는 정적 분석기이다.
Static code analysis tools clang-tidy와 같이
엣지 디바이스 : 물리적으로 연산자원이나 인터넷이 제한적인 기기. google coral, tf lite
autoML, Docker, Cloud 기술, github action, AWS, AZure에서 mlops하는 법을 배웁니다.
솔직히 어려워서 잘 못 읽었습니다.
3. 책의 장점
키워드 들로 어떻게 공부해야하는지 방향성을 볼 수 있었습니다.
4. 책의 단점
처음 해보는 분야이고 번역서라 그런지 부드럽게 읽히진 않습니다.
물론 제 독해력이 부족한 부분도 있습니다.
“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”
머신러닝은 다양한 산업에서 활용되고 있는데, ML모델을 개발을 하고 배포하는 것은 매우 어렵고 복잡한 과정을 가지고 있어 시간이 많이 소요됩니다. MLOps는 ML를 개발, 배포, 운영을 자동화 하는 것을 목표로 하고 있고 요즘 많이 부각되고 있는 분야입니다.
머신러닝의 결과인 추론 모델을 지속적으로 업데이트를 할 수 있고 이것을 이용하여 서비스를 활용할 수 있습니다. 클라우드에서 가상 환경을 구성해 실습을 안내하고 있습니다. 그렇기 때문에 활용도가 더 높아지는 효과가 생깁니다. MLOps를 사용하는 곳은 점점 많아지고 필요성을 많이 느끼지만, 제대로 안내하는 책이 없어 공부하기가 힘든 책인데, 이 책은 그것을 안내하고 있어 구축하는데 많은 도움을 줄 수 있을 거라 생각합니다. 기업에서도 MLops를 개발하는 사람을 많이 채용을 하고 있기 때문에, 기술을 익힌다면 본인의 스펙을 올릴 수 있는 기회라고 생각합니다.
머신러닝(ML)은 다양한 산업에서 혁신을 가져오는 데 중요한 역할을 하고 있습니다. 그러나 ML 모델을 개발하고 배포하는 것은 복잡하고 시간이 많이 소요될 수 있습니다. MLOps는 ML 모델의 개발, 배포, 운영을 자동화하고 조정하는 데 중점을 둔 새로운 분야입니다.
"MLOps 실전 가이드 DevOps와 MLOps의 이론과 실습부터 클라우드 컴퓨팅, AutoML, 엣지 컴퓨팅까지"는 MLOps를 도입하고 운영하는 방법에 대해 자세히 설명하는 책입니다. 이 책은 MLOps의 개념과 원리를 설명하고, MLOps를 구현하는 데 필요한 도구와 기술을 소개합니다. 또한, MLOps를 도입하고 운영하는 과정에서 발생할 수 있는 문제와 해결책을 제시합니다.
이 책은 MLOps에 관심이 있는 모든 사람에게 유용한 자료입니다. 특히 MLOps를 도입하고 운영하는 방법을 배우고 싶은 사람들에게 필수적인 책입니다.
이 책은 다음과 같은 내용을 다룹니다.
MLOps의 개념과 원리
MLOps를 구현하는 데 필요한 도구와 기술
MLOps를 도입하고 운영하는 과정에서 발생할 수 있는 문제와 해결책
이 책은 MLOps에 관심이 있는 모든 사람에게 유용한 자료입니다. 특히 MLOps를 도입하고 운영하는 방법을 배우고 싶은 사람들에게 필수적인 책입니다.
대부분의 소프트웨어 개발 과정과 마찬가지로 머신러닝이 포함된 제품을 개발하기 위해선 신경 써야 하는 것들이 한둘이 아니다.
개발 과정에서 필연적으로 나타나는 수 많은 소프트웨어의 변경사항들을 빠르게 적용하고, 운영 상황에서 벌어지는 이슈들에 빠르게 대처하기 위해 DevOps가 필요하다. 머신러닝 역시 지속적인 발전과 유연한 운영을 위해 잘 정립된 DevOps 모범사례들을 적용한 것이 바로 MLOps이다.
<MLOps 실전 가이드>는 MLOps에 관심 있는 독자들부터, MLOps는 모르지만 머신러닝으로 제품화를 꿈꾸는 사람들까지 MLOps 세계에 첫발을 내딛을 수 있도록 도움을 줄 수 있는 책이다. 책에는 다양한 예제 코드들이 있어 어떤 방식으로 동작하는지 시각적으로 보여주면서, 각각의 코드들을 세부적으로 설명해 코드 자체를 이해하는데 큰 도움을 준다.
이 책은 "실전 가이드"라는 제목처럼 MLOps라는 방대한 세계관에 첫 발을 딛는 입문자나 MLOps를 개념적으로만 이해하고 있는 개발자를 위한 책이다. MLOps에 대한 배경 지식이나 실전에서 사용되는 다양한 제품들을 소개하여 전반적인 개념을 이해하는데 큰 도움을 준다. 또한 앞서 이야기한 상세한 예제 코드를 통해 어떤 방식으로 적용되는지 빠르게 이해할 수 있도록 한다.
다양한 제품들을 소개한다는 측면에서는 어느정도 MLOps를 활용하고 있는 경우에도 큰 도움이 될 것이라 생각한다. 폭넓은 배경지식이나 상세한 예제 코드는 의미가 없을 순 있지만, 세부적인 기술 동향들을 파악하는 데는 충분히 의의가 있을 것이라 생각한다.
MLOps 실전 가이드의 제목은 현재 가장 뜨거운 키워드들인 ML(머신러닝)과 DevOps의 합성어이다. 머신러닝의 결과인 추론 모델을 지속적으로 업데이트 및 이를 이용한 서비스에 활용할 수 있는 기술을 소개하고 있으며, 이를 온프레미스가 아닌 퍼블릭 클라우드에서 가상 환경을 구성해 실습을 안내하고 있다.
Chat GPT로 인해 인공지능에 대한 관심이 다시금 높아져 있는 지금 AI 분야에서 일을 하고 있는 분들에게 꽤나 유용한 책이라고 생각한다. DevOps도 나름의 트랜드가 기술로 이를 제대로 구현한 기업을 찾기는 힘들 뿐더러 ML 분야 역시 제대로(?)된 인력을 구하기 힘든 분야라 이 분야를 공부하는 것은 상당히 자신의 가치를 높일 수 있는 좋은 기회가 될 것이다.
그래서 먼저 선점해서 기술을 익힌다면, 가까운 미래에 자신의 몸값을 올리는데 큰 역할을 하지 않을까 싶다.
다만 한 가지 조금은 아쉬운 점은 이 책의 원서 초판은 2021년에 출간되었다는 점이다.
어차피 2021년의 내용이어도 현재 이 기술을 제대로 구사하는 곳은 거의 없을 것이라고 확신하기 때문에, 원서 초판의 시기는 크게 아쉬운 점은 아니라고 생각한다.
이 책은 MLOps가 무엇인지 이를 설명과 함께 필요한 기술 요소들을 설명하고 있어, 기초를 잡기에도 좋다고 생각이 든다. 리눅스, 클라우드, 컨테이너와 모델 패키징 등의 설명도 다루고 있다.
그리고 파이프라인을 설명하는데 분량이 약간 짧은 감이 있지만, Feature에 대한 최적화 과정을 AutoML과 KaizenML 이라는 기술로 자동화 시키며 이를 위한 모니터링 기술, AWS, Azure, GCP를 이용한 MLOps 구축을 친절히 설명하기 때문에 충분히 매력적인 책이다.
마지막으로 좋았던 부분은 마이크로서비스 구축이라던지, 실사례 연구에 대해 설명하는 부분이 있어 이러한 점은 실제 MLOps를 구축할 때 도움이 많이 될 수밖에 없다는 생각이 든다.