CN112508768B - 单算子多模型流水线推理方法、系统、电子设备及介质 - Google Patents
单算子多模型流水线推理方法、系统、电子设备及介质 Download PDFInfo
- Publication number
- CN112508768B CN112508768B CN202011529387.1A CN202011529387A CN112508768B CN 112508768 B CN112508768 B CN 112508768B CN 202011529387 A CN202011529387 A CN 202011529387A CN 112508768 B CN112508768 B CN 112508768B
- Authority
- CN
- China
- Prior art keywords
- execution engine
- node
- graph execution
- data
- channel
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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
Abstract
本公开公开了单算子多模型流水线推理方法、系统、电子设备及介质,涉及深度学习、自然语言处理以及智能云等人工智能领域,所述方法可包括:构建由基于远程过程调用协议的微服务框架和图执行引擎组成的单算子多模型流水线推理系统;利用该系统完成对于用户请求的处理;其中,基于远程过程调用协议的微服务框架用于将用户请求发送给图执行引擎,并获取图执行引擎返回的处理结果,返回给用户;图执行引擎用于利用操作节点对用户请求进行处理,并将处理结果返回给基于远程过程调用协议的微服务框架,图执行引擎中包括多个操作节点,且其中的至少两个操作节点分别对应于不同的模型服务。
Description
技术领域
本公开涉及人工智能技术领域,特别涉及深度学习、自然语言处理以及智能云等领域的单算子多模型流水线推理方法、系统、电子设备及介质。
背景技术
目前,主流的深度学习开源框架都提供了推理服务和部署能力,支持单算子单模型的版本管理和部署。
但在实际应用中,很多场景下需要多个深度学习模型配合起来才能解决一个复杂问题。以视频分类为例,往往需要根据视频解码、音频分析、文字分析、视频分析等多个模型提供的特征才能实现最终的分类。这种场景下,单算子单模型的框架则不再适用。
发明内容
本公开提供了单算子多模型流水线推理方法、系统、电子设备及介质。
一种单算子多模型流水线推理方法,包括:
构建由基于远程过程调用协议的微服务框架和图执行引擎组成的单算子多模型流水线推理系统;
利用所述单算子多模型流水线推理系统完成对于用户请求的处理;其中,所述基于远程过程调用协议的微服务框架用于将所述用户请求发送给所述图执行引擎,并获取所述图执行引擎返回的处理结果,返回给用户;所述图执行引擎用于利用操作节点对所述用户请求进行处理,并将处理结果返回给所述基于远程过程调用协议的微服务框架,所述图执行引擎中包括M个操作节点,M为大于一的正整数,且其中的至少两个操作节点分别对应于不同的模型服务。
一种单算子多模型流水线推理系统,包括:基于远程过程调用协议的微服务框架以及图执行引擎;
所述基于远程过程调用协议的微服务框架,用于将用户请求发送给所述图执行引擎,并获取所述图执行引擎返回的处理结果,返回给用户;
所述图执行引擎,用于利用操作节点对所述用户请求进行处理,并将处理结果返回给所述基于远程过程调用协议的微服务框架,其中,所述图执行引擎中包括M个操作节点,M为大于一的正整数,且其中的至少两个操作节点分别对应于不同的模型服务。
一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如以上所述的方法。
一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行如以上所述的方法。
一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如以上所述的方法。
上述公开中的一个实施例具有如下优点或有益效果:提出了一种基于微服务的单算子多模型流水线推理架构,填补了深度学习推理在复杂应用场景落地的技术空白,具有广泛的应用前景和发展潜力等。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开所述单算子多模型流水线推理方法实施例的流程图;
图2为本公开所述单进程单图执行引擎的工作模式示意图;
图3为本公开所述多进程多图执行引擎的工作模式示意图;
图4为本公开所述通道的实现方式示意图;
图5为本公开所述图执行引擎的实现方式示意图;
图6为本公开所述主节点和各节点间的交互方式示意图;
图7为本公开所述单算子多模型流水线推理系统实施例70的组成结构示意图;
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
另外,应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为本公开所述单算子多模型流水线推理方法实施例的流程图。如图1所示,包括以下具体实现方式。
在步骤101中,构建由基于远程过程调用协议(RPC,Remote Procedure Call)的微服务框架(RPC Servicer)和图执行引擎组成的单算子多模型流水线推理系统。
在步骤102中,利用所构建的单算子多模型流水线推理系统完成对于用户请求的处理;其中,RPC Servicer用于将用户请求发送给图执行引擎,并获取图执行引擎返回的处理结果,返回给用户;图执行引擎用于利用操作节点(OP)对用户请求进行处理,并将处理结果返回给RPC Servicer,图执行引擎中包括M个OP,M为大于一的正整数,且其中的至少两个OP分别对应于不同的模型服务,即对应于不同的单模型服务。
可以看出,上述方法实施例中提出了一种基于微服务的单算子多模型流水线推理架构,从而填补了深度学习推理在复杂应用场景落地的技术空白,具有广泛的应用前景和发展潜力等。
RPC Servicer可实现网络交互的统一管理,将获取自用户的用户请求交由图执行引擎进行处理,图执行引擎将处理后得到的处理结果返回给RPC Servicer,RPC Servicer进一步将其返回给用户。
本公开所述单算子多模型流水线推理系统可支持单进程单图执行引擎的工作模式以及多进程多图执行引擎的工作模式。
图2为本公开所述单进程单图执行引擎的工作模式示意图。图3为本公开所述多进程多图执行引擎的工作模式示意图。图2所示单进程单图执行引擎的工作模式下,可进一步支持自动批处理功能,而图3所示多进程多图执行引擎的工作模式下,可不支持自动批处理功能。具体采用哪种工作模式可根据实际需要而定。
通过提供多种工作模式,可提升具体实现的灵活性,从而可适应不同场景的具体需求等。
图执行引擎中可包括M个OP,M为大于一的正整数,具体取值可根据实际需要而定,且其中的至少两个OP分别对应于不同的模型服务。
各OP可分别对应于一个输入通道以及至少一个输出通道。并且,相连接的任意两个OP之间共享一个通道,所共享的通道为两个OP中的上游OP的输出通道,为两个OP中的下游OP的输入通道。另外,各OP可分别根据从对应的输入通道中获取的数据进行预定处理,并将处理结果输出到对应的输出通道中。
通道是OP之间共享数据的数据结构,可以理解为一个缓冲队列。通常来说,每个OP分别对应于一个输入通道以及一个或多个输出通道。另外,一个通道中可以包含来自多个OP的输出数据,一个通道中的数据也可以作为多个OP的输入数据。
通道可以采用队列数据结构进行流量控制。图4为本公开所述通道的实现方式示意图。假设OP1和OP2的输出数据均存放到图4所示通道中,并且,通道中的数据可作为OP3和OP4的输入数据,当OP1和OP2的输出数据均存放到输入缓存中后,则会将相关数据如图4中所示的OP1输出数据3和OP2输出数据3从输入缓存放入内部队列中,进一步地,还会将数据从内部队列放入输出缓存中,对于输出缓存中的数据,只有当OP3和OP4均使用后,才会将其删除,比如,OP3已使用但OP4还未使用,则不会删除。
在编译期,图执行引擎负责分析整个图的依赖关系,并声明通道等。在执行期,每个OP可以通过进程或线程独立运行。
整个图执行引擎是一个完整的服务,通过RPC来访问,用户请求进入图执行引擎服务后会产生一个请求id,处理结果会通过请求id进行对应的返回。
另外,当上游OP待传输给下游OP的数据量大于预定阈值时,上游OP可将待传输数据采用随机存取存储器(RAM,Random Access Memory)数据块(DB,Data Block)外存进行全局存储,并在与下游OP共享的通道中传输待传输数据对应的索引信息,如索引的键,以便下游OP根据索引的键从随机存取存储器数据块中获取待传输数据。所述阈值的具体取值可根据实际需要而定。通过上述处理,可提升OP之间的数据传输效率等。
基于上述介绍,图5为本公开所述图执行引擎的实现方式示意图。其中,OP可使用中央处理器(CPU,Central Processing Unit)和/或图形处理器(GPU,GraphicsProcessing Unit)进行预测。
OP可根据从对应的输入通道中获取的数据进行预定处理,如访问一个提供的模型服务,并将处理结果存放到对应的输出通道中。
另外,OP也可支持用户自定义,包括预处理、处理和后处理三个函数都可以由用户继承和实现,从实现上来说非常灵活方便。
对于用户自定义的OP,可不对应于模型服务,而是用户自己定义的一些简单的操作,如一些简单的判断等,如图5中所示的OP4即可为用户自定义的OP。
另外,OP还可支持自动批处理功能。如可通过获取对应的输入通道中的数据条数,自行实现自动批处理功能,从而提升了数据处理效率等。优选地,各OP可采用相同的批处理机制。如何进行自动批处理为现有技术。
针对各OP,图执行引擎还可进一步执行以下之一或全部:动态调整OP的并发数,动态调整流水线服务(Pipeline Server)实例数。
比如,可预先分别确定出各OP的并发数,并按照相应的并发数启动OP,如图5中所示的OP1,图执行引擎还可根据实际处理情况,动态地调整OP的并发数。Pipeline Server实例数类似。
比如,当某个通道中的数据出现累积时,可通过增大对应OP的并发数和/或增大Pipeline Server实例数来解决。
对于任一OP来说,其最大并发数concurrency可为:concurrency=单OP耗时*期望每秒请求数(QPS,Queries Per Second)。其中,单OP耗时即为该OP的耗时,如何获取为现有技术,期望QPS可为图执行引擎中耗时最多的OP的QPS。
当流量过大时,可通过增加Pipeline Server实例分流。对于Pipeline Server端资源受限制情况,若是内存或CPU资源受限制,可在另一台机器上增加实例,若是GPU资源受限制,可在另一张卡上增加实例。
另外,对于GPU OP,即使用GPU进行预测的OP,处理速度可能受GPU时分复用影响,即同张卡上同时刻运行多个程序,所有程序速度均下降,为提高处理速度,可进行加卡(即GPU卡)操作,此外,由于Python全局解释器锁(GIL,Global Interpreter Lock)的限制,可使用进程版OP,Python是一种跨平台的计算机程序设计语言。
通过上述处理,可提升OP处理速度,提升数据处理效率,减少处理延迟,提升吞吐量等。
另外,单算子多模型场景下,不同模型服务的吞吐和计算能力等不同,通过合理调整不同模型服务的资源配比等,可实现单算子多模型服务的资源最优化。
本公开所述单算子多模型流水线推理系统可采用云端部署方式,如可采用容器编排引擎(Kubernetes)系统实现实例的编排和部署等。
另外,Kubernetes系统中的主节点(Master Node)还可根据获取到的各节点的预定性能指标,实现各节点上的容器荚(pod)资源的动态扩缩容。
图6为本公开所述主节点和各节点间的交互方式示意图。如图6所示,主节点可通过巡检机制(Control Loop)获取各节点上的预定性能指标,从而获知各节点上的各pod资源使用情况,实现自动监控,并可采用pod水平弹性伸缩(HPA,Horizontal PodAutoscaling)机制,根据获取到的性能指标及配置策略等,实现各节点上的pod资源的动态扩缩容。这样,当业务流量增加或下降时,系统会自动完成扩容或缩容操作,调整pod资源使用量,以达到最佳的资源利用率等。
所述预定性能指标具体包括哪些指标可根据实际需要而定。比如,可包括但不限于CPU使用率、内存使用量、显存使用量、平响、GPU利用率、内存使用量、显存使用量、平响、流水线推理的吞吐量等。
以上是关于方法实施例的介绍,以下通过系统实施例,对本公开所述方案进行进一步说明。
图7为本公开所述单算子多模型流水线推理系统实施例70的组成结构示意图。如图7所示,包括:RPC Servicer701以及图执行引擎702。
RPC Servicer 701,用于将用户请求发送给图执行引擎702,并获取图执行引擎702返回的处理结果,返回给用户。
图执行引擎702,用于利用OP对用户请求进行处理,并将处理结果返回给RPCServicer 701,其中,图执行引擎702中包括M个OP,M为大于一的正整数,且其中的至少两个OP分别对应于不同的模型服务。
RPC Servicer 701可实现网络交互的统一管理,将获取自用户的用户请求交由图执行引擎702进行处理,图执行引擎702将处理后得到的处理结果返回给RPC Servicer701,RPC Servicer 701进一步将其返回给用户。
本实施例所述单算子多模型流水线推理系统70可支持单进程单图执行引擎的工作模式以及多进程多图执行引擎的工作模式,分别参见图2和图3所示。
图执行引擎702中可包括M个OP,M为大于一的正整数,具体取值可根据实际需要而定,且其中的至少两个OP分别对应于不同的模型服务。
各OP可分别对应于一个输入通道以及至少一个输出通道。并且,相连接的任意两个OP之间共享一个通道,所共享的通道为两个OP中的上游OP的输出通道,为两个OP中的下游OP的输入通道。另外,各OP可分别根据从对应的输入通道中获取的数据进行预定处理,并将处理结果输出到对应的输出通道中。
通道是OP之间共享数据的数据结构,可以理解为一个缓冲队列。通常来说,每个OP分别对应于一个输入通道以及一个或多个输出通道。另外,一个通道中可以包含来自多个OP的输出数据,一个通道中的数据也可以作为多个OP的输入数据。
当上游OP待传输给下游OP的数据量大于预定阈值时,上游OP还可将待传输数据采用随机存取存储器数据块外存进行全局存储,并在与下游OP共享的通道中传输待传输数据对应的索引信息,相应地,下游OP可根据索引信息从随机存取存储器数据块中获取待传输数据。所述阈值的具体取值可根据实际需要而定。
各OP还可支持用户自定义,和/或,支持自动批处理功能。
另外,图执行引擎702还可针对各OP,执行以下之一或全部:动态调整OP的并发数,动态调整流水线服务实例数。
本实施例所述单算子多模型流水线推理系统70可采用云端部署方式,如可采用Kubernetes系统实现实例的编排和部署。
Kubernetes系统中的主节点还可根据获取到的各节点的预定性能指标进行各节点上的pod资源的动态扩缩容。
比如,主节点可通过巡检机制获取各节点上的预定性能指标,从而获知各节点上的各pod资源使用情况,实现自动监控,并可采用HPA机制,根据获取到的性能指标及配置策略等,实现各节点上的pod资源的动态扩缩容。
图7所示系统实施例的具体工作流程请参照前述方法实施例中的相关说明,不再赘述。
总之,采用本公开系统实施例所述方案,提出了一种基于微服务的单算子多模型流水线推理架构,从而填补了深度学习推理在复杂应用场景落地的技术空白,具有广泛的应用前景和发展潜力等。
本公开所述方案可应用于人工智能领域,特别涉及深度学习、自然语言处理以及智能云等领域。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术,人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术,人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如本公开所述的方法。例如,在一些实施例中,本公开所述的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行本公开所述的方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开所述的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (17)
1.一种单算子多模型流水线推理方法,包括:
构建由基于远程过程调用协议的微服务框架和图执行引擎组成的单算子多模型流水线推理系统;
利用所述单算子多模型流水线推理系统完成对于用户请求的处理;其中,所述基于远程过程调用协议的微服务框架用于将所述用户请求发送给所述图执行引擎,并获取所述图执行引擎返回的处理结果,返回给用户;所述图执行引擎用于利用操作节点对所述用户请求进行处理,并将处理结果返回给所述基于远程过程调用协议的微服务框架,所述图执行引擎中包括M个操作节点,M为大于一的正整数,且其中的至少两个操作节点分别对应于不同的模型服务;其中,
各操作节点分别对应于一个输入通道以及至少一个输出通道;相连接的任意两个操作节点之间共享一个通道,所共享的通道为两个操作节点中的上游操作节点的输出通道,为两个操作节点中的下游操作节点的输入通道;
各操作节点分别用于根据从对应的输入通道中获取的数据进行预定处理,并将处理结果输出到对应的输出通道中;
其中,所述输入通道和输出通道均为缓冲队列。
2.根据权利要求1所述的方法,其中,
所述单算子多模型流水线推理系统支持单进程单图执行引擎的工作模式以及多进程多图执行引擎的工作模式。
3.根据权利要求1所述的方法,其中,
当所述上游操作节点待传输给所述下游操作节点的数据量大于预定阈值时,所述上游操作节点进一步用于将待传输数据采用随机存取存储器数据块外存进行全局存储,并在与所述下游操作节点共享的通道中传输所述待传输数据对应的索引信息,以便所述下游操作节点根据所述索引信息从所述随机存取存储器数据块中获取所述待传输数据。
4.根据权利要求1所述的方法,其中,
各操作节点分别支持以下之一或全部:用户自定义,自动批处理功能。
5.根据权利要求1所述的方法,其中,
针对各操作节点,所述图执行引擎进一步用于执行以下之一或全部:动态调整所述操作节点的并发数,动态调整流水线服务实例数。
6.根据权利要求1所述的方法,其中,
所述单算子多模型流水线推理系统采用云端部署方式,其中,采用容器编排引擎系统实现实例的编排和部署。
7.根据权利要求6所述的方法,其中,
所述容器编排引擎系统中的主节点用于根据获取到的各节点的预定性能指标进行各节点上的容器荚资源的动态扩缩容。
8.一种单算子多模型流水线推理系统,包括:基于远程过程调用协议的微服务框架以及图执行引擎;
所述基于远程过程调用协议的微服务框架,用于将用户请求发送给所述图执行引擎,并获取所述图执行引擎返回的处理结果,返回给用户;
所述图执行引擎,用于利用操作节点对所述用户请求进行处理,并将处理结果返回给所述基于远程过程调用协议的微服务框架,其中,所述图执行引擎中包括M个操作节点,M为大于一的正整数,且其中的至少两个操作节点分别对应于不同的模型服务;其中
各操作节点分别对应于一个输入通道以及至少一个输出通道;相连接的任意两个操作节点之间共享一个通道,所共享的通道为两个操作节点中的上游操作节点的输出通道,为两个操作节点中的下游操作节点的输入通道;
各操作节点分别用于根据从对应的输入通道中获取的数据进行预定处理,并将处理结果输出到对应的输出通道中;
其中,所述输入通道和输出通道均为缓冲队列。
9.根据权利要求8所述的系统,其中,
所述单算子多模型流水线推理系统支持单进程单图执行引擎的工作模式以及多进程多图执行引擎的工作模式。
10.根据权利要求8所述的系统,其中,
所述上游操作节点进一步用于,当所述上游操作节点待传输给所述下游操作节点的数据量大于预定阈值时,将待传输数据采用随机存取存储器数据块外存进行全局存储,并在与所述下游操作节点共享的通道中传输所述待传输数据对应的索引信息;
所述下游操作节点进一步用于,根据所述索引信息从所述随机存取存储器数据块中获取所述待传输数据。
11.根据权利要求8所述的系统,其中,
各操作节点分别支持以下之一或全部:用户自定义,自动批处理功能。
12.根据权利要求8所述的系统,其中,
所述图执行引擎进一步用于,针对各操作节点,执行以下之一或全部:动态调整所述操作节点的并发数,动态调整流水线服务实例数。
13.根据权利要求8所述的系统,其中,
所述单算子多模型流水线推理系统采用云端部署方式,其中,采用容器编排引擎系统实现实例的编排和部署。
14.根据权利要求13所述的系统,其中,
所述容器编排引擎系统中的主节点用于根据获取到的各节点的预定性能指标进行各节点上的容器荚资源的动态扩缩容。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行权利要求1-7中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011529387.1A CN112508768B (zh) | 2020-12-22 | 2020-12-22 | 单算子多模型流水线推理方法、系统、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011529387.1A CN112508768B (zh) | 2020-12-22 | 2020-12-22 | 单算子多模型流水线推理方法、系统、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112508768A CN112508768A (zh) | 2021-03-16 |
CN112508768B true CN112508768B (zh) | 2022-05-27 |
Family
ID=74922020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011529387.1A Active CN112508768B (zh) | 2020-12-22 | 2020-12-22 | 单算子多模型流水线推理方法、系统、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112508768B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968610B (zh) * | 2021-04-30 | 2023-05-12 | 华为技术有限公司 | 数据处理的方法、多媒体框架及相关设备 |
CN114647472B (zh) * | 2022-03-24 | 2023-08-15 | 北京字跳网络技术有限公司 | 图片处理方法、装置、设备、存储介质和程序产品 |
CN115242648A (zh) * | 2022-07-19 | 2022-10-25 | 北京百度网讯科技有限公司 | 扩缩容判别模型训练方法和算子扩缩容方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106453288A (zh) * | 2016-09-29 | 2017-02-22 | 上海和付信息技术有限公司 | 一种支持异步模式的分布式微服务框架系统及其实现方法 |
CN107924406A (zh) * | 2015-08-05 | 2018-04-17 | 起元技术有限责任公司 | 选择用于对实时数据流执行的查询 |
CN109086409A (zh) * | 2018-08-02 | 2018-12-25 | 泰康保险集团股份有限公司 | 微服务数据处理方法、装置、电子设备及计算机可读介质 |
CN110554856A (zh) * | 2019-09-06 | 2019-12-10 | 航天科工广信智能技术有限公司 | 一种微服务治理系统 |
CN111082961A (zh) * | 2019-05-28 | 2020-04-28 | 中兴通讯股份有限公司 | 域间的数据交互方法及装置 |
CN111400000A (zh) * | 2020-03-09 | 2020-07-10 | 百度在线网络技术(北京)有限公司 | 网络请求处理方法、装置、设备和存储介质 |
CN111858001A (zh) * | 2020-07-15 | 2020-10-30 | 武汉众邦银行股份有限公司 | 一种基于服务于微服务架构系统的工作流处理方法 |
CN112015521A (zh) * | 2020-09-30 | 2020-12-01 | 北京百度网讯科技有限公司 | 推理服务的配置方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200394566A1 (en) * | 2019-06-14 | 2020-12-17 | Open Text Sa Ulc | Systems and methods for lightweight cloud-based machine learning model service |
-
2020
- 2020-12-22 CN CN202011529387.1A patent/CN112508768B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107924406A (zh) * | 2015-08-05 | 2018-04-17 | 起元技术有限责任公司 | 选择用于对实时数据流执行的查询 |
CN106453288A (zh) * | 2016-09-29 | 2017-02-22 | 上海和付信息技术有限公司 | 一种支持异步模式的分布式微服务框架系统及其实现方法 |
CN109086409A (zh) * | 2018-08-02 | 2018-12-25 | 泰康保险集团股份有限公司 | 微服务数据处理方法、装置、电子设备及计算机可读介质 |
CN111082961A (zh) * | 2019-05-28 | 2020-04-28 | 中兴通讯股份有限公司 | 域间的数据交互方法及装置 |
CN110554856A (zh) * | 2019-09-06 | 2019-12-10 | 航天科工广信智能技术有限公司 | 一种微服务治理系统 |
CN111400000A (zh) * | 2020-03-09 | 2020-07-10 | 百度在线网络技术(北京)有限公司 | 网络请求处理方法、装置、设备和存储介质 |
CN111858001A (zh) * | 2020-07-15 | 2020-10-30 | 武汉众邦银行股份有限公司 | 一种基于服务于微服务架构系统的工作流处理方法 |
CN112015521A (zh) * | 2020-09-30 | 2020-12-01 | 北京百度网讯科技有限公司 | 推理服务的配置方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
微服务体系结构实现框架综述;辛园园,钮俊,谢志军,张开乐,毛昕怡;《计算机工程与应用》;20181001;第10-17页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112508768A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112508768B (zh) | 单算子多模型流水线推理方法、系统、电子设备及介质 | |
CN113961351A (zh) | 深度学习模型的分布式训练方法、装置、设备及存储介质 | |
CN111738446A (zh) | 深度学习推理引擎的调度方法、装置、设备和介质 | |
CN112561079A (zh) | 分布式的模型训练装置、方法及计算机程序产品 | |
CN114911598A (zh) | 任务调度方法、装置、设备以及存储介质 | |
CN112966200A (zh) | 一种服务降级方法和渲染服务器 | |
CN113778644B (zh) | 任务的处理方法、装置、设备及存储介质 | |
CN112527509B (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN112817660A (zh) | 扩展小程序能力的方法、装置、设备以及存储介质 | |
US11640319B1 (en) | Task processing method and apparatus, electronic device and storage medium | |
US20220391780A1 (en) | Method of federated learning, electronic device, and storage medium | |
CN114265692A (zh) | 服务调度方法、装置、设备以及存储介质 | |
CN114327918B (zh) | 调整资源量的方法、装置、电子设备和存储介质 | |
CN113986497B (zh) | 基于多租户技术的队列调度方法、装置及系统 | |
CN115794262A (zh) | 任务处理方法、装置、设备、存储介质以及程序产品 | |
CN114879832A (zh) | 用于运算装置的功耗控制方法、装置、芯片、设备及介质 | |
CN115081607A (zh) | 基于嵌入算子的反向计算方法、装置、设备以及存储介质 | |
CN113971083A (zh) | 任务调度方法、装置、设备、介质及产品 | |
CN114386577A (zh) | 用于执行深度学习模型的方法、设备和存储介质 | |
CN113971082A (zh) | 任务调度方法、装置、设备、介质及产品 | |
CN114139605A (zh) | 分布式的模型训练方法、系统、设备以及存储介质 | |
CN114095564A (zh) | 数据处理方法及装置、设备和介质 | |
CN113408632A (zh) | 提高图像分类准确性的方法、装置、电子设备及存储介质 | |
CN113762510B (zh) | 针对目标模型的数据处理方法、装置、电子设备和介质 | |
CN114115789B (zh) | 芯片插件化实现方法、装置、电子设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |