【深度学习】Ray 概述

视频号

微信公众号

知识星球

Chinese, Simplified

概述

Ray是一个开源的统一框架,用于扩展人工智能和Python应用程序,如机器学习。它为并行处理提供了计算层,因此您不需要成为分布式系统专家。Ray使用以下组件最大限度地降低了运行分布式个人和端到端机器学习工作流的复杂性:

  • 用于常见机器学习任务的可扩展库,如数据预处理、分布式训练、超参数调整、强化学习和模型服务。
  • 用于并行化和扩展Python应用程序的Python分布式计算原语。
  • 集成和实用程序,用于将Ray集群与Kubernetes、AWS、GCP和Azure等现有工具和基础设施集成和部署。

对于数据科学家和机器学习从业者来说,Ray可以让您在不需要基础设施专业知识的情况下扩展工作:

  • 轻松地在多个节点和GPU之间并行化和分发工作负载。
  • 快速配置和访问云计算资源。
  • 通过本机和可扩展的集成来利用ML生态系统。

对于分布式系统工程师来说,Ray可以自动处理关键流程:

  • 编排–管理分布式系统的各种组件。
  • 日程安排——协调何时何地执行任务。
  • 容错–确保任务完成,而不考虑不可避免的故障点。
  • 自动缩放–调整分配给动态需求的资源数量。

你能用Ray做什么

这些是一些常见的ML工作负载,个人、组织和公司利用Ray来构建他们的人工智能应用程序:

Ray框架

ray

Stack of Ray libraries - unified toolkit for ML workloads.

Ray的统一计算框架由三层组成:

  • Ray AI Runtime–一组开源、Python、特定领域的库,为ML工程师、数据科学家和研究人员提供可扩展和统一的ML应用工具包。
  • Ray Core–一个开源、Python、通用的分布式计算库,使ML工程师和Python开发人员能够扩展Python应用程序并加速机器学习工作负载。
  • Ray集群–连接到公共Ray头节点的一组工作节点。Ray集群可以是固定大小的,也可以根据集群上运行的应用程序请求的资源自动上下缩放。

扩展机器学习工作负载

使用用于分布式数据处理、模型训练、调优、强化学习、模型服务等的库工具包构建ML应用程序。



构建分布式应用程序

使用简单灵活的API构建和运行分布式应用程序。并行化单机代码,几乎没有代码更改。



部署大规模工作负载

在AWS、GCP、Azure或内部部署工作负载。使用Ray集群管理器在现有的Kubernetes、YARN或Slurm集群上运行Ray。



Ray AIR的五个原生库中的每一个都分配了一个特定的ML任务:

  • 数据:跨训练、调优和预测的可扩展的、与框架无关的数据加载和转换。
  • 训练:具有容错功能的分布式多节点和多核模型训练,与流行的训练库集成。
  • 调整:可扩展的超参数调整,以优化模型性能。
  • 服务:可扩展和可编程的服务,用于部署在线推理模型,并可选择微批量以提高性能。
  • RLlib:可扩展的分布式强化学习工作负载,可与其他Ray AIR库集成。

对于自定义应用程序,Ray Core库使Python开发人员能够轻松构建可扩展的分布式系统,这些系统可以在笔记本电脑、集群、云或Kubernetes上运行。这是Ray AIR和第三方集成(Ray生态系统)的基础。

Ray在任何机器、集群、云提供商和Kubernetes上运行,并以不断增长的社区集成生态系统为特色。

本文地址
https://architect.pubhttps://architect.pub/ray-overview
SEO Title
Ray Overview