Ray Data Benchmarks#
本页记录了 Ray Data 在各种数据模态和工作负载下的性能评估基准测试结果和方法。
工作负载摘要#
图像分类:使用 ResNet18 处理 80 万张 ImageNet 图像。该流程下载图像,进行反序列化,应用转换,在 GPU 上运行 ResNet18 推理,并输出预测标签。
文档嵌入:处理 Digital Corpora 中的 1 万个 PDF 文档。该流程逐页读取 PDF 文档,提取文本,将其分割成带有重叠的块,然后使用 GPU 上的
all-MiniLM-L6-v2模型进行嵌入,并输出带有元数据的嵌入。音频转录:使用 Whisper-tiny 模型转录 Mozilla Common Voice 17 数据集中的 113,800 个音频文件。该流程加载 FLAC 音频文件,重采样至 16kHz,使用 Whisper 的处理器提取特征,运行 GPU 加速的批量推理,并输出带有元数据的转录。
视频对象检测:使用 YOLOv11n 处理 Hollywood2 动作视频数据集中的 1 万帧视频,进行对象检测。该流程加载视频帧,将其调整大小至 640x640,运行 YOLO 批量推理以检测对象,提取单个对象的裁剪图,并以 Parquet 格式输出对象元数据和裁剪图像。
大规模图像嵌入:使用 ViT 处理 Parquet 数据集中 4TiB 的 base64 编码图像,进行图像嵌入。该流程解码 base64 图像,转换为 RGB,使用 ViTImageProcessor 进行预处理(调整大小、归一化),运行 GPU 加速的 ViT 批量推理生成嵌入,并将结果输出为 Parquet 格式。
Ray Data 2.50 与 Daft 0.6.2(一个基于 Ray 构建的开源多模态数据处理库)进行了比较。
结果摘要#

工作负载 |
Daft (秒) |
Ray Data (秒) |
|---|---|---|
图像分类 |
195.3 ± 2.5 |
111.2 ± 1.2 |
文档嵌入 |
51.3 ± 1.3 |
29.4 ± 0.8 |
音频转录 |
510.5 ± 10.4 |
312.6 ± 3.1 |
视频对象检测 |
735.3 ± 7.6 |
623 ± 1.4 |
大规模图像嵌入 |
752.75 ± 5.5 |
105.81 ± 0.79 |
所有基准测试结果均来自 4 次运行的平均值/标准差。此外,还进行了预热运行,以下载模型并移除任何可能影响结果的启动开销。
工作负载配置#
工作负载 |
数据集 |
数据路径 |
集群配置 |
代码 |
|---|---|---|---|---|
图像分类 |
80 万张 ImageNet 图像 |
s3://ray-example-data/imagenet/metadata_file.parquet |
1 个 Head / 8 个不同实例类型的 Worker |
|
文档嵌入 |
1 万个 Digital Corpora PDF |
s3://ray-example-data/digitalcorpora/metadata |
g6.xlarge Head,8 个 g6.xlarge Worker |
|
音频转录 |
113,800 个 Mozilla Common Voice 17 en 数据集的音频文件 |
s3://air-example-data/common_voice_17/parquet/ |
g6.xlarge Head,8 个 g6.xlarge Worker |
|
视频对象检测 |
1,000 个 Hollywood-2 Human Actions 数据集的视频 |
s3://ray-example-data/videos/Hollywood2-actions-videos/Hollywood2/AVIClips/ |
1 个 Head,8 个不同实例类型的 Worker |
|
大规模图像嵌入 |
4 TiB 包含 base64 编码图像的 Parquet 文件 |
s3://ray-example-data/image-datasets/10TiB-b64encoded-images-in-parquet-v3/ |
m5.24xlarge (Head),40 个 g6e.xlarge (GPU Worker),64 个 r6i.8xlarge (CPU Worker) |
不同实例类型上的图像分类#
此实验在不同实例类型上比较了 Ray Data 和 Daft 在图像分类工作负载上的性能。每次运行都是 3 次运行的平均值/标准差。此外,还进行了预热运行,以下载模型并移除任何可能影响结果的启动开销。
g6.xlarge (4 CPUs) |
g6.2xlarge (8 CPUs) |
g6.4xlarge (16 CPUs) |
g6.8xlarge (32 CPUs) |
|
|---|---|---|---|---|
Ray Data (秒) |
456.2 ± 39.9 |
195.5 ± 7.6 |
144.8 ± 1.9 |
111.2 ± 1.2 |
Daft (秒) |
315.0 ± 31.2 |
202.0 ± 2.2 |
195.0 ± 6.6 |
195.3 ± 2.5 |
不同实例类型上的视频对象检测#
此实验在不同实例类型上比较了 Ray Data 和 Daft 在视频对象检测工作负载上的性能。每次运行都是 4 次运行的平均值/标准差。此外,还进行了预热运行,以下载模型并移除任何可能影响结果的启动开销。
g6.xlarge (4 CPUs) |
g6.2xlarge (8 CPUs) |
g6.4xlarge (16 CPUs) |
g6.8xlarge (32 CPUs) |
|
|---|---|---|---|---|
Ray Data (秒) |
922 ± 13.8 |
704.8 ± 25.0 |
629 ± 1.8 |
623 ± 1.4 |
Daft (秒) |
758.8 ± 10.4 |
735.3 ± 7.6 |
747.5 ± 13.4 |
771.3 ± 25.6 |