다음을 통해 공유


Azure Databricks의 Ray란 무엇인가요?

Ray는 Python 애플리케이션의 크기를 조정하기 위한 오픈 소스 프레임워크입니다. 여기에는 AI 워크로드와 관련된 라이브러리가 포함되어 있어 AI 애플리케이션 개발에 특히 적합합니다. Azure Databricks의 Ray를 사용하면 Azure Databricks의 모든 플랫폼 혜택과 기능을 가져오면서 Ray 애플리케이션을 실행할 수 있습니다.

Ray 2.3.0 이상을 사용하면 Azure Databricks를 사용하여 Ray 클러스터를 만들고 Apache Spark 클러스터에서 Ray 애플리케이션을 실행할 수 있습니다.

자습서 및 예제를 포함하여 Ray에서 기계 학습을 시작하는 방법에 대한 자세한 내용은 Ray 문서를 참조하세요. Ray 및 Apache Spark 통합에 대한 자세한 내용은 Spark API의 Ray 문서를 참조하세요.

Ray란 무엇인가요?

Ray는 분산 애플리케이션을 처음부터 만드는 기본 Python 기본 형식을 제공하여 분산 시스템을 간소화합니다. 분산 시스템을 새로 사용하는 Python 개발자의 경우 오케스트레이션, 일정 및 내결함성을 관리하면서 표준 Python과 동일한 사용 편의성을 제공합니다.

Ray 및 Apache Spark는 보완 프레임워크입니다. Ray는 기계 학습 및 보강 학습과 같은 동적 컴퓨팅 집약적 작업을 처리하는 논리적 병렬 처리에 탁월합니다. Apache Spark는 데이터 병렬 처리를 전문으로 하며 ETL 및 데이터 분석과 같은 작업을 위해 큰 데이터 세트를 효율적으로 처리합니다. 데이터 처리와 복잡한 계산 모두를 위한 강력한 조합을 제공합니다.

Azure Databricks에서 Ray를 실행하는 이유는 무엇인가요?

Azure Databricks에서 Ray를 실행하면 Azure Databricks 에코시스템의 폭을 활용하여 오픈 소스 Ray에서 사용할 수 없는 서비스 및 통합으로 데이터 처리 및 기계 학습 워크플로를 향상시킬 수 있습니다. Azure Databricks 내에서 Ray를 실행할 경우의 이점은 다음과 같습니다.

  • 통합 플랫폼: Azure Databricks는 Apache Spark와 함께 Ray 애플리케이션을 실행할 수 있는 통합 플랫폼을 제공합니다. 이 통합은 동일한 컴퓨팅 환경 내에서 원활한 데이터 ETL 작업, 효율적인 데이터 전송 및 강력한 병렬 컴퓨팅을 지원합니다.
  • 거버넌스 및 제어: 모든 데이터 자산, 파일, 모델 등에 대한 Unity 카탈로그를 통해 계보 추적, 데이터 버전 관리 및 액세스 제어의 이점을 활용하여 규정 준수 및 보안을 보장합니다.
  • 인프라 관리: Azure Databricks Terraform 공급자 및 Azure Databricks 자산 번들 같은 인프라 도구를 통해 클러스터 및 작업을 관리하여 간소화된 운영 및 확장성을 보장합니다.
  • 관리되는 광선 클러스터: Ray 클러스터는 실행 중인 Apache Spark 클러스터와 동일한 실행 환경에서 관리됩니다. 이를 통해 복잡한 인프라 설정 없이도 확장성, 안정성 및 사용 편의성이 보장됩니다.
  • 모델 서비스 및 모니터링: Ray Train을 사용하여 학습된 모델을 Mosaic AI 모델 서비스에 연결하여 고가용성, 짧은 대기 시간 배포를 지원합니다. 또한 레이크하우스 모니터링을 통해 모델 예측 품질 및 드리프트를 추적하여 일관된 성능을 보장합니다.
  • 향상된 ML 개발: 완전 관리형 Azure Databricks MLflow 서비스와 통합하여 모델 개발을 추적해 Ray 애플리케이션 전체에서 실험 관리 및 재현성을 용이하게 합니다.
  • 자동화된 워크플로: Databricks 작업을 사용하여 프로세스를 자동화하며, 작업을 간소화하고 수동 개입을 줄이는 프로덕션 준비 파이프라인을 만듭니다.
  • 코드 관리 및 공동 작업: Azure Databricks Git 폴더를 통해 코드를 효율적으로 관리하여 Ray 애플리케이션 코드에 대한 버전 제어 및 공동 개발을 위한 원활한 Git 통합을 지원합니다.
  • 효율적인 데이터 액세스: Ray 애플리케이션을 Delta Lake에 연결하여 Azure Databricks의 광범위한 데이터 통합 에코시스템을 활용해 Ray의 기능을 더 광범위한 애플리케이션 및 출력으로 확장합니다.

Azure Databricks에서 Ray를 실행하면 데이터 처리, 기계 학습 및 운영 워크플로를 향상시키는 통합 에코시스템에 액세스할 수 있습니다.

사용 사례 - 기계 학습 그 이상

Ray는 DataFrame 작업의 한계를 넘어 Python의 기능을 확장하는 다용도 도구로, 고도로 사용자 지정되고 특수화된 분산 알고리즘에 이상적입니다.

기계 학습 및 딥 러닝

Ray의 기계 학습 라이브러리를 활용하여 ML 워크플로를 향상시킵니다.

  • 하이퍼 매개 변수 튜닝: 성능 및 확장 가능한 하이퍼 매개 변수 검색을 위해 Ray Tune을 사용하여 모델 성능을 최적화합니다.
  • 분산 딥 러닝 학습: PyTorch, TensorFlow, HuggingFace 및 Keras와 같은 인기 있는 프레임워크를 지원하여 여러 노드에서 딥 러닝 모델을 확장합니다. 컴퓨터 비전 또는 LLM(대규모 언어 모델)에 대한 학습 모델에 적합합니다.
  • 기존 기계 학습: Ray를 사용하여 scikit-learn 또는 XGBoost와 같은 인기 있는 라이브러리로 빌드된 기존 ML 모델에 대한 학습, 평가 및 일괄 처리 유추를 배포합니다.

HPC(고성능 컴퓨팅)

Ray는 HPC 워크로드를 배포하는 데 탁월하므로 다음 작업에 적합합니다.

  • 수학 계산: 효율적인 병렬 처리를 위해 Ray Core를 사용하여 물리학, 유전체학 또는 재무와 같은 분야에서 복잡한 계산을 수행합니다.
  • 시계열 예측: 예측 모델의 크기를 조정하고 예측 패키지(예: Prophet 또는 ARIMA)와 동시에 예측을 실행합니다.

데이터 처리 및 기능 엔지니어링

Ray는 다음과 같은 다양한 데이터 처리 작업을 처리할 수도 있습니다.

  • 컴퓨팅 기능: 복잡한 컴퓨팅 집약적 기능 엔지니어링 작업은 Ray의 분 산 컴퓨팅 아키텍처를 활용할 수 있습니다.
  • 오디오, 이미지 및 비디오 처리: 멀티미디어 데이터 처리를 배포하고 가속화하여 음성 인식, 이미지 분류 및 비디오 분석의 애플리케이션에 적합합니다.

제한 사항

  • Apache Spark의 Ray는 단일 사용자(할당된) 액세스 모드, 격리 없음 공유 액세스 모드 및 작업 클러스터에 대해서만 지원됩니다. 서버리스 기반 런타임을 사용하여 클러스터에서 Ray 클러스터를 시작할 수 없습니다.
  • %pip를 실행하여 실행 중인 Ray 클러스터에 패키지를 설치하면 클러스터를 종료하므로 실행하지 마세요. 대신 클러스터를 시작하기 전에 라이브러리를 설치합니다.
  • ray.util.spark.setup_ray_cluster의 구성을 재정의하는 통합을 사용하면 Ray 클러스터가 불안정해질 수 있습니다. 타사 애플리케이션에서 Ray 클러스터 리소스를 과도하게 구독하지 않도록 합니다.
  • ncclInternalError: Internal check failed와 같은 오류가 발생하면 클러스터의 GPU 간 네트워크 통신에 문제가 있음을 나타냅니다. 이 오류를 해결하려면 학습 코드에 다음 코드 조각을 추가하여 기본 네트워크 인터페이스를 사용합니다.
import os
os.environ["NCCL_SOCKET_IFNAME"] = "eth0"

이 섹션의 다른 문서를 참조하세요.