paint-brush
Deep Lake,深度学习的 Lakehouse:讨论和局限性经过@dataology
137 讀數

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,加利福尼亚州山景城,美国。

链接表

7.讨论与局限性

Deep Lake 的主要用例包括 (a) 深度学习模型训练、(b) 数据沿袭和版本控制、(c) 数据查询和分析、(d) 数据检查和质量控制。我们以 NumPy [55] 数组作为基本块,并实现了


图 10:训练 1B 参数 CLIP 模型时单个 16xA100 GPU 机器的 GPU 利用率 [60]。数据集为 LAION-400M [68],从 AWS us-east 流式传输到 GCP us-central 数据中心。每种颜色均展示了单个 A100 GPU 在训练过程中的利用率。


版本控制、流数据加载器、从头开始的可视化引擎。

7.1 格式设计空间

张量存储格式 (TSF) 是一种二进制文件格式,专门用于存储张量,张量是许多机器学习和深度学习算法中使用的多维数值数组。TSF 格式设计为高效且紧凑,允许快速高效地存储和访问张量数据。TSF 格式的一个关键优势是它支持多种张量数据类型,包括动态形状的张量。


相比之下,Parquet [79] 和 Arrow [13] 格式是列式文件格式,专为存储和处理大型分析数据集而设计。与专为张量数据设计的 TSF 不同,Parquet 和 Arrow 针对表格和时间序列数据的分析工作负载的高效存储和查询进行了优化。它们使用列式存储和压缩技术来最大限度地减少存储空间并提高性能,使其适用于大数据应用程序。然而,在张量数据方面,TSF 比 Parquet 和 Arrow 有一些优势。TSF 可以支持张量操作和高效流式传输到深度学习框架。


其他张量格式 [18、52、23、57] 对于大规模可并行工作负载非常有效,因为它们不需要跨块协调。张量存储格式的关键权衡是能够在张量内动态存储形状数组,而无需填充内存占用。例如,在计算机视觉中,存储具有不同形状的多个图像或具有动态长度的视频非常常见。为了支持灵活性,以之前讨论的块编码器的形式引入了较小的开销,在实践中我们还没有观察到对生产工作负载的影响。

7.2 数据加载器

Deep Lake 在本地和远程设置中取得了最先进的结果,如在大型图像上迭代的基准测试图 7 所示。首先,它比 FFCV [39] 更快,FFCV 声称 ImageNet 模型训练每模型训练最多可减少 98 美分。此外,Deep Lake 实现了与 WebDataset [19] 类似的摄取性能。Deep Lake 在较大的图像上表现明显优于其他。Parquet 针对小型单元和分析工作负载进行了优化,而 Deep Lake 针对大型、动态形状的张量数据进行了优化。与其他数据湖解决方案相比,其最小的 Python 包设计使 Deep Lake 能够轻松集成到大规模分布式训练或推理工作负载中。

7.3 未来工作

Deep Lake 的当前实现还有进一步改进的机会。首先,存储格式不支持自定义排序,而自定义排序对于向量搜索或键值索引而言是一种更高效的存储布局。其次,Deep Lake 实现了基于分支的锁以实现并发访问。与 Delta ACID 事务模型 [27] 类似,Deep Lake 可以扩展到高性能并行工作负载。第三,TQL 的当前实现仅支持 SQL 操作的子集(即不支持诸如连接之类的操作)。进一步的工作将侧重于使其 SQL 完整,扩展到更多数字操作,在外部数据源中运行联合查询以及针对 SQL 引擎进行基准测试。