ray: 무엇인지, 어떤 문제를 해결하는지 & 왜 인기를 얻고 있는지
ray: 무엇인지, 어떤 문제를 해결하는지 & 왜 인기를 얻고 있는지
해결하는 문제
Ray는 Python과 AI 애플리케이션의 스케일링 문제를 해결하기 위해 설계되었습니다. 개발자는 인프라를 변경하거나 코드를 다시 작성할 필요 없이 단일 노드 개발 환경(예: 노트북)에서 대규모 클러스터로 전환할 수 있습니다.
작동 방식
Ray는 세 가지 핵심 추상화 계층을 가진 핵심 분산 런타임을 제공합니다:
- Tasks: 클러스터 전체에서 실행되는 상태 비저장(Stateless) 함수.
- Actors: 상태 저장(Stateful) 워커 프로세스.
- Objects: 클러스터 전체에서 액세스할 수 있는 불변(Immutable) 값.
또한 데이터 처리, 분산 학습, 하이퍼파라미터 튜닝, 강화 학습을 위한 라이브러리를 포함하여 머신러닝 컴퓨팅을 단순화하기 위한 일련의 특화된 AI 라이브러리를 포함하고 있습니다.
대상 사용자
로컬 머신에서 감당하기 어려울 정도로 커진 컴퓨팅 집약적인 ML 워크로드를 성능 효율적으로 실행해야 하는 Python 개발자와 AI 연구자들을 위한 도구입니다.
주요 특징
- Unified Framework: Python 앱을 노트북에서 클러스터로 원활하게 확장합니다.
- AI Libraries: Data, Train, Distributed Training, Tune (Hyperparameter Tuning), RLlib (Reinforcement Learning), 그리고 Serve (Model Serving)를 위한 전용 도구를 포함합니다.
- Flexible Deployment: 모든 머신, 클러스터, 클라우드 제공업체 또는 Kubernetes에서 실행됩니다.
- Observability: 모니터링을 위한 내장형 Dashboard와 문제 해결을 위한 Ray Distributed Debugger를 포함합니다.
Sources
- undefinedray-project/ray