텐서플로, 파이토치의 속도를 높이는 분산 라이브러리
파이썬 프로젝트를 쉽게 확장하는 오픈 소스 분산 컴퓨팅 프레임워크 레이를 시작하세요. 이 책은 파이썬 프로그래머와 데이터 엔지니어, 데이터 과학자가 로컬에서 레이를 활용하고 컴퓨팅 클러스터를 구성하는 방법을 소개합니다. 레이를 이용하여 대규모 머신러닝 프로그램을 구조화하고 실행하는 방법을 익혀보세요. 레이가 머신러닝에서 어떤 위치를 차지하고 있으며 다른 도구와 어떻게 밀접하게 통합되는지 이해할 수 있습니다. 레이를 사용하면 복잡하게만 느껴지던 분산 컴퓨팅이 훨씬 쉬워질 겁니다.
Chapter 1 레이 살펴보기
1.1 레이는 무엇인가?
_1.1.1 레이가 추구하는 목적
_1.1.2 레이의 디자인 철학
_1.1.3 레이의 3가지 계층: 코어, 라이브러리, 생태계
1.2 분산 컴퓨팅 프레임워크
1.3 데이터 과학 라이브러리
_1.3.1 데이터 과학 워크플로
_1.3.2 데이터 처리
_1.3.3 모델 학습
_1.3.4 하이퍼파라미터 튜닝
_1.3.5 모델 서빙
1.4 성장하는 생태계
1.5 요약
Chapter 2 레이 코어로 시작하는 분산 컴퓨팅
2.1 레이 코어 소개
_2.1.1 레이 API를 활용한 첫 번째 예시
_2.1.2 레이 API 개요
2.2 레이 시스템 컴포넌트
_2.2.1 노드에서 태스크 스케줄링 및 실행
_2.2.2 헤드 노드
_2.2.3 분산된 스케줄링과 실행
2.3 레이를 사용한 간단한 맵리듀스 예시
_2.3.1 매핑과 셔플
_2.3.2 단어 수 축소(리듀스 단계)
2.4 요약
Chapter 3 분산 애플리케이션 개발
3.1 강화학습 소개
3.2 간단한 미로 문제 설정
3.3 시뮬레이션 구현
3.4 강화학습 모델 훈련
3.5 레이 분산 애플리케이션 구축
3.6 강화학습 용어 요약
3.7 요약
Chapter 4 레이 RLlib을 활용한 강화학습
4.1 RLlib 개요
4.2 RLlib 시작하기
_4.2.1 Gym 환경 구축
_4.2.2 RLlib CLI
_4.2.3 RLlib 파이썬 API
4.3 RLlib 실험 구성
_4.3.1 리소스 구성
_4.3.2 롤아웃 워커 구성
_4.3.3 환경 구성
4.4 RLlib 환경
_4.4.1 RLlib 환경 개요
_4.4.2 다중 에이전트
_4.4.3 정책 서버와 클라이언트 작동
4.5 고급 개념
_4.5.1 고급 환경 구축
_4.5.2 커리큘럼 학습 적용
_4.5.3 오프라인 데이터 작업
_4.5.4 다른 고급 주제
4.6 요약
Chapter 5 레이 튠을 활용한 하이퍼파라미터 최적화
5.1 하이퍼파라미터 튜닝
_5.1.1 레이를 사용한 랜덤 서치
_5.1.2 HPO가 어려운 이유
5.2 튠 소개
_5.2.1 튠의 작동 방식
_5.2.2 튠의 구성과 실행
5.3 튠을 활용한 머신러닝
_5.3.1 튠을 활용한 RLlib
_5.3.2 케라스 모델 튜닝
5.4 요약
Chapter 6 레이 데이터셋을 활용한 데이터 분산 처리
6.1 레이 데이터셋
_6.1.1 레이 데이터셋 기초
_6.1.2 레이 데이터셋 연산
_6.1.3 데이터셋 파이프라인
_6.1.4 예시: 병렬 분류기 복사본 훈련
6.2 외부 라이브러리 통합
6.3 머신러닝 파이프라인 구축
6.4 요약
Chapter 7 레이 트레인을 활용한 분산 모델 훈련
7.1 분산 모델 훈련의 기초
7.2 예시를 통한 레이 트레인 소개
_7.2.1 뉴욕시 택시 승차 시 팁 예측
_7.2.2 로드, 전처리, 피처화
_7.2.3 딥러닝 모델 정의
_7.2.4 레이 트레인을 활용한 모델 훈련
_7.2.5 분산 배치 추론
7.3 레이 트레인의 트레이너
_7.3.1 레이 트레인으로 마이그레이션
_7.3.2 트레이너 스케일 아웃
_7.3.3 레이 트레인을 활용한 전처리
_7.3.4 트레이너와 레이 튠의 통합
_7.3.5 콜백을 사용한 학습 모니터링
7.4 요약
Chapter 8 레이 서브를 활용한 온라인 추론
8.1 온라인 추론의 주요 특징
_8.1.1 계산 집약적 머신러닝 모델
_8.1.2 고립된 상태에서 유용하지 않은 머신러닝 모델
8.2 레이 서브 소개
_8.2.1 아키텍처 개요
_8.2.2 기본 HTTP 엔드포인트 정의
_8.2.3 확장 및 리소스 할당
_8.2.4 요청 배치 처리
_8.2.5 멀티모델 추론 그래프
8.3 엔드 투 엔드 예시: 자연어 처리 기반 API 구축
_8.3.1 콘텐츠 가져오기 및 전처리
_8.3.2 NLP 모델
_8.3.3 HTTP 처리 및 드라이버 로직
_8.3.4 통합
8.4 요약
Chapter 9 레이 클러스터를 활용한 스케일링
9.1 수동으로 레이 클러스터 생성
9.2 쿠버네티스에 배포
_9.2.1 첫 번째 쿠브레이 클러스터 설정
_9.2.2 쿠브레이 클러스터와 상호작용
_9.2.3 쿠브레이 노출
_9.2.4 쿠브레이 구성
_9.2.5 쿠브레이 로깅 구성
9.3 레이 클러스터 런처
_9.3.1 레이 클러스터 구성
_9.3.2 클러스터 런처 CLI
_9.3.3 레이 클러스터와 상호작용
9.4 클라우드 클러스터
_9.4.1 AWS
_9.4.2 기타 클라우드 제공자
9.5 오토스케일링
9.6 요약
Chapter 10 레이 AIR로 구성하는 데이터 과학 워크플로
10.1 AIR를 사용하는 이유
10.2 예시로 살펴보는 AIR의 핵심
_10.2.1 레이 데이터셋과 전처리기
_10.2.2 트레이너
_10.2.3 튜너와 체크포인트
_10.2.4 배치 예측기
_10.2.5 배포
10.3 AIR에 적합한 워크로드
_10.3.1 AIR 워크로드 실행
_10.3.2 AIR 메모리 관리
_10.3.3 AIR 고장 모델
_10.3.4 AIR 워크로드 오토스케일링
10.4 요약
Chapter 11 레이 생태계와 그 너머
11.1 성장하는 생태계
_11.1.1 데이터 로드와 처리
_11.1.2 모델 훈련
_11.1.3 모델 서빙
_11.1.4 커스텀 통합
_11.1.5 레이 통합 개요
11.2 레이 외 시스템
_11.2.1 분산 파이썬 프레임워크
_11.2.2 레이 AIR와 더 넓은 생태계
_11.2.3 AIR를 머신러닝 플랫폼에 통합하는 방법
11.3 앞으로 살펴볼만한 주제
11.4 요약
* 파이썬에 쉽고 빠른 병렬화를 구현하는 레이를 만나다.
머신러닝 시스템은 훈련에 많은 양의 데이터를 사용하며 모델의 크기는 점점 커지고 있다. AI 시스템에 필요한 연산의 수가 초당 1000조 회를 넘어가는 시점에서 분산 컴퓨팅은 절대적으로 필요하다. 레이는 분산 컴퓨팅 전용 파이썬 라이브러리로, 간단한 코드 변경으로 빠른 병렬화와 확장 가능한 분산 처리를 지원한다. 소규모 작업부터 대규모 클러스터까지 다양한 규모에서 높은 성능을 제공하며, API의 범위도 유연해 다양한 상황에 사용할 수 있다. 특히 텐서플로나 파이토치 같은 라이브러리와의 통합을 지원해 데이터 과학자에게도 유용하다.
이 책은 레이를 사용해 강력한 분산 애플리케이션과 모델을 구축하는 방법을 소개한다. 독자가 직접 흥미로운 프로젝트를 구현하며, 레이를 구성하는 각 라이브러리의 기능과 적용 분야를 알 수 있도록 구성에 더 복잡한 상황에 레이를 적용할 자신감을 심어준다. 이 책을 통해 레이의 잠재력을 발견해 병렬화를 구현해보자.
대상 독자
배우는 내용
이 책의 구성
1장부터 3장까지는 분산 파이썬 프레임워크로서의 레이를 살펴보며 실질적인 예시를 통해 기본적인 개념을 배웁니다. 4장부터 10장까지는 레이 RLlib, 레이 튠, 레이 데이터셋, 레이 트레인 등 레이 생태계를 구성하는 하이레벨 라이브러리를 알아보고, 이를 사용해 애플리케이션을 만드는 방법을 배웁니다. 마지막 장에서는 레이의 생태계에 대한 종합적인 개요와 더 나아가는 방법을 안내합니다.
옮긴이의 말
레이는 소프트웨어 레이어뿐 아니라 인프라 레이어까지도 빠르게 통합을 이루어내는 가장 훌륭한 분산 시스템 추상화입니다. 이 책을 읽으시는 여러분도 제가 발견한 레이의 잠재력과 가능성을 만나길 바라며, 지금까지 풀기 힘들었던 문제를 해결하는 계기가 되었으면 합니다.
김완수