小程序容器助力企业在金融与物联网领域实现高效合规运营,带来的新机遇与挑战如何管理?
1147
2022-10-28
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~