책소개
"머신러닝의 급속한 발전과 함께 데이터와 트래픽이 폭발적으로 증가하면서, 단순히 성능 향상뿐 아니라 안정적이고 확장 가능한 시스템 설계가 중요해지고 있다. 이에 본 책은 대규모 머신러닝 시스템을 설계하고 운영하기 위한 14가지 실용적인 설계 패턴을 소개하고, 실무에서 빈번히 발생하는 문제와 해결책을 제시한다. 또한 텐서플로, 쿠버네티스, 쿠브플로, 아르고 워크플로 등 클라우드 기반의 최신 도구를 활용한 실무 예제를 통해 이론과 실무를 함께 학습할 수 있도록 구성했다. 특히 시스템 장애나 과부하 상황에서의 대처 방안, 효율적인 자원 관리를 상세히 다룸으로써 실무자들의 기술적 문제 해결 역량을 높이는 데 중점을 두었다. 복잡해지는 머신러닝 시스템의 난관을 뚫고 나아가려는 모든 개발자에게 이 한 권이 길잡이가 될 것이다.
14가지 패턴
●데이터 수집 패턴: 배치 처리, 샤딩, 캐싱
●분산 학습 패턴: 파라미터 서버, 집합 통신, 탄력성 및 내결함성
●모델 서빙 패턴: 레플리카 서버, 서비스 샤딩, 이벤트 기반 처리
●워크플로 패턴: 팬인 및 팬아웃, 동기 및 비동기, 스텝 메모이제이션
●운영 패턴: 스케줄링, 메타데이터"
저자소개
"(Yuan Tang)
Akuity의 창립 엔지니어로, 개발자를 위한 기업용 플랫폼을 구축하고 있다. 이전에 알리바바와 Uptake에서 데이터 과학 및 엔지니어링팀을 이끌며 AI 인프라와 AutoML 플랫폼 개발에 주력했다. 아르고(Argo)와 쿠브플로(Kubeflow)의 프로젝트 리더이자 텐서플로(TensorFlow)와 XGBoost의 메인테이너로 활동 중이며, 이 외에도 다양한 오픈 소스 프로젝트를 만들어 운영 중이다. 세 권의 머신러닝 서적을 집필하고 여러 논문을 발표했다. 다양한 콘퍼런스에서 정기적으로 다양한 발표를 정기적으로 진행하고 있으며, 여러 조직에서 기술 자문과 리더, 멘토 역할을 수행하고 있다."
목차
"[PART 1 분산 머신러닝 시스템의 배경지식]
CHAPTER 01 분산 머신러닝 시스템 소개
_1.1 대규모 머신러닝
_1.2 분산 시스템
_1.3 분산 머신러닝 시스템
요약
[PART 2 분산 머신러닝 시스템의 설계 패턴]
CHAPTER 02 데이터 수집 패턴
_2.1 데이터 수집이란?
_2.2 Fashion-MNIST 데이터셋
_2.3 배치 처리 패턴: 제한된 메모리로 무거운 연산 실행하기
_2.4 샤딩 패턴: 매우 큰 데이터셋을 여러 워커에 분산시키기
_2.5 캐싱 패턴: 효율적인 학습을 위해 데이터 재활용하기
요약
CHAPTER 03 분산 학습 패턴
_3.1 분산 학습이란?
_3.2 파라미터 서버 패턴: 8백만 개의 유튜브 영상에 태그 달기
_3.3 집합 통신 패턴: 파라미터 서버가 병목이 되지 않도록 개선하기
_3.4 탄력성 및 내결함성 패턴: 제한된 연산 자원으로 인한 실패 대응하기
요약
CHAPTER 04 모델 서빙 패턴
_4.1 모델 서빙이란?
_4.2 레플리카 서버 패턴: 늘어나는 요청량 처리하기
_4.3 서비스 샤딩 패턴: 고해상도 영상을 처리하는 대규모 모델 서빙 다루기
_4.4 이벤트 기반 처리 패턴: 이벤트 기반으로 모델 서빙하기
요약
CHAPTER 05 워크플로 패턴
_5.1 워크플로란?
_5.2 팬인 및 팬아웃 패턴: 복잡한 머신러닝 워크플로 체계화
_5.3 동기 및 비동기 패턴: 병렬성으로 더 빠르게 처리하기
_5.4 스텝 메모이제이션 패턴: 반복되는 작업 생략하기
요약
CHAPTER 06 운영 패턴
_6.1 머신러닝 시스템 운영하기
_6.2 스케줄링 패턴: 공유 클러스터 자원을 효과적으로 할당하기
_6.3 메타데이터 패턴: 실패를 적절히 처리하는 방법
요약
[PART 03 분산 머신러닝 시스템 구축]
CHAPTER 07 실습 프로젝트 둘러보기
_7.1 프로젝트 개요
_7.2 데이터 수집 단계
_7.3 모델 학습 단계
_7.4 모델 서빙 단계
_7.5 전체 워크플로 구조
요약
CHAPTER 08 실습 관련 기술 둘러보기
_8.1 텐서플로: 머신러닝 프레임워크
_8.2 쿠버네티스: 분산 컨테이너 관리 시스템
_8.3 쿠브플로: 쿠버네티스 머신러닝 워크로드 관리 시스템
_8.4 아르고 워크플로: 컨테이너 기반 워크플로 엔진
요약
CHAPTER 09 실습 프로젝트
_9.1 데이터 수집
_9.2 모델 학습
_9.3 모델 서빙
_9.4 전체 워크플로
요약"