CN112418427A - 深度学习的统一推理服务的提供方法、装置、系统及设备 - Google Patents
深度学习的统一推理服务的提供方法、装置、系统及设备 Download PDFInfo
- Publication number
- CN112418427A CN112418427A CN202011337556.1A CN202011337556A CN112418427A CN 112418427 A CN112418427 A CN 112418427A CN 202011337556 A CN202011337556 A CN 202011337556A CN 112418427 A CN112418427 A CN 112418427A
- Authority
- CN
- China
- Prior art keywords
- reasoning
- inference
- data stream
- request
- model
- 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
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000013135 deep learning Methods 0.000 title claims abstract description 43
- 238000006243 chemical reaction Methods 0.000 claims abstract description 89
- 230000004044 response Effects 0.000 claims abstract description 36
- 238000004364 calculation method Methods 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims description 20
- 230000003068 static effect Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 4
- 230000003044 adaptive effect Effects 0.000 claims description 2
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 12
- 230000003287 optical effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- GPRLSGONYQIRFK-MNYXATJNSA-N triton Chemical compound [3H+] GPRLSGONYQIRFK-MNYXATJNSA-N 0.000 description 2
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 1
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开了一种深度学习的统一推理服务的提供方法、装置、系统及设备。该方法包括:在适配第二推理框架的客户端推理请求中,提取原始推理数据流、目标推理模型和动态模型配置信息;根据目标推理模型和动态模型配置信息,生成请求模型信息表;根据请求模型信息表,将原始推理数据流转换为转换推理数据流;调用第一推理框架对转换推理数据流进行推理计算,得到推理结果数据流;根据请求模型信息表,将推理结果数据流转换为适配第二推理框架的转换结果数据流;根据转换结果数据流,生成与客户端推理请求对应的反馈结果响应。本发明的技术方案,可以对推理服务框架进行统一管理,支持多模型混合部署、模型组合部署,并且具有较高的推理性能。
Description
技术领域
本发明实施例涉及深度学习技术领域,尤其涉及一种深度学习的统一推理服务的提供方法、装置、系统及设备。
背景技术
随着科技的进步,人工智能服务在多领域得到广泛应用。例如,图像识别、语音识别、自然语言处理、视觉搜索以及个性化推荐等。
在人工智能服务中常通过深度学习框架建立模型进行智能处理。目前,深度学习框架种类繁多。例如,主流深度学习框架包括TensorFlow、Keras、Pytorch以及Caffe等。繁多的深度学习框架衍生了多种类的深度学习推理服务框架。深度学习推理服务框架为深度学习框架提供推理服务。
目前,TensorFlow-Serving推理服务框架是最广泛使用的标杆性深度学习推理服务框架。但是,TensorFlow-Serving推理服务框架存在诸多尚未解决的缺点,例如,难以对多种服务框架进行统一管理;难以支持多模型混合部署和模型组合部署,模型复用性差,灵活性差;以及不支持推理加速等优化算法,推理性能较差,难以满足用户需求。
发明内容
本发明实施例提供了一种深度学习的统一推理服务的提供方法、装置、系统及设备,可以对推理服务框架进行统一管理,支持多模型混合部署、模型组合部署,并具有较高推理性能。
第一方面,本发明实施例提供了一种深度学习的统一推理服务的提供方法,由配置第一推理框架的服务器执行,该方法包括:
在适配第二推理框架的客户端推理请求中,提取原始推理数据流、目标推理模型和动态模型配置信息;
根据目标推理模型和动态模型配置信息,生成请求模型信息表,并根据请求模型信息表,将原始推理数据流转换为转换推理数据流;
调用第一推理框架对转换推理数据流进行推理计算,得到推理结果数据流,并根据请求模型信息表,将推理结果数据流转换为适配第二推理框架的转换结果数据流;
根据所述转换结果数据流,生成与客户端推理请求对应的反馈结果响应。
第二方面,本发明实施例还提供了一种深度学习的统一推理服务的提供装置,由配置第一推理框架的服务器执行,该装置包括:
信息提取模块,用于在适配第二推理框架的客户端推理请求中,提取原始推理数据流、目标推理模型和动态模型配置信息;
第一转换模块,用于根据目标推理模型和动态模型配置信息,生成请求模型信息表,并根据请求模型信息表,将原始推理数据流转换为转换推理数据流;
第二转换模块,用于调用第一推理框架对转换推理数据流进行推理计算,得到推理结果数据流,并根据请求模型信息表,将推理结果数据流转换为适配第二推理框架的转换结果数据流;
响应生成模块,用于根据所述转换结果数据流,生成与客户端推理请求对应的反馈结果响应。
第三方面,本发明实施例还提供了一种深度学习的统一推理服务的提供系统,该系统包括:至少一个第一类服务器、至少一个第二类服务器以及重定向服务器;所述第一类服务器中配置第一推理框架,所述第二类服务器中配置第二推理框架,其中:
所述重定向服务器,用于接收客户端推理请求,并根据所述客户端推理请求中包括的目标推理模型,将所述客户端推理请求定位至第一类服务器或者第二类服务器;
所述第一类服务器,用于在接收到适配第二推理框架的客户端推理请求时,执行如本发明任一实施例所述的深度学习的统一推理服务的提供方法,以及,在接收到适配第一推理框架的客户端推理请求时,调用第一推理框架对所述客户端推理请求中包括的原始推理数据流进行推理计算,并生成匹配的反馈结果响应;
所述第二类服务器,用于在接收到适配第二推理框架的客户端推理请求时,调用第二推理框架对所述客户端推理请求中包括的原始推理数据流进行推理计算,并生成匹配的反馈结果响应。
第四方面,本发明实施例还提供了一种电子设备,电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例提供的深度学习的统一推理服务的提供方法。
第五方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的深度学习的统一推理服务的提供方法。
本发明实施例的技术方案,通过在适配第二推理框架的客户端推理请求中,提取原始推理数据流、目标推理模型和动态模型配置信息;根据目标推理模型和动态模型配置信息,生成请求模型信息表,并根据请求模型信息表,将原始推理数据流转换为转换推理数据流;调用第一推理框架对转换推理数据流进行推理计算,得到推理结果数据流,并根据请求模型信息表,将推理结果数据流转换为适配第二推理框架的转换结果数据流;根据转换结果数据流,生成与客户端推理请求对应的反馈结果响应。解决了现有技术中TensorFlow-Serving推理框架存在的缺陷问题,实现了对推理服务框架进行统一管理,支持多模型混合部署、模型组合部署,并且提高推理性能的效果。
附图说明
图1是本发明实施例一中的一种深度学习的统一推理服务的提供方法的流程图;
图2是本发明实施一中的TensorFlow-Serving和Triton-Inference-Server推理服务框架的对比示意图;
图3是本发明实施例一中的一种深度学习的统一推理服务框架结构图;
图4是本发明实施例一中的协议标准化模块的处理流程示意图;
图5是本发明实施例二中的一种深度学习的统一推理服务的提供装置的结构示意图;
图6是本发明实施例三中的一种深度学习的统一推理服务的提供系统的结构示意图;
图7是本发明实施例四中的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本发明实施例一中的一种深度学习的统一推理服务的提供方法的流程图,本实施例可适用于对推理服务框架进行统一管理的情况,该方法可以由深度学习的统一推理服务的提供装置来执行,该装置可以由软件,和/或硬件的方式来实现,并集成在服务器中,其中,服务器中可以配置第一推理框架。
如图1所示,该方法包括:
步骤110、在适配第二推理框架的客户端推理请求中,提取原始推理数据流、目标推理模型和动态模型配置信息。
在本发明实施例中,第一推理框架和第二推理框架均是用于提供推理服务的深度学习框架。第一推理框架和第二推理框架可以不同,具体的,第一推理框架和第二推理框架的客户端请求以及响应标准可以不同。在本发明实施例的一个可选实施方式中,第一推理框架为Triton-Inference-Server推理服务框架,第二推理框架为TensorFlow-Serving推理服务框架。
图2是本发明实施一中的TensorFlow-Serving和Triton-Inference-Server推理服务框架的对比示意图。如图2所示,TensorFlow-Serving推理服务框架是标杆性的推理服务框架,专注于TF(TensorFlow)模型部署和推理服务。Triton-Inference-Server推理服务框架支持多模型混合部署、模型组合部署、高推理性能等功能。例如,Triton-Inference-Server推理服务框架可以支持TF,Pytorch,ONNX,Caffe以及TensoRT等。Triton-Inference-Server推理服务框架使用NVIDIA(英伟达)独有的推理请求通信协议,与TensorFlow-Serving推理服务框架提供服务的标准不同。
示例性的,适配第二推理框架的客户端推理请求可以是超文本传输协议(HyperText Transfer Protocol,HTTP)协议或者GRPC协议的标准推理请求。其中,GRPC协议是谷歌开发的远程过程调用(Remote Procedure Calls,RPC)协议。
在本实施例中,客户端推理请求中可以包括与适配的第二推理框架对应的原始推理数据流,原始推理数据流的格式可以是与第二推理框架相匹配的。客户端推理请求中也可以包括目标推理模型和动态模型配置信息。具体的,目标推理模型和动态模型配置信息可以通过原始推理数据流体现。
示例性的,原始推理数据流中可以包括模型名称,模型名称可以与目标推理模型一一对应。例如,模型名称可以是TensorFlow,Pythorch,ONNX,Caffe以及TensorRT等。动态模型配置信息可以是请求样本数。具体的,请求样本数可以是用于推理服务时的样本数量。
步骤120、根据目标推理模型和动态模型配置信息,生成请求模型信息表,并根据请求模型信息表,将原始推理数据流转换为转换推理数据流。
其中,请求模型信息表可以是原始推理数据流转换生成转换推理数据流的依据。在本发明实施例的一个可选实施方式中,根据客户端推理请求中的目标推理模型和动态模型配置信息,生成请求模型信息表,包括:从模型仓库中获取与目标推理模型匹配的静态模型配置信息;根据静态模型配置信息以及动态模型配置信息,生成请求模型信息表。
模型仓库(Model Repository)可以用于部署各类模型。在服务端启动推理服务后,模型管理模块(Model Management)可以轮询挂载的模型仓库,进行各类模型的更新、删除、加载或者部署等。模型仓库中可具体记录挂载的模型的配置信息,例如模型名称以及输入和输出名称等。
示例性的,当客户端发起推理请求时,服务端可以根据推理请求中的模型名称从模型仓库中确定推理请求中被请求的模型作为目标推理模型。从模型仓库中获取目标推理模型的静态模型配置信息。
在本实施例的一个可选实施方式中,静态模型配置信息包括:模型名称、输入和输出名称、输入和输出类型,输入和输出维数以及理论输入和输出字节数。
示例性的,输入和输出名称可以是与推理服务框架的名称对应的。输入和输出类型可以是FP32(单精度浮点数)、FP64(双精度浮点数)、INT64(64位整数)、INT32(32位整数)、INT16(16位整数)、INT8(8位整数)、UINT64(64位无符号整数)、UINT32(32位无符号整数)、UINT16(16位无符号整数)、UINT8(8位无符号整数)以及BYTES(字节)等。输入和输出维数可以是一维、二维或者三维等。
表1是本发明实施例一中的请求模型信息表。如表1所示,服务端生成请求模型信息表中可以包括静态模型配置信息以及动态模型配置信息。其中,静态模型配置信息可以包括模型名称、输入和输出名称、输入和输出类型,输入和输出维数以及理论输入和输出字节数。动态模型配置信息可以包括请求样本数。
表1
根据请求模型信息表,将原始推理数据流转换为转换推理数据流可以是根据请求模型信息表中所包含的信息类别从原始推理数据流中进行信息提取,获取到与请求模型信息表中各信息类别对应的数据。根据各信息类别对应的数据转换为转换推理数据流。其中,原始推理数据流各转换推理数据流可以是不同形式的。例如,原始推理数据流可以是与第二推理框架的形式对应的,示例性的,原始推理数据流可以是与TensorFlow-Serving推理服务框架的形式对应的;转换推理数据流可以是与第一推理框架的形式对应的,示例性的,转换推理数据流可以是与Triton-Inference-Server推理服务框架的形式对应的。
在本发明实施例的一个可选实施方式中,根据请求模型信息表,将原始推理数据流转换为转换推理数据流,包括:根据与第二推理框架对应的数据流格式,对原始推理数据流进行解包处理,得到第一解包结果;根据请求模型信息表,从第一解包结果中读取各项原始推理数据项;根据与第一推理框架对应的数据流格式,对各项原始推理数据项进行封包处理,得到转换推理数据流。
其中,第二推理框架对应的数据流格式可以是JS对象简谱(JavaScript ObjectNotation,JSON)或者序列结构化数据格式(Protocol Buffer,Protobuf)。可以借助第一推理框架中的构造器对原始推理数据流进行解包处理,得到第一解包结果。示例性的,可以采用Triton构造器对JSON或者Protobuf格式的原始推理数据流进行解包处理,得到第一解包结果。
第一解包结果中可以包含原始推理数据流中的全部数据。为了规范化转换推理数据流,可以仅在第一解包结果中提取关键数据,例如与请求模型信息表对应的数据。并将得到的关键数据采用第一推理框架对应的数据流格式进行封包处理,得到转换推理数据流。
示例性的,可以是从第一解包结果中获取请求模型信息表中输入类型对应的具体输入数据。根据请求模型信息表中的各信息类型的顺序将输入数据按照Triton-Inference-Server推理服务框架对应的数据流格式进行封包处理,得到转换推理数据流。
步骤130、调用第一推理框架对转换推理数据流进行推理计算,得到推理结果数据流,并根据请求模型信息表,将推理结果数据流转换为适配第二推理框架的转换结果数据流。
其中,服务端可以将转换推理数据流传输至第一推理框架进行推理计算,得到推理结果数据流。具体的,服务端可以根据请求模型信息表中的各信息类型的顺序将输入数据以数据流形式拷贝到Triton-Inference-Server推理服务框架中与模型名称对应的目标推理模型(如TensorFlow,Pythorch,ONNX,Caffe或者TensorRT等)完成具体的推理过程后,得到Triton-Inference-Server的推理结果数据流。
推理结果数据流不能直接被客户端识别,可以对推理结束数据流进行转换。具体的,服务端可以根据请求模型信息表将推理结果数据流转换为转换结果数据流便于客户端进行识别。推理结果数据流是与第一推理框架的数据流格式对应的。可以通过构造器将推理结果数据流转换为与第二推理框架的数据流个数对应的转换结果数据流。
示例性的,可以通过TF构造器将适配第一推理框架的推理结果数据流进行重新构造,生成适配第二推理框架的转换结果数据流。
在本发明实施例的一个可选实施方式中,根据请求模型信息表,将推理结果数据流转换为适配第二推理框架的转换结果数据流,包括:根据与第一推理框架对应的数据流格式,对推理结果数据流进行解包处理,得到第二解包结果;根据请求模型信息表,从第二解包结果中读取各项推理结果数据项;根据与第二推理框架对应的数据流格式,对各项推理结果数据项进行封包处理,得到转换结果数据流。
其中,服务端可以通过构造器如TF构造器对推理结果数据流进行解包处理,得到第二解包结果。服务端可以提取第二解包结果中与请求模型信息表中各信息类型匹配的关键数据。并通过TF构造器对关键数据进行封包处理,生成与第二推理框架对应数据流格式的转换结果数据流。
示例性的,TF构造器可以根据请求模型信息表中的输出名称、输出类型、输出维数以及输出字节数等信息对Triton-Inference-Server的推理结果数据流进行重新构造,构造成JSON或者Protobuf格式的TensorFlow-Serving标准推理响应,即转换结果数据流。
步骤140、根据转换结果数据流,生成与客户端推理请求对应的反馈结果响应。
其中,如果推理成功,可以将转换结果数据流作为服务端向客户端针对客户端推理请求反馈的反馈结果响应。如果推理失败,可以将推理异常作为服务端向客户端针对客户端推理请求反馈的反馈结果响应。
本实施例的技术方案,通过在适配第二推理框架的客户端推理请求中,提取原始推理数据流、目标推理模型和动态模型配置信息;根据目标推理模型和动态模型配置信息,生成请求模型信息表,并根据请求模型信息表,将原始推理数据流转换为转换推理数据流;调用第一推理框架对转换推理数据流进行推理计算,得到推理结果数据流,并根据请求模型信息表,将推理结果数据流转换为适配第二推理框架的转换结果数据流;根据转换结果数据流,生成与客户端推理请求对应的反馈结果响应,解决了现有技术中TensorFlow-Serving推理框架存在的缺陷问题,实现了对推理服务框架进行统一管理,支持多模型混合部署、模型组合部署,并且提高推理性能的效果。
在上述实施方式的基础上,可选的,根据请求模型信息表,将原始推理数据流转换为转换推理数据流,包括:根据请求模型信息表,对原始推理数据流进行校验,如果确定原始推理数据流满足模型输入标准,则根据请求模型信息表,将客户端推理请求中的原始推理数据流转换为转换推理数据流。
其中,对原始推理数据流的校验可以是确定客户端推理请求中的输入数据是否包含请求模型信息表中的各信息类型对应的数据的。如果是,原始推理数据流满足模型输入标准,可以进行推理。具体的,可以将原始推理数据流转换为转换推理数据流进行推理服务。如果否,原始推理数据流不满足模型输入标准,不可以进行推理,可以直接向客户端反馈推理异常。此时,可以等待客户端的指令,以进行下一客户端推理请求的处理。
在上述实施方式的基础上,可选的,根据请求模型信息表,将推理结果数据流转换为适配第二推理框架的转换结果数据流,包括:根据请求模型信息表,对推理结果数据流进行校验,如果确定推理结果数据流满足模型输出标准,则根据请求模型信息表,将推理结果数据流转换为转换结果数据流。
其中,对推理结果数据流进行校验可以是确定Triton-Inference-Server的响应数据流是否包含请求模型信息表中的各信息类型对应的数据的。如果是,推理结果数据流满足模型输出标准,可以确定推理成功。具体的,可以将推理结果数据流转换为转换结果数据流,经转换结果数据流作为反馈结果响应。如果否,推理结果数据流不满足模型输出标准,可以确定推理失败,可以直接向客户端反馈推理异常。此时,可以等待客户端的指令,以进行下一客户端推理请求的处理。
图3是本发明实施例一中的一种深度学习的统一推理服务框架结构图。如图3所示,本发明实施例的推理服务框架在Triton-Inference-Server推理服务框架的基础上增加了协议标准化模块(Request/Response Standardizer)。协议标准化模块可以设置在服务端,协议标准化模块可以辅助实现本发明实施例中的深度学习的统一推理服务的提供方法。图3所示的服务框架的工作流程可以如下:
当服务端启动推理服务后,Model Management开始轮询挂载的ModelRepository,进行模型的更新、删除、加载或者部署。客户端(Client)可以通过HTTP或GRPC通信协议发起TensorFlow-Serving的标准推理请求。协议标准化模块可以对TensorFlow-Serving的标准推理请求进行编解码,并构造Triton-Inference-Server推理服务框架所对应的转换推理数据流。请求及响应接收模块(Request/Response Handler)接收构造的转换推理数据流,产生对应目标推理模型的后端实例(Backend),并将推理请求加入目标推理模型的请求队列中。目标推理模型的后端通过调度模块(Scheduler)调度相应的目标推理模型的请求队列并进行推理,得到推理结果数据流。推理结果数据流可以通过Request/Response Handler反馈至Request/Response Standardizer进行推理结果数据流编解码转换为TensorFlow-Serving推理服务框架对应的标准的转换结果数据流的处理。Request/Response Standardizer可以将转换结果数据流反馈至Client端完成一次完整的推理请求。
其中,图4是本发明实施例一中的协议标准化模块的处理流程示意图。如图4所示,Client端发起HTTP或者GRPC协议的推理请求时,协议标准化模块可以通过推理请求中的模型名称从模型仓库中进行静态模型配置信息获取,也可以从推理请求中进行动态推理请求信息提取。通过静态模型配置和动态模型配置信息生成请求模型信息表。根据请求模型信息表可以对推理请求进行校验,如果推理请求的输入数据不满足模型输入标准,向Client端返回推理异常。如果推理请求的输入数据满足模型输入标准,通过Triton构造器将推理请求的原始推理数据流(TensorFlow-Serving请求输入)转换为转换推理数据流(Triton-Inference-Server数据流输入),用于Triton-Inference-Server后端进行推理并获取返回的推理结果数据流。协议标准化模块根据请求模型信息表对推理结果数据流进行校验,如果推理结果数据流不满足模型输出标准,向Client端返回推理异常。如果推理结果数据流满足模型输出标准,通过TF构造器根据请求模型信息表,将推理结果数据流(Triton-Inference-Server数据流输出)转换为转换结果数据流(TensorFlow-Serving响应输出),并将转换结果数据流作为反馈至Client端的反馈结果响应。
实施例二
图5是本发明实施例二中的一种深度学习的统一推理服务的提供装置的结构示意图。如图5所示,该装置由配置第一推理框架的服务器执行,包括:信息提取模块210,第一转换模块220,第二转换模块230和响应生成模块240。
其中,信息提取模块210,用于在适配第二推理框架的客户端推理请求中,提取原始推理数据流、目标推理模型和动态模型配置信息;
第一转换模块220,用于根据目标推理模型和动态模型配置信息,生成请求模型信息表,并根据请求模型信息表,将原始推理数据流转换为转换推理数据流;
第二转换模块230,用于调用第一推理框架对转换推理数据流进行推理计算,得到推理结果数据流,并根据请求模型信息表,将推理结果数据流转换为适配第二推理框架的转换结果数据流;
响应生成模块240,用于根据转换结果数据流,生成与客户端推理请求对应的反馈结果响应。
可选的,第一转换模块220包括:
配置信息获取单元,用于从模型仓库中获取与目标推理模型匹配的静态模型配置信息;
请求模型信息表生成单元,用于根据静态模型配置信息以及动态模型配置信息,生成请求模型信息表。
可选的,静态模型配置信息包括:模型名称、输入和输出名称、输入和输出类型,输入和输出维数以及理论输入和输出字节数;
动态模型配置信息包括:请求样本数。
可选的,第一转换模块220包括:
第一解包处理单元,用于根据与第二推理框架对应的数据流格式,对原始推理数据流进行解包处理,得到第一解包结果;
第一数据读取单元,用于根据请求模型信息表,从第一解包结果中读取各项原始推理数据项;
第一封包处理单元,用于根据与第一推理框架对应的数据流格式,对各项原始推理数据项进行封包处理,得到转换推理数据流。
可选的,第二转换模块230包括:
第二解包处理单元,用于根据与第一推理框架对应的数据流格式,对推理结果数据流进行解包处理,得到第二解包结果;
第二数据读取单元,用于根据请求模型信息表,从第二解包结果中读取各项推理结果数据项;
第二封包处理单元,用于根据与第二推理框架对应的数据流格式,对各项推理结果数据项进行封包处理,得到转换结果数据流。
可选的,第一转换模块220包括:
第一校验单元,用于根据请求模型信息表,对原始推理数据流进行校验,如果确定原始推理数据流满足模型输入标准,则根据请求模型信息表,将客户端推理请求中的原始推理数据流转换为转换推理数据流。
可选的,第二转换模块230包括:
第二校验单元,用于根据请求模型信息表,对推理结果数据流进行校验,如果确定推理结果数据流满足模型输出标准,则根据请求模型信息表,将推理结果数据流转换为转换结果数据流。
可选的,第一推理框架为Triton-Inference-Server推理服务框架,第二推理框架为TensorFlow-Serving推理服务框架。
本发明实施例所提供的深度学习的统一推理服务的提供装置可执行本发明任意实施例所提供的深度学习的统一推理服务的提供方法,具备执行方法相应的功能模块和有益效果。
实施例三
图6是本发明实施例三中的一种深度学习的统一推理服务的提供系统的结构示意图。如图6所示,该系统包括:至少一个第一类服务器310、至少一个第二类服务器320以及重定向服务器330;第一类服务器310中配置第一推理框架,第二类服务器320中配置第二推理框架。
其中,重定向服务器330,用于接收客户端推理请求,并根据客户端推理请求中包括的目标推理模型,将客户端推理请求定位至第一类服务器310或者第二类服务器320。
示例性的,第一推理框架为Triton-Inference-Server推理服务框架,第二推理框架为TensorFlow-Serving推理服务框架。如果客户端推理请求中的目标推理模型为TF模型可以将推理请求定位至第二类服务器。如果客户端推理请求中的目标推理模型为Pytorch可以将推理请求定位至第一类服务器。
第一类服务器310,用于在接收到适配第二推理框架的客户端推理请求时,执行如本发明任一实施例所提供的深度学习的统一推理服务的提供方法,以及,在接收到适配第一推理框架的客户端推理请求时,调用第一推理框架对客户端推理请求中包括的原始推理数据流进行推理计算,并生成匹配的反馈结果响应。
其中,第一类服务器中设置有协议标准化模块,用于辅助实现如本发明任一实施例所提供的深度学习的统一推理服务的提供方法。例如,进行原始推理数据流到转换推理数据流的转换以及推理结果数据流到转换结果数据流的转换。
第二类服务器320,用于在接收到适配第二推理框架的客户端推理请求时,调用第二推理框架对客户端推理请求中包括的原始推理数据流进行推理计算,并生成匹配的反馈结果响应。
其中,第二类服务器中可以不设置协议标准化模块,可以直接根据原始推理数据流进行推理计算。生成的反馈结果响应可以直接反馈至客户端。
本发明实施例的技术方案,通过在现有技术的TensorFlow-Serving推理服务框架的基础上增加Triton-Inference-Server推理服务框架,并在Triton-Inference-Server推理服务框架的基础上增加协议标准化模块,通过第一类服务器、第二类服务器以及重定服务器的相互配合,解决了现有技术中TensorFlow-Serving推理框架存在的缺陷问题,实现了在用户无感知的情况下,可以采用Triton-Inference-Server推理服务框架进行推理服务,对推理服务框架进行了统一管理,支持多模型混合部署、模型组合部署,并且提高推理性能的效果。
实施例四
图7是本发明实施例四中的一种电子设备的结构示意图。图7示出了适于用来实现本发明实施方式的示例性设备12的框图。图7显示的设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,设备12以通用计算设备的形式表现。设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备12交互的设备通信,和/或与使得该设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与设备12的其它模块通信。应当明白,尽管图7中未示出,可以结合设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种深度学习的统一推理服务的提供方法。也即:实现一种深度学习的统一推理服务的提供方法,包括:
在适配第二推理框架的客户端推理请求中,提取原始推理数据流、目标推理模型和动态模型配置信息;
根据目标推理模型和动态模型配置信息,生成请求模型信息表,并根据请求模型信息表,将原始推理数据流转换为转换推理数据流;
调用第一推理框架对转换推理数据流进行推理计算,得到推理结果数据流,并根据请求模型信息表,将推理结果数据流转换为适配第二推理框架的转换结果数据流;
根据所述转换结果数据流,生成与客户端推理请求对应的反馈结果响应。
实施例五
本发明实施例五还公开了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种深度学习的统一推理服务的提供方法,包括:
在适配第二推理框架的客户端推理请求中,提取原始推理数据流、目标推理模型和动态模型配置信息;
根据目标推理模型和动态模型配置信息,生成请求模型信息表,并根据请求模型信息表,将原始推理数据流转换为转换推理数据流;
调用第一推理框架对转换推理数据流进行推理计算,得到推理结果数据流,并根据请求模型信息表,将推理结果数据流转换为适配第二推理框架的转换结果数据流;
根据所述转换结果数据流,生成与客户端推理请求对应的反馈结果响应。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是、但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种深度学习的统一推理服务的提供方法,由配置第一推理框架的服务器执行,其特征在于,所述方法包括:
在适配第二推理框架的客户端推理请求中,提取原始推理数据流、目标推理模型和动态模型配置信息;
根据目标推理模型和动态模型配置信息,生成请求模型信息表,并根据请求模型信息表,将原始推理数据流转换为转换推理数据流;
调用第一推理框架对转换推理数据流进行推理计算,得到推理结果数据流,并根据请求模型信息表,将推理结果数据流转换为适配第二推理框架的转换结果数据流;
根据所述转换结果数据流,生成与客户端推理请求对应的反馈结果响应。
2.根据权利要求1所述的方法,其特征在于,根据客户端推理请求中的目标推理模型和动态模型配置信息,生成请求模型信息表,包括:
从模型仓库中获取与所述目标推理模型匹配的静态模型配置信息;
根据所述静态模型配置信息以及所述动态模型配置信息,生成所述请求模型信息表。
3.根据权利要求2所述的方法,其特征在于,所述静态模型配置信息包括:模型名称、输入和输出名称、输入和输出类型,输入和输出维数以及理论输入和输出字节数;
所述动态模型配置信息包括:请求样本数。
4.根据权利要求2所述的方法,其特征在于,根据请求模型信息表,将原始推理数据流转换为转换推理数据流,包括:
根据与所述第二推理框架对应的数据流格式,对所述原始推理数据流进行解包处理,得到第一解包结果;
根据所述请求模型信息表,从所述第一解包结果中读取各项原始推理数据项;
根据与所述第一推理框架对应的数据流格式,对所述各项原始推理数据项进行封包处理,得到所述转换推理数据流;
根据请求模型信息表,将推理结果数据流转换为适配第二推理框架的转换结果数据流,包括:
根据与所述第一推理框架对应的数据流格式,对所述推理结果数据流进行解包处理,得到第二解包结果;
根据所述请求模型信息表,从所述第二解包结果中读取各项推理结果数据项;
根据与所述第二推理框架对应的数据流格式,对所述各项推理结果数据项进行封包处理,得到所述转换结果数据流。
5.根据权利要求1所述的方法,其特征在于,根据请求模型信息表,将原始推理数据流转换为转换推理数据流,包括:
根据所述请求模型信息表,对所述原始推理数据流进行校验,如果确定所述原始推理数据流满足模型输入标准,则根据请求模型信息表,将客户端推理请求中的原始推理数据流转换为转换推理数据流;
根据请求模型信息表,将推理结果数据流转换为适配第二推理框架的转换结果数据流,包括:
根据所述请求模型信息表,对所述推理结果数据流进行校验,如果确定所述推理结果数据流满足模型输出标准,则根据请求模型信息表,将所述推理结果数据流转换为所述转换结果数据流。
6.根据权利要求1-5任一项所述的方法,其特征在于,第一推理框架为Triton-Inference-Server推理服务框架,第二推理框架为TensorFlow-Serving推理服务框架。
7.一种深度学习的统一推理服务的提供装置,由配置第一推理框架的服务器执行,其特征在于,所述装置包括:
信息提取模块,用于在适配第二推理框架的客户端推理请求中,提取原始推理数据流、目标推理模型和动态模型配置信息;
第一转换模块,用于根据目标推理模型和动态模型配置信息,生成请求模型信息表,并根据请求模型信息表,将原始推理数据流转换为转换推理数据流;
第二转换模块,用于调用第一推理框架对转换推理数据流进行推理计算,得到推理结果数据流,并根据请求模型信息表,将推理结果数据流转换为适配第二推理框架的转换结果数据流;
响应生成模块,用于根据所述转换结果数据流,生成与客户端推理请求对应的反馈结果响应。
8.一种深度学习的统一推理服务的提供系统,其特征在于,包括:至少一个第一类服务器、至少一个第二类服务器以及重定向服务器;所述第一类服务器中配置第一推理框架,所述第二类服务器中配置第二推理框架,其中:
所述重定向服务器,用于接收客户端推理请求,并根据所述客户端推理请求中包括的目标推理模型,将所述客户端推理请求定位至第一类服务器或者第二类服务器;
所述第一类服务器,用于在接收到适配第二推理框架的客户端推理请求时,执行如权利要求1-6任一项所述的方法,以及,在接收到适配第一推理框架的客户端推理请求时,调用第一推理框架对所述客户端推理请求中包括的原始推理数据流进行推理计算,并生成匹配的反馈结果响应;
所述第二类服务器,用于在接收到适配第二推理框架的客户端推理请求时,调用第二推理框架对所述客户端推理请求中包括的原始推理数据流进行推理计算,并生成匹配的反馈结果响应。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如权利要求1-6中任一所述的深度学习的统一推理服务的提供方法。
10.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-6中任一所述的深度学习的统一推理服务的提供方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011337556.1A CN112418427A (zh) | 2020-11-25 | 2020-11-25 | 深度学习的统一推理服务的提供方法、装置、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011337556.1A CN112418427A (zh) | 2020-11-25 | 2020-11-25 | 深度学习的统一推理服务的提供方法、装置、系统及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112418427A true CN112418427A (zh) | 2021-02-26 |
Family
ID=74843792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011337556.1A Pending CN112418427A (zh) | 2020-11-25 | 2020-11-25 | 深度学习的统一推理服务的提供方法、装置、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112418427A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112966825A (zh) * | 2021-04-13 | 2021-06-15 | 杭州欣禾圣世科技有限公司 | 基于python实现的多模型融合并行推理方法、装置及系统 |
CN113608729A (zh) * | 2021-08-18 | 2021-11-05 | 山东新一代信息产业技术研究院有限公司 | 一种部署client端实现方法 |
CN114168232A (zh) * | 2021-12-20 | 2022-03-11 | 南京星云数字技术有限公司 | 一种算法模型结果转换配置方法、装置、设备和介质 |
CN116723191A (zh) * | 2023-08-07 | 2023-09-08 | 深圳鲲云信息科技有限公司 | 利用加速装置执行数据流加速计算的方法和系统 |
WO2023197554A1 (zh) * | 2022-04-11 | 2023-10-19 | 北京百度网讯科技有限公司 | 模型推理加速方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532098A (zh) * | 2019-08-30 | 2019-12-03 | 广东星舆科技有限公司 | 提供gpu服务的方法及系统 |
CN111144571A (zh) * | 2019-12-20 | 2020-05-12 | 深圳市金溢科技股份有限公司 | 一种深度学习推理运算方法及中间件 |
CN111461332A (zh) * | 2020-03-24 | 2020-07-28 | 北京五八信息技术有限公司 | 深度学习模型在线推理方法、装置、电子设备和存储介质 |
CN111629061A (zh) * | 2020-05-28 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种基于Kubernetes的推理服务系统 |
-
2020
- 2020-11-25 CN CN202011337556.1A patent/CN112418427A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532098A (zh) * | 2019-08-30 | 2019-12-03 | 广东星舆科技有限公司 | 提供gpu服务的方法及系统 |
CN111144571A (zh) * | 2019-12-20 | 2020-05-12 | 深圳市金溢科技股份有限公司 | 一种深度学习推理运算方法及中间件 |
CN111461332A (zh) * | 2020-03-24 | 2020-07-28 | 北京五八信息技术有限公司 | 深度学习模型在线推理方法、装置、电子设备和存储介质 |
CN111629061A (zh) * | 2020-05-28 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种基于Kubernetes的推理服务系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112966825A (zh) * | 2021-04-13 | 2021-06-15 | 杭州欣禾圣世科技有限公司 | 基于python实现的多模型融合并行推理方法、装置及系统 |
CN113608729A (zh) * | 2021-08-18 | 2021-11-05 | 山东新一代信息产业技术研究院有限公司 | 一种部署client端实现方法 |
CN113608729B (zh) * | 2021-08-18 | 2023-07-04 | 山东新一代信息产业技术研究院有限公司 | 一种部署client端实现方法 |
CN114168232A (zh) * | 2021-12-20 | 2022-03-11 | 南京星云数字技术有限公司 | 一种算法模型结果转换配置方法、装置、设备和介质 |
WO2023197554A1 (zh) * | 2022-04-11 | 2023-10-19 | 北京百度网讯科技有限公司 | 模型推理加速方法、装置、电子设备及存储介质 |
CN116723191A (zh) * | 2023-08-07 | 2023-09-08 | 深圳鲲云信息科技有限公司 | 利用加速装置执行数据流加速计算的方法和系统 |
CN116723191B (zh) * | 2023-08-07 | 2023-11-10 | 深圳鲲云信息科技有限公司 | 利用加速装置执行数据流加速计算的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112418427A (zh) | 深度学习的统一推理服务的提供方法、装置、系统及设备 | |
CN110008045B (zh) | 微服务的聚合方法、装置、设备及存储介质 | |
US11210131B2 (en) | Method and apparatus for assigning computing task | |
CN108040040A (zh) | 一种应用协议报文的自动化解析方法和装置 | |
CN111026931B (zh) | 一种数据查询方法、装置、设备及介质 | |
CN110263277B (zh) | 页面数据的显示方法、更新方法、装置、设备及存储介质 | |
CN110020358B (zh) | 用于生成动态页面的方法和装置 | |
CN114528044B (zh) | 一种接口调用方法、装置、设备及介质 | |
US20060015335A1 (en) | Framework to enable multimodal access to applications | |
CN110543297A (zh) | 用于生成源码的方法和装置 | |
CN113467972A (zh) | 通信接口构造方法、装置以及计算机设备、存储介质 | |
CN111680799A (zh) | 用于处理模型参数的方法和装置 | |
CN113626512A (zh) | 数据处理方法、装置、设备及可读存储介质 | |
US20070282851A1 (en) | Mapping and communicating data from a user interface to an application program | |
CN110830427A (zh) | 一种netty环境下的消息编码、消息解码的方法和装置 | |
CN113468344B (zh) | 实体关系抽取方法、装置、电子设备和计算机可读介质 | |
CN109840072B (zh) | 信息处理方法和装置 | |
WO2024131630A1 (zh) | 车牌识别方法、装置、电子设备及存储介质 | |
CN111443946B (zh) | Ios系统与页面的交互方法、系统、服务器和存储介质 | |
CN110764769B (zh) | 处理用户请求的方法和装置 | |
CN116860941A (zh) | 问答方法、装置、电子设备及存储介质 | |
CN114219643A (zh) | 一种交易调用方法、装置、设备及存储介质 | |
CN114661289A (zh) | 一种基于知识和数据驱动的微应用开发系统和方法 | |
CN111414161B (zh) | 一种生成idl文件的方法、装置、介质和电子设备 | |
US11797277B2 (en) | Neural network model conversion method server, and 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 |