Ray is a distributed computing framework for scaling Python and AI applications from a single laptop to a cluster. It pairs a core distributed runtime with a set of libraries that cover the stages of an ML workload, so the same Python code can run on one machine or across many nodes without additional infrastructure.
Ray Core exposes three abstractions: tasks are stateless functions executed in the cluster, actors are stateful worker processes, and objects are immutable values accessible from anywhere in the cluster. The AI libraries build on these primitives to handle data processing, training, hyperparameter tuning, reinforcement learning, and serving.
Ray runs on any machine, cluster, cloud provider, or Kubernetes, and ships a dashboard for monitoring applications and clusters and a distributed debugger for stepping through Ray programs.
Features
- Ray Data: scalable datasets for ML pipelines
- Ray Train: distributed model training
- Ray Tune: scalable hyperparameter tuning
- RLlib: scalable reinforcement learning
- Ray Serve: scalable and programmable model serving
- Core primitives: tasks, actors, and objects for general-purpose distributed Python
- Deployment targets: laptops, clusters, cloud providers, and Kubernetes
- Observability: Ray Dashboard for cluster monitoring and Ray Distributed Debugger for debugging
- Ecosystem integrations: a catalogue of community integrations with other ML and data tools
