分批处理机器学习模型的输入制造技术

技术编号:19561685 阅读:18 留言:0更新日期:2018-11-25 00:26
方法、系统和装置,包括在计算机存储介质上编码的计算机程序,用于分批处理机器学习模型的输入。所述方法中的一种包括:接收请求流,每个请求识别相应的输入以供由第一机器学习模型处理;将来自每个请求的所述相应的输入添加到输入的第一队列以供由所述第一机器学习模型处理;在第一时间确定到所述第一时间时为止所述第一队列中的输入的计数等于或者超过最大批大小,并且作为响应:从到所述第一时间时为止所述队列中的所述输入生成第一成批输入,使得所述第一成批输入中的输入的计数等于所述最大批大小,并且提供所述第一成批输入以供由所述第一机器学习模型处理。

Batch Processing Machine Learning Model Input

Methods, systems and devices, including computer programs coded on computer storage media, are used to process the input of machine learning models in batches. One of the methods includes: receiving the request flow, each request identifying the corresponding input for processing by the first machine learning model; adding the corresponding input from each request to the first queue of input for processing by the first machine learning model; and determining at the first time to the first time as follows: In response, the input in the first queue generates the first batch input from the input in the queue up to the first time, so that the count of the input in the first batch input equals the maximum batch size, and provides the first batch size. Batch input for processing by the first machine learning model.

【技术实现步骤摘要】
【国外来华专利技术】分批处理机器学习模型的输入
本说明书涉及使用机器学习模型来处理输入。
技术介绍
机器学习模型接收输入并且基于所接收到的输入生成输出,例如预测的输出。一些机器学习模型是参数模型并且基于所接收到的输入且基于模型的参数值生成输出。一些机器学习模型是采用模型的多个层来为所接收到的输入生成输出的深度模型。例如,深度神经网络包括输出层和一个或多个隐藏层,所述一个或多个隐藏层各自对所接收到的输入应用非线性变换以生成输出。
技术实现思路
一般而言,本说明书描述一种用于分批处理机器学习模型的输入的系统。可借助于安装在系统上的软件、固件、硬件或其组合来如此配置一个或多个计算机的系统,所述软件、固件、硬件或其组合在操作中使系统执行动作。可借助于具有指令来如此配置一个或多个计算机程序,所述指令当由数据处理装置执行时,使该装置执行动作。可实现本说明书中描述的主题的特定实施例以便实现以下优点中的一个或多个。通过像本说明书中所描述的那样分批处理机器学习模型的输入,可更有效地使用由系统使用来执行模型的操作的硬件资源,同时确保不超过最大可接受的等待时间。特别地,可优化高吞吐量硬件资源,例如图形处理单元(GPU)和其它硬件加速器,同时维持可接受的等待时间。在系统维护多个机器学习模型的情形下,可有效地分批处理用于那些模型中的每一个的输入。通过为多个机器学习模型中的每一个维护相应的队列,可有效地实现可被系统用于处理机器学习输入的硬件加速器的虚拟化。在下面的附图和描述中阐述本说明书的主题的一个或多个实施例的细节。根据说明书、附图和权利要求书,主题的其它特征、方面和优点将变得显而易见。附图说明图1图示示例机器学习系统。图2是用于分批处理输入以供由机器学习模型处理的示例过程的流程图。图3是用于为多个机器学习模型中的每一个维护相应的队列的示例过程的流程图。在各个附图中相似的附图标记和名称指示相似的元件。具体实施方式本说明书一般地描述在输入被机器学习模型处理之前分批处理机器学习模型的输入的系统。图1图示示例机器学习系统100。机器学习系统100是作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统的示例,在所述一个或多个位置中可实现在下面描述的系统、组件和技术。机器学习系统100是提供由机器学习模型响应于来自远离机器学习系统100定位的用户的请求而生成的模型输出的系统。例如,用户设备104的用户102可通过数据通信网络112(例如,局域网(LAN)或广域网(WAN)(例如,因特网)或这些网络的组合,所述网络中的任一个可以包括无线链路)向机器学习系统100提交包括要由机器学习模型120A处理的输入114的请求。作为响应,机器学习系统100可通过使用机器学习模型120A来处理输入114而针对输入114生成模型输出128,并且然后提供模型输出128作为对请求的响应的一部分。因此,机器学习系统100可允许用户利用机器学习模型120A和由机器学习系统100维护的任何其它机器学习模型的预测能力,而不必使训练并维护机器学习模型所必需的本地计算资源可用或者不必具有训练并维护机器学习模型所需要的知识。特别地,机器学习系统100包括模型处理系统110,所述模型处理系统110维护机器学习模型120A以及可选地其它机器学习模型,例如,机器学习模型120N,以用于处理在由机器学习系统100的用户提交的请求中接收到的输入时使用。在一些实施方式中,模型处理系统110是将给定维护的机器学习模型的操作表示为包括通过有向边连接的节点的计算图的系统。计算图中的每个节点表示一个操作。到节点的进入边表示到节点中的输入流,即,由节点表示的操作的输入。来自节点的传出边表示由该节点表示的操作的输出流以被用作由另一节点表示的操作的输入。因此,将图中的第一节点连接到图中的第二节点的有向边指示通过由第一节点表示的操作生成的输出被用作由第二节点表示的操作的输入。为了使用机器学习模型来处理输入,模型处理系统110跨越多个设备分发由图中的节点表示的操作并且使这些设备通过执行由节点表示的操作来共同地处理输入。一般地,设备是独立于其它设备而执行操作的硬件资源。例如,每个设备可具有它自己的处理单元。设备可以是图形处理单元(GPU)或中央处理单元(CPU)。作为图示,一个机器可托管一个或多个设备,例如多个CPU和GPU。在http://download.tensorflow.org/paper/whitepaper2015.pdf处可获得的MartinAbadi等人的TensorFlow:Large-ScaleMachineLearningonHeterogeneousDistributedSystems中描述了跨越多个设备分发由计算图的节点表示的操作以处理机器学习模型的输入的示例系统。为了优化可被模型处理系统110利用的硬件资源(例如,设备)的使用,模型处理系统110通过由模型处理系统110所维护的机器学习模型中的每一个来支持成批输入的处理。用于给定机器学习模型的成批输入是多个单独的输入的组合,对所述多个单独的输入并行地执行机器学习模型的操作中的至少一些。例如,如果机器学习模型是包括将参数矩阵乘以从网络的当前输入生成的层输入作为生成层输出的一部分的操作的神经网络,则可对于给定成批输入中的每个单独的输入并行地执行矩阵乘法。在一些实施方式中,机器学习模型将成批输入作为单个输入来处理,即,对于成批输入并行地执行机器学习模型的所有操作。通过使用机器学习模型来处理成批输入,模型处理系统110生成对于成批输入中的每个输入包括相应的模型输出的成批输出。一般地,机器学习模型的每个输入和由机器学习模型生成的每个模型输出是张量。张量是数值或其它值(例如,字符串)的多维数组,所述数值或其它值具有与数组的维度对应的具体阶。例如,标量值是0阶张量,数值的矢量是1阶张量,并且矩阵是2阶张量。取决于单独的输入的配置,成批输入可以是由单独的张量组成的单个高阶张量,或者是具有与单独的张量相同的阶但是为单独的张量的级联的单个张量。假设成批输入是单个张量,所对应的成批输出也可以是单个张量,并且模型处理系统110可以跟踪单个输出张量的哪一个部分表示针对哪一个单独的输入张量的模型输出。为了生成成批输入以供由模型处理系统110处理,机器学习系统100也包括分批处理系统130。分批处理系统130维护用于由模型处理系统110所维护的每个机器学习模型的队列,例如,用于机器学习模型120A的队列140A,以及可选地,用于机器学习模型120N的队列140N。每个队列包括被接收以供由所对应的机器学习模型处理的输入。当对于给定队列中的请求来说满足某些准则时,分批处理系统130从队列中的输入生成成批输入并且将成批输入提供给模型处理系统110以供由所对应的机器学习模型处理,例如,提供成批输入136以供由机器学习模型120A处理。在下面参考图2对生成成批输入进行描述。模型处理系统110使用所对应的机器学习模型来处理成批输入以生成成批输出,例如,针对使用机器学习模型120A生成的成批输入136的成批输出138,并且将成批输出提供给分批处理系统130。分批处理系统130提供包括在成批输入中的每个单独的模型输出作为对所对应的请求的响应。也就是说,分批处理系统130本文档来自技高网...

【技术保护点】
1.一种方法,所述方法包括:接收请求流,每个请求识别相应的输入以供由第一机器学习模型处理;将来自每个请求的所述相应的输入添加到输入的第一队列以供由所述第一机器学习模型处理;在第一时间确定到所述第一时间时为止所述第一队列中的输入的计数等于或者超过最大批大小,并且作为响应:从到所述第一时间时为止所述队列中的所述输入生成第一成批输入,使得所述第一成批输入中的输入的计数等于所述最大批大小,并且提供所述第一成批输入以供由所述第一机器学习模型处理;以及在第二时间确定(i)到所述第二时间时为止所述队列中的输入的计数小于所述最大批大小但是(ii)所述队列中的最旧输入比等待时间参数旧,并且作为响应:从到所述第二时间时为止所述队列中的所述输入生成第二成批输入,使得所述第二成批输入中的输入的计数小于所述最大批大小,并且提供所述第二成批输入以供由所述第一机器学习模型处理。

【技术特征摘要】
【国外来华专利技术】2016.04.05 US 15/091,3811.一种方法,所述方法包括:接收请求流,每个请求识别相应的输入以供由第一机器学习模型处理;将来自每个请求的所述相应的输入添加到输入的第一队列以供由所述第一机器学习模型处理;在第一时间确定到所述第一时间时为止所述第一队列中的输入的计数等于或者超过最大批大小,并且作为响应:从到所述第一时间时为止所述队列中的所述输入生成第一成批输入,使得所述第一成批输入中的输入的计数等于所述最大批大小,并且提供所述第一成批输入以供由所述第一机器学习模型处理;以及在第二时间确定(i)到所述第二时间时为止所述队列中的输入的计数小于所述最大批大小但是(ii)所述队列中的最旧输入比等待时间参数旧,并且作为响应:从到所述第二时间时为止所述队列中的所述输入生成第二成批输入,使得所述第二成批输入中的输入的计数小于所述最大批大小,并且提供所述第二成批输入以供由所述第一机器学习模型处理。2.根据权利要求1所述的方法,其中,生成所述第二成批输入包括:确定所述第二成批输入中的所述输入的计数大于第一可接受的批大小且小于第二可接受的批大小,并且作为响应,将占位符输入添加到所述第二成批输入,使得所述第二成批输入中的所述输入的计数等于所述第二可接受的批大小。3.根据权利要求2所述的方法,其中,每个占位符输入是已经在所述第二成批输入中的相应的输入的副本。4.根据权利要求2或权利要求3所述的方法,还包括:接收由所述机器学习模型为所述第二成批输入而生成的第二机器学习输出;对于所述第二成批输入中的每个输入,确定与所述输入对应的所述第二机器学习输出的相应的部分;对于所述第二成批输入中的每个占位符输入,丢弃所述第二机器学习输出的相应的对应部分;以及对于不是占位符输入的所述第二成批输入中的每个输入,在对识别所述输入的所述请求的响应中提供所述第二机器学习输出的相应的对应部分。5.根据任一前述权利要求所述的方法,其中,由所述第一机器学习模型对输入的处理由计算图系统来管理,所述计算图系统将所述第一机器学习模型在给定成批输入的处理期间的操作表示为计算图,其中,所述计算图包括多个节点和有向边,其中,每个节点表示相应的操作,并且其中,每个有向边将相应的第一节点连接到相应的第二节点,所述相应的第二节点表示接收由所述相应的第一节点表示的操作的输出作为输入的操作。6.根据权利要求5所述的方法,其中,所述计算图系统通过在多个设备之中指派由所述计算图中的所述节点表示的所述操作来处理成批输入。7.根据权利要求5或权利要求6所述的方法,其中,提供所述第一成批输入以供由所述第一机器学习模型处理包括将所述第一成批输入提供给所述计算图系统,并且其中,提供所述第二成批输入以供由所述第一机器学习模型处理包括将所述第二成批输入提供给所述计算图系统。8.根据任一前述权利要求所述的方法,还包括:维护包括所述第一队列的多个队列,其中,每个队列与来自多个机器学习模型的相应的机器学习模型对应。9.根据权利要求8所述的方法,还包括:确定线程已变得可用于由所述多个机器学习模型中的一个机器学习模型处理成批输入;以及从所述多个机器学习模型中选择所述第一机器学习模型,并且作为响应,提供所述第一成批输入以供在已变得可用的所述线程上处理。10.根据任一前述权利要求所述的方法,还包括:基于可用于处理所述机器学习模型的输入的硬件资源的特性和所述机器学习模型的架构来确定所述最大批大小。11.一种包括一个或多个计算机和存储指令的一个或多个存储设备的系统,所述指令当由所述一个或多个计算机执行时,使所述一个或多个计算机执行包括以下各项的操作:接收请求流,每个请求识别相应的输入以供由第一机器学习模型处理;将来自每个请求的所述相应的输入添加到输入的第一队列以供由所述第一机器学习模型处理;在第一时间确定到所述第一时间时为止所述第一队列中的输入的计数等于或者超过最大批大小,并且作为响应:从到所述第一时间时...

【专利技术属性】
技术研发人员:诺亚·菲德尔克里斯托弗·奥尔斯顿杰里迈亚·哈姆森
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1