申请试用
HOT
登录
注册
 
Ray_ 机器学习应用的计算底盘
1 点赞
0 收藏
9下载
白玉兰开源
/
发布于
/
155
人观看

自几年前问世以来,Ray一直在尝试通过找到正确的抽象层,并构建可靠体系结构来解决这类问题。 在本次演讲中,讲师将介绍Ray的基本抽象-分布式类/方法/对象,然后是Ray的主要体系结构组件。 最后将讨论机器学习基础架构团队如何使用Ray来实现生产效率,可伸缩性和性能的突破性改进。

张喆,目前领导Anyscale公司开源工程团队。
此前,他在LinkedIn公司,负责大数据与人工智能计算团队(提供Hadoop/Spark/TensorFlow服务)。
从2014年开始,张喆的工作就与开源紧密相关,他是Apache Hadoop Committer和PMC,也是Apache软件基金会成员。

展开查看详情

1.Ray: 机器学习应用的计算底盘 张喆 / Anyscale 2021 / 4月17日

2.Agenda 我们为什么要开发Ray? Ray的架构和设计 Ray的应用场景

3.我们为什么要开发Ray? 分布式计算必然走向主流 Ray:让分布式计算变得简单

4.分布式系统的历史 Big Data (2000s) Web (1990s) HPC (1980s) ARPA Network (1970s)

5.分布式计算仍然是“小众” 对大部分开发者仍很陌生 学习曲线还是很陡峭 现在是分布式计算走向主流的时间节点

6.分布式计算背后的关键趋势 深度学习的快速崛起 摩尔定律的终结 应用逻辑和高算力(AI/ML)的融合

7. s o nth 18m v ery xe 35 CPU (https://openai.com/blog/ai-and-compute//)

8.越来越多的应用需要数据和智能的支持 深度学习 科学计算 + 运筹优化 ? 微服务 大数据

9.案例:蚂蚁集团在线资源分配

10. serverless Limitations ● cloud specific ● stateless only 开发成本 ● no GPUs/TPUs ● runtime limit stitch together existing frameworks Hard to ● develop ● deploy ● manage clean slate Expensive to develop ● time ● people 开发通用性/灵活性

11.GitHub Stars Spark Kafka Ray MLFlow Dask

12.Agenda 我们为什么要开发Ray? Ray的架构和设计 Ray的应用场景

13.追求像“普通”Python一样简单的API Function / 函数 Task / 任务 Class / 类 Actor Object / 对象 Object / 对象

14.Ray “Hello World”

15. Ray “Hello World” @ray.remote(num_cpus=1) Worker class Worker: Actor def work(self): return "done" Supervisor Driver Actor Worker @ray.remote(num_cpus=1) Actor class Supervisor: # Supervisor can do things like listing files in a dir Worker def __init__(self): Actor self.workers = [Worker.remote() for _ in range(3)] def work(self): return ray.get([w.work.remote() for w in self.workers]) ray.init() sup = Supervisor.remote() print(ray.get(sup.work.remote())) # outputs ['done', 'done', 'done']

16. Ray “Hello World” Worker Actor @ray.remote(num_cpus=1) class Worker: Supervisor def work(self): Driver Actor Worker return "done" Actor @ray.remote(num_cpus=1) class Supervisor: Actors are extremely powerful. They allow you to # Supervisor can do things like listing files in a dir Worker Actor take a Python class and instantiate it as a def __init__(self): self.workers = [Worker.remote() for _ in range(3)] microservice which can be queried from other actors def work(self): return ray.get([w.work.remote() for w in self.workers]) and tasks and even other applications. ray.init() sup = Supervisor.remote() print(ray.get(sup.work.remote())) # outputs ['done', 'done', 'done']

17.Ray集群的基本构成

18.示例:Ray的工作原理

19. Ray的生态系统 Native Libraries Third Party Libraries Ray becoming the go-to framework for scaling libraries

20.Agenda 我们为什么要开发Ray? Ray的架构和设计 Ray的应用场景 -- 机器学习的计算底盘

21.应用案例:Uber的机器学习系统 深度学习 经典 ML 无代码AutoML 容器调度系统

22.典型工作流

23.基于Ray的新架构 在这里,Ray尝试找到“正确的抽象层” Ray Peloton (Resource Scheduler)

24.Uber: By leveraging Ray, we can combine the preprocessing, distributed training, and hyperparameter search all within a single job running a single training script.

25.Uber: We believe that Ray will continue to play an increasingly important role in bringing much needed common infrastructure and standardization to the production machine learning ecosystem, both within Uber and the industry at large.

26. 谢谢!欢迎加入Ray的社区! • 安装 ,上手试一试!pip install ray • 注册 Ray Summit! https://www.anyscale.com/ray-summit-2021 • 浏览文档: docs.ray.io • 关注项目进展:https://github.com/ray-project/ray

1 点赞
0 收藏
9下载