paint-brush
Deep Lake,深度学习的 Lakehouse:性能基准经过@dataology
121 讀數

Deep Lake,深度学习的 Lakehouse:性能基准

太長; 讀書

研究人员介绍了 Deep Lake,这是一个用于深度学习的开源湖屋,它为深度学习框架优化了复杂数据存储和流媒体。
featured image - Deep Lake,深度学习的 Lakehouse:性能基准
Dataology: Study of Data in Computer Science HackerNoon profile picture
0-item

作者:

(1) Sasun Hambardzumyan,Activeloop,加利福尼亚州山景城,美国;

(2) Abhinav Tuli,Activeloop,美国加利福尼亚州山景城;

(3) Levon Ghukasyan,Activeloop,加利福尼亚州山景城,美国;

(4)Fariz Rahman,Activeloop,美国加利福尼亚州山景城;

(5) Hrant Topchyan,Activeloop,美国加利福尼亚州山景城;

(6)David Isayan,Activeloop,美国加利福尼亚州山景城;

(7)Mark McQuade,Activeloop,美国加利福尼亚州山景城;

(8) Mikayel Harutyunyan,Activeloop,美国加利福尼亚州山景城;

(9) Tatevik Hakobyan,Activeloop,加利福尼亚州山景城,美国;

(10) Ivo Stranic,Activeloop,加利福尼亚州山景城,美国;

(11)Davit Buniatyan,Activeloop,加利福尼亚州山景城,美国。

链接表

6. 性能基准

在本节中,我们将通过实验展示 Deep Lake 相对于其他数据加载器和格式的大规模性能,从提取格式到大规模训练。我们比较了来自不同存储后端的流式数据集,并展示了在云端训练时的性能提升和可扩展性。

6.1 各种格式的提取速度

图 6:从 FFHQ [43] 数据集中提取 10,000 张图像并将其转换为不同格式(越低越好)


FFHQ [43] 数据集中的 10,000 张图像未压缩并以 NumPy 格式存储。每个 1024x1024x3 原始图像都是一个 3MB 数组。然后,如图 6 所示,将图像按顺序写入每种格式。为了提高性能,我们使用 TensorStore [23] 写入 Zarr [52] 和 N5 [24] 格式。实验是在 AWS c5.9xlarge 机器上进行的。与数组格式相比,Deep Lake 的写入性能明显更快,与 WebDataset [19] 和 FFCV Beton [39] 等二进制格式相当

6.2 本地数据加载器的比较

如图 7 所示,Deep Lake 在没有模型的情况下在 PyTorch 训练循环中实现了更快的数据加载。实验在 AWS P3.2xlarge 实例上进行,使用一个 Nvidia V100 GPU


图 7:图像与其他数据加载器的迭代速度(越高越好)


卡。该数据集随机生成了 50,000 张 250x250x3 图像,存储为 JPEG 文件。进行基准测试的库列表包括 Deep Lake、FFCV [39]、Squirrel [75]、Webdataset [19] 和原生 PyTorch 数据加载器 [58]。

6.3 来自不同位置的可流式数据加载器

图 8:从不同的数据存储位置进行流式传输:本地文件系统、AWS S3、MinIO(越低越好)


如图 8 所示,在本实验中,我们使用与第 6.2 节相同的数据集探索了远程流式传输的不同存储后端。MinIO [17] 在本地网络中的另一台机器上运行。值得注意的是,与 AWS S3 相比,Deep Lake 实现了与数据在机器本地时类似的性能。WebDataset 和 Deep Lake 在从


图 9:在 S3 上对 ImageNet 进行训练:AWS 文件模式从 S3 逐个文件复制文件;快速文件模式立即启动,但训练速度较慢;Deep Lake 的性能就像数据是本地的一样,尽管它是流式传输的(越低越好)


MinIO 与 AWS S3 的比较。如需更详细的数据加载器基准测试,我们推荐 Ofeidis 等人撰写的详尽数据加载器概述研究。[54]

6.4 云端 ImageNet 训练

由于 Deep Lake 是云端优先构建的,因此在本节和下一节中,我们将展示它为在云端训练模型带来的好处。我们采用 ImageNet 数据集 [35] 并将其作为原始和 Tensor 存储格式存储在 AWS S3 [1] 上。该数据集包含 120 万张图像和标签,总共 150GB。Deep Lake 实现了几乎与数据在机器本地相同的训练性能。这节省了高达 4 倍的 GPU 计算时间和成本,如图 9 所示

6.5 大型多模态数据集的分布式训练

作为第二个实验,我们采用包含 4 亿个图像文本对的 LAION 数据集 [67] 并训练 CLIP [60],即具有 10 亿个参数的图像文本嵌入模型。原始数据集是一个 Parquet 文件表,其中包含一列图像 URL。从源下载数据集花费了 100 个小时,而提取到 Tensor Storage 格式仅花费了 6 个小时,总大小为 1.9TB。数据集已存储在美国东部地区的 AWS 上,同时在美国中部地区训练 GPU 机器。如图 10 所示,Deep Lake 通过将 5,100 张图像/秒传输到 16 个 Nvidia A100 GPU 来实现高 GPU 利用率,而没有模型的情况下在同一地区每台机器高达 80,000 张图像/秒。