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 构建的开源多模态数据处理库)进行了比较。


结果摘要#

Multimodal Inference Benchmark Results

工作负载

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