如何为机器学习进行数据标签、版本控制和管理

一个丰富食物数据集的案例研究

介绍

几个月前,托洛卡和ClearML公司一起创建了此联合项目。 我们的目标是向其他机器学习的从业者展示从收集数据到将数据输入机器学习模型之前,如何对其进行版本化和管理。

我们相信,遵循这些最佳实践将帮助其他人构建更好、更强大的人工智能解决方案。 如果您也对此好奇,请查看我们共同创建的项目。

项目:食品数据集

我们能否丰富现有数据集并让算法学会识别新特征?

我们在Kaggle上找到了以下数据集,并很快确定它非常适合我们的项目。 该数据集由使用MyFoodRepo收集的数千张不同类型的图像组成,并已在Creative Commons CC-BY-4.0 许可下发布。您可以在官方食品识别基准论文中查看有关此数据的更多详细信息。

 

  

食品数据集预览 — 作者的照片

我们注意到,食物可以分为两大类:固体和饮料。

食物类型示例:出售和液体 — 作者的照片

 

此外,我们注意到有些食物……比另一种更可口。

食物类型的例子——作者的照片

 

那么我们能否用这些额外的信息来丰富这个数据集,然后制定一个能够识别新特征的算法呢?

答案是肯定的,我们使用托洛卡和ClearML公司做到了。

 

——

 

如何注释数据?

对于这一步,我们使用了托洛卡众包平台。 它是一种工具,您可以在其中创建注释项目,然后将其分发给世界各地的远程注释者。

项目的第一步是创建界面和详细说明。在这种情况下,我们想提出两个问题:

  • 客观问题:关于食物的类型,无论是固体还是液体?
  • 主观问题:关于一个人是否觉得食物开胃?

我们使用了如下所示的界面:

界面 — 作者摄

 

此外,在说明中,我们已经明确说明了什么是固体和液体食物,给出了例子,并提供了边缘案例。

一旦指令和界面准备就绪,我们就必须为我们的项目邀请执行者。 托洛卡注释器遍布世界各地,因此我们必须仔细选择能够参与我们项目的人员。

 

作者的照片

 

因为我们给出的说明是用英语写的,所以我们决定只邀请说英语的人,并通过考试来测试他们对它们的理解程度。考试包括10个任务,我们在这些任务上测试了关于食物类型的第一个问题的答案。 我们有5种固体、4种液体和1个应标记为其他的边缘案例。 我们要求考试成绩达到100%才能进入注释项目。

下图显示了参加考试的人给出的答案分布。

 

作者的照片

 

如果您仔细查看最后一个条目,您会注意到它的正确响应百分比相对较低,仅为 49%,而其余部分则高于90%。这是我们用来捕捉不注意阅读说明的执行者

的边缘案例。 最后一张图片由各种类型的食物组成,包括液体和固体,因此它应该被标记为“其他”。

 

作者的照片

 

幸运的是,我们过滤掉了回答错误的人。

我们为控制注释质量而实施的下一个措施是:

  • 快速响应规则
  • 重叠
  • 和控制任务

当用户对给定任务的响应过快时,使用快速响应规则。这意味着他甚至没有时间正确地查看和检查任务,而且他不太可能得到正确的回应。

另一方面,重叠让我们对响应更有信心,因为每个任务都分配给几个注释者,并且他们的工作可以聚合。在这种情况下,我们使用了三个重叠。

我们还在正常任务之间分配了控制任务。这意味着对于给注释者的每九个任务,将有一个控制任务检查他给出的响应是否正确。如果注释者对控制任务给出了不正确的响应,他就会被从项目中删除。

作为此注释的结果,我们使用三个独特的注释器对 980 张图片进行了注释。收集结果大约需要 30 分钟,花费6.54 美元。我们也有总共 105 人参与了这个项目。

 

 

作者的照片

 

现在可以将结果传递给 ClearML 工具,这些工具将用于版本化和分析收集的数据。 如果您的项目需要其他类型的注释,您可以在此处浏览不同的注释演示。

 

数据管理

—— 

 

现在我们实际上已经创建了一个框架来获取和注释数据,我们可以直接使用它,或者更好的是,对它进行版本化,这样我们就可以记住谁做了什么以及什么时候做的 :)

ClearML是一个开源MLOps 平台,它提供了一个名为 ClearML Data 的数据管理工具,它与平台的其余部分无缝集成。

创建带注释的数据集后,我们只需将其注册到ClearML中。

作者的照片

 

在 ClearML 中注册数据后,用户就可以创建和查看数据沿袭流程、添加数据预览、元数据甚至是标签分布等图表! 这意味着所有信息都封装在一个实体中。

在我们的例子中,我们可以将数据集注释成本保存为元数据。 我们还可以存储其他注释参数,例如指令、语言参数或其他任何东西! 并将其附加到数据集,以便我们稍后参考。

 

作者的照片

 

 作者的照片

 

现在跟踪的数据是什么?

 

好的,现在数据已被跟踪和管理,但接下来您可能会问。

好吧,将其连接到 ClearML 实验管理解决方案的强大功能来了!

只需一行代码,用户就可以将数据集发送到他们的目标机器,完全抽象出数据的实际存储位置(在专用的ClearML 服务器上,或者只是存储在您最喜欢的云提供商的存储上)

 

 作者的照片

 

ClearML Data 从存储的任何地方为您获取数据,并将其缓存起来,因此连续运行不需要重新下载数据! 

连接到 ClearML 的实验管理解决方案允许用户享受它提供的所有功能,例如实验比较,我们可以比较 2 个实验,其中唯一的区别是注释的成本,并实际了解为注释支付更多费用对我们的模型有何影响!

 

 作者的照片

 

而且由于我们将成本保存为元数据,如果我们使用托洛卡的 SDK 自动化注释任务,我们实际上可以结合托洛卡和 ClearML 自动对注释成本运行超参数优化,并计算出我们应该在注释上真正投资多少!

 

——

使用超数据集提升您的数据管理水平

 

需要充分利用您的数据集管理工具吗? 查看超数据集! 

超数据集本质上将注释和元数据存储在数据库中,因此可以在训练\测试时对其进行查询!

用户可以将数据查询(称为 DataViews)连接到实验和版本! 使用 Datviews 可让您在需要时轻松获取数据集的特定子集(甚至多个数据集),这为数据管理提供了另一个级别的粒度。

作者的照片

 

如果您需要更好的数据统计数据、更好地控制网络所馈送的数据以及处理数据的子集并希望避免数据重复(这既需要存储又需要管理),DataViews 和 Hyper-Dataset 非常有用。

 

——

概括

 

在本文中,您学习了如何使用托洛卡和 ClearML 工具在食品数据集示例上构建您的 ML 数据工作流。如果您想查看本博客中列出的步骤所需的所有代码,请查看我们准备的 colab笔记本

此外,我们以网络研讨会的形式展示了我们的实验结果,并为您保存了录音(托洛卡部分ClearML 部分)。

您觉得本指南对管理您自己的机器学习项目的数据有用吗?如果您有任何反馈或想询问有关此项目的问题,请在下方发表评论。

 

 

 

 

 

作者:Tolokadeveloper原文地址:https://www.cnblogs.com/tolokadeveloper/p/16919763.html

%s 个评论

要回复文章请先登录注册