CN117808099A - 请求处理方法、装置、电子设备及存储介质 - Google Patents
请求处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117808099A CN117808099A CN202311815502.5A CN202311815502A CN117808099A CN 117808099 A CN117808099 A CN 117808099A CN 202311815502 A CN202311815502 A CN 202311815502A CN 117808099 A CN117808099 A CN 117808099A
- Authority
- CN
- China
- Prior art keywords
- reasoning
- requests
- batch
- processing
- request
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 157
- 238000003860 storage Methods 0.000 title claims abstract description 32
- 238000003672 processing method Methods 0.000 title abstract description 31
- 238000007790 scraping Methods 0.000 claims abstract description 89
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000012423 maintenance Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 15
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 10
- 230000006870 function Effects 0.000 description 38
- 238000010586 diagram Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 11
- 239000000306 component Substances 0.000 description 9
- 238000013473 artificial intelligence Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供一种请求处理方法、装置、电子设备及存储介质,该方法包括:确定若干推理请求;对所述若干推理请求进行攒批次处理,得到批处理请求;从若干推理应用实例中确定目标推理应用实例;基于所述目标推理应用实例,对所述批处理请求进行推理处理。在本公开中,在基于若干推理应用实例对若干推理请求进行推理处理之前,统一对若干推理请求进行攒批次处理,在分布式场景下能够充分发挥攒批次的效果。
Description
技术领域
本公开涉及人工智能技术领域,尤其涉及一种请求处理方法、装置、电子设备及存储介质。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
AI推理指的是基于人工智能进行推理,具体的,使用人工智能对数据或者信息进行分析和推理,以得出结论或者预测未来的趋势。也即,AI推理是将输入的数据,通过训练好的AI模型产生有价值信息的过程。
攒批次是AI推理中的加速策略之一,一些AI模型的推理计算需要较长的时间,而且计算资源有限,如果每个请求都单独计算,会导致计算资源的浪费。攒批次可以将多个请求合并为一个批处理请求,然后一起计算,利用计算资源的并行性,提高了计算效率。此外,攒批次还可以减少网络通信次数。
然而,相关技术中的攒批次方式需要和推理模块相融合,共同部署为一个推理应用实例,即每个推理应用实例中都存在攒批次功能,但是在分布式场景下,推理请求会被均匀分发到每个推理应用实例中,并且推理请求是单个且离散的,则无法充分发挥攒批次的效果。
发明内容
有鉴于此,本公开的目的在于提出一种请求处理方法、装置、电子设备及存储介质,至少在一定程度上解决相关技术中的技术问题之一。
基于上述目的,本公开示例性实施例第一方面提供了一种请求处理方法,包括:
确定若干推理请求;
对所述若干推理请求进行攒批次处理,得到批处理请求;
从若干推理应用实例中确定目标推理应用实例;
基于所述目标推理应用实例,对所述批处理请求进行推理处理。
基于同一发明构思,本公开示例性实施例第二方面提供了一种请求处理装置,包括:
推理请求确定模块,被配置为确定若干推理请求;
批处理请求确定模块,被配置为对所述若干推理请求进行攒批次处理,得到批处理请求;
目标推理应用实例确定模块,被配置为从若干推理应用实例中确定目标推理应用实例;
批处理请求处理模块,被配置为基于所述目标推理应用实例,对所述批处理请求进行推理处理。
基于同一发明构思,本公开示例性实施例第三方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
基于同一发明构思,本公开示例性实施例第四方面提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如第一方面所述的方法。
从上面所述可以看出,本公开实施例提供的请求处理方法、装置、电子设备及存储介质,该方法包括:确定若干推理请求;对所述若干推理请求进行攒批次处理,得到批处理请求;从若干推理应用实例中确定目标推理应用实例;基于所述目标推理应用实例,对所述批处理请求进行推理处理。在本公开中,在基于若干推理应用实例对若干推理请求进行推理处理之前,统一对若干推理请求进行攒批次处理,在分布式场景下能够充分发挥攒批次的效果。
附图说明
为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为相关技术中的基于攒批次的请求处理方案的示意图;
图2为本公开示例性实施例提供的请求处理方法的一种应用场景示意图;
图3为本公开示例性实施例提供的请求处理方法的另一种应用场景示意图;
图4为本公开示例性实施例提供的请求处理方法的一种流程示意图;
图5为本公开示例性实施例提供的资源信息的确定方式的一种示意图;
图6为本公开示例性实施例提供的攒批次的确定方式的一种示意图;
图7为本公开示例性实施例提供的吞吐率的确定方式的一种示意图;
图8为本公开示例性实施例提供的目标推理应用实例的确定方式的一种示意图;
图9为本公开示例性实施例提供的请求处理装置的一种结构示意图;
图10为本公开示例性实施例提供的电子设备的一种结构示意图。
具体实施方式
可以理解的是,在使用本申请各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本申请所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本申请技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本申请的实现方式构成限定,其它满足相关法律法规的方式也可应用于本申请的实现方式中。
可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
为使本公开的目的、技术方案和优点更加清楚明白,下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。元素前的冠词“一”或“一个”不排除多个这种元素的存在。
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
如背景技术所述,AI推理指的是基于人工智能进行推理,具体的,使用人工智能对数据或者信息进行分析和推理,以得出结论或者预测未来的趋势。也即,AI推理是将输入的数据,通过训练好的AI模型产生有价值信息的过程。
攒批次是AI推理中的加速策略之一,一些AI模型的推理计算需要较长的时间,而且计算资源有限,如果每个请求都单独计算,会导致计算资源的浪费。攒批次可以将多个请求合并为一个批处理请求,然后一起计算,利用计算资源的并行性,提高了计算效率。此外,攒批次还可以减少网络通信次数。
然而,相关技术中的攒批次方式需要和推理模块相融合,共同部署为一个推理应用实例,即每个推理应用实例中都存在攒批次功能,但是在分布式场景下,推理请求会被均匀分发到每个推理应用实例中,并且推理请求是单个且离散的,则无法充分发挥攒批次的效果。
本公开的发明人发现,造成上述相关技术中在分布式场景下,无法充分发挥攒批次的效果的原因是:
具体的,参考图1,其为相关技术中的基于攒批次的请求处理方案的示意图。
其中,包括接入层和多个推理应用实例,每个推理应用实例中均包括攒批次模块和推理模块。每个推理应用实例中,攒批次模块作为该推理应用实例的一部分,与推理模块相融合,即攒批次模块和推理模块的代码紧密结合,共同部署。
接入层用于持续获取推理请求,并将这些推理请求发送至推理应用实例。其中,这些推理请求相互之间是独立且离散的。
每个推理应用实例均用于接收接入层发送的推理请求,每个推理应用实例均先通过自身的攒批次模块对这些推理请求进行攒批次处理,得到批处理请求,再通过自身的推理模块对批处理请求进行推理处理。其中,由于单个推理应用实例中的攒批次模块接收到的推理请求的数量有限,通常情况下,攒批次处理针对的推理请求的数量有限,往往不能得到最大攒批次数量,就会发送到推理模块进行推理处理,因此,无法充分发挥攒批次的效果。
为了解决上述问题,本公开提供了一种请求处理方案,具体包括:确定若干推理请求;对所述若干推理请求进行攒批次处理,得到批处理请求;从若干推理应用实例中确定目标推理应用实例;基于所述目标推理应用实例,对所述批处理请求进行推理处理。在本公开中,在基于若干推理应用实例对若干推理请求进行推理处理之前,统一对若干推理请求进行攒批次处理,在分布式场景下能够充分发挥攒批次的效果。
具体的,参考图2,其为本公开示例性实施例提供的请求处理方法的一种应用场景示意图。
其中,包括接入层、攒批次模块和多个推理应用实例。每个推理应用实例中均包括推理模块。
接入层用于持续获取推理请求,并将这些推理请求发送至攒批次模块。
攒批次模块用于接收接入层发送的推理请求,对这些推理请求进行攒批次处理,得到批处理请求,并将批处理请求发送至推理应用实例。
每个推理应用实例均用于接收攒批次模块发送的推理请求,每个推理应用实例均通过自身的推理模块对批处理请求进行推理处理。
其中,相较于相关技术中的单个推理应用实例中的攒批次模块接收到的推理请求的数量,本公开中的独立于推理应用实例的攒批次模块接收到的推理请求的数量较多,能够充分发挥攒批次的效果。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
参考图3,其为本公开示例性实施例提供的请求处理方法的另一种应用场景示意图。
该应用场景中,包括终端设备310和服务器320。其中,终端设备310和服务器320之间可通过有线或无线的通信网络连接,以实现数据交互。
终端设备310可以是靠近用户侧的具有数据传输、多媒体输入/输出功能的电子设备,包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、个人数字助理(personal digital assistant,PDA)或其它能够实现上述功能的电子设备等。该电子设备可以包括处理器和具有触控输入功能显示屏,该显示屏用于呈现图形用户界面,该图形用户界面可以显示应用界面,该处理器用于处理应用数据、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
服务器320可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一些示例性实施例中,请求处理方法可以运行于服务器320或者是终端设备310。
当请求处理方法运行于服务器320时,服务器320用于向终端设备310的用户提供请求处理服务,终端设备310中安装有与服务器320通信的客户端,用户可通过该客户端输入推理请求,客户端将推理请求发送给服务器320,服务器320确定若干推理请求;对所述若干推理请求进行攒批次处理,得到批处理请求;从若干推理应用实例中确定目标推理应用实例;基于所述目标推理应用实例,对所述批处理请求进行推理处理。服务器320还可以将推理处理后得到的推理结果发送给客户端,客户端向用户展示推理结果,以帮助用户了解结论或者预测未来的趋势。
当请求处理方法运行于服务器320时,该方法则可以基于云交互系统来实现与执行。
其中,云交互系统包括客户端设备和云应用服务器。
在一些示例性实施例中,云交互系统下可以运行各种云应用。以云应用为例,云应用是指以云计算为基础的应用方式。在云应用的运行模式下,应用程序的运行主体和应用画面呈现主体是分离的,应用中状态的控制方法的储存与运行是在云应用服务器上完成的,客户端设备的作用是用于数据的接收、发送以及应用画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行信息处理的为云端的云应用服务器。在进行应用时,玩家操作客户端设备向云应用服务器发送操作指令,云应用服务器根据操作指令运行应用,将应用画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出应用画面。
在上述实施例中,以请求处理方法运行于服务器320为例进行了说明,然而本公开不限于此,在一些示例性实施例中,请求处理方法还可以运行于终端设备310。
当请求处理方法运行于终端设备310时,终端设备310可以包括显示屏和处理器。终端设备310中安装有客户端,用户可以通过客户端输入推理请求,客户端将推理请求发送给处理器,处理器确定若干推理请求;对所述若干推理请求进行攒批次处理,得到批处理请求;从若干推理应用实例中确定目标推理应用实例;基于所述目标推理应用实例,对所述批处理请求进行推理处理。处理器还可以将推理处理后得到的推理结果发送给客户端,客户端通过显示屏向用户展示推理结果,以帮助用户了解结论或者预测未来的趋势。
当请求处理方法运行于终端设备310时,以应用为例,终端设备存储有应用程序并用于呈现应用画面。终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装应用程序并运行。该终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括应用画面,该处理器用于运行该应用、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
下面结合图2和图3的应用场景,来描述根据本公开示例性实施方式的请求处理方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
参考图4,其为本公开示例性实施例提供的请求处理方法的一种流程示意图。
请求处理方法,包括以下步骤:
步骤S410、确定若干推理请求。
本示例性实施例中,推理请求的确定方式,包括:
可以主动获取推理请求,也可以被动接收推理请求;
可以实时获取或接收推理请求,也可以按照预设的时间间隔获取或接收推理请求。
具体实施时,当请求处理方法运行于服务器时,服务器用于向终端设备的用户提供请求处理服务,终端设备中安装有与服务器通信的客户端,用户可通过该客户端输入推理请求,客户端将推理请求发送给服务器。
具体实施时,当请求处理方法运行于终端设备时,终端设备可以包括处理器。终端设备中安装有客户端,用户可以通过客户端输入推理请求,客户端将推理请求发送给处理器。
步骤S420、对所述若干推理请求进行攒批次处理,得到批处理请求。
本示例性实施例中,所述对所述若干推理请求进行攒批次处理,得到批处理请求,包括:
将所述若干推理请求合并为所述批处理请求。
本示例性实施例中,所述将所述若干推理请求合并为所述批处理请求,包括:
对所述若干推理请求进行封装,得到封装后的推理请求;
基于预设格式,对所述封装后的推理请求进行格式化,得到所述批处理请求。
本示例性实施例中,所述预设格式包括Json格式。
具体实施时,JSON(JavaScript Object Notation,JS对象简谱)是一种轻量级的数据交换格式。它采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言,可以在多种语言之间进行数据交换。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
具体实施时,作为一个具体示例:
若干推理请求的数据为SourceData;
批处理请求的数据格式为:
{"task_id":X,"data":"SourceDataX"},
{"task_id":X+1,"data":"SourceDataX+2"},
{"task_id":X+2,"data":"SourceDataX+3"}……。
其中,通过全局唯一的task_id来表示合并后的每个推理请求。
具体实施时,批处理请求,通过Http协议转发。
对应于上述批处理请求的数据格式,基于批处理请求得到并反馈的推理结果的数据格式为:
{"task_id":X,"data":"ResoutX"},
{"task_id":X+1,"data":"ResoutX+2"},
{"task_id":X+2,"data":"ResoutX+3"}……。
其中,对推理结果进行反向分解,反向分解的过程会根据task_id,从批量的推理结果中检索到唯一的ResoutX,并将ResoutX做为响应返回至特定的调用。
相关技术中的攒批次功能,通常一直开启并发挥作用,然而,攒批次功能通常会影响处理请求的时延,具体的,会增加处理请求的时延。因此,本公开提供有如下方式,动态调整是否开启攒批次功能,以实现在一些条件下,自动开启攒批次功能,将请求进行批处理,以达到最大的GPU利用率和吞吐量;而在另一些条件下,自动关闭攒批次功能,以达到最短的处理请求的时延。
本示例性实施例中,通过若干推理应用实例的实时吞吐率总和,控制是否开启攒批次功能,具体的:
确定所述若干推理应用实例的实时吞吐率总和;
响应于所述实时吞吐率总和大于预设的吞吐率总和阈值,对所述若干推理请求进行攒批次处理,得到所述批处理请求。
具体实施时,响应于所述实时吞吐率总和小于或等于所述吞吐率总和阈值,直接基于所述若干推理应用实例中的所述目标推理应用实例,对所述若干推理请求进行推理处理。
即,响应于所述实时吞吐率总和小于或等于所述吞吐率总和阈值,无需对所述若干推理请求进行攒批次处理。
具体实施时,吞吐率(RPS,Requests Per Second,表示每秒请求数)是服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。
吞吐率=总请求数/处理这些请求的总完成时间。
某个并发用户数下单位时间内能处理的最大的请求数,称之为最大吞吐率。
参考图6,具体实施时:
实现动态攒批次功能主要依赖于攒批次网关中的Traffic Controller&Analysis模块和Batch Process模块。所有的原始推理请求转发到攒批次网关后,首先由TrafficController&Analysis模块进行流量统计分析(即确定实时吞吐率,以下详述)。
然后由Batch Porcess模块,根据当前的RPS与所有推理Pod在不攒批次情况下能支撑的最大RPS(即吞吐率总和阈值)进行对比,判断是否需要攒批次。若当前RPS低于所有推理Pod在不攒批次情况下能支撑的最大RPS,则表示该RPS下,无需进行攒批次,推理Pod完全能满足当前的并发量,则直接将请求移交给负载均衡模块进行推理处理。若当前RPS高于所有推理Pod在不攒批次情况下能支撑的最大RPS,则进行攒批次处理,得到攒批次后推理请求(即批处理请求)。
本示例性实施例中,所述实时吞吐率总和的确定方式,包括:
将预设时间段划分为若干区间窗口;
确定所述若干推理应用实例中每个推理应用实例在每个所述区间窗口内对应的待处理请求数量;
对于每个所述推理应用实例,基于所述推理应用实例在所有所述区间窗口内对应的待处理请求数量的总和与所述预设时间段,得到所述推理应用实例对应的实时吞吐率;
基于所有所述推理应用实例对应的实时吞吐率,得到所述实时吞吐率总和。
参考图7,具体实施时:
将一段固定的时间Time划分成N个区间窗口Win1、Win2、Win3...Winn,每个窗口的时间大小为WinSize,Time=WinSize*N,每个区间有一个计数器,用于统计该时间窗口内的请求个数ReqCounti。随着时间的推移,每当有新窗口加入,则抛弃最老的区间窗口,使所有时间窗口永远保持在最新的N个。实时请求速率RPS(即吞吐率)的计算公式如下:
具体实施时:
确定所述若干推理应用实例中每个推理应用实例的实时吞吐率;
对所有所述推理应用实例的实时吞吐率进行求和,得到所述实时吞吐率总和。
本示例性实施例中,吞吐率总和阈值,即最大的RPS=根据业务场景预先配置的单个推理应用实例的最大RPS*副本数量。
通过上述示例性实施例,所有请求将由动态攒批次模块进行统一处理,在分布式场景下,有效提升攒批次的能力,并且通过依据RPS的动态攒批次功能,在低RPS下,可以自动关闭攒批次功能,以达到推理的最短时延。在高RPS时,自动开启攒批次功能,将请求进行批处理,以达到最大的GPU利用率和吞吐量。并且在这种统一攒批次的方案下,可以有效减少网络通信次数,而且对于推理实例,则只需要关注推理本身即可,也无需对代码的进行大量的改造,极大的降低了适配接入成本。
在上述本示例性实施例中,介绍了通过若干推理应用实例的实时吞吐率总和,控制是否开启攒批次功能的方式,然而本公开不限于此,在另一些示例性实施例中,还可以通过若干推理应用实例的图形处理器的平均利用率,控制是否开启攒批次功能,具体的:
确定所述若干推理应用实例的图形处理器的平均利用率;
响应于所述图形处理器的平均利用率大于预设的平均利用率阈值,对所述若干推理请求进行攒批次处理,得到所述批处理请求。
具体实施时,确定若干推理应用实例中每个推理应用实例的图形处理器(即GPU)的利用率,对所有推理应用实例的图形处理器的利用率进行求平均值,得到若干推理应用实例的图形处理器的平均利用率。
具体实施时,响应于所述图形处理器的平均利用率小于或等于所述平均利用率阈值,直接基于所述若干推理应用实例中的所述目标推理应用实例,对所述若干推理请求进行推理处理。
即,响应于所述图形处理器的平均利用率小于或等于所述平均利用率阈值,无需对所述若干推理请求进行攒批次处理。
作为一个具体示例,平均利用率阈值可以在60%至70%之间进行取值。
通过上述示例性实施例,所有请求将由动态攒批次模块进行统一处理,在分布式场景下,有效提升攒批次的能力,并且通过依据图形处理器的利用率的动态攒批次功能,在图形处理器的利用率较低的情况下,可以自动关闭攒批次功能,以达到推理的最短时延。在图形处理器的利用率较高时,自动开启攒批次功能,将请求进行批处理,以达到最大的GPU利用率和吞吐量。
步骤S430、从若干推理应用实例中确定目标推理应用实例。
在一些示例性实施例中,可以基于推理应用实例的实时待处理请求数量,从若干推理应用实例中确定目标推理应用实例,具体的:
确定所述若干推理应用实例中每个推理应用实例的实时待处理请求数量;
确定所述若干推理应用实例中对应的所述实时待处理请求数量最少的所述推理应用实例为所述目标推理应用实例。
具体实施时,确定所述若干推理应用实例中每个推理应用实例的实时待处理请求数量;
确定所述若干推理应用实例中对应的所述实时待处理请求数量最少的所述推理应用实例为所述目标推理应用实例。
参考图8,具体实施时:
动态负载均衡主要由攒批次网关中的LoadBalance模块实现,并且依赖于TargetInstace Pool模块。LoadBalance模块将会对请求进行路由决策,对Target Instance Pool中所有的目标实例进行统计,根据特定算法计算出当前正在处理的请求数最少的目标Pod实例,并将请求转发至该Pod IP。
具体转发步骤如下:
初始状态下,所有Target Instance的处理请求数都为0;
请求进入时,通过特定选择算法决策出当前处理请求数最少的Target Instance,并对该Target Instance的当前请求数加一;
将攒批次请求转发到该目标Pod中;
等待推理结果返回后,再对该Target Instance的当前请求数减一。
通过上述示例性实施例,根据后端服务的实时处理能力进行动态转发,可以更加合理地分配流量,减少负载不均衡和服务瓶颈问题,从而提高系统的整体性能和可靠性。
在另一些示例性实施例中,可以基于推理应用实例针对历史请求的响应时长,从若干推理应用实例中确定目标推理应用实例,具体的:
确定所述若干推理应用实例中每个推理应用实例针对历史请求的响应时长;
确定所述若干推理应用实例中对应的所述响应时长最短的所述推理应用实例为所述目标推理应用实例。
步骤S440、基于所述目标推理应用实例,对所述批处理请求进行推理处理。
具体实施时,推理处理指的是AI推理,即基于人工智能进行推理,具体的,使用人工智能对数据或者信息进行分析和推理,以得出结论或者预测未来的趋势。也即,AI推理是将输入的数据,通过训练好的AI模型产生有价值信息的过程。
在上述示例性实施例中,需要分别确定推理应用实例的实时吞吐率、图形处理器的利用率、实时待处理请求数量和针对历史请求的响应时长。将推理应用实例的实时吞吐率、图形处理器的利用率、实时待处理请求数量和针对历史请求的响应时长,称为推理应用实例的状态信息。为了提高确定推理应用实例的状态信息的效率,本公开提供了如下方式,以统一获取并维护推理应用实例的状态信息:
本示例性实施例中,状态信息的获取方式,包括:
获取所述若干推理应用实例的状态信息,并将所述状态信息上传至状态信息维护模块;其中,所述状态信息中包括所述实时吞吐率总和、所述图形处理器的平均利用率、所述实时待处理请求数量或所述针对历史请求的响应时长;
从所述状态信息维护模块中确定所述状态信息。
本示例性实施例中,状态信息的维护方式,包括:
响应于针对所述状态信息的变化事件,将变化后的状态信息上传至所述状态信息维护模块;
删除所述状态信息维护模块中所述变化后的状态信息对应的变化前的状态信息。
参考图5,具体实施时,以在k8s(全称Kubernetes,是一套开源的用于管理容器化应用的资源编排系统)中实施本公开为例进行说明:
在k8s中,用于处理请求的推理应用实例为Pod。Pod是可以创建和管理kubernetes计算的最小可部署单元,由一个或者多个容器组成,同时也是kubernetes调度的基本粒度,可以申请一定量的资源,例如2核CPU,4G内存。
确定推理应用实例的状态信息的功能即服务发现功能,实现服务发现功能主要依赖于攒批次网关中的EndPointsSlice Informer模块和Target Instance Pool模块。
其中,EndpointsSlice是Kubernetes Service资源的子资源,用于表示Service所代表的后端Pod的网络终点信息。
Kubernetes Service是一个抽象层,用于将一组Pod表示为一个网络服务,它为这些Pod提供了一个固定的IP地址和一个DNS名称。
IP是Kubernetes中分配给Pod的IP地址。每个Pod都有一个唯一的IP地址,用于在Kubernetes集群内部进行通信,且Pod IP在Pod更新重建会重新分配。
Informer是Kubernetes API客户端库中的一种组件,用于监视集群中的Pod的状态信息的变化。当Pod的状态信息发生变化时,Informer会自动接收到相关通知,并更新本地缓存中的Pod的状态信息。
Target Instance Pool(即状态信息维护模块)中存储了当前所有推理Pod的IP(Pod的唯一标识,用于区分不同的Pod)和状态信息。
具体的:在k8s中,推理应用实例为Pod,推理应用实例的状态信息包括每个Pod的实时吞吐率、图形处理器的利用率、实时待处理请求数量和针对历史请求的响应时长(同时,通过Pod的IP,区分不同的Pod),会由其所在节点的kubelet组件上报到k8s APIServer。在攒批次网关中的EndPointsSlice Informer模块会基于观察者模式,通过与Kubernetes API Server交互并订阅EndPointsSlice的事件,EndPointsSlice中包含了所有推理Pod的IP和状态信息,每当Pod IP或者状态更新时,会产生实时的事件。EndPointsSlice Informer会根据事件和EndPointsSlice的信息,将Pod IP和状态,作为Target Instance信息维护到Target Instance Pool模块,Target Instance Pool中存储了当前所有推理Pod的IP和状态信息。
其中,k8s API Server是Kubernetes集群中的一个核心组件,是Kubernetes控制平面的一部分。它提供了Kubernetes集群的API接口,是集群内部的通信中心,负责接收来自客户端或其他Kubernetes组件的API请求,并将这些请求转化为对底层资源对象的操作。
具体实施时,资源变化事件指的是,Pod的IP和/或状态的变化。
通过上述示例性实施例,可以实现自动的推理实例的发现,自动同步推理实例PodIP,减少人工配置成本,以及在Pod更新重建时,可以实现无缝实时的更新。
从上面所述可以看出,本公开实施例提供的请求处理方法,包括:确定若干推理请求;对所述若干推理请求进行攒批次处理,得到批处理请求;从若干推理应用实例中确定目标推理应用实例,基于所述目标推理应用实例,对所述批处理请求进行推理处理。在本公开中,在基于若干推理应用实例对若干推理请求进行推理处理之前,统一对若干推理请求进行攒批次处理,在分布式场景下能够充分发挥攒批次的效果。
进一步的,对推理应用实例的Pod IP进行实时更新同步,通过k8sInformer的方式,监听k8s EndPointsSlice资源的变化,来实时同步推理Pod的IP信息。在这种情况下,可以实现自动的推理实例的发现,自动同步推理实例Pod IP,减少人工配置成本,以及在Pod更新重建时,可以实现无缝实时的更新。
实时统计当前的推理请求速率,如果当前请求速率低于所有推理应用实例在不攒批次情况下能支撑的最大RPS,则自动关闭攒批次功能。若当前请求速率高于所有推理应用实例在不攒批次情况下能支撑的最大RPS,则自动开启攒批次,对请求进行批次组合。在这种情况下,所有请求将由动态攒批次模块进行统一处理,在分布式场景下,有效提升攒批次的能力,并且通过依据RPS的动态攒批次功能,在低RPS下,可以自动关闭攒批次功能,以达到推理的最短时延。在高RPS时,自动开启攒批次功能,将请求进行批处理,以达到最大的GPU利用率和吞吐量。并且在这种统一攒批次的方案下,可以有效减少网络通信次数,而且对于推理实例,则只需要关注推理本身即可,也无需对代码的进行大量的改造,极大的降低了适配接入成本。
将经过攒批次处理后的请求,依据每个推理实例当前的负载情况,将批处理请求转发到最空闲的推理实例中,若空闲程度相同,则对相同的推理实例采用轮训的策略进行转发。在这种情况下,根据后端服务的实时处理能力进行动态转发,可以更加合理地分配流量,减少负载不均衡和服务瓶颈问题,从而提高系统的整体性能和可靠性。
需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种请求处理装置。
参考图9,其为本公开示例性实施例提供的请求处理装置的一种结构示意图。
请求处理装置,包括以下模块:
推理请求确定模块910,被配置为确定若干推理请求;
批处理请求确定模块920,被配置为对所述若干推理请求进行攒批次处理,得到批处理请求;
目标推理应用实例确定模块930,被配置为从若干推理应用实例中确定目标推理应用实例;
批处理请求处理模块940,被配置为基于所述目标推理应用实例,对所述批处理请求进行推理处理。
在一些示例性实施例中,目标推理应用实例确定模块930,具体被配置为:
确定所述若干推理应用实例的资源信息;
基于所述资源信息,从所述若干推理应用实例中确定所述目标推理应用实例。
在一些示例性实施例中,目标推理应用实例确定模块930,具体被配置为:
获取所述资源信息,并将所述资源信息上传至资源信息维护模块;
从所述资源信息维护模块中确定所述资源信息。
在一些示例性实施例中,目标推理应用实例确定模块930,具体被配置为:
响应于针对所述资源信息的变化事件,将变化后的资源信息上传至所述资源信息维护模块;
删除所述资源信息维护模块中所述变化后的资源信息对应的变化前的资源信息。
在一些示例性实施例中,所述资源信息中包括实时待处理请求数量,目标推理应用实例确定模块930,具体被配置为:
确定所述若干推理应用实例中对应的所述实时待处理请求数量最少的所述推理应用实例为所述目标推理应用实例。
在一些示例性实施例中,批处理请求确定模块920,具体被配置为:
基于所述资源信息,对所述若干推理请求进行攒批次处理,得到所述批处理请求。
在一些示例性实施例中,所述资源信息中包括实时吞吐率总和,批处理请求确定模块920,具体被配置为:
响应于所述实时吞吐率总和大于吞吐率总和阈值,对所述若干推理请求进行攒批次处理,得到所述批处理请求。
在一些示例性实施例中,批处理请求确定模块920,具体被配置为:
将预设时间段划分为若干区间窗口;
确定所述若干推理应用实例中每个推理应用实例在每个所述区间窗口内对应的待处理请求数量;
对于每个所述推理应用实例,基于所述推理应用实例在所有所述区间窗口内对应的待处理请求数量的总和与所述预设时间段,得到所述推理应用实例对应的实时吞吐率;
基于所有所述推理应用实例对应的实时吞吐率,得到所述实时吞吐率总和。
在一些示例性实施例中,批处理请求确定模块920,具体被配置为:
将所述若干推理请求合并为所述批处理请求。
在一些示例性实施例中,批处理请求确定模块920,具体被配置为:
对所述若干推理请求进行封装,得到封装后的推理请求;
基于预设格式,对所述封装后的推理请求进行格式化,得到所述批处理请求。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的请求处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的请求处理方法。
图10示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的请求处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所述存储器1020存储有所述处理器1010可执行的机器可读指令,当电子设备运行时,所述处理器1010与所述存储器1020之间通过总线1030通信,使得所述处理器1010在运行时执行以下指令:
确定若干推理请求;
对所述若干推理请求进行攒批次处理,得到批处理请求;
从若干推理应用实例中确定目标推理应用实例;
基于所述目标推理应用实例,对所述批处理请求进行推理处理。
一种可能的实施方式中,处理器1010执行的指令中,所述从若干推理应用实例中确定目标推理应用实例,包括:
确定所述若干推理应用实例的资源信息;
基于所述资源信息,从所述若干推理应用实例中确定所述目标推理应用实例。
一种可能的实施方式中,处理器1010执行的指令中,所述确定所述若干推理应用实例的资源信息,包括:
获取所述资源信息,并将所述资源信息上传至资源信息维护模块;
从所述资源信息维护模块中确定所述资源信息。
一种可能的实施方式中,处理器1010执行的指令中,所述获取所述资源信息,并将所述资源信息上传至资源信息维护模块,包括:
响应于针对所述资源信息的变化事件,将变化后的资源信息上传至所述资源信息维护模块;
删除所述资源信息维护模块中所述变化后的资源信息对应的变化前的资源信息。
一种可能的实施方式中,处理器1010执行的指令中,所述资源信息中包括实时待处理请求数量,
所述基于所述资源信息,从所述若干推理应用实例中确定所述目标推理应用实例,包括:
确定所述若干推理应用实例中对应的所述实时待处理请求数量最少的所述推理应用实例为所述目标推理应用实例。
一种可能的实施方式中,处理器1010执行的指令中,所述对所述若干推理请求进行攒批次处理,得到批处理请求,包括:
基于所述资源信息,对所述若干推理请求进行攒批次处理,得到所述批处理请求。
一种可能的实施方式中,处理器1010执行的指令中,所述资源信息中包括实时吞吐率总和,
所述基于所述资源信息,对所述若干推理请求进行攒批次处理,得到所述批处理请求,包括:
响应于所述实时吞吐率总和大于吞吐率总和阈值,对所述若干推理请求进行攒批次处理,得到所述批处理请求。
一种可能的实施方式中,处理器1010执行的指令中,所述实时吞吐率总和的确定方式,包括:
将预设时间段划分为若干区间窗口;
确定所述若干推理应用实例中每个推理应用实例在每个所述区间窗口内对应的待处理请求数量;
对于每个所述推理应用实例,基于所述推理应用实例在所有所述区间窗口内对应的待处理请求数量的总和与所述预设时间段,得到所述推理应用实例对应的实时吞吐率;
基于所有所述推理应用实例对应的实时吞吐率,得到所述实时吞吐率总和。
一种可能的实施方式中,处理器1010执行的指令中,所述对所述若干推理请求进行攒批次处理,得到批处理请求,包括:
将所述若干推理请求合并为所述批处理请求。
一种可能的实施方式中,处理器1010执行的指令中,所述将所述若干推理请求合并为所述批处理请求,包括:
对所述若干推理请求进行封装,得到封装后的推理请求;
基于预设格式,对所述封装后的推理请求进行格式化,得到所述批处理请求。
从上面所述可以看出,在本公开中,在基于若干推理应用实例对若干推理请求进行推理处理之前,统一对若干推理请求进行攒批次处理,在分布式场景下能够充分发挥攒批次的效果。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的请求处理方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述非暂态计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上示例性方法部分中任一实施例所述的请求处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例所述的请求处理方法相对应的,本公开还提供了一种计算机程序产品,其包括计算机程序指令。在一些实施例中,所述计算机程序指令可以由计算机的一个或多个处理器执行以使得所述计算机和/或所述处理器执行所述的请求处理方法。对应于所述的请求处理方法各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使所述计算机和/或所述处理器执行如上任一实施例所述的请求处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
本领域技术技术人员知道,本公开的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本公开还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
Claims (12)
1.一种请求处理方法,其特征在于,包括:
确定若干推理请求;
对所述若干推理请求进行攒批次处理,得到批处理请求;
从若干推理应用实例中确定目标推理应用实例;
基于所述目标推理应用实例,对所述批处理请求进行推理处理。
2.根据权利要求1所述的方法,其特征在于,所述对所述若干推理请求进行攒批次处理,得到批处理请求,包括:
确定所述若干推理应用实例的实时吞吐率总和;
响应于所述实时吞吐率总和大于预设的吞吐率总和阈值,对所述若干推理请求进行攒批次处理,得到所述批处理请求。
3.根据权利要求2所述的方法,其特征在于,所述实时吞吐率总和的确定方式,包括:
将预设时间段划分为若干区间窗口;
确定所述若干推理应用实例中每个推理应用实例在每个所述区间窗口内对应的待处理请求数量;
对于每个所述推理应用实例,基于所述推理应用实例在所有所述区间窗口内对应的待处理请求数量的总和与所述预设时间段,得到所述推理应用实例对应的实时吞吐率;
基于所有所述推理应用实例对应的实时吞吐率,得到所述实时吞吐率总和。
4.根据权利要求1所述的方法,其特征在于,所述对所述若干推理请求进行攒批次处理,得到批处理请求,包括:
确定所述若干推理应用实例的图形处理器的平均利用率;
响应于所述图形处理器的平均利用率大于预设的平均利用率阈值,对所述若干推理请求进行攒批次处理,得到所述批处理请求。
5.根据权利要求1所述的方法,其特征在于,所述从若干推理应用实例中确定目标推理应用实例,包括:
确定所述若干推理应用实例中每个推理应用实例的实时待处理请求数量;
确定所述若干推理应用实例中对应的所述实时待处理请求数量最少的所述推理应用实例为所述目标推理应用实例。
6.根据权利要求1所述的方法,其特征在于,所述从若干推理应用实例中确定目标推理应用实例,包括:
确定所述若干推理应用实例中每个推理应用实例针对历史请求的响应时长;
确定所述若干推理应用实例中对应的所述响应时长最短的所述推理应用实例为所述目标推理应用实例。
7.根据权利要求2至6任意一项所述的方法,其特征在于,所述方法还包括:
获取所述若干推理应用实例的状态信息,并将所述状态信息上传至状态信息维护模块;其中,所述状态信息中包括所述实时吞吐率总和、所述图形处理器的平均利用率、所述实时待处理请求数量或所述针对历史请求的响应时长;
从所述状态信息维护模块中确定所述状态信息。
8.根据权利要求1所述的方法,其特征在于,所述对所述若干推理请求进行攒批次处理,得到批处理请求,包括:
将所述若干推理请求合并为所述批处理请求。
9.根据权利要求8所述的方法,其特征在于,所述将所述若干推理请求合并为所述批处理请求,包括:
对所述若干推理请求进行封装,得到封装后的推理请求;
基于预设格式,对所述封装后的推理请求进行格式化,得到所述批处理请求。
10.一种请求处理装置,其特征在于,包括:
推理请求确定模块,被配置为确定若干推理请求;
批处理请求确定模块,被配置为对所述若干推理请求进行攒批次处理,得到批处理请求;
目标推理应用实例确定模块,被配置为从若干推理应用实例中确定目标推理应用实例;
批处理请求处理模块,被配置为基于所述目标推理应用实例,对所述批处理请求进行推理处理。
11.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至9任意一项所述的方法。
12.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行权利要求1至9任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311815502.5A CN117808099A (zh) | 2023-12-26 | 2023-12-26 | 请求处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311815502.5A CN117808099A (zh) | 2023-12-26 | 2023-12-26 | 请求处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117808099A true CN117808099A (zh) | 2024-04-02 |
Family
ID=90426353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311815502.5A Pending CN117808099A (zh) | 2023-12-26 | 2023-12-26 | 请求处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117808099A (zh) |
-
2023
- 2023-12-26 CN CN202311815502.5A patent/CN117808099A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11233846B2 (en) | Edge compute systems and methods | |
CA2848747C (en) | Remote process execution management | |
JP7386990B2 (ja) | ビデオ再生方法、装置、機器及びコンピュータプログラム | |
US20120149464A1 (en) | Load balancing between general purpose processors and graphics processors | |
US20130073601A1 (en) | Remote process execution management | |
US10044576B2 (en) | Estimation of power consumption of individual websites | |
JP2015515660A (ja) | ゲートウェイサーバ又はサービスを介してクラウドコンピューティングサービスストレージにアクセスする複数の媒体装置 | |
US11327811B2 (en) | Distributed computing mesh | |
CN117971499A (zh) | 资源配置方法、装置、电子设备和存储介质 | |
CN118678991A (zh) | 基于人工智能的网络存储游戏分配 | |
Wang et al. | Intelligent edge learning for personalized crowdsourced livecast: Challenges, opportunities, and solutions | |
CN117808099A (zh) | 请求处理方法、装置、电子设备及存储介质 | |
US9628401B2 (en) | Software product instance placement | |
US11630700B2 (en) | Local edge device | |
US11720414B2 (en) | Parallel execution controller for partitioned segments of a data model | |
BR112013026571B1 (pt) | Sistema e método para diminuir a latência para aplicativos servidos por meio do pré- processamento antecipado e mídia | |
CN114791847A (zh) | 用于部署视觉资源的方法、设备和程序产品 | |
US11650845B2 (en) | Computation sharing among devices using device OS clustering | |
CN117667411A (zh) | 模型任务的分配方法、装置、电子设备及存储介质 | |
Shah et al. | Smart mobile TV in the technological phones integrating with cloud based service social media service | |
US20230177420A1 (en) | Method and system for managing statement events | |
US20240103903A1 (en) | Dynamic pod priority inference utilizing service mesh telemetry data | |
US20230198916A1 (en) | Optimization of internet data resources | |
US20240168775A1 (en) | System and method for automatically monitoring application performance | |
Li et al. | Let's depart together: Efficient play request dispatching in cloud gaming |
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 |