Skip to content

数据集流转过程

Aryalfrat edited this page Nov 16, 2022 · 3 revisions

English | 简体中文

  1. 数据集介绍

数据集由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
  1. 分支与数据集的管理

本节的论述基于以下假设:

  • 用户数据以数据集为单位分批导入
  • 每个数据集是一个独立分支;
  • 对每个数据集的更改及维护都在本分支上进行;
  • master分支始终为空。 这种管理方式如下图所示:

分支及数据集管理

Clone this wiki locally