대규모 머신러닝 시스템 디자인 패턴
위안탕 지음
정민정 옮김
이번 책은 "대규모 머신러닝 시스템 디자인 패턴" 이라는 책 입니다.
책 제목 처럼, 단순히 설치하여 사용만 하는 그런 머신러닝이 아니라 방대한 데이터와 복잡한 대규모 머신러닝 모델을 안정적으로 운영하는 시스템 구축을 위한 가이드 제공을 목적으로 하고 있는 책 입니다.
대규모에 적합한 패턴 들에 대한 장단점을 분석하고 실제 적용사례를 통해서 실무에 바로 적용할 수 있도록 구성되어 있습니다.
대규모 시스템에 대한 부분이기에 분산 머신러닝 시스템에 대해서 다루고 있습니다.
책에 나오는 코드는 아래 경로에서 받을 수 있습니다.
https://github.com/terrytangyuan/distributed-ml-patterns
[ 대상 독자 ]
이 책은 머신 러닝에 대한 기초 또는 기본서는 아니기에 관련 분야에 대해 기본 학습을 하였거나, 실제 필드에서 일하고 있는 엔지니어를 대상으로 하고 있습니다.
[ 책 구성 ]
이 책은 총 9개의 장으로 구성되어 있습니다.
1장, 분산 머신러닝 시스템의 배경지식
이 장의 내용
- 대규모 머신러닝 애플리케이션을 다루는 방법에 대해 알아본다.
- 안정적이고 확장이 쉬운 분산 시스템을 구축하기 위한 디자인 패턴을 알아본다.
- 분산 시스템 설계에 일반적으로 사용되는 디자인 패턴을 분산 머신러닝 시스템에 적용하여
확장과 재사용을 용이하게 하는 방법을 알아본다.
2장 ~ 6장 까지는 분산 머신러닝 시스템의 설계 패턴을 학습하기 위한 장으로 여러패턴에 대해 소개하고 있습니다.
2장, 데이터 수집 패턴
이 장의 내용
- 데이터 수집 단계의 역할과 주요 작업을 알아본다.
- 대규모 데이터셋을 작은 배치로 쪼갠 뒤 메모리에서 처리하는 배치 처리 패턴을 알아본다.
- 매우 큰 데이터셋을 작은 조각으로 나누고 여러 대의 서버를 활용해 처리하는 샤딩 패턴을 알아본다.
- 학습을 반복적으로 진행하는 과정에서 데이터셋을 효율적으로 재사용하기 위한 캐싱 패턴을 알아본다.
3장, 분산 학습 패턴
이 장의 내용
- 전통적인 모델 학습과 분산 과정이 어떻게 다른지 알아본다.
- 단일 서버에 들어갈 수 없을 정도로 거대한 모델을 구축하기 위해 파라미터 서버를 어떻게 사용하는지에 대해 배운다.
- 집합 통신 패턴으로 분산 모델 학습 과정을 개선하는 방법에 대해 알아본다.
- 분산 모델 학습 과정에서 예기치 못한 문제가 발생하는 경우 이를 대응하는 방법을 알아본다.
4장, 모델 서빙 패턴
이 장의 내용
- 학습된 모델에 새로운 데이터를 입력해 예측하거나 추론할 수 있도록 서빙하는 방법을 알아본다.
- 여러 개의 모델 서버를 활용하는 수평 스케일링 방식으로 많은 요청을 안정적으로 처리하는 방법을 알아본다.
- 많은 요청을 처리하기 위해 활용할 수 있는 서비스 샤딩 패턴을 알아본다.
- 이벤트 기반으로 처리하는 시스템 구조를 알아보고 기존 디자인가 비교해본다.
5장, 워크플로 패턴
이 장의 내용
- 머신러닝 시스템의 각 구성 요소를 연결하기 위한 워크플로를 알아본다.
- 복잡한 머신러닝 워크플로를 안정적으로 운영하기 위해 팬인 및 팬아웃 패턴을 활용하는 방법을 알아본다.
- 동기 및 비동기 패턴을 활용해 머신러닝 시스템을 가속화하는 방법을 알아본다.
- 스텝 메모이제이션 패턴을 활용해 성능을 개선하는 방법에 대해 알아본다.
6장, 운영 패턴
이 장의 내용
- 배치 스케쥴링 혹은 메타데이터 관리를 보다 효율적으로 하기 위한 방법을 알아본다.
- 공정 배분 스케쥴링, 우선순위 스케쥴링, 갱 스케쥴링 등 스케쥴링 기법을 활용해서 자원 고갈이나 데드락 상태를 방지하는
방법을 알아본다.
- 메타데이터 패턴을 활용해서 실패 상황을 더 효과적으로 대응하고 고객이 격는 불편을 최소화하는 방법을 알아본다.
7장 ~ 9장 까지는 분산 머신러닝 시스템 구축 파트로 이전에 학습한 패턴들을 적용하여 실습해 볼 수 있습니다.
7장, 실습 프로젝트 둘러보기
이 장의 내용
- 전반적인 시스템의 설계와 구조를 알아본다.
- 여러 에포크를 걸쳐 학습하기 위핸 데이터 수집 단계를 최적화한다.
- 부하를 최소화하기 위한 분산 모델 학습 전략을 알아본다.
- 고성능 모델 서빙을 위한 모델 서버 레플리카를 추가하는 방법을 알아본다.
- 머신러닝 시스템의 전체 워크플로를 가속화하는 방법을 알아본다.
8장, 실습 관련 기술 둘러보기
이 장의 내용
- 텐서플로를 활용해 모델을 만드는 방법을 익힌다.
- 쿠버네티스의 주요 활용 방법을 알아본다.
- 쿠브플로를 활용한 분산 머신러닝 워크플로 실행 방법을 알아본다.
- 아르고 워크플로를 활용해 컨테이너 기반의 워크플로를 배포하는 방법을 알아본다.
9장, 실습 프로젝트
이 장의 내용
- 텐서플로를 활용해 데이터 수집 시스템을 구현한다.
- 머신러닝 모델을 정의하고 분산 모델 학습을 실행한다.
- 단일 모델 서버와 레플리카 서버를 구현한다.
- 효율적인 머신러닝 시스템의 전체 워크플로를 구축한다.
책 중간 중간에 필요에 따라 많은 그림과 표를 이용하여 내용을 이해하는데 많은 도움을 주고 있습니다.
각 장의 마지막에 "요약" 부분을 두었는데, 각 장에 대한 요약이라기 보다 각 장의 학습을 통해 알고자 하는 목표가 정의되어 있어서
"요약" 부분을 먼저 확인 한 후 각 장을 학습하는 것도 좋을 것 같습니다.
각 섹션에서 필요에 따라 "예제" 부분을 두어 학습 후 한번 더 생각해 볼 수 있도록 제공 하고 있습니다.
정답은 장 마지막에 "예제 정답" 부분이 정리되어 있습니다.
[ 결론 ]
대규모 머신러닝 시스템에 대해서 간접적으로 경험할 수 있는 기회를 주는 책 입니다.
기본 지식이 없이 깊이 있게 이해하기 힘들 수 있지만,
최대한 쉽게 풀어서 설명하고 있기에 기본 지식이 없어도 한번 학습해 볼 수 있는 책입니다.
https://www.hanbit.co.kr/store/books/look.php?p_code=B3893502217
"한빛미디어 <나는리뷰어다> 활동을 위해 책을 제공받아 작성된 서평입니다." |
'리뷰 > IT_책소개' 카테고리의 다른 글
O'REILLY 밑바닥부터 시작하는 딥러닝5 : 한빛미디어 (1) | 2024.11.26 |
---|---|
O'REILLY 이펙티브 러스트 : 한빛미디어 (3) | 2024.10.27 |
O'REILLY AI를 위한 필수 수학 : 한빛미디어 (1) | 2024.09.29 |
네트워크 인프라 자동화 : 한빛미디어 (1) | 2024.08.26 |
보고혁명 : 한빛미디어 (1) | 2024.07.29 |
실전 레디스 : 한빛미디어 (0) | 2024.06.29 |
그림으로 배우는 스프링6 입문 : 한빛미디어 (0) | 2024.04.27 |
게임 AI를 위한 탐색 알고리즘 입문 : 한빛미디어 (0) | 2024.03.24 |
LARGE LANGUAGE MODELS : 한빛미디어 (0) | 2024.02.26 |
신비로운 전자부품 매크로 포토그래피 : 한빛미디 (1) | 2023.12.26 |