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 的优势:
-
更快、更省成本(针对深度学习)
Ray Data 在 CPU(预处理)和 GPU(训练/推理)之间流式传输数据:
- 提高资源利用率
- 避免 GPU 空闲
- 降低运行成本
-
生态友好(兼容主流框架与云平台)
Ray Data 对主流 AI 框架开箱即用:
- PyTorch
- TensorFlow
- Hugging Face Transformers
- vLLM
同时兼容主流云平台:
- Amazon Web Services (AWS)
- Google Cloud Platform (GCP)
- Microsoft Azure
-
支持多模态数据
基于 Apache Arrow 和 pandas,Ray Data 支持多种数据格式:
- Parquet、Lance
- JSON、CSV
- 图片、音频、视频等
-
默认可扩展(Scalable by default)
Ray Data 构建于 Ray 之上,具备以下优势:
- 自动扩展到异构集群(CPU + GPU)
- 从单机无缝扩展到数百节点
- 支持处理数百 TB 级数据
- 代码无需变更