用于有效神经网络部署的系统和方法技术方案

技术编号:14854112 阅读:106 留言:0更新日期:2017-03-18 20:58
公开了对于诸如神经网络部署的计算密集型任务实现有效引擎的系统和方法。提供本发明专利技术各实施方式,以针对在诸如实时语音转录的高流量应用中提高串流数据吞吐量的高吞吐量分批。在实施方式中,通过动态聚集成分批以及共同处理在未知定时下随机到达的用户请求来提高吞吐量,使得并非所有数据在进行分批时便立即呈现。一些实施方式允许利用预处理来执行流分类。性能增益允许更有效地使用计算引擎并且极大降低了大规模部署大型神经网络的成本,同时满足严格的应用要求并使增加的计算延迟相对较小,从而保持令人满意的应用体验。

【技术实现步骤摘要】
相关申请的交叉引用本申请要求于2015年9月4日提交的、题为“用于有效神经网络部署的系统和方法”以及列出ChristopherFougner和BryanCatanzaro作为专利技术人的第62/214,816号共同受让的未决美国临时专利申请的优先权。前述专利文献就其全部内容以及出于所有目的通过引用并入本文。
本公开大体涉及网络管理,更具体地,涉及用于诸如神经网络部署的计算密集型问题的系统和方法。
技术介绍
图1示出用于部署深度神经网络的现有典型架构。请求经由因特网串流至数据中心中。这些请求被负载均衡器102路由至位于数据中心110处的若干服务器104中之一上。每个请求106由这些服务器104中之一上运行的单个工作线程处理,之后返回结果108。由于仅需要在一个线程上运行用于运行各神经网络中之一的代码,使得代码容易编写,因此架构100易于理解。因为工作线程立即处理每个请求106因而还容易推断出延迟,并且延迟通常是最小化的。最后,因为每个请求106单独被处理,所以该架构使得更容易推断出故障转移。虽然系统100可易于实施,但其不是非常有效。因此,需要提供更有效的神经网络部署并同时满足处理要求的系统和方法。
技术实现思路
本申请的目的在于提供一种用于提高数据处理请求的吞吐量的分批方法、用于处理与神经网络模型有关的请求的批处理系统以及分批生成器。根据一个方面,提供了一种用于提高数据处理请求的吞吐量的分批方法,该方法可包括:以至少部分未知的定时,接收与待通过使用神经网络模型来处理的请求相关的数据,所述请求受一个或多个约束的限制;利用所述一个或多个约束中的至少之一,将所述数据中的至少一些动态聚集成分批;以及利用编排多个线程的单个线程来处理所述分批,以分担从存储器加载所述神经网络模型的负荷,从而提高数据吞吐量。根据另一个方面,提供了一种用于处理与神经网络模型有关的请求的批处理系统,该系统可包括:一个或多个计算设备,其中每个计算设备包括:至少一个处理器以及存储设备;分批生成器组件,接收与不同请求相关的数据,以及根据一个或多个约束将来自至少两个不同请求的数据块动态聚集为分批;以及计算引擎组件,通信地联接至所述分批生成器,所述计算引擎组件在编排多个线程的单个线程中处理所述分批,以分担从存储器加载所述神经网络模型的负荷,从而提高数据吞吐量。根据又一个方面,提供了一种分批生成器,可包括:接收模块,以至少部分未知的定时,接收与待通过使用神经网络模型来处理的请求相关的数据,其中所述请求受一个或多个约束的限制;聚集模块,利用所述一个或多个约束中的至少之一,将所述数据中的至少一些动态聚集成分批;以及处理模块,利用编排多个线程的单个线程来处理所述分批,以分担从存储器加载所述神经网络模型的负荷,从而提高数据吞吐量。附图说明将参考本专利技术的实施方式,这些实施方式的示例可在附图中示出。附图旨在是说明性的,而并非进行限制。虽然本专利技术在这些实施方式的上下文中进行总体描述,但是应理解,这些描述不旨在将本专利技术的范围限制于这些具体实施方式。附图中的项目并未按比例绘制。图1示出了用于部署深度神经网络的典型架构配置。图2示出了根据本公开实施方式用于部署神经网络的架构配置。图3示出了根据本公开实施方式可用于部署神经网络的示例性服务器架构。图4示出了根据本公开实施方式用于部署神经网络以增加数据处理请求吞吐量的示例性分批方法。图5示出了根据本公开实施方式使用预处理的示例性分批方法。图6呈现了示出传统设定中在80ms内处理来自4个流的数据块的情况的图表。图7呈现了示出根据本公开实施方式,在分批设定中在80ms内处理来自20个流的数据块的情况的示例性图表。图8示出了根据本公开实施方式计算设备/信息处理系统的简化框图。具体实施方式在以下说明书中,出于解释的目的,阐述具体细节以提供对本专利技术的理解。然而,对于本领域技术人员将显而易见的是,本专利技术可以在无需这些细节的情况下实现。此外,本领域技术人员将意识到,如下所述,本专利技术实施方式可以以多种方式来实现,诸如有形计算机可读介质上的过程、装置、系统、设备或方法。附图所示的组件或模块是本专利技术示例性实施方式的说明,旨在避免混淆本专利技术。还应理解,在整个说明书中,组件可描述为能包括子单元的单独的功能单元,但是本领域技术人员将意识到,各组件或其部件可划分成单独的组件;或者可集成在一起,包括集成在单个系统或组件的内部。应注意,本文所讨论的功能或操作可实现为组件。组件可实现为软件、硬件或其组合。此外,附图内组件或系统之间的连接不旨在局限于直接连接。更确切地,这些组件之间的数据可被中间组件更改、重编格式或者以其他方式被改变。另外,可使用附加的连接或更少的连接。还应注意,术语“联接”、“连接”或“通信联接”应理解成包括直接连接、通过一个或多个中间设备实现的非直接连接以及无线连接。在说明书中,提及“一个实施方式”、“优选实施方式”、“实施方式”或“各实施方式”是指:结合实施方式所述的具体特征、结构、特性或功能包括在本专利技术的至少一个实施方式中,并且可存在于一个以上的实施方式中。另外,在本说明书中各处,上述短语的出现不一定全部参考相同的实施方式。在说明书中各处,某些术语的使用是为了示例,而不应解释成限制。服务、功能或资源不限于单个服务、功能或资源;这些术语的使用可表示可以为分布式或聚合式的一组相关服务、功能或资源。术语“包括(include)”、“包括(including)”、“包括(comprise)”和“包括(comprising)”应理解成开放式的术语,任意列出以下术语是示例而不表示限制于所述项目。本文所使用的任何标题仅出于组织的目的,而不应限制本说明书或权利要求书的范围。此外,本领域技术人员将意识到:(1)可选择性地执行某些步骤;(2)步骤不必限于本文所阐述的具体顺序;(3)可按不同的顺序来执行某些步骤;以及(4)可同时执行某些步骤。虽然当前专利公开中作为示例使用了神经网络部署和分类请求,但是应注意,本公开并非受此限制,本公开的诸方面可出于其他目的来应用或实施,包括但不限于其他的计算密集型问题。A.概述在包括广告投放、图像和视频识别、语音识别、语言处理、网页搜索等诸多领域中,深度神经网络变得日益重要。虽然对于很多重要任务,深度神经网络提供相对优良的准确度,但是大规模部署深度神经网络可能是昂贵的。这主要归因于伴随可能需要大量数学运算的大型神经网络的分类数据点的计算负荷。典型数据中心的架构使得大型神经网络的部署复杂化。随着请求经由因特网而进入,数据中心在许多服务器上对这些请求进行负载均衡。为了提供可靠服务,在服务器或网络故障的情况下,数据中心还应提供允许请求被重新路由的故障转移能力。此外,因特网服务倾向于要求低延迟响应以保持服务的交互性。这些要求促生了用于部署神经网络的现有系统,在现有系统中,各个请求由负载均衡器发送至执行计算的工作服务器。每个请求由单个线程提供服务,以控制延迟和弹性要求。从计算角度出发,使用处理器来为来自多个独立线程的多个请求提供服务并非最佳。这是因为,每个线程从存储器重复地加载相同的神经网络模型。在单个线程中为多个请求提供服务会更有效率,可编排线程池以分担从存储器加载神经网络模型的负荷,从而促使负重的再利用。换言之,通过去本文档来自技高网...
用于有效神经网络部署的系统和方法

【技术保护点】
用于提高数据处理请求的吞吐量的分批方法,所述方法包括:以至少部分未知的定时,接收与待通过使用神经网络模型来处理的请求相关的数据,所述请求受一个或多个约束的限制;利用所述一个或多个约束中的至少之一,将所述数据中的至少一些动态聚集成分批;以及利用编排多个线程的单个线程来处理所述分批,以分担从存储器加载所述神经网络模型的负荷,从而提高数据吞吐量。

【技术特征摘要】
2015.09.04 US 62/214,816;2016.07.13 US 15/209,4991.用于提高数据处理请求的吞吐量的分批方法,所述方法包括:以至少部分未知的定时,接收与待通过使用神经网络模型来处理的请求相关的数据,所述请求受一个或多个约束的限制;利用所述一个或多个约束中的至少之一,将所述数据中的至少一些动态聚集成分批;以及利用编排多个线程的单个线程来处理所述分批,以分担从存储器加载所述神经网络模型的负荷,从而提高数据吞吐量。2.根据权利要求1所述的方法,其中所述一个或多个约束包括延迟要求。3.根据权利要求2所述的方法,其中所述延迟要求包括以下要求中的至少之一:在所述请求中的上一包到达之后的预定时间量内处理请求;以及不向已经包含有来自所述请求的数据的分批中添加数据。4.根据权利要求2所述的方法,还包括:将来自对延迟敏感的两个或更多个请求的数据聚集为对延迟敏感的分批;以及将来自对延迟不敏感的两个或更多个请求的数据聚集为用于处理的面向吞吐量的分批,所述对延迟敏感的分批的处理优先级高于所述面向吞吐量的分批的处理优先级。5.根据权利要求1所述的方法,其中,所述分批包括至少一个状态请求。6.根据权利要求1所述的方法,还包括以下步骤:预数据所述数据,所述数据包括包;将经预处理的数据聚集为被所述多个用户中的至少两个用户共享的分批矩阵;以及向计算引擎提供所述分批矩阵。7.根据权利要求6所述的方法,还包括:维护分批列表,以及针对多个用户中的每一个,维护输入缓冲器和预处理缓冲器。8.根据权利要求7所述的方法,还包括执行以下步骤:将来自所述包的数据复制到与所述多个用户中的一个用户相关的输入缓冲器中;丢弃所述包;预处理所述输入缓冲器以获得第一组结果;以及将所述第一组结果放置到与所述多个用户中的所述一个用户相关的预处理缓冲器中。9.根据权利要求8所述的方法,其中,预处理所述输入缓冲器的步骤包括:将表示来自与所述多个用户中的所述一个用户相关的预处理缓冲器的一个图像和一段谱图的预定量数据传送至所述分批列表中的合格分批。10.根据权利要求8所述的方法,还包括:响应于在活跃用户上循环以填充所述分批列表,基于所述计算引擎的状态来判定是否向所述计算引擎提供一个或多个分批。11.根据权利要求10所述的方法,其中,判...

【专利技术属性】
技术研发人员:克里斯托弗·丰纳布赖恩·卡坦扎罗
申请(专利权)人:百度美国有限责任公司
类型:发明
国别省市:美国;US

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

1