ray-project/raydp

RayDP provides simple APIs for running Spark on Ray and integrating Spark with AI libraries.

해결하는 문제

RayDP는 대규모 데이터 처리(Spark)와 AI 모델 학습(PyTorch, TensorFlow)을 위한 별도의 클러스터를 운영하는 데 발생하는 운영 복잡성과 지연을 제거합니다. 개발자는 단일 Python 프로그램 내에서 엔드투엔드 데이터 및 AI 파이프라인을 구축할 수 있으며, 외부 글루 코드나 AirFlow 또는 KubeFlow와 같은 복잡한 워크플로 오케스트레이터를 사용할 필요가 없습니다.

작동 방식

RayDP는 Ray를 Spark 리소스 매니저로 사용하고 Spark executor를 Ray 액터로 실행함으로써 Spark를 Ray 위에서 실행할 수 있도록 합니다. Spark DataFrames를 Ray Datasets로 변환하는 API를 제공하여 메모리 내에서 데이터를 교환함으로써 높은 성능을 달성합니다. 또한 Ray Train을 래핑한 scikit-learn 스타일의 Estimator API(TorchEstimatorTFEstimator)를 제공하여 Spark DataFrames 위에서 직접 분산 학습을 간단히 수행할 수 있습니다.

대상 사용자

  • ML 인프라 팀: Spark와 기타 AI 컴포넌트를 단일 기반 위에 통합하는 통합 ML 플랫폼을 구축하기 위해.
  • 데이터 과학자: PySpark 코드를 AI 라이브러리와 함께 작성하고 노트북에서 클라우드로 원활하게 확장할 수 있도록.
  • 데이터 엔지니어: 자동 스케일링을 통해 클라우드에서 온디맨드 Spark 작업을 실행하고 수동으로 Spark 클러스터를 설정할 필요 없이.

주요 특징

  • 통합 실행: Ray 액터 내에서 Spark executor를 실행하여 데이터 처리와 AI 학습을 하나의 환경에서 통합합니다.
  • 메모리 내 데이터 교환: Spark DataFrames와 Ray Datasets 간의 고성능 변환을 제공합니다.
  • 학습 간소화: Spark 데이터 위에서 분산 PyTorch 및 TensorFlow 학습을 위한 고수준 Estimator API를 제공합니다.
  • 장애 내성: Spark DataFrames를 Ray Datasets로 변환하는 복구 가능한 파이프라인을 지원하여 executor 손실에 대한 회복성을 보장합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트