Ray一个灵活,高性能分布式执行框架

网友投稿 1147 2022-10-28

Ray一个灵活,高性能分布式执行框架

Ray一个灵活,高性能分布式执行框架

Ray is a fast and simple framework for building and running distributed applications.

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

Tune: Scalable Hyperparameter TuningRLlib: Scalable Reinforcement LearningRaySGD: Distributed Training Wrappers

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

NOTE: As of Ray 0.8.1, Python 2 is no longer supported.

Quick Start

Execute Python functions in parallel.

import rayray.init()@ray.remotedef f(x): return x * xfutures = [f.remote(i) for i in range(4)]print(ray.get(futures))

To use Ray's actor model:

import rayray.init()@ray.remoteclass Counter(object): def __init__(self): self.n = 0 def increment(self): self.n += 1 def read(self): return self.ncounters = [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

Tune is a library for hyperparameter tuning at any scale.

Launch a multi-node distributed hyperparameter sweep in less than 10 lines of code.Supports any deep learning framework, including PyTorch, TensorFlow, and Keras.Visualize results with TensorBoard.Choose among scalable SOTA algorithms such as Population Based Training (PBT), Vizier's Median Stopping Rule, HyperBand/ASHA.Tune integrates with many optimization libraries such as Facebook Ax, HyperOpt, and Bayesian Optimization and enables you to scale them transparently.

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

$ pip install ray[tune] torch torchvision filelock

This example runs a parallel grid search to train a Convolutional Neural Network using PyTorch.

import torch.optim as optimfrom ray import tunefrom ray.tune.examples.mnist_pytorch import ( get_data_loaders, ConvNet, train, test)def train_mnist(config): train_loader, test_loader = get_data_loaders() model = ConvNet() optimizer = optim.SGD(model.parameters(), lr=config["lr"]) for i in range(10): train(model, optimizer, train_loader) acc = test(model, test_loader) tune.track.log(mean_accuracy=acc)analysis = tune.run( train_mnist, config={"lr": tune.grid_search([0.001, 0.01, 0.1])})print("Best config: ", analysis.get_best_config(metric="mean_accuracy"))# Get a dataframe for analyzing trial results.df = analysis.dataframe()

If TensorBoard is installed, automatically visualize all trial results:

tensorboard --logdir ~/ray_results

RLlib Quick Start

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-gpupip install ray[rllib] # also recommended: ray[debug]

import gymfrom gym.spaces import Discrete, Boxfrom ray import tuneclass 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}})

More Information

DocumentationTutorialBlogRay paperRay HotOS paperRLlib paperTune paper

Getting Involved

ray-dev@googlegroups.com: For discussions about development or any general questions.StackOverflow: For questions about how to use Ray.GitHub Issues: For reporting bugs and feature requests.Pull Requests: For submitting code contributions.Meetup Group: Join our meetup group.Community Slack: Join our Slack workspace.Twitter: Follow updates on Twitter.

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Quarkus改造Pmml模型项目异常记录及解决处理
下一篇:通过sklearn展示过拟合&欠拟合
相关文章

 发表评论

暂时没有评论,来抢沙发吧~