CN114503132A - 机器学习模型训练的调试和剖析 - Google Patents
机器学习模型训练的调试和剖析 Download PDFInfo
- Publication number
- CN114503132A CN114503132A CN202080068301.1A CN202080068301A CN114503132A CN 114503132 A CN114503132 A CN 114503132A CN 202080068301 A CN202080068301 A CN 202080068301A CN 114503132 A CN114503132 A CN 114503132A
- Authority
- CN
- China
- Prior art keywords
- machine learning
- training
- data
- learning model
- analysis
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/046—Forward inferencing; Production systems
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)
- Debugging And Monitoring (AREA)
Abstract
本文公开了用于机器学习模型训练的调试和剖析的方法、系统和计算机可读介质。机器学习分析系统接收与机器学习模型的训练相关联的数据。所述数据由机器学习训练集群收集。所述机器学习分析系统执行对与所述机器学习模型的所述训练相关联的所述数据的分析。所述机器学习分析系统至少部分地基于所述分析来检测与所述机器学习模型的所述训练相关联的一个或多个状况。所述机器学习分析系统生成描述与所述机器学习模型的所述训练相关联的所述一个或多个状况的一个或多个警报。
Description
背景技术
许多公司和其它组织操作互连许多计算系统以支持它们操作的计算机网络,如计算系统共处一地(例如,作为本地网络的一部分)或替代地位于多个不同的地理位置(例如,经由一个或多个私有或公共中间网络连接)。例如,容纳大量互连计算系统的分布式系统已经变得普遍。这样的分布式系统可以向与客户端交互的服务器提供后端服务。这样的分布式系统还可以包括由实体操作以向顾客提供计算资源的数据中心。一些数据中心运营商为各种顾客所拥有的硬件提供网络访问、电源和安全安装设施,而其它数据中心运营商提供“全服务”设施,所述设施还包括可以供它们的顾客使用的硬件资源。随着分布式系统的规模和范围的增加,提供、施行和管理资源的任务变得越来越复杂。
分布式系统可向远程客户端提供对各种服务的访问,所述服务主要在分布式系统内实施并且可通过如因特网的网络访问。此类系统的实例包括在线商家、因特网服务提供商、公司网络、云计算服务、基于web的托管服务等。作为另一实例,分布式系统可以使用机器学习模型,所述机器学习模型被训练、测试并且然后用于预测将来的行为。如果模型不能产生有用或准确的预测,则用户通常有责任手动检查模型(或相关数据)以确定故障发生的位置。此类人工任务可能是耗时的并且易于出现额外的人为错误。
附图说明
图1示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境。
图2示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括生成描述在机器学习模型中检测到的问题的通知。
图3示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括对检测到问题的机器学习模型的自动再训练。
图4示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括对机器学习模型的不同版本的分析。
图5是示出了根据一些实施例的用于机器学习模型的自动问题检测的方法的流程图。
图6示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括用于机器学习模型的黄金实例差异分析。
图7示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括用于机器学习模型的异常值检测分析。
图8示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括用于机器学习模型的推理数据分布变化分析。
图9示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括用于机器学习模型的标签分布变化分析。
图10示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括用于机器学习模型的个体标签变化分析。
图11示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括用于机器学习模型的地面实况差异分析。
图12A和图12B示出了根据一些实施例的用于使用张量数据来调试机器学习模型训练的实例系统环境。
图13示出了根据一些实施例的用于利用使用度量来剖析机器学习模型训练的实例系统环境。
图14示出了根据一些实施例的用于使用张量数据来调试机器学习模型训练的实例系统环境的其它方面,包括根据分析结果来修改模型训练。
图15示出了根据一些实施例的用于使用张量数据来调试机器学习模型训练的实例系统环境的其它方面,包括使用来自当前运行的张量数据和来自先前运行的张量数据的版本比较。
图16是示出了根据一些实施例的用于使用张量数据来调试和剖析机器学习模型训练的方法的流程图。
图17示出了根据一些实施例的用于GPU代码注入以汇总机器学习训练数据的实例系统环境。
图18示出了根据一些实施例的用于GPU代码注入以汇总机器学习训练数据的实例系统环境的其它方面,包括提供张量数据的完整形式和汇总形式。
图19示出根据一些实施例的用于GPU代码注入以汇总机器学习训练数据的实例系统环境的其它方面,包括由GPU执行的非缩减操作。
图20是示出根据一些实施例的用于GPU代码注入以汇总机器学习训练数据的方法的流程图。
图21示出了可以在一些实施例中使用的实例计算装置。
尽管本文通过实例的方式针对若干实施例和说明性附图描述了实施例,但是本领域技术人员将认识到,实施例不限于所描述的实施例或附图。应理解的是,附图和对其的详细描述并非旨在将实施例限制于所公开的特定形式,而相反,意图是覆盖落入由所附权利要求限定的精神和范围内的所有修改、等效物和替代方案。本文所用的标题仅用于组织目的,并不意味着用于限制说明书或权利要求书的范围。如贯穿本申请所使用的,词语“可以”以允许的意义(即,意味着“有可能”)而不是强制的意义(即,意味着“必须”)来使用。类似地,词语“包括”、“包括的”、以及“包括有”意味着“包括,但不限于此”。
具体实施方式
本文描述了用于机器学习模型的自动问题检测的方法、系统和计算机可读介质的各种实施例。机器学习模型可以部署在生产环境中,并且可以基于输入数据产生推理(行为预测)。使用本文所述的技术,可以对使用机器学习模型来产生推理进行监视以检测各种问题。关于时间窗口上的一组推理的输入、输出和其它元数据的信息可被收集并写入存储装置。所述信息可以周期性地(按时间表)或按要求从存储器中检索并且在事后进行分析,对推理性能的影响最小,并且用户的输入或努力最小。然而,用户可以用用户指定的采样率、用户指定的分析频率和/或用于问题检测的用户指定的阈值来配置分析。分析可以自动检测问题或异常,例如未通过黄金实例的模型、输入数据中的异常值、推理数据分布变化、标签分布变化、个体实体的标签变化、地面实况差异和/或其它形式的数据漂移或模型漂移。分析系统可以自动地向用户通知检测到的问题和/或向用户提供足够的信息以供用户检查特定推理的输入、输出和中间步骤。分析系统可以基于问题检测自动启动机器学习模型的再训练。使用本文所述的技术,可以自动和有效地对生产中的机器学习模型的质量进行监视。
描述了用于机器学习模型训练的调试和剖析的方法、系统和计算机可读介质的各种实施例。使用训练数据和训练算法,可以训练机器学习模型,使得它们可以用于基于真实世界输入数据产生推理(行为预测)。使用本文所述的技术,可以对机器学习模型的训练进行监视以检测各种问题或状况。计算装置集群可用于训练特定模型。在训练期间,可以收集与训练相关联的数据并将其写入集群中的个别主机的本地存储装置。训练过程可以是具有多个阶段或步骤的迭代,并且可以针对那些阶段或步骤中的每一个收集数据。所收集的数据可以包括可用于调试的数据,例如与训练相关联的输入、输出、张量数据和元数据(例如,容器标识符、时间戳等)。所收集的数据可以包括可用于性能剖析的数据,例如处理器使用度量、存储器使用度量、存储器装置使用度量、I/O度量、网络使用度量等。可以例如在如机器学习分析系统之类的集中式组件处对所收集的数据进行聚合和分析。对于模型训练过程的调试,分析可使用所收集的调试数据来进行规则评估,以检测训练的状况、问题或异常,例如消失/爆炸梯度、跨批次或集群中的计算装置的数据分布差异等。对于模型训练过程的剖析,分析可以使用所收集的剖析数据来进行规则评估,以检测性能状况或性能问题,例如训练集群的瓶颈。分析系统可以在检测到特定状况时自动生成警报或启动修改训练的动作。本文所述的自动监视可以导致模型训练的问题的早期检测,例如,检测在过多时间过去之前不会收敛的模型。基于问题检测,可以暂停训练过程,并且可以中止训练集群的使用,以便节省资源。可以在对训练数据或学习算法进行改变之后重新开始训练过程。
描述了用于GPU代码注入以汇总机器学习训练数据的方法、系统和计算机可读介质的各种实施例。用于生成经训练的机器学习模型的训练集群可以使用一组图形处理单元(GPU)来执行训练的各方面。训练过程可采用通用GPU计算(GPGPU)技术来利用GPU所提供的并行性。在训练期间,可以收集与训练相关联的数据并将其写入集群中的个别主机的本地存储装置。训练过程可以是具有多个阶段或步骤的迭代,并且可以针对那些阶段或步骤中的每一个收集数据。所收集的数据可以包括可用于调试的数据,例如与训练相关联的输入、输出、张量数据和元数据(例如,容器标识符、时间戳等)。例如,可以在GPU上产生张量数据的全集,并在训练步骤期间将其存储在该GPU的存储器中。对于足够大的张量,步骤的全张量数据可以表示数百万个单独的值。如果全张量数据由GPU输出,保存到对应主机处的本地存储装置,并且通过网络提供到集中式分析系统,那么资源(例如,存储装置和网络资源)的消耗可能较高。为了减少用于分析的张量数据的量和大小,可以将缩减算子动态地注入GPU以产生张量数据的汇总或聚合形式。例如,缩减算子可以产生张量数据的全集的最小值、张量数据的全集的最大值、张量数据的全集的平均值等。GPU还可以用于对张量数据执行不一定是缩减的操作,例如一个张量与另一个张量的比较。通过在GPU上执行缩减,可由GPU输出张量数据的小得多的集合(例如,单个值)而非数千或数百万个个别值。通过在GPU上执行缩减和非缩减操作,可以比使用CPU更有效地执行对张量的操作。使用本文所述的用于GPU代码注入的技术,可针对训练集群处的本地存储装置、调试数据储存库处的远程存储装置、分析系统处的本地存储装置、训练集群或分析系统处的CPU资源(其可另外用于执行汇总)和所描述的组件中的任一者之间的网络带宽来最小化资源使用。
如本领域技术人员根据本公开将理解的,实施例能够实现某些技术优点,包括以下中的一些或全部:(1)通过自动检测常见问题并通知用户,提高生产中机器学习模型的质量;(1)如果检测到问题,通过自动再训练和重新部署模型来提高生产中机器学习模型的质量;(3)通过将推理过程中的数据收集与数据分析解耦,提高使用机器学习模型的推理产生的性能;(4)通过自动检测常见问题并通知用户,提高训练中机器学习模型的质量;(5)通过在训练的问题的早期检测之后中止模型训练过程来减少计算资源消耗;(6)通过从GPU输出汇总的张量数据而不是输出完整的张量数据来减少存储消耗;(7)通过从GPU输出汇总的张量数据而不是输出完整的张量数据来减少网络带宽消耗;(8)通过使用未充分利用的GPU而不是CPU来执行操作来减少对张量的操作的等待时间;等等。
用于机器学习模型的自动问题检测
图1示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境。机器学习系统100可以代表客户端管理机器学习模型的使用。机器学习模型可以与三个时期或阶段相关联:训练阶段,其中模型被训练;测试阶段,其中模型被测试;以及推理阶段,其中模型被应用于实况数据以产生推理(预测)。在各种实施例中,机器学习系统100可以执行机器学习模型训练任务120、机器学习模型测试任务130和机器学习推理任务140。机器学习模型训练120可以利用来自一个或多个数据源110A的训练数据112,并且可以产生经训练的模型125。机器学习模型测试130可以使用来自一个或多个数据源110B的测试数据114来测试经训练的模型125,并且可以产生经测试的模型135。机器学习推理系统140可以将经测试的模型135应用于来自一个或多个数据源110A的推理输入数据116,并且可以产生推理156。
例如,推理系统140可以使用模型135来确定特定用户点击web浏览器或其它启用因特网的接口中的特定广告的可能性。对这种模型的输入可以表示唯一用户标识符、用户人口统计信息、个体用户的广告点击历史等。由这种模型135产生的推理可以表示概率值或标签。作为另一实例,推理系统140可以使用模型135来确定是否向申请人提供住房贷款。这种模型的输入可以表示唯一用户标识符、用户收入数据、用户信用历史等。由这种模型135产生的推理可以表示指示个别申请人对贷款的吸引力的分数。
在一些实施例中,机器学习模型可以与对照数据语料库训练的权重的集合相关联,所述机器学习模型已经“学习”了如何应用那些权重来分类或解释新的数据样本。经训练的模型125可以通过自动过程(例如,训练120)来创建,但是也可以通过手动以多种方式来构造,例如通过直接实施代码,通过计算和手动输入参数化等。机器学习模型可以伴随有解释模型分数的规则集。规则集可消耗特征的向量并产生新向量(通常是小向量,例如仅包含单个条目)。
数据源110A、110B和110C可以包括一个或多个数据库系统、数据存储区、表格、储存库、存储服务,流数据源、服务器、存储器位置等。训练数据112可由用户或自动化系统收集并用作初始机器学习模型的输入,以准备模型来产生预测。训练数据112可以根据使用转换任务的模式来进行格式化。类似地,测试数据114可由用户或自动化系统收集并用作经训练的机器学习模型125的输入,以验证模型产生了正确的推理。测试数据114还可根据使用转换任务的模式来进行格式化。推理输入数据116可以表示真实世界数据,可以由用户或自动化系统收集,并且可以用作到经测试的机器学习模型135的输入以产生关于真实世界行为的预测。推理数据116可以根据使用转换任务的模式来进行格式化。
训练120、测试130和推理140阶段可以在相同的执行环境中或在不同的执行环境中实施。例如,在一个实施例中,统一机器学习框架可以代表客户端在托管环境中执行训练120、测试130和推理140。在一些实施例中,训练120和/或测试任务130可由客户端执行以产生模型,并且该模型可用于代表客户端在托管环境中产生推理。在一些实施例中,训练120和/或测试任务130可以代表客户端在托管环境中执行,并且推理任务140可以在外部环境中执行(例如,使用客户端托管服务器或使用另一机器学习框架)。训练120、测试130和推理140组件中的任一个可表示彼此松散耦合或解耦合的个别系统或子系统。
推理系统140可以包括多个端点,例如端点150A到端点150N。端点150A至150N中的每一个可以托管用于生成推理的一个或多个机器学习模型。端点150A至150N中的每一个可以包括执行推理任务的一个或多个主机或服务器。端点150A至150N可以在很大程度上彼此独立,使得一个端点的性能不一定影响另一个端点的操作。在一个实施例中,如端点150A的端点可包括用于推理产生152A的组件。推理产生152A可以将经训练和测试的机器学习模型135应用于推理输入数据116,以便生成推理156。推理156可以基本上实时地产生,例如在收集推理输入数据116之后具有最小延迟。推理156可由应用程序190使用以做出决定。例如,如果推理156表示特定用户点击web浏览器中的特定广告的可能性的概率值或标签,则应用程序190可表示为特定用户生成特定广告的web服务器。作为另一实例,如果推理156表示指示个别申请人对贷款的吸引力的分数,则应用程序190可表示生成贷款提议或批准贷款申请的贷款系统。贷款系统可以是自动的,或者可以依赖于用户输入来批准由推理系统140生成的作为推理156的推荐。
端点150A还可以包括用于机器学习数据收集154A的组件。所收集的推理数据可以表示与使用机器学习模型来产生推理相关联的数据。对于个别推理请求,数据收集154A可以收集推理数据,例如推理输入数据、结果推理和模型元数据的各种元素(例如,模型标识符、模型版本标识符、端点标识符、时间戳、容器标识符等)。对于个别推理请求,数据收集154A可以在生成最终预测之前收集表示中间结果的模型数据伪影。数据收集154A不一定收集所有推理的机器学习数据,而是可以对推理产生152A进行采样。采样率可以表示默认速率或者可以由与机器学习模型相关联的客户端指定,例如,使用由客户端提供的监视配置。通过对推理数据进行采样,数据收集154A可以减少其对推理产生152A的等待时间的影响。在一些实施例中,客户端还可在逐个模型或逐个端点的基础上启用或禁用数据收集154A。
数据收集154A可以使用数据存储区160来存储所收集的推理数据。数据存储区160(包括数据存储区内的特定存储位置、桶或帐户)和其它数据收集参数值可由与模型135相关联的用户标识,例如在提交创建端点150A的请求时。在一个实施例中,例如,端点创建请求可被格式化为如以下实例中所示,其中用户选择捕获具有模型的容器的输入和输出以及要从容器内捕获的定制数据:
数据存储区160可以在端点150A的外部。例如,数据存储区160可以表示供应商网络的存储服务,并且推理数据可以被写入与模型135相关联的客户端所拥有的特定存储位置(或位置集合)。通过将数据存储区160与端点150A解耦,数据收集154A可以进一步减少其对推理产生152A的等待时间的影响。端点150A可以批处理推理数据并周期性地将其写入数据存储区160。可以针对特定时间窗口(例如,针对一小时或二十四小时时段)收集推理数据,使得在数据存储区160中的一个数据块中收集一个时间窗口的推理数据,而在数据存储区160中的另一个数据块中收集另一个时间窗口的推理数据。
机器学习分析系统170可以使用数据存储区160中收集的推理数据来执行推理产生152A的自动分析。分析系统170可以确定推理产生的输入、输出和中间步骤的正确性和/或所部署的机器学习模型的质量。分析系统170可以包括用于自动问题检测172的组件,该组件尝试发现模型或其输入数据中的一种或多种类型的问题、异常或其它缺陷。如将关于图6至图11更详细地讨论的,分析可以自动检测问题或异常,例如未通过黄金实例的模型、输入数据中的异常值、推理数据分布变化、标签分布变化、个体实体的标签变化、地面实况差异和/或其它形式的数据漂移或模型漂移。在一些实施例中,分析可以利用训练数据112和/或测试数据114。可以根据阈值来执行分析,并且阈值可以由与机器学习模型相关联的客户端指定,例如,使用由客户端在用户接口或编程接口中提供的分析配置。
在一个实施例中,分析170可以为分析窗口内的数据集产生预定义的度量集。度量可以包括如最小值、最大值、标准偏差、平均值、中值、直方图和分位数的统计数据。度量可被计算并使得客户端可访问,例如在客户端可访问的存储位置中。客户端可以配置输入数据的哪些特征用于度量和/或一批中的多少项目用于度量的计算。例如,可以根据以下实例以数据结构表示度量:
在各种实施例中,分析系统170可以托管在与推理系统140相同的执行环境中,或者托管在与推理系统不同的执行环境中。例如,分析170可以是与推理140相同的供应商网络或机器学习框架的一部分。作为另一实例,分析170可以托管在云计算环境中,并且推理系统140可以远程托管在客户端驻地上(或在不同的机器学习框架中),并且可以被配置成执行数据收集154A并将推理数据以期望的格式写入数据存储区160(或以其它方式将数据提供给分析系统)。
可以根据分析速率(例如,每二十四小时)有规律地和周期性地执行分析170。分析速率可以表示默认速率或者可以由与机器学习模型相关联的客户端指定,例如,使用由客户端提供的分析配置。推理数据的分析170可以按时间表启动,例如每二十四小时分析前一天的推理数据价值。分析170可以在手动和特别的基础上启动,例如,通过来自试图用机器学习模型诊断问题的客户端的用户输入。在一些实施例中,客户端还可以在逐个模型或逐个端点的基础上启用或禁用问题检测172,以降低性能影响和/或不必要的分析的开销。通过将分析系统170与推理系统140解耦,机器学习系统100可以减少问题检测172对推理产生152A的性能影响。
分析系统170可以包括用于自动问题补救174的组件,该组件尝试补救、纠正或以其它方式改进所检测到的问题。问题补救172可启动一个或多个动作来改进模型或其在生成推理中的使用,例如,使得由改进的模型(或使用改进的输入数据集的同一模型)产生的推理表示应用程序190的更高准确度和/或有用性。在一个实施例中,分析系统170可以自动地向用户通知检测到的问题和/或向用户提供足够的信息以供用户检查特定推理的输入、输出和中间步骤。在一个实施例中,分析系统170可以基于问题检测自动启动机器学习模型的再训练。
在一些实施例中,机器学习模型可以被封装在容器中以在容器化环境中执行。不需要修改容器的程序代码来执行数据收集154A、问题检测172或问题补救174。执行环境可以包括或与实施机器学习任务的一个或多个系统、服务或其它组件相关联。可以在如图21所示的实例计算装置3000等一个或多个计算装置上构建执行环境的任何系统、服务或其它组件。执行环境可以根据其底层配置而变化。在一个实施例中,执行环境可包括基于MapReduce的集群计算环境、流处理系统、如亚马逊简单工作流服务(Amazon SimpleWorkflow Service)等工作流系统,以及其它合适的环境。在一个实施例中,可以使用协作执行机器学习任务的计算装置的集群来实施执行环境。为了执行一个或多个机器学习任务,可以提供、启动或以其它方式启动集群。在一个实施例中,特定执行环境可使用如Apache Hadoop、Apache Spark等的编排框架来管理集群。
机器学习系统100可以使用任何合适数目和配置的计算装置来实施,其中任何一个都可以由图21所示的实例计算装置3000来实施。计算装置可以位于任何合适数目的数据中心或地理位置。在各种实施例中,系统100的至少一些功能可以由相同的计算装置或由不同的计算装置提供。如果使用不同的计算装置来实施系统100的任何组件,那么这些组件及它们相应的计算装置可以通信地耦合,例如经由一个或多个网络。系统100的每个组件可以表示可用于执行它们相应的功能的软件和硬件的任何组合,如下所述。由系统100实施的操作可以被自动地执行,例如,在初始配置阶段之后不需要用户启动或用户干预,以及以编程方式执行,例如通过在至少一个计算装置上执行程序指令。经考虑,系统100可以包括未示出的附加组件、比所示出的组件少的组件、或者所示出的组件的不同组合、配置或数目。
训练120、测试130、推理140和/或分析系统170中的一个或多个可以在面向服务的系统中实施,在该面向服务的系统中,多个服务(例如,一个或多个托管的执行环境中的服务)根据面向服务的架构协作。在这样的环境中,训练120、测试130、推理140和/或分析服务170中的一个或多个可以向多个客户端提供其作为服务的功能。为了使客户端能够调用其功能,训练120、测试130、推理140和/或分析服务170可展示任何合适的接口,例如一个或多个API或其它编程接口和/或图形用户接口(GUI)。可以使用分布在一个或多个网络中的多个不同实例来实施服务,并且每个实例可以向各个客户端提供对相应服务的功能的访问。在一个实施例中,可以向客户端提供机器学习任务的功能以换取费用,或者可以向负责实体评估与执行机器学习任务相关联的成本。
系统100的组件可以通过一个或多个网络向彼此传送基于网络的服务请求。在各种实施例中,网络可以包含在组件之间建立基于网络的通信所必需的联网硬件和协议的任何合适的组合。例如,网络通常可以包含共同实施因特网的各种电信网络和服务供应商。网络还可以包括专用网络,例如局域网(LAN)或广域网(WAN)以及公共或专用无线网络。例如,两个不同的组件可以在具有他们自己的内部网络的企业内被分别供给。在这样的实施例中,网络可以包括在给定组件与因特网之间以及因特网与另一组件之间建立联网链路所必需的硬件(例如,调制解调器、路由器、交换机、负载平衡器、代理服务器等)和软件(例如,协议栈、记帐软件、防火墙/安全软件等)。应注意的是,在一些实施例中,组件可以使用专用网络而非公共因特网来通信。
在一个实施例中,可以使用供应商网络的计算资源来实施系统100的组件。供应商网络可以表示由如公司或公共部门组织之类的实体建立的网络,以向一组分布式客户端提供可经由因特网和/或其它网络访问的一个或多个服务(例如各种类型的网络可访问计算或存储)。供应商网络可以包括托管各种资源池(如物理和/或虚拟化计算机服务器、存储装置、联网装置等的集合)的众多数据中心,这些资源池用于实施和分布由供应商所提供的基础设施和服务。在一些实施例中,计算资源可以在被称为“实例”的单元(如虚拟或物理计算实例)中被提供给客户端。例如,虚拟计算实例可以包含具有指定的计算能力(可以通过指示CPU的类型和数目、主存储器大小等来指定)的一个或多个服务器以及指定的软件栈(例如,可以在管理程序之上运行的操作系统的特定版本)。许多不同类型的计算装置可以被单独地或以组合方式使用以实施不同实施例中的供应商网络的资源(包括通用或专用计算机服务器、存储装置、网络装置等)。因为供应商网络的资源可以同时在多个客户端(或承租人)的控制下,所以可以说供应商网络提供了多租户并且可以被称为多承租人供应商网络。
图2示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括生成描述在机器学习模型中检测到的问题的通知。如上所述,分析系统170可以包括用于自动问题补救174的组件,该组件尝试补救、纠正或以其它方式改进所检测到的问题。如图2所示,问题补救174可包括用于问题通知274的组件。问题通知组件274可生成描述检测到的机器学习模型或推理数据问题的通知或警告。通知可以指示例如问题的类型、遇到问题的日期或时间窗口、模型标识符、模型版本号、端点标识符、容器标识符、检测到问题的推理所特有的信息以及对识别和补救机器学习问题有用的其它信息。问题通知组件274可向用户提供足够的信息以供用户检查特定推理的输入、输出和中间步骤。在一个实施例中,问题通知组件274可向相关用户200可访问的通知系统290发送通知。通知系统290可以表示云计算环境或其它供应商网络中的服务,其从用户账户所使用的多个服务收集通知和度量,并将它们集中到该用户账户。例如,当生成问题通知时,通知系统290可以寻呼或发送电子邮件给与模型相关联的用户。
在一些实施例中,可以根据阈值和/或阈值层级来执行分析170。例如,如果模型昨天的精度比前天的低一个阈值百分比,则可以检测到问题并相应地生成通知。阈值层级可以表示检测到的问题的严重性等级,并且通知可以基于(至少部分地)问题所在的层级而变化。例如,绿色层级可指示模型按预期工作,黄色层级可指示应调查一个或多个问题,而红色层级可指示模型可能损坏并产生错误推理。阈值和/或层级可以由用户指定或者可以表示默认值。在一些实施例中,分析170可以生成随时间跟踪个别结果(例如,导致特定分类的推理的百分比)和/或总体分析(例如,与地面实况相比的所有推理的准确度)的度量仪表板。阈值和层级可以反映在问题通知中。下面参考图6至图11讨论阈值的实例。
图3示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括对检测到问题的机器学习模型的自动再训练。如上所述,分析系统170可以包括用于自动问题补救174的组件,该组件尝试补救、纠正或以其它方式改进所检测到的问题。如图3所示,问题补救174可以包括用于模型再训练374的组件。在一个实施例中,分析系统170可以基于问题检测自动启动机器学习模型的再训练。在一个实施例中,再训练374可以包括生成一组新的训练数据。新的训练数据集可以与推理输入数据116的一个或多个特征一致。例如,如果在训练期间85%的人看到特定的邮政编码,而在推理期间仅5%的人看到,则可以收集或生成新的训练数据,其反映推理数据116中邮政编码的5%的发生率。可自动测试经再训练的模型126以产生经测试的模型136,所述经测试的模型可再次用于使用推理系统140产生推理。可以使用自动分析170周期性地再训练所述模型,使得机器学习系统100适应输入数据、服务依赖性等的变化。
图4示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括对机器学习模型的不同版本的分析。在一些实施例中,可以训练、测试和使用模型的两个不同版本来并行或串行地产生推理。例如,可以使用经训练的模型125A和经测试的模型135A来表示模型的一个版本,并且可以使用经训练的模型125B和经测试的模型135B来表示模型的另一个版本。所述版本中的一个可以表示试图与较旧版本比较的较新版本,或者这两个版本可以表示试图同时比较其性能的替代版本。这两个版本可以被部署到如端点150A和150B的一个或多个端点。例如,模型135A可用于一个端点150A处的推理产生152A和数据收集154A,而模型135B可同时用于另一个端点150B处的推理产生152B和数据收集154B。这两个版本可用于在同一时间窗期间或在不同时间窗期间产生推理156。在一个实施例中,例如,当并行测试两个替代版本时,可以将两个模型应用于同一组推理输入数据116。所收集的推理数据可以存储在数据存储区160中,并由分析系统170用来执行两个模型版本的比较472。比较472可以生成关于预测准确性的度量、关于与预测相关联的标签的统计数据,以及可用于将一个模型版本的质量与另一模型版本的质量进行比较的其它数据。
在一个实施例中,分析170可以自动检测被频繁再训练的机器学习模型的问题或异常。分析170可以将模型的两个版本与检查点先前版本进行比较,并且提供改进的警报。对于经频繁再训练的模型,分析170可以检测异常模型漂移。例如,如果当前模型和先前模型的预测分布之间的差值通常是0.05的平方距离,但是对于当前模型,差值是1.5,则分析170可以报告训练数据可能被污染或者是有问题的。对于经频繁再训练的模型,分析170可以帮助确定适当的训练频率。分析170可以绘制准确度随时间的变化;如果准确度是直线,则分析可建议较不频繁地执行训练以节省资源。然而,如果线是锯齿状的,则分析170可建议更频繁地执行训练以提高预测质量。在一些实施例中,一旦当前模型与先前模型之间的预测不同,分析170可以警告用户或自动启动模型再训练。
图5是示出了根据一些实施例的用于机器学习模型的自动问题检测的方法的流程图。如500所示,可以使用机器学习模型并(至少部分地)基于推理输入数据来生成推理(预测)。推理生成可以将经训练和经测试的机器学习模型应用于推理输入数据,以便生成推理。推理可以基本上实时地产生,例如在收集推理输入数据之后具有最小延迟。推理产生可以托管在云计算环境中的端点处、在客户端托管的服务器上,或在另一机器学习框架中。推理可以由应用程序使用以潜在地近实时地做出决定。例如,如果推理表示特定用户点击web浏览器中的特定广告的可能性的概率值或标签,则应用程序可表示为特定用户生成特定广告的web服务器。
如510所示,可以收集与机器学习模型的使用相关联的数据。所收集的推理数据可以表示与使用机器学习模型来在某个时间窗口(例如,二十四小时时段)内产生推理相关联的数据。对于个别推理请求,数据收集可以收集推理数据,例如推理输入数据、结果推理输出和/或模型元数据的各种元素(例如,模型标识符、模型版本标识符、端点标识符、时间戳、容器标识符等)。对于个别推理请求,数据收集可以在生成最终预测之前收集表示中间结果的模型数据伪影。数据收集不一定收集所有推理的机器学习数据,而是可以对推理产生进行采样。
如520所示,收集的数据可以存储在例如数据存储区或其它存储位置中。数据存储区可以表示供应商网络的存储服务,并且推理数据可以被写入与模型相关联的客户端所拥有的特定存储位置(或位置集合)。通过将数据存储区与托管推理产生的端点或服务器解耦,数据收集可进一步降低其对推理的性能影响。端点或服务器可以批处理推理数据并周期性地将其写入数据存储区。可以针对特定时间窗口(例如,针对一小时或二十四小时时段)收集推理数据,使得在数据存储区中的一个数据块中收集一个时间窗口的推理数据,而在数据存储区中的另一个数据块中收集另一个时间窗口的推理数据。
如530所示,该方法可以确定是否在当前时间执行存储数据的分析。例如,推理数据的分析可以按时间表启动,例如每二十四小时分析前一天的推理数据价值。作为另一实例,分析可以在手动和特别的基础上启动,例如,通过来自试图用机器学习模型诊断问题的客户端的用户输入。在一些实施例中,客户端还可以在逐个模型或逐个端点的基础上启用或禁用问题检测,以降低性能影响和/或不必要的分析的开销。如果此时不需要分析,则方法可以返回到500所示的操作。注意,可以连续地或有规律地执行500中所示的推理生成,而不受数据收集或所收集数据的分析的负面影响。如540所示,如果此时需要分析,则可以从存储装置中检索数据。推理产生可以与存储和分析解耦,以便最小化对推理的性能影响。
如550所示,可以对数据进行分析以尝试检测一种或多种类型的问题,例如,模型或模型的输入数据。如将关于图6至图11更详细地讨论的,分析可以自动检测问题或异常,例如未通过黄金实例的模型、输入数据中的异常值、推理数据分布变化、标签分布变化、个体实体的标签变化、地面实况差异和/或其它形式的数据漂移或模型漂移。如560所示,该方法可以确定是否检测到问题。可以根据确定关于模型的给定观察是否上升到可能需要干预的问题水平的阈值来进行分析。如570所示,如果检测到问题,则分析系统可启动一个或多个动作以补救该问题。问题补救可以启动一个或多个动作以改进模型或其在生成推理中的使用。在一个实施例中,分析可以导致自动地向用户通知检测到的问题和/或向用户提供足够的信息以供用户检查特定推理的输入、输出和中间步骤。在一个实施例中,分析可以导致基于问题检测自动启动机器学习模型的再训练。
图6示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括用于机器学习模型的黄金实例差异分析。在一个实施例中,分析172可以自动检测如验证失败的模型或“黄金”实例的问题或异常。黄金实例差异分析672可以使用与一个或多个黄金实例相关联的测试数据114的储存库。测试数据114可以成批地或对照端点有规律地执行,以检查模型135继续与测试数据114按预期工作,例如,通过将推理产生152A的结果与测试数据的预期结果115进行比较。通过使用黄金实例监视模型的质量,黄金实例差异分析672可检测错误模型的无意部署,检测生产环境的变化(例如,已影响模型的依赖性变化),和/或确保模型的新版本不会破坏基本用例。
图7示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括用于机器学习模型的异常值检测分析。在一个实施例中,分析172可以自动检测如输入数据中的异常值之类的问题或异常。异常值检测分析772可以应用于个别推理请求。为了检测输入数据中的异常值,分析772可以捕获关于训练数据112的统计数据和其它信息,并且使用此类信息来确定模型135是否应当被再训练或者是错误的。异常值检测分析772可以检测输入数据116中的词汇外实例的类别值或文本值。异常值检测分析772可以检测在训练时间看到的范围之外的值。例如,异常值检测分析772可以检测到BANK_BALANCE输入特征在训练时间小于1,000,000,但是推理输入值是1,000,000,000。异常值检测分析772可以检测输入数据116中的稀疏值,所述稀疏值在训练数据112中不是稀疏的。例如,异常值检测分析772可以检测到在推理数据116中缺失了一列(并强制为零或默认值),但总是存在于训练数据112中。
图8示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括用于机器学习模型的推理数据分布变化分析。在一个实施例中,分析172可以自动检测如推理数据分布变化的问题或异常。推理数据分布变化分析872可以应用于推理请求的集合。为了检测输入数据分布的变化,分析872可以收集推理有效载荷(例如,实例数据)并将其累积在数据存储区860中。一旦收集到统计上显著量的样本,或者根据时间表,例如每二十四小时,可以对推理有效载荷数据860进行推理数据分布变化分析872。推理数据分布变化分析872可以计算累积数据860的汇总统计数据,并将统计数据与训练数据112的对应统计数据进行比较。推理数据分布变化分析872可以对连续统计数据的最大值、最小值、平均值、p90和/或p10值进行比较。推理数据分布变化分析872可以对类别的每个类别的值的分布进行比较。例如,训练期间可能有85%的人已经看到特定的邮政编码,但是在推理期间仅5%的人看到。推理数据分布变化分析872可以对值的稀疏性进行比较。
图9示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括用于机器学习模型的标签分布变化分析。在一个实施例中,分析172可以自动检测如标签分布变化的问题或异常。标签可表示推理的类别,如标记为真的推理或标记为假的推理。标签分配变化分析972可以应用于推理请求的集合。为了检测标签分布的变化,分析972可以收集推理有效载荷和对应的响应(例如,由模型输出的预测),并且在数据存储区960中累积数据。对于与特定时间窗口相关联的数据块并且根据例如每二十四小时的时间表,可以对累积数据960进行标签分布变化分析972。标签分布变化分析972可以将来自最近时间窗口(例如,先前的二十四小时)的推理数据960B与来自先前时间窗口(例如,先前的二十四小时时段)的推理数据960A进行比较。标签分布变化分析972可以确定预测是否随时间保持相同或相似。对于分类,标签分布变化分析972可以对每个类中的分布进行比较。例如,如果昨天具有85%的真预测,但是前天具有15%的真预测,则标签分布变化分析972可以将该差异识别为问题。对于回归,标签分布变化分析972可以对分布进行比较。例如,如果昨天模型预测的收入为$100,000,但是在前天模型预测的收入为$50,000,则标签分配变化分析972可以将该差异识别为模型135或输入数据116的问题。在一些实施例中,标签分布变化分析972可用于将来自一个时间段的预测与测试集114或训练集112进行比较。
图10示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括用于机器学习模型的个体标签变化分析。在一个实施例中,分析172可以自动检测问题或异常,例如个体实体的标签变化。个体标签变化分析1072可以应用于输入数据中的个体实体的推理请求的集合。为了检测个体标签的变化,分析1072可以收集推理有效载荷和对应的响应(例如,模型输出的预测)以及个体实体的唯一标识符,并且在数据存储区1060中累积数据。对于与特定时间窗口相关联的数据块并且根据例如每二十四小时的时间表,可以对数据1060进行个体标签变化分析1072。个体标签变化分析1072可以取得最近的数据块1060B,并使用个体实体的唯一标识符将其与先前的块1060A结合。个体标签变化分析1072可能特别适用于每日的批量推理或循环预测。对于回归问题,个体标签变化分析1072可以存储每个分数和实体,例如将预测映射到用于分类目的的不同的桶。例如,不同的桶可以表示不同的分数范围。对于每个实体,个体标签变化分析1072可以确定该实体是保持在相同的桶中还是从一个时间段到下一个时间段改变桶。个体标签变化分析1072可以基于适当的阈值来生成关于潜在问题的警告,例如,如果20%或更多的实体移动了桶。
图11示出了根据一些实施例的用于机器学习模型的自动问题检测的实例系统环境的其它方面,包括用于机器学习模型的地面实况差异分析。在一个实施例中,分析172可以自动检测如地面实况差异的问题或异常。对于一些模型,用户或自动化系统可以在稍后的时间收集地面实况1116。地面实况值1116可以表示观察到的现实世界结果。例如,如果模型135预测特定用户点击web浏览器中的特定广告的可能性,则该预测的地面实况可以是实际点击或最终超时而没有点击。作为在较长的时间范围的另一实例,如果模型135预测特定房主在接下来的十二个月内拖欠住房贷款的可能性,则该预测的地面实况可能不会在另一年内被收集。地面实况差异分析1172可以应用于地面实况值1116已知(显式或隐式地)的推理的集合。为了检测地面实况数据1116与预测相比的差异,分析1172可以将预测(包括具有唯一标识符的模型的输出)与稍后收集的地面实况值结合。如果差异高于阈值,则地面实况差异分析1172可以生成警告。该阈值可以(至少部分地)基于训练数据112的准确度或基于用户指定的值。在一些实施例中,地面实况差异分析1172可以考虑地面实况覆盖。地面实况覆盖可指示用户选择覆盖应用程序中的模型的预测,例如当用户将预测识别为不正确时。
机器学习模型训练的调试和剖析
图12A和图12B示出了根据一些实施例的用于使用张量数据来调试机器学习模型训练的实例系统环境。如以上关于图1所讨论的,机器学习系统100可以代表客户端管理机器学习模型的使用。机器学习模型可以与三个时期或阶段相关联:训练阶段,其中模型被训练;测试阶段,其中模型被测试;以及推理阶段,其中模型被应用于实况数据以产生推理(预测)。在各种实施例中,机器学习系统100可以执行机器学习模型训练任务120、机器学习模型测试任务130和机器学习推理任务140。机器学习模型训练120可以利用来自一个或多个数据源110A的训练数据112,并且可以产生经训练的模型125。机器学习模型测试130可以使用来自一个或多个数据源110B的测试数据114来测试经训练的模型125,并且可以产生经测试的模型135。机器学习推理系统140可以将经测试的模型135应用于来自一个或多个数据源110A的推理输入数据116,并且可以产生推理156。
在一些实施例中,机器学习模型可以与对照数据语料库训练的权重的集合相关联,所述机器学习模型已经“学习”了如何应用那些权重来分类或解释新的数据样本。如果训练是成功的,则训练过程可以迭代导致收敛的多个阶段或步骤。与训练数据集112一起,训练过程120可以使用学习算法来产生经训练的模型。训练数据112可以包括输入特征以及基于这些特征的正确预测(目标或目标属性)。在训练120期间,学习算法可以在训练数据中找到将输入数据特征映射到目标的模式,并且训练120可以输出捕获这些模式的模型。例如,训练系统120可以生成经训练的模型125,所述经训练的模型可以确定特定用户点击web浏览器或其它启用因特网的接口中的特定广告的可能性。对这种模型125的输入可以表示唯一用户标识符、用户人口统计信息、个体用户的广告点击历史等。由这种模型产生的推理可以表示概率值或标签。作为另一实例,训练系统120可生成可确定是否向申请人提供住房贷款的经训练的模型125。这种模型的输入可以表示唯一用户标识符、用户收入数据、用户信用历史等。由这种模型125产生的推理可以表示指示个别申请人对贷款的吸引力的分数。
数据源110A、110B和110C可以包括一个或多个数据库系统、数据存储区、表格、储存库、存储服务,流数据源、服务器、存储器位置等。训练数据112可由用户或自动化系统收集并用作初始机器学习模型的输入,以准备模型来产生预测。训练数据112可以根据使用转换任务的模式来进行格式化。类似地,测试数据114可由用户或自动化系统收集并用作经训练的机器学习模型125的输入,以验证模型产生了正确的推理。测试数据114还可根据使用转换任务的模式来进行格式化。推理输入数据116可以表示真实世界数据,可以由用户或自动化系统收集,并且可以用作到经测试的机器学习模型135的输入以产生关于真实世界行为的预测。推理数据116可以根据使用转换任务的模式来进行格式化。
训练120、测试130和推理140阶段可以在相同的执行环境中或在不同的执行环境中实施。例如,在一个实施例中,统一机器学习框架可以代表客户端在托管环境中执行训练120、测试130和推理140。在一些实施例中,训练120和/或测试任务130可由客户端使用客户端托管服务器执行以产生模型,并且该模型可用于代表客户端在托管环境中产生推理。在一些实施例中,训练120和/或测试任务130可以代表客户端在托管环境中执行,并且推理任务140可以在外部环境中执行(例如,使用客户端托管服务器或使用另一机器学习框架)。训练120、测试130和推理140组件中的任一个可表示彼此松散耦合或解耦合的个别系统或子系统。
训练系统120可以使用机器学习训练集群1200来生成经训练的模型125。集群1200可以包括一个或多个主机,例如主机1210A至主机1210M。主机1210A至1210M可以表示相同或类似的配置(例如,CPU、GPU、存储器、本地存储装置等),并且可以并行地用于模型125的训练。例如,每个主机可以在模型训练过程的特定步骤期间存储和使用张量。张量可以随主机而变化。在一个实施例中,张量是表示如标量、矢量和矩阵之类的较高维形式的对象的数学对象。张量可以表示N维矩阵。例如,训练数据112中的图像可以具有三个维度:宽度、高度和颜色深度。可以使用四维张量来存储一系列图像,其中第四维表示训练数据的样本大小。训练过程120所使用的张量的其它实例可以包括几十、几百或几千个维度。对于此类张量,单个值的数量可能非常大(例如,数百万)。
在一个实施例中,每个主机可以包括用于机器学习数据收集的组件,以在训练过程期间收集与机器学习模型125的训练相关联的数据。例如,主机1210A可包括数据收集组件1215A,而主机1210M可包括数据收集组件1215M。数据收集组件1215A至1215M可表示可由相应主机1210A至1210M执行的代理软件的实例。在一些实施例中,系统100可以自动插入探测点以用于数据捕获。数据收集组件1215A至1215M可以捕获与模型训练相关联的张量级数据,例如用于训练过程的特定步骤的张量数据。例如,数据收集组件1215A可生成张量数据1225A,而数据收集组件1215M可生成张量数据1225M。张量级数据可以表示数值。张量数据1225A至1225M可以表示N维张量的个别值。张量数据1225A至1225M可以表示训练过程的步骤的一个或多个输入、一个或多个输出,和/或一个或多个中间值或状态、一个或多个权重,和/或一个或多个激活。张量数据1225A至1225M还可以表示与训练过程相关联的元数据,例如学习算法标识符、学习步骤数、时间戳、容器标识符、主机标识符、集群标识符和/或可用于执行训练过程的调试的其它信息。
数据收集1215A至1215M不一定收集所有张量的机器学习数据,而是可以捕获样本。采样率可以表示默认速率或者可以由与机器学习模型相关联的客户端指定,例如,使用由客户端提供的监视配置。通过对数据进行采样,数据收集1215A至1215M可以减少其对训练120的等待时间的影响。在一些实施例中,客户端还可在逐个模型、逐步或逐个主机的基础上启用或禁用数据收集1215A至1215M。
数据收集组件1215A至1215M可以使用对应主机1210A至1210M的本地可访问存储资源来存储所捕获的数据。为了执行模型训练120的调试,机器学习分析系统1270可以检索所捕获的数据(例如张量数据1225A至1225M)。在一些实施例中,所捕获的数据可以由主机1210A至1210M写入集群1200外部的数据存储区,例如由供应商网络的存储服务所管理的,并且分析系统1270可以从该数据存储区检索所捕获的数据。数据存储区(包括数据存储区内的特定存储位置、桶或帐户)和其它数据收集参数值可由与模型125相关联的用户200标识。在一些实施例中,所捕获的数据可以从集群1200流向分析系统1270。通过将分析系统1270与模型训练120解耦,可以减少分析对模型训练的等待时间影响。
机器学习分析系统1270可以使用所收集的张量数据1225A至1225M来执行模型训练120的自动分析。在一些实施例中,可以根据阈值来执行分析,并且阈值(以及分析的其它定制)可以由与机器学习模型相关联的客户端来指定,例如,使用由客户端在用户接口或编程接口中提供的分析配置。可以在适当的时间执行分析1270,例如在已经完成模型训练120的步骤并且所捕获的数据已经由集群1200发射之后。分析系统1270可以包括用于自动规则评估1272的组件,该组件尝试通过评估一个或多个规则来发现模型训练120中的一种或多种类型的状况、问题、异常或其它行为。规则可以表示关于训练过程120的状态的断言,例如,使得如果所捕获的数据中的特定值超过阈值,则可以匹配特定规则。例如,以这种方式使用规则,可以向用户200确保特定值在最小和最大界限内,并且如果该值违反这些断言,则可以警告用户。
在一些实施例中,定制规则可由用户提供并由分析系统1270评估。在一些实施例中,可以评估默认规则集。默认规则可以表示模型训练的常见问题和其它条件,例如爆炸梯度、消失梯度、训练数据112的步骤间或批次间的数据分布变化、训练数据的主机间的数据分布变化、溢出条件、下溢条件、BatchNorm不稳定性、操作者的错误或不兼容实施方案等。例如,如果针对同一批次将“猫”图像集提供到一个GPU而将“狗”图像集提供到另一GPU,那么可检测到数据分布问题。作为另一实例,当张量全为零时可以检测到问题。作为又一实例,爆炸梯度可表示这样的问题,其中大误差梯度累积并导致训练期间对模型权重进行非常大的更新。爆炸梯度的效果可以是不稳定且不能从训练数据112学习的模型。类似地,消失梯度可能表示梯度极小的问题,从而防止权重改变其值并且阻碍进一步训练。因此,尽可能早地检测爆炸梯度问题或消失梯度问题可以允许用户200在过多的时间和集群资源被用于几乎确定最终会失败的模型训练过程之前中断或停止训练过程120。
所捕获的数据1225A至1225M可以在执行规则评估1272之前被汇总和/或聚合。将所捕获的数据1225A至1225M聚合可以包括收集和捆绑来自一组主机1210A至1210M的数据,使得分析1270可以获得训练过程120的更宽的视图。将所捕获的数据1225A至1225M聚合可以包括例如通过应用缩减算子来确定最小值、最大值、平均值等来生成数据的汇总形式。在一些实施例中,例如通过在个别主机1210A至1210M处汇总张量数据,聚合的各方面可以在集群1200处执行。在一些实施例中,聚合的各方面可以在分析系统1270处执行。如图12B的实例所示,分析系统1270可以包括用于聚合的组件1271。聚合组件1271可以捆绑由个别主机捕获的数据和/或汇总所捕获的数据集。
分析系统1270可包括用于警报生成的组件1274。当使用规则评估1272检测到训练120的特定状况或问题时,警报生成1274可用于引发或生成警报或警告。警报组件1274可生成描述机器学习模型训练或训练数据所检测到的状况或问题的警报。警报可以指示例如问题或状况的类型、遇到问题或状况的日期或时间窗口、模型标识符、模型版本号、容器标识符、集群标识符、主机标识符、有问题的张量数据或其汇总,和/或对于识别和补救机器学习训练的问题或状况有用的其它信息。警报组件1274可向用户200提供足够的信息,以供用户检查特定训练步骤的输入、输出和中间步骤。在一个实施例中,警报组件1274可向用户200可访问的控制台或通知系统(例如,通知系统290)发送通知、警告或其它消息。控制台或通知系统可以表示云计算环境或其它供应商网络中的服务,其从用户账户所使用的多个服务收集通知和度量,并将它们集中到该用户账户。例如,当生成警报时,通知系统可以寻呼或发送电子邮件给与模型相关联的用户200。
在训练中使用了过多的资源之前,例如对于没有收敛的模型,可以产生关于模型训练过程120的警报。因此,(至少部分地)基于警报,可以中断或中止训练120,以便节省集群1200的资源。(至少部分地)基于警报,集群1200可被撤销或以其它方式停止其使用。(至少部分地)基于警报,可以修改模型训练120的配置以补救所检测到的问题,并且然后可以用修改后的配置重新开始训练。(至少部分地)基于警报,可以执行根本原因分析以确定在模型训练120中检测到的问题的根本原因。
在各种实施例中,分析系统1270可以托管在与训练系统120相同的执行环境中,或者托管在与推理系统不同的执行环境中。例如,分析1270可以是与训练集群1200相同的供应商网络或机器学习框架的一部分。作为另一实例,分析1270可以托管在云计算环境中,并且训练集群1200可以远程托管在客户端驻地上(或在不同的机器学习框架中),并且可以被配置成执行数据收集1215A至1215M并将推理数据以期望的格式写入数据存储区(或以其它方式将数据提供给分析系统)。
在一些实施例中,被训练的机器学习模型125可以被封装在容器中以在容器化环境中执行。在一些实施例中,不需要修改容器的程序代码或学习算法来执行数据收集1215A至1215M或规则评估1272。执行环境可以包括或与实施机器学习任务的一个或多个系统、服务或其它组件相关联。可以在如图21所示的实例计算装置3000等一个或多个计算装置上构建执行环境的任何系统、服务或其它组件。执行环境可以根据其底层配置而变化。在一个实施例中,执行环境可包括基于MapReduce的集群计算环境、流处理系统、如亚马逊简单工作流服务(Amazon Simple Workflow Service)等工作流系统,以及其它合适的环境。在一个实施例中,可以使用协作执行机器学习任务的计算装置的集群1200来实施执行环境。为了执行一个或多个机器学习任务,可以提供、启动或以其它方式启动集群1200。在一个实施例中,特定执行环境可使用如Apache Hadoop、Apache Spark等的编排框架来管理集群。
包括集群1200和/或分析系统1270的机器学习系统100可以使用任何合适数目和配置的计算装置来实施,其中任何一个都可以由图21所示的实例计算装置3000来实施。计算装置可以位于任何合适数目的数据中心或地理位置。在各种实施例中,系统100的至少一些功能可以由相同的计算装置或由不同的计算装置提供。如果使用不同的计算装置来实施系统100的任何组件,那么这些组件及它们相应的计算装置可以通信地耦合,例如经由一个或多个网络。系统100的每个组件可以表示可用于执行它们相应的功能的软件和硬件的任何组合,如下所述。由系统100实施的操作可以被自动地执行,例如,在初始配置阶段之后不需要用户启动或用户干预,以及以编程方式执行,例如通过在至少一个计算装置上执行程序指令。经考虑,系统100可以包括未示出的附加组件、比所示出的组件少的组件、或者所示出的组件的不同组合、配置或数目。
图13示出了根据一些实施例的用于利用使用度量来剖析机器学习模型训练的实例系统环境。如上所述,每个主机可以包括用于机器学习数据收集的组件,以在训练过程期间收集与机器学习模型125的训练相关联的数据。在一些实施例中,数据收集组件1215A至1215M可以捕获与模型训练相关联的资源利用数据。如图13所示,数据收集组件1215A可生成使用度量1325A,而数据收集组件1215M可生成使用度量1325M。所收集的使用数据1325A至1325M可以包括可用于性能剖析的数据,例如处理器使用度量、存储器使用度量、存储器装置使用度量、I/O度量、网络使用度量等。使用数据1325A至1325M的元素可以与训练过程的特定步骤或中间状态相关联。使用数据1325A至1325M还可以表示与训练过程相关联的元数据,例如学习算法标识符、学习步骤数、时间戳、容器标识符、主机标识符、集群标识符和/或可用于执行训练过程的剖析的其它信息。
数据收集组件1215A至1215M可以使用对应主机1210A至1210M的本地可访问存储资源来存储所捕获的使用数据。为了执行模型训练120的剖析,机器学习分析系统1270可以检索使用数据1325A至1325M。在一些实施例中,使用数据可以由主机1210A至1210M写入集群1200外部的数据存储区,例如由供应商网络的存储服务所管理的,并且分析系统1270可以从该数据存储区检索使用数据。数据存储区(包括数据存储区内的特定存储位置、桶或帐户)和其它数据收集参数值可由与模型125相关联的用户200标识。在一些实施例中,使用数据可以从集群1200流向分析系统1270。通过将分析系统1270与模型训练120解耦,可以减少分析对模型训练的等待时间影响。
机器学习分析系统1270可以使用所收集的使用数据1325A至1325M来执行模型训练120的自动分析。在一些实施例中,可以根据阈值来执行分析,并且阈值(以及分析的其它定制)可以由与机器学习模型相关联的客户端来指定,例如,使用由客户端在用户接口或编程接口中提供的分析配置。可以在适当的时间执行分析1270,例如在已经完成模型训练120的步骤并且使用数据已经由集群1200发射之后。分析系统1270可以包括用于自动资源使用分析1372的组件,该组件尝试发现模型训练120的性能或资源使用中的一种或多种类型的问题、异常或其它缺陷。资源使用分析1372可以包括一个或多个规则的评估。规则可以表示关于训练过程120的状态的断言,例如,使得如果使用数据中的特定值超过阈值,则可以匹配特定规则。
使用分析1372可例如通过确定CPU使用、GPU使用、存储器使用、存储装置使用、I/O和/或网络使用超过预定阈值或以其它方式匹配规则来检测集群1200中的性能问题或其它与使用相关的状况。如果集群1200的性能低于预期,则使用分析1372可以将集群1200的一个或多个硬件组件标识为性能瓶颈。例如,CPU上的存储I/O或图像预处理可被标识为一个或多个主机1210A至1210M的训练的瓶颈。作为另一实例,可检测样本的长度,使得一个GPU表示瓶颈。作为另一实例,分析1372可以检测是否使用了所有GPU,或者可以确定GPU之间的每批次运行时间差异。使用分析1372可以测量模型训练的速度和/或将训练过程的一部分的速度或其它运行时性能属性与另一部分进行比较。使用与使用数据相关联的元数据,使用分析1372可以将集群1200中的特定性能问题和状况与训练过程120的特定步骤或中间状态联系起来。
使用数据1325A至1325M可以在执行规则评估1272之前被汇总和/或聚合。将使用数据1325A至1325M聚合可以包括收集和捆绑来自一组主机1210A至1210M的使用数据,使得分析1270可以获得训练过程120的更宽的视图。将使用数据1325A至1325M聚合可以包括例如通过应用缩减算子来确定最小值、最大值、平均值等来生成数据的汇总形式。在一些实施例中,例如通过在个别主机1210A至1210M处汇总使用数据,聚合的各方面可以在集群1200处执行。在一些实施例中,聚合的各方面可以在分析系统1270处执行。
如上所述,分析系统1270可包括用于警报生成的组件1274。当使用使用分析1372检测到训练120的状况或问题时,警报生成1274可用于引发或生成警报或警告。警报组件1274可以生成描述集群1200中机器学习模型训练的性能的所检测到的状况或问题的警报。警报可以指示例如状况或问题的类型、遇到状况或问题的日期或时间窗口、违反的性能阈值、在规则评估中匹配的规则、模型标识符、模型版本号、容器标识符、集群标识符、主机标识符、训练步骤数和/或对标识和补救机器学习训练的性能的问题有用的其它信息。(至少部分地)基于性能警报,可以中断或中止训练120,以便节省集群1200的资源。(至少部分地)基于性能警报,集群1200可被撤销或以其它方式停止其使用。(至少部分地)基于性能警报,可以修改模型训练120或集群1200配置以补救所检测到的问题,并且接着重启改进的训练。在一些实施例中,分析系统1270可以使用所收集的使用数据来提供对模型训练的性能的可见性,即使在没有问题的情况下。例如,分析系统1270可以在训练期间交互地显示性能信息(例如,执行时间、GPU利用率等),直至降到集群、主机、训练步骤等的用户选择的粒度级别。
图14示出了根据一些实施例的用于使用张量数据来调试机器学习模型训练的实例系统环境的其它方面,包括根据分析结果来修改模型训练。机器学习分析系统1270可以包括用于训练修改的组件1474。训练修改1474可以表示为补救检测到的问题和/或改进训练而采取的一个或多个动作。在一些实施例中,训练修改1474的各方面可以由用户200启动。在一些实施例中,训练修改1474的各方面可以由分析系统1270自动启动,例如,在没有直接的用户输入来启动或批准训练修改的情况下。训练修改1474可以包括生成新的或修改的训练数据集以及用该数据集重新开始训练。例如,如果分析1270确定特定输入特征对预测没有影响,则新训练集可以排除那些特征。训练修改1474可以包括选择或生成新的或修改的训练算法,并且用该数据集重新开始训练。例如,如果分析系统1270已经在原始训练数据112中检测到主机间或批次间的数据分布变化,则可以使用不反映此类分布变化的新训练数据集来重新开始训练。训练修改1474可以包括对集群1200的修改,例如通过增加或减少主机的数量,改变主机的配置等。训练修改1474可以包括修改训练120的配置的各方面,如学习速率。例如,最初可以为快速学习配置学习速率,但是随着训练开始接近解,则可以自动降低学习速率以减慢信息被吸收的速率。
图15示出了根据一些实施例的用于使用张量数据来调试机器学习模型训练的实例系统环境的其它方面,包括使用来自当前运行的张量数据和来自先前运行的张量数据的版本比较。在一些实施例中,可以实现模型训练过程的两个不同版本或实例,并且可以使用用于模型训练版本比较的组件1572来确定差异(如果有的话)。例如,学习算法的一个版本可以用于从模型测试的先前运行中生成张量数据1500。张量数据1500可以保持在分析系统1270可访问的数据存储区中。学习算法可以被修改并用于再次训练,第二训练过程产生张量数据1225A至1225M。在一个实施例中,可以为训练过程的两次运行生成资源使用数据。使用版本比较1572,分析系统1270可以确定训练过程的先前运行与训练过程的后续运行之间的张量数据和/或使用度量的任何差异。在一个实施例中,版本比较1572可以用于对在训练期间捕获的数据进行A至B测试,用于同时使用的两个不同集群。比较1572可以生成可用于将一个模型版本或训练过程的质量或性能与另一模型版本或训练过程的质量或性能进行比较的度量。
图16是示出了根据一些实施例的用于使用张量数据来调试和剖析机器学习模型训练的方法的流程图。如1600所示,可以启动机器学习模型的训练。训练可以使用计算装置的集群(例如,一个或多个主机)。主机可以表示相同或类似的配置(例如,CPU、GPU、存储器、本地存储装置等),并且可以并行地用于模型的训练。例如,每个主机可以在模型训练过程的特定步骤期间存储和使用张量。如1610所示,与机器学习模型的训练相关联的数据可以在集群中的个别计算装置处收集。可以使用代理软件的实例来收集数据。数据可以表示可用于调试的张量数据和/或可用于性能剖析的使用度量。张量数据可以表示训练过程的步骤的一个或多个输入、一个或多个输出和/或一个或多个中间状态。张量数据还可以表示与训练过程相关联的元数据,例如学习算法标识符、学习步骤数、时间戳、容器标识符、主机标识符、集群标识符和/或可用于执行训练过程的调试的其它信息。使用数据可以包括可用于性能剖析的数据,例如处理器使用度量、存储器使用度量、存储器装置使用度量、I/O度量、网络使用度量等。使用数据还可以表示与训练过程相关联的元数据,例如学习算法标识符、学习步骤数、时间戳、容器标识符、主机标识符、集群标识符和/或可用于执行训练过程的剖析的其它信息。
如1620所示,可以聚合与机器学习模型的训练相关联的数据。将所捕获的数据聚合可以包括收集和捆绑来自一组主机的数据,使得分析可以获得训练过程的更宽的视图。将所捕获的数据聚合可以包括例如通过应用缩减算子来确定最小值、最大值、平均值等来生成数据的汇总形式。在一些实施例中,例如通过在个别主机处汇总张量数据,聚合的各方面可以在集群处执行。在一些实施例中,聚合的各方面可以在分析系统本身处执行。
如1630所示,分析系统可以对聚合数据进行分析。所述分析可以包括规则评估。规则可以表示关于训练过程的状态的断言,例如,使得如果所捕获的数据中的特定值超过阈值,则可以匹配特定规则。在一些实施例中,定制规则可由用户提供并由分析系统评估。在一些实施例中,可以评估默认规则集。用于调试的默认规则可表示模型训练的常见问题,例如爆炸梯度、消失梯度、训练数据的步骤间或批次间的数据分布变化、训练数据的主机间的数据分布变化、溢出条件、下溢条件、BatchNorm不稳定性等。剖析规则可检测超过预定阈值的使用模式、集群中的性能瓶颈等。
如1640所示,该方法可以确定是否检测到训练的特定状况或问题,例如,是否匹配了指示特定问题或状况的一个或多个规则。如果检测到问题或状况,则如1650所示,可生成警报。警报可以描述机器学习模型训练或训练数据的检测到的问题和状况。警报可以指示例如问题或状况的类型、遇到问题的日期或时间窗口、模型标识符、模型版本号、容器标识符、集群标识符、主机标识符、有问题的张量数据或其汇总,和/或对于识别和补救机器学习训练的问题有用的其它信息。在训练中使用了过多的资源之前,例如对于没有收敛的模型,可以产生关于模型训练过程的警报。因此,(至少部分地)基于警报,可以中断或中止训练,以便节省集群的资源。(至少部分地)基于警报,集群可被撤销或以其它方式停止其使用。(至少部分地)基于警报,可以修改模型训练以补救所检测到的问题,并且接着重启改进的训练。(至少部分地)基于警报,可以执行根本原因分析以确定在模型训练中检测到的问题的根本原因。如1660所示,该方法可以确定训练是否完成。如果是,则该方法可以结束。如果不是,则该方法可以继续1610所示的操作。
用于汇总机器学习训练数据的GPU代码注入
图17示出了根据一些实施例的用于GPU代码注入以汇总机器学习训练数据的实例系统环境。如上所述,训练系统120可以使用机器学习训练集群1200来生成经训练的模型125。集群1200可包括多个图形处理单元(GPU),例如主机GPU 1710A至GPU 1710Z。训练过程120可采用通用GPU计算(GPGPU)技术来利用GPU所提供的并行性。在各种实施例中,GPU1710A至1710Z可物理地耦合到主机1210A至1210M或包括在所述主机中,或者可替代地表示由GPU虚拟化服务提供并由主机1210A至1210M经由网络访问的远程“弹性”GPU。GPU 1710A至1710Z可用于处理和存储张量。如上所述,张量可以表示N维矩阵。例如,训练数据112中的图像可以具有三个维度:宽度、高度和颜色深度。可以使用四维张量来存储一系列图像,其中第四维表示训练数据的样本大小。训练过程120所使用的张量的其它实例可以包括几十、几百或几千个维度。对于此类张量,单个值的数量可能非常大(例如,数百万)。
在训练120期间,可以收集与训练相关联的张量数据,并将其写入集群中个别主机的本地存储装置。训练过程可以是具有多个阶段或步骤的迭代,并且可以针对那些阶段或步骤中的每一个收集数据。所收集的数据可以包括可用于调试的数据,例如与训练相关联的输入、输出、张量数据和元数据(例如,容器标识符、时间戳等)。例如,可以在GPU上产生张量数据的全集,并在训练步骤期间将其存储在该GPU的存储器中。对于足够大的张量,步骤的全张量数据1715A或1715Z可以表示数百万个单独的值。如果完全张量数据1715A至1715Z由GPU输出,保存到对应主机处的本地存储装置,并通过网络提供到集中式分析系统1270,那么存储装置和网络资源的消耗(例如)可能较高。如果全张量数据1715A至1715Z由GPU1710A至1710Z输出并由集群1200的主机1210A至1210M汇总,或者如果全张量数据1715A至1715Z由分析系统1270获取并随后汇总,则使用CPU资源的汇总可能比使用GPU资源的汇总效率低。
为了减少用于分析1270的张量数据的量和大小,并且为了更有效地利用用于汇总的处理器资源,可以将缩减算子1720A至1720Z动态地注入GPU 1710A至1710Z,以产生张量数据的汇总或聚集形式。集群1200可以包括用于代码注入的一个或多个组件1705,例如用于个别主机和/或GPU。使用代码注入1705,可将缩减算子提供给GPU以供使用GPU资源执行,或可调用GPU的现有缩减算子。例如,缩减算子1720A至1720Z可以产生张量数据的全集的最小值、张量数据的全集的最大值、张量数据的全集的平均值等。通过在GPU上执行缩减,可由GPU输出张量数据的小得多的集合(例如,单个值)而非数千或数百万个个别值。例如,缩减算子1720A可以应用于全张量数据1715A,以在GPU 1710A的存储器中产生汇总的张量数据1725A。汇总的张量数据1725A在大小和值的数量上明显小于完整的张量数据1715A。类似地,缩减算子1720Z可以应用于全张量数据1715Z以在GPU 1710A的存储器中产生汇总的张量数据1725Z。
缩减算子1720A至1720Z可以是相同的,或者可以在GPU间以及在张量间变化。例如,一个张量可能需要平均值,而另一个张量可能需要最大值。可以根据训练配置和/或根据用于分析1270的一组规则来选择用于特定张量和特定训练步骤的特定缩减算子。作为扩展实例,可以在训练中产生以下张量:x、y、weight、bias、product、y_hat和cost。如果训练过程120持续8个步骤(0至7),则对于步骤0和2可以完全保存张量x,作为步骤4的最小和最大形式,以及作为步骤6的最大形式。对于步骤0和1可以完全保存张量y,对于步骤3可以保存最小形式,而对于步骤5可以保存最大形式。对于步骤0,可以完全保存张量weight,而对于步骤4,可以将张量权重保存为最小形式。张量bias对于步骤1可以保存为最大形式并且对于步骤3保存为最小形式。张量product可以保存为步骤0和1的平均形式。对于步骤0,张量y_hat可以被完全保存。对于步骤0到7,张量cost可以被完全保存。
在一个实施例中,汇总的张量数据1725A至1725Z可以由GPU 1710A至1710Z输出,而不是由全张量数据1715A至1715Z输出。汇总的张量数据1725A至1725Z可以在提供给分析系统1270之前使用本地存储资源存储在主机1210A至1210M上。通过仅输出张量数据的汇总形式,可以使资源使用最小化以用于训练集群处的本地存储装置、张量数据储存库处的远程存储装置、分析系统1270处的本地存储装置、训练集群或分析系统处的CPU资源(其可以另外用于执行汇总)以及任何所述组件之间的网络带宽。
图18示出了根据一些实施例的用于GPU代码注入以汇总机器学习训练数据的实例系统环境的其它方面,包括提供张量数据的完整形式和汇总形式。在一个实施例中,除了全张量数据1715A至1715Z之外,可以由GPU 1710A至1710Z输出汇总的张量数据1725A至1725Z。例如,GPU 1710A可以输出全张量数据1715A和对应的汇总张量数据1725A,而GPU1710Z可以输出全张量数据1715Z和对应的汇总张量数据1725Z。完整的和汇总的张量数据可以在提供给分析系统1270之前使用本地存储资源存储在主机1210A至1210M上。通过向分析系统1270提供张量数据的完整和汇总的形式,分析可以在训练过程120中获得附加的可见性。另外,相比用分析系统或主机1210A至1210M的CPU资源产生等效汇总所需的GPU资源,通过向分析系统1270提供张量数据的汇总形式,可以更有效地生成汇总形式。
图19示出根据一些实施例的用于GPU代码注入以汇总机器学习训练数据的实例系统环境的其它方面,包括由GPU执行的非缩减操作。在一些实施例中,可以由GPU对张量数据执行不一定是张量数据的缩减的操作。这种操作的结果可以比用作输入的张量小得多,但是该结果不一定表示张量输入值的汇总形式,并且因此该操作可以被认为是非缩减的。例如,GPU可用于将一个张量中的个别值与另一个张量中的个别值进行比较,并且结果可指示“是”或“否”或一定程度的相似性。作为另一实例,GPU可用于确定张量中的平均值是高于还是低于特定阈值。这些操作的结果可用于分析1270,例如,以确定与模型训练相关联的张量或其它数据是否满足特定断言。如图19所示,代码注入1705可用于将非缩减算子注入到一个或多个GPU 1710A至1710Z中。例如,代码注入1705可使GPU 1710A对全张量数据1716A执行非缩减操作1920A,并产生大小小于全张量数据的结果1925A。类似地,代码注入1705可使GPU 1710Z对全张量数据1716Z执行非缩减操作1920Z,并产生大小小于全张量数据的结果1925Z。可将结果1925A至1925Z提供给分析系统1270并用于模型训练过程的自动分析。在一些实施例中,可以根据试图使用规则评估1272来评估的特定规则来选择特定算子1920A至1920Z。例如,如果规则评估1272试图将一个张量与另一个张量进行比较,则可以选择比较算子来使用GPU 1710A至1710Z中的一个或多个来执行。
图20是示出根据一些实施例的用于GPU代码注入以汇总机器学习训练数据的方法的流程图。如2000所示,可以启动机器学习模型的训练。训练可以使用计算装置的集群(一个或多个主机)。集群可以包括一个或多个图形处理单元(GPU)。训练过程可采用通用GPU计算(GPGPU)技术来利用GPU所提供的并行性。在各种实施例中,GPU可物理地耦合到主机或包括在所述主机中,或者可替代地表示由GPU虚拟化服务提供并由主机经由网络访问的远程“弹性”GPU。GPU可用于处理和存储与模型训练相关联的张量。
如2010中所示,GPU可在模型训练过程的特定步骤期间生成并存储(在GPU存储器中)张量数据的全集。训练过程所使用的一些张量可以包括几十、几百或几千个维度。对于此类张量,单个值的数量可能非常大(例如,数百万)。如2020所示,可以使用注入缩减算子将全张量数据缩减为汇总形式。使用代码注入,可将缩减算子提供给GPU以供使用GPU资源执行,或可调用GPU的现有缩减算子。例如,缩减算子可以产生张量数据的全集的最小值、张量数据的全集的最大值、张量数据的全集的平均值等。通过在GPU上执行缩减,可由GPU输出张量数据的小得多的集合(例如,单个值)而非数千或数百万个个别值。
如2030所示,张量数据的汇总形式可被提供给分析系统。如2040所示,分析系统可以使用张量数据的汇总形式来进行分析。所述分析可以包括规则评估。规则可以表示关于训练过程的状态的断言,例如,使得如果所捕获的数据中的特定值超过阈值,则可以匹配特定规则。在一些实施例中,定制规则可由用户提供并由分析系统评估。在一些实施例中,可以评估默认规则集。用于调试的默认规则可表示模型训练的常见问题,例如爆炸梯度、消失梯度、训练数据的步骤间或批次间的数据分布变化、训练数据的主机间的数据分布变化、溢出条件、下溢条件、BatchNorm不稳定性等。
如2050所示,该方法可以确定是否检测到训练的问题或状况,例如是否匹配了指示问题或状况的一个或多个规则。如果检测到问题或状况,则如2060所示,可生成警报。警报可以描述机器学习模型训练或训练数据的检测到的问题或状况。警报可以指示例如问题或状况的类型、遇到问题或状况的日期或时间窗口、模型标识符、模型版本号、容器标识符、集群标识符、主机标识符、有问题的张量数据或其汇总,和/或对于识别和补救机器学习训练的问题有用的其它信息。在训练中使用了过多的资源之前,例如对于没有收敛的模型,可以产生关于模型训练过程的警报。因此,(至少部分地)基于警报,可以中断或中止训练,以便节省集群的资源。(至少部分地)基于警报,集群可被撤销或以其它方式停止其使用。(至少部分地)基于警报,可以修改模型训练以补救所检测到的问题,并且接着重启改进的训练。(至少部分地)基于警报,可以执行根本原因分析以确定在模型训练中检测到的问题的根本原因。如2070所示,该方法可以确定训练是否完成。如果是,则该方法可以结束。如果不是,则该方法可以继续2010所示的操作。
说明性计算机系统
在至少一些实施例中,实施本文所述的一种或多种技术的一部分或全部的计算机系统可以包括计算机系统,该计算机系统包括或被配置成访问一种或多种计算机可读介质。图21示出了根据一个实施例的这样的计算装置3000。在所示实施例中,计算装置3000包括经由输入/输出(I/O)接口3030耦合到系统存储器3020的一个或多个处理器3010A至3010N。在一个实施例中,计算装置3000进一步包括耦合到I/O接口3030的网络接口3040。
在各种实施例中,计算装置3000可以是包括一个处理器的单处理器系统或包括若干处理器3010A至3010N(例如,两个、四个、八个或另一合适数目)的多处理器系统。在一个实施例中,处理器3010A至3010N可以包括能够执行指令的任何合适的处理器。例如,在各种实施例中,处理器3010A至3010N可以是实施各种指令集体系结构(instruction setarchitectures,ISA)(如x86、PowerPC、SPARC或MIPSISA或任何其它合适的ISA)中的任何一种的处理器。在一个实施例中,在多处理器系统中,处理器3010A至3010N中的每一个可以共同地,但不是必须地实施相同的ISA。
在一个实施例中,系统存储器3020可以被配置为存储可以由处理器3010A至3010N访问的程序指令和数据。在各种实施例中,系统存储器3020可以使用任何合适的存储器技术(如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器或任何其它类型的存储器)来实施。在所示实施例中,实施一个或多个所期望的功能(如上述的那些方法、技术和数据)的程序指令和数据被示出作为代码(即,程序指令)3025和数据3026存储在系统存储器3020中。
在一个实施例中,I/O接口3030可以被配置成协调在处理器3010A至3010N、系统存储器3020以及装置(包括网络接口3040或其它外围接口)中的任何外围装置之间的I/O业务。在一些实施例中,I/O接口3030可以执行任何必要的协议、定时或其它数据转换,以将来自一个组件(例如,系统存储器3020)的数据信号转换成适于由另一组件(例如,处理器3010A至3010N)使用的格式。在一些实施例中,I/O接口3030可以包括对通过各种类型的外围总线(如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变体)附接的装置的支持。在一些实施例中,I/O接口3030的功能可以被分成两个或多个单独的组件(例如北桥和南桥)。在一些实施例中,I/O接口3030(例如系统存储器3020的接口)的一些或全部功能,可以直接被结合到处理器3010A至3010N中。
在一个实施例中,网络接口3040可以被配置成允许在计算装置3000与附接到一个或多个网络3050的其它装置3060之间交换数据。在各种实施例中,网络接口3040可以支持经由任何合适的有线或无线通用数据网络(例如,以太网类型)的通信。附加地,在一些实施例中,网络接口3040可以支持经由电信/电话网络(如模拟语音网络或数字光纤通信网络)、经由存储区域网络(如光纤通道SAN)、或者经由任何其它适当类型的网络和/或协议的通信。
在一些实施例中,系统存储器3020可以是计算机可读(即,计算机可访问)介质的一个实施例,所述计算机可读介质被配置成存储如上所述的用于实施相对应的方法和装置的实施例的程序指令和数据。在一些实施例中,可以在不同类型的计算机可读介质上接收、发送或存储程序指令和/或数据。在一些实施例中,计算机可读介质可以包括经由I/O接口3030耦合到计算装置3000的非暂时性存储介质或存储器介质(如磁性或光学介质(例如磁盘或DVD/CD))。在一个实施例中,非暂时性计算机可读存储介质还可以包括任何易失性或非易失性介质,如RAM(例如SDRAM、DDRSDRAM、RDRAM、SRAM等)、ROM等,它们可以包括在计算装置3000的一些实施例中作为系统存储器3020或另一类型的存储器。在一个实施例中,计算机可读介质可以包括经由如网络和/或无线链路的通信介质传送的传输介质或信号(如电信号、电磁信号或数字信号(如可以经由网络接口3040实施的))。可以使用存储在一个或多个处理器上或跨一个或多个处理器执行的程序指令的一种或多种非暂时性计算机可读存储介质来实现所描述的功能。如图21所示的多个计算装置的部分或全部可用于实施各种实施例中所描述的功能;例如,在一个实施例中,在各种不同装置和服务器上运行的软件组件可以协作以提供功能。在一些实施例中,所描述的功能的部分可以使用存储装置、网络装置或各种类型的计算机系统来实施。在各种实施例中,如本文所使用的术语“计算装置”是指至少所有这些类型的装置,并且不限于这些类型的装置。
如附图中绘示并且在本文所述的各种方法表示了方法的实施例的实例。在各种实施例中,所述方法可以在软件、硬件或其组合中实施。在各种实施例中,在这些方法中的各个方法中,可以改变步骤的顺序,并且可以添加、重新排名、组合、省略、修改各种元素等。在各种实施例中,可以自动地(例如,无需由用户输入直接提示)和/或可以以编程方式(例如,根据程序指令)执行在这些步骤中的各个步骤。
本发明的说明书中所用的术语学仅出于描述特定实施例的目的,并且不旨在限制本发明。如在本发明的说明书和所附权利要求书中所用的,单数形式“一”、“一个”和“所述”旨在也包括复数形式,除非上下文另有明确说明。还应理解的是,本文所用的术语“和/或”是指并且涵盖一个或多个相关联的所列项目的任何和所有可以能的组合。应进一步理解的是,当在本说明书中使用时,术语“包括”、“包括的”、“包含”和/或“包含的”指定了声明的特征、整体、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其组合。
如本文所使用的,取决于上下文,术语“如果”可以被解释为意味“当……时”或“在……上”或“响应于确定”或“响应于检测”。类似地,取决于上下文,短语“如果是确定的”或“如果[陈述的条件或事件]被检测到”可以被解释为意味“在确定时”或“响应于确定”或“在检测到[所述条件或事件]时”或“响应于检测到[陈述的条件或事件]”。
应当理解的是,尽管本文可以使用术语第一、第二等来描述各种组件,但是这些元件不应受这些术语限制。这些术语仅用于将一个元件与另一元件区分开。例如,在不脱离本发明的范围的情况下,第一接触可以被称为第二接触,并且类似地,第二接触可以被称为第一接触。第一接触和第二接触两者都是接触,但是它们不是同一接触。
本文阐述了许多特定的细节以提供对所要求保护的主题的透彻理解。然而,本领域技术人员将理解,所要求保护的主题可以在没有这些特定的细节的情况下实施。在其它实例中,将不详细描述本领域技术人员已知的方法、设备或系统,使得不混淆所要求保护的主题。对于受益于这个公开内容的本领域技术人员来说显而易见的是,可以进行各种修改和改变。本发明旨在包括所有此类修改和变化,因此,以上描述应被认为是说明性的而不是限制性的。
鉴于以下条款,可以更好地理解前述内容:
条款1.一种系统,其包含:
被配置成实施机器学习训练集群的一个或多个计算装置,其中所述机器学习训练集群被配置成:
训练机器学习模型;以及
在所述一个或多个计算装置上收集与所述机器学习模型的训练相关联的数据,其中使用一个或多个计算装置上的代理软件收集与所述机器学习模型的所述训练相关联的所述数据,并且其中与所述机器学习模型的所述训练相关联的所述数据包含张量级数值;以及
被配置成实施机器学习分析系统的一个或多个计算装置,其中所述机器学习分析系统被配置成:
聚合与所述机器学习模型的所述训练相关联的所述数据;
执行对与所述机器学习模型的所述训练相关联的聚合数据的分析,其中对所述聚合数据的所述分析包含对一个或多个规则的评估;
至少部分地基于所述聚合数据的所述分析来检测与所述机器学习模型的所述训练相关联的一个或多个问题;以及
生成描述与所述机器学习模型的所述训练相关联的所述一个或多个问题的一个或多个警报。
条款2.根据条款1所述的系统,其中与所述机器学习模型的所述训练相关联的所述一个或多个问题包含跨多个批次或跨所述机器学习训练集群的所述计算装置中的两个或更多个的数据分布的差异。
条款3.根据条款1或2中任一项所述的系统,其中与所述机器学习模型的所述训练相关联的所述一个或多个问题包含在张量级数据中检测到的消失梯度或爆炸梯度。
条款4.根据条款1至3中任一项所述的系统,其中所述机器学习模型的所述训练至少部分地基于与所述机器学习模型的所述训练相关联的所述一个或多个问题而中止。
条款5.一种计算机实施的方法,其包含:
由机器学习分析系统接收与机器学习模型的训练相关联的数据,其中与所述机器学习模型的所述训练相关联的所述数据由机器学习训练集群的一个或多个计算装置收集;
由所述机器学习分析系统执行对与所述机器学习模型的所述训练相关联的所述数据的分析;
由所述机器学习分析系统至少部分地基于所述分析来检测与所述机器学习模型的所述训练相关联的一个或多个状况;以及
由所述机器学习分析系统生成描述与所述机器学习模型的所述训练相关联的所述一个或多个状况的一个或多个警报。
条款6.根据条款5所述的方法,其中与所述机器学习模型的所述训练相关联的所述数据包含从所述机器学习训练集群的一个或多个图形处理单元(GPU)输出的张量数据,并且其中与所述机器学习模型的所述训练相关联的所述数据在与所述机器学习模型的所述训练相关联的所述数据的所述分析之前被聚合。
条款7.根据条款5或6中任一项所述的方法,其中与所述机器学习模型的所述训练相关联的所述一个或多个状况包含跨多个批次的数据分布的差异。
条款8.根据条款5至7中任一项所述的方法,其中与所述机器学习模型的所述训练相关联的所述一个或多个状况包含跨所述机器学习训练集群的所述计算装置中的两个或更多个的数据分布的差异。
条款9.根据条款5至8中任一项所述的方法,其中与所述机器学习模型的所述训练相关联的所述一个或多个状况包含在张量级数据中检测到的消失梯度或爆炸梯度。
条款10.根据条款5至9中任一项所述的方法,其中与所述机器学习模型的所述训练相关联的所述一个或多个状况包含在张量级数据中检测到的上溢或下溢。
条款11.根据条款5至10中任一项所述的方法,其中与所述机器学习模型的所述训练相关联的所述数据包含描述所述机器学习训练集群的资源利用的数据,并且其中与所述机器学习模型的所述训练相关联的所述一个或多个状况表示一个或多个资源利用阈值的违反。
条款12.根据条款5至11中任一项所述的方法,其中与所述机器学习模型的所述训练相关联的所述数据包含描述所述机器学习训练集群的资源利用的数据,并且其中与所述机器学习模型的所述训练相关联的所述一个或多个状况表示在所述机器学习训练集群的一个或多个资源中标识的一个或多个性能瓶颈。
条款13.根据条款5至12中任一项所述的方法,其进一步包含:
至少部分地基于与所述机器学习模型的所述训练相关联的所述一个或多个状况来中止所述机器学习模型的所述训练;
修改所述机器学习模型的所述训练的配置;以及
根据所述配置重新开始所述机器学习模型的所述训练。
条款14.根据条款5至13中任一项所述的方法,其进一步包含:
至少部分地基于与所述机器学习模型的所述训练相关联的所述一个或多个状况来中止所述机器学习训练集群的使用。
条款15.一种或多种非暂时性计算机可读存储介质,其存储程序指令,所述程序指令在一个或多个处理器上或跨一个或多个处理器执行时执行:
由机器学习分析系统接收与机器学习模型的训练相关联的数据,其中与所述机器学习模型的所述训练相关联的所述数据由机器学习训练集群的一个或多个计算装置收集,并且其中与所述机器学习模型的所述训练相关联的所述数据包含张量级数据;
由所述机器学习分析系统执行对与所述机器学习模型的所述训练相关联的所述数据的分析,其中所述分析包含规则评估;
由所述机器学习分析系统至少部分地基于所述规则评估来检测与所述机器学习模型的所述训练相关联的一个或多个问题;以及
由所述机器学习分析系统生成描述与所述机器学习模型的所述训练相关联的所述一个或多个问题的一个或多个警报。
条款16.根据条款15所述的一种或多种非暂时性计算机可读存储介质,其中与所述机器学习模型的所述训练相关联的所述一个或多个问题包含跨多个批次的数据分布的差异。
条款17.根据条款15或16中任一项所述的一个或多个非暂时性计算机可读存储介质,其中与所述机器学习模型的所述训练相关联的所述一个或多个问题包含跨所述计算装置中的两个或更多个的数据分布的差异。
条款18.根据条款15至17中任一项所述的一种或多种非暂时性计算机可读存储介质,其中与所述机器学习模型的所述训练相关联的所述一个或多个问题包含在张量级数据中检测到的消失梯度或爆炸梯度。
条款19.根据条款15至18中任一项所述的一种或多种非暂时性计算机可读存储介质,其中与所述机器学习模型的所述训练相关联的所述数据包含描述所述机器学习训练集群的资源利用的数据,并且其中与所述机器学习模型的所述训练相关联的所述一个或多个问题表示一个或多个资源利用阈值的违反。
条款20.根据条款15至19中任一项所述的一种或多种非暂时性计算机可读存储介质,其进一步包含额外程序指令,所述额外程序指令在所述一个或多个处理器上或跨所述一个或多个处理器执行时执行:
至少部分地基于与所述机器学习模型的所述训练相关联的所述一个或多个问题来中止所述机器学习模型的所述训练。
另外,鉴于以下条款,可以更好地理解前述内容:
条款21.一种系统,其包含:
被配置成实施机器学习训练集群的一个或多个计算装置,其中所述机器学习训练集群被配置成:
使用图形处理单元(GPU)启动机器学习模型的训练,其中所述机器学习模型的所述训练在所述GPU的存储器中生成张量数据;以及
将缩减算子注入所述GPU,其中所述张量数据的汇总由所述GPU使用所述缩减算子来计算,其中所述张量数据的所述汇总的大小小于所述张量数据,并且其中所述张量数据的所述汇总由所述GPU输出;以及
被配置成实施机器学习分析系统的一个或多个计算装置,其中所述机器学习分析系统被配置成:
接收所述张量数据的所述汇总;
至少部分地基于所述张量数据的所述汇总来执行对所述机器学习模型的所述训练的分析,其中对所述机器学习模型的所述训练的所述分析包含对一个或多个规则的评估;
至少部分地基于对所述机器学习模型的所述训练的所述分析来检测与所述机器学习模型的所述训练相关联的一个或多个条件;以及
生成描述与所述机器学习模型的所述训练相关联的所述一个或多个状况的一个或多个警报。
条款22.根据条款21所述的系统,其中所述缩减算子表示所述张量数据的最小值、最大值或平均值。
条款23.根据条款21或22中任一项所述的系统,其中所述张量数据不由所述GPU输出并且不由所述机器学习训练集群提供给所述机器学习分析系统。
条款24.根据条款21至23中任一项所述的系统,其中所述张量数据由所述GPU输出,并且其中至少部分地基于所述张量数据来执行对所述机器学习模型的所述训练的所述分析。
条款25.一种计算机实施的方法,其包含:
使用与机器学习训练集群相关联的图形处理单元(GPU)启动机器学习模型的训练,其中所述机器学习模型的所述训练在所述GPU的存储器中生成张量数据;以及
由所述GPU确定对所述张量数据的操作的结果,其中对所述张量数据的所述操作的所述结果的大小小于所述张量数据,并且其中对所述张量数据的所述操作的所述结果由所述GPU输出;
由机器学习分析系统至少部分地基于对所述张量数据的所述操作的所述结果来执行对所述机器学习模型的所述训练的分析;以及
由所述机器学习分析系统至少部分地基于对所述机器学习模型的所述训练的所述分析来检测与所述机器学习模型的所述训练相关联的一个或多个条件。
条款26.根据条款25所述的方法,其中所述运算表示所述张量数据的最小值、最大值或平均值。
条款27.根据条款25或26中任一项所述的方法,其中所述张量数据不由所述GPU输出。
条款28.根据条款25至27中任一项所述的方法,其中所述张量数据由所述GPU输出,并且其中至少部分地基于所述张量数据来执行对所述机器学习模型的所述训练的所述分析。
条款29.根据条款25至28中任一项所述的方法,其进一步包含:
由所述机器学习分析系统生成描述与所述机器学习模型的所述训练相关联的所述一个或多个状况的一个或多个警报。
条款30.根据条款25至29中任一项所述的方法,其中与所述机器学习模型的所述训练相关联的所述一个或多个状况包含跨多个批次或跨所述机器学习训练集群的两个或更多个计算装置的数据分布的差异。
条款31.根据条款25至30中任一项所述的方法,其中与所述机器学习模型的所述训练相关联的所述一个或多个状况包含使用所述张量数据的所述汇总检测到的消失梯度或爆炸梯度。
条款32.根据条款25至31中任一项所述的方法,其中所述操作包含所述张量数据与预定阈值的比较或两个张量之间的比较。
条款33.一种或多种非暂时性计算机可读存储介质,其存储程序指令,所述程序指令在一个或多个处理器上或跨一个或多个处理器执行时执行:
使用与机器学习训练集群相关联的图形处理单元(GPU)启动机器学习模型的训练,其中所述机器学习模型的所述训练在所述GPU的存储器中生成张量数据;以及
由所述GPU根据注入到所述GPU中的缩减算子确定所述张量数据的聚合汇总,其中所述张量数据的所述汇总的大小小于所述张量数据,并且其中所述张量数据的所述汇总由所述GPU输出;
由机器学习分析系统接收所述张量数据的所述汇总;
由所述机器学习分析系统至少部分地基于所述张量数据的所述汇总来执行对所述机器学习模型的所述训练的分析;
由所述机器学习分析系统至少部分地基于对所述机器学习模型的所述训练的所述分析来检测与所述机器学习模型的所述训练相关联的一个或多个条件;以及
由所述机器学习分析系统生成描述与所述机器学习模型的所述训练相关联的所述一个或多个状况的一个或多个警报。
条款34.根据条款33所述的一种或多种非暂时性计算机可读存储介质,其中所述缩减算子表示所述张量数据的最小值、最大值或平均值。
条款35.根据条款33或34中任一项所述的一种或多种非暂时性计算机可读存储介质,其中所述张量数据不由所述GPU输出并且不由所述机器学习训练集群提供给所述机器学习分析系统。
条款36.根据条款33至35中任一项所述的一种或多种非暂时性计算机可读存储介质,其中所述张量数据由所述GPU输出,并且其中至少部分地基于所述张量数据来执行对所述机器学习模型的所述训练的所述分析。
条款37.根据条款33至36中任一项所述的一个或多个非暂时性计算机可读存储介质,其中与所述机器学习模型的所述训练相关联的所述一个或多个状况包含跨多个批次或跨所述机器学习训练集群的两个或更多个计算装置的数据分布的差异。
条款38.根据条款33至37中任一项所述的一个或多个非暂时性计算机可读存储介质,其中与所述机器学习模型的所述训练相关联的所述一个或多个状况包含使用所述张量数据的所述汇总检测到的消失梯度或爆炸梯度。
条款39.根据条款33至38中任一项所述的一种或多种非暂时性计算机可读存储介质,其进一步包含额外程序指令,所述额外程序指令在所述一个或多个处理器上或跨所述一个或多个处理器执行时执行:
至少部分地基于与所述机器学习模型的所述训练相关联的所述一个或多个状况来中止所述机器学习模型的所述训练。
条款40.根据条款33至39中任一项所述的一种或多种非暂时性计算机可读存储介质,其进一步包含额外程序指令,所述额外程序指令在所述一个或多个处理器上或跨所述一个或多个处理器执行时执行:
至少部分地基于与所述机器学习模型的所述训练相关联的所述一个或多个状况来中止所述机器学习训练集群的使用。
另外,鉴于以下条款,可以更好地理解前述内容:
条款41.一种系统,其包含:
被配置成实施机器学习推理系统的一个或多个计算装置,其中所述机器学习推理系统被配置成:
使用机器学习模型来产生多个预测;
在时间窗口内收集与所述机器学习模型的使用相关联的数据,其中与所述机器学习模型的使用相关联的所述数据包含输入数据、所述多个预测以及与所述机器学习模型的所述使用相关联的元数据;以及
存储与所述机器学习模型的使用相关联的所述数据;以及
被配置成实施机器学习分析系统的一个或多个计算装置,其中所述机器学习分析系统被配置成:
检索与所述机器学习模型的所述使用相关联的所述数据;
执行对与所述机器学习模型的所述使用相关联的所述数据的分析,其中所述分析在所述时间窗口之后执行;
至少部分地基于所述分析来检测与所述机器学习模型的所述使用相关联的一个或多个问题;以及
生成描述与所述机器学习模型的所述使用相关联的所述一个或多个问题的一个或多个通知。
条款42.根据条款41所述的系统,其中所述机器学习分析系统进一步被配置成:
至少部分地基于检测到与所述机器学习模型的所述使用相关联的所述一个或多个问题来启动对所述机器学习模型的再训练,其中使用具有与所述输入数据相匹配的一个或多个特征的新训练集来执行所述再训练。
条款43.根据条款41或42中任一项所述的系统,其中与所述机器学习模型的所述使用相关联的所述一个或多个问题包含所述输入数据或所述多个预测与先前时间窗口相比的一个或多个差异。
条款44.根据条款41至43中任一项所述的系统,其中所述机器学习模型被部署在端点上,并且其中在不修改与所述机器学习模型相关联的程序代码的情况下收集与所述机器学习模型的所述使用相关联的所述数据。
条款45.一种计算机实施的方法,其包含:
由机器学习分析系统接收与机器学习模型的使用相关联的数据,其中所述数据包含对所述机器学习模型的输入或表示所述机器学习模型的输出的多个推理,并且其中由机器学习推理系统收集与所述机器学习模型的所述使用相关联的所述数据;
由所述机器学习分析系统执行对与所述机器学习模型的所述使用相关联的所述数据的分析;
由所述机器学习分析系统至少部分地基于所述分析来检测与所述机器学习模型的所述使用相关联的一个或多个问题;以及
由所述机器学习分析系统启动与所述一个或多个问题相关联的一个或多个补救动作,所述一个或多个问题与所述机器学习模型的所述使用相关联。
条款46.根据条款45所述的方法,其中启动所述一个或多个补救动作包含:
生成描述与所述机器学习模型的所述使用相关联的所述一个或多个问题的一个或多个通知。
条款47.根据条款45或46中任一项所述的方法,其中启动所述一个或多个补救动作包含:
至少部分地基于检测到与所述机器学习模型的所述使用相关联的所述一个或多个问题来启动对所述机器学习模型的再训练,其中使用具有与所述机器学习模型的所述输入相匹配的一个或多个特征的新训练集来执行所述再训练。
条款48.根据条款45至47中任一项所述的方法,其中与所述机器学习模型的所述使用相关联的所述一个或多个问题包含所述机器学习模型在时间窗口内的一个或多个输入异常或一个或多个输出异常。
条款49.根据条款45至48中任一项所述的方法,其中所述机器学习模型的所述输入包含表示一个或多个黄金实例的测试数据,并且其中与所述机器学习模型的所述使用相关联的所述一个或多个问题包含所述推理中的一个或多个与根据所述测试数据的预期结果的差异。
条款50.根据条款45至49中任一项所述的方法,其中所述分析进一步使用训练数据,并且其中与所述机器学习模型的所述使用相关联的所述一个或多个问题包含所述机器学习模型的所述输入的一个或多个值,所述一个或多个值表示与所述训练数据相比的异常值。
条款51.根据条款45至50中任一项所述的方法,其中所述分析包含将在所述机器学习模型的训练期间收集的第一组统计数据与在所述机器学习模型的所述使用期间收集的第二组统计数据进行比较以产生所述推理,并且其中与所述机器学习模型的所述使用相关联的所述一个或多个问题包含所述第一组统计数据与所述第二组统计数据之间的一个或多个差异。
条款52.根据条款45至51中任一项所述的方法,其中在最近时间窗口内收集与所述机器学习模型的所述使用相关联的数据,其中所述推理与标签相关联,其中所述分析包含与所述最近时间窗口的所述机器学习模型的所述使用相关联的所述数据和与先前时间窗口的所述机器学习模型的所述使用相关联的数据的比较,并且其中与所述机器学习模型的所述使用相关联的所述一个或多个问题包含所述最近时间窗口的所述标签与所述先前时间窗口的所述标签之间的一个或多个差异。
条款53.根据条款45至52中任一项所述的方法,其中在最近时间窗口期间收集与所述机器学习模型的所述使用相关联的所述数据,其中所述分析包含与所述最近时间窗口的所述机器学习模型的所述使用相关联的所述数据和与先前时间窗口的所述机器学习模型的所述使用相关联的数据的比较,并且其中与所述机器学习模型的所述使用相关联的所述一个或多个问题包含所述最近时间窗口中的个体实体的推理与所述先前时间窗口中的所述个体实体的一个或多个先前推理之间的一个或多个差异。
条款54.根据条款45至53中任一项所述的方法,其中所述分析进一步使用表示观测结果的地面实况数据,并且其中与所述机器学习模型的所述使用相关联的所述一个或多个问题包含所述推理与所述地面实况数据之间的一个或多个差异。
条款55.一种或多种非暂时性计算机可读存储介质,其存储程序指令,所述程序指令在一个或多个处理器上或跨一个或多个处理器执行时执行:
在时间窗口内接收与机器学习模型的使用相关联的数据,其中与所述机器学习模型的所述使用相关联的所述数据包含对所述机器学习模型的输入或表示所述机器学习模型的输出的多个推理,并且其中与所述机器学习模型的所述使用相关联的所述数据由机器学习推理系统收集;
在所述时间窗口之后,执行对与所述机器学习模型的所述使用相关联的所述数据的分析;
至少部分地基于所述分析来检测与所述机器学习模型的所述使用相关联的一个或多个异常;以及
启动与所述一个或多个异常相关联的一个或多个补救动作,所述一个或多个异常与所述机器学习模型的所述使用相关联,其中所述一个或多个补救动作包含生成描述与所述机器学习模型的所述使用相关联的所述一个或多个异常的一个或多个通知。
条款56.根据条款55所述的一种或多种非暂时性计算机可读存储介质,其中所述机器学习模型被部署到端点,并且其中在不修改所述机器学习模型的程序代码的情况下收集与所述机器学习模型的所述使用相关联的所述数据。
条款57.根据条款55或56中任一项所述的一种或多种非暂时性计算机可读存储介质,其进一步包含额外程序指令,所述额外程序指令在所述一个或多个处理器上或跨所述一个或多个处理器执行时执行:
存储与所述机器学习模型的不同版本的使用相关联的附加数据,其中所述附加数据包含所述输入或表示所述机器学习模型的所述不同版本的输出的多个推理;
其中执行对与所述机器学习模型的所述使用相关联的所述数据的所述分析包含将所述机器学习模型的所述使用与所述机器学习模型的所述不同版本的所述使用进行比较。
条款58.根据条款55至57中任一项所述的一种或多种非暂时性计算机可读存储介质,其中与所述机器学习模型的所述使用相关联的所述数据包含描述所述推理中的一个或多个的中间结果的信息,并且其中在所述中间结果中检测到与所述机器学习模型的所述使用相关联的所述一个或多个问题中的至少一个。
条款59.根据条款55至58中任一项所述的一种或多种非暂时性计算机可读存储介质,其进一步包含额外程序指令,所述额外程序指令在所述一个或多个处理器上或跨所述一个或多个处理器执行时执行:
接收表示分析配置的用户输入,其中根据所述分析配置中指示的一个或多个阈值和频率来执行所述分析。
条款60.根据条款55至59中任一项所述的一种或多种非暂时性计算机可读存储介质,其进一步包含额外程序指令,所述额外程序指令在所述一个或多个处理器上或跨所述一个或多个处理器执行时执行:
接收表示监视配置的用户输入,其中根据所述监视配置中指示的采样率来收集与所述机器学习模型的所述使用相关联的所述数据。
Claims (15)
1.一种系统,其包含:
被配置成实施机器学习训练集群的一个或多个计算装置,其中所述机器学习训练集群被配置成:
收集与所述一个或多个计算装置上的机器学习模型的训练相关联的数据;以及
被配置成实施机器学习分析系统的一个或多个计算装置,其中所述机器学习分析系统被配置成:
执行对与所述机器学习模型的所述训练相关联的所述数据的分析;
至少部分地基于聚合数据的分析来检测与所述机器学习模型的所述训练相关联的一个或多个问题;以及
生成描述与所述机器学习模型的所述训练相关联的所述一个或多个问题的一个或多个警报。
2.根据权利要求1所述的系统,其中与所述机器学习模型的所述训练相关联的所述一个或多个问题包含跨多个批次或跨所述机器学习训练集群的所述计算装置中的两个或更多个的数据分布的差异。
3.根据权利要求1所述的系统,其中与所述机器学习模型的所述训练相关联的所述一个或多个问题包含在张量级数据中检测到的消失梯度或爆炸梯度。
4.根据权利要求1所述的系统,其中所述机器学习模型的所述训练至少部分地基于与所述机器学习模型的所述训练相关联的所述一个或多个问题而中止。
5.一种计算机实施的方法,其包含:
由机器学习分析系统接收与机器学习模型的训练相关联的数据,其中与所述机器学习模型的所述训练相关联的所述数据由机器学习训练集群的一个或多个计算装置收集;
由所述机器学习分析系统执行对与所述机器学习模型的所述训练相关联的所述数据的分析;
由所述机器学习分析系统至少部分地基于所述分析来检测与所述机器学习模型的所述训练相关联的一个或多个状况;以及
由所述机器学习分析系统生成描述与所述机器学习模型的所述训练相关联的所述一个或多个状况的一个或多个警报。
6.根据权利要求5所述的方法,其中与所述机器学习模型的所述训练相关联的所述数据包含从所述机器学习训练集群的一个或多个图形处理单元(GPU)输出的张量数据,并且其中与所述机器学习模型的所述训练相关联的所述数据在与所述机器学习模型的所述训练相关联的所述数据的所述分析之前被聚合。
7.根据权利要求5所述的方法,其中与所述机器学习模型的所述训练相关联的所述一个或多个状况包含跨多个批次的数据分布的差异。
8.根据权利要求5所述的方法,其中与所述机器学习模型的所述训练相关联的所述一个或多个状况包含在张量级数据中检测到的消失梯度或爆炸梯度。
9.根据权利要求5所述的方法,其中与所述机器学习模型的所述训练相关联的所述数据包含描述所述机器学习训练集群的资源利用的数据,并且其中与所述机器学习模型的所述训练相关联的所述一个或多个状况表示一个或多个资源利用阈值的违反。
10.根据权利要求5所述的方法,其中与所述机器学习模型的所述训练相关联的所述数据包含描述所述机器学习训练集群的资源利用的数据,并且其中与所述机器学习模型的所述训练相关联的所述一个或多个状况表示在所述机器学习训练集群的一个或多个资源中标识的一个或多个性能瓶颈。
11.根据权利要求5所述的方法,其进一步包含:
至少部分地基于与所述机器学习模型的所述训练相关联的所述一个或多个状况来中止所述机器学习模型的所述训练;
修改所述机器学习模型的所述训练的配置;以及
根据所述配置重新开始所述机器学习模型的所述训练。
12.根据权利要求5所述的方法,其进一步包含:
至少部分地基于与所述机器学习模型的所述训练相关联的所述一个或多个状况来中止所述机器学习训练集群的使用。
13.一种或多种非暂时性计算机可读存储介质,其存储程序指令,所述程序指令在一个或多个处理器上或跨一个或多个处理器执行时执行:
由机器学习分析系统接收与机器学习模型的训练相关联的数据,其中与所述机器学习模型的所述训练相关联的所述数据由机器学习训练集群的一个或多个计算装置收集;
由所述机器学习分析系统执行对与所述机器学习模型的所述训练相关联的所述数据的分析;
由所述机器学习分析系统至少部分地基于所述分析来检测与所述机器学习模型的所述训练相关联的一个或多个问题;以及
由所述机器学习分析系统生成描述与所述机器学习模型的所述训练相关联的所述一个或多个问题的一个或多个警报。
14.根据权利要求13所述的一种或多种非暂时性计算机可读存储介质,其中与所述机器学习模型的所述训练相关联的所述数据包含描述所述机器学习训练集群的资源利用的数据,并且其中与所述机器学习模型的所述训练相关联的所述一个或多个问题表示一个或多个资源利用阈值的违反。
15.根据权利要求13所述的一种或多种非暂时性计算机可读存储介质,其进一步包含额外程序指令,所述额外程序指令在所述一个或多个处理器上或跨所述一个或多个处理器执行时执行:
至少部分地基于与所述机器学习模型的所述训练相关联的所述一个或多个问题来中止所述机器学习模型的所述训练。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/588,952 | 2019-09-30 | ||
US16/588,913 US20210097431A1 (en) | 2019-09-30 | 2019-09-30 | Debugging and profiling of machine learning model training |
US16/588,930 US11468365B2 (en) | 2019-09-30 | 2019-09-30 | GPU code injection to summarize machine learning training data |
US16/588,930 | 2019-09-30 | ||
US16/588,952 US11449798B2 (en) | 2019-09-30 | 2019-09-30 | Automated problem detection for machine learning models |
US16/588,913 | 2019-09-30 | ||
PCT/US2020/053456 WO2021067385A1 (en) | 2019-09-30 | 2020-09-30 | Debugging and profiling of machine learning model training |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114503132A true CN114503132A (zh) | 2022-05-13 |
Family
ID=72896132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080068301.1A Pending CN114503132A (zh) | 2019-09-30 | 2020-09-30 | 机器学习模型训练的调试和剖析 |
Country Status (4)
Country | Link |
---|---|
CN (1) | CN114503132A (zh) |
DE (1) | DE112020004688T5 (zh) |
GB (1) | GB2604279A (zh) |
WO (1) | WO2021067385A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102021210107A1 (de) * | 2021-09-14 | 2023-03-16 | Zf Friedrichshafen Ag | Computerimplementierte Verfahren, Module und System zur Anomalieerkennung in industriellen Fertigungsprozessen |
DE102021210106A1 (de) * | 2021-09-14 | 2023-03-16 | Zf Friedrichshafen Ag | Computerimplementierte Verfahren und System zur Anomalieerkennung und Verfahren zur Anomalieerkennung in einer akustischen Endprüfung eines Getriebes |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11257002B2 (en) * | 2017-11-22 | 2022-02-22 | Amazon Technologies, Inc. | Dynamic accuracy-based deployment and monitoring of machine learning models in provider networks |
-
2020
- 2020-09-30 GB GB2206121.2A patent/GB2604279A/en active Pending
- 2020-09-30 DE DE112020004688.5T patent/DE112020004688T5/de active Pending
- 2020-09-30 CN CN202080068301.1A patent/CN114503132A/zh active Pending
- 2020-09-30 WO PCT/US2020/053456 patent/WO2021067385A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
DE112020004688T5 (de) | 2022-06-15 |
WO2021067385A1 (en) | 2021-04-08 |
GB2604279A (en) | 2022-08-31 |
GB202206121D0 (en) | 2022-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019200046B2 (en) | Utilizing artificial intelligence to test cloud applications | |
US20210097431A1 (en) | Debugging and profiling of machine learning model training | |
CN110351150B (zh) | 故障根源确定方法及装置、电子设备和可读存储介质 | |
EP4195112A1 (en) | Systems and methods for enriching modeling tools and infrastructure with semantics | |
US11449798B2 (en) | Automated problem detection for machine learning models | |
US10693711B1 (en) | Real-time event correlation in information networks | |
JP6457489B2 (ja) | Javaヒープ使用量の季節的傾向把握、予想、異常検出、エンドポイント予測 | |
Notaro et al. | A survey of aiops methods for failure management | |
US10581851B1 (en) | Change monitoring and detection for a cloud computing environment | |
US20220027257A1 (en) | Automated Methods and Systems for Managing Problem Instances of Applications in a Distributed Computing Facility | |
US8949676B2 (en) | Real-time event storm detection in a cloud environment | |
Zhao et al. | Identifying bad software changes via multimodal anomaly detection for online service systems | |
US20220027249A1 (en) | Automated methods and systems for troubleshooting problems in a distributed computing system | |
US11640329B2 (en) | Using an event graph schema for root cause identification and event classification in system monitoring | |
US20170109636A1 (en) | Crowd-Based Model for Identifying Executions of a Business Process | |
US11468365B2 (en) | GPU code injection to summarize machine learning training data | |
US11880272B2 (en) | Automated methods and systems that facilitate root-cause analysis of distributed-application operational problems and failures by generating noise-subtracted call-trace-classification rules | |
US11880271B2 (en) | Automated methods and systems that facilitate root cause analysis of distributed-application operational problems and failures | |
US10365995B2 (en) | Composing future application tests including test action data | |
Gabel et al. | Latent fault detection in large scale services | |
US10372572B1 (en) | Prediction model testing framework | |
US11416379B1 (en) | Creation of software tests matching production personas | |
US20240028830A1 (en) | Machine learning -based selection of metrics for anomaly detection | |
CN114503132A (zh) | 机器学习模型训练的调试和剖析 | |
US20210365762A1 (en) | Detecting behavior patterns utilizing machine learning model trained with multi-modal time series analysis of diagnostic data |
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 |