리뷰/도서, 강의 리뷰

[도서 리뷰] 대규모 머신러닝 시스템 디자인 패턴

백악기작은펭귄 2024. 12. 29.
반응형

*한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

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

위안 탕 지음
정민정 옮김

 

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

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

www.hanbit.co.kr


간단 서평

나는 AI 엔지니어로서의 실무 경험도 소규모 초기 스타트업이 전부이고, 학사 졸업 직후 대학원에 진학을 하다 보니 대규모 데이터가 오고 가는 환경에서 머신러닝 모델을 운영해 볼 기회가 거의 없었다. 특히나 대규모 데이터의 효율적 처리나 엄격한 기술적 완성도보다 사용자 중심의 접근을 더 중요시하는 HCI 분야로 진학한 지금은 단일 GPU나 로컬 환경에서의 모델 개발 및 운영으로도 충분했기에 사실상 대규모 데이터와 분산 처리의 실질적인 필요성을 체감할 기회가 많지 않았다. 하지만 언젠가는 그런 경험을 하게 될 것이기 때문에 언제나 이러한 지식을 습득하고자 함에 목이 말랐었다. 대규모 분산처리를 경험해보고 싶지만 기회도 없을뿐더러, 어디부터 시작해야 할지 몰라 막막했었다.

 

이 책은 그런 나의 갈증을 해소해 준 책이다. 대규모 머신러닝 시스템을 설계하고 운영하는 데 있어 반드시 필요한 14가지 설계 패턴을 체계적으로 다루고 있다. 데이터 수집, 분산 학습, 모델 서빙, 워크플로, 운영의 전 과정에 걸쳐 실질적인 예제와 함께 최신 도구를 활용한 구현 방법까지 상세히 설명해 실무 중심의 접근법을 제시한다.

 

특히, 분산 처리와 확장성을 중심으로 데이터의 폭발적 증가와 복잡한 연산이 요구되는 현대의 머신러닝 시스템에서 발생할 수 있는 다양한 문제를 해결하는 실용적인 가이드를 제공한다는 점에서 매력적이다. 예를 들어, 파라미터 서버 패턴과 같은 분산 학습 패턴은 제한된 자원으로 고효율의 학습을 수행할 수 있는 방법을 제시하며, 스케줄링 및 메타데이터 관리 패턴은 시스템 장애 상황에서의 대처와 안정성을 높이는 데 유용하다.

 

이 책에서 가장 인상 깊었던 부분은 복잡한 머신러닝 워크플로를 체계적으로 관리할 수 있는 팬인 및 팬아웃 패턴과 스텝 메모이제이션 패턴이다. 이를 통해 중복 작업을 최소화하고 병렬 처리를 활용하여 업무 효율성을 극대화하는 방법을 배울 수 있었다. 이러한 패턴은 대규모 시스템이 아니더라도, 반복적이고 비효율적인 작업을 최소화하거나, 병렬 처리를 활용해 학습 속도를 높이는 데 바로 적용할 수 있는 유용한 패턴이었기에 연구 단계에서도 충분히 응용 가능할 것이라는 생각이 들었다.

 

이처럼, 대규모 시스템 운영 경험이 없는 나에게도 이 책이 주는 가치는 분명했다. 분산 학습과 같은 개념이 연구 환경에서는 멀게 느껴질 수 있지만, 실제로는 현대 머신러닝이 직면한 핵심 문제들을 해결하기 위한 기본적인 접근 방식임을 깨달았다. 특히, 아르고 워크플로(Argo Workflows)와 같은 도구를 활용해 작업 흐름을 자동화하고 최적화하는 방법은 앞으로의 연구 및 시스템 개발에서 실질적인 도움이 될 것이라 생각한다.

[도서 리뷰] 대규모 머신러닝 시스템 디자인 패턴 - 간단 서평
쿠버네티스 상에서 워크플로를 정의하고 실행할 수 있도록 지원하는 컨테이너 기반 워크플로 엔진인 아르고 워크플로우(Argo workflow). 주로 데이터 처리 파이프라인, 머신러닝 워크플로, CI/CD 작업 자동화에 활용된다.

 

이 책은 단순히 실무자들만을 위한 것이 아니라, 연구자로서도 머신러닝 시스템의 확장성과 안정성을 고려한 설계에 대해 배울 수 있는 훌륭한 가이드가 되어준다. 대규모 데이터 처리와 시스템 설계의 복잡성을 이해하고 싶은 연구자나 실무자 모두에게 추천하고 싶다.


목차

[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 전체 워크플로
요약

반응형

댓글