机器学习的训练数据——启动和运行

简介

在处理数据时,有许多可用的工具:我们有数据库可以顺畅地存储数据,有 Web 服务器可以顺畅地提供数据。而现在,还有用于顺畅处理训练数据的训练数据工具。 除了工具之外,还有已建立的流程和期望,用于数据库与应用程序的其余部分集成。但是训练数据呢?如何启动和运行训练数据?在本章中,我将涵盖关键考虑因素,包括安装、注释设置、嵌入、最终用户、工作流程等等。

重要的是要注意为什么我之前提到要"顺畅"地处理训练数据。我之所以说"顺畅"是因为我不一定非要使用数据库。我可以将数据写入文件并从中读取。为什么我需要像 Postgres 这样的数据库来构建我的系统呢?嗯,因为 Postgres 带来了各种各样的功能,比如保证我的数据不容易损坏,数据是可恢复的,并且数据可以高效地进行查询。训练数据工具也以类似的方式发展。 在本章中,我将涵盖:

  1. 如何启动和运行
  2. 训练数据工具的范围
  3. 使用训练数据工具带来的好处
  4. 权衡
  5. 带领我们走到今天的历史

其中大部分集中在今天对你而言具有相关性的事物。我还包括一些简短的历史部分,以展示为什么这些工具很重要。此外,我还将回答其他一些常见问题:

  1. 训练数据工具的关键概念领域是什么?
  2. 训练数据工具在你的技术栈中的位置是什么?

在我们深入讨论之前,有两个重要的主题需要提到,你将在本章中看到它们发挥作用。 我经常会使用"工具"这个词,即使它可能是一个更大的系统或平台。通过"工具",我指的是任何帮助你实现训练数据目标的技术。使用工具是训练数据日常工作的一部分。在整本书中,我将抽象概念与具体示例结合起来,通过工具展示。通过在高层次概念和具体实现示例之间跳转,你将得到一个更完整的图片。

实践造就习惯。像任何艺术一样,你必须掌握这门行业的工具。在训练数据中,有多种工具选项需要熟悉和理解。我将讨论一些权衡,比如闭源或开源以及部署选项,我们将探讨一些流行的工具。

启动和运行

以下部分是一个最小可行的路线图,用于启动和运行您的训练数据系统。为了方便起见,它被划分为各个部分。通常,这些任务可以交给不同的人,并且许多任务可以并行进行。根据多种因素,完全设置可能需要数个月的时间,您应该在计划中考虑到这一点。 如果您从零开始,那么所有这些步骤都将适用。如果您的团队已经进展顺利,那么这提供了一个检查表,看看您现有的流程是否全面。 总体而言,入门任务包括:

  1. 安装
  2. 任务设置
  3. 注释者用户设置
  4. 数据摄入设置
  5. 数据目录设置
  6. 工作流设置
  7. 初始使用
  8. 优化

这些步骤将以信息性和基本的方式进行介绍。稍后,"权衡"将讨论其他实际考虑因素,如成本、安装选项、扩展、范围和安全性。 如果这似乎很多,嗯,这就是建立一个成功系统所需的现实。 在大多数这些步骤中,存在一定程度的交叉。例如,几乎任何步骤都可以通过UI/SDK/API完成。在适当的情况下,我会注意到常见的偏好。

安装

训练数据的安装和配置由技术人员或团队完成。 安装的高级关注点包括:

  1. 提供硬件(云或其他方式)
  2. 进行初始安装
  3. 配置初始安全项目,如身份提供商
  4. 选择存储选项
  5. 容量规划
  6. 维护干预运行,如执行更新
  7. 提供初始超级用户

大多数团队为复杂、影响收入的产品自行安装。这只是数据重要性和它与最终用户的深刻联系水平的现实。一般来说,数据设置的性质比训练数据平台本身的安装更为灵活,因此数据设置被视为自己的部分,我们将在下一部分进行介绍。目前,我们将首先安装 Diffgram,这是一款商业开源且功能齐全的软件,可以从 Diffgram 站点下载。虽然您不需要安装它来完成以下示例,但您可能会发现跟随并了解这些实践练习的过程对您有所帮助。安装欢迎屏幕如图2-1所示。 所有工具的安装过程都在不断变化,因此请查阅文档以获取最新的安装选项和指导。例如,Diffgram有多个安装选项,如"Baremetal"、生产和Docker等。 在撰写本文时,Docker dev 安装的提示如下(在解释器中的Shell):

bash 复制代码
git clone https://github.com/diffgram/diffgram.git
cd diffgram
pip install -r requirements.txt
python install.py

任务设置

任务设置通常由管理员与数据科学和数据工程人员共同完成。 在此阶段采取的步骤包括:

  1. 初始模式设置(数据科学家和/或管理员)
  2. 初始人工任务设置(数据工程师和/或管理员)

在这个阶段,通常会围绕以相关方式构建模式进行规划。随着这些工具的发展,选项越来越多,它变得类似于数据库设计。根据复杂性,模式可以通过SDK或API加载。

注释将在第3章和第5章中更详细地介绍。

注释者设置

您的用户(注释者)通常是提供监督(注释)的最佳人选。毕竟,他们已经具有所需的上下文。您的用户可以提供这种注释监督,并将帮助进行规模调整,比您试图招聘越来越庞大的中央注释团队要好。这些注释者需要能够通过UI/UX输入他们的注释。实现这一目标的最常见方法是通过"独立"门户工具。

门户(默认)

使用独立门户通常是最简单的。这意味着注释者直接访问您的安装,例如,网址可以是"your_tool.your_domain.com"或"diffgram.your_domain.com",进行注释。然后,您可以选择在您的应用程序中"深度链接"到注释门户,例如根据应用程序中的上下文链接到特定任务。门户通常提供注释UI/UX外观和感觉的某种形式的自定义,以及基于模式的功能更改。通过OAuth加上这种自定义,您可以保持无缝的外观和感觉。

嵌入

您的工程团队将需要向您的应用程序添加代码,以直接在应用程序内嵌入注释设置。这需要更多的工作,但可以提供更灵活和更强大的功能。自然地,必须考虑添加数据设置的开发团队的能力;将用户引导到已知的门户或通过API集成链接到门户,相对于在应用程序中深度集成和嵌入设置而言,这要容易得多。

数据设置

您必须以对系统有用的方式加载原始数据:

  1. 使用摄入工具
  2. 在自定义应用程序中进行集成
  3. 使用SDK/API

工作流设置

您的数据必须能够与您的ML程序连接。常用的方法包括手动流程、集成(例如API)或命名的训练数据工作流。工作流结合多个操作步骤,以创建特定于训练数据的流程。与其他应用程序和流程的集成是连接数据的常见方式。其中一些步骤可能是自动化的,例如通过流水线。我将在第5章中更详细地介绍工作流。

数据目录设置

以某种方式,您必须能够查看注释工作的结果,并能够访问集的数据:

  1. 针对训练数据变得越来越流行的是特定于领域的查询语言;或者能够充分理解原始SQL结构以直接查询将会很有帮助。
  2. 使用特定于训练数据的库来实现特定目标,如数据发现、过滤等。 即使有了设置的工作流,仍然需要数据目录类型的步骤。

初始使用

总会有一个初始使用的阶段。在这个阶段,注释者、最终用户、数据科学家、ML程序等都在对数据进行操作:

  1. 用户培训,特别是如果部署到公司内部用户
  2. 用户反馈,特别是如果部署到最终用户

优化

一旦基础设置完成,就可以进一步优化许多概念:

  1. 日常工作中优化模式、原始数据和训练数据本身
  2. 注释熟练度、人体工程学等
  3. 文字注释熟练度
  4. 将数据加载到机器学习工具、库和概念中
  5. 参与开源训练数据项目
  6. 掌握可用新工具的一般知识

工具概览

培训数据工具

训练数据工具是部署人工智能/机器学习程序所必需的。关键领域包括标注、编目和工作流:

  1. 标注: 最终用户使用标注工具对数据进行标注。从标注作为应用程序的一部分到独立的纯标注工具,标注的范围非常广泛。在最抽象的层面上,这是"数据输入"方面的工作:

    • 针对图像、视频、音频、文本等的文字标注用户界面。
    • 管理任务、质量保证等。
  2. 编目: 编目是对数据集进行搜索、存储、探索、策展和使用的过程。这是"数据输出"方面,通常有一定程度的人工参与,比如查看数据集。编目活动的示例贯穿整个模型训练过程:

    • 导入原始数据、预测数据、元数据等。
    • 从过滤不感兴趣的数据到可视化查看数据,对一切进行探索。
    • 调试现有数据,例如预测和人工标注。
    • 管理数据生命周期,包括保留和删除,以及个人身份信息和访问控制。
  3. 工作流: 工作流是训练数据的流程和数据流。这是标注、编目和其他系统之间的粘合剂。考虑集成、安装、插件等。这既是数据输入也是数据输出,但通常更多地是在"系统"级别:

    • 技术生态系统。
    • 标注自动化:任何提高标注性能的工具,比如预标注或主动学习。详见第6章以获取更深入的了解。
    • 团队间的协作,涉及机器学习、产品、运维、管理等。
    • 将数据传递到模型的流。

有些产品在一个平台上涵盖了这些主要领域中的大部分内容。

用于机器学习的训练数据

通常,机器学习建模和训练数据工具是不同的系统。

支持的机器学习程序越多,整体系统的灵活性和功能越低。

类比一下,在MS Word文档中,我可以创建一个表,但受到文档编辑应用程序的限制。这与电子表格应用程序带来的计算自由度和灵活性有着明显的区别,后者对于计算而言更为简便,但不是文档编辑器。

通常,解决这个问题的最佳方法是通过出色的集成,使专注于训练数据质量、ML建模等的系统能够成为独立的系统,但仍与训练数据紧密集成。

本章将侧重于训练数据的主要子领域,特别是假设模型训练由不同的系统处理。

不断增长的工具选择

越来越多的重要平台和工具可供选择。有些旨在提供广泛的覆盖,而其他一些则深入研究每个领域的具体用例。每个主要类别都有数十个显着的工具。

随着对这些商业工具的需求不断增长,我预计市场上将不断涌现新工具,并在一些更成熟的领域发生整合。标注是比较成熟的领域之一;在这个背景下,数据探索相对较新。

我鼓励您不断探索可用的选项,以便在未来为您的团队和产品带来不同和改进的结果。

人、流程和数据

任何形式的员工时间通常是最大的成本中心。

良好部署的工具将带来许多独特的效率改进,其中许多可以叠加在一起,以在性能上实现几个数量级的改进。继续使用数据库类比,将其视为顺序扫描和索引之间的区别。一个可能永远无法完成,而另一个则非常快!训练数据工具将您升级到索引的世界。训练数据工具允许您执行一些关键任务:

  • 将监督直接嵌入您的应用程序。
  • 在人机计算监督的背景下,以人机计算的背景中赋予人、流程和数据权力。
  • 围绕一个共同的核心规范化您的训练数据工作。
  • 揭示训练数据问题。

类似地,训练数据工具提供许多超越处理琐碎细节的好处。例如,数据科学家可以查询由标注者训练的数据,而无需下载庞大的数据集并在本地手动进行筛选。然而,为了使其正常工作,必须首先建立一个训练数据系统。

您的训练数据学习是一个不断进行的过程,而不是一个终点。我提到这一点是为了达到一个共识,无论您有多熟悉或花费多少时间,始终有更多可以了解训练数据的内容。

嵌入式监督

当我们收到垃圾邮件时,我们将其标记为垃圾邮件,从而教会系统。我们可以向拼写检查器添加单词。这些都是终端用户参与的简单示例。随着时间的推移,监督的越来越多可能会尽可能地推动最终用户附近,并嵌入在系统中。如果这些用户有意识地意识到他们正在进行注释,那么质量可能与独立注释门户相似。如果用户不知道,那么会有质量和其他风险,就像任何终端用户数据收集一样。

人机计算监督

随着标注变得更加主流,思考它如何与经典概念(如人机交互)相关可能是有用的。人机交互(HCI)是用户与计算机程序之间的关系和互动方式。在训练数据中,我想介绍一个称为人机计算监督(HCS)的概念。HCS的背后思想是您正在监督"计算机"。"计算机"可以是一个机器学习模型,或者是一个更大的系统。监督在多个层面上发生,从注释到批准数据集。

为了对比这两者,在HCI中,用户主要是"消费者",而在HCS中,用户更多地是"生产者"。用户产生监督,除了互动之外,还被ML程序消耗。

这里的关键对比是通常在计算机交互中是确定性的。如果我更新了某些内容,我期望它会被更新,而在计算机监督中,就像在人类监督中一样,它是不确定的。有一定的随机性。作为监督者,我可以提供更正,但对于每个新实例,计算机仍然会进行自己的预测。还有一个时间因素,通常HCI是"即时"的,而HCS在更长的时间尺度上运作,监督影响着一个更模糊、看不见的机器学习模型系统。

终端关注的分离

训练数据工具将终端用户数据捕获的关注点与其他概念分开。例如,您可能希望能够添加终端用户数据捕获的监督,而无需担心数据流。

标准

训练数据工具是有效部署机器学习产品的手段。作为实现这一复杂目标的手段,训练数据工具带有任何现代软件领域中最多元化的观点和假设之一。

工具有助于为噪音带来一些标准化和清晰度。它们还有助于将本来可能没有比较基准的团队迅速带入光明:

  • 为什么不让终端用户提供一些监督?
  • 为什么手动进行版本控制,而不是自动进行?
  • 为什么手动导出文件,而不是流式传输所需的数据?
  • 在不同的团队使用略有不同的标签存储相同的数据时,为什么不使用单一统一的数据存储?
  • 为什么手动分配工作,而不是自动完成?

多重人物

每个群体都涉及许多不同的人物,每个人物都有自己的常见偏好。常见的群体和偏好包括:

  • 标注者: 期望能够像最好的绘图工具一样进行标注。
  • 工程师: 期望能够进行定制。
  • 管理人员: 期望现代任务管理,如专用任务管理系统。
  • 数据工程师: 期望能够导入和处理大量数据,有效地使其成为一个"提取转换加载"工具。
  • 数据科学家: 期望能够像业务智能工具一样对其进行分析。

鉴于这些人物,训练数据工具包括类似于 Photoshop + Word + Premiere Pro + 任务管理 + 大数据特征存储 + 数据科学工具等部分功能的特性。

如果没有正确的训练数据工具,就像试图在没有工厂的情况下建造汽车一样。只有通过使用工具才能实现完全设置的训练数据系统。

我们往往认为熟悉的东西理所当然。这只是一辆汽车,或只是一辆火车,或只是一架飞机。它们都是各自领域的工程奇迹!我们同样低估了我们不理解的事物。工程师说:"销售不能那么难。""如果我是总统......"等等。

通过记住先前列出的不同人物,您可以开始看到所需的工业系统的广度(以及这些人物是如何通过支持文字标注和任务管理的系统来服务的)。一套与Adobe Suite或MS Office相当的标注界面。系统的许多不同功能必须协同工作,输入和输出直接用于其他系统,还整合了数据科学工具。

提供机器学习软件的范式

就像DevOps思维方式为您提供了交付软件的范式一样,训练数据思维方式为您提供了发货机器学习软件的范式。简而言之,这些工具提供:

  • 处理训练数据的基本功能,如标注和数据集。这些是没有工具支持将变得不切实际的事情。
  • 提供保护栏来使项目水平。您是否真的在遵循训练数据思维方式?
  • 实现管理成本、紧密迭代的时间到数据循环等训练数据目标的手段。

权衡考虑

如果你正在比较多个用于生产的工具,有一些权衡需要考虑。在本书的其余部分,我们继续涵盖抽象概念。在这一节中,我暂停一下,着重介绍实际产业中的权衡,特别是在工具使用方面。

成本

常见的成本包括嵌入式集成、端用户输入开发和定制、商业软件许可、硬件和支持。除了商业成本,所有工具都有硬件成本。这主要是为了托管和存储数据,一些工具会收费使用特殊工具、计算机使用等。

常见的成本降低方法:

  • 端用户输入(嵌入式)的成本明显低于雇佣更多的标注员。
  • 尽量将自动化推向前端。这降低了服务器端计算的成本,但与在本地运行模型的权衡是可能引起本地延迟。

分离真实的数据科学培训成本和注释自动化。

常见的许可模型包括无限制、按用户、按集群或其他更具体的度量标准。一些商业开源产品可能允许试用以构建对付费许可的案例,有些产品个人或教育使用是免费的。大多数SaaS(软件即服务)训练数据服务在免费层中有严格的限制。而且,有些SaaS服务甚至可能有隐私条款,允许它们使用你的数据构建对它们有利的"巨型"模型。

安装与软件即服务

与其他类型的软件相比,训练数据的数据量非常大,是许多其他典型用例的数十到数千倍。其次,数据通常是敏感性质的,如医疗数据、身份证明、银行文件等。第三,由于训练数据类似于软件代码,并且通常包含独特的知识产权信息和专业知识,保护它非常重要。因此,总结一下,训练数据具有以下特点:

  • 数据量大
  • 敏感
  • 包含独特的知识产权信息

由此产生的结果是,使用可以从第一天开始安装在你自己硬件上的训练数据产品,与使用SaaS之间存在明显差异。请记住,"你的硬件"可能是指流行云服务提供商中的你的集群。随着打包选项的改进,从你自己的硬件上启动变得越来越容易。

这也是开源真正发挥作用的另一个领域。虽然SaaS提供商有时提供可以本地部署的更昂贵的版本,但检查源代码的能力通常仍然有限(甚至为零!)。此外,这些用例通常相当刻板:它是一个预设的设置和要求。设计为在任何地方运行的软件可以更灵活地满足你特定的部署需求。

开发系统

有一个经典的"自制还是购买"的辩论。我认为这实际上应该是"定制、定制、还是定制?"因为在这一点上,没有理由从头开始,已经有很多很好的选项作为起点。一些选择,比如Diffgram,提供了完整的开发系统,允许你在基线平台之上构建自己的知识产权,包括在你的应用程序中嵌入标注收集。一些选择具有越来越多的开箱即用的定制化程度。可以在开源选项上进行构建和扩展。

例如,也许你的数据需求意味着某个工具的摄取能力或数据库不够,或者你有独特的UI需求。真正的问题是,我们应该自己做这个,还是找供应商为我们做这个?

顺序依赖性的发现

我喜欢想象的一个心理画面是站在一个大山或山的底部。从底部,我看不到下一个山。即使从那座山的顶上,我的视野被下一座山所遮挡,以至于在穿越第二座山之前,我看不到第三座山,如图2-2所示。基本上,后续的发现是依赖于先前的发现。

训练数据工具帮助您顺利穿越这些山脉,有时甚至可以帮助您"看到转角",以及鸟瞰地形。例如,我只有在意识到标注数据的方法通常与数据科学家的需求不一致时,尤其是在较大团队和长时间内,才理解到需要查询数据的需求,例如流式传输数据切片而不是文件级别导出。这意味着,无论初始数据集组织得有多好,仍然需要事后回去进行探索。

训练数据工具可能会用意想不到的机会来改进您的流程并交付更好的产品。它们提供了一个基本流程。它们帮助避免认为自己已经重新发明了轮子,只有在意识到已有现成的系统并且更加精致时才明白。它们通过帮助您更快、更高效、更有效地交付,改进了您的业务关键绩效指标。

当然,这并不意味着这些工具是万能的。它们也并非没有缺陷。像所有软件一样,它们也有小故障。在许多方面,这些工具处于发展的早期。

规模

迪士尼乐园与本地街机的运作方式是不同的。同样,当涉及到数据项目时,适用于迪士尼的方法不会适用于街机,反之亦然。正如我在第8章中所述,在规模的极端端,一个完全设置好的训练数据系统使您几乎可以随需重新训练您的模型。将时间到数据的速度(数据到达和模型部署之间的时间)提高到接近零可能意味着战术相关性与无关紧要性之间的差异。

通常我们用于考虑常规软件规模的术语在监督训练数据方面并没有那么明确。在这里,我花一点时间来设定一些关于规模的期望。为什么定义规模是有用的呢?首先,了解你所处的阶段,以帮助确定你的研究方向。其次,了解各种工具是为不同规模的情况而建的。一个粗略的类比可能是SQLite与PostgreSQL。两者都有简单到复杂的不同用途(一个小型的自包含的单文件数据库与一个先进的强大的专用安装)。两者都有其适用的场景和用例。

一个大型项目通常会从嵌入式收集中获得最大比例的标注。一个超大型项目可能每月处理数十亿的标注。在这一点上,重点不是训练单一模型,而是定制和调整一组模型,甚至是用户特定的模型。

另一方面,对于小型项目,如果你打算使用100%的数据,那么数据发现工具可能并不相关。然而,进行至少基本的数据发现和分析几乎总是一个好的做法。这在第1章中有一个例子,我们讨论了一个停车场检测系统,试图使用从完全不同视角拍摄的图像(这也意味着数据分布)的情况。该示例显示了理解原始数据以及训练数据和生产数据的对齐的重要性。更具体地说,原始数据训练数据的分布(数据在特定值周围聚集或在更高维空间中分布的方式)应与生产分布对齐。

对于中大规模及以上的项目,如果团队打算每天都与更复杂的工具一起工作,那么你可能更喜欢让团队经过几个小时的培训,学习最佳实践。

那么规模为什么如此困难呢?首先,野外的大多数数据集实际上并不能反映商业项目所需的或者会误导人的内容。例如,它们可能是以对于常规商业数据集来说是不切实际的成本水平收集的。这就是为什么"数据集搜索"作为起点并不是太有意义的原因之一。大多数公共数据集对你的用例来说可能并不相关,当然也不会为每个最终用户进行样式化。此外,大多数公司对其AI项目的深层技术细节保密程度与更常见的项目有明显不同。

所有项目都有非常现实的挑战,无论规模大小。表2-1将项目分成三个桶,并介绍了每个桶的共同属性。

当然,有许多例外和细微之处,但如果您试图确定一个项目的范围,这是一个很好的起点。随着您朝着更大规模的用例发展,以下几点变得更为重要:

  • 嵌入式终端用户标注
  • 正常的系统扩展问题
  • 以标准化的方式与多个团队互动,例如对多个数据类型采用相似的流程
  • 从小规模过渡到中规模

这同样适用于从零开始规划中规模系统。以下是一些需要考虑的事项:

  • 工作流程
  • 集成
  • 更多数据探索工具的使用

正如您所见,规模有许多需要在方向规划中考虑的问题和注意事项。并非所有这些问题都会立即适用或可执行,但了解它们是很好的。

大规模的考虑:

如果您计划在大规模上运作,有一些思考要牢记。

  • 我们如何将更多的监督责任推给终端用户?一个没有嵌入计划的中央团队是一个随项目范围、质量期望和用户数量增加而增加的可变成本。然而,如果持续维护的重点是将其嵌入到终端用户中,中央团队可以被视为一个固定的初始启动和质量保证成本。
  • 数据通过系统的速度是多少?从新数据到升级的监督数据再到新模型需要多长时间?
  • 在过去的几年里,商业工具市场发生了巨大变化。多年前完全不可用的东西现在可能是现成的选择。现在是重新思考每个团队提供的独特价值的好时机。您是否比自己建设所有基础设施更容易定制一个正在进行的项目?您真的需要自己建设吗?重新考虑与开源标准对齐对于那些可能在这些标准可用之前形成的大型团队尤为重要。
  • 我们真的需要复制这些数据吗?在数据在这些阶段传递时,是否有更集中的方式来存储这些数据?如果绘制出ML和训练数据的各个部分,您可能会对数据被不必要地传输(例如通过事件)甚至在休息时被复制多少次感到非常惊讶。
  • 您是否有现有的经典(以发现为重点的)ML系统?那里的概念和认知是否与这种新形式的人类监督相关?天真地说,您可以将给定的数据存储视为一个基础层,数据分叉成监督案例和发现案例。因此,如果您之前对整体ML架构的任何计划没有考虑到监督标注,那么需要重新制定计划。
  • 监督ML非常不同,试图将其硬塞到现有架构中将不会取得良好的效果。相反,团队需要创建一个新的ML架构计划,将监督学习与其自己的架构、流程和逻辑路径相结合。简而言之,迈向更强大的大规模架构的一大步是专用于处理人工监督数据的路径。
  • 有多少人需要发现问题并对模型进行更正?例如,一个糟糕的实践可能是:手动反馈流程,然后是中央人工注释者,然后是ML工程师,然后是经理。在这个过程中,可能需要数月才能发布模型的下一个迭代。(想象一下每次用户想要向其拼写检查字典添加一个单词时都需要调用中央团队。)
  • 一个最佳实践是集成标注、基于流程的重新训练、自动验证以及由中央QA团队进行抽查。这是一个从"一次性"人工监督数据转变为对您的上下文合理的连续人工监督交付的过程的一部分。请注意,对人工监督的持续更新、模型的持续训练、持续部署等都可能是不同的(但相关的)事物,具体取决于您的上下文。
  • 您对终端用户监督数据的共享政策是什么?是否有一个声明的流程,规定了共享数据集何时以及以何种方式投入生产?例如,这可能是在应用程序中专用逻辑的地方,您的终端用户、超级用户等可以控制。或者对于系统范围的数据,可能类似于对拉取请求的批准。您可能已经有模型部署流程。还要注意它实际训练的数据。
  • 评估您的数据投资回报(ROI),特别是增量添加或删除的数据。在较大规模上,考虑新数据相对于业务目标的投资回报变得更为实际和有用。例如,您可以提出这样的问题:我们实际使用了多少百分比的数据?这个数据集影响了多少收入?
  • 数据的实际形状是什么样的?例如,如果您对每个图像、音频文件等进行请求/响应循环,那真的有意义吗?相反,数据是否可以在一个中心位置查询,然后进行流式传输?
  • 组织需要确保其数据治理政策确实在团队中得到执行。数据集应该以与组成它们的个体元素一样的到期控制意识存储。经理需要将团队与解决问题所需的工具配置对齐。

安装选项

选择软件包、存储和数据库是安装配置的关键部分。 软件包

训练数据工具有各种软件包可供选择。代码打包的方式有时表明其目标受众,例如小型、中型或大型项目。我将简要介绍一些常见的软件包:

  • 单一语言特定软件包

一些工具可能安装单一软件包,例如 Python 软件包。通常,这些是单一点的"插件",而不是完整的系统。这些工具通常仅适用于小型项目。

  • Docker

许多工具将需要一个 Docker 容器、多个容器或类似的东西。Docker 是一种软件打包方式。Docker Compose 是一种将多个软件包组合在一起的方式。理论上,只要提供了 Docker 镜像,您可以根据需要管理这些镜像。

  • Kubernetes(K8s)

K8s 编排容器。这是生产环境的默认建议,尽管还有许多其他选项。主要的云服务提供商在 Kubernetes 的实现上有明显不同。具体而言,在一个平台上可能需要几个小时的工作,在其他平台上可能更容易完成。训练数据通常代表着无与伦比的数据量,因此围绕数据访问、存储和使用的期望是新的,通常与许多预优化的云示例不一致。

  • 存储

您需要考虑系统将部署到世界的哪个位置。如果您的用户在另一个国家,这将如何影响您的性能和安全目标?如果云存储选项不可用,什么类型的本地选项将满足您的需求?

  • 数据库

Diffgram 默认使用 PostgreSQL。还有许多其他数据库可供选择。通常有至少三个不同的群体参与设置和使用系统:

  • 管理员
  • 技术人员(工程、数据科学)
  • 标注者

数据配置

针对特定的媒体类型,有各种配置需要注意。例如,对于视频,您需要决定是否按需存储单个帧。更一般地,可能需要选择存储哪些"工件",例如缩略图或经过优化的 Web 版本:

  • 版本分辨率 需要记录多少版本------这可能潜在地是所有------之前的注释?是否应记录每个更改?在某些系统中,这可能至关重要,或者仅仅是一个有用的功能。作为经验法则,打开完整版本记录可能导致数据库中至少 80% 由这些软删除的注释组成。
  • 数据生命周期 您是否必须在一定时间内删除数据?或者必须保留一段时间?一些数据是否可以在一段时间后自动存档?您的团队将不得不做出这些决定。

标注界面

自然而然地,需要一个人类使用的界面来指导和监督机器。基于门户的和嵌入式标注界面不断发展演变。在某些方面,界面趋向于具有相对相似的功能集,但这仍然是一个非常主观的领域。在我看来,最重要的之一是界面嵌入到最终用户的环境中并如何呈现。这样,用户可以在最相关的上下文中提供有意义的监督。

界面的类型和尚未制定标准期望的复杂性谱系使得围绕标注界面展开的讨论具有挑战性。例如,围绕属性(如常规表单)的注释通常比视频和3D系统更为简单。然而,"表单"本身可能非常复杂。即使在视频领域,从仅能播放视频作为参考点到注释特定时刻,以及更复杂的情况,期望的范围都是不同的。

回到我们的项目规模概念,对于小规模项目,总体的风格感觉和开箱即用的体验可能很重要。对于大规模项目,嵌入式界面将被定制,并更有可能根据特定要求进行工程化,例如选择哪些组件显示在哪里,颜色和样式(CSS)主题等。因此,对于大型项目来说,工具能够进行定制、工程化和进一步开发的能力是重要的。

建模集成

您的训练数据系统需要与您的机器学习建模系统进行通信。在Diffgram中,这是通过API集成或工作流(在后面的章节中介绍)完成的。虽然有时建模系统可能呈现一些表面上相似的视图,比如带有边界框的输出,但它们通常不支持严肃的训练数据工作。建模集成与流数据相关,但它们是不同的概念。

多用户与单用户系统

现代系统,如Diffgram,默认情况下是多用户的。单用户系统(例如sloth)通常不属于现代训练数据范例的一部分,可能侧重于纯用户界面部分。需要多用户功能的主要原因是便于获取专业知识,并能够处理更大量的数据。系统可以由单个用户作为有限的原型运行,也可以在单个本地机器上进行测试。本章的大部分内容都集中在多用户和团队为基础的系统上。

集成

集成有几个广泛的类别:

  • 系统级别,一次性设置
  • 插件
  • 安装在框架或训练数据平台硬件上运行的可安装的事物
  • 训练数据工具的部分嵌入在技术堆栈中,而其他部分则呈现给终端用户。

最基本的概念是您必须能够将原始数据和预测导入,并导出注释。考虑的因素包括:

  • 硬件。它能在我的环境中运行吗?它能与我的存储提供商一起工作吗?
  • 软件基础设施。我能否使用我想要的训练系统、分析、数据库等?
  • 应用和服务。它与我的系统的后端和前端集成得有多好?

插件

有哪些通过API和SDK进行的自定义集成类型? 如何在训练数据系统中来回传递数据? 一些系统提供更高程度的集成。基于UI的与集成过程的交互不仅用于设置密钥,还用于拉取和推送数据。

范围

随着这个生态系统的不断发展,工具设计要处理的用户和数据的范围之间的边界在扩大。一些工具可能涵盖多个范围。总体而言,工具通常倾向于单个用户或真正的多用户。

如图2-3所示,可以将这个问题看作是一个具有两个主要极点的连续体------点解决方案和套件解决方案。

平台和套件解决方案

平台和套件是中型和大型团队以及具有多个团队的公司的最佳选择。在这个类别中,不同服务提供商采取了各种不同的方法。从广义的角度来看,理解这些系统的"心理学"主要差异在于选择使用哪种系统时可能会有所帮助:

有些将训练数据视为专门的学科 即使它们有其他集成的数据科学产品、服务等,它们也明确界定了什么是训练数据,什么不是。其他组织可能不会显示这样的概念区别。 有些提供一套媒体类型和横向支持 通常,如果它是一个更广泛的系统,它将涵盖更多甚至所有的媒体类型。类似地,对于像存储、流式传输、训练、探索等横向支持,一些解决方案可能提供更多的覆盖。但请记住,即使是最先进和最大的平台也可能存在缺陷。 广度和深度 在支持媒体类型方面进一步扩展,一些解决方案可能在媒体类型上提供很好的覆盖,但只能达到相对表面的深度。随着解决方案朝这一谱系的这一端倾斜,它在每个类别中的提供深度将不断增长。 定制 这里的一个重要产品区别是,通常这些工具的开发人员认为它们将被定制,要么通过配置具有更多内置的定制选项,要么通过更多的钩子和端点,通过代码自然进行定制。因此,有很多选项可供选择。

决策过程

现在,您已经了解了整个情况,我将通过一个示例决策过程来引导您。一般而言,为大规模设计的系统需要考虑几个关键因素:

  • 定制 几乎所有东西都可以由用户配置,从注释界面的外观到工作流的结构等。
  • 安装 假定安装将由客户执行,或者至少由客户监督。加密密钥由谁持有,数据在静止时存储在哪等都是讨论的一部分。期望有专门且清晰的安全讨论。
  • 硬件 需要进行性能期望和容量规划。任何软件,无论多么可扩展,仍然需要更多硬件来进行扩展。
  • 用例 应该预期许多用户、团队、数据类型等。
  • 数据科学集成 通常,过于预包装的模型训练不支持大规模需求。因此,重点放在与专门的数据科学团队的集成上。 注意事项

与任何系统一样,有一些元素需要您注意并计划:

  • 这些系统可能非常复杂而强大。通常需要大量时间来设置、理解,并为您的用例进行优化。即使明显的"黄金路径"路线也需要时间来优化。
  • 与较小系统直接进行比较可能毫无意义。例如,为了满足较大系统的多利益相关方目标,如合规性,某些事情可能会比在较轻松的环境中明显的情况下需要更长的时间。
  • 大型系统,即使可能拥有更强大的质量控制,也会有更多的错误。由于复杂性,较小系统中可能很难破坏的东西可能在大型系统中会破坏。 点解决方案

与套件相对立的是点解决方案。让我们详细了解这些是什么,如何使用它们,以及您应该考虑的事项:

  • 与众不同的特点: 通常混合训练数据和数据科学特性;例如,它可能被提为"端到端"或"更快地训练模型",这两者都更多涉及数据科学的概念而非训练数据。 专注于单一或少量媒体类型,例如,仅限图像。 针对单个用户或小团队;这种使用假设会影响到关于谁创建标签、易用性等方面的功能。 作为服务的软件或部署在一台机器上的本地应用。
  • 使用: 对于大规模项目,点解决方案可以用于在承诺资源用于更大平台之前进行概念验证。在某些情况下,它们可能具有足够的功能以直接使用。 通常,由于它们更简单的性质,这些工具更快速地设置并获得"结果"。它是否会是您想要的结果通常是一个更有疑问的问题。 具有某种形式的内置自动训练。内置自动训练不一定是自动负面的;然而,通常中型和较大的团队希望更多控制,因此可能更愿意开发自己的训练。 有时候,点解决方案在其特定领域可能质量很高。
  • 注意事项: 这些工具通常通过技术或有意的政治限制限制可以实现的结果类型。例如,它们可能具有一种方法来训练边界框,但没有关键点。反之亦然。这也延伸到媒体类型;它们可能对图像有一种方法,但对文本没有。 通常不适用于资源较为充裕的团队。可能缺少许多主要功能领域,如专门的工作流功能、摄取、任意存储和查询等。 相对于较重的解决方案而言,通常不太可扩展或可定制。 安全性和隐私通常有限。具体而言,服务条款可能允许这些公司使用您创建的数据来训练其他模型,或者有时项目默认为公开,如果组织未付费等。最终,必须信任服务提供商妥善处理您的数据。 尽管质量可能很高,但需要将点解决方案与其他工具串联在一起通常会带来额外的工作。在大公司中,这种情况尤其普遍,因为该工具可能适用于一个团队,但对另一个团队可能不适用。
  • 成本考虑: 这类工具通常有一个"长尾"成本。它们可能有每个注释的成本。或者,训练模型可能是免费的,但提供它的成本是适用的(并且没有下载选项)。 中间工具

通常,大多数工具趋向于谱系的一端,即较小的,如前所述,或较大的用例,我将在一会儿介绍。还有一些工具介于这两个极端之间。 通常,在一个解决方案中寻找以下几个关键要素: 更多意识到训练数据作为一个独立的、独立的概念。 对多个解决方案路径的更多认识。不是"一条真实的道路",而是更加灵活。 更高比例的景观覆盖。例如,可能有更多的集成和灵活性。 更加企业友好的概念。可能提供本地安装或由客户控制的安装。更注重定制和功能而非"黄金路径"思维。 这些工具可能能够提供严肃的结果,并且在您的团队已经发展到较小工具但尚未拥有更大工具资源的情况下可能是合适的。 套件并不自动更好。然而,通常较小的工具很难"升级"到更高级别,而大多数较大的系统通常只能部分使用,并且它们在这种中间路径上非常合适。 最好的平台提供了两个极端之间的解决方案,"脆弱的单一AutoML"和"什么也不做"之间。

基本上,这意味着专注于人与计算机监督方面;如何将数据传递给机器学习概念,以及如何从中获取数据。您需要考虑如何运行自己的模型,安排资源,并与其他系统集成,例如AutoML和专门的训练和托管系统等。

隐藏的假设

训练数据工具带来了许多好处,而且至关重要。然而,为了获得这些好处,您需要考虑一些常见的假设。其中一些通常是真实的,而另一些通常是错误的:

真实:团队很重要。 最终用户、管理员、专门的标注者、工程师、产品开发者、高管等等。这是一个由组织中许多人接触的产品,通常具有非常不同的目标、关切和优先级,将他们的意见纳入考虑是至关重要的。

真实:您的团队中必须有技术人员。 需要有人安装、设置和维护系统。即使对于100%基于服务的工具,具有最新向导的情况下,仍然假定至少有一个人在技术上熟练,而另一个人了解训练数据。

真实:您必须进行设置。 大多数这类工具都需要设置。虽然有各种各样的工具将一个狭窄定义的区域划分出来并减少所需的工作量,但那不真正是数据编程,只是在使用一个狭窄定义的服务。

真实:您必须考虑成本。 所有工具都有一定形式的成本。即使是现代商业开源工具也有许可成本,并且都有硬件和设置成本。

真实:您需要时间来适应。 某些工具的复杂性相当惊人。截至2022年,开源Diffgram有超过1400个文件和50万行代码。

错误:您必须使用图形处理单元(GPU)。 模型训练通常受益于使用处理加速器,如GPU。但实际上,在自动化中使用模型并不需要GPU。此外,在有限数据集的情况下进行训练由于其较小的规模,不太受益于GPU的性能。

错误:您必须使用自动化。 自动化有时是有用的,但并非必需。不正确的使用可能会产生负面结果,经常产生不良的反馈循环。

安全性

根据2022年Linux Foundation的一份报告,"安全性是影响组织将使用哪些软件的首要优先事项。许可合规性是第二个优先事项。"2

安全体系结构

对于高安全性的安装,通常最好是托管自己的训练数据工具。这使您完全掌握自己的安全实践。您可以控制所有系统方面的加密访问密钥和位置,从网络到静态数据。当然,您随后可以设置自己的自定义安全实践。

攻击面

安装是考虑您可能暴露的攻击面的起点,因为网络安全是网络安全的基础。不可访问网络的攻击面较低。例如,如果您已经有一个加固的集群,您可以在该网络内安装您的软件并使用它。如果没有可用的加固集群,您可以创建一个专门用于训练数据的新集群。

安全配置

您的安全性取决于您的配置。例如,您可以通过引用存储对象或直接将它们摄入到定义的存储桶中。您可以使用OIDC(OpenID Connect)或不使用。您可以考虑BLOB签名的具体实现并相应地配置它。

安全好处

安装解决方案有许多安全好处。这些包括: 您可以根据您的真实和当前的安全状况设置真正的安全性,包括所有密钥。 您控制网络安全、注释数据库、原始数据等一切。 您控制整个密钥链。 您了解其他威胁并可以采取行动,例如锁定特定版本。 通常可以检查源代码。

用户访问

通常首先考虑的是用户访问样本的能力。考虑一个拥有智能辅助设备的公司。也许审阅者在设备错误触发并麦克风意外打开时听取音频数据。 或者考虑某人纠正系统以检测婴儿照片等。同意有许多层次,需要仔细考虑。

在消费者方面,通常有几个关于同意的一般类别: 无权直接使用的同意(仅匿名化) 有同意用于训练模型------可能受到时间限制 已获得同意,但数据可能包含可能在模型中敏感的个人身份信息 在商业方面,或者在更多的面向企业的应用程序中,系统可能包含机密客户数据。这种商业数据可能比任何单个消费者记录更有价值。 此外,可能会有类似HIPAA或其他合规要求的政府法规需要考虑。

复杂,对吧?

可能会出现的其他日常考虑事项: 标注者是否可以下载数据到他们的本地机器? 标注者在完成(提交)记录后是否能够访问记录?还是它们默认被锁定了? 在软件方面,通常有两个主要模型,大多数方法都属于其中之一: 仅任务可用性。这意味着作为注释者用户,我只能看到我的当前分配的任务(或一组任务)。 项目级别。作为标注者,我可以看到一组任务,甚至是多组任务。 作为项目管理员,两个重要的决定基本上是关于: 构建数据流的结构,以便仅当数据被标记为已同意,并/或符合其他PII要求时,才能进入注释任务流。 决定标注者看到任务的级别。

数据科学访问

自然而然,数据科学家必须在某个时候访问这些数据以进行相关工作。通常,数据科学家对"查看"数据有相当自由的手段。更严格的系统可能只允许发送查询并接收样本,大部分数据直接发送到训练设备。这样可以绕过数据科学家的本地机器或用户特定服务器。

值得注意的是,数据科学家访问的单一漏洞往往比标注者的漏洞严重得多,按数量级计算。即使你能够绕过各种安全机制并存储你看到的所有数据,标注者可能只能看到大项目的一小部分数据。然而,数据科学家可能有数百倍的访问权限,坏演员会获得这些权限。

根级访问

超级管理员类型的用户、IT管理员等可能具有某些级别的根系统访问权限。这可能被分类为应用程序中的超级管理员,并且他们可能直接访问数据库。这是最高特权的访问,应谨慎控制。

开源和闭源

开源与闭源是一个与软件同样古老的争论,但近来这个问题变得尤为重要。我想花点时间来强调一些我在涉及训练数据的概念方面看到的具体情况。 在迅速变化的训练数据领域中,开源和闭源的标注工具值得特别考虑,因为这一新一代的工具大多是闭源的。 曾经有过许多开源的标注工具项目,有些已有10多年的历史。然而,总体而言,这些项目大多不再维护,或者非常专业化,不是通用工具。目前,两个通用的"第二代"开源标注工具是Diffgram和Label Studio。当然,还有许多其他工具,但大多数都专注于非常特定的考虑或应用。

开源软件有许多优点,尤其是在这个注重隐私的领域。您可以准确地看到源代码对您的数据的操作,确保没有不正当的活动。 开源也有一些缺点。值得注意的是,系统本身的初始设置可能更加困难(不是应用程序设置本身,在任何一种情况下都相似,只是整个软件的实际安装)。 无论是开源软件还是闭源软件,商业成本可能是相似的;仅仅因为代码是开源的,并不意味着许可是无限制的。在商业支持的项目背景下,易用性通常是相似的。 使用开源工具快速启动

有些工具在几分钟内在开发环境中安装,在几小时或几天内进行中等生产设置。大多数都有可选的商业许可证可供购买。这比与销售团队交谈更快,比有限的SaaS试用更真实。 看树木和森林

环境设置和调整初始期望是最困难的事情之一。在长时间内向多个用户组提供价值的情况下,很容易过分关注感知到的设置/第一印象,而不是关注实际价值。 能力胜过优化

对于某些人来说,某种优化可能对其他人来说是次优的。例如,在完成任务时多出一个"确认"提示可能对某些人来说是巨大的负担,而对其他人来说则是一个关键的步骤。 考虑到Excel有200多个常用快捷键。我猜测大多数用户只知道其中的一小部分,但他们完全可以很好地使用Excel进行工作。另一方面,有些人对优化非常关注,比如热键的具体细节。 随着标注变得越来越复杂,新用户加入,人们开始远离快捷方式。该领域越来越强调确保用户界面具备所需的功能,并以合理的上下文显示优化,以便用户可以利用这些功能。 不同流程中的易用性

更新现有数据的易用性通常与创建全新注释有很大不同。 非常不同的假设

我尝试过一个流行的标注用户界面,其中删除键会删除所有视频帧中的整个系列。这就像精心制作整个电子表格,然后碰到删除键,结果它删除了整个表格!即使我只是在测试,当那发生时,我也感到震惊! 当然,其他人可能会说,这样更容易使用,因为我只需要选择一个对象,然后点击删除。我不必担心系列的概念,也不必担心它出现在多个帧中。同样,这取决于您的用例,这里什么是正确的。如果您有复杂的逐帧属性,对于可能是几天工作的单一删除来说可能是不好的。相反,如果您有一个简单的实例类型,在某些情况下可能是期望的。 再次,通过管理员和用户的定制来拯救。您是否想要在视频的下一帧中看到上一个注释?还是不想?选择对您来说合适的选项,然后设置并忘记它。 看设置,而不是第一印象

即使是看似简单的事情,比如标签标签的字体大小、位置和背景,都非常依赖于用例。对于某些人来说,看到任何标签可能会妨碍他们。对于其他人来说,整个含义在属性中,不显示它会显著减缓进展。

多边形大小、顶点大小等也是一样。对于某个用户来说,如果多边形点难以抓取和移动,他们可能会感到不满意,而另一个用户可能根本不希望有点,以便在医学图像上能够清晰看到分割线。 它是否易于使用,还是只是缺少功能?

另一个权衡是,一些供应商可能会拒绝默认启用某些功能,需要计划每个流程。例如,这可能意味着在视频中无法使用实例类型,或者可能不会存在设置等。在评估时,要深入考虑对更复杂场景的持续使用和需求,以及该服务是否能够处理这些需求。 定制是游戏规则的名称

在软件的所有级别,人们越来越期望具有定制功能。从嵌入界面、注释设置和管理员配置,到实际更改软件本身,我们都认为我们将能够在每个级别将其定制为自己的。尝试了解对于您提供的服务来说什么是"难"和什么是"容易"。例如,对于闭源提供商来说,添加新的存储后端可能不是优先事项。对于开源项目,您可能能够自己贡献这一点,或者鼓励社区中的其他人这样做。此外,您可能能够更好地范围化和理解更改的影响和涉及的成本。

在企业方面,试图了解该软件对于您的用例真正的核心优势是什么。它是一个完全集成的平台吗?它是数据存储和访问层吗?是工作流程还是注释用户界面吗?由于这些工具在范围和成熟度上差异巨大,因此很难进行比较。例如,一个工具可能在空间标注UI方面更为先进,但在许多其他维度上明显缺乏,比如更新数据的能力、摄取、查询数据等。

另一方面,如果供应商没有提供主要功能,如数据查询、流式处理、基于向导的摄取等,这些可能都是需要多个月、多年的史诗故事,甚至可能永远都不会添加的功能。由于这是一个新领域,具有截然不同的假设和期望,我真的鼓励您首先考虑主要功能,然后查看更新的速度和改进的执行。在这个新领域,能够快速适应的供应商特别有价值。

另一位用户在不同的用户界面中体验到,删除的单个点是不可"恢复"的,这意味着,如果例如手在关键点图上被遮挡,并以此方式标记,如果他们试图撤消它,他们无法找回它。在Diffgram中,系统的设置方式使得在每个点的基础上轻松维护了这一特性。

历史

开源标准

根据我的估计,2017年,全球可能只有不到100人从事商业可用的训练数据工具的开发。到了2022年,至少有40家公司中的1500多人直接为专注于训练数据的公司工作。遗憾的是,绝大多数个人在封闭源软件中从事不同的项目。像Diffgram这样的开源项目为训练数据工具提供了一个光明的未来,无论用户所在国家的财务状况如何,都可以共享对这些工具的访问。

开源工具还打破了关于什么是魔法和什么是标准的幻觉。想象一下,为了获得一个承诺提供10倍更快查询的数据库供应商,您花费了更多的宝贵预算,结果发现他们所做的一切只是注入了额外的索引。现在在某些情况下,这可能是有价值的,但您至少希望事先知道您支付的是索引的概念,而不是易用性!同样,像预标注、交互式标注、流程工作流等训练数据概念都在开源工具中得到了突显。

认识到需要专用工具 作为一个行业,当我们首次开始使用训练数据时,人们急于只是"完成任务"以开始训练模型。 我们考虑的问题是:"什么是人类 Jam 注释到数据之上,然后转换成模型可用格式的最简单的UI?"这是人们第一次意识到现代机器学习方法的强大之处,并且只是想知道"这能行吗?""它能做到吗?""哇!" 问题迅速出现。当我们将项目从研究转移到分期或甚至生产阶段时会发生什么?当标注者不是编写代码的同一个人,甚至不在同一个国家时会发生什么?当有数百甚至数千人进行标注时会发生什么? 在这一点上,人们通常开始意识到他们需要某种形式的专用工具。早期版本的训练数据工具回答了一些这些问题,允许远程工作、某种程度的工作流程优化和可伸缩性。然而,随着对系统的压力增加,更多的问题进入了视野。 更多的使用,更多的需求

说得很明白,一旦有大量人员每天都在工具环境中度过整整的工作日,每天8小时,每天都在工作,每个人的期望和压力就会增加。 迭代模型开发,例如预标注,对人员不断改进训练数据提出了压力。虽然这是可取的,但它也对工具和人员施加了更大的压力。自动化方法使用得越频繁,压力就越大。静态预标签,在第8章中解释,只是冰山一角。有些自动化需要交互,需要数据科学、标注者和标注工具之间的额外交互。 为了满足这些需求,许多功能已被添加。随着工具提供商添加了更多功能,拥有流畅工作流的能力成为一个新问题。过多的功能导致了过多的自由度,因此产生了混乱。作为回应,开发人员感到有责任限制这些自由度。 新标准的出现

工具提供商现在已经有了几年的经验,并学到了很多东西,从专门针对训练数据的新构建概念到多样的实现细节。开发的现成工具使庞大的东西变得可以管理。这使您能够使用这些新标准,并以与您和您的项目相关的抽象层次进行工作。 是的,我们正处于标准训练数据的早期阶段。作为一个社区,我们正在开发从概念上的模式、预期的注释功能到数据格式等的一切。对于训练数据工具的范围和标准功能有一些共识,但还有很长的路要走。虽然自然存在一些重叠,但大多数功能区域因媒体类型而异。例如,文本、3D和图像的自动化都是不同的。 这里的认识是,定制的"Rube Goldberg"机器可能能够解决一些复杂性,但未能覆盖所需的广阔空间。除了对历史的学术兴趣外,我们还有了解训练数据基础知识的实际原因。作为今天做决策的人,进展的背景有助于确定价值的来源。

我喜欢把这看作是3万英尺的高度视图。所以,如果您在考虑自动化改进,值得反思的是它是否适用于与您相关的所有媒体类型。退后一步,获得更广泛的视角可以作为一个提醒,任何领域的任何弱点,无论看起来多么微不足道,都有可能成为一个瓶颈。如果难以获取和导出数据,优秀的标注工作流的价值就会降低。

在您的需求旅程中,您现在处于何处?您已经看到了对专用工具的需求吗?您需要获得最高质量的工具吗?您需要一套涵盖广阔训练数据领域的套件吗? 我们都喜欢熟悉的事物。正如办公套件提供了一个熟悉的环境,具有明确的规范,软件套件提供了一个类似的期望和经验集,从用户界面到命名约定,训练数据平台旨在做同样的事情------在多种格式中创建熟悉的体验,无论是文本还是图像。 当然,在任何给定的时刻,一个团队可能会专注于特定的数据类型或类型(多模态)。熟悉他们的工作环境有助于工人不仅仅基于对类似任务的知识来完成任务。加入团队的新人可以更快地适应,共享资源可以更轻松地在项目之间传递,等等。 通常,关于工具选择的决策过程遵循以下步骤: 认识到需要专用工具 意识到技术空间的复杂性要求最佳的工具------而不仅仅是任何工具 认识到用户空间的复杂性要求熟悉和共享的理解 正如我将在第7章中更详细地解释的,如果您正在考虑建立培训数据主管职位,那么对于该团队来说,熟悉的工具至关重要。同一个标注者可能很容易在多种类型的媒体和项目之间切换。这种灵活性还有助于解决数据科学关切的广泛范围。

拥有一套工具并不意味着您拥有一切的"一站式"解决方案。数据科学可能有自己的一套工具,用于训练、服务等,但这并不排除特定兴趣领域的点解决方案。这更像是一个操作顺序的概念------我们想从最大的操作开始,即主套件,然后在必要时进行补充。

总结

您现在已经有了一份路线图,并对设置培训数据系统的过程有了一般的了解。从安装、标注和嵌入到机器学习工作流和优化,我提供了对培训数据工具的简要概述,然后更深入地讨论了权衡和考虑因素。

您是否对小型、中型和大型项目之间的不同关注点有所把握?如果没有,我鼓励您在继续阅读之前查看"权衡"和"规模"。培训数据方法在项目规模不同的情况下可能有很大的变化,因此在前期明确您当前的学习目标是很重要的。

最后,正如您从历史部分所看到的,培训数据工具已经走过了很长的路,我们仍然看到标准的改进。很好地设置工具是对模式、原始数据、质量、集成以及人类角色进行实际实施的体现。

既然您已经对设置过程、可用工具和权衡有了概览,现在是时候深入了解模式了。标签和属性是什么?空间表示是什么?我们如何在培训数据工具中实施模式?模式与机器学习任务和原始数据的关系是什么?请在下一章中了解。

相关推荐
985小水博一枚呀3 小时前
【深度学习|可视化】如何以图形化的方式展示神经网络的结构、训练过程、模型的中间状态或模型决策的结果??
人工智能·python·深度学习·神经网络·机器学习·计算机视觉·cnn
LluckyYH4 小时前
代码随想录Day 46|动态规划完结,leetcode题目:647. 回文子串、516.最长回文子序列
数据结构·人工智能·算法·leetcode·动态规划
古猫先生5 小时前
YMTC Xtacking 4.0(Gen5)技术深度分析
服务器·人工智能·科技·云计算
一水鉴天5 小时前
智能工厂的软件设计 “程序program”表达式,即 接口模型的代理模式表达式
开发语言·人工智能·中间件·代理模式
Hiweir ·6 小时前
机器翻译之创建Seq2Seq的编码器、解码器
人工智能·pytorch·python·rnn·深度学习·算法·lstm
Element_南笙6 小时前
数据结构_1、基本概念
数据结构·人工智能
FutureUniant6 小时前
GitHub每日最火火火项目(9.21)
人工智能·计算机视觉·ai·github·音视频
菜♕卷6 小时前
深度学习-03 Pytorch
人工智能·pytorch·深度学习
明明真系叻6 小时前
第十二周:机器学习笔记
人工智能·机器学习
跟着大数据和AI去旅行6 小时前
使用肘部法则确定K-Means中的k值
python·机器学习·kmeans