跳转至

Overview

Ray 是一个开源的统一框架(open source unified framework),用于扩展(scaling)AI 和 Python 应用。它提供简单、通用的 API,让分布式应用从单机(laptop)无缝扩展到集群(cluster)

Ray Architecture


什么是 Ray?

Ray 的核心目标是:让分布式计算变得更简单(simplifies distributed computing)。

Ray 主要通过三大能力实现这一目标:

  • Scalable compute primitives(可扩展计算原语):通过 Tasks(任务)Actors(有状态对象),实现无痛的并行编程(painless parallel programming)。

  • Specialized AI libraries(专用 AI 库):提供面向常见机器学习工作负载的工具,如 数据处理、模型训练、超参数搜索模型服务

  • Unified resource management(统一资源管理):通过自动化资源管理,统一调度 CPU / GPU / Memory,实现从 LaptopCloud 的无缝扩展。


Ray 架构

Ray 采用分层架构(layered architecture),从底层基础设施到上层 AI 应用库逐层构建:

层级 说明
Cloud(基础设施层) 提供底层计算资源:AWS / Kubernetes / Azure / GCP / On-premise,包含 CPU / GPU / Network / Storage
Ray Core(核心运行时) 分布式运行时,提供 Tasks、Actors、Object Store、Task Scheduling 及统一资源管理
Ray AI Libraries(AI 高层库) 构建在 Ray Core 之上,提供 Data、Train、Tune、Serve、RLlib 等面向 AI / ML 场景的高层 API

Ray Core 是整个框架的核心,负责将底层资源抽象为统一的分布式计算能力。Ray AI Libraries 则封装了复杂的分布式逻辑,使用户可以专注于具体的机器学习任务。


快速上手

连接到已有 Ray 集群

当 Ray 集群已在 Docker 或远程机器上启动时,可通过 Ray Client 方式连接:

import ray

if ray.is_initialized():
    ray.shutdown()

ray.init(address="ray://127.0.0.1:10001")

参数说明

  • ray.is_initialized() — 检查当前进程是否已连接到 Ray。
  • ray.shutdown() — 关闭已有连接,避免重复初始化报错。
  • ray.init(address="ray://...") — 使用 Ray Client 协议(ray://)连接到运行中的 Ray Head 节点(端口 10001)。

适用场景

  • Ray 运行在 Docker 中;
  • Ray 运行在 远程服务器或集群 中;
  • 本地 Python / Notebook 作为 driver 提交任务到集群执行。