CN111400000B - 网络请求处理方法、装置、设备和存储介质 - Google Patents
网络请求处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN111400000B CN111400000B CN202010157440.3A CN202010157440A CN111400000B CN 111400000 B CN111400000 B CN 111400000B CN 202010157440 A CN202010157440 A CN 202010157440A CN 111400000 B CN111400000 B CN 111400000B
- Authority
- CN
- China
- Prior art keywords
- model
- network request
- target
- target model
- engine tool
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 86
- 230000008569 process Effects 0.000 claims abstract description 54
- 210000001503 joint Anatomy 0.000 claims abstract description 17
- 230000004044 response Effects 0.000 claims abstract description 6
- 238000012545 processing Methods 0.000 claims description 32
- 230000015654 memory Effects 0.000 claims description 25
- 238000011068 loading method Methods 0.000 claims description 18
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000005538 encapsulation Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 abstract description 11
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 230000008901 benefit Effects 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 13
- 238000003032 molecular docking Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 238000007781 pre-processing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority 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/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
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种网络请求处理方法、装置、设备和存储介质,涉及人工智能技术领域。具体实现方案为:响应于接收的网络请求,确定待调用的目标模型,以及所述目标模型关联的目标模型引擎工具;基于所述微服务框架与所述目标模型引擎工具之间的对接关系,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,得到目标特征数据。本申请实施例通过微服务框架预先实现与候选模型引擎工具之间的对接关系,在使用微服务框架开发新的特征服务过程中,无需重复进行模型引擎对接,减少了模型引擎对接工作量,从而提高特征服务的开发效率。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及人工智能技术领域,具体涉及一种网络请求处理方法、装置、设备和存储介质。
背景技术
随着人工智能技术的发展,模型预测(model inference)已经广泛应用于对资源数据进行处理得到特征数据。
业界有多种模型引擎工具,如PaddlePaddle(飞桨平台)、Tensorflow、Caffe、和PyTorch等。由于这些引擎负责模型预测部分的计算,在业务比较复杂时,尤其是特征服务需要使用不同模型引擎工具的不同模型时,不同模型引擎工具之间的融合调试工作量大,导致特征服务的开发效率低。
发明内容
本申请实施例提供了一种网络请求处理方法、装置、设备和存储介质,能够提高特征服务的开发效率。
第一方面,本申请实施例提供了一种网络请求处理方法,由部署有微服务框架的节点执行,所述方法包括:
响应于接收的网络请求,确定待调用的目标模型,以及所述目标模型关联的目标模型引擎工具;
基于所述微服务框架与所述目标模型引擎工具之间的对接关系,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,得到目标特征数据。
上述申请中的一个实施例具有如下优点或有益效果:通过微服务框架预先实现与候选模型引擎工具之间的对接关系,在使用微服务框架开发新的特征服务过程中,无需重复进行模型引擎对接,减少了模型引擎对接工作量,从而提高特征服务的开发效率。
可选的,确定待调用的目标模型,以及所述目标模型关联的目标模型引擎工具之前,还包括:
根据候选模型的基础配置信息,将所述候选模型加载到内存中;
根据所述候选模型的引擎配置信息,采用所述候选模型关联的候选模型引擎工具对所述候选模型进行引擎封装,并建立候选模型名称与所述候选模型引擎工具之间索引关系,用于通过所述候选模型引擎工具调用候选模型。
可选的,所述基础配置信息包括如下至少一项:模型名称、模型使用设备、模型文件路径和模型加载参数。
上述申请中的一个实施例具有如下优点或有益效果:通过候选模型的配置信息,采用候选模型关联的候选模型引擎工具对候选模型进行引擎封装,便于后续通过候选模型引擎工具调用候选模型。
可选的,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,包括:
通过数据格式转换接口,对所述目标模型引擎工具的输入数据和输出数据进行数据格式统一,以得到统一格式的输入数据和输出数据。
上述申请中的一个实施例具有如下优点或有益效果:通过统一的数据格式转换接口实现不同模型引擎工具的输入输出数据统一,从而实现不同模型引擎工具的数据兼容。
可选的,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,包括:
确定所述目标模型的模型使用设备为CPU还是GPU;
若所述目标模型的模型使用设备为CPU,则在本地节点的CPU实例中,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理;
若所述目标模型的模型使用设备为GPU,则控制本地节点的GPU实例或其他节点的GPU实例,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理。
可选的,所述CPU实例的数量大于所述GPU实例的数量。
上述申请中的一个实施例具有如下优点或有益效果:通过将使用GPU实例的模型预测工作放到本地GPU实例或其他GPU实例上,且调整CPU实例和GPU实例的数量关系,能够避免CPU计算阻塞GPU,从而提高GPU资源利用率。
可选的,在本地节点的CPU实例中,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,包括:
在本地节点的CPU实例中,采用网络请求接收线程,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理。
上述申请中的一个实施例具有如下优点或有益效果:CPU实例通过网络请求接收线程对网络请求进行处理,能够消除进线程之间调度带来的额外的CPU实例计算,从而提高特殊数据的生成效率。
可选的,控制本地节点的GPU实例或其他节点的GPU实例,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,包括:
确定所述网络请求的已处理时长;
控制本地节点的GPU实例或其他节点的GPU实例根据自身的最大并发数、最大等待时长和所述已处理时长,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行批量处理。
上述申请中的一个实施例具有如下优点或有益效果:通过GPU实例动态批量对接收的网络请求进行处理,可以兼顾资源使用率与请求时延。
可选的,响应于接收的网络请求,确定待调用的目标模型包括:
将接收的网络请求,与候选网络请求和候选DAG(Directed Acyclic Graph,有向无环图)之间关联关系进行匹配,以得到目标DAG;
将所述目标DAG关联的候选模型,确定为待调用的目标模型。
上述申请中的一个实施例具有如下优点或有益效果:通过DAG支持复杂业务逻辑,简化流程。
第二方面,本申请实施例提供了一种网络请求处理装置,配置于部署有微服务框架的节点中,所述装置包括:
模型确定模块,用于响应于接收的网络请求,确定待调用的目标模型,以及所述目标模型关联的目标模型引擎工具;
模型调用模块,用于基于所述微服务框架与所述目标模型引擎工具之间的对接关系,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,得到目标特征数据。
第三方面,本申请实施例提供了一种网络请求处理设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请任意实施例所述的网络请求处理方法。
第四方面,本申请实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请任意实施例所述的网络请求处理方法。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请第一实施例的一种网络请求处理方法的流程图;
图2是根据本申请第一实施例的一种微服务框架的示意图;
图3是根据本申请第二实施例的一种网络请求处理方法的流程图;
图4是根据本申请第三实施例的一种网络请求处理方法的流程图;
图5是根据本申请第三实施例的一种微服务交互示意图;
图6是根据本申请第四实施例的一种网络请求处理装置的结构示意图;
图7是用来实现本申请实施例的网络请求处理方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
第一实施例
图1是根据本申请第一实施例的一种网络请求处理方法的流程图,图2是根据本申请第一实施例的一种微服务框架的示意图,本实施例可适用于通过微服务框架中模型引擎工具调用模型,对网络请求数据进行处理的情况,该方法可由一种网络请求处理装置来执行,该装置采用软件和/或硬件的方式实现,优选是配置于部署有微服务框架的节点中。结合图1和图2,该方法具体包括如下:
S110、响应于接收的网络请求,确定待调用的目标模型,以及所述目标模型关联的目标模型引擎工具。
在本申请实施例中,微服务框架是一项在云中部署应用和服务的新技术,微服务通常会部署到多个节点中,用于根据业务需求确定一种或多种特征数据。参考图2,在微服务框架提供了模型引擎工具的运行环境,包括接口层和业务层,接口层用于接收网络请求且返回网络应答,业务层用于对网络请求的具体计算。其中,业务层包括执行引擎、模型管理和公共算子等,执行引擎用于管理执行流程、并提供候选模型引擎工具供业务方使用,模型管理用于进行模型加载和模型预测,诸如视频、图像的下载、视频的抽帧、统一下游访问之类的公共算子,用于加速业务的快速落地。另外,微服务框架中还提供有日志、配置文件、监控和运行环境探测等基础工具。
在本实施例中,模型引擎工具(又称为深度学习框架)提供不同领域的深度学习模型库供开发人员使用,降低业务方开发成本。不同模型引擎工具针对模型网络结构的不同特点、不同使用场景进行针对性优化,因此不同模型需要使用不同模型引擎工具。
基于配置信息,微服务框架预先提供有至少两种候选模型引擎工具,以及候选模型引擎工具与候选模型之间的关联关系,还提供有候选网络请求与候选模型之间的关联关系。具体的,将接收的网络请求所关联的候选模型作为待调用的目标模型,将目标模型关联的候选模型引擎工具作为目标模型引擎工具。
S120、基于所述微服务框架与所述目标模型引擎工具之间的对接关系,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,得到目标特征数据。
在本申请实施例中,还预先构建微服务框架与候选模型引擎工具之间的对接关系。业务人员预先通过调试,确定候选模型引擎工具与微服务框架之间的对接关系,使得候选模型引擎工具与微服务框架之间能够兼容,例如通过调试避免模型引擎工具的加载冲突和预测冲突,调试成功后固定模型引擎工具的版本,避免功能随版本差异化而无法兼容。由于不同候选模型引擎工具均预先与微服务框架对接兼容,因此不同候选模型引擎工具之间也能够兼容,进而在特征服务开发过程中能够使用不同候选模型引擎工具,从而同一个特征数据生成过程中能够使用不同候选模型引擎工具,并且能够保持不同候选模型引擎工具的原有场景性优化特性。
具体的,通过目标模型引擎工具调用目标模型,对网络请求的资源数据例如图像数据进行处理,得到图像的特征数据,包括但不限于图像的清晰度、敏感信息筛查结果等。
本实施例的技术方案,微服务框架提供有多种候选模型引擎工具,并且通过对接调试预先实现微服务框架与多种候选模型引擎工具之间的对接关系,即多种候选模型引擎工具均与微服务框架之间兼容。在特征服务开发过程中不需要重复进行模型引擎工具对接,从而避免了模型引擎工具重复对接导致的效率低问题,简化了业务方的研发操作,并且能够保留模型引擎工具的场景性优化特性。
第二实施例
图3是根据本申请第二实施例的一种网络请求处理方法的流程图,本实施例在上述第一实施例的基础上,进一步对微服务框架的预处理过程进行解释说明。如图3所示,该方法具体包括如下:
S210、根据候选模型的基础配置信息,将所述候选模型加载到内存中。
在本申请实施例中,可以根据业务需求进行模型配置。配置文件指定候选模型的基础配置信息和引擎配置信息。可选的,所述基础配置信息包括如下至少一项:模型名称、模型使用设备、模型文件路径和模型加载参数。引擎配置信息为模型引擎工具类型。模型使用设备可以为CPU或GPU。
在本申请实施例中,微服务框架还提供有模型基类,基类中规定了模型的统一加载方法和预测方法。候选模型引擎工具具有特殊的类来继承基类,使用多态特性自定义自己的加载方法和预测方法。
具体的,在微服务框架启动时,将候选模型按照关联的候选模型引擎工具的加载方法进行特定的加载,并且将需要的加载参数通过配置文件进行配置,达到不同候选模型引擎工具特殊的加载方式。
S220、根据所述候选模型的引擎配置信息,采用所述候选模型关联的候选模型引擎工具对所述候选模型进行引擎封装,并建立候选模型名称与所述候选模型引擎工具之间索引关系,用于通过所述候选模型引擎工具调用候选模型。
具体的,采用关联的候选模型引擎工具对候选模型进行封装,并建立候选模型名称与候选模型引擎工具之间索引关系,从而在特征数据生成过程中,根据需要的模型名称能够确定需要使用的模型引擎工具。
S230、响应于接收的网络请求,确定待调用的目标模型,以及所述目标模型关联的目标模型引擎工具。
可选的,S230可以包括:将接收的网络请求,与候选网络请求和候选DAG之间关联关系进行匹配,以得到目标DAG;将所述目标DAG关联的候选模型,确定为待调用的目标模型。
在特征数据生成过程中,除模型预测外,还有其他计算,例如通过业务代码编写的不需要模型的计算、模型的前处理计算即通过前处理将输入数据转换为模型输入例如图像清晰度特征数据生成过程中,需要执行图像下载、抽帧、归一化、矩阵转换等多种前处理操作,以及模型的后处理计算即对模型输出数据进行处理,例如在复杂业务场景中,需要对至少两个模型的预测结果进行融合,综合确定最终特征数据。
由于特殊数据生成过程中,可能需要调用多种模型,还可能需要除模型之外的其他计算,并且不同计算之间可以是并行关系,也可以是级联的串行关系。为了加快复杂业务场景的特殊数据生成效率,微服务框架中还引入DAG。即,根据业务构建候选DAG,以及候选DAG与候选网络请求之间关联关系。
具体的,DAG中节点指定自己所依赖的数据(即自己输入数据),以及自己输出数据,使用数据依赖关系描述节点之间关系,即使用数据触发DAG的流转。微服务框架启动过程中,加载模型之后,还加载DAG到内存中,并且将DAG绑定到不同的候选网络请求上,使得网络请求可以触发DAG的运行。
S240、基于所述微服务框架与所述目标模型引擎工具之间的对接关系,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,得到目标特征数据。
可选的,S240可以包括:通过数据格式转换接口,对所述目标模型引擎工具的输入数据和输出数据进行数据格式统一,以得到统一格式的输入数据和输出数据。
虽然不同模型引擎工具的实现预测接口均不相同,但是进行预测时输入本质均为数字向量,输出本质也均为数字向量。通过将不同候选模型引擎工具的预测接口进行统一,输入输出均为统一数据格式例如数字向量格式,在预测接口内部,将统一数据格式转化为不同模型引擎规定的数据格式上,实现预测部分的各模型引擎工具兼容。
本实施例的技术方案,微服务框架在特征服务开发过程中,通过配置信息确定候选模型与候选模型引擎工具之间关联关系,从而通过关联的候选模型引擎工具调用候选模型;并且,统一不同候选模型引擎工具的加载方法、预测方法,通过预先对构建微服务框架与候选模型引擎工具之间对接关系,解决不同候选模型引擎工具之间的加载冲突、预测冲突,使得不同候选模型引擎工具之间兼容,避免了业务方重复进行引擎对接;另外,还通过引入DAG控制特征数据生成流程,能够加快特征计算业务的快速落地。
第三实施例
图4是根据本申请第三实施例的一种网络请求处理方法的流程图,图5是根据本申请第三实施例的一种微服务交互示意图。该方法由部署有微服务框架的节点执行。参考图4和图5,该方法具体包括如下:
S310、响应于接收的网络请求,确定待调用的目标模型,以及所述目标模型关联的目标模型引擎工具。
基于微服务框架与目标模型引擎工具之间的对接关系,执行S320-340。
S320、确定所述目标模型的模型使用设备为CPU还是GPU;若是CPU,则继续执行S330;若是GPU,则跳转执行S340。
S330、在本地节点的CPU实例中,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理。
参考图5,本申请实施例中,微服务框架提供主服务和预测服务两种启动模式,主服务模型主要用于CPU实例计算,预测服务模型主要用于GPU实例计算。通过在配置文件中增加服务指向关系即可根据需要选择启动成不同模式,不需要改动微服务框架的业务代码,即部分节点可以处于主服务模式,部分节点可以处于预测服务模式。
由于候选模型引擎工具之间兼容即引擎之间差异消除,并且使用统一的数据格式转换接口,因此不同节点可以相互配合,一个节点中候选模型引擎可以将自己预测工作放到自己节点或其他节点上,尤其是主服务节点可以将预测工作放到预测服务节点上。具体的,主服务接收网络请求,对网络请求进行向量化等预处理,将预处理结果发送到预测服务节点上;预测服务基于模型进行预测得到预测结果,预测服务还将预测结果反馈给主服务;主服务对模型预测结果进行整合等后处理操作,得到最终预测结果。
可选的,所述CPU实例的数量大于所述GPU实例的数量。现有技术中CPU计算过程会阻塞GPU计算过程,导致GPU使用率低下,严重浪费GPU资源,制约业务的发展。本申请实施例中,通过调整CPU和GPU的实例关系即多个CPU服务与一个GPU服务对应,使得两部分资源均高效利用,减少资源成本。
具体的,主服务的预测接口接收网络请求之后,若目标模型的模型使用设备为CPU,则通过主服务所属本地节点的CPU实例,对网络请求进行处理即可。
可选的,为了提高主服务的计算效率,在本地节点的CPU实例中,采用网络请求接收线程,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理。CPU实例通过网络请求接收线程对网络请求进行处理,能够消除进线程之间调度带来的额外的CPU计算,从而进一步提高特殊数据的生成效率。
另外,CPU实例还可以在网络协议中,直接将统一数据格式例如数据向量格式作为内存序列传输,节省编解码带来的额外CPU计算。
S340、控制本地节点的GPU实例或其他节点的GPU实例,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理。
本申请实施例中,主服务与预测服务之间可以基于网络协议进行通信。具体的,主服务的预测接口接收网络请求之后,主服务将网络请求的资源数据(即输入数据)编码成固定的网络协议,发送到预测服务中,控制预测服务通过CPU实例对网络请求进行处理。
可选的,S340可以包括:确定所述网络请求的已处理时长;控制本地节点的GPU实例或其他节点的GPU实例根据自身的最大并发数、最大等待时长和所述已处理时长,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行批量处理。
其中,GPU实例的最大并发数和最大等待时长可以配置。GPU实例可以通过批量并发对输入数据进行处理,从而进一步提高处理效率。为了兼顾资源使用率和请求时延,GPU实例可以在网络请求的已处理时长等于或大于最大等待时长时,批量进行处理;GPU实例还可以在待处理的网络请问数量等于或大于最大并发数时,批量进行处理。
本实施例的技术方案,微服务框架支持主服务和预测服务两种启动模式,主服务和预测服务之间可以相互配合。通过多个主服务对应一个预测服务,使得两部分资源均高效利用,减少资源成本。并且,通过简化CPU实例操作,GPU实例批量处理进一步提高网络请求处理效率。
第四实施例
图6是根据本申请第四实施例的一种网络请求处理装置的结构示意图,本实施例可适用于通过微服务框架中模型引擎工具调用模型,对网络请求数据进行处理的情况,该装置可实现本申请任意实施例提供的一种网络请求处理方法,该装置采用软件和/或硬件的方式实现,优选是配置于部署有微服务框架的节点中。参考图6,该装置400具体包括如下:
模型确定模块410,用于响应于接收的网络请求,确定待调用的目标模型,以及所述目标模型关联的目标模型引擎工具;
模型调用模块420,用于基于所述微服务框架与所述目标模型引擎工具之间的对接关系,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,得到目标特征数据。
进一步的,所述装置还包括:
模型加载模块,用于根据候选模型的基础配置信息,将所述候选模型加载到内存中;
模型封装模块,用于根据所述候选模型的引擎配置信息,采用所述候选模型关联的候选模型引擎工具对所述候选模型进行引擎封装,并建立候选模型名称与所述候选模型引擎工具之间索引关系,用于通过所述候选模型引擎工具调用候选模型。
进一步的,所述基础配置信息包括如下至少一项:模型名称、模型使用设备、模型文件路径和模型加载参数。
进一步的,模型调用模块420具体用于:
通过数据格式转换接口,对所述目标模型引擎工具的输入数据和输出数据进行数据格式统一,以得到统一格式的输入数据和输出数据。
进一步的,模型调用模块420具体用于:
确定所述目标模型的模型使用设备为CPU还是GPU;
若所述目标模型的模型使用设备为CPU,则在本地节点的CPU实例中,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理;
若所述目标模型的模型使用设备为GPU,则控制本地节点的GPU实例或其他节点的GPU实例,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理。
进一步的,所述CPU实例的数量大于所述GPU实例的数量。
进一步的,模型调用模块420具体用于:
在本地节点的CPU实例中,采用网络请求接收线程,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理。
进一步的,模型调用模块420具体用于:
确定所述网络请求的已处理时长;
控制本地节点的GPU实例或其他节点的GPU实例根据自身的最大并发数、最大等待时长和所述已处理时长,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行批量处理。
进一步的,模型确定模块410具有用于:
将接收的网络请求,与候选网络请求和候选DAG之间关联关系进行匹配,以得到目标DAG;将所述目标DAG关联的候选模型,确定为待调用的目标模型。
本实施例的技术方案,微服务框架提供有多种候选模型引擎工具,并且通过对接调试预先实现微服务框架与多种候选模型引擎工具之间的对接关系,即多种候选模型引擎工具均与微服务框架之间兼容。在使用微服务框架开发新的特征服务过程中不需要重复进行模型引擎工具对接,从而避免了模型引擎工具重复对接导致的开发效率低问题。微服务框架支持主服务和预测服务两种启动模式,主服务和预测服务之间可以相互配合。通过多个主服务对应一个预测服务,使得两部分资源均高效利用,减少资源成本。通过简化CPU实例操作,GPU实例批量处理进一步提高网络请求处理效率。并且,通过引入DAG控制特征数据生成流程,能够加快特征计算业务的快速落地。
第五实施例
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图7所示,是根据本申请实施例的网络请求处理的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图7所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器501为例。
存储器502即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的网络请求处理的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的网络请求处理的方法。
存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的网络请求处理的方法对应的程序指令/模块(例如,附图6所示的模型确定模块410和模型调用模块420)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的网络请求处理的方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据网络请求处理的电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至网络请求处理的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
网络请求处理的方法的电子设备还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置503可接收输入的数字或字符信息,以及产生与网络请求处理的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本申请的技术方案,微服务框架提供有多种候选模型引擎工具,并且通过对接调试预先实现微服务框架与多种候选模型引擎工具之间的对接关系,即多种候选模型引擎工具均与微服务框架之间兼容。在使用微服务框架开发特征服务过程中不需要重复进行模型引擎工具对接,从而避免了模型引擎工具重复对接导致的效率低问题,并且简化了业务方的研发操作。微服务框架支持主服务和预测服务两种启动模式,主服务和预测服务之间可以相互配合。通过多个主服务对应一个预测服务,使得两部分资源均高效利用,减少资源成本。通过简化CPU实例操作,GPU实例批量处理进一步提高网络请求处理效率。并且,通过引入DAG控制特征数据生成流程,能够加快特征计算业务的快速落地。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (11)
1.一种网络请求处理方法,其特征在于,由部署有微服务框架的节点执行,所述方法包括:
响应于接收的网络请求,确定待调用的目标模型,以及所述目标模型关联的目标模型引擎工具;
基于所述微服务框架与所述目标模型引擎工具之间的对接关系,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,得到目标特征数据;
其中,所述通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,包括:
确定所述目标模型的模型使用设备为CPU还是GPU;
若所述目标模型的模型使用设备为CPU,则在本地节点的CPU实例中,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理;
若所述目标模型的模型使用设备为GPU,则控制本地节点的GPU实例或其他节点的GPU实例,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理。
2.根据权利要求1所述的方法,其特征在于,确定待调用的目标模型,以及所述目标模型关联的目标模型引擎工具之前,还包括:
根据候选模型的基础配置信息,将所述候选模型加载到内存中;
根据所述候选模型的引擎配置信息,采用所述候选模型关联的候选模型引擎工具对所述候选模型进行引擎封装,并建立候选模型名称与所述候选模型引擎工具之间索引关系,用于通过所述候选模型引擎工具调用候选模型。
3.根据权利要求2所述的方法,其特征在于,所述基础配置信息包括如下至少一项:模型名称、模型使用设备、模型文件路径和模型加载参数。
4.根据权利要求1所述的方法,其特征在于,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,包括:
通过数据格式转换接口,对所述目标模型引擎工具的输入数据和输出数据进行数据格式统一,以得到统一格式的输入数据和输出数据。
5.根据权利要求1所述的方法,其特征在于,所述CPU实例的数量大于所述GPU实例的数量。
6.根据权利要求1所述的方法,其特征在于,在本地节点的CPU实例中,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,包括:
在本地节点的CPU实例中,采用网络请求接收线程,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理。
7.根据权利要求1所述的方法,其特征在于,控制本地节点的GPU实例或其他节点的GPU实例,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,包括:
确定所述网络请求的已处理时长;
控制本地节点的GPU实例或其他节点的GPU实例根据自身的最大并发数、最大等待时长和所述已处理时长,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行批量处理。
8.根据权利要求1所述的方法,其特征在于,响应于接收的网络请求,确定待调用的目标模型包括:
将接收的网络请求,与候选网络请求和候选DAG之间关联关系进行匹配,以得到目标DAG;
将所述目标DAG关联的候选模型,确定为待调用的目标模型。
9.一种网络请求处理装置,其特征在于,配置于部署有微服务框架的节点中,所述装置包括:
模型确定模块,用于响应于接收的网络请求,确定待调用的目标模型,以及所述目标模型关联的目标模型引擎工具;
模型调用模块,用于基于所述微服务框架与所述目标模型引擎工具之间的对接关系,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理,得到目标特征数据;
其中,所述模型调用模块具体用于:
确定所述目标模型的模型使用设备为CPU还是GPU;
若所述目标模型的模型使用设备为CPU,则在本地节点的CPU实例中,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理;
若所述目标模型的模型使用设备为GPU,则控制本地节点的GPU实例或其他节点的GPU实例,通过所述目标模型引擎工具调用所述目标模型对所述网络请求进行处理。
10. 一种网络请求处理设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的网络请求处理方法。
11.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-8中任一项所述的网络请求处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010157440.3A CN111400000B (zh) | 2020-03-09 | 2020-03-09 | 网络请求处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010157440.3A CN111400000B (zh) | 2020-03-09 | 2020-03-09 | 网络请求处理方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400000A CN111400000A (zh) | 2020-07-10 |
CN111400000B true CN111400000B (zh) | 2023-07-25 |
Family
ID=71436155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010157440.3A Active CN111400000B (zh) | 2020-03-09 | 2020-03-09 | 网络请求处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400000B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199075B (zh) * | 2020-09-30 | 2021-09-21 | 黑龙江省网络空间研究中心 | 一种基于微服务智能信息处理方法及框架系统 |
CN112508768B (zh) * | 2020-12-22 | 2022-05-27 | 北京百度网讯科技有限公司 | 单算子多模型流水线推理方法、系统、电子设备及介质 |
CN114268661B (zh) * | 2021-11-19 | 2024-04-30 | 科大讯飞股份有限公司 | 一种业务方案部署方法、装置、系统及设备 |
CN114511100B (zh) * | 2022-04-15 | 2023-01-13 | 支付宝(杭州)信息技术有限公司 | 一种支持多引擎框架的图模型任务实现方法和系统 |
CN114490095B (zh) * | 2022-04-19 | 2022-06-21 | 北京闪马智建科技有限公司 | 请求结果的确定方法和装置、存储介质及电子装置 |
CN114510298B (zh) * | 2022-04-20 | 2022-08-02 | 科大讯飞股份有限公司 | 智能引擎接入和调用方法及相关平台、装置、设备、介质 |
CN115826961B (zh) * | 2022-11-02 | 2023-09-22 | 广州广电运通信息科技有限公司 | 设计器及引擎分离重用的数据分析系统设计方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108248A (zh) * | 2017-12-28 | 2018-06-01 | 郑州云海信息技术有限公司 | 一种实现目标检测的cpu+gpu集群管理方法、装置及设备 |
CN108961080A (zh) * | 2018-06-29 | 2018-12-07 | 渤海人寿保险股份有限公司 | 保险业务分布式处理方法、装置、存储介质及终端 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105227669A (zh) * | 2015-10-15 | 2016-01-06 | 浪潮(北京)电子信息产业有限公司 | 一种面向深度学习的cpu与gpu混合的集群架构系统 |
US10599460B2 (en) * | 2017-08-07 | 2020-03-24 | Modelop, Inc. | Analytic model execution engine with instrumentation for granular performance analysis for metrics and diagnostics for troubleshooting |
CN110473120A (zh) * | 2018-05-10 | 2019-11-19 | 深圳富桂精密工业有限公司 | 基于工业互联网的微服务异构再生系统、方法及存储介质 |
CN108810006B (zh) * | 2018-06-25 | 2021-08-10 | 百度在线网络技术(北京)有限公司 | 资源访问方法、装置、设备及存储介质 |
CN109240814A (zh) * | 2018-08-22 | 2019-01-18 | 湖南舜康信息技术有限公司 | 一种基于TensorFlow的深度学习智能调度方法和系统 |
CN109739550B (zh) * | 2018-12-28 | 2019-08-06 | 四川新网银行股份有限公司 | 一种基于互联网分布式下的微服务业务调度方法 |
CN109885389B (zh) * | 2019-02-19 | 2021-07-16 | 浪潮云信息技术股份公司 | 一种基于容器的并行深度学习调度训练方法及系统 |
CN110363169A (zh) * | 2019-07-19 | 2019-10-22 | 南方电网科学研究院有限责任公司 | 一种电网关键设备及部件的识别装置、设备及系统 |
CN110737538B (zh) * | 2019-10-29 | 2022-03-25 | 曹严清 | 一种基于thrift的算法模型调用系统 |
-
2020
- 2020-03-09 CN CN202010157440.3A patent/CN111400000B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108248A (zh) * | 2017-12-28 | 2018-06-01 | 郑州云海信息技术有限公司 | 一种实现目标检测的cpu+gpu集群管理方法、装置及设备 |
CN108961080A (zh) * | 2018-06-29 | 2018-12-07 | 渤海人寿保险股份有限公司 | 保险业务分布式处理方法、装置、存储介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN111400000A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400000B (zh) | 网络请求处理方法、装置、设备和存储介质 | |
US11445008B2 (en) | Data processing methods, electronic devices, and storage media | |
JP7167222B2 (ja) | アプレットデータの取得方法、装置、機器及び記憶媒体 | |
US20210191780A1 (en) | Method and apparatus for processing development machine operation task, device and storage medium | |
CN111767090A (zh) | 小程序的启动方法、装置、电子设备以及存储介质 | |
CN111694857B (zh) | 存储资源数据的方法、装置、电子设备及计算机可读介质 | |
CN111367635B (zh) | 宿主平台层中的应用接口实现方法、装置、设备和介质 | |
WO2022000869A1 (zh) | 小程序的批量处理方法、装置、电子设备以及可读存储介质 | |
EP4209894A1 (en) | Cloud code development system, method, and apparatus, device, and storage medium | |
US11294651B2 (en) | Code execution method, device, and rendering apparatus | |
KR20220151585A (ko) | 업무 데이터 처리 방법, 장치, 전자 기기, 저장 매체 및 컴퓨터 프로그램 | |
CN115600676A (zh) | 深度学习模型推理方法、装置、设备及存储介质 | |
Justino et al. | Outsourcing resource-intensive tasks from mobile apps to clouds: Android and aneka integration | |
EP3828739A2 (en) | Parallelization of authentication strategies | |
US11379201B2 (en) | Wrapping method, registration method, device, and rendering apparatus | |
CN112835615B (zh) | 软件开发工具包的插件化处理方法、装置及电子设备 | |
CN111966877B (zh) | 前端服务方法、装置、设备及存储介质 | |
CN111767059B (zh) | 深度学习模型的部署方法、装置、电子设备和存储介质 | |
WO2023169193A1 (zh) | 用于生成智能合约的方法和装置 | |
CN113110920B (zh) | 区块链系统的运行方法、装置、设备和存储介质 | |
CN112905270A (zh) | 工作流实现方法、装置、平台、电子设备以及存储介质 | |
JP2022525568A (ja) | 上位プラットフォームレイヤ上のアプリケーションインタフェースの実現方法、装置、機器および媒体 | |
CN114095758B (zh) | 云图像截取方法、相关装置 | |
US20230359440A1 (en) | Externally-initiated runtime type extension | |
US20210274017A1 (en) | Request processing method and apparatus, electronic device, and computer storage medium |
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 |