CN111124671B - 批推理动态等待方法、服务器和计算机可读存储介质 - Google Patents
批推理动态等待方法、服务器和计算机可读存储介质 Download PDFInfo
- Publication number
- CN111124671B CN111124671B CN201911256119.4A CN201911256119A CN111124671B CN 111124671 B CN111124671 B CN 111124671B CN 201911256119 A CN201911256119 A CN 201911256119A CN 111124671 B CN111124671 B CN 111124671B
- Authority
- CN
- China
- Prior art keywords
- thread
- sub
- batch
- batch reasoning
- micro
- 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
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 230000002787 reinforcement Effects 0.000 claims abstract description 49
- 238000012549 training Methods 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 15
- 238000013145 classification model Methods 0.000 claims description 7
- 230000009471 action Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000001934 delay Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 210000004899 c-terminal region Anatomy 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/34—Adaptation of a single recogniser for parallel processing, e.g. by use of multiple processors or cloud computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
本发明实施例提供了一种批推理动态等待方法、服务器和计算机可读存储介质,该方法包括:主线程接收用户请求;主线程将请求添加到当前请求队列并存入字典;主线程等待第一子线程确定存在满足进行批推理的条件,再返回微服务的批推理结果;由主线程从字典中读取并向客户端返回批推理结果。本发明在是否进行批推理的条件判断中,由第一子线程获取第二子线程维护的一个实时更新的最长等待时间ti,该最长等待时间是利用强化学习实现的实时更新的最长等待时间,通过这种方式,本发明实现了在闲时用户请求并发量较小的时段减少请求的延迟而在忙时用户请求量并发较大的时段能够支持更多的请求。
Description
技术领域
本发明涉及深度学习技术领域,特别是涉及一种服务器的批推理动态等待方法、服务器和计算机可读存储介质。
背景技术
随着BERT、ERNIE、XLNET等大规模语言模型的问世,各种自然语言技术(文本分类、用户画像、知识图谱、命名实体识别、语义匹配、中文分词等)都逐渐基于此类模型,业务精度也随之不断提升。由于BERT等语言模型中模型的参数越多,其在各个NLP(NaturalLanguage Processing,自然语言处理)任务上的精度也越高,进而对大规模语言模型应用落地的要求也越来越高。
由于图形处理器(英语:Graphics Processing Unit,缩写:GPU)在大规模语言模型推理中的应用,批推理可以有效增加吞吐量,降低延迟。相比于传统的框架级别和云端方案,微服务级别的批推理更加灵活,可以有针对性的对具体业务进行优化。
但是类似语音这样的线上业务请求量在一天或一个稳定周期内的分布往往并不均匀,在高峰时段的请求量和在低谷时段请求量相比,差别往往较大。因此为避免批推理在低谷时段过分等待引起的延迟过高,和在高峰时段等待不足引起的请求次数过多,亟需一种动态调整等待时间的方法。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种服务器的批推理动态等待方法、服务器和计算机可读存储介质。
为了解决上述问题,本发明实施例公开了一种服务器的批推理动态等待方法,服务器上设置有相互通信的主线程和包括第一子线程、第二子线程在内的若干个子线程,该方法包括:
主线程接收客户端发送的用户请求;
主线程将请求添加到当前请求队列并存入字典;
主线程等待第一子线程先确定当前请求队列符合进行批推理的条件,再返回当前请求队列中所有请求对应的微服务的批推理结果;其中,批推理的条件和微服务参数相关,第一子线程将批推理结果存入字典;
主线程从字典中读取并向客户端返回批推理结果。
进一步地,微服务参数包括队列长度,符合进行批推理的条件包括:当前请求队列的长度等于预设的队列最大长度。
进一步地,微服务参数包括等待时间,符合进行批推理的条件包括:当前请求队列的等待时间达到最长等待时间ti;其中,第一子线程获取第二子线程维护的一个实时更新的最长等待时间ti。
进一步地,第一子线程获取第二子线程维护的一个实时更新的最长等待时间ti包括:
第二子线程按预设的第二时间周期对主线程前N次请求队列各自对应的最长等待时间ti进行编码,利用已经训练生成的强化学习模型计算、更新并存储一个实时更新的最长等待时间;
第一子线程获取第二子线程维护的最长等待时间,用于是否进行批推理的判断。
进一步地,方法还包括:
按预设的第一时间周期对主线程前N次请求队列各自对应的最长等待时间ti进行编码,利用训练阶段的强化学习模型来对编码后的最长等待时间ti进行更新;
利用更新后的N个最长等待时间来训练强化学习模型,最终生成一个完成训练的强化学习模型。
进一步地,利用更新后N个的最长等待时间来训练强化学习模型包括:强化学习模型接收更新后的N个最长等待时间、请求延迟和并发量作为训练的输入,输出每个状态下选择的最长等待时间和该最长等待时间对应的概率;
则第二子线程利用已经训练生成的强化学习模型计算、更新并存储最新的最长等待时间,包括:第二子线程利用已经训练生成的强化学习模型计算出当前状态下概率最大的最长等待时间,对该概率最大的最长等待时间进行更新和存储,作为最新的最长等待时间。
进一步地,主线程等待第一子线程先确定当前请求队列符合进行批推理的条件,再返回当前请求队列中所有请求对应的微服务的批推理结果,包括:
主线程等待第一子线程返回的批推理结果;其中,第一子线程先确定当前请求队列符合进行批推理的条件,接着将当前请求队列中请求发送给各个模型对应的微服务由各个微服务单独进行批推理,然后获取所有微服务的批推理结果,根据请求对批推理结果进行拆分并将拆分后的批推理结果存入词典。
进一步地,第一子线程将当前请求队列中请求发送给各个模型对应的微服务由各个微服务单独进行批推理包括:
第一子线程将当前请求队列中所有请求合并为一批请求,然后将该一批请求并发发送给各个模型对应的微服务由各个微服务单独进行批推理。
进一步地,微服务包括:分类模型微服务、实体模型微服务、问答模型微服务、匹配模型微服务中的任意一个或多个。
本发明实施例还公开了一种服务器,服务器上设置有主线程,主线程可与包括第一子线程、第二子线程在内的若干个子线程进行通信,其特征在于,主线程包括:
接收单元,用于接收客户端发送的用户请求;
添加单元,用于将请求添加到当前请求队列并存入字典;
等待单元,用于等待第一子线程先确定当前请求队列符合进行批推理的条件,再返回当前请求队列中所有请求对应的微服务的批推理结果;其中,批推理的条件和微服务参数相关,第一子线程将批推理结果存入字典;
返回单元,用于从字典中读取并向客户端返回批推理结果。
本发明实施例还公开了一种服务器,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一项所述的批推理动态等待方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述的批推理动态等待方法的步骤。
本发明实施例包括以下优点:
以车载场景的语音交互请求为例,闲时(凌晨三点到五点之间)的语音交互请求量为忙时(下午五点到七点之间)的请求量的1/30,因此为避免批推理在低谷时段过分等待引起的延迟过高,和在高峰时段等待不足引起的请求次数过多,亟需一种动态调整的方法。本发明在是否进行批推理的条件判断中,由第一子线程获取第二子线程维护的一个实时更新的最长等待时间ti,根据该实时更新的最长等待时间ti确定如何进行批推理。通常在闲时用户请求并发量较小的时段,请求相对稀疏。为了在单位时间内执行更多次数的推理来减少延迟,实时更新的最长等待时间ti需要短一些,吞吐量不会因为短暂的等待导致下降。而在忙时用户请求并发量较大的时段,请求相对密集。为了在一次执行时推理更多的请求来增大吞吐量,实时的最长等待时间ti需相对长一些,由于机器性能的限制,延迟也会因执行推理的次数较少而获得正向收益。第二子线程通过强化学习维护了一个实时更新的最长等待时间ti,而第一子线程获取该实时更新的最长等待时间ti确定如何进行批推理,进而返回批推理结果给主线程,最终实现了批推理的动态调整,兼顾了闲时和忙时的请求处理,进而提升了C端用户使用语音请求的体验。
附图说明
图1是本发明的一种服务器的批推理动态等待方法实施例的步骤流程图;
图2是本发明的车载语音请求量在不同时段的对比示意图;
图3是本发明的微服务级别的批推理示意图;
图4是本发明的一种服务器实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例的核心构思之一在于,参照图1,示出了本发明的一种服务器的批推理动态等待方法实施例的步骤流程图。其中,服务器上设置有相互通信的主线程和包括第一子线程、第二子线程在内的若干个子线程,该方法具体可以包括如下步骤:
S1,主线程接收客户端发送的用户请求;
S2,主线程将请求添加到当前请求队列并存入字典;
S3,主线程等待第一子线程先确定当前请求队列符合进行批推理的条件,再返回当前请求队列中所有请求对应的微服务的批推理结果;其中,批推理的条件和微服务参数相关,第一子线程将批推理结果存入字典;
S4,主线程从字典中读取并向客户端返回批推理结果。
如图2所示,以车载场景的语音交互请求为例,闲时(凌晨三点到五点之间)的车载语音请求量为忙时(下午五点到七点之间)的请求量的1/30。
在用户使用平均时长相同的情况下,用户(语音)请求的并发量与请求量成正比。在闲时的用户请求并发量约为在忙时的用户请求并发量的1/30。
因此,在闲时用户请求并发量较小的时段,如何减少请求的延迟是闲时的主要优化策略;而在忙时用户请求量并发较大的时段,如何支持更多的请求并发量是忙时的主要优化策略。
本发明提出的服务器的批推理动态等待方法,通过以下各个步骤来具体阐述:
S1中,乘坐在车辆内部的用户可以通过车载中控屏幕或者其他车内可交互设备上设置的语音助手或者AI助手,来发出语音请求。车载中控屏幕或者其他车内可交互设备可以作为客户端,和服务器进行通信,完成用户(语音)请求的处理。服务器通过主线程接收客户端发送的用户请求。
S2中,主线程将请求添加到当前请求队列。并且主线程将请求存入字典,字典用来保存请求和批推理结果。本发明中主线程上至少设置有一个工作队列,该工作队列包括了若干个请求队列。
S3中,主线程等待第一子线程返回批推理结果。其中,子线程先进行是否进行批推理的条件判断,然后将当前请求队列中所有请求对应的微服务的批推理结果存储到字典并跟主线程通信。具体地,批推理的条件和微服务参数相关,可以根据具体需要利用微服务参数来设置批推理的条件,并且第一子线程将批推理结果存入字典。
在请求量稀疏的闲时(例如凌晨三点到五点之间),并发量较小。较小的实时最长等待时间ti可以在单位时间内执行更多次数的推理来减少延迟,且吞吐量不会因为短暂的等待导致下降。
而在请求密集的忙时(例如下午五点到七点之间),并发量较大。较长的实时最长等待时间ti可以在一次执行时推理更多的请求从而增大吞吐量,由于GPU机器性能的被更合理的利用,请求的延迟因为执行推理的次数较少从而获得正向收益。
具体地,可以设置批推理的条件和当前请求队列的等待时间有关,例如,判断当前请求队列的等待时间是否达到最长等待时间ti;其中,第一子线程获取第二子线程维护的一个实时更新的最长等待时间ti。
S4中,主线程从字典中读取批推理的结果,然后向客户端返回批推理结果。
本发明中,通常在闲时用户请求并发量较小的时段,请求相对稀疏。为了在单位时间内执行更多次数的推理来减少延迟,实时更新的最长等待时间ti需要短一些,吞吐量不会因为短暂的等待导致下降。而在忙时用户请求并发量较大的时段,请求相对密集。为了在一次执行时推理更多的请求来增大吞吐量,实时的最长等待时间ti需相对长一些,由于机器性能的限制,延迟也会因执行推理的次数较少而获得正向收益。
微服务参数包括队列长度和等待时间。可以预先依据微服务参数设定一个队列最大长度或最长等待时间中的任意一个或多个。
将由客户端发送的用户请求添加到当前请求队列后,在达到最长等待时间之前,当前请求队列长度不超过队列最大长度,则请求可以入队。若达到最长等待时间或队列长度达到最大,将当前请求队列中的所有请求进行批推理,并对结果进行分发。
即符合进行批推理的条件可以是:当前请求队列的长度等于预设的队列最大长度。
符合进行批推理的条件还可以是:当前请求队列的等待时间达到最长等待时间ti;其中,第一子线程获取第二子线程维护的一个实时更新的最长等待时间ti。
设置队列最大长度过大,会导致机器内存不足,过小会导致批量任务吞吐量下降。队列最大长度的设置范围应考虑线上实际请求频率和机器内存大小。
设置最长等待时间过长,会导致服务延迟变慢,过短会导致批量任务吞吐量下降。最长等待时间的设置范围应考虑线上实际请求频率和处理本身时长。本方案中,最长等待时间ti是实时并且可变的,但是该最长等待时间ti也有下限tmin和上限tmax。即最长等待时间ti是用于判断是否批推理的参数,并且该参数满足tmin<ti<tmax的关系。
进一步地,如图3所示,图3介绍了微服务级别的批推理,该图中一个工作队列包括了至少两个请求队列,第一个请求队列对应的等待时间ti的最大值是t1,即当图中左侧的请求队列包括3个请求,该请求队列的等待时间达到t1时,即可以根据等待时间进行批推理;类似地,图中右侧的请求队列包括6个请求,该请求队列的队列最大长度达到Imax,也可以根据队列长度进行批推理。
本发明可以根据实际需要设置队列最大长度和最长等待时间,在此不做限制。
下面进一步阐述第一子线程获取第二子线程维护的一个实时更新的最长等待时间ti的过程:
第二子线程定期对主线程前N次请求队列各自对应的最长等待时间ti进行编码,利用已经训练生成的强化学习模型计算、更新并存储一个实时更新的最长等待时间;此处定期可以是按照预设的第二时间周期来进行。
第一子线程获取第二子线程维护的最长等待时间,用于是否进行批推理的判断。
即第二子线程可以先利用强化学习进行训练,获得一个训练生成的强化学习模型;然后应用该训练生成的强化学习模型进行推理。
强化学习是从一种让Agent(智能主体)自动连续做出决策的机器学习方法。其原理可归纳如下:
在强化学习中,学习者是一个能够自动做出决策的Agent,它通过感知自身所处的状态(state)与环境来产生动作(Action),而不同状态下的不同动作会带给Agent不同的奖赏(Reward)。强化学习的目标就是通过一系列的试错后找到一种最优的策略(Policy),使得经过一系列的动作(Actions)后,所获得的总的奖赏(Reward)最大。
强化学习的Agent主要由三部分构成,分别是:感受器用来感知当前所处状态(State);决策模型f根据当前状态下不同动作(Action)的奖赏(Reward)来选择策略与环境交互;动作器(Action)执行这些动作。
本发明使用基于Actor-Critic的强化学习算法应用在模型中作为示例,当然,本发明也可以的强化学习模型也可以使用其他强化学习算法,包括:Sarsa、Q-Learning、Policy Gradients、Monte-carlo learning和Deep-Q-Network在内的任意一种算法,在此不做任何限定。
具体地,在基于Actor-Critic的动态等待强化学习模型中:
状态(State):对主线程前N次请求队列各自对应的最长等待时间ti进行编码(可通过某个子线程的记录获得),编码权重由模型训练获得。
动作(Action):最长等待时间[-n,-n+1,-n+2,...,0,...,+n-2,+n-1,+n]毫秒(ms),需满足最长等待时间ti在最长等待时间下限tmin和最长等待时间上限tmax之间。
反馈函数(Reward):v(a|s)=f(throughput,latency),如:v(a|s)=throughput-w*latency,w为正数,随业务变化。
损失函数(Loss):∑logπ(a|s,θ)v,其中π(a|s,θ)为输出的可能分布,v是反馈函数。
其中,π是由参数θ确定的策略,a是动作,s是状态,v是由参数w确定的反馈函数。
Actor-Critic算法分为Actor和Critic两部分,Actor基于概率选择一个当前的最长等待时间ti,Critic基于Actor的选择评判得分,Actor根据Critic的评分修改选择本次选的最长等待时间ti的概率。
进一步地,批推理动态等待方法还包括第二子线程训练生成强化学习模型的步骤,包括:
定期对主线程前N次请求队列各自对应的最长等待时间ti进行编码,利用训练阶段的强化学习模型来对编码后的最长等待时间ti进行更新;其中,此处的定期可以是预设的第一时间周期,和推理阶段使用的第二时间周期区分开。
利用更新后的N个最长等待时间来训练强化学习模型,最终生成一个完成训练的强化学习模型。
具体地,在训练阶段:强化学习模型接收更新后的N个最长等待时间、请求延迟和并发量作为训练的输入,Actor根据当前策略选择一个最长等待时间,Critic基于Actor的选择评判得分,Actor根据Critic的评分修改所选择的最长等待时间的概率,调整策略。不断迭代后,Actor得到每一个状态下选择每个最长等待时间的合理概率,Critic完善每个状态下选择每一个等待时间的评分值。
在推理阶段,第二子线程利用已经训练生成的强化学习模型计算、更新并存储一个实时更新的最长等待时间,包括:第二子线程利用已经训练生成的强化学习模型计算出当前状态下概率最大的最长等待时间,对该概率最大的最长等待时间进行更新和存储,作为最新的最长等待时间。完成训练的强化学习模型接收主线程前N次请求队列各自对应的最长等待时间、请求延迟和并发量作为推理阶段的输入,然后输出当前状态下概率最大的最长等待时间作为计算结果,然后更新并存储该计算结果作为最新的最长等待时间。
本发明中,微服务包括:分类模型微服务、实体模型微服务、问答模型微服务、匹配模型微服务中的任意一个或多个。接下来通过单个微服务的批推理和多个微服务的批推理来进行对比说明:
在单个微服务进行批推理的情况中,第一子线程将用户请求发送给对应的微服务,此次以分类模型微服务为例,分类模型微服务接收到请求后,对多个请求进行合并再进行统一的批推理。
在多个微服务批推理的情况中,以微服务包括:分类模型微服务、实体模型微服务、问答模型微服务和匹配模型微服务为例,第一子线程将当前请求队列中所有请求合并为一批请求,同时并发发送到不同模型的微服务中,由各个微服务单独进行批推理。
上述两者的区别在于,在单个微服务进行批推理的情况中单个微服务的所有逻辑都在这个微服务中;而在在多个微服务批推理的情况中,多个微服务的合并、分发逻辑单独启用一个微服务去处理,而各个模型微服务只保留批处理逻辑。这种批推理方法可以将端到端的等待时间缩为最短,理论最大值等待时间缩短为单个微服务批推理等待时间的一半。
本发明中,主线程接收用户请求,将请求添加到当前请求队列和字典,接收到第一子线程通知后从字典中读取批推理结果并分发。
第一子线程获取第二子线程维护的最长等待时间,在满足批推理的条件后对当前请求队列的所有请求进行批推理,将批推理结果写入字典并通知主线程。其中字典用来保存请求与批推理结果。
第二子线程定期编码主线程前N次请求队列各自对应的最长等待时间ti,在强化学习模型训练阶段,计算、更新、存储当前的最长等待时间,而在推理阶段,将主线程前N次请求队列各自对应的最长等待时间的编码输入训练好的强化学习网络,利用已经训练生成的强化学习模型计算、更新并存储最新的最长等待时间,用于第一子线程的调用。
综上所述,本发明在是否进行批推理的条件判断中,由第一子线程获取第二子线程维护的一个实时更新的最长等待时间ti,通常在闲时用户请求并发量较小的时段,请求相对稀疏。为了在单位时间内执行更多次数的推理来减少延迟,实时更新的最长等待时间ti需要短一些,吞吐量不会因为短暂的等待导致下降。而在忙时用户请求并发量较大的时段,请求相对密集。为了在一次执行时推理更多的请求来增大吞吐量,实时的最长等待时间ti需相对长一些,由于机器性能的限制,延迟也会因执行推理的次数较少而获得正向收益。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明的一种服务器实施例的结构框图,服务器上设置有主线程,主线程可与包括第一子线程、第二子线程在内的若干个子线程进行通信,该服务器中主线程具体可以包括:
接收单元,用于接收客户端发送的用户请求;
添加单元,用于将请求添加到当前请求队列并存入字典;
等待单元,用于等待第一子线程先确定当前请求队列符合进行批推理的条件,再返回当前请求队列中所有请求对应的微服务的批推理结果;其中,批推理的条件和微服务参数相关,第一子线程将批推理结果存入字典;
返回单元,用于从字典中读取并向客户端返回批推理结果。
具体地,微服务参数包括队列长度,第一子线程用于确定当前请求队列符合进行批推理的条件包括:第一子线程确定当前请求队列的长度等于预设的队列最大长度。
具体地,微服务参数包括等待时间,第一子线程用于确定当前请求队列的等待时间达到最长等待时间ti;其中,第一子线程获取第二子线程维护的一个实时更新的最长等待时间ti。
进一步地,第二子线程用于按预设的第二时间周期对主线程前N次请求队列各自对应的最长等待时间ti进行编码,利用已经训练生成的强化学习模型计算、更新并存储最新的最长等待时间。
第一子线程具体用于获取第二子线程维护的最长等待时间,用于是否进行批推理的判断。
进一步地,该服务器还包括一个训练单元,训练单元用于按预设的第一时间周期对主线程前N次请求队列各自对应的最长等待时间ti进行编码,利用训练阶段的强化学习模型来对编码后的最长等待时间ti进行更新;再利用更新后的N个最长等待时间来训练强化学习模型,最终生成一个完成训练的强化学习模型。
具体地,训练单元还用于通过强化学习模型接收更新后的N个最长等待时间、请求延迟和并发量作为训练的输入,通过强化学习模型输出每个状态下选择的最长等待时间和该最长等待时间对应的概率。
第二子线程具体用于利用已经训练生成的强化学习模型计算、更新并存储最新的最长等待时间,包括:第二子线程利用已经训练生成的强化学习模型计算出当前状态下概率最大的最长等待时间,对该概率最大的最长等待时间进行更新和存储,作为最新的最长等待时间。
进一步地,主线程用于等待第一子线程返回的批推理结果;其中,第一子线程先确定当前请求队列符合进行批推理的条件,接着将当前请求队列中请求发送给各个模型对应的微服务由各个微服务单独进行批推理,然后获取所有微服务的批推理结果,根据请求对批推理结果进行拆分并将拆分后的批推理结果存入词典。
其中,第一子线程用于将当前请求队列中所有请求合并为一批请求,然后将该一批请求并发发送给各个模型对应的微服务由各个微服务单独进行批推理。
本发明提出的服务器实施例中,微服务包括:分类模型微服务、实体模型微服务、问答模型微服务、匹配模型微服务中的任意一个或多个。
对于服务器实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种服务器,包括:
处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述批推理动态等待方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述批推理动态等待方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的批推理动态等待方法、服务器和计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种服务器的批推理动态等待方法,其特征在于,服务器上设置有相互通信的主线程和包括第一子线程、第二子线程在内的若干个子线程,该方法包括:
主线程接收客户端发送的用户请求;
主线程将请求添加到当前请求队列并存入字典;
主线程等待第一子线程先确定当前请求队列符合进行批推理的条件,再返回当前请求队列中所有请求对应的微服务的批推理结果;其中,批推理的条件和微服务参数相关,第一子线程将批推理结果存入字典;微服务参数包括等待时间,符合进行批推理的条件包括:当前请求队列的等待时间达到最长等待时间;其中,第一子线程获取第二子线程维护的一个实时更新的最长等待时间,具体包括:第二子线程按预设的第二时间周期对主线程前N次请求队列各自对应的最长等待时间进行编码,利用已经训练生成的强化学习模型计算、更新并存储一个实时更新的最长等待时间;第一子线程获取第二子线程维护的最长等待时间,用于是否进行批推理的判断;
主线程从字典中读取并向客户端返回批推理结果。
2.如权利要求1所述批推理动态等待方法,其特征在于,微服务参数包括队列长度,符合进行批推理的条件包括:当前请求队列的长度等于预设的队列最大长度。
3.如权利要求1所述批推理动态等待方法,其特征在于,方法还包括:
按预设的第一时间周期对主线程前N次请求队列各自对应的最长等待时间进行编码,利用训练阶段的强化学习模型来对编码后的最长等待时间进行更新;
利用更新后的N个最长等待时间来训练强化学习模型,最终生成一个完成训练的强化学习模型。
4.如权利要求3所述批推理动态等待方法,其特征在于,利用更新后N个的最长等待时间来训练强化学习模型包括:强化学习模型接收更新后的N个最长等待时间、请求延迟和并发量作为训练的输入,输出每个状态下选择的最长等待时间和该最长等待时间对应的概率;
则第二子线程利用已经训练生成的强化学习模型计算、更新并存储最新的最长等待时间,包括:第二子线程利用已经训练生成的强化学习模型计算出当前状态下概率最大的最长等待时间,对该概率最大的最长等待时间进行更新和存储,作为最新的最长等待时间。
5.如权利要求2至4中任意一项所述批推理动态等待方法,其特征在于,主线程等待第一子线程先确定当前请求队列符合进行批推理的条件,再返回当前请求队列中所有请求对应的微服务的批推理结果,包括:
主线程等待第一子线程返回的批推理结果;其中,第一子线程先确定当前请求队列符合进行批推理的条件,接着将当前请求队列中请求发送给各个模型对应的微服务由各个微服务单独进行批推理,然后获取所有微服务的批推理结果,根据请求对批推理结果进行拆分并将拆分后的批推理结果存入词典。
6.如权利要求5所述批推理动态等待方法,其特征在于,第一子线程将当前请求队列中请求发送给各个模型对应的微服务由各个微服务单独进行批推理包括:
第一子线程将当前请求队列中所有请求合并为一批请求,然后将该一批请求并发发送给各个模型对应的微服务由各个微服务单独进行批推理。
7.如权利要求1所述批推理动态等待方法,其特征在于,微服务包括:分类模型微服务、实体模型微服务、问答模型微服务、匹配模型微服务中的任意一个或多个。
8.一种服务器,服务器上设置有主线程,主线程可与包括第一子线程、第二子线程在内的若干个子线程进行通信,其特征在于,主线程包括:
接收单元,用于接收客户端发送的用户请求;
添加单元,用于将请求添加到当前请求队列并存入字典;
等待单元,用于等待第一子线程先确定当前请求队列符合进行批推理的条件,再返回当前请求队列中所有请求对应的微服务的批推理结果;其中,批推理的条件和微服务参数相关,第一子线程将批推理结果存入字典;微服务参数包括等待时间,符合进行批推理的条件包括:当前请求队列的等待时间达到最长等待时间;其中,第一子线程获取第二子线程维护的一个实时更新的最长等待时间,具体包括:第二子线程按预设的第二时间周期对主线程前N次请求队列各自对应的最长等待时间进行编码,利用已经训练生成的强化学习模型计算、更新并存储一个实时更新的最长等待时间;第一子线程获取第二子线程维护的最长等待时间,用于是否进行批推理的判断;
返回单元,用于从字典中读取并向客户端返回批推理结果。
9.一种服务器,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-7中任一项所述的批推理动态等待方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的批推理动态等待方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911256119.4A CN111124671B (zh) | 2019-12-10 | 2019-12-10 | 批推理动态等待方法、服务器和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911256119.4A CN111124671B (zh) | 2019-12-10 | 2019-12-10 | 批推理动态等待方法、服务器和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124671A CN111124671A (zh) | 2020-05-08 |
CN111124671B true CN111124671B (zh) | 2023-05-16 |
Family
ID=70498074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911256119.4A Active CN111124671B (zh) | 2019-12-10 | 2019-12-10 | 批推理动态等待方法、服务器和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124671B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112001351A (zh) * | 2020-09-01 | 2020-11-27 | 城云科技(中国)有限公司 | 多个视频流处理方法、系统、计算机设备和存储介质 |
CN112346866B (zh) * | 2020-11-05 | 2023-09-01 | 中国科学院计算技术研究所 | 一种基于异步数据传输的gpu调度方法及系统 |
CN112671865A (zh) * | 2020-12-16 | 2021-04-16 | 之江实验室 | 一种基于sdn的物联网微服务自动编排方法 |
CN112802457A (zh) * | 2021-04-14 | 2021-05-14 | 北京世纪好未来教育科技有限公司 | 语音识别的方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104685852A (zh) * | 2012-09-19 | 2015-06-03 | 甲骨文国际公司 | 用于使用请求的小批处理的系统和方法 |
CN108924187A (zh) * | 2018-06-07 | 2018-11-30 | 北京百度网讯科技有限公司 | 基于机器学习的任务处理方法、装置和终端设备 |
CN109582472A (zh) * | 2018-10-19 | 2019-04-05 | 华为技术有限公司 | 一种微服务处理方法及设备 |
CN110362494A (zh) * | 2019-07-18 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 微服务状态信息展示的方法、模型训练方法以及相关装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10635505B2 (en) * | 2015-06-30 | 2020-04-28 | Coursera, Inc. | Automated batch application programming interfaces |
-
2019
- 2019-12-10 CN CN201911256119.4A patent/CN111124671B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104685852A (zh) * | 2012-09-19 | 2015-06-03 | 甲骨文国际公司 | 用于使用请求的小批处理的系统和方法 |
CN108924187A (zh) * | 2018-06-07 | 2018-11-30 | 北京百度网讯科技有限公司 | 基于机器学习的任务处理方法、装置和终端设备 |
CN109582472A (zh) * | 2018-10-19 | 2019-04-05 | 华为技术有限公司 | 一种微服务处理方法及设备 |
CN110362494A (zh) * | 2019-07-18 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 微服务状态信息展示的方法、模型训练方法以及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111124671A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111124671B (zh) | 批推理动态等待方法、服务器和计算机可读存储介质 | |
JP7389177B2 (ja) | 連合学習方法、装置、機器及び記憶媒体 | |
CN111858009B (zh) | 基于迁移和强化学习的移动边缘计算系统任务调度方法 | |
CN110688219B (zh) | 基于反向混沌布谷鸟搜索的自适应权重负载均衡算法 | |
CN115248728A (zh) | 面向智能计算的分布式训练任务调度方法、系统和装置 | |
CN116069512B (zh) | 一种基于强化学习的Serverless高效资源分配方法及系统 | |
CN116450312A (zh) | 面向流水线并行训练的调度策略确定方法及系统 | |
CN112286686A (zh) | 一种基于pso优化的边缘计算任务调度算法 | |
CN113094159A (zh) | 一种数据中心作业调度方法、系统、存储介质及计算设备 | |
CN111860867A (zh) | 一种混合异构系统的模型训练方法、系统及相关装置 | |
CN112862083B (zh) | 一种边缘环境下的深度神经网络推断方法及装置 | |
CN115408072A (zh) | 基于深度强化学习的快速适应模型构建方法及相关装置 | |
CN112213956B (zh) | 一种自动驾驶仿真任务调度方法、装置、设备及可读介质 | |
Gong et al. | Chic: experience-driven scheduling in machine learning clusters | |
CN116915869A (zh) | 基于云边协同的时延敏感型智能服务快速响应方法 | |
CN116566891A (zh) | 时延敏感的服务功能链并行路由优化方法、装置及介质 | |
CN110750363A (zh) | 计算机存储管理方法和装置、电子设备和存储介质 | |
CN116367190A (zh) | 一种面向6g移动网络的数字孪生功能虚拟化方法 | |
CN115756789A (zh) | 一种针对深度学习推理服务系统的gpu调度优化方法 | |
CN112698911B (zh) | 一种基于深度强化学习的云作业调度方法 | |
CN108053026A (zh) | 一种移动应用后台请求自适应调度算法 | |
CN110928683B (zh) | 基于两类密集型虚拟机的边缘计算资源分配方法 | |
CN113254200A (zh) | 资源编排方法及智能体 | |
CN111612124A (zh) | 一种面向任务智能调度的网络结构自适应优化方法 | |
CN116089021B (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 |