MLOps 실전 가이드
DevOps와 MLOps의 이론과 실습부터 클라우드 컴퓨팅, AutoML, 엣지 컴퓨팅까지
저자: 노아 기프트, 알프레도 데자 / 번역: 이장후, 이일섭, 서기원, 맹윤호(감수) / 한빛미디어 2023/07/07
https://www.hanbit.co.kr/store/books/look.php?p_code=B9385341956
직업이 직업인지라 MLOps는 물론 여러 가지 인프라, 플랫폼에 대한 책은 꽤 읽은 편이다. 이 책만큼 수다스럽다고 느껴지는 책은 언뜻 기억나지가 않는다. 아래에 옮겨둔 목차를 보아도 알 수 있듯이 MLOps 엔지니어가 능숙하길 기대 받는 영역을 모두 다루었다고 해도 과언이 아니다. 코세라의 MLOps 강좌보다 많은 얘기를 한다. 현장은 코세라에서 다루고 싶어도 그러지 못할 정도로 난장판이기 때문이다.
난장판을 헤쳐왔을 저자들은 하고 싶은 말이 참 많아 보인다. 때문에 MLOps를 해볼까 하는 3년차 이내 엔지니어는 이 책을 보고 장벽을 많이 느낄 듯하다. 출간 전에 이 책을 읽은 베타리더들도 그런 걱정을 해서였는지 광범위하고 어렵게 느껴질 수 있겠지만 다양한 인사이트를 얻을 수 있다거나 다이빙 포인트를 잘 안내한다며 추천하고 있다. 이런 저런 AI 프로젝트를 벌이고 운영했던 경험을 비춰 보았을 때에 이 책이 이야기하는 주제는 2023년 기준 MLOps 기술의 합집합에 가깝다고 본다. 내가 무엇을 모르는지 자각하는 도구로 활용하길 바란다. 더불어 너무 걱정하지 않아도 좋을 게, 이 책의 저자는 두 명이고 모두 말이 많은 직업을 가졌다. 저자들의 해박함에 기가 죽을 필요는 없다. 저걸 한가하게 혼자서 다 하게 하는 조직은 없다.
소소하게 이 책을 소화할 팁을 더해보고자 한다. 쿠버네티스를 마스터하고 이 책을 볼 필요는 없지만 ssh가 뭔지는 알고 도커가 뭔지는 알아야 시작이 가능하다. ONNX가 뭔지 모르면 곤란하다. 어디 블로그를 통하든 뭘 하든 텐서플로나 파이토치로 모델을 만들어 학습하고 API를 띄우는 예제는 실행하며 대략적은 구조는 알아야 이 책을 훑어보는 게 가능하다. Google Colab으로도 할 수 있는 범위다. 이 정도를 할 줄 알면 무슨 얘기인지 도저히 이해가 가지 않는 용어들이 나와도 일단 한 번 완독하는 게 좋겠다. 양산형 인공지능 도서들과는 달리 저자들이 한두 달만에 익힌 경험을 책으로 옮긴 게 아니므로 한번에 이해가 가지 않는 게 당연하다. 회사 자원을 잘 써서 실습을 꼭 해야 자기 것이 되니 눈치 잘 보면서 꼭 클라우드에서 돌려보길 바란다.
안타깝게도 학생은 클라우드 환경에서 실습하기가 꽤 힘들다. 웹 서버 좀 돌려보기와는 차원이 다르게 돈이 나간다. 퍼블릭 클라우드 계정을 계속 만들어 쓰든 어떻게든 무료 포인트를 잘 받아서 일부라도 돌려보면 도움이 크게 되겠다. 취업을 위해서 이걸 다 해내려고 들지는 않는 게 좋겠다. 정말 불가능하다고 단언한다. 왜 해야 하는지 모르기 때문이다. 행여 주니어에게 MLOps 전반적으로 능숙하길 바라는 정신 나간 조직은 피해야 한다. 학생은 앞서 얘기한 것에 이어서 MLflow, BentoML에 Yatai까지만 돌려볼 줄 알아도 사랑 받을 만하다. MLOps도 좋지만 리눅스 OS, 리눅스로 다루는 네트워크, 도커 기술에 친숙해지는 게 더 우선이다. 그걸 모르는 조직 역시 당장은 급해도 피하는 게 낫다. 건투를 빈다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
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
'BI > 인공지능' 카테고리의 다른 글
기본기부터 심화까지 '핸즈온 머신러닝' (1) | 2023.10.28 |
---|---|
정말 쉽게 다가오는 '박태웅의 AI 강의' (1) | 2023.07.08 |
당신이 생각하는 식으로 인류는 절멸하지 않는다 (0) | 2023.07.04 |