CN115244552A - 自我优化的标注平台 - Google Patents

自我优化的标注平台 Download PDF

Info

Publication number
CN115244552A
CN115244552A CN202080088115.4A CN202080088115A CN115244552A CN 115244552 A CN115244552 A CN 115244552A CN 202080088115 A CN202080088115 A CN 202080088115A CN 115244552 A CN115244552 A CN 115244552A
Authority
CN
China
Prior art keywords
model
annotation
training
data
annotator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080088115.4A
Other languages
English (en)
Inventor
R·M·麦凯
C·E·马丁
F·L·雷伊三世
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alegion Inc
Original Assignee
Alegion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alegion Inc filed Critical Alegion Inc
Publication of CN115244552A publication Critical patent/CN115244552A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/091Active learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/0985Hyperparameter optimisation; Meta-learning; Learning-to-learn
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Image Analysis (AREA)
  • Credit Cards Or The Like (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

用于优化机器学习标注器的系统、方法和产品。在一种方法中,接收标注请求并使用优胜者模型生成对应的标签推断。选择标注请求的一部分和对应的推断用作训练数据,并为所选择的请求生成标签,从而产生对应的增强结果。增强结果的第一部分作为训练数据提供给实验协调器,该协调器然后使用这些增强结果训练一个或多个挑战者模型。增强结果的第二部分作为评估数据提供给模型评估器,该模型评估器评估挑战者模型和优胜者模型的性能。如果其中一个挑战者模型的性能高于优胜者模型,那么模型评估器提升该挑战者模型以替换优胜者模型。

Description

自我优化的标注平台
相关申请的交叉引用
本申请要求于2019年12月19日提交的美国临时申请No.62/950,699的优先权,该申请通过引用并入本文,就像整体阐述一样。
背景技术
机器学习(ML)技术使得机器能够基于历史观察进行学习以自动且准确地做出预测。训练ML算法涉及向ML算法馈送训练数据以构建ML模型。ML模型的准确性取决于用于构建ML模型的训练数据的数量和质量。
整个行业都围绕训练数据的准备和标注在发展。许多公司提供平台,通过该平台将示例数据分发给人类用户以进行手动标注。可能基于标注数据所需的人类专业知识、用于确保标注数据准确性的人类审核轮数以及其它因素,向客户收取标注服务费用。人们标注训练数据的需求可能会在时间和金钱方面产生巨大的成本。因此,需要一种用于标注数据的新范例。
发明内容
本公开详述了用于优化标注系统的性能以高效地产生高置信度标签的系统、方法和产品。这些实施例包括主动学习组件、高置信度标注组件以及实验和训练组件,它们组合使用以优化系统生成的标签的质量,同时降低生成这些标签的成本。
一个实施例包括一种用于优化机器学习(ML)标注器的方法,该标注器接收多个标注请求,每个标注请求包括要标注的数据项。对于每个标注请求,由迭代模型训练系统的当前ML模型生成对应的推断结果。推断结果包括与数据项对应的标签推断和一个或多个相关联的自我评估的置信度度量。基于生成的推断结果,选择标注请求的至少一部分。使用具有一个或多个标注器的标注器的有向图来校正针对所选择的标注请求生成的推断结果,其中有向图基于相关联的质量和成本度量为所选择的部分中的每个标注请求生成增强结果。增强结果包括与数据项对应的标签,其中标签满足目标置信度阈值。增强结果的至少第一部分作为训练数据到训练数据存储装置中。监视一个或多个触发输入以检测训练触发,并且响应于检测到一个或多个训练触发,将增强结果的第一部分提供给实验协调器,该协调器使用增强结果的这一部分迭代地训练ML模型。增强结果的至少第二部分作为评估数据被提供给模型评估器。模型评估器使用增强结果的第二部分评估ML模型。响应于评估,模型评估器确定是否要更新ML模型。如果模型评估器确定要更新ML模型,那么它更新ML模型。
替代实施例包括用于优化机器学习(ML)标注器的方法,其中接收标注请求并使用优胜者模型为每个标注请求生成对应的标签推断。基于生成的标签推断,选择标注请求的一部分用作训练数据,并生成校正的标签以产生每个所选择的请求的增强结果。增强结果的第一部分作为训练数据被提供给实验协调器,该协调器使用这些增强结果训练一个或多个挑战者模型。在训练了挑战者模型之后,将增强结果的第二部分提供给模型评估器,该模型评估器使用该数据评估挑战者模型和优胜者模型的性能。如果确定挑战者模型中的一个具有比优胜者模型更高的性能(例如,如果挑战者模型满足指示更高性能的评估标准集合),那么模型评估器提升该挑战者模型来替换优胜者模型。
在一些实施例中,该方法还包括在生成对应的标签推断之前调节每个标注请求,以及在生成标签推断之后对标注请求和对应的标签推断去调节(deconditioning)。调节标注请求可以包括将标注请求从与标注请求相关联的数据域转换到与优胜者模型相关联的数据域。相反,对标注请求和对应的推断去调节可以包括将标注请求和推断从优胜者模型的数据域转换到标注请求的数据域。
在一些实施例中,选择标注请求的部分用作训练数据包括应用主动学习策略,根据主动学习策略,该策略识别标注请求中对于训练比标注请求的其余部分更有用的标注请求。
在一些实施例中,该方法还包括:优胜者模型生成与对应标签推断相关联的每个标注请求的置信度指示符,并且选择标注请求的部分用作训练可以包括识别标注请求的较低置信度部分和标注请求的较高置信度部分。
在一些实施例中,该方法还包括将增强结果的第一部分存储在训练数据存储装置中,监视一个或多个触发参数以检测触发事件,以及响应于检测到触发事件,将增强结果中的至少一些作为训练数据提供给实验协调器。
然后,实验协调器可以响应于检测到触发事件而生成一个或多个挑战者模型,其可以包括为每个挑战者模型配置对应的唯一超参数集合,并使用增强结果的一部分训练每个唯一配置的挑战者模型。触发事件可以包括自先前触发事件以来经过的时间、预定数量的增强结果的累积、或各种其它类型的事件。触发参数可以包括一个或多个质量度量。
可以调节增强结果以将它们从与标注请求相关联的数据域转换到与实验协调器相关联的数据域。
一个替代实施例包括ML标注器,其包括记录选择器、优胜者模型、实验协调器和模型评估器。本实施例中的记录选择器被配置为接收标注请求并将它们提供给优胜者模型,该优胜者模型为每个标注请求生成对应的标签推断。记录选择器被配置为基于生成的标签推断选择标注请求的一部分用作训练数据。ML标注器被配置为针对所选择的部分中的每个标注请求生成对应的高置信度标签,从而产生对应的增强结果。实验协调器被配置为接收增强结果的第一部分作为训练数据,并使用增强结果的这部分训练一个或多个挑战者模型。模型评估器被配置为接收增强结果的第二部分作为评估数据并且使用增强结果的第二部分评估挑战者模型和优胜者模型。然后,响应于确定一个或多个挑战者模型中的一个具有比优胜者模型更好的性能(例如,满足性能评估标准集合),ML标注器被配置为提升挑战者模型以替换优胜者模型。ML标注器可以包括执行如以上结合示例性方法描述的功能的组件。
另一个替代实施例包括计算机程序产品,该计算机程序产品包括存储指令的非暂态计算机可读介质,该指令可由一个或多个处理器执行以执行如上所述的操作。
许多替代实施例也是可能的。
当结合以下描述和附图考虑时,将更好地认识和理解本公开的这些和其它方面。但是,应该理解的是,以下描述虽然指示了本公开的各种实施例及其许多具体细节,但以说明而非限制的方式给出。在不脱离本公开的精神的情况下,可以在本公开的范围内做出许多替换、修改、添加或重新布置,并且本公开包括所有此类替换、修改、添加或重新布置。
附图说明
包括伴随并形成本说明书的一部分的附图以描述本公开的某些方面。应当注意的是,附图中所示的特征不一定按比例绘制。参考以下描述,结合附图,可以更全面地理解本公开及其优点,附图中相同的附图标记指示相同的特征,并且其中:
图1是标注环境的一个实施例的示意图;
图2是标注器的一个实施例的示意图;
图3是标注器的一个实施例的详细视图的示意图;
图4是人类标注器的处理的一个实施例的示意图;
图5是ML标注器的一个实施例的示意图;
图6A和6B是ML标注器体系架构的一个实施例和用于优化该体系架构中的标注模型性能的方法的示意图;
图7是图像分类标注器的一个实施例的调节管道和标注器内核核心逻辑的示意图;
图8是被配置为分解输入请求的标注器的一个实施例的示意图;
图9是被配置为分解输入请求的标注器的另一个实施例的示意图;
图10是被配置为分解输出空间的标注器的一个实施例的示意图;
图11A、图11B、图11C、图11D图示了平台服务和流程的一个实施例;
图12是配置标注平台的一个实施例的示意图;
图13A和图13B是ML标注器的一个实施例的声明性配置的示意图;
图14是人类标注器的一个实施例的声明性配置的示意图;
图15是CDW标注器的一个实施例的声明性配置的示意图;
图16是配置标注平台的一个实施例的示意图。
具体实施方式
实施例及其各种特征和有利细节将参考附图中所示并在以下描述中详述的非限制性实施例得到更充分的解释。省略了对众所周知的起始材料、处理技术、组件和装备的描述,以免不必要地模糊实施例的细节。但是,应该理解的是,详细描述和具体示例仅作为说明而不是作为限制给出。根据本公开,本领域技术人员在基本发明构思的精神和/或范围内的各种替换、修改、添加和/或重新布置将变得清楚。
本文描述的实施例提供了用于注释数据的综合数据标注平台。该平台结合了人类和机器学习(ML)标注器来执行各种标注任务。平台的实施例及其工作流可被配置为独特的标注要求。该平台支持机器学习增强人类智能的工作流。该平台可扩展至多种机器学习领域,包括图像处理、视频处理、自然语言处理、实体解析及其它机器学习领域。
根据本公开的一个方面,标注平台允许用户(“配置者”)配置用例,其中每个用例描述平台102的用于处理标注请求的配置。用例配置可以包括例如指定要使用的标注器内核核心逻辑和调节组件、配置平台的主动学习方面、配置条件逻辑(在判断流程通过各阶段时控制判断流程的能力)、配置标注请求分发和配置平台102的其它方面。
根据本公开的另一方面,标注平台提供了一种高度灵活的机制来为用例配置标注平台,其中用例用于实现包括一个或多个人类标注器、ML标注器和/或其它标注器的处理图。当任务被分配给人类专家时,平台可以在图的节点处停止处理以等待来自人类专家的响应,然后基于响应继续处理。在一些情况下,配置可以定义处理图,其中由ML标注器或人类标注器(或处理图中的其它标注器)提供的标注数据作为训练数据循环回到处理图的ML标注器中。
可以以任何合适的格式指定配置。在一些实施例中,配置的至少一部分使用声明性领域特定语言(DSL)来表达。因此,可以使用人类可读和机器可读的声明性模型来实现配置,其中声明性模型为用例提供处理系统的定义。
根据本公开的另一方面,标注平台包括用于各种类型的标注问题(例如,图像分类、视频分类、自然语言处理、实体识别等)的用例模板。用例模板对用例的配置中应包含的内容做出假设,因此需要来自人类配置者的最低限度输入。该平台与以前的标注方法相比可以提供更多的数据驱动和以用例为中心的与最终用户的互动。例如,根据一个实施例,最终用户选择他们遇到的问题的类型(例如,图像分类、自然语言处理或平台支持的其它问题类别)、提供关于他们将提供的数据的信息、定义小的约束集合(例如,时间、成本、质量)并指定他们想要返回的数据/标签。根据本发明的一个方面,平台可以存储用例的声明性模型,其中声明性模型包括用例模板指定的配置假设和人类用户提供的相对少量的配置。
根据本公开的另一方面,平台包括任务分发功能。任务分发可以包括将标注请求/任务路由到机器学习标注器或人类标注器。标注请求/任务的路由决策可以部分地基于ML标注器的主动学习配置和人类专家的资格。任务分发还可以包括基于置信度将任务动态分发给ML标注器和人类标注器。
根据本公开的另一方面,平台实现质量评估机制来对标注器实例进行评分。
根据本公开的另一方面,标注平台实现劳动力管理,包括随着时间的推移在一个或多个技能领域对工作者进行评分。
根据本公开的另一方面,标注平台可以与信誉系统交互。信誉系统测量和记录标注器实例的工作的准确性,并为这些标注器实例生成分数。评分方法可以在信誉系统实施方式上有所不同。评分的非限制性示例实施例在相关的临时申请No.62/950,699,附录1,第III.B.2节评分和测量准确性中进行了描述。标注平台与此类信誉系统交互以(1)提供信息,包括但不限于标注器的唯一标识符、执行的标注任务类型的描述符、标注器提供的标签和用于比较的正确(CORRECT)标签,以及(2)消费由信誉系统产生的信息,包括针对特定标注器实例的分数和这些分数如何被计算的来源(provenance)描述。
存在许多平台、框架和算法可用于ML模型训练和推断。作为示例但不限于,ML模型可以在DOCKER容器中进行训练(例如,包含用于训练模型的库的DOCKER容器,或在诸如AMAZON SAGEMAKER、GOOGLE AUTOML、KUBEFLOW的平台上(SAGEMAKER来自AmazonTechnologies公司,AUTOML来自Google,DOCKER出自Docker公司)。此外,存在可以被使用的各种模型框架(例如,Google的TENSORFLOW、PyTorch和MXNet)。此外,存在许多ML算法(例如,K-均值、逻辑回归、支持向量机、贝叶斯算法、感知器、卷积神经网络)。最后,对于平台、框架和算法的每种组合,存在许多数据变换和配置参数,它们可以应用于训练处理,以提高训练模型质量、减少所需的标注训练数据的量、减少训练所需的计算资源等。这些配置选项通常被称为超参数,并且经常用实验来找到最佳值。训练模型通常需要深入了解ML平台、框架、算法,和数据变换选项和技术,以及与上述所有相关联的配置选项。
类似地,使用模型进行推断存在多个平台选项。此外,一旦模型被训练,就存在多种方式与模型交互。例如,一些ML模型API支持一次提交一个标注请求,而其它API支持批量标注请求。
因此,如将认识到的,存在许多选项可用于训练ML模型或使用ML模型进行推断。本文描述的实施例提供了可以利用各种ML集成(平台、框架或算法)的标注平台。标注平台将配置处理抽象化,使得最终用户可以指定与将用于训练和推断的平台、框架或算法无关的ML模型的训练配置。
如上所讨论的,标注平台可以提供用例模板集合,其中每个用例模板对应于要解决的标注问题(例如,“图像分类”、“视频帧分类”等)并包括ML标注器配置。标注平台的最终用户可以选择标注问题(例如,选择用例模板)、提供最少量的训练配置并根据用例提供要标注的数据。用例模板可以指定用于针对问题类型训练ML模型的ML平台、ML框架、ML算法、数据变换和超参数值。在一些情况下,标注平台先验地指定用于针对标注问题训练ML模型的平台、框架、算法、数据变换和超参数值。在其它实施例中,标注平台可以指定要使用的一些数量的平台、框架、算法、数据变换和超参数值,并且标注平台可以使用最终用户提供的数据进行实验,以找到用于用例的最佳组合。
在运行时,标注平台设置指定的ML平台、框架、算法、数据变换和超参数值,以使用最终用户提供或平台产生的训练数据来训练ML模型。最终用户不需要知道这些训练元素的细节。实际上,标注平台使用用例模板提供的配置以及实验,为客户的用例产生高质量的训练模型。
实施例提供的优点在于,最终用户只需为标注平台指定少量配置信息,就可潜在地使用多个ML平台、框架、算法、数据变换和超参数值来为用例训练多个模型。标注平台可以基于用例的配置不断地重新训练多个模型。
标注平台的这些和其它方面可以从以下描述中得到更好的理解。
图1是用于标注训练数据的环境100的一个实施例的示意图。在所示实施例中,标注环境100包括通过网络175耦合到各种计算设备的标注平台系统。网络175包括例如无线或有线通信网络、互联网或广域网(WAN)、局域网(LAN)或任何其它类型的通信链路。
标注平台102在计算机—例如,一个或多个服务器—上执行,其中一个或多个处理器执行实施在一个或多个计算机可读介质上的指令,其中指令被配置为执行与本发明的实施例相关联的至少一些功能。这些应用可以包括一个或多个应用(实施在计算机可读介质上的指令),该一个或多个应用被配置为实现一个或多个接口101,标注平台102利用接口101从ML平台系统130、人类标注器计算机系统140、客户端计算机系统150或其它计算机系统收集数据或向其提供数据。将理解的是,在给定上下文中利用的特定接口101可以取决于标注平台102实现的功能、用于与任何特定实体通信的网络175的类型、要获得或呈现的数据类型、从实体获得数据的时间间隔、在各个实体处利用的系统类型等。因此,这些接口可以包括例如网页、web服务、数据输入或数据库应用,其可以被输入数据或以其它方式由操作者、API、库或期望在特定上下文中使用的其它类型的接口访问。
在所示实施例中,标注平台102包括多个服务,包括配置服务103、输入服务104、有向图服务105、置信度驱动的工作流(CDW)服务106、评分服务107、ML平台服务108、调度器服务109和输出服务115。标注平台102还包括用于多种类型的标注器的标注器核心逻辑111和用于各种类型的数据调节的调节组件112。如下所讨论的,标注器核心逻辑111可以与调节组件112组合以创建标注器110。
标注平台102利用数据存储库114,该数据存储库114可操作以存储获得的数据、在操作期间确定的已处理数据,以及可以应用于获得的数据或已处理数据以生成进一步处理的数据的规则/模型。数据存储库114可以包括一个或多个数据库、文件系统、它们的组合或其它数据存储库。在一个实施例中,数据存储库114包括配置数据116,其可以包括各种各样的配置数据,包括但不限于用于配置有向图服务105、标注器110和标注平台102的其它方面的配置数据。配置数据116可以包括“用例”。在这种上下文中,“用例”是针对处理图的配置。在一些实施例中,标注平台102可以提供用例模板以帮助最终用户定义用例。在所示实施例中,标注平台102还存储用于持久化机器学习(ML)模型的数据(数据119)、用于训练ML模型120的训练数据122、待标注的未标注数据124、置信度数据128、质量度量数据129(例如,标注器实例的分数)和其它数据。
如下所讨论的,标注平台可以将数据分发给人类用户进行标注。为此,数据标注环境100还包括人类标注器计算机系统140,该人类标注器计算机系统140提供将要标注的数据呈现给人类用户并接收指示人类用户输入的标签的输入的用户界面(UI)。
标注平台102还利用ML模型120来标注数据。标注平台102可以实现其自己的ML平台或利用外部或第三方ML平台,诸如托管在ML平台系统130上的商用ML平台。由此,数据标注环境100包括一个或多个ML平台,其中ML模型120可以被创建、训练和部署。标注平台102可以将要标注的数据发送到一个或多个ML平台,使得数据可以被一个或多个ML模型120标注。
客户端计算机系统150提供接口以允许最终用户(诸如提供标注平台102的实体的代理或客户)创建用例并提供输入数据。根据一个实施例,最终用户可以定义用例,其中用例是用于配置平台102以处理未标注数据124的配置信息集合。例如,用例可以指定上传记录的端点、可以下载标注记录的端点、可以下载异常的端点、输出标签列表、未标注数据的特性(例如,媒体特性,诸如尺寸、格式、颜色空间)、管道(例如,数据验证和准备管道)、机器学习特性(例如,ML模型类型、模型层配置、主动学习配置、训练数据配置)、置信度驱动的工作流配置(例如,目标置信度阈值、组成标注器、人类专家劳动力、用于人类输入的任务模板)、成本和质量约束或其它信息。根据一些实施例,用例的至少一部分被持久化为用例的声明性模型,其中声明性模型在逻辑级别描述用例的处理图(标注图)。平台102可以支持各种各样的用例。
在操作中,标注平台102实现用例来标注数据。例如,用例可以指向数据源(诸如数据库、文件、云计算容器等),并为标注器指定用于标注数据的配置。有向图服务105使用标注器的配置并实现标注器110的有向图(例如,以实现用例)来标注数据。在一些情况下,标注器在CDW中实现以标注数据并产生标注的结果数据126,其中工作流包含一个或多个ML模型和一个或多个人类用户来标注数据。CDW本身可以被实现为有向图。
在图的执行期间,相同的待标注数据项(例如,图像、视频、单词文档或其它要标注的离散单元)可以被发送到一个或多个ML标注平台以由一个或多个ML模型120处理以及发送到一个或多个人类标注器计算机系统140以由一个或多个人类用户标注。基于一个或多个标注器110为数据项输出的标签,工作流可以输出最终标注结果。
由有向图服务105实现的有向图的基本构建块是“标注器”。如下所讨论的,标注器的一些示例包括但不限于可执行代码标注器、第三方托管端点标注器、ML标注器和人类标注器以及CDW标注器。
参考图2,标注器(例如,标注器200)使用一个或多个标注实例201获取输入并用标签丰富输入。输入的元素可以被认为是标注请求或问题。换句话说,标注请求可以包括要标注的元素(例如,可以由标注器标注的图像或其它数据单元)。标注的结果可以被认为是对该问题的回答或判断。
输入通过输入管道202被馈送到标注器,并且标注的输出被放置在输出管道204中。标注器未能标注的输入被放置在异常输出管道(异常管道)206中。一些异常可能是可恢复的。这三个管道可以传递数据和标注流控制。这些管道中的每个管道可以具有可配置的预期数据模式。
标注请求可以具有相关联的流控制数据,诸如对可允许的置信度和成本(时间、金钱或其它成本)的约束、要处置或不处置请求的标注实例列表、或控制标注器200如何处置请求的其它相关联的流控制信息。来自标注器200的标注结果是通过标注器200运行调节的标注请求的结果。
如果为标注器指定了答案(输出标注结果),那么通过输出调节管道传递答案。标注器输出的标签可以有多种形式,诸如但不限于:基于回归模型的值输出、类别标签、图像中对象周围的边界框、表征/描述输入的单词串(例如,图像的“替代文本”)、分割的标识(例如,将句子“分块”成主语和谓语)。在一些情况下,标注器还可以输出标签的自我评估的置信度度量。标注器200还可以输出与标注结果相关联的各种其它信息,诸如处理标注请求的标注器实例。
标注器(例如,标注器200)的内部结构的一个实施例在图3中进行了图示。标注器可以被认为是可执行代码的包装器。在一些情况下,可执行代码可以调用第三方托管的端点。配置可以指定要使用的端点、认证信息和其它配置信息,以允许标注器使用端点。在所示实施例中,核心逻辑302的标注器内核被调节层304包围,调节层304将输入/输出数据从外部域转换到内核的原生(native)数据域。如将认识到的,不同的标注器可以具有不同的内核核心逻辑302和调节层304。一些类型的标注器可以包括附加层。
在一个实施例中,平台102包括人类标注器和ML标注器。人类标注器和ML标注器可以被组合成CDW,其也可以被视为一种类型的标注器。人类标注器的内核核心逻辑302被配置为将标注请求分发给各个人类专家,而ML标注器的内核核心逻辑302被配置为利用ML模型来标注数据。由此,每个人类标注器和ML标注器可以被视为对于其后面的一个或多个标注器实例的池的接口。标注器负责将标注请求路由到其池内的特定标注器实例。对于人类标注器,标注器实例是通过用户界面工作的个人(例如,人类专家)。对于ML标注器,标注器实例是部署在模型平台中的ML模型。标注实例可以具有不同的置信度度量、时间成本和金钱成本。
可能需要通过调节层304进行转换,因为内核核心逻辑302外部的数据域可能与内核的数据域不同。例如,在一个实施例中,外部数据域可以是特定于用例的且与技术无关,而内核的数据域可以是特定于技术的且与用例无关。调节层304还可以对入站数据执行验证。例如,对于一个用例,纯黑色图像对于训练/推断可能是有效的,而对于其它用例,它可能无效。如果无效,那么调节层304可以例如包括过滤器以去除纯黑色图像。替代地,它可能拒绝此类输入并发出异常输出。
标注器的调节层304可以包括输入调节、成功输出调节和异常输出调节。这些中的每一个可以通过将调节组件布置到管道中来构建。调节组件执行诸如数据变换、过滤和(去)聚合之类的操作。与标注器类似,调节组件可能具有数据输入管道、数据输出管道和异常管道。
可以根据需要将多个ML标注器、人类标注器或其它标注器一起组合成有向图,使得每个单独的标注器解决整体分类问题的一部分,并将结果聚合在一起以形成整体标注输出。用例的整体标注图可以被抽象地认为是单个标注器,并且每个标注器本身可以被实现为有向图。有向图中可能存在分支、合并、条件逻辑和循环。每个有向图可以包括对每个输入元素的异常或单个输出答案的扇入。在这样的实施例中对标注建模的方法可以是分形的。针对特定用例实现的标注图可能会有所不同,一些图完全依赖于ML标注器,并且另一些图只依赖于人类标注器。
ML标注器和人类标注器和/或其它标注器可以在CDW中实现,CDW可以被认为是封装了其它标注器的集合的标注器。依次咨询封装的标注器,直到达到对答案的配置的阈值置信度。CDW可以通过向多个组成标注器和/或标注器实例提交相同的标注请求来提高标注结果置信度。CDW可以包括ML标注器,它可以随着时间的推移进行学习以执行用例的部分或全部,从而减少对人类标注的依赖,并且因此降低标注数据的时间和金钱成本。
可执行代码标注器
可执行代码标注器将可执行代码与可配置参数打包,以用作可执行代码标注器。可执行代码标注器的配置包括与标注器的可执行代码相关的任何配置信息。除了所有标注器共同的通用配置信息外,可执行标注器的配置将特定于代码。可以被配置的事物的示例包括但不限于:S3存储桶(bucket)前缀、期望的帧速率、要通知的电子邮件地址、批尺寸。
第三方托管的端点标注器
第三方托管的端点标注器可以被认为是可执行代码标注器的特殊情况,其中可执行代码调用第三方托管的端点。第三方托管的端点的配置可以指定命中哪个端点(例如,端点URL)、auth凭证、超时等。
人类标注器
人类标注器充当人类专家劳动力的网关。人类标注器可以封装具有相似特性(成本/能力/可用性等)的人类专家的集合,以及封装将请求路由到个人并将他们的结果路由回标注系统的细节。人类标注器将带有配置的专家选择规则和任务UI规范的入站标注请求打包到任务中。
图4图示了人类标注器400的处理的一个实施例。在所示实施例中,人类标注器400在输入管道402上接收标注请求并在输出管道404上输出标注结果。异常在异常管道406上输出。如上所讨论的,人类标注器400可以包括调节层以调节标注请求和答案。
根据劳动力选择配置410和任务UI配置412来配置人类标注器400。劳动力选择配置410提供用于选择标注请求可以被路由到的人类专家的标准。劳动力选择配置410可以包括例如平台要求、劳动力要求和个体专家要求。在一些实施例中,平台102可以通过各种人类专家平台(例如,Amazon Mechanical Turk市场和其它平台)向人类专家发送任务。劳动力选择配置410因此可以指定标注器的任务可以通过其被路由的(一个或多个)平台。人类专家平台可以具有指定的劳动力(定义的人类专家组)。劳动力选择配置410可以指定来自标注器的任务可以被路由到的定义的人类专家组(即,标注任务可以被路由到的人类标注器实例组)。如果在配置410中针对用例声明了劳动力,那么人类专家必须是该劳动力的成员,以便将标注器400的任务路由到该人类专家。劳动力选择配置410还可以指定向各个专家路由标注器400的任务的标准。作为示例而非限制,劳动力选择配置410可以包括技能声明,该技能声明指示各个工作者(人类专家)必须具有以从标注器向其路由标注任务的技能和最低技能分数。质量监视子系统(QMS)可以跟踪各个人类专家的技能/技能分数。
任务UI配置412指定用于标注任务的任务UI和UI中可用的选项。根据一个实施例,可以为人类标注器专家定义多个任务模板,其中每个任务模板表达用于向人类呈现标注请求以用于标注和接收由人类指派给标注请求的标签的用户界面。任务UI配置412可以指定要使用的模板以及要使得在任务UI中可用的标注选项。
当标注器400接收到标注请求时,标注器400将标注请求与劳动力选择配置410和任务UI模板配置412打包为标注任务,并将该任务发送到调度器服务409(例如,调度器服务109)。调度器服务109是高度可扩展的长期服务,其负责接受来自许多不同标注器的任务并将它们路由到适当的端点,以便人类专家访问任务。一旦工作者接受任务,平台(例如,调度器服务)就为配置的基于浏览器的任务UI420提供服务,然后接受来自专家的任务结果并在将其发送回标注器之前对其进行验证。
同一个标注请求可以被多次提交给单个人类标注器。但是,在一些实施例中,保证不会向同一人类专家(标注器实例)呈现多于一次。面向人类的任务还可以支持产生异常结果,以及异常的原因。
机器学习标注器
如上所讨论的,标注平台102可以实现ML标注器。图5是ML标注器的示意图。ML标注器的核心逻辑可以实现ML模型或连接到ML框架以训练或利用框架中的ML模型。由于ML标注器使用的模型可以被重新训练,因此ML标注器可以随着时间的推移进行学习以执行用例的部分或全部。
如图5中所示,ML标注器利用两个附加的输入管道来训练数据和质量度量,它们参与其训练流程。因此,管道可以连接到ML标注器500的内核代码(例如,内核核心逻辑302),类似于图3中所示的输入管道。
在高层次,ML训练和推断可以被认为是五个功能步骤的管道:输入数据采集、输入数据调节、训练、模型部署和模型推断。
根据一个实施例,获取用于标注的未标注数据和用于训练的标注数据由平台102处置,而不是在标注器500本身内处置。数据可以直接通过端点传入,经由像SQS或Kafka的队列流传输,或者作为指向大对象(blob)存储中的位置的链接提供。标注器可以使用简单的标准库来访问数据。
可以转换数据以准备用于训练和/或推断的数据。通常将需要从原始输入数据到可训练/可推断的数据的一些转换。这可以包括有效性检查、图像操纵、聚合等。如本领域技术人员将认识到的,转换可以取决于被训练或用于推断的ML模型的要求。
训练(和重新训练)是将调节的训练数据转换到可执行模型中或重新训练模型的处理。训练的输出是ML模型,它表示在给定可用训练数据的情况下当前可产生的最佳模型。可以注意到,在一些实施例中,诸如利用集成方法的实施例,ML标注器可以使用从训练产生的多个模型。
训练数据通过其训练数据输入管道502进入ML标注器500。根据一个实施例,该管道仅传送数据,而不标注流控制。训练数据输入管道的模式与标注的输出管道相同。由此,它可能需要调节以能被训练处理使用。在一些实施例中,训练数据在储存库中累积,但可能受制于可配置的数据保留规则。
在一些情况下,最终用户提供的数据或公开可用的数据集可以用作训练数据集。随着附加的训练数据变得可用,可以训练新模型。此外,或者作为替代,训练数据可以来自“oracle”标注器(例如,oracle ML标注器或oracle人类标注器)。假设oracle标注器的输出是正确的,或者至少平台102对于用例可访问的是最正确的。
训练数据增强可以用于通过添加合成训练数据来加强和多样化训练数据语料库。这种合成训练数据可以基于对原始训练数据应用各种变换。
触发训练有多种选项。触发可以简单到一定数量的训练数据记录积累,或者其中的一定百分比的变化。训练触发也可以包含来自质量控制子系统的输入。也可以考虑自上次训练以来的时间。
来自ML标注器500的输出标签是通过部署的ML模型运行调节的标签请求以获得推断答案的结果。该推断可能不是标注图的其余部分可直接使用的形式(由输出管道模式指定),在这种情况下,它通过输出调节管道(例如,在调节层304中)传递。根据一个实施例,ML标注器500输出的标签结果包括输入标签请求、推断的标签和自我评估的置信度测量。
图6A是机器学习标注器500的功能组件的一个实施例的示意图。由用例提供的ML标注器配置可以指定每个功能组件的配置。
图6A还图示了数据标注和训练流程的示例。在图6A的实施例中,ML标注器600包括输入管道602、输出管道604、训练数据输入管道606和质量度量输入管道608。为了简化该图,图6A中没有示出异常输出管道,但将认识到的是,如果在标注器执行中遇到任何错误条件,那么在异常输出管道上发出信号。
ML标注器包括实现或利用ML模型的代码。在一些实施例中,ML标注器可以被实现为在本地运行的模型运行时平台650或远程ML平台系统(例如,ML平台系统130)上的ML模型的包装器。ML标注器配置(下面结合图13A和13B更详细地讨论)可以指定要使用的ML算法。基于指定的ML算法,标注平台102用代码配置标注器以连接到适当的ML平台650,以便训练和使用指定的ML算法。
ML标注器的配置包括通用配置和ML标注器类型特定配置。ML标注器类型特定配置可以包括ML算法配置、训练管道配置和训练配置。ML算法配置指定要使用的ML算法或平台以及ML算法或平台的其它配置(要使用的层等)。在一些情况下,ML算法配置的一部分可以特定于ML算法或平台。训练配置可以包括主动学习配置、超参数范围、限制和触发。训练配置的一部分可以取决于声明的ML算法或平台。ML标注器配置还可以为输入、输出、训练或异常管道指定调节管道。
ML标注器600包括主动学习记录选择器630以选择用于主动学习的记录。配置主动学习记录选择器630可以包括例如指定主动学习策略(例如,最低准确度、FIFO或一些其它选择技术)和要传递用于进一步标注并最终用作ML标注器600的训练数据的批尺寸的记录。
根据一个实施例,主动学习记录选择器630为用例选择所有未标注的记录(或其某个指定数量)(尚未由ML标注器标注的记录)并使那些由ML模型620标注。ML模型620评估其结果(例如,在其结果中提供置信度)。主动学习记录选择器630评估结果(例如,它可以评估与结果相关联的置信度)并将结果的某个子集转发给图中的其它标注器和/或用于增强标注的oracle标注器。增强标注包括为相关联的图像或具有满足指定标准的置信度的其它数据生成标签。增强标注可以导致与图像或其它数据相关联的标签的校正,或者由增强标注生成的高置信度标签可以与由ML模型620生成的标签相同。由ML模型620生成的结果的子集可以替代地被确定为具有足够高的置信度,以至于不需要对这些结果进行增强标注。然后将具有其最终、高置信度(例如,增强的)结果的所选择的记录作为ML标注器的训练数据提供(虽然潜在地由置信度驱动的工作流确定的结果与由ML模型620确定的结果不同)。
ML标注器可以包括调节层,其调节由ML标注器使用的数据。实施例可以包括例如用于调节输入请求的请求调节管道、用于调节标注结果的推断调节管道和/或用于调节训练数据的训练请求和标签调节管道。每个调节管道,如果被包括的话,可以包括一个或多个调节组件。ML标注器配置可以指定用于请求调节、推断去调节以及训练和请求调节的调节组件,并且可以指定如何配置组件(例如,配置可以指定图像尺寸调整组件应该将图像尺寸调整到的图像尺寸)。
在图6A中所示的实施例中,ML标注器600包括调节层,该调节层包括调节标注请求、推断和训练数据的组件。请求调节管道632调节由主动学习记录选择器630经由输入管道602接收的输入标注请求,以将它们从主动学习记录选择器630的数据域转换到优胜者模型620的数据域。在优胜者模型620生成对应于标注请求的推断之后,推断和标注请求被去调节以将它们转换回主动学习记录选择器630的数据域。
可以在输出管道604上将去调节的标注请求和推断提供给将起作用以达到阈值置信度的有向图(该图中未示出),从而生成具有高置信度的标签。这可以包括但不限于可执行代码标注器、第三方托管的端点标注器、ML标注器和人类标注器以及CDW标注器。虽然优胜者模型生成的一些推断可能具有足够高的自我评估置信度,可以将它们提供给客户或作为训练数据提供回系统,但其它推断将具有较低相关联的置信度。这些较低准确度的标注请求和推断由(一个或多个)高置信度标注器处理以生成高准确度标签,具有其对应高置信度标签的记录(例如,增强的结果)在训练数据输入管道606上作为训练数据被提供给训练请求调节管道610。
训练请求调节管道610被提供用于调节训练数据,使得它可以用于训练挑战者ML模型。调节训练数据612被累积在训练数据存储设备中,并且在需要时从该存储设备中检索以训练一个或多个ML模型。在这个实施例中,训练请求调节管道610是调节层的一部分,该调节层还包括调节输入请求的请求调节管道632和调节来自优胜者模型的结果(推断)的推断调节管道634。每个调节管道,如果被包括的话,可以包括如在ML标注器的配置中指定的一个或多个调节组件。
ML标注器600包括训练组件615,其可执行以训练ML算法。训练组件615可以被配置为连接到适当的ML平台650以训练ML算法来创建ML模型。在这个实施例中,训练组件615包括与模型运行时平台650接口以训练多个挑战者模型的实验协调器616。每个挑战者模型使用对应的超参数集合或其它机制进行配置,以便训练多个不同的候选模型(挑战者模型),每个候选模型有其自己独特的会影响请求的标注的特性。ML标注器配置可以指定要在训练期间使用的超参数范围和限制。因此,每个挑战者模型表示确定由不同ML模型配置产生的标注性能的实验。用于训练候选模型的超参数的类型和其它机制可以包括本领域已知的那些。
ML标注器配置可以指定训练触发(触发事件),使得当训练组件615检测到训练触发时,训练组件615发起ML算法的(重新)训练以确定当前活动模型。训练触发可以基于例如标注器接收到的训练数据量、标注器接收到的质量度量、经过的时间或其它标准。
在实验协调器训练不同的候选ML模型之后,挑战者模型评估器618将候选ML模型相互评估并相对于当前活动模型(优胜者模型)进行评估,以确定哪个应该是用于推断标注请求的答案的当前活动模型。可以基于测量候选模型性能的各种不同的评估度量来做出该确定。确定还可以考虑替换优胜者模型的成本(例如,在一些实施例中,挑战者模型可以不被提升来替换优胜者模型,除非挑战者模型的性能超过优胜者模型的性能阈值量,而不是简单地高于优胜者模型的性能)。训练组件615的输出是优胜者ML模型,它表示在给定可用训练数据和实验配置的情况下当前可产生的“最佳”模型。训练组件615因此确定要用作当前活动模型(优胜者模型)以推断标注请求的答案的ML模型。
图6B是用于优化图6A的ML标注器中的ML标注器模型的方法的一个实施例的示意图。
如上所述,ML标注器600操作以优化用于生成对应于标注请求的推断的模型。该处理开始于在ML标注器的输入管道上接收到标注请求(步骤662)。在这个实施例中,标注请求由主动学习记录选择器接收,但是在替代实施例中这可以由另一个组件来执行。标注请求可以被表征为由ML标注器的配置定义,这将在下面结合图13A和13B进行更详细的讨论(例如,参见图13A,1310)。
标注请求由主动学习记录选择器提供给调节层的请求调节管道,使得标注请求可以在它们被提供给优胜者模型之前被调节(步骤664)。在一个实施例中,调节包括将标注请求从原始数据域转换到优胜者模型的数据域,使得优胜者模型将“理解”标注请求(例如,参见图13A,1318、1320)。例如,作为ML标注器输入的标注请求可以具有相关联的名称,但优胜者模型可以被配置为使用索引而不是名称工作。在这种情况下,调节管道将把请求的名称转换成索引,使得优胜者模型可以处理请求。调节还可以涉及诸如调整图像尺寸或将图像从彩色转换成灰度之类的操作(例如,参见图13A,1316)。
调节请求由优胜者模型处理以生成针对请求的结果(推断)(步骤666)。在这个实施例中,优胜者模型还被配置为生成自我评估置信度指示符,该置信度指示符是指示与推断相关联的置信度水平的值。置信度指示符可以指示优胜者模型具有与生成的推断相关联的高置信度水平(即,模型评估推断很可能是准确的),或者它可以指示模型具有较低的置信度水平(即,模型评估推断不太可能是准确的)。处理后的请求和相关联的推断与置信度指示符一起被提供给去调节管道,使得它们可以从优胜者模型数据域转换回原始标注请求的数据域(步骤668)。然后将去调节的请求和推断提供给主动学习记录选择器。
主动学习记录选择器被配置为选择处理后的记录的子集以用于训练挑战者模型并相对于优胜者模型评估它们的性能(步骤666)。标注请求是根据由ML标注器的配置确定的主动学习策略来选择的。在一些实施例中,例如,标注器可以实现策略,其中可以选择当前训练数据集中被认为具有最低准确度、最低自我评估置信度或最低分布表示的记录用于训练(参见,例如图13A,1322)。实现的策略可以规定这些记录的选择,因为它们是优胜者模型表现出最差性能或自我评估置信度的记录,并且因此表示训练应该重点关注以便改进用于生成推断的模型的性能的记录的(一种或多种)类型。在图13A的示例中,主动学习记录选择器被配置为累积记录,然后选择指定数量(例如,512)的记录以进一步处理并用作训练数据。选择策略、所选择请求的数量以及用于选择请求的各种其它参数可根据ML标注器的配置进行配置。
主动学习记录选择器选择的记录被提供给一个或多个高准确度标注器,所述标注器可以是置信度驱动的标注服务的一部分(步骤672)。高置信度标注器可以包括自动标注器和人类标注器。高准确度标注器为每条记录生成高置信度标签结果。由于在本示例中选择了准确度最低的那些记录,因此高置信度标注器生成的标签很可能与优胜者模型生成的推断不同,但如果优胜者模型本身的准确度高,那么生成的标签可以与优胜者模型的推断匹配。当已经为所选择的记录生成高置信度标签时,将生成的标签结果提供给训练数据输入管道606,使得它们可以用于训练和评估目的(步骤674)。
经由训练数据输入管道输入的高置信度标签结果被提供给训练调节管道610,其执行与请求调节管道632基本相同的功能(步骤676)。然后将调节请求和对应的标签存储在训练数据存储装置612中,在那里它们可以被累积以供ML标注器的训练组件使用(步骤678)。在这个实施例中,请求和对应的标签被存储直到检测到触发事件。触发事件由监视信息的训练触发检测,该信息可以包括质量度量、已累积的训练数据量或各种其它参数(步骤680)。当监视的信息满足定义触发事件的一个或多个条件时,将累积的训练数据的一部分提供给训练组件的实验协调器(步骤682)。
训练组件的实验协调器还使用触发事件来发起一个或多个实验,每个实验使用对应的超参数集合来配置对应的挑战者模型(步骤684)。每个实验挑战者模型被独特配置,以便开发独特的挑战者模型,这些挑战者模型可以与优胜者模型进行比较,以确定优胜者模型的性能是否可以提高。使用从训练数据存储库提供给实验协调器的相同训练数据来训练这些实验挑战者模型中的每一个(步骤686)。然后可以评估经训练的挑战者模型,以确定是否应该提升它们以替换优胜者模型。
在使用训练数据的第一部分训练实验挑战者模型之后,使用在训练数据存储装置中保留的训练数据的第二部分对它们进行评估(688)。通常,数据的第二部分不会与训练数据的第一部分重叠。此外,在数据的第一部分(用于训练挑战者模型)通常仅包括最近存储的训练数据时,训练数据的第二部分可以包括较旧的历史训练数据。训练数据的第二部分由每个经训练的挑战者模型以及优胜者模型处理以生成对应的结果/推断(步骤688)。不同模型的结果相互评估以确定它们相应的性能。评估可以是多维的,每个模型的性能的几个不同方面使用不同的度量进行单独比较,而不是仅使用单个评估度量来比较。用于评估的特定度量是可配置的,并且可以从一个实施例到另一个实施例不同。
在比较每个模型的性能之后,确定是否有任何挑战者模型显示出优于优胜者模型的性能。如果是,那么具有最好性能的挑战者模型可以被提升以替换优胜者模型。在一些实施例中,可能期望仅当挑战者模型的性能超过优胜者模型的性能预定量时才替换优胜者模型。换句话说,如果挑战者模型的性能仅比优胜者模型稍高,那么与替换优胜者模型相关联的开销成本可能会超过性能提高,在这种情况下挑战者模型可以不被提升。
置信度驱动的工作流(CDW)标注器
CDW是如下标注器,它封装了相同元数(arity)的标注器的集合,这些标注器依次被咨询,直到达到关于答案的配置置信度阈值。在高层次,对同一标注请求的多个一致判断会提高答案的置信度。另一方面,不一致的判断会降低置信度。CDW标注器的实施例在相关临时申请No.62/950,699的附录1中进行了讨论。
CDW标注器的配置可以包括,例如,组成标注器的指示。组成标注器的CDW配置可以指示标注器应该被视为盲判断标注器还是开放判断标注器。如将认识到的,可以将相同的标注请求重新提交给作为CDW的一部分的标注器。例如,可以将相同的标注请求提交给人类标注器,以便由两个不同的标注器实例进行标注。组成标注器的CDW配置可以限制向作为CDW的一部分的标注器可以提交相同标注请求的次数。
因此,CDW配置可以用于配置CDW标注器的工作流编排器。
调节组件
如上所讨论的,标注器可以在内部由被调节层包围的核心处理内核组成,调节层可以包括输入调节、成功输出调节和异常输出调节。可以通过根据标注器的配置将调节组件(例如,调节组件112)布置到管道中来构造调节层。图7图示了图像分类标注器的示例图像分类输入调节管道和内核核心逻辑。
调节组件执行诸如数据变换、过滤和(去)聚合之类的操作。与标注器类似,调节组件可以具有数据输入管道、数据输出管道和异常管道,但是当标注器根据标注请求产生标注结果时,调节组件仅执行输入调节、输出调节或间隙调节。
在一些情况下,调节组件可以用于分解输入请求。例如,在一些用例中,可以将整个标注请求分解成较小的标注请求的集合,它们都是相同的类型。这种类型的分解可以在单个标注器内使用调节层中的变换器实现。这的示例是对视频中的帧进行分类。训练模型以对单帧图像进行分类通常比对在单组镜头中的可变长度视频中的所有帧进行分类要容易得多。在这种情况下,数据调节层可以被配置有拆分器以将视频分解成帧,通过ML图像分类内核运行每一帧,并组合每个视频的输出。
拆分器可以在标注器的输入管道和训练管道上的调节层中实现,并被配置为将视频拆分成各个帧。标签+置信度聚合器在输出管道上的调节层中实现,并聚合各个帧的标签和置信度以确定视频的标签和置信度。
例如,图8是用于对视频进行分类的ML标注器的一个实施例的一部分的示意图。在所示实施例中,将视频输入分解成各个帧的拆分器804在输入管道和训练管道上的调节层中实现。标签和置信度聚合器806在输出管道上的调节层中实现。当接收到关于视频的标注请求或训练请求时,拆分器804将视频分解成帧并且基于每帧向图像分类内核802发送标注请求或训练请求。标签和置信度聚合器806聚合图像分类内核802为各个帧输出的推断和置信度以确定视频的标签和置信度。图9类似地图示了在CDW标注器902的调节层中实现的拆分器904和聚合器906。
此外,或作为替代,可能期望分解输出标签空间。例如,当输出标签空间太大而无法在整个问题上可行地训练单个ML模型时,可以将标签空间分成碎片,并为每个碎片指派更专注的ML标注器。考虑用于对图像中的零售产品进行定位和分类的用例,其中有数百种可能的产品类型。在这种情况下,标签空间可以被更广泛的产品类别瓜分。
图10是包括多个内部ML标注器的ML标注器的一个实施例的一部分的示意图。在所示实施例中,在输入管道和训练管道上的调节层中实现拆分器1004。这里,拆分器将标注图像(或图像训练数据)的请求拆分为对组成ML标注器1002a、1002b、1002c、1002d的请求,其中每个组成ML标注器都针对特定产品类别进行训练。例如,拆分器1004将标注请求路由到i)标注器1002a,以用标注器1002a在图像中检测到的任何工具标注图像,ii)标注器1002b,以用标注器1002b在图像中检测到的任何车辆标注图像,iii)标注器1002c,以用标注器1002c在图像中检测到的任何服装项目标注图像,以及iv)标注器1002d,以用标注器1002d在图像中检测到的任何食品项目标注图像。标签和置信度聚合器1006在输出管道上的调节层中实现,以聚合由标注器1002a、1002b、1002c和1002d输出的推断和置信度,从而确定适用于图像的(一个或多个)标签和(一个或多个)置信度。
因此,调节组件可能导致有向图中的扇入和扇出条件。例如,图10涉及两个扇出点和一个扇入点:
·标注请求扇出,以将相同的标注请求路由到每个组成产品区域标注器;
·标注结果扇入,以将来自每个组成标注器的标注结果组装成整体标注结果;
·训练数据扇出,以按产品类型拆分训练数据标签,并将适当的标签集路由到正确的组成标注器
可以通过在相应的调节管道中实现的标签拆分器组件来实现拆分或切片。可以通过将几个标注器的请求管道链接到调节组件的单个结果管道来配置扇出。可以通过将多个输出管道链接到聚合器调节组件的单个输入管道来实现扇入。聚合器可以被配置有标识应该聚合哪些组成数据的聚合键标识符、指定如何组合来自多个标注器的推断的模板和用于聚合置信度的算法。
系统体系架构
图11A图示了标注平台102中的配置、标注和质量控制流程的一个实施例,图11B图示了标注平台102中的配置流程的一个实施例,图11C图示了标注平台102中的标注流程的一个实施例,以及图11D图示了标注平台102中的质量控制流程的一个实施例。
平台102包括允许用户(“配置者”)为用例创建配置的配置服务103。配置服务103弥合了用例和标注图之间的差距。根据一个实施例,配置服务103尝试遵守几个原则:
·应该容易将配置指定为对先前配置的小更改。
·应该难以出现人为错误、遗漏或疏忽。
·应该容易从视觉上看出两个用例之间的配置差异。
·应该容易自动断言和核实关于配置的基本事实:使用的特征数量、数据依赖关系的传递闭包等。
·应该可以检测到未使用或多余的设置。
·应该易于测试配置决策的影响。
·配置应该经过全面的代码审查并且被检入到储存库中。
参考图12,配置可以包括多个抽象级别,如图12中所示。物理配置是最明确的级别并且描述了用例的物理体系架构。它针对特定的运行时基础设施,配置诸如如下的事物:DOCKER容器、KAFKA主题、AWS SQS和S3之类的云资源、AWS SAGEMAKER和KUBEFLOW之类的ML子系统,以及PACHYDERM之类的数据来源子系统(来自Amazon Technologies公司的AWSSQS、S3和SAGEMAKER、来自Google,LLC的KUBEFLOW、来自Pachyderm公司的PACHYDERM、出自Docker公司的DOCKER、出自Apache Software Foundation的KAFKA)(所有商标均为其相应所有者的财产)。
在图12的实施例中,在物理配置之上存在一个层,该层包括易于被人类和机器读取和操纵的配置。根据一个实施例,例如,平台102支持用于配置的声明性语言方法(声明性域特定语言在本文中被称为DSL)。根据声明性语言表达的配置可以被称为用例的“声明性模型”。
平台102可以包括用例模板。用例模板对用例中应包含的内容做出假设,因此需要来自人类配置者的最少输入。使用用例模板,人类用户可以输入相对少量的配置。平台可以存储用例的声明性模型,该声明性模型包括用例模板指定的配置假设和人类用户提供的相对少量的配置。
DSL以与运行时使用特定基础设施/工具集的方式无关的方式描述用例的逻辑体系架构。即,DSL在逻辑级别指定标注图。虽然DSL旨在与运行时无关,但将认识到不同的运行时平台和工具具有不同的能力,并且DSL可以适于支持某些运行时特定的配置信息。DSL中的运行时特定配置可以被封装到命名部分中,以使运行时特定性可以容易识别。
DSL以人类和机器友好的格式表达。出于本文示例的目的,使用了一种这样的格式,YAML。但是,将认识到的是,可以使用其它格式和语言来表达声明性模型。
来自系统的DSL输出是规范的形式。虽然顺序对于YAML文档中相同缩进级别的元素通常并不重要,但规范的DSL文档将具有可预测的排序和间距。产生这种规范表示的一个优点是支持不同配置之间的比较。
平台102可以被配置为检查DSL(或其它配置格式)的正确性。作为示例而非限制,配置服务103检查以下错误:
标注请求输入管道或结果输出管道断开
连接的管道模式不匹配
请求输入管道模式、内部配置和结果输出管道模式之间存在分歧
为了支持数据来源,可以显式调用可版本化组件的版本。根据一个实施例,不支持如“最新”之类的版本宏。在这样的实施例中,系统可以在新版本可用时主动提醒操作者。
根据一个实施例,声明性模型为每个标注器定义配置,使得每个标注器可以被认为是自包含的(即,标注器的整个逻辑配置在DSL的单个块(或其它可识别的结构)中指定,其指定标注器使用什么数据、标注器如何操作以及标注器产生什么数据)。
标注器的配置可以被指定为键值对(字段-值对、属性-值对、名称-值对)的集合。根据一个实施例,平台102被配置为在配置标注图的声明性模型的结构的上下文中解释名称。
在高层次,声明性模型中的标注器的配置可以包括一般标注器配置(例如,不特定于标注器类型的配置键)。例如,声明性模型可以为标注图的每个标注器指定以下配置信息:
·名称(图中唯一)
·类型(标注器类型)
·请求管道(输入管道)
ο名称(通常是对先前定义的结果管道的引用)
ο模式
·结果管道(结果输出管道)
ο名称
ο模式
·异常管道
ο名称
ο异常类型列表
·Docker镜像引用:docker镜像引用是平台可以下载docker镜像文件的位置。如将认识到的,docker镜像是可以在Docker中执行的文件。镜像的运行实例被称为Docker容器。根据一个实施例,标注器的docker镜像包含标注器的所有代码、代码解释器和任何库依赖关系。
声明性模型还可以指定标注器类型特定的配置(例如,特定于标注器类型的配置键)。标注器可以具有因类型而异的附加配置。
例如,除了所有标注器共同的通用配置信息之外,可执行标注器的配置将特定于代码。可以配置的事物的示例包括但不限于:S3存储桶前缀、期望的帧速率、要通知的电子邮件地址、批尺寸。可执行标注器的配置可以包括与标注器的可执行代码相关的任何配置信息。第三方托管的端点的配置可以指定命中哪个端点(例如,端点URL)、auth凭证、超时等。
如上所讨论的,ML标注器的配置可以提供ML标注器的各种功能组件的配置。图13A和图13B中图示了ML标注器的DSL块的一个示例。如图所示,ML标注器的DSL块包括通用标注器配置。通用标注器配置包括标注器名称(例如,“scene-classification.ml”)(键值对1302)、标注器类型(例如,机器学习)(键值对1304)和用例键值对1306。用例键值对1306的值指示DSL块是否是从用例模板创建的,如果是,那么指示它是从哪个用例模板创建的。在这个示例中,DSL块是从图像分类用例模板创建的。
在标签空间声明1308处,DSL块为ML标注器声明标签空间。在这种情况下,“标签”键值对的值被表达为类列表。
在输入管道声明1310处,DSL块为标注器声明标注请求输入管道,为输入管道指派名称。DSL块进一步声明输入管道模式。例如,DSL块可以包括JSON模式(例如,根据互联网工程任务组的JSON模式规范,可在https://json-schema.org获得)。例如,JSON模式可以指定预期字段、字段数据类型、是否需要特定字段(可为空)等。
在运行时,有向图服务105知道用例的标注图中的第一个标注器的输入管道,并将标注请求推送到该输入管道上。图中后续标注器的输入管道可以连接到其它标注器的输出管道。
在结果管道声明1312处,DSL块声明输出管道名称和模式。例如,DSL块可以包括JSON模式。例如,JSON模式可以指定预期字段、字段数据类型、是否需要特定字段(可为空)等。一般而言,标注器的输出管道可以连接到另一个标注器的输入管道。但是,对于标注图中的最后一个标注器,输出管道未连接到另一个标注器的输入管道。
可以注意到,在一些情况下,输出管道和输入管道之间的连接是在运行时动态确定的,并且没有在声明性模型中声明。在其它情况下,输入管道和输出管道之间的连接在声明性模型中声明。
ML标注器可以使用训练数据来训练ML算法,由此可以声明训练管道。在图13A的示例DSL中,训练管道由训练管道声明1314的“training-pipe→name”元素的YAML别名表示。在一些情况下,训练数据可以由包含ML标注器的CDW标注器提供。
ML标注器可以配置有多个调节管道,其中每个调节管道包括一个或多个调节组件,这些组件在管道上变换数据。输入调节声明1316声明对在ML标注器的输入管道和训练管道上接收到的数据执行的变换。在图13A的示例中,输入调节声明指定ML标注器“scene-classification-ml”将应用图像调整尺寸变换以将图像尺寸调整为128x128,并应用灰度变换将图像转换到灰度。因此,当平台102实现“scene-classification-ml”标注器时,它将在标注器的调节层中包括调整尺寸调节组件和灰度调节组件,其中调整尺寸调节组件被配置为将图像尺寸调整为128x128。然后使用该示例,图6A的请求调节632和请求+标签调节610将包括配置的调整尺寸调节组件和灰度调节组件。
目标调节声明1318声明要应用于在1308指定的标签的变换。例如,在图13A的示例中,目标调节声明1318指定在1308声明的标签将被变换到索引值。因此,如果平台102根据图13A和图13B的配置实现“scene-classification-ml”标注器,那么它将在训练管道的调节层中包括标签到索引调节组件,其中标签到索引调节组件被配置为将标签变换到索引值(例如,户外→0,厨房→1...)。在这个示例中,图6A的请求+标签调节610将包括标签到索引调节组件。
目标去调节声明1320声明要应用于ML模型的输出的变换。例如,图像的ML算法输出的索引值0-4可以在1308处被变换成标签空间声明。因此,如果平台102根据图13A和图13B的配置实现“scene-classification-ml”标注器,那么它将在输出管道的调节层中包括索引到标签调节组件,其中索引到标签调节组件被配置为将索引值变换成标签(例如,0→户外,1→厨房...)。在这个示例中,图6A的推断调节634将包括索引到标签去调节。
ML类型标注器封装或表示ML平台、ML框架和/或ML算法。由此,ML算法声明1350声明要由ML标注器使用的ML平台、ML框架和/或ML算法。平台102支持任何类型的ML算法(例如,可以指定ML平台系统130的模型框架支持的任何ML算法)。ML算法的示例包括但不限于:K-均值、逻辑回归、支持向量机、贝叶斯算法、感知器和卷积神经网络。在所示示例中,指定了基于tensorflow的算法。因此,基于图13A和图13B的配置创建的ML标注器将表示使用出自加利福尼亚州山景城的Google,LLC的TensorFlow框架训练的模型(TENSORFLOW是Google,LLC的商标)。
此外,ML算法可以具有可以经由命名的数据元素在ML标注器的DSL块中声明的配置。例如,TensorFlow中的机器学习模型可表达为相对简单的层的组合和堆叠。因此,在1352处声明了基于tensorflow的算法的层数。但是,将认识到的是,那些层可能与一些机器学习模型相关,但与其它模型无关。由此,使用不使用层的算法的ML标注器的DSL块可以省略层数据元素。此外,其它ML算法可以具有可以经由DSL中适当命名的数据元素表达的附加或替代配置。
算法的训练配置可以包括主动学习、超参数范围、限制和触发。主动学习声明1322用于配置ML标注器的主动学习记录选择器。主动学习试图训练ML标注器的机器学习模型以尽可能快地获得高准确度,并且主动学习策略是用于(例如,通过oracle标注器、通过图的其余部分用作ML标注器的训练数据)选择要标注的记录的策略,其中记录将用于训练ML标注器。
平台102可以支持多种策略,诸如随机、最低准确度或其它策略。在图13A的示例中,指定了“最低准确度”策略和512的“批尺寸”。在运行时期间,活动记录选择器评估未解决的累积标注请求,以尝试识别哪些将最有益于被标注图的其余部分标注并且然后用作训练记录。在这种上下文中,“最有益”意味着对模型质量产生最大的积极影响。不同的选择策略使用不同的方法来估计预期收益。继续这个示例,“最低准确度”策略使用当前活动模型来获得对未解决的累积标注请求的推断、按照模型的自我评估置信度对这些推断进行排序,然后将512(“批尺寸”)个最低排名的记录发送到标注图的其余部分。推断上的低置信度是模型尚未使用与该标注请求类似的足够示例进行训练的指示符。当平台确定这些记录的最终标签时,它们将作为训练数据被反馈到ML标注器中。
键值对1353声明超参数范围定义了实验超参数微调的空间。超参数范围可以用于例如配置实验/候选模型评估。如将认识到的,用于训练ML算法的超参数可以取决于ML算法。
可以声明训练限制1354来约束训练处理消耗的资源。训练限制可以被指定为训练数据量的限制或训练时间限制。
训练触发声明1356声明导致平台102训练/重新训练模型的触发。示例包括但不限于:已达到足够数量的训练数据、已经过指定时间段、质量监视度量下降到阈值以下或漂移超过指定量(例如,QMS确定的ML算法分数正在下降)。
图14图示了用于人类标注器的DSL块的一个示例。这里,标注器类型被指定为“hl”,其指示标注器在这个上下文中是人类标注器。
任务模板声明1402指定任务模板。任务模板表达用于向人类呈现标注请求以用于标注和接收由人类指派给标注请求的标签的用户界面。任务模板的一个示例包含在相关的临时申请No.62/950,699,附录2中。
市场声明1404指定来自标注器的任务可以被路由到的(一个或多个)平台。例如,“mturk”表示Amazon Mechanical Turk市场,并且“portal”表示标注平台102提供的劳动力门户。对于一些类型的标注(例如,3D点云标注),市场中可能存在高度专业化的标注工具。出于各种原因(例如,成本、上市时间),我们可能选择将这些工具集成到标注平台102中作为独特的市场,而不是将工具嵌入到我们自己的门户中。
劳动力声明1406指定可以将来自标注器的任务路由到的已定义的人类专家组(即,可以将标注任务路由到的人类标注器实例组)。如果为用例声明了劳动力,那么人类专家必须是该劳动力的成员以用于标注要路由到该人类专家的用例所关联的请求。
技能声明1408指示各个工作者(人类专家)必须具有的技能和最低技能分数以从标注器向其路由标注任务。QMS可以跟踪各个人类专家的技能/技能分数。
置信度驱动的工作流配置包括参与CDW的组成标注器列表。列表的每个成员指定标注器定义的别名,以及特定于CDW的元数据(例如,先前的结果注入、最大请求数和成本)。
图15图示了用于CDW标注器的DSL块的一个示例。可以注意到,CDW标注器的结果管道配置包括键值对1500,其指示在运行时,将scene-classification-CDW标注器的输出管道上的标注结果复制到scene-classification-ml标注器的训练管道(参见训练管道声明1314)。
部分1508列出了组成标注器。组成标注器的CDW配置可以指示标注器应被视为盲判断标注器还是开放判断标注器。例如,在所示实施例中,CDW配置包括注入先前结果键值对(例如,键值对1510)。如果值为假(false),那么这指示标注器将被视为盲判断标注器。如果值为真(true),那么标注器将被视为开放判断标注器。
如将认识到的,相同的标注请求可以被重新提交给作为CDW的一部分的标注器。例如,可以将相同的标注请求提交给人类标注器,以由两个不同的标注器进行标注。组成标注器的CDW配置可能限制向作为CDW的一部分的标注器提交相同标注请求的次数。例如,键值对1512指示每个标注请求仅向标注器scene-classification-ml提交一次,而键值对1514指示同一标注请求最多可以向标注器scene-classification-hl-blind提交两次。因此,CDW配置可以用于配置CDW标注器的工作流编排器。
可以注意到,上述用于标注器的DSL块的示例是作为示例提供的,而不是限制性的。此外,可以为其它标注器或调节组件指定DSL块。
如上所讨论的,平台102可以包括用例模板以简化最终用户的配置。用例模板可以对用例的声明性模型中应该包含的内容做出假设,因此需要来自人类配置者的最少输入。平台可以存储用例的声明性模型,该声明性模型包括用例模板指定的配置假设和人类用户提供的相对少量的配置。
对于共同用例,存在三种主要配置类别:始终配置的元素、共同配置的元素和很少配置的元素。根据一个实施例,用例模板为共同或很少配置的元素定义默认值,包括(但不限于):
·媒体特性
ο尺寸
ο格式
ο色彩空间
·数据验证和准备管道
·ML特性
ο模型类型
ο模型层配置
ο主动学习配置
ο训练触发配置
·置信度驱动的工作流
ο目标置信度阈值
ο组成标注器
ο人类专家劳动力
ο用于人类输入的任务模板
ο咨询限制
示例用例模板包括但不限于:图像分类、图像内的对象定位和分类、视频帧分类、视频内的对象定位和分类、自然语言处理和实体识别。根据一个实施例,始终和共同配置的元素由用于客户或客户服务代表的丰富UI支持,而其它元素保持隐藏。
在用例模板不符合最终用户的要求的情况下,配置者可以在DSL级别修改用例配置。
用例模板的定义和使用支持共同配置的重用。配置更改可以进行修订控制,并且UI可以支持更改历史浏览和差异比较。通过约束在这个级别可以更改的元素,配置的内部一致性更容易核实。
图16图示了使用用例模板为用例配置平台的一个实施例。可以向用户(诸如,提供标注平台的实体的客户处的用户或其它最终用户)提供UI以允许用户定义新的用例。UI可以允许用户指定用例的类型,其中每个用例类型对应于用例模板。例如,在所示实施例中,用例类型“图像分类”对应于“图像分类”用例模板,该模板包括除了用于ML标注器、人类标注器(盲判断)、人类标注器(开放判断)和CDW标注器的输出标签之外的所有配置信息。因此,UI可以呈现工具以允许用户提供丢失的配置信息。这里,用户已经填充了标签“户外”、“厨房”、“浴室”、“其它”。在相同界面或不同界面中,可以向用户提供工具以指示用于用例的推断数据和/或训练数据的数据源。
在本示例中,“My_Use_Case”的声明性模型填充有来自用例模板“图像分类”的配置信息和由用户提供的附加配置信息(例如,标签)并针对用例进行存储。在运行时,声明性模型用于配置标注图以标注数据或训练与“My_Use_Case”相关联的ML模型。
DSL和用例的使用是通过示例的方式提供的,并且可以通过任何合适的机制来提供用于标注图的配置。
回到图11B,配置服务103提供接口来接收配置,包括成本和置信度约束。例如,根据一个实施例,配置服务103提供允许用户创建用例、选择用例模板和为用例提供用例特定配置信息的UI。配置服务103因此接收用于用例的配置(例如,使用DSL或用于定义用例的其它格式)。如上所讨论的,用例可以包括标注器和调节组件的配置信息。例如,用例可以指定上传记录的端点、要访问标注记录的端点、要访问异常的端点、输出标签列表、未标注数据的特性(例如,媒体特性,诸如尺寸、格式、色彩空间)、管道(例如,数据验证和准备管道)、机器学习特性(例如,ML模型类型、模型层配置、主动学习配置、训练数据配置)、置信度驱动的工作流配置(例如,目标置信度阈值、组成标注器、人类专家劳动力、人类输入的任务模板)、成本和质量约束或其它信息。
当最终用户选择执行用例时,配置服务103与输入服务104、有向图服务105、置信度驱动的工作流服务106、评分服务107、ML平台108和调度器服务109交互以创建如由用例配置的工作流。可以为工作流指派工作流id。
关于输入服务104,可能有几种机制用于向平台102提供要标注的数据,诸如webAPI、S3存储桶、KAFKA主题等。配置服务103为输入服务104提供端点用于接收要标注的记录的端点信息。配置信息可以包括端点的认证信息和其它信息。
有向图服务105为用例的标注器创建有向图。根据一个实施例,所有有向图终止于成功节点或失败节点。当有向图终止于成功时,结果被发送到输出服务115。有向图服务105创建组件的有向图以组成标注器(例如,标注器110)。如上所讨论的,给定的标注器可以包括多个组件调节组件(例如,过滤器、拆分器、连接器、聚合器)和功能组件(例如,要向其提供任务界面的人类标注器实例、活动记录选择器、ML训练组件、ML模型)。有向图服务105确定组件的有向图及其执行顺序以根据配置创建标注器。可以注意到,一些标注器可以包括其它标注器。因此,特定的标注器本身可以是另一个标注器图内部的图。
配置服务103向有向图服务105传递用于单个人、ML和用例的其它标注器的配置,使得有向图服务105可以将各种组件组合到指定的标注器中。根据一个实施例,配置服务103将标注器DSL块传递给有向图服务105。
CDW可以包括各种组成标注器。对于使用CDW标注器的用例,有向图服务105为CDW的每个组成标注器创建有向图,并且CDW服务106确定将输入请求路由到的下一个组成标注器——即,CDW服务106提供CDW标注器的工作流编排器。配置服务103将CDW服务106传递给CDW中的标注器池,包括那些标注器的静态特性,比如它们的输入和输出管道是什么、约束信息(时间、价格、置信度)。它还传递关于从何处获取标注器的非静态信息的配置,例如,当前咨询成本、当前时延和吞吐量以及当前质量。根据一个实施例,配置服务103将CDW标注器的DSL块传递给CDW服务106。
评分服务107可以为用例实现质量监视子系统(QMS)。在一些实施例中,用于对标注器实例进行评分的算法可配置为用例的一部分。例如,对于标注图像的用例,其中可以应用多个标签,配置服务103可以向配置者提供选项以选择如果标注器实例部分正确的话如何对结果进行评分(例如,如果任何正确的标签是错误的,那么整个判断被认为是错误的,如果至少一个标签是正确的,那么结果被认为是正确的,等等)。配置服务103可以使用用于用例的评分机制的指示来配置评分服务107。
如果用例的标注器是ML标注器,那么配置服务103使用例如ML算法等将模型特定信息传递给模型平台服务108。ML模型平台服务108可以连接到适当的ML模型平台。
调度器服务109负责与人类专家交互。调度器服务109将任务和任务接口路由到人类专家并接收人类专家标注输出。配置服务103向调度器服务109提供人类标注器的配置信息,诸如任务模板、标注器平台、工作者组、工作者技能和最低技能分数。例如,配置服务103可以将人类标注器的DSL块提供给调度器服务109,使得调度器服务109可以适当地路由任务。
转向图11C,输入服务104接收要被标注的输入记录,并且向有向图服务105生成标注请求。请求与工作流id相关联。如果CDW标注器正在处理标注请求,那么有向图服务105将请求发送到CDW服务106,CDW服务确定将处理输入请求的下一个组成标注器。有向图服务105为所选择的标注器执行有向图,并且取决于标注器是ML标注器还是人类标注器,标注请求被发送到ML平台108或调度器服务109。一旦工作流完全处理了标注请求,标注结果将经由输出服务115对最终用户可用。
如上所讨论的,评分服务107可以提供质量监视子系统。评分服务107负责维护标注器实例(例如,各个模型或人类专家)的当前分数。因此,如图11D中所示,评分服务器可以将评分信息传送给CDW服务106、ML平台服务108和调度器服务109。
虽然已经关于本发明的具体实施例描述了本发明,但是这些实施例仅仅是说明性的,而不是对本发明的限制。本文的描述(包括相关的美国临时申请No.62/950,699的公开)并非旨在详尽的或将本发明限制到本文所公开的精确形式(特别是包括任何特定实施例、特征或功能并非旨在将本发明的范围限制到这样的实施例、特征或功能)。而是,本描述旨在描述说明性实施例、特征和功能,以便为本领域普通技术人员提供理解本发明的上下文,而不将本发明限制到任何特定描述的实施例、特征或功能。虽然本文中仅出于示例性目的描述了本发明的具体实施例和示例,但是如相关领域的技术人员将认识和理解的,在本发明的精神和范围内可以进行各种等同修改。如所指出的,可以根据本发明的图示实施例的前述描述对本发明进行这些修改,并且这些修改应当包括在本发明的精神和范围之内。
因此,虽然在本文已经参考本发明的特定实施例描述了本发明,但是在前述公开中意图进行多种修改、各种改变和替换,并且应该认识到的是,在一些情况下,本发明的实施例的一些特征将在不相应使用其它特征的情况下被采用,而不背离所阐述的本发明的范围和精神。因此,可以进行许多修改以使特定情况或材料适应本发明的基本范围和精神。
在整个说明书中,对“一个实施例”、“实施例”或“具体实施例”或类似词语的引用意味着结合该实施例描述的特定特征、结构或特点包括在至少一个实施例中,并且可以不必在所有实施例中存在。因此,在整个说明书中,在各个地方出现的短语“在一个实施例中”、“在实施例中”或“在具体实施例中”或类似词语的相应出现不一定是指同一个实施例。此外,任何特定实施例的特定特征、结构或特点可以以任何合适的方式与一个或多个其它实施例组合。应该理解的是,根据本文的教导,本文所描述和示出的实施例的其它变化和修改是可能的,并且应当被认为是本发明的精神和范围的一部分。
此外,本文给出的任何示例或说明不应以任何方式视为对与它们一起使用的任何一个或多个术语的限定、限制或表达定义。而是,这些示例或说明应被视为是针对一个特定实施例进行描述的并且仅是说明性的。本领域的普通技术人员将认识到,与这些示例或说明一起使用的任何一个或多个术语将涵盖其它实施例,这些实施例可能会或可能不会与其一起给出或在本说明书的其它地方给出,并且所有这些实施例都旨在包含在该一个或多个术语的范围内。指定此类非限制性示例和说明的语言包括但不限于:“例如”、“比如”、“诸如”、“在一个实施例中”。
在本文的描述中,提供了众多具体细节,诸如部件和/或方法的示例,以提供对本发明实施例的透彻理解。但是,相关领域的技术人员将认识到,可以在没有这些具体细节中的一个或多个的情况下,或者在具有其它装置、系统、部件、方法、组件、材料、部分等的情况下实践实施例。在其它情况下,没有具体示出或详细描述众所周知的结构、组件、系统、材料或操作,以避免模糊本发明的实施例的各方面。虽然可以通过使用特定实施例来说明本发明,但这不是要将本发明限制到任何特定实施例,并且本领域普通技术人员将认识到,附加实施例是容易理解的并且是本发明的一部分。
相关领域的技术人员将认识到,实施例可以在各种计算机系统配置中实现或实践,包括但不限于多处理器系统、网络设备、小型计算机、大型计算机、数据处理器等。实施例可以在分布式计算环境中使用,其中任务或模块由远程处理设备执行,远程处理设备通过诸如LAN、WAN和/或互联网之类的通信网络链接。在分布式计算环境中,程序模块或子例程可以位于本地和远程存储器存储设备中。例如,这些程序模块或子例程可以存储或分布在计算机可读介质上,作为固件存储在芯片中,以及通过互联网或其它网络(包括无线网络)以电子方式分布。示例芯片可以包括电可擦除可编程只读存储器(EEPROM)芯片。
本文描述的实施例可以以软件或硬件或两者的组合中的控制逻辑的形式来实现。控制逻辑可以存储在诸如计算机可读介质的信息存储介质中,作为适于引导信息处理设备执行在各种实施例中公开的一组步骤的多条指令。基于本文提供的公开内容和教导,本领域普通技术人员将理解实现本发明的其它方式和/或方法。本文描述的步骤、操作、方法、例程或其部分可以使用各种硬件实现,诸如CPU、专用集成电路、可编程逻辑设备、现场可编程门阵列、光学、化学、生物、量子或纳米工程系统,或其它机制。
计算机可读程序代码形式的软件指令可以全部或部分地、临时或永久地存储在非暂态计算机可读介质上。计算机可读程序代码可以由处理器操作以执行本文描述的步骤、操作、方法、例程或其部分。“计算机可读介质”是能够以计算机可读的格式存储数据的介质,并且可以包括处理器可以读取的任何类型的数据存储介质。非暂态计算机可读介质的示例可以包括但不限于易失性和非易失性计算机存储器,诸如RAM、ROM、硬盘驱动器、固态驱动器、数据盒式带、磁带、软盘、闪存驱动器、光学数据存储设备、光碟只读存储器。在一些实施例中,计算机可读指令或数据可以驻留在数据阵列中,诸如直接附接阵列或其它阵列。计算机可读指令可以由处理器执行以实现技术或其部分的实施例。
“处理器”包括处理数据、信号或其它信息的任何硬件系统、机制或组件。处理器可以包括具有通用中央处理单元、多个处理单元、用于实现功能的专用电路系统或其它系统的系统。处理不必限于地理位置,或有时间限制。例如,处理器可以“实时”、“离线”、“批处理模式”等执行其功能。处理的部分可以在不同时间和不同位置由不同(或相同)处理系统执行。
可以采用不同的编程技术,诸如过程式或面向对象的。可以使用任何合适的编程语言来实现本文描述的本发明的实施例的例程、方法或程序,包括R、Python、C、C++、Java、JavaScript、HTML或任何其它编程或脚本代码等。实现实施例的计算机之间的通信可以使用任何电子、光学、射频信号或符合已知网络协议的其它合适的通信方法和工具来实现。任何特定例程可以在单个计算机处理设备或多个计算机处理设备、单个计算机处理器或多个计算机处理器上执行。数据可以存储在单个存储介质中,或者分布在多个存储介质中。在一些实施例中,数据可以存储在多个数据库、多个文件系统或其组合中。
虽然可以以具体次序呈现步骤、操作或计算,但是在不同的实施例中可以改变这个次序。在一些实施例中,可以省略一些步骤。此外,在一些实施例中,可以执行附加的或替代的步骤。在一些实施例中,就在本说明书中多个步骤被示为顺序的程度而言,在替代实施例中,这些步骤的某种组合可以被同时执行。本文描述的操作的顺序可以被另一个处理(诸如操作系统、内核等)中断、挂起或以其它方式控制。例程可以在操作系统环境中操作或作为独立例程操作。本文描述的功能、例程、方法、步骤和操作可以以硬件、软件、固件或其任意组合执行。
将认识到的是,附图/图中描绘的一个或多个元件也可以以更加分离或集成的方式实现,或者甚至在某些情况下被移除或渲染为不可操作,如根据特定应用是有用的。此外,除非另有特别说明,否则附图/图中的任何信号箭头应仅被视为示例性而非限制性的。
如本文所使用的,术语“包括”、“包含”、“含有”、“包含有”、“具有”、“有”或其任何其它变体旨在涵盖非排他性包含。例如,包括元素列表的处理、产品、物品或装置不一定仅限于这些元件,而是可以包含未明确列出或者这些处理、产品、物品或装置固有的其它元件。
此外,除非另外指示,否则本文所使用的术语“或”通常旨在意味着“和/或”。例如,条件A或B由以下中的任何一个满足:A为真(或存在)并且B为假(或不存在)、A为假(或不存在)并且B为真(或存在)、以及A和B两者都为真(或存在)。如本文所使用的,除非另外在权利要求中明确指示(即,引用“一个”或“一”清楚地指示仅单数或仅复数),否则前面加上“一个”或“一”(以及当先行基础是“一个”或“一”时的“该”)的术语包括该术语的单数和复数形式两者。而且,如本文的描述和通篇所使用的,除非上下文另外明确指示,否则“在…中”的含义包括“在…中”和“在…上”。
虽然前述说明书描述了具体的实施例,但是参考本公开,本领域普通技术人员将显而易见并且可以做出本文中公开的实施例和附加实施例的细节的许多改变。在这个上下文中,说明书和附图应当被认为是说明性的而不是限制性的,并且所有这样的修改旨在被包括在本公开的范围内。

Claims (20)

1.一种用于优化机器学习标注器的方法,所述方法包括:
接收多个标注请求,每个标注请求包括要标注的数据项;
对于每个标注请求,生成对应的推断结果,推断结果包括与数据项对应的标签推断和一个或多个相关联的自我评估的置信度度量,其中推断结果由迭代模型训练系统的当前机器学习ML模型生成;
基于生成的推断结果,选择标注请求的至少一部分;
使用具有一个或多个标注器的标注器的有向图来校正针对选择的标注请求生成的推断结果,标注器的有向图基于相关联的质量和成本度量为所选择的部分中的每个标注请求生成增强结果,增强结果包括与数据项对应的标签,其中标签满足目标置信度阈值;
将增强结果的至少第一部分作为训练数据提供给实验协调器;
监视一个或多个触发输入以检测一个或多个训练触发,并且响应于检测到所述一个或多个训练触发,
由实验协调器使用增强结果的第一部分迭代地训练ML模型,
将增强结果的至少第二部分作为评估数据提供给模型评估器,并且由模型评估器使用增强结果的第二部分评估ML模型,以及
响应于所述评估,确定是否要更新ML模型,并且响应于确定要更新ML模型,更新ML模型。
2.如权利要求1所述的方法,其中标注器的有向图包括包含多个标注器的置信度有向工作流,对于选择的标注请求中的每一个,依次咨询所述多个标注器,直到所咨询的标注器生成的聚合结果达到增强结果的所述目标置信度阈值。
3.如权利要求2所述的方法,其中所述多个标注器包括至少一个人类标注器和至少一个ML标注器。
4.如权利要求2所述的方法,其中置信度有向工作流被配置为依次咨询所述多个标注器,直到达到与增强结果相关联的可配置成本约束。
5.如权利要求1所述的方法,其中基于生成的标签推断选择标注请求的所述一部分用作训练数据包括应用可配置的主动学习策略,该主动学习策略将标注请求中的多个标注请求识别为用作训练数据,所述多个标注请求根据主动学习策略被确定为比标注请求中的其余标注请求对训练更有用。
6.如权利要求5所述的方法,还包括:基于生成的标签推断选择标注请求的所述一部分用作训练数据包括识别推断结果的较低置信度部分和推断结果的较高置信度部分,其中与推断结果的较低置信度部分相关联的置信度指示符低于与推断结果的较高置信度部分相关联的置信度指示符的对应标签推断。
7.如权利要求1所述的方法:
其中迭代模型训练系统的ML模型包括优胜者模型;
其中由实验协调器使用增强结果的第一部分迭代地训练ML模型包括:实验协调器使用增强结果的第一部分来训练一个或多个挑战者模型;
其中所述评估包括:将增强结果的至少第二部分作为评估数据提供给模型评估器,并由模型评估器使用增强结果的第二部分来评估所述一个或多个挑战者模型和优胜者模型;以及
其中更新ML模型包括:响应于确定所述一个或多个挑战者模型中的挑战者模型满足评估标准集合,提升所述一个或多个挑战者模型中的该挑战者模型以替换优胜者模型。
8.如权利要求7所述的方法,还包括:由实验协调器响应于检测到训练触发而生成所述一个或多个挑战者模型,其中生成所述一个或多个挑战者模型包括:针对所述一个或多个挑战者模型中的每个挑战者模型配置对应的唯一超参数集合,并使用增强结果的第一部分训练唯一配置的所述一个或多个挑战者模型中的每个挑战者模型。
9.如权利要求1所述的方法,还包括:将增强结果的第一部分存储在训练数据存储装置中,直到检测到训练触发;并且响应于检测到训练触发,将增强结果的第一部分作为训练数据提供给实验协调器。
10.如权利要求9所述的方法,其中训练触发包括自先前训练触发以来经过的时间。
11.如权利要求9所述的方法,其中触发事件包括在增强结果的第一部分中预定数量的增强结果的累积。
12.如权利要求9所述的方法,其中触发参数包括一个或多个质量度量。
13.如权利要求1所述的方法,还包括:对于每个增强结果,调节增强结果以将增强结果从与所述多个标注请求相关联的第一数据域转换到与实验协调器相关联的第二数据域。
14.一种机器学习标注器,包括:
记录选择器,被配置为接收标注请求;
迭代模型训练系统的当前机器学习ML模型,被配置为对于每个标注请求,生成对应的推断结果;
其中记录选择器被配置为基于生成的推断结果,选择标注请求的至少一部分;
其中机器学习标注器包括具有一个或多个标注器的标注器的有向图,其中标注器的有向图被配置为校正针对选择的标注请求生成的推断结果,从而为所选择的部分中的每个标注请求生成增强结果,增强结果包括与数据项对应的标签,其中标签满足目标置信度阈值;
触发监视器,被配置为监视一个或多个触发输入,检测一个或多个训练触发,并且响应于检测到所述一个或多个训练触发,将增强结果的至少第一部分作为训练数据提供给实验协调器;
实验协调器,被配置为使用增强结果的第一部分迭代地训练ML模型,并且将增强结果的至少第二部分作为评估数据提供给模型评估器;
模型评估器,被配置为使用增强结果的第二部分评估ML模型,确定是否要更新ML模型,并且响应于确定要更新ML模型,更新ML模型。
15.如权利要求14所述的机器学习标注器,其中记录选择器被配置为通过应用主动学习策略基于生成的标签推断来选择标注请求的所述一部分用作训练数据,该主动学习策略将标注请求中的多个标注请求识别为用作训练数据,所述多个标注请求根据主动学习策略被确定为比标注请求中的其余标注请求对训练更有用。
16.如权利要求15所述的机器学习标注器,其中记录选择器被配置为通过识别标注请求的较低置信度部分和标注请求的较高置信度部分来选择标注请求的所述一部分用作训练数据,其中与标注请求的较低置信度部分相关联的置信度指示符低于与标注请求的较高置信度部分相关联的置信度指示符的对应标签推断。
17.如权利要求14所述的机器学习标注器,还包括:训练数据存储装置,被配置为存储增强结果的第一部分直到检测到训练触发,并且响应于检测到训练触发,将增强结果的第一部分作为训练数据提供给实验协调器。
18.如权利要求14所述的机器学习标注器:
其中迭代模型训练系统的ML模型包括优胜者模型;
其中实验协调器被配置为使用增强结果的第一部分训练一个或多个挑战者模型来迭代地训练ML模型;
机器学习标注器还包括模型评估器,模型评估器被配置为接收增强结果的至少第二部分作为评估数据,使用增强结果的第二部分评估所述一个或多个挑战者模型和优胜者模型,并且通过响应于确定所述一个或多个挑战者模型中的挑战者模型满足评估标准集合而提升所述一个或多个挑战者模型中的该挑战者模型以替换优胜者模型,来更新ML模型。
19.如权利要求15所述的机器学习标注器,其中训练触发包括以下中的至少一项:自先前训练触发以来经过的时间;在标注请求的第一部分中预定数量的标注请求的累积;以及一个或多个质量度量。
20.一种计算机程序产品,包括存储指令的非暂态计算机可读介质,所述指令能够由一个或多个处理器执行以进行以下操作:
接收多个标注请求,每个标注请求包括要标注的数据项;
对于每个标注请求,生成对应的推断结果,推断结果包括与数据项对应的标签推断和一个或多个相关联的自我评估的置信度度量,其中推断结果由迭代模型训练系统的当前机器学习ML模型生成;
基于生成的推断结果,选择标注请求的至少一部分;
使用具有一个或多个标注器的标注器的有向图来校正针对选择的标注请求生成的推断结果,标注器的有向图基于相关联的质量和成本度量为所选择的部分中的每个标注请求生成增强结果,增强结果包括与数据项对应的标签,其中标签满足目标置信度阈值;
将增强结果的至少第一部分作为训练数据提供给实验协调器;
监视一个或多个触发输入以检测一个或多个训练触发,并且响应于检测到所述一个或多个训练触发,
由实验协调器使用增强结果的第一部分迭代地训练ML模型,
将增强结果的至少第二部分作为评估数据提供给模型评估器,并且由模型评估器使用增强结果的第二部分评估ML模型,以及
响应于所述评估,确定是否要更新ML模型,并且响应于确定要更新ML模型,更新ML模型。
CN202080088115.4A 2019-12-19 2020-12-18 自我优化的标注平台 Pending CN115244552A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962950699P 2019-12-19 2019-12-19
US62/950,699 2019-12-19
PCT/US2020/066133 WO2021127513A1 (en) 2019-12-19 2020-12-18 Self-optimizing labeling platform

Publications (1)

Publication Number Publication Date
CN115244552A true CN115244552A (zh) 2022-10-25

Family

ID=76438920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080088115.4A Pending CN115244552A (zh) 2019-12-19 2020-12-18 自我优化的标注平台

Country Status (5)

Country Link
US (1) US20210192394A1 (zh)
EP (1) EP4078474A4 (zh)
CN (1) CN115244552A (zh)
CA (1) CA3160259A1 (zh)
WO (1) WO2021127513A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11586916B2 (en) * 2020-01-30 2023-02-21 EMC IP Holding Company LLC Automated ML microservice and function generation for cloud native platforms
US11580425B2 (en) * 2020-06-30 2023-02-14 Microsoft Technology Licensing, Llc Managing defects in a model training pipeline using synthetic data sets associated with defect types
US20220083907A1 (en) * 2020-09-17 2022-03-17 Sap Se Data generation and annotation for machine learning
US20220121855A1 (en) * 2020-10-16 2022-04-21 Arizona Board Of Regents On Behalf Of Arizona State University Temporal knowledge distillation for active perception
US11948003B2 (en) * 2020-11-04 2024-04-02 RazorThink, Inc. System and method for automated production and deployment of packaged AI solutions
US20230125073A1 (en) * 2021-10-21 2023-04-27 nference, inc. System and method for improving efficacy of supervised learning

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645287B2 (en) * 2010-02-04 2014-02-04 Microsoft Corporation Image tagging based upon cross domain context
US8862522B1 (en) * 2010-12-14 2014-10-14 Symantec Corporation Incremental machine learning for data loss prevention
US9495477B1 (en) * 2011-04-20 2016-11-15 Google Inc. Data storage in a graph processing system
US9747555B2 (en) * 2014-06-05 2017-08-29 International Business Machines Corporation Labeling of data for machine learning
US20160132787A1 (en) * 2014-11-11 2016-05-12 Massachusetts Institute Of Technology Distributed, multi-model, self-learning platform for machine learning
US11210595B2 (en) * 2015-11-30 2021-12-28 Allegro Artificial Intelligence Ltd System and method for selective use of examples
US11074478B2 (en) * 2016-02-01 2021-07-27 See-Out Pty Ltd. Image classification and labeling
WO2019191306A1 (en) * 2018-03-27 2019-10-03 Nvidia Corporation Training, testing, and verifying autonomous machines using simulated environments
CN110210624A (zh) * 2018-07-05 2019-09-06 第四范式(北京)技术有限公司 执行机器学习过程的方法、装置、设备以及存储介质
US11526713B2 (en) * 2018-09-28 2022-12-13 Intel Corporation Embedding human labeler influences in machine learning interfaces in computing environments
US11322256B2 (en) * 2018-11-30 2022-05-03 International Business Machines Corporation Automated labeling of images to train machine learning
US20200250580A1 (en) * 2019-02-01 2020-08-06 Jaxon, Inc. Automated labelers for machine learning algorithms
US11562172B2 (en) * 2019-08-08 2023-01-24 Alegion, Inc. Confidence-driven workflow orchestrator for data labeling
JP7363382B2 (ja) * 2019-11-05 2023-10-18 富士通株式会社 解析装置、解析プログラム及び解析方法
US20210240680A1 (en) * 2020-01-31 2021-08-05 Element Ai Inc. Method and system for improving quality of a dataset

Also Published As

Publication number Publication date
EP4078474A1 (en) 2022-10-26
US20210192394A1 (en) 2021-06-24
WO2021127513A1 (en) 2021-06-24
CA3160259A1 (en) 2021-06-24
EP4078474A4 (en) 2024-01-10

Similar Documents

Publication Publication Date Title
CN115244552A (zh) 自我优化的标注平台
US11748639B2 (en) Case-based reasoning as a cloud service
JP7142116B2 (ja) 知識集約型データ処理システム
US10395181B2 (en) Machine learning system flow processing
US11526579B1 (en) System and methods for performing automatic data aggregation
US11481412B2 (en) Data integration and curation
US11030555B2 (en) Issue tracking system using a similarity score to suggest and create duplicate issue requests across multiple projects
CN110109750B (zh) 虚拟资源获取方法、装置、计算机设备和存储介质
US11360927B1 (en) Architecture for predicting network access probability of data files accessible over a computer network
US11348032B1 (en) Automated generation of machine learning models
US11188969B2 (en) Data-analysis-based validation of product review data and linking to supply chain record data
US11941353B2 (en) Data reuse computing architecture
US20210073653A1 (en) Information technology service management system replacement
US20200210439A1 (en) Autonomous suggestion of related issues in an issue tracking system
US20230196204A1 (en) Agnostic machine learning inference
US11443384B2 (en) Intelligent policy covery gap discovery and policy coverage optimization
US20230368074A1 (en) Self-contained artificial intelligence (ai) exectuable to automate model hosting, deployment, and ai life cycle
US20230252544A1 (en) Machine learning based product classification and approval
Sula Secriskai: a machine learning-based tool for cybersecurity risk assessment
US11836612B2 (en) Maintaining master data using hierarchical classification
US20230196138A1 (en) Labeling platform declarative model
US20230196203A1 (en) Agnostic machine learning training integrations
US20160308815A1 (en) Methods and Systems for Adaptive and Contextual Collaboration in a Network
US20230196248A1 (en) Systems and methods for improving quality of artificial intelligence model
US11829340B1 (en) Systems and methods for generating data transfers using programming language-agnostic data modeling platforms

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination