본문 바로가기
BI/인공지능

이상적인 MLOps 엔지니어가 썼을 'MLOps 실전 가이드'

by wizmusa 2023. 7. 24.

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

 

 

 

반응형