Skip to main content

Ray provides a simple, universal API for building distributed applications.

Project description

https://github.com/ray-project/ray/raw/master/doc/source/images/ray_header_logo.png https://readthedocs.org/projects/ray/badge/?version=master https://img.shields.io/badge/Ray-Join%20Slack-blue https://img.shields.io/badge/Discuss-Ask%20Questions-blue

Ray provides a simple, universal API for building distributed applications.

Ray is packaged with the following libraries for accelerating machine learning workloads:

  • Tune: Scalable Hyperparameter Tuning

  • RLlib: Scalable Reinforcement Learning

  • RaySGD: Distributed Training Wrappers

  • Ray Serve: Scalable and Programmable Serving

There are also many community integrations with Ray, including Dask, MARS, Modin, Horovod, Hugging Face, Scikit-learn, and others. Check out the full list of Ray distributed libraries here.

Install Ray with: pip install ray. For nightly wheels, see the Installation page.

Quick Start

Execute Python functions in parallel.

import ray
ray.init()

@ray.remote
def f(x):
    return x * x

futures = [f.remote(i) for i in range(4)]
print(ray.get(futures))

To use Ray’s actor model:

import ray
ray.init()

@ray.remote
class Counter(object):
    def __init__(self):
        self.n = 0

    def increment(self):
        self.n += 1

    def read(self):
        return self.n

counters = [Counter.remote() for i in range(4)]
[c.increment.remote() for c in counters]
futures = [c.read.remote() for c in counters]
print(ray.get(futures))

Ray programs can run on a single machine, and can also seamlessly scale to large clusters. To execute the above Ray script in the cloud, just download this configuration file, and run:

ray submit [CLUSTER.YAML] example.py --start

Read more about launching clusters.

Tune Quick Start

https://github.com/ray-project/ray/raw/master/doc/source/images/tune-wide.png

Tune is a library for hyperparameter tuning at any scale.

To run this example, you will need to install the following:

$ pip install "ray[tune]"

This example runs a parallel grid search to optimize an example objective function.

from ray import tune


def objective(step, alpha, beta):
    return (0.1 + alpha * step / 100)**(-1) + beta * 0.1


def training_function(config):
    # Hyperparameters
    alpha, beta = config["alpha"], config["beta"]
    for step in range(10):
        # Iterative training function - can be any arbitrary training procedure.
        intermediate_score = objective(step, alpha, beta)
        # Feed the score back back to Tune.
        tune.report(mean_loss=intermediate_score)


analysis = tune.run(
    training_function,
    config={
        "alpha": tune.grid_search([0.001, 0.01, 0.1]),
        "beta": tune.choice([1, 2, 3])
    })

print("Best config: ", analysis.get_best_config(metric="mean_loss", mode="min"))

# Get a dataframe for analyzing trial results.
df = analysis.results_df

If TensorBoard is installed, automatically visualize all trial results:

tensorboard --logdir ~/ray_results

RLlib Quick Start

https://github.com/ray-project/ray/raw/master/doc/source/images/rllib-wide.jpg

RLlib is an open-source library for reinforcement learning built on top of Ray that offers both high scalability and a unified API for a variety of applications.

pip install tensorflow  # or tensorflow-gpu
pip install "ray[rllib]"
import gym
from gym.spaces import Discrete, Box
from ray import tune

class SimpleCorridor(gym.Env):
    def __init__(self, config):
        self.end_pos = config["corridor_length"]
        self.cur_pos = 0
        self.action_space = Discrete(2)
        self.observation_space = Box(0.0, self.end_pos, shape=(1, ))

    def reset(self):
        self.cur_pos = 0
        return [self.cur_pos]

    def step(self, action):
        if action == 0 and self.cur_pos > 0:
            self.cur_pos -= 1
        elif action == 1:
            self.cur_pos += 1
        done = self.cur_pos >= self.end_pos
        return [self.cur_pos], 1 if done else 0, done, {}

tune.run(
    "PPO",
    config={
        "env": SimpleCorridor,
        "num_workers": 4,
        "env_config": {"corridor_length": 5}})

Ray Serve Quick Start

https://raw.githubusercontent.com/ray-project/ray/master/doc/source/serve/logo.svg

Ray Serve is a scalable model-serving library built on Ray. It is:

  • Framework Agnostic: Use the same toolkit to serve everything from deep learning models built with frameworks like PyTorch or Tensorflow & Keras to Scikit-Learn models or arbitrary business logic.

  • Python First: Configure your model serving with pure Python code - no more YAMLs or JSON configs.

  • Performance Oriented: Turn on batching, pipelining, and GPU acceleration to increase the throughput of your model.

  • Composition Native: Allow you to create “model pipelines” by composing multiple models together to drive a single prediction.

  • Horizontally Scalable: Serve can linearly scale as you add more machines. Enable your ML-powered service to handle growing traffic.

To run this example, you will need to install the following:

$ pip install scikit-learn
$ pip install "ray[serve]"

This example runs serves a scikit-learn gradient boosting classifier.

from ray import serve
import pickle
import requests
from sklearn.datasets import load_iris
from sklearn.ensemble import GradientBoostingClassifier

# Train model
iris_dataset = load_iris()
model = GradientBoostingClassifier()
model.fit(iris_dataset["data"], iris_dataset["target"])

# Define Ray Serve model,
class BoostingModel:
    def __init__(self):
        self.model = model
        self.label_list = iris_dataset["target_names"].tolist()

    def __call__(self, flask_request):
        payload = flask_request.json["vector"]
        print("Worker: received flask request with data", payload)

        prediction = self.model.predict([payload])[0]
        human_name = self.label_list[prediction]
        return {"result": human_name}


# Deploy model
client = serve.start()
client.create_backend("iris:v1", BoostingModel)
client.create_endpoint("iris_classifier", backend="iris:v1", route="/iris")

# Query it!
sample_request_input = {"vector": [1.2, 1.0, 1.1, 0.9]}
response = requests.get("http://localhost:8000/iris", json=sample_request_input)
print(response.text)
# Result:
# {
#  "result": "versicolor"
# }

More Information

Older documents:

Getting Involved

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ray-1.4.1-cp39-cp39-win_amd64.whl (15.7 MB view details)

Uploaded CPython 3.9Windows x86-64

ray-1.4.1-cp39-cp39-manylinux2014_x86_64.whl (51.3 MB view details)

Uploaded CPython 3.9

ray-1.4.1-cp39-cp39-macosx_10_13_x86_64.whl (52.2 MB view details)

Uploaded CPython 3.9macOS 10.13+ x86-64

ray-1.4.1-cp38-cp38-win_amd64.whl (15.7 MB view details)

Uploaded CPython 3.8Windows x86-64

ray-1.4.1-cp38-cp38-manylinux2014_x86_64.whl (51.3 MB view details)

Uploaded CPython 3.8

ray-1.4.1-cp38-cp38-macosx_10_13_x86_64.whl (52.2 MB view details)

Uploaded CPython 3.8macOS 10.13+ x86-64

ray-1.4.1-cp37-cp37m-win_amd64.whl (15.8 MB view details)

Uploaded CPython 3.7mWindows x86-64

ray-1.4.1-cp37-cp37m-manylinux2014_x86_64.whl (51.6 MB view details)

Uploaded CPython 3.7m

ray-1.4.1-cp37-cp37m-macosx_10_13_intel.whl (52.4 MB view details)

Uploaded CPython 3.7mmacOS 10.13+ Intel (x86-64, i386)

ray-1.4.1-cp36-cp36m-win_amd64.whl (15.8 MB view details)

Uploaded CPython 3.6mWindows x86-64

ray-1.4.1-cp36-cp36m-manylinux2014_x86_64.whl (51.6 MB view details)

Uploaded CPython 3.6m

ray-1.4.1-cp36-cp36m-macosx_10_13_intel.whl (52.4 MB view details)

Uploaded CPython 3.6mmacOS 10.13+ Intel (x86-64, i386)

File details

Details for the file ray-1.4.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: ray-1.4.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 15.7 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.9

File hashes

Hashes for ray-1.4.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6f00c78ea3468417cdb38ce488efea910182391903f8b3b3f3faa721a1aab221
MD5 625bec41cd4ce71fe1722f37c173a369
BLAKE2b-256 eb6467f973a95538a976fba2eb80d3259a12753f11d63d73eeec9be244915f4c

See more details on using hashes here.

File details

Details for the file ray-1.4.1-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

  • Download URL: ray-1.4.1-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 51.3 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.9

File hashes

Hashes for ray-1.4.1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c01f114120c3055e3e4c8a72419ded7d6e1e3986e2a56fe1df3aba2d22e43534
MD5 a608c2292853ad64939537116d8fb603
BLAKE2b-256 ee0890ee4c208fd32a5fa50bc39e2bed7b52166ce408d72323711b743dc14ddd

See more details on using hashes here.

File details

Details for the file ray-1.4.1-cp39-cp39-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: ray-1.4.1-cp39-cp39-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 52.2 MB
  • Tags: CPython 3.9, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.9

File hashes

Hashes for ray-1.4.1-cp39-cp39-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 825a836d75aab85f3a5ca642acd829c3ecacc7b8ffe60e4207f43da691f426c5
MD5 2f28dcb2a925006d2374d9625fe871e4
BLAKE2b-256 6decfa39547ed32c2f33b0af12a7a5a4c1364d6afb977069cb9ecc623c582a60

See more details on using hashes here.

File details

Details for the file ray-1.4.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: ray-1.4.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 15.7 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.9

File hashes

Hashes for ray-1.4.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 3cc8d7f9d6a66cbc964a61a5535506a9982f7f9818b292491cc71a7bd17fa577
MD5 aff3e361e4270124e25e0d7f1bc20ce4
BLAKE2b-256 129a6a39dc93b4a681941f12fa0c16fc2b932121cc6a3a3c9adf1e50573fc884

See more details on using hashes here.

File details

Details for the file ray-1.4.1-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

  • Download URL: ray-1.4.1-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 51.3 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.9

File hashes

Hashes for ray-1.4.1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 045d1067bed40af76986259de1412de9f21f85d392801620cb6ac1e39b034631
MD5 618b9a780b7d45f310933220d443fcb8
BLAKE2b-256 a305e5d8c14e3d2f31e12e32343656914be06fc96008210363fd07c886129d0a

See more details on using hashes here.

File details

Details for the file ray-1.4.1-cp38-cp38-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: ray-1.4.1-cp38-cp38-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 52.2 MB
  • Tags: CPython 3.8, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.9

File hashes

Hashes for ray-1.4.1-cp38-cp38-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 07ac820e9248004c20c885cade0ebedd8762b2776b2b79b860efe1f4748c845b
MD5 6f0b613ec92cad7deb5ff0b22a3bc5da
BLAKE2b-256 caba9dc837a3744e50ea8309969b38122c3391d2db0bc5ad5af753e22345a077

See more details on using hashes here.

File details

Details for the file ray-1.4.1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: ray-1.4.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 15.8 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.9

File hashes

Hashes for ray-1.4.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 858156ba5f03cb63771afb88c0483237e28344edd77a13e4aec2fa92af8f0dee
MD5 248cf8a96c0e80d8c31a996bf0454e62
BLAKE2b-256 e33a7167a3ad2a534aad747075401e049b34a7a0940894c6e84bc90421b2c81d

See more details on using hashes here.

File details

Details for the file ray-1.4.1-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: ray-1.4.1-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 51.6 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.9

File hashes

Hashes for ray-1.4.1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b9a02597203004ea97db88e54140f8987ddc3d55d3e5ddf470c30a2c2303ae02
MD5 0276581194878400263ff466f490c9c5
BLAKE2b-256 12b827822537e56693f8c91ced3e46c38220a84767d73cc3d01d5d5351aacc1e

See more details on using hashes here.

File details

Details for the file ray-1.4.1-cp37-cp37m-macosx_10_13_intel.whl.

File metadata

  • Download URL: ray-1.4.1-cp37-cp37m-macosx_10_13_intel.whl
  • Upload date:
  • Size: 52.4 MB
  • Tags: CPython 3.7m, macOS 10.13+ Intel (x86-64, i386)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.9

File hashes

Hashes for ray-1.4.1-cp37-cp37m-macosx_10_13_intel.whl
Algorithm Hash digest
SHA256 40f26b1c113b258c85a6d7c47ba25c99b0ec8d6c72bff6da4cacf6db3a9f5d01
MD5 25c538ae741f5a5eae89fe8cf7385747
BLAKE2b-256 0f195662ae59e3e52a8f68e216624335c215dd990df1c85a047050cb9d74452a

See more details on using hashes here.

File details

Details for the file ray-1.4.1-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: ray-1.4.1-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 15.8 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.9

File hashes

Hashes for ray-1.4.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 ef6171fbbe44d643b1bfc57d0d431db7d61f5e252aa13f8a332b44d8b6fdda4d
MD5 a33a79bf6c7f3d58121b8bff8bed2a2d
BLAKE2b-256 107df1f7fa988fe467ee0bb9efaf4ec74ad4e0bc66c024bbc387407f794df38d

See more details on using hashes here.

File details

Details for the file ray-1.4.1-cp36-cp36m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: ray-1.4.1-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 51.6 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.9

File hashes

Hashes for ray-1.4.1-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a047bdc5e4ce18b27e9ff871eee0c6ea626eb24f781c452e5b3bd93287ba7a3
MD5 b0336844210a02864df0cbf387ae9b87
BLAKE2b-256 13ecf727ddd3fbcdc6102eace62c9d5dd9d9ad8112d40eeb7de8783676aca24d

See more details on using hashes here.

File details

Details for the file ray-1.4.1-cp36-cp36m-macosx_10_13_intel.whl.

File metadata

  • Download URL: ray-1.4.1-cp36-cp36m-macosx_10_13_intel.whl
  • Upload date:
  • Size: 52.4 MB
  • Tags: CPython 3.6m, macOS 10.13+ Intel (x86-64, i386)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.9

File hashes

Hashes for ray-1.4.1-cp36-cp36m-macosx_10_13_intel.whl
Algorithm Hash digest
SHA256 35d0f1bdde8bf5d697d9f352cc97328be0795ab7227ee8130870d6e1ea629aaf
MD5 c33d641dec010f6f67429b0cb89622dd
BLAKE2b-256 a2eb3bd9e250fbcac6bee57b4c57a07c6b47b6bafdf078d537b233794836e8d0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page