-
Notifications
You must be signed in to change notification settings - Fork 156
数据集流转过程
English | 简体中文
- 数据集介绍
数据集由Metadata(元数据)与媒体文件组成,元数据具有下述特征:
-
它拥有唯一ID,系统有一个初始的默认Metadata状态,为空;
-
它拥有一个资源列表,列表中每个元素都指向一个实际的资源,Metadata不实际保存资源,只维护此资源列表;
-
它拥有若干keywords,用户可以通过这些keywords搜索到某个特定的Metadata状态;
-
用户可以为某个metadata新开分支,并在新开的分支上进行操作,在新分支上的操作不影响原metadata的状态,且原metadata仍可以被用户追溯,这些操作包括但不限于:
(1)添加资源 (2)添加或修改标注 (3)添加或修改关键词 (4)过滤资源 (5)合并两个不同的metadatas
-
用户可以在不同metadata之间自由跳转;
-
用户可以查询metadata的历史;
-
用户可以将metadata打上自己的tag,便于通过tag精确查找;
-
用户也可以向metadata添加keywords,便于keywords模糊搜索;
-
用户可以通过某种方式读取一个metadata中所包含的资源,并将这些资源用于浏览、训练等。
从以上描述可以看出,对于metadata的管理,类似于VCS(版本管理系统),用户可以有下面几种完全不同的使用方式与场景:
场景一: 直接从最开始的metadata,进行筛选过程,选出并使用符合要求的数据,如下图所示:
每当用户需要开始一项新任务时:
- 用户从当前的主分支内签出一个新的feature分支,得到处于feature#1状态的metadata;
- 用户在此新分支的metadata上进行数据筛选和其他任务,得到处于feature#2状态的metadata;
- 当确认这个metadata适合自己的训练任务,则可以使用这个数据开始训练;
- 此时,其他用户对master分支的metadata进行更改,也不会影响到用户正在使用的训练数据。
场景二:通过tag或keywords搜索到某个metadata,并开始筛选过程,直到得出符合要求的数据,然后使用该数据,如下图所示:
此时,每当用户需要开展一项新任务时:
- 通过keywords和tag等方式,搜索到一个基本符合自己要求的metadata
- 在此基础上,签出一个新分支
- 在新分支上继续进行数据筛选或清洗,得到真正符合要求的数据
- 利用此数据进行训练
场景三:增量合并。假设用户已经使用某个metadata完成了模型的训练任务,此时资源库与主分支的metadata有更新,用户希望将这一部分更新合并到当前使用的metadata中:
假设用户现在在feature#2,用户需要进行如下操作:
- 切回主分支master
- 对master#2 - master#1这个增量部分,重复之前做过的任务,得到feature#2+
- 切回feature#2,合并feature#2+,得到feature#3
- 分支与数据集的管理
本节的论述基于以下假设:
- 用户数据以数据集为单位分批导入
- 每个数据集是一个独立分支;
- 对每个数据集的更改及维护都在本分支上进行;
- master分支始终为空。 这种管理方式如下图所示: