- 设计深度学习系统
- (美)王迟 (美)司徒杰鹏
- 927字
- 2025-03-13 16:30:32
2.1.3 数据集的悖论特性
在结束有关数据集管理的概念性讨论之前,我们想要澄清数据集中一个模棱两可的方面。我们已经看到许多设计不良的数据集管理系统在这一点上失败了。
一个数据集具有悖论的特征:它既是动态的又是静态的。从数据科学家的角度来看,数据集是静态的:它是一组固定的带有注释(也称为标签)的文件。而从数据开发者的角度来看,数据集是动态的:它是一个远程存储中的文件保存目标,我们不断地向其中添加数据。
因此,从数据集管理的角度来看,一个数据集应该是一个逻辑文件组,并满足数据收集和数据训练的需求。为了帮助你具体了解如何适应数据集的动态和静态特性,让我们看一下图2.5。

图2.5 数据集是一个逻辑文件组:它既是动态的又是静态的。它在数据收集方面是可编辑的,但在模型训练方面是固定的
我们可以从数据摄取和数据获取两个角度解读图2.5。从数据摄取方面来看,我们可以看到数据收集流水线(图表的左侧)不断地引入新的数据,例如文本表述和标签。例如,在时间T0时,数据集中创建了一个示例数据批次(示例批次T0)——在时间T1、T2和T3也是如此;随着时间的推移,我们共创建了四个数据批次。因此,从数据开发者的角度来看,这个数据集是可变的,因为流水线在不断向其中添加数据。
其次,在训练数据获取方面(图表的顶部),当获取训练数据时,数据集管理服务同时读取数据集中所有当前的数据。我们可以看到,数据以静态的版本化快照的形式返回,该快照有一个版本字符串,用于唯一标识它从数据集中选取的实际数据。例如,在时间T2从数据集中获取训练数据时,数据集中有三个数据批次(批次T0、批次T1和批次T2)。我们将这三个数据批次打包成一个快照,分配一个版本字符串(“version1”),并将其作为训练数据返回。
从模型训练的角度来看,从数据集管理服务获取的数据集是数据集的静态快照,即一个时间过滤加上客户逻辑过滤的数据集。这个静态快照对于模型的可复现性非常重要,因为它代表了训练运行中使用的确切训练文件。当需要重新构建模型时,我们可以使用快照版本字符串来找到过去模型训练中使用的快照。
我们已经对数据集特性的理论进行了全面的介绍,现在你应该能够理解数据集管理组件的需求、目标和独特特性了。接下来的部分将给出一个具体的示例,展示如何设计一个数据集管理服务。