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

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

【技术实现步骤摘要】
分批处理机器学习模型的输入
[0001]分案说明
[0002]本申请属于申请日为2016年12月21日的中国专利技术专利申请201680084418.2的分案申请。


[0003]本说明书涉及使用机器学习模型来处理输入。

技术介绍

[0004]机器学习模型接收输入并且基于所接收到的输入生成输出,例如预测的输出。一些机器学习模型是参数模型并且基于所接收到的输入且基于模型的参数值生成输出。
[0005]一些机器学习模型是采用模型的多个层来为所接收到的输入生成输出的深度模型。例如,深度神经网络包括输出层和一个或多个隐藏层,所述一个或多个隐藏层各自对所接收到的输入应用非线性变换以生成输出。

技术实现思路

[0006]一般而言,本说明书描述一种用于分批处理机器学习模型的输入的系统。
[0007]可借助于安装在系统上的软件、固件、硬件或其组合来如此配置一个或多个计算机的系统,所述软件、固件、硬件或其组合在操作中使系统执行动作。可借助于具有指令来如此配置一个或多个计算机程序,所述指令当由数据处理装置执行时,使该装置执行动作。
[0008]可实现本说明书中描述的主题的特定实施例以便实现以下优点中的一个或多个。通过像本说明书中所描述的那样分批处理机器学习模型的输入,可更有效地使用由系统使用来执行模型的操作的硬件资源,同时确保不超过最大可接受的等待时间。特别地,可优化高吞吐量硬件资源,例如图形处理单元(GPU)和其它硬件加速器,同时维持可接受的等待时间。在系统维护多个机器学习模型的情形下,可有效地分批处理用于那些模型中的每一个的输入。通过为多个机器学习模型中的每一个维护相应的队列,可有效地实现可被系统用于处理机器学习输入的硬件加速器的虚拟化。
[0009]在下面的附图和描述中阐述本说明书的主题的一个或多个实施例的细节。根据说明书、附图和权利要求书,主题的其它特征、方面和优点将变得显而易见。
附图说明
[0010]图1图示示例机器学习系统。
[0011]图2是用于分批处理输入以供由机器学习模型处理的示例过程的流程图。
[0012]图3是用于为多个机器学习模型中的每一个维护相应的队列的示例过程的流程图。
[0013]在各个附图中相似的附图标记和名称指示相似的元件。
具体实施方式
[0014]本说明书一般地描述在输入被机器学习模型处理之前分批处理机器学习模型的输入的系统。
[0015]图1图示示例机器学习系统100。机器学习系统100是作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统的示例,在所述一个或多个位置中可实现在下面描述的系统、组件和技术。
[0016]机器学习系统100是提供由机器学习模型响应于来自远离机器学习系统100定位的用户的请求而生成的模型输出的系统。
[0017]例如,用户设备104的用户102可通过数据通信网络112(例如,局域网(LAN)或广域网(WAN)(例如,因特网)或这些网络的组合,所述网络中的任一个可以包括无线链路)向机器学习系统100提交包括要由机器学习模型120A处理的输入114的请求。
[0018]作为响应,机器学习系统100可通过使用机器学习模型120A来处理输入114而针对输入114生成模型输出128,并且然后提供模型输出128作为对请求的响应的一部分。
[0019]因此,机器学习系统100可允许用户利用机器学习模型120A和由机器学习系统100维护的任何其它机器学习模型的预测能力,而不必使训练并维护机器学习模型所必需的本地计算资源可用或者不必具有训练并维护机器学习模型所需要的知识。
[0020]特别地,机器学习系统100包括模型处理系统110,所述模型处理系统110维护机器学习模型120A以及可选地其它机器学习模型,例如,机器学习模型120N,以用于处理在由机器学习系统100的用户提交的请求中接收到的输入时使用。
[0021]在一些实施方式中,模型处理系统110是将给定维护的机器学习模型的操作表示为包括通过有向边连接的节点的计算图的系统。计算图中的每个节点表示一个操作。到节点的进入边表示到节点中的输入流,即,由节点表示的操作的输入。来自节点的传出边表示由该节点表示的操作的输出流以被用作由另一节点表示的操作的输入。因此,将图中的第一节点连接到图中的第二节点的有向边指示通过由第一节点表示的操作生成的输出被用作由第二节点表示的操作的输入。
[0022]为了使用机器学习模型来处理输入,模型处理系统110跨越多个设备分发由图中的节点表示的操作并且使这些设备通过执行由节点表示的操作来共同地处理输入。
[0023]一般地,设备是独立于其它设备而执行操作的硬件资源。例如,每个设备可具有它自己的处理单元。设备可以是图形处理单元(GPU)或中央处理单元(CPU)。作为图示,一个机器可托管一个或多个设备,例如多个CPU和GPU。
[0024]在http://download.tensorflow.org/paper/whitepaper2015.pdf处可获得的Martin Abadi等人的TensorFlow:Large

Scale Machine Learning on Heterogeneous Distributed Systems中描述了跨越多个设备分发由计算图的节点表示的操作以处理机器学习模型的输入的示例系统。
[0025]为了优化可被模型处理系统110利用的硬件资源(例如,设备)的使用,模型处理系统110通过由模型处理系统110所维护的机器学习模型中的每一个来支持成批输入的处理。
[0026]用于给定机器学习模型的成批输入是多个单独的输入的组合,对所述多个单独的输入并行地执行机器学习模型的操作中的至少一些。
[0027]例如,如果机器学习模型是包括将参数矩阵乘以从网络的当前输入生成的层输入
作为生成层输出的一部分的操作的神经网络,则可对于给定成批输入中的每个单独的输入并行地执行矩阵乘法。
[0028]在一些实施方式中,机器学习模型将成批输入作为单个输入来处理,即,对于成批输入并行地执行机器学习模型的所有操作。
[0029]通过使用机器学习模型来处理成批输入,模型处理系统110生成对于成批输入中的每个输入包括相应的模型输出的成批输出。
[0030]一般地,机器学习模型的每个输入和由机器学习模型生成的每个模型输出是张量。张量是数值或其它值(例如,字符串)的多维数组,所述数值或其它值具有与数组的维度对应的具体阶。例如,标量值是0阶张量,数值的矢量是1阶张量,并且矩阵是2阶张量。
[0031]取决于单独的输入的配置,成批输入可以是由单独的张量组成的单个高阶张量,或者是具有与单独的张量相同的阶但是为单独的张量的级联的单个张量。假设成批输入是单个张量,所对应的成批输出也可以是单个张量,并且模型处理系统110可以跟踪单个输出张量的哪一个部分表示针对哪一个单独的输入张本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分批处理机器学习模型的输入的方法,包括:接收请求流,每个请求识别相应的输入以供由第一机器学习模型处理;将来自每个请求的所述相应的输入添加到输入的第一队列以供由所述第一机器学习模型处理;在第一时间确定到所述第一时间时为止所述第一队列中的输入的计数等于或者超过最大批大小,并且作为响应:从到所述第一时间时为止所述队列中的所述输入生成第一成批输入,使得所述第一成批输入中的输入的计数等于所述最大批大小,并且提供所述第一成批输入以供由所述第一机器学习模型处理,其中所述第一机器学习模型利用计算图系统来管理对输入的处理;以及在第二时间确定(i)到所述第二时间时为止所述队列中的输入的计数小于所述最大批大小但是(ii)所述队列中的最旧输入比等待时间参数旧,并且作为响应:从到所述第二时间时为止所述队列中的所述输入生成第二成批输入,使得所述第二成批输入中的输入的计数小于所述最大批大小,并且提供所述第二成批输入以供由所述第一机器学习模型处理;其中,所述计算图系统将所述第一机器学习模型在给定成批输入的处理期间的操作表示为计算图,所述计算图包括多个节点和有向边,每个节点表示相应的操作,每个有向边将相应的第一节点连接到相应的第二节点,所述相应的第二节点表示接收由所述相应的第一节点表示的操作的输出作为输入的操作;并且其中,所述方法进一步包括:维护包括所述第一队列的多个队列,其中,每个队列与来自多个机器学习模型的相应的机器学习模型对应;确定线程已变得可用于由所述多个机器学习模型中的一个机器学习模型处理成批输入;以及从所述多个机器学...

【专利技术属性】
技术研发人员:诺亚
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:

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

1