项目简介
Ray是一个为AI和Python应用扩展而设计的统一框架,它由一个核心的分布式运行时和一套用于加速ML工作负载的AI库组成。Ray自2017年起由加州大学伯克利分校RISELab开发并开源,旨在简化从笔记本电脑到集群的Python和AI应用的扩展
概述
Ray是一个开源的统一框架,用于扩展AI和Python应用,如机器学习。它提供并行处理的计算层,使您无需成为分布式系统专家。Ray简化了运行分布式个体和端到端机器学习工作流的复杂性,包括:
- 数据预处理、分布式训练、超参数调整、强化学习和模型服务等常见机器学习任务的可扩展库。
- 用于并行化和扩展Python应用的Python分布式计算原语。
- 与Kubernetes、AWS、GCP和Azure等现有工具和基础设施集成和部署Ray集群的集成和实用工具。
对于数据科学家和机器学习从业者,Ray让您可以轻松地扩展作业,无需基础设施专业知识:
- 轻松并行化并在多个节点和GPU上分布ML工作负载。
- 与ML生态系统进行本地和可扩展的集成。
对于ML平台构建者和ML工程师,Ray:
- 提供计算抽象,创建可扩展和健壮的ML平台。
- 提供统一的ML API,简化了与更广泛ML生态系统的融合。
- 通过使相同的Python代码无缝地从笔记本电脑扩展到大型集群,减少了开发与生产之间的摩擦。
对于分布式系统工程师,Ray自动处理关键过程:
- 编排–管理分布式系统的各个组成部分。
- 调度–协调任务的执行时间和地点。
- 容错–确保任务在不可避免的故障点完成。
- 自动扩展–根据动态需求调整分配的资源数量。
可以用Ray来做什么
您可以使用Ray进行一些常见的ML工作负载,个人、组织和公司利用Ray构建他们的AI应用:
- 在CPU和GPU上进行批量推理
- 并行训练
- 模型服务
- 大型模型的分布式训练
- 并行超参数调整实验
- 强化学习
Ray framework
Ray的统一计算框架由三层组成:
- Ray AI Libraries:一个开源的Python领域特定的库集合,为ML工程师、数据科学家和研究人员提供了一个可扩展和统一的机器学习应用工具包。
- Ray Core:一个开源的Python通用分布式计算库,使ML工程师和Python开发者能够扩展Python应用程序并加速机器学习工作负载。
- Ray Clusters:一组连接到一个共同Ray头节点的工作节点。Ray集群可以是固定大小的,也可以根据集群上运行的应用程序请求的资源自动扩展或缩减。
Ray的五个原生库针对特定的机器学习任务进行分布式处理:
- 数据:跨训练、调优和预测的可扩展、框架无关的数据加载和转换。
- 训练:具有容错能力的分布式多节点和多核模型训练,可与流行的训练库集成。
- 调优:可扩展的超参数调优,以优化模型性能。
- 服务:可扩展和可编程的模型在线推理部署服务,可选择使用微批处理以提高性能。
- RLlib:可扩展的分布式强化学习工作负载。
这些库既适用于数据科学家也适用于机器学习工程师。对于数据科学家,这些库可以用来扩展单个工作负载,也可以用于端到端的机器学习应用。对于机器学习工程师,这些库提供了可扩展的平台抽象,便于从更广泛的机器学习生态系统中轻松集成工具。
对于定制应用,Ray Core库使Python开发人员可以轻松构建可扩展的分布式系统,这些系统可以在笔记本电脑、集群、云或Kubernetes上运行。它是Ray AI库和第三方集成(Ray生态系统)的基础。
Ray可以在任何机器、集群、云提供商和Kubernetes上运行,并且拥有不断增长的社区集成生态系统。