跳转至

Ray Data

Ray Data

Ray Data 是基于 Ray 构建的一个可扩展数据处理库,专门用于 AI 工作负载。 它提供了灵活且高性能的 API,用于常见任务,例如:

  • 批量推理(batch inference)
  • 数据预处理
  • 机器学习训练的数据加载

与传统分布式数据系统不同,Ray Data 采用流式执行引擎(streaming execution engine),能够高效处理大规模数据,同时在 CPU 和 GPU 上保持高利用率。

Quick Start

首先安装 Ray Data:

pip install -U 'ray[data]'

批量文本分类

import ray
import pandas as pd

class ClassificationModel:
    def __init__(self):
        from transformers import pipeline
        self.pipe = pipeline("text-classification")

    def __call__(self, batch: pd.DataFrame):
        results = self.pipe(list(batch["text"]))
        result_df = pd.DataFrame(results)
        return pd.concat([batch, result_df], axis=1)

ds = ray.data.read_text("s3://anonymous@ray-example-data/sms_spam_collection_subset.txt")
ds = ds.map_batches(
    ClassificationModel,
    compute=ray.data.ActorPoolStrategy(size=2),
    batch_size=64,
    batch_format="pandas"
)
ds.show(limit=1)
{
    'text': '...',
    'label': 'NEGATIVE',
    'score': 0.99
}

为什么选择 Ray Data?

现代 AI 工作负载通常依赖深度学习模型,这类模型:

  • 计算密集
  • 依赖 GPU 等专用硬件

GPU 的挑战

  • 内存较小
  • 调度机制不同
  • 成本较高

因此,传统数据处理系统往往无法高效利用 GPU。

Ray Data 的优势:

  1. 更快、更省成本(针对深度学习)

    Ray Data 在 CPU(预处理)和 GPU(训练/推理)之间流式传输数据:

    • 提高资源利用率
    • 避免 GPU 空闲
    • 降低运行成本
  2. 生态友好(兼容主流框架与云平台)

    Ray Data 对主流 AI 框架开箱即用:

    • PyTorch
    • TensorFlow
    • Hugging Face Transformers
    • vLLM

    同时兼容主流云平台:

    • Amazon Web Services (AWS)
    • Google Cloud Platform (GCP)
    • Microsoft Azure
  3. 支持多模态数据

    基于 Apache Arrow 和 pandas,Ray Data 支持多种数据格式:

    • Parquet、Lance
    • JSON、CSV
    • 图片、音频、视频等
  4. 默认可扩展(Scalable by default)

    Ray Data 构建于 Ray 之上,具备以下优势:

    • 自动扩展到异构集群(CPU + GPU)
    • 从单机无缝扩展到数百节点
    • 支持处理数百 TB 级数据
    • 代码无需变更