한 대의 노트북에서 Ray의 분산 실행·데이터 파이프라인·분산 학습·하이퍼파라미터 최적화·서빙을 모두 손으로 체득하는 로드맵입니다. Task/Actor/샤드의 멘탈 모델부터 Data→Train→Tune→Serve 통합 프로젝트까지 7단계로 도장을 깨며 나아갑니다.
Ray를 한 대의 노트북에서 시작합니다. 단일 노드가 곧 완전한 클러스터라는 전제를 세우고, `@ray.remote` Task와 ObjectRef로 GIL을 초월한 CPU 병렬화를 체험하며, raylet(스케줄러)과 Worker(실행 프로세스)의 구분과 오브젝트 스토어의 동작을 이해합니다.
Ray의 상태를 가진 분산 객체 모델인 Actor를 배웁니다. Counter 액터의 생명주기부터, Job 내부의 in-process 동시성(threaded vs async 액터와 `max_concurrency`), 그리고 고정 워커 풀인 ActorPool까지 실습하며 상태·동기화·동시성의 선택지를 정리합니다.
대용량 데이터 전처리를 Ray Data로 분산 파이프라인화합니다. 'DB shard = Ray Data block'이라는 멘탈 모델을 세우고, repartition·split·map_batches로 병렬도를 제어하며 수 GB CSV/Parquet를 로컬에서 처리하는 전략을 익힙니다.
머신러닝 모델의 하이퍼파라미터 탐색을 Ray Tune으로 코어 수만큼 병렬 자동화합니다. Tuner와 탐색 공간 정의부터 ASHA/HyperBand 조기 종료, 그리고 하나의 코어에 여러 트라이얼을 얹는 오버서브스크라이빙까지 로컬 활용 전략을 실습합니다.
PyTorch 모델을 노트북에서 N개 워커로 분산 학습합니다. TorchTrainer와 ScalingConfig로 워커 수를 정하고, 각 워커가 데이터의 서로 다른 '샤드'를 받는 원리(get_dataset_shard·DistributedSampler), 그리고 체크포인트 저장·복원을 실습합니다.
앞선 Stage 5에서 학습한 모델을 Ray Serve로 로컬 HTTP 엔드포인트에 배포합니다. @serve.deployment와 serve.run으로 모델을 띄우고, deployment graph와 FastAPI 인그레스로 여러 모델을 조합하며, 로컬 스케일(num_replicas·배칭·동시성)과 그 주의점을 다룹니다.
1~6단계를 하나의 엔드투엔드 ML 파이프라인(Ray AIR)으로 조립합니다. Data→Train→Tune→Serve를 한 스크립트로 잇고 HTTP로 최종 호출하며, 지금까지 배운 concurrency 처리(워커 풀·Job 내부/간 동시성)를 종합하고 KubeRay 확장 전망을 살펴봅니다.