책 소개
머신러닝 모델의 안정적인 운영과 성공적인 CI/CD를 위한 MLOps 엔지니어링 노하우
* MLOps 포트폴리오 작성 Tip, MLOps 실무자의 인터뷰 수록
* 최신 내용 기반한 역자 노트 추가 및 소스 코드 리팩토링 반영
이 책은 MLOps와 DevOps의 개념을 종합적으로 이해하고, 깊이 있는 학습을 돕기 위해 다양한 실습을 포함하고 있습니다. 머신러닝 모델의 안정적인 운영을 위한 배포 방법과 AutoML, 컨테이너, 엣지 컴퓨팅, 모델 이식성 등 MLOps의 중요한 기술 영역을 다룹니다. 뿐만 아니라 AWS, 애저 환경, GCP 등 다양한 클라우드 플랫폼에서의 MLOps 경험을 쌓을 수 있도록 실습을 제공합니다. 저자의 실제 경험을 바탕으로 한 MLOps 사례 및 MLOps 실무자들의 인터뷰 내용도 소개하고 있습니다. 부록에서는 MLOps 구현 시 고려해야 할 사항과 MLOps 커리어 준비를 위한 인터뷰 질문 및 기술 포트폴리오에 필요한 작성 Tip도 제공하여 실무에 쉽게 적용할 수 있도록 도와줍니다.
출판사 리뷰
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를 경험하고 싶은 개발자
- 머신러닝 개발과 함께 실제 서비스 배포를 위한 엔지니어링이 궁금한 개발자
작가 소개
지은이 : 노아 기프트
듀크 MIDS와 노스웨스턴 대학원 데이터 사이언스, UC 버클리 대학원 데이터 사이언스, UC 데이비스 경영 대학원의 MSBA 프로그램 강사다. 약 20년의 파이썬 프로그래밍 전문 경력이 있고, 파이썬 소프트웨어 재단 펠로우(Python Software Foundation Fellow)다. 여러 회사에서 CTO, 총괄 매니저, 컨설팅 CTO와 클라우드 아키텍트에 이르기까지 다양한 역할로 근무했다. 현재는 스타트업을 비롯한 여러 회사에 머신러닝과 클라우드 아키텍처에 대해 컨설팅을 하고 있으며, Pragmatic AI Labs(https://paiml.com)의 창립자로서 CTO 레벨 컨설팅을 수행하고 있다.
O'Reilly, Pearson, DataCamp, Udacity 등을 통해 클라우드 머신러닝에서 데브옵스에 이르는 주제를 다룬 2권의 책을 포함해 100편 이상의 기술 출판물을 출판했다. 또한 공인 AWS 솔루션 아키텍트다. 캘리포니아 데이비스 대학교 MBA, 로스앤젤레스 캘리포니아 주립대학교 컴퓨터 정보 시스템 석사, 샌 루이스 오비스포 캘리포니아 폴리테크닉 주립대학교에서 영양학 학사 학위를 취득했다.
더 많은 정보는 깃허브(https://github. com/noahgift), 개인 웹사이트(https://noahgift.com), 링크드인(https://www.linkedin.com/in/noahgift)에서 확인할 수 있다.
지은이 : 알프레도 데자
열정적인 소프트웨어 엔지니어이자 연설가 겸 작가다. 20년 정도 DevOps와 소프트웨어 엔지니어링 경험을 지닌 전직 올림픽 선수이기도 하다. 현재 머신러닝 엔지니어링을 가르치고 있으며 소프트웨어 개발, 개인 프로젝트, 운동에 대해 전 세계를 돌아다니며 강연하고 있다. DevOps와 파이썬에 관한 책을 여러 권 저술했으며 인프라, 테스트, 강력한 개발 사례에 대한 자신의 견해를 계속 공유하고 있다.
옮긴이 : 이장후
대학교에서 컴퓨터공학을 공부하다가 갑자기 휴학 후 창업에 도전해 칵테일 바를 열어보기도 하고, 자율주행 킥보드를 만드는 일에 1년 6개월간 뛰어들었다가 최근에는 AI MSP를 다루는 회사에서 데이터 사이언티스트로 일하기도 했다. 이 소개를 쓰는 순간에는 학생 신분으로 프랑스에서 경험을 쌓고 있다.
살아가며 배우고 느낀 것들을 광적으로 쓰고 기록하며 롤모델의 이름을 딴 개인 블로그 다빈치 작업실(https://davincijang.space)에 포스팅하고 있다.
옮긴이 : 이일섭
데이터 분석 전공으로 석사 과정을 졸업하고 카드 회사 AI 팀에서 근무하고 있다. 데이터 커뮤니티 데이터야놀자에서 활동하고 있으며 『데이터 품질의 비밀』(디코딩, 2023)과 『MLOps 실전 가이드』(한빛미디어, 2023)를 번역했다.
옮긴이 : 서기원
GS 리테일에서 머신러닝 엔지니어 및 데이터 플랫폼 엔지니어로 근무하고 있다. 2022년 하반기에는 GS 리테일 우수사원상을 수상하였다. 클라우드 기반 MLOps 파이프라인 설계 및 구현에 전문성을 갖추고 있으며, 효율적이고 현대적인 아키텍처를 구축하는 데 관심이 있다.
최근에는 데이터 분석 플랫폼의 고도화와 기술 지원을 담당하며 아키텍처 고도화, IaC, 데이터 저장 정책 및 메커니즘, 비용 최적화, 모니터링, 분석 환경 정책 등 다양한 영역의 업무를 수행하고 있다.
2018년 IITP의 지원을 받아 퍼듀 대학교에서 빅데이터와 관련된 연구와 프로젝트를 수행하면서 데이터에 대한 관심을 키웠다.
목 차
CHAPTER 1 MLOps 세상으로 초대
_1.1 머신러닝 엔지니어와 MLOps의 부상
_1.2 MLOps란?
_1.3 DevOps와 MLOps
_1.4 MLOps 욕구 단계 이론
__1.4.1 DevOps 구현
__1.4.2 깃허브 액션을 사용하여 지속적 통합 구성하기
__1.4.3 DataOps와 데이터 엔지니어링
__1.4.4 플랫폼 자동화
__1.4.5 MLOps
_1.5 마치며
연습해보기
생각해보기
CHAPTER 2 MLOps를 시작하기 위한 기본 개념
_2.1 배시와 리눅스 커맨드 라인
_2.2 클라우드 셸 개발 환경
_2.3 배시 셸과 명령어
__2.3.1 파일 목록
__2.3.2 실행 명령
__2.3.3 파일 탐색
__2.3.4 셸 입출력
__2.3.5 셸 설정
__2.3.6 셸 스크립트 작성
_2.4 클라우드 컴퓨팅 기반과 구성 요소
_2.5 클라우드 컴퓨팅 시작하기
_2.6 파이썬 벼락치기
_2.7 미니멀리스트를 위한 파이썬 튜토리얼
_2.8 프로그래머를 위한 수학 벼락치기
__2.8.1 기술 통계학과 정규분포
__2.8.2 최적화
__[역자 노트]
_2.9 머신러닝의 핵심 개념
_2.10 데이터 과학 해보기
_2.11 간단한 파이프라인 밑바닥부터 작성하기
_2.12 마치며
연습해보기
생각해보기
CHAPTER 3 컨테이너와 엣지 디바이스를 위한 MLOps
_3.1 컨테이너
__3.1.1 컨테이너 런타임
__3.1.2 컨테이너 생성하기
__3.1.3 컨테이너 실행하기
__3.1.4 컨테이너 모범 사례
__3.1.5 HTTP로 모델 서빙하기
_3.2 엣지 디바이스
__3.2.1 구글 코랄
__3.2.2 애저 퍼셉트
__3.2.3 텐서플로 허브
__3.2.4 구글 코랄 엣지 TPU 컴파일러
_3.3 완전 관리형 머신러닝 시스템을 위한 컨테이너
__3.3.1 MLOps 컨테이너 거래하기
__3.3.2 다양하게 활용되는 컨테이너
_3.4 마치며
연습해보기
생각해보기
CHAPTER 4 머신러닝 애플리케이션에 지속적 배포를 적용하기
_4.1 머신러닝 모델 패키징
_4.2 머신러닝 모델의 지속적 배포를 위한 코드형 인프라
_4.3 클라우드 파이프라인 사용하기
__4.3.1 모델 배포 제어하기
__4.3.2 모델 배포를 위한 테스팅 전략
_4.4 마치며
연습해보기
생각해보기
CHAPTER 5 AutoML과 KaizenML
_5.1 AutoML
__5.1.1 MLOps 산업 혁명
__5.1.2 AutoML vs KaizenML
__5.1.3 피처 스토어
_5.2 애플 생태계
__5.2.1 애플의 AutoML: Create ML
__5.2.2 애플의 Core ML
_5.3 구글의 AutoML과 엣지 컴퓨터 비전
_5.4 애저의 AutoML
_5.5 AWS AutoML
_5.6 오픈 소스 AutoML
__5.6.1 Ludwig
__5.6.2 FLAML
_5.7 모델 설명력
_5.8 마치며
연습해보기
생각해보기
CHAPTER 6 모니터링과 로깅
_6.1 클라우드 MLOps와 관찰가능성
__[역자 노트]
_6.2 로깅 기초
_6.3 파이썬에서 로깅 실습하기
__[역자 노트]
__6.3.1 로그 수준 설정하기
__6.3.2 여러 애플리케이션을 동시에 로깅하기
_6.4 모니터링과 관찰가능성
__6.4.1 모델 모니터링의 기초
__6.4.2 AWS 세이지메이커에서 드리프트 모니터링하기
_6.5 애저 머신러닝에서 드리프트 모니터링하기
_6.6 마치며
연습해보기
생각해보기
CHAPTER 7 AWS를 이용한 MLOps
_7.1 AWS에 입문하기
__7.1.1 AWS 제품 사용해보기
__7.1.2 AWS와 MLOps
_7.2 AWS를 이용한 MLOps 레시피
__7.2.1 명령행 인터페이스 도구
__7.2.2 플라스크 마이크로서비스
_7.3 AWS 람다 레시피
__7.3.1 AWS 람다-SAM: 로컬 환경에서 사용하기
__7.3.2 AWS 람다-SAM: 컨테이너화하여 배포하기
_7.4 현실의 문제를 해결하기 위한 AWS 머신러닝 제품과 조언
__[인터뷰] 스포츠 SNS 서비스의 사례
__[인터뷰] AWS 머신러닝 기술 전도사 줄리앙의 커리어 조언언
_7.5 마치며
연습해보기
생각해보기
CHAPTER 8 애저 환경과 MLOps
_8.1 애저 CLI와 파이썬 SDK
_8.2 인증
__8.2.1 서비스 주체
__8.2.2 API 서비스 인증
_8.3 컴퓨팅 인스턴스
_8.4 배포
__8.4.1 모델 등록
__8.4.2 데이터셋 버전 관리
__[역자 노트]
_8.5 컴퓨팅 클러스터에 모델 배포하기
__8.5.1 클러스터 구성하기
__8.5.2 모델 배포하기
_8.6 배포 문제 해결하기
__8.6.1 로그 검색하기
__8.6.2 애플리케이션 인사이트
__8.6.3 로컬 환경에서의 디버깅
_8.7 애저 머신러닝 파이프라인
__8.7.1 퍼블리싱 파이프라인
__8.7.2 애저 머신러닝 디자이너
_8.8 머신러닝 생애 주기
_8.9 마치며
연습해보기
생각해보기
CHAPTER 9 구글 클라우드 플랫폼과 쿠버네티스
_9.1 구글 클라우드 플랫폼 둘러보기
__9.1.1 지속적 통합과 지속적 배포
__9.1.2 hello world 쿠버네티스
__9.1.3 클라우드 네이티브 데이터베이스 선택과 설계
_9.2 구글 클라우드 플랫폼에서의 DataOps
_9.3 머신러닝 모델 운영
_9.4 마치며
연습해보기
생각해보기
CHAPTER 10 머신러닝 상호운용성
_10.1 상호운용성이 중요한 이유
_10.2 ONNX: Open Neural Network Exchange
__10.2.1 ONNX Model Zoo
__10.2.2 파이토치를 ONNX로 변환하기
__10.2.3 텐서플로를 ONNX로 변환하기
__10.2.4 애저에서 ONNX 모델 배포
_10.3 애플의 Core ML과 ONNX
_10.4 엣지 통합
_10.5 마치며
연습해보기
생각해보기
CHAPTER 11 MLOps 명령줄 도구와 마이크로서비스 구축
_11.1 파이썬 패키징
_11.2 Requirements 파일
_11.3 명령줄 도구
__11.3.1 데이터셋 린터 생성
__11.3.2 명령줄 도구 모듈화
_11.4 마이크로서비스
__11.4.1 서버리스 기능 만들기
__11.4.2 클라우드 기능 인증
__11.4.3 클라우드 기반 명령줄 인터페이스 구축
_11.5 머신러닝 명령줄 인터페이스 워크플로
_11.6 마치며
연습해보기
생각해보기
CHAPTER 12 MLOps 실사례 연구
_12.1 머신러닝에서 무지함이 주는 뜻밖의 이점
_12.2 스포츠 소셜 네트워크의 MLOps 프로젝트
__12.2.1 기계적인 반복 작업: 데이터 라벨링
__12.2.2 인플루언서 등급
__12.2.3 인공지능 프로덕트
_12.3 현실 vs 완벽한 기술
_12.4 MLOps의 중요한 과제
__12.4.1 윤리적 문제와 의도치 않은 결과
__12.4.2 운영 능력의 부족
__12.4.3 기술력에 집중할 것인가, 비즈니스에 집중할 것인가
__[인터뷰] MLOps 실무자 피에로 몰리노
__[인터뷰] MLOps 실무자 프란체스카 라제리
_12.5 MLOps 구현을 위한 마지막 권장 사항
__12.5.1 데이터 거버넌스와 사이버보안
__12.5.2 MLOps 구축 시 자주 언급되는 개념과 도구들
_12.6 마치며
연습해보기
생각해보기
부록 A. 기술 자격증
부록 B. MLOps를 위한 기술 포트폴리오 작성 Tip
역자 소개
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |