리뷰/IT_책소개 / / 2024. 12. 29. 22:36

대규모 머신러닝 시스템 디자인 패턴 : 한빛미디어

반응형

 

대규모 머신러닝 시스템 디자인 패턴

위안탕 지음

정민정 옮김

 

이번 책은 "대규모 머신러닝 시스템 디자인 패턴" 이라는 책 입니다.

책 제목 처럼, 단순히 설치하여 사용만 하는 그런 머신러닝이 아니라 방대한 데이터와 복잡한 대규모 머신러닝 모델을 안정적으로 운영하는 시스템 구축을 위한 가이드 제공을 목적으로 하고 있는 책 입니다.

대규모에 적합한 패턴 들에 대한 장단점을 분석하고 실제 적용사례를 통해서 실무에 바로 적용할 수 있도록 구성되어 있습니다.

대규모 시스템에 대한 부분이기에 분산 머신러닝 시스템에 대해서 다루고 있습니다.

 

 

책에 나오는 코드는 아래 경로에서 받을 수 있습니다.

https://github.com/terrytangyuan/distributed-ml-patterns

 

GitHub - terrytangyuan/distributed-ml-patterns: Distributed Machine Learning Patterns from Manning Publications by Yuan Tang htt

Distributed Machine Learning Patterns from Manning Publications by Yuan Tang https://bit.ly/2RKv8Zo - terrytangyuan/distributed-ml-patterns

github.com

 

 

 

[ 대상 독자 ]

 

이 책은 머신 러닝에 대한 기초 또는 기본서는 아니기에 관련 분야에 대해 기본 학습을 하였거나, 실제 필드에서 일하고 있는 엔지니어를 대상으로 하고 있습니다.

 

[ 책 구성 ]

이 책은 총 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

 

대규모 머신러닝 시스템 디자인 패턴

14가지 패턴으로 대규모 머신러닝 시스템을 완성하라!

www.hanbit.co.kr

 

"한빛미디어 <나는리뷰어다> 활동을 위해 책을 제공받아 작성된 서평입니다."
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유