비고
Databricks classic 컴퓨트와 Databricks 런타임 머신러닝을 함께 사용하고 있다면, Ray on Databricks를 참고하세요.
Ray는 Python 워크로드 확장을 위한 오픈 소스 프레임워크입니다. Ray Legend는 기본 GPU 인프라를 프로비저링하거나 관리하지 않고도 AI 런타임에서 실행할 수 있습니다.
AI 런타임에서 Ray를 사용하는 이유
Ray는 모델 학습, 배치 추론, 데이터 처리, 하이퍼파라미터 튜닝과 같은 Python 워크로드를 분배하는 데 일반적으로 사용됩니다. AI 런타임에서는 Ray가 Unity 카탈로그 볼륨의 데이터에 접근하고, MLflow로 실험을 추적하며, 프로덕션 워크플로우의 일부로 실행할 수 있습니다.
AI 런타임에서는 Ray Core, Ray Data, Ray Train, Ray Tune 과 같은 일반적인 Ray 라이브러리를 사용할 수 있습니다. 기존 Ray 워크로드는 라이브러리의 표준 API를 계속 사용할 수 있습니다.
레이가 AI 런타임과 어떻게 작동하는지에 대해
모든 Ray 애플리케이션은 하나 이상의 노드를 포함할 수 있는 Ray 클러스터에서 실행됩니다. AI 런타임은 노드를 프로비저닝하고, Ray는 작업 및 액터를 가용 CPU 및 GPU 자원 전반에 걸쳐 스케줄링합니다. Ray를 어떻게 시작할지는 실행 인터페이스에 따라 다릅니다:
| 인터페이스 | Nodes | Ray를 시작합니다 |
|---|---|---|
| Notebook | 노트북에 연결된 단일 노드 |
ray_init()을(를) AI 런타임 SDK(databricks.air)에서 호출 |
| Databricks 명령줄 인터페이스 (CLI) | 하나 이상의 고정된 노드 집합 | 노드 0에서 헤드를 시작하고, 남은 노드들을 재사용 가능한 부트스트랩 스크립트로 워커로 연결합니다 |
노트북에서 Ray 사용
노트북이 AI 런타임 GPU 컴퓨트에 연결되었을 때, Databricks AI Runtime SDK의 ray_init()를 사용하여 연결된 노드에서 Ray를 시작하세요:
from databricks.air import ray_init
ray_init()
ray_init() 표준 ray.init() API를 호출하고, Databricks 드라이버 프록시를 통해 Ray 대시보드에 접근하도록 설정하며, 노트북 출력에 대시보드 URL을 출력합니다. 코드가 실행되는 동안 대시보드를 사용해 Ray 작업, 태스크, 액터, 로그 및 리소스 사용량을 확인할 수 있습니다.
비고
ray_init() 환경 버전 5 이상이 필요합니다. 버전 5에서는 databricks.air 대신 serverless_gpu에서 가져오세요. Databricks AI v6에는 Ray가 포함되어 있습니다. Standard v6를 사용한다면, 호출하기 전에 ray_init()Ray를 설치하세요.
환경 설정을 참조하세요.
노트북 예제
| Example | Description |
|---|---|
| 레이 코어 헬로 월드 | 비동기 GPU 작업을 첨부된 컴퓨트에 제출하고, Ray 대시보드에서 스케줄링을 점검한 후 결과를 가져옵니다. |
| 레이 튠을 이용한 CIFAR-10 하이퍼파라미터 튜닝 | PyTorch 이미지 분류기에서 분수 GPU 시험을 동시에 실행하고, 비동기 연속 절반 알고리즘(ASHA)을 사용해 성능이 낮은 구성을 조기에 방지합니다. |
| Ray Data와 vLLM을 사용한 Qwen2.5-32B 배치 추론 | 8개의 H100 GPU에서 8개의 영구 vLLM 복제본으로 다국어 배치 추론을 실행하고, 결과를 Parquet으로 Unity 카탈로그 볼륨에 저장하세요. |
Databricks CLI와 함께 Ray를 사용하세요
AI 런타임용 Databricks CLI 명령어는 단일 노드 Ray 워크로드를 지원합니다. 워크로드 구성에서 고정된 accelerator_type 및 num_accelerators를 지정합니다.
Qwen2.5-3B Ray Train 레시피에는 재사용 가능한 부트스트랩 스크립트가 포함되어 있습니다. 워크로드의 command에서 RAY_ENTRYPOINT을 Python 파일 경로로 설정한 다음 부트스트랩 스크립트를 실행하세요. 부트스트랩 스크립트는 다음과 같은 기능을 수행합니다:
- 노드에서 Ray 헤드를 시작하고 설정된 진입점을 실행합니다.
- 진입점이 끝나면 Ray 프로세스를 중지합니다.
애플리케이션에서 클러스터에 ray.init(address="auto")연결하세요.
표준 환경에서는 워크로드 종속성에 ray[train] 또는 필요한 추가 항목(예: ray[tune], ray[data], ray)을 추가합니다. Databricks AI v6에는 Ray가 포함되어 있습니다.
CLI 예제
| Example | Description |
|---|---|
| Ray Train을 이용한 Qwen2.5-3B 미세 조정 | Qwen2.5-3B를 H100 8개가 장착된 단일 노드에서 GPU당 하나의 분산 데이터 병렬 워커로 미세 조정하세요. |
| Ray Data 및 vLLM을 사용하여 일괄 처리 유추 | Qwen2.5-7B-Instruct로 응답을 생성하고 결과를 Parquet으로 Unity 카탈로그 볼륨에 작성하세요. |
데이터 및 Databricks 기능 사용
Ray 워크로드는 Unity 카탈로그 볼륨의 데이터에 접근하고, MLflow로 실행을 기록하며, 선언적 자동화 번들로 정의된 Lakeflow Jobs 작업으로 실행할 수 있습니다.
Unity 카탈로그 내 데이터 접근
Unity 카탈로그 테이블 ray.data.read_databricks_tables() 에서 표 형태의 데이터를 사용하려면 Databricks SQL 웨어하우스에서 테이블을 읽거나 SQL 쿼리를 실행하세요. AI 런타임은 로컬 Spark 세션을 제공하지 않으니 웨어하우스 ID, 카탈로그, 스키마를 지정하세요. SQL을 사용해 Ray가 결과를 처리하기 전에 조인, 집계, 필터링을 수행할 수 있습니다.
파일 기반 및 비구조화 데이터의 경우, Unity 카탈로그 볼륨을 사용하세요. 레이 작업자는 자신의 /Volumes/<catalog>/<schema>/<volume>/... 경로를 통해 파일에 접근할 수 있습니다. 예를 들어, Ray Data는 ray.data.read_parquet()로 Parquet 파일을 읽고 Dataset.write_parquet()로 결과를 쓸 수 있습니다.
작업 부하를 추적하고 조정합니다
MLflow를 사용해 Ray 워크로드의 매개변수, 지표, 아티팩트를 기록하세요. 실험 추적 및 관측 가능성을 참조하세요.
워크로드를 스케줄링하거나 CPU 데이터 준비 작업으로 구성하려면 Lakeflow Jobs와 Declarative Automation Bundles를 사용하세요. GPU 워크로드 예약 및 작업 작성 항목을 참조하세요.
기존 Ray 작업 부하 마이그레이션
자가 관리 Ray 워크로드를 마이그레이션하려면 인프라 구성과 서비스 통합을 AI 런타임 실행 모델로 대체하는 작업이 포함됩니다.
워크로드 평가
마이그레이션 전에 제한 사항을 검토하세요. 작업 부하가 고정 크기의 클러스터에서 하나의 가속기 유형으로 동작할 수 있는지 확인하세요.
워크로드 마이그레이션
자체 관리 Ray 워크로드를 마이그레이션하려면:
- 인터랙티브 개발을 위해 노트북을, 제출된 작업을 위해 Databricks CLI를 선택하세요.
- 기존 클러스터 자원을 AI 런타임 가속기 유형과 가속기 수에 매핑하세요. 하드웨어를 참조하세요.
- 기존 클러스터 시작을 노트북에서는
ray_init()로, Databricks CLI 워크로드에서는 문서화된 부트스트랩 스크립트로 대체하세요. - 워크로드의 Python 의존성을 선언하고 데이터, 체크포인트, 모델, 출력 경로를 업데이트하세요.
- 가장 작은 적용 가능한 구성에서 작업 부하를 검증하세요. 의도한 고정 토폴로지를 테스트하기 전에 데이터 접근, 자원 요청, 출력을 확인하세요.
Limitations
AI Runtime의 Ray에는 다음과 같은 제한이 있습니다:
- Ray 클러스터는 작업 기간 동안 고정된 노드 수를 가집니다. 레이 클러스터 자동 스케일링은 지원되지 않습니다.
- 워크로드 내 모든 노드는 동일한
accelerator_type. Ray 클러스터는 CPU 전용 그룹과 GPU 워커 그룹을 별도로 가질 수 없으며, CPU와 GPU 용량을 독립적으로 확장할 수 없습니다. - Azure Databricks 드라이버 프록시를 통한 Ray 대시보드 접근은 노트북 워크로드에만 적용됩니다.
- Ray는 노트북과 Databricks CLI 워크로드 모두에서 단일 노드에서 실행됩니다.
Tip
CPU 준비와 GPU 처리가 별도의 단계로 동작할 수 있다면, 다중 작업 Lakeflow Job을 사용하고 Unity 카탈로그 볼륨을 통해 작업 간에 데이터를 전달하세요.