한빛출판네트워크

IT/모바일

러닝 레이

대규모 모델 훈련에 효율적인 라이브러리로 빠르게 구현하는 파이썬 분산 처리

한빛미디어

번역서

판매중

러닝 레이
좋아요: 1
  • 저자 : 에드워드 옥스 , 리처드 리우 , 막스 펌펄라
  • 역자 : 김완수
  • 출간일 : 2024-01-29
  • 페이지 : 292쪽
  • ISBN : 9791169211949
  • 물류코드 :11194

합계 : 22,500

  •  

    텐서플로, 파이토치의 속도를 높이는 분산 라이브러리

     

    파이썬 프로젝트를 쉽게 확장하는 오픈 소스 분산 컴퓨팅 프레임워크 레이를 시작하세요. 이 책은 파이썬 프로그래머와 데이터 엔지니어, 데이터 과학자가 로컬에서 레이를 활용하고 컴퓨팅 클러스터를 구성하는 방법을 소개합니다. 레이를 이용하여 대규모 머신러닝 프로그램을 구조화하고 실행하는 방법을 익혀보세요. 레이가 머신러닝에서 어떤 위치를 차지하고 있으며 다른 도구와 어떻게 밀접하게 통합되는지 이해할 수 있습니다. 레이를 사용하면 복잡하게만 느껴지던 분산 컴퓨팅이 훨씬 쉬워질 겁니다.

     

    700_상세이미지_러닝 레이.jpg

  • [저자] 막스 펌펄라

    독일 함부르크에 사는 데이터 과학 교수이자 소프트웨어 엔지니어입니다. 매우 적극적인 오픈소스 기여자이며 여러 파이썬 패키지의 메인테이너로 활동 중입니다. 현재 애니스케일에서 소프트웨어 엔지니어로 일하고 있습니다. 이전에는 패스마인드의 제품 연구 책임자로서 레이 RLlib, 서브, 튠을 활용해 대규모 산업 애플리케이션을 위한 강화학습 설루션을 개발했으며, 스카이마인드에서 DL4J의 개발에 중요한 역할을 맡았습니다. 또한, 케라스 생태계의 성장과 확장을 도왔으며 하이퍼옵트의 메인테이너입니다.

     

    [저자] 에드워드 옥스

    애니스케일의 소프트웨어 엔지니어이자 레이 서브 개발을 주도하는 팀의 리더이며 레이 오픈소스 기여자입니다. 애니스케일에서 근무하기 전에는 UC 버클리의 EECS에서 학위를 수료했습니다.

    [저자] 리처드 리우

    애니스케일의 소프트웨어 엔지니어이며 분산 머신러닝을 위한 오픈소스 도구를 연구하고 있습니다. UC 버클리 컴퓨터 과학과의 박사 과정에서 휴학 중으로 조셉 곤잘레스와 이온 스토이카, 켄 골드버그의 지도를 받고 있습니다.

    [역자] 김완수

    AI 교육 스타트업 뤼이드에서 근무하고 있으며, 하이퍼옵트의 메인테이너로 활동했습니다. 선언적이면서 멱등성을 보장하고 재현 가능한 특성을 가진 소프트웨어를 매우 선호합니다. 오픈소스 생태계를 사랑하는 마음으로 주제를 가리지 않고 다양한 오픈소스 프로젝트에 적극적으로 기여하고 있습니다. 최근에는 특히 VIM과 Nix 생태계에 많은 관심을 두고 지켜보고 있습니다. 개인 개발 환경의 생산성 향상을 위해 회사 업무로 할 수 없는 극단적인 오버 엔지니어링과 자동화가 취미이며, 여가 활동으로 커스텀 키보드 제작을 즐깁니다.

  • 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의 범위도 유연해 다양한 상황에 사용할 수 있다. 특히 텐서플로나 파이토치 같은 라이브러리와의 통합을 지원해 데이터 과학자에게도 유용하다.

     

    이 책은 레이를 사용해 강력한 분산 애플리케이션과 모델을 구축하는 방법을 소개한다. 독자가 직접 흥미로운 프로젝트를 구현하며, 레이를 구성하는 각 라이브러리의 기능과 적용 분야를 알 수 있도록 구성에 더 복잡한 상황에 레이를 적용할 자신감을 심어준다. 이 책을 통해 레이의 잠재력을 발견해 병렬화를 구현해보자.


    대상 독자

    • 데이터 과학과 머신러닝에 레이를 사용하려는 데이터 관련 종사자
    • 파이썬으로 분산 컴퓨팅을 구현하는 방법이 궁금한 개발자

     

    배우는 내용

    • 하이퍼파라미터 최적화를 시행하는 레이 튠
    • 강화학습을 수행하는 레이 RLlib
    • 분산 훈련을 지원하는 레이 트레인
    • 대용량 데이터를 처리하는 레이 데이터셋
    • 머신러닝 애플리케이션을 구축하는 레이 AIR

     

    이 책의 구성

    1장부터 3장까지는 분산 파이썬 프레임워크로서의 레이를 살펴보며 실질적인 예시를 통해 기본적인 개념을 배웁니다. 4장부터 10장까지는 레이 RLlib, 레이 튠, 레이 데이터셋, 레이 트레인 등 레이 생태계를 구성하는 하이레벨 라이브러리를 알아보고, 이를 사용해 애플리케이션을 만드는 방법을 배웁니다. 마지막 장에서는 레이의 생태계에 대한 종합적인 개요와 더 나아가는 방법을 안내합니다.

     

    옮긴이의 말

    레이는 소프트웨어 레이어뿐 아니라 인프라 레이어까지도 빠르게 통합을 이루어내는 가장 훌륭한 분산 시스템 추상화입니다. 이 책을 읽으시는 여러분도 제가 발견한 레이의 잠재력과 가능성을 만나길 바라며, 지금까지 풀기 힘들었던 문제를 해결하는 계기가 되었으면 합니다.

    김완수

    • Ray는 Python으로 작성되어 있으며, TensorFlow, PyTorch와 같은 다른 ML 프레임워크와의 호환성이 뛰어나면서 이미 구축된 ML 솔루션에 쉽게 통합할 수 있다는 느낌을 받았다.

      이 글을 읽으면서 기존의 AI 워크로드에서 Ray를 효과적으로 도입할 수 있는 방법을 알 수 있었으며 Ray를 이용하여 분산 시스템과 MLOps인프라를 구축한다는 측면에서 AI의 자원적 한계를 극복할 수 있음을 느꼈다.

      Ray를 통해 확장성을 갖추고 배포 가능한 방법으로 AI를 활용하는 것을 경험할 수 있었다. 로컬 환경이든 클라우드 환경이든, Ray를 통해 트래픽에 따라 쉽게 확장하여 안정적으로 서비스를 제공할 수 있는 방법을 익힐 수 있을것이다.

    • 이제는 단순히 머신러닝 테스크를 로컬에서 돌리는 것 자체가 무의미한 시대에 들어서고 있다. 모델 자체의 크기도 점점 커짐과 더불어, 모델을 학습시킬 데이터의 사이즈도 점점 커져간다. 그래서 이제는 뭔가 인공지능 알고리즘의 파워라기 보다는 ML 인프라를 얼마나 효율적으로 사용하느냐가 모델 성능을 좌우하는 요인 중 하나가 된 것 같다. 이런 필요성 덕분에 MLOps의 개념도 예전보다 점점 중요하게 다뤄지는 것 같다.


      이런 ML 인프라를 쉽고, 효과적으로 구축해줄 수 있는 툴이 있겠지만, 많이 사용되는 툴 중 하나가 이 책에서 다룰 Ray가 아닐까 싶다. Ray는 Large Scale ML에 대응하기 위한 분산처리 프레임워크이고, 처음에는 버클리의 RISE lab에서 open source로 운영하던 프로젝트가 현재에는 anyscale이란 회사에서 계속 운영하고 있다. 그냥 어떻게 간단하게만 보면 scalable ML platform으로만 볼 수 있겠지만, 다양한 모듈을 통해서 강화학습이나 Hyperparameter tuning, serving까지 다양한 기능을 하나의 플랫폼으로 제공하고 있다. 뭔가 현업에서 분산처리가 필요하고, 효과적인 인공지능 학습을 추구하는 일을 해야 한다면 아마 Ray는 한번쯤 들어봤을 것이다. 다만 아직까지 우리나라에서는 이를 활발하게 사용하는 사례가 아직까지는 많이 없는 것 같다.


      사실 개인적으로도 ray의 존재에 대해서는 일찍 알고 있었지만, 튜토리얼이나 공개되어 있는 예제들이 뭔가 내가 하고 있는 업무로 응용하기 어려운 부분이 있어서, 아 뭔가 한글로 된 자료나 책이 있으면 좋겠다 싶었는데, 이번에 번역본이 나왔다.


       


       


      이 책은 기본적으로 분산 학습에 대한 이해가 어느정도 되어 있다고 가정한 상태에서 Ray의 핵습 모듈인 Ray core와 Ray tune, RLlib 등의 설명과 이와 관련된 예시를 제공하고 있다. 특히 MLOps와 관련된 업무에 Ray를 적용할 경우, 뒷부분에서 다루는 분산 모델 훈련이나 스케일링, serving, 그리고 ray air를 다루는 후반부를 살펴보면 관련된 내용을 얻을 수 있을 것이다. 


      책 자체가 그렇게 두껍지 않고, 그만큼 기본적인 내용을 아는 것을 전제로 설명하고 있어 전체적으로 간결하게 내용이 구성되어 있다. 어떻게 보면 기존의 오라일리의 "Learning" 시리즈처럼 뭔가 새로운 것에 대한 설명보다는 딱 실무에 최적화되어 있는 책이라고 할 수 있다. 개인적으로는 올해 새로하는 일에 Ray RLlib과 분산 학습 환경을 구성하고자 하는 목표를 가지고 있는데, 나름 이 책을 통해서 관련 내용을 얻었고, 조금 도움을 받을 수 있을 듯 하다. 특히 RLlib과 분산 어플리케이션에 소개되어 있는 내용은 강화학습을 어떻게 분산해서 처리할 수 있을까를 고민하는 사람에게는 도움이 될만한 내용을 다루고 있다. 또한 굳이 강화학습이 아니더라도, 지도학습에서 응용할 수 있는 예제도 포함되어 있기에 포괄적으로 프레임워크를 활용해보고자 하는 사람에게는 좋을 것이다.


      책의 아쉬운 점이라면 물론 대다수의 번역본이 가지는 한계일 수 있겠지만, 원서가 나온지 1년이 되면서 ray도 같이 outdate된 점이다. 현재 2.9 버전때까지 나온 ray 인데, 책에서 다루는 ray 2.2보다는 그래도 나름의 최신 버전으로라도 책이나 예제 구성이 되었으면 좋지 않았을까 하는 내용이 조금 들긴 했다. 물론 과거 버전으로도 대부분의 기능들이 계속 유지되고 있긴 하지만 말이다. (개인적으로도 최근 rllib을 테스트하다가 numpy 버전에 따른 문제가 조금 있어서, 아마 버전에 따른 문제가 있을 것 같긴 하다..)


      이 책의 큰 의미는 ray에 대해서 처음으로 출간된 한글 번역서라는 것이다. 그동안 영어로 인해서 조금 멀게 느껴졌던 ray를 활용하기 쉬워졌다는 점에서 잘 읽었다는 생각이 들었다. 특히 번역 내용도 깔끔하고 딱 실무에 적용하게 내용이 구성되어 있던 부분이 책 분량도 그렇고 개발자가 읽기에 딱 좋았다.

      (해당 포스트에서 소개하고 있는 "러닝 레이" 책은 한빛 미디어로부터 제공받았음을 알려드립니다.)

      출처: https://talkingaboutme.tistory.com/entry/Book-Learning-Ray [자신에 대한 고찰:티스토리]

    •  사실, 분산 컴퓨팅을 프로그래밍 해야 하는 상황이 결코 흔하거나 쉬운 상황은 아니라서...비동기 프로그래밍, 스케줄링, 메모리 관리, 맵리듀스 등등 여러 기술들이 익숙치 않다면 뒷장으로 넘어가기 쉽지 않은 것 같다. 하지만 개인적으로는 머신러닝 시스템의 분산 컴퓨팅 프로그래밍에 대해 배우는 좋은 기회였다고 생각한다. 튜닝만 해봤다거나 모델 서빙만 해봤다고 하더라도 전반적으로 파이프라인의 모든 과정을 이 책과 함께 해볼 수 있었다. 분산 컴퓨팅을 하기 위해 내가 모르는 과정들이 나와도 차근차근 따라간다면 책을 다 읽고 나서는 그 개념에 이전보다 익숙해지는 점이 좋았다.

    • ML을 하면서 분산 컴퓨팅 및 HPO에 대한 필요성은 안느낄래야 안느낄 수 없는.. 반드시 알아야하는 내용중 하나라고 생각한다.

      리뷰에서는 다루지 않았지만 실제로 Ray Tune을 활용한 HPO도 존재하지만 아마 일반적으로 딥러닝을 하는 사람들이라면 Wandb Sweep, Optuna 등과 같은 툴들도 분명 들어봤을 것이다.
      하지만... 사실 Ray의 HPO툴보다는 위에서 언급한 Wandb의 sweep을 애용하지 않을까 싶긴한데... 강화학습을 다루는 분들이라면 RLlib과 함께 활용하기에는 충분히 좋아보이긴 한다.

      그리고 가장 아쉬운 점이 있었다.
      이건 이전에도 다른 책에서도 느낀것인데 책에서 제공하는 코드가 너무 오래된 것이다.
      ipynb 노트북 파일들을 보면 전부 2년전의 내용들이다.

      MLFlow를 공부하면서도 느꼈던 것은 이러한 툴들은 메인 버전뿐만이 아니라 마이너 버전이 바뀌더라도 사용법이나 종속성버전의 경우가 빠르게 바뀌고 있던 에러가 없어지기도하고 없던 에러가 발생하기도한다.

      실제로 노트북을 통해서 실습을 하는 동안 pydantic 버전이 맞지 않는다거나 기타 다른 라이브러리 에러도 많이 발생했었고, 새로운 것을 배운다는 신기함이나 재미는 있었지만, 아쉬움이 계속 느껴졌다.
      하지만 그래도 이책을 통해서  파이썬의 영원한 친구인 GIL(GIL이 삭제될 것이라는 희망적인 기사가 23년 8월에 나왔었다_링크) 때문에 고통 받았던 사람들, Multiprocess를 활용해서 병렬처리만 해보았던 사람들에게 분산 컴퓨팅 프레임워크인 Ray가 어떻게 동작하는지, 어떻게 활용하는지를 알려주는 책이 그리 많지 않다.

      기본 Document도 잘나와있다는 이야기도 있으니 책에서 아쉬은 점은 공식 Document를 참고해서 더 보도록 하자.

    • 파이썬 리소스 최적화로 성능향상에 도움을 주는 모듈 입니다. 책 내용이 1장 ~ 5장 까지 강화학습 내용을 다루고 있어서 강화학습을 활용하지 않는 분들 에게는 어려울 수 있는 책입니다.

       

      위에 해당하는 분이라면 6장 부터 내용을 보시길 추천 합니다. 생각보다 다양한 작업에 쉽게 적용할 수 있고 `FastAPI` 등 웹서비스에도 활용 가능하다는 점에서 매력을 많이 느끼실 수 있을 것입니다.

       

      ※ 본 리뷰는 IT 현업개발자가, 한빛미디어 책을 제공받아 작성한 서평입니다.

       

    • 원래 '레이'라는 라이브러리를 잘 알진 못했고 이번에 책 읽으면서 좀 들여다보게 되었는데, 이야.. 요놈 요거 야무지다..! (이전에 내가 아는 레이는 자동차밖에 없었다구..ㅜ) 무릇 라이브러리와 프레임워크가 나오는 이유자체가 사실 프로그래밍 언어로만 활용하기 어려운 기능들을 잘 엮어서 하나로 패키징 해놓은게 본질이라고 생각하는데 요 아이는 그게 꽤나 잘되어있다. 특히 최적화와 병렬학습, 스케줄링, 메모리 관리까지 원툴로 진행할 수 있다는게 정말 좋은것 같다. 물론 그와 관련된 분야도 매우 많고 나보다 잘하는 개발자도 많으니 내 지식이 부족한게 당연하겠다마는 접근성면에서 이 책정도면 너무 어렵지도 않고 너무 쉽지도 않은 적절한 난이도를 보이면서 동시에 최적화 분야에 발을 들여놓을 수 있게 해주는 것 같다. 왜 이렇게 감탄을 하는지 궁금한 사람들도 있을거다! 실제로 이 책을 읽으면서 꽤나 감탄하며 봤는데 여러분도 잘 생각해봐라. 하나의 서비스를 만든다고 했을 때 서비스가 느리면 여러분은 쓰겠는가? 에이~ 인터넷창이 5초만 늦게열려도 클릭 엄청 할텐데? 그와 관련되는 기술분야중 하나가 바로 최적화이다. 얼마나 빠르게 로드해서 유저에게 제공하는지, 내부에 사용된 기술이 엄청 헤비한데 이걸 또 속도를 개선해서 어떻게 잘 제공할 수 있는지와 같은 분야인 것이다. 그래서 되게 좋다고 생각한다. 앞서 말한 내용들이 사실 접근하기에 굉장히 까다롭고 진입장벽도 높다보니 나도 솔직히 잘 모르는 분야였거든. 특히나 8장에 보면 '레이 서브'라고 하는 온라인 추론에 관한 내용이 나오게 되는데 개인적으로 아주 흥미롭게 보았다. 나도 NLP 공부하고 모델 Inference 해서 자주 쓰지만 속도가 많이 느린경우도 꽤 허다해서 말이다. 요런 기술을 접목시켜 한번은 개선시켜볼 수 있겠다는 생각이 들더라.

       


      아 물론, 비전공자한테 추천하진 않는데 당연히 전공자가 읽어볼만한 도서이고 최적화에 관심이 있지만 어떻게 시킬 수 있을지 모르겠는 사람이나 기똥찬 라이브러리를 한번 배워보고 싶다면 읽어보는걸 추천한다. 책도 실습코드가 많아 좋은듯하다. 다만 개인적으로는 중간중간 레이 코어, 레이 서브, 클러스터등 개념을 이미지화 해서 보여주긴해도 조금 더 많이 개념을 시각화해서 보여줬음 이해하기 좋았을 것 같다. 개념 설명은 좀 많은편. 또한 바로 와닿지는 않는편이었다. 한 두번 읽어보니 '아~ 이런 개념이구나' 하는 느낌? 그래도 굉장히 추천한다!

    • "Learning Ray"는 머신러닝과 딥러닝을 위한 오픈소스 라이브러리인 Ray를 소개하는 책이다. 나는 이 책을 통해 Ray의 기본 개념부터 활용 방법까지 배우고, Ray가 머신러닝과 딥러닝 분야에서 어떻게 활용될 수 있는지 이해할 수 있었다. 처음에 책 제목을 봤을 때는 러닝 머신인가? 머신 러닝인가 궁금증이 생길 정도로(헷갈리고), 관심을 끌었었다.

       

      이 책은 파이썬을 좀 만져봤거나 경험해 본 사람에게 아주 유용함을 줄 것이라 장담한다.

      이 책의 구독 대상은 책의 서두에 나와있듯이,

      1. 머신러닝과 딥러닝을 위한 분산 시스템 구축 및 확장에 관심 있는 개발자

      2. Ray를 배우고 활용하고 싶은 데이터 과학자 및 머신러닝 엔지니어

      3. 분산 시스템 및 고성능 컴퓨팅에 대한 지식을 쌓고 싶은 학생 및 연구자

      이 정도로 한정 지을 수 있겠다!!!!

       

      책의 긍정적인 부분은

      명확하고 자세한 설명이 많다. 각 주제는 예제 코드와 함께 설명되어 있어 이해하기 쉽고 따라하기 쉽다.

      실무 적용 가능한 내용이 많다. 실제 산업 환경에서 발생할 수 있는 다양한 문제에 대한 해결책도 제시되어 있어 실무에서 바로 활용할 수 있다.

      다양한 주제 다루고 있다. 병렬 및 분산 컴퓨팅, 딥러닝 모델 학습과 추론 등 머신러닝과 딥러닝에 필요한 다양한 주제를 다룬다.

       

      아쉬운 부분은

      일부 내용의 심도 부족도 있다. 몇 가지 주제는 좀 더 심도 있게 다뤄질 수 있었을 것 같다.

      비교 정보 부족하다 Ray 외에도 다른 분산 시스템과의 비교나 Ray를 사용할 때 고려해야 할 사항들에 대한 정보가 더 추가되었다면 좋았을 것 같다. 판다스에 대한 내용도 조금만 더 심도있게 다뤄줬으면 하는 아쉬움도 많이 남는다... ㅠ_ㅠ

       

      "Learning Ray"는 Ray를 배우고 활용하기 위한 훌륭한 책이다. 명확하고 자세한 설명과 실무 적용 가능한 내용은 Ray를 처음 접하는 독자들에게 유용할 것이다. 다만, 일부 내용의 심도 부족과 비교 정보 부족은 아쉬운 점으로 남는다. ㅠ_ㅠ

      이 책을 통하여 나는

      Ray의 기본 개념 및 활용 방법과 Ray를 사용하여 분산 시스템 및 딥러닝 모델을 구축하고 확장하는 방법, 분산 시스템 및 고성능 컴퓨팅에 대한 지식을 전문적이지는 않지만 얇게라도 배웠다. ^^

       

      앞으로

      "Learning Ray"에서 배운 내용을 바탕으로 Ray를 활용한 실제 프로젝트를 진행해보고자 한다. ㅋㅋㅋ 분산 시스템 및 고성능 컴퓨팅에 대한 지식을 더욱 쌓아 나갈 것이다. "Learning Ray"를 통해 얻은 지식을 다른 사람들과 공유하고 싶다.

    • 안녕하세요. 데이터 사이언티스트라는 직무에 종사하고 있는 독자입니다.

      여러 장점들이 존재하는데 그 중 기억에 남는 세 가지를 말해보자면 다음과 같습니다.

      • 1.왜 레이를 쓰면 좋은가에 대해 논리적이며, 재밌게 설명되어 있습니다.
        • 대용량 데이터일수록 더더욱 필요성이 느껴지는 데이터 엔지니어링 그 중에서도 병렬처리가 왜 필요한지에 대해 명쾌하고 쉽게 책에 담겨있습니다. 특히, 초반부에 파이썬 GIL 에 대해 언급하며 단일 스레드 활용을 이야기합니다. 이를 기반으로 왜 레이가 효율적인지를 말하기에 쉽게 납득이 갔습니다.
        • 추가로 데이터 분석할 때 다양한 모듈들이 나와 있어 그 모듈 특히 저는 networkx 와 xgboost 활용시 자원활용을 최대화 하기 위해 여러 방안을 적용했었으나 너무 불편했어서 매번 시도할때마다 스트레스를 받곤했었습니다. 하지만, 레이의 데코레이터 한 줄로 인해 그 불편성이 싹 가셔서 너무 좋았네요.
      • 2.레이 아키텍쳐 철학에 대한 이해
        • 요즘 모듈들은 상호 호환성이 중요하다 라고 생각합니다.결국 상호 호환성이 유저에게 편리함을 가져다줄 수 있기 때문이라 생각하는데요. 그 상호 호환성을 위해 레이에서 얼마나 고심하고 제품에 적용했는지를 잘 이야기해줍니다. 
      • 3.실습을 쉽게 할 수 있는 코드와 인프라
        • 책을 보고나서 바로 실습해보려고 환경이 잘 갖추어진 docker 를 찾아보니 마침 또 ray-ml 이미지가 있어 편리하게 실습까지 진행했습니다. 기존 데이터 엔지니어링 책들은 코드가 설명 잘 되어있다하더라도 그 코드를 실행하기 위해 환경구축하는 작업이 너무 번거로웠다는 점이 단점으로 작용했는데요. 레이는 코드와 그 환경을 구축할 수 있는 인프라까지 모두 제공되니 대만족이였습니다.

       

      레이 공식 도큐도 좋지만, 책에서 친근한 한글과 함께 익혀나가는게 더더욱 빨리 레이와 친해질 수 있었던것 같네요. 좋은 책 감사합니다.

      글또 , 정이태.

  • 내용이 없습니다.
  • 내용이 없습니다.
닫기

해당 상품을 장바구니에 담았습니다.
장바구니로 이동하시겠습니까?