System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种优化云端深度学习模型异步调度的方法及系统技术方案_技高网

一种优化云端深度学习模型异步调度的方法及系统技术方案

技术编号:41227787 阅读:2 留言:0更新日期:2024-05-09 23:45
本发明专利技术提出一种优化云端深度学习模型异步调度的方法及系统,该方法包括:使用TensorRT Inference Server调度深度学习模型,并对训练好的深度学习模型进行INT8量化;使用gRPC作为深度学习模型应用程序的接口框架,并将protobuf存根文件存放在深度学习模型对应的路径下;重新定义protobuf字段,并添加默认值;针对默认值预分配数组占位;建立json形式protos信息表;按照protos信息表选择深度学习模型功能;通过双向数据流模式进行深度学习模型推理结果传输。本发明专利技术传输性能强大,显著降低了深度学习模型的推理速度,减少应用延迟,且成本与便利性提高。

【技术实现步骤摘要】

本专利技术涉及深度学习与通讯协议领域,尤其涉及一种优化云端深度学习模型异步调度的方法及系统


技术介绍

1、随着深度学习在各业务领域的蓬勃发展,从实验室到生产环境的工程化应用变得日益重要。除了深入研究深度学习算法理论外,我们还需关注如何借鉴软件工程思想使算法部署在应用场景中能够更有序、可追溯。

2、目前深度学习的部署通常分为云端和边端两个方向,其中云端部署通过将算法模型和推理服务封装成restful api接口,使用http协议,方便用户访问调用。但这种方式相对于rpc协议存在性能损耗,特别体现在网络通信和调度层面。rpc框架通过压缩传输通常能省下50%的带宽,吞吐量可达http的两倍,响应时间也更出色。rpc(remote procedurecall,远程过程调用)框架,允许程序调用另一个地址空间的过程或函数,而无需显示编码远程调用的细节,作为云端服务基础框架之一,负责处理云端服务模块之间的项目调用。通过rpc框架,程序员可以像调用本地函数一样调用远程服务的函数,而无需关心网络调用的底层细节。这种模型可以简化网络调用的复杂性,引入存根进程(stub)作为远程的本地代理,并使用rpc运行库来传输网络中的调用。stub和rpc运行库屏蔽了网络调用涉及的许多细节,使得调用远程函数与调用本地函数的代码基本相同。这种架构有助于实现云端服务模块的高效通信,促使深度学习模型在云端部署时更加便捷和可靠。在大规模分布式系统中,rpc一直是关键构成部分。随着模型接口增多和多模型融合应用的兴起,将核心业务抽取成独立服务成为一种趋势,以形成稳定的服务中心,更快响应市场需求。在这个背景下,rpc用于提高业务复用和整合至关重要。特别是对于深度学习模型服务,需要超低的rpc延迟,同时要求系统能够处理大量请求。

3、然而,目前云端系统中的rpc框架实现难以满足这些需求。rpc系统性能远低于硬件(cpu、gpu、网络)性能,不足以使网络和处理器达到饱和。在计算机视觉模型推理时,由于数据交互主要是图片或视频的矩阵,而grpc是基于长连接的rpc协议,处理这种数据性能较差。当前的rpc框架在处理矩阵形式加载运算传输时代码繁琐,而tensorrt inferenceserver封装的grpc存在复杂的嵌套依赖加载和警告机制,增加了不必要的延迟。而且grpc使用同步的方式进行调用,当并发量较大时,会有信息损失。

4、中国专利技术cn110458138a提出了一种基于云服务器的直梯内目标检测方法,利用云存储器存储日常处理数据,采用云服务器部署深度学习目标检测模型,通过消费kafka消息获取云存储服务器上的待检测图像数据。这种模型调度方式并没有充分利用服务器资源,仍然使用restful api这种静态的通信模式,相对于grpc通信性能差效率较低,kafka吞吐速率较差,未使用tensorrt的int8量化前向推理,推理速度较慢。

5、中国专利技术cn111488197a公开了一种基于云服务器的深度学习模型部署方法,使用grpc远程过程调用框架,通过protobuf将数据序列化为二进制编码,但并未对grpc底层通信协议进行优化,且使用protobuf作为数据接口易用性不强,整体性能较差。


技术实现思路

1、本专利技术的目的在于,提供一种优化云端深度学习模型异步调度的方法及系统,以解决上述问题,传输性能强大,显著降低了深度学习模型的推理速度,减少应用延迟,且成本与便利性提高。

2、本专利技术提出了一种优化云端深度学习模型异步调度的方法,包括如下步骤:

3、步骤s1、使用tensorrt inference server调度深度学习模型,并对训练好的深度学习模型进行int8量化;

4、步骤s2、使用grpc作为深度学习模型应用程序的接口框架,并将protobuf存根文件存放在深度学习模型对应的路径下;

5、步骤s3、重新定义protobuf字段,并添加默认值;

6、步骤s4、针对默认值预分配数组占位;

7、步骤s5、建立json形式protos信息表;

8、步骤s6、按照protos信息表选择深度学习模型功能;

9、步骤s7、通过双向数据流模式进行深度学习模型推理结果传输。

10、在一个实施例中,所述步骤s1中,对训练好的深度学习模型进行int8量化,具体包括:将训练好的深度学习模型小批次推理获取校准表,将深度学习模型的权重和激活值的数据类型从32位浮点数转换为8位整数。

11、在一个实施例中,所述步骤s2具体包括:先找到tensorrt inference server源码中用于数据传输的protobuf存根文件,之后将protobuf存根文件存放于在深度学习模型对应的路径下。

12、在一个实施例中,所述步骤s3中重新定义的protobuf的字段结构包括若干个类型值,每个类型值代表不同的数据类型,类型值分别为0、1、2、3、4、5、6,0代表varint,1代表64-bit,2代表bytes,3代表start group,4代表end group,5代表32-bit,6代表default。

13、在一个实施例中,所述步骤s4具体包括:默认值初始化为0,当默认值发生偏移变化至1时,表示传递的数据是图像矩阵,预分配数组时初始数组个数为4,分别对应图像的数量、高度、宽度和通道数。

14、在一个实施例中,所述步骤s5中json形式protos信息表包含所有proto定义。

15、在一个实施例中,所述步骤s6具体包括:利用protobuf全局变量调用json形式protos信息表,按位与的方式检测客户端发送的字段,服务端根据客户端状态枚举值判断调用相应的深度学习模型功能。

16、在一个实施例中,所述步骤s7具体包括:通过使用消息队列jafka生成有序流传输数据到tensorrt inference server,并返回推理结果到客户端。

17、本专利技术还提出了一种优化云端深度学习模型异步调度的系统,所述系统用于实现如上所述的优化云端深度学习模型异步调度的方法,包括:

18、量化模块,对深度学习模型的权重数据进行int8量化推理处理;

19、存根存储模块,存储protobuf存根文件;

20、模型调度模块,为不同的请求分配适应的深度学习模型,并管理深度学习模型的调度;

21、双向传输模块,分别连接客户端和所述模型调度模块,接收客户端的请求数据,将请求数据传输到模型调度模块,并接收从模型调度模块返回的推理结果数据。

22、在一个实施例中,所述双向传输模块包括生产者传输模块和消费者接收模块;

23、所述生产者传输模块用于将客户端的请求数据封装成grpc消息发送到jafka消息队列;

24、所述消费者接收模块用于从消息队列jafka接收数据,解析grpc消息,并将解析后的数据传本文档来自技高网...

【技术保护点】

1.一种优化云端深度学习模型异步调度的方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的优化云端深度学习模型异步调度的方法,其特征在于,所述步骤S1中,对训练好的深度学习模型进行INT8量化,具体包括:将训练好的深度学习模型小批次推理获取校准表,将深度学习模型的权重和激活值的数据类型从32位浮点数转换为8位整数。

3.根据权利要求1所述的优化云端深度学习模型异步调度的方法,其特征在于,所述步骤S2具体包括:先找到TensorRT Inference Server源码中用于数据传输的protobuf存根文件,之后将protobuf存根文件存放于在深度学习模型对应的路径下。

4.根据权利要求1所述的优化云端深度学习模型异步调度的方法,其特征在于,所述步骤S3中重新定义的protobuf的字段结构包括若干个类型值,每个类型值代表不同的数据类型,类型值分别为0、1、2、3、4、5、6,0代表Varint,1代表64-bit,2代表bytes,3代表Startgroup,4代表End group,5代表32-bit,6代表default。

5.根据权利要求1所述的优化云端深度学习模型异步调度的方法,其特征在于,所述步骤S4具体包括:默认值初始化为0,当默认值发生偏移变化至1时,表示传递的数据是图像矩阵,预分配数组时初始数组个数为4,分别对应图像的数量、高度、宽度和通道数。

6.根据权利要求1所述的优化云端深度学习模型异步调度的方法,其特征在于,所述步骤S5中json形式protos信息表包含所有proto定义。

7.根据权利要求1所述的优化云端深度学习模型异步调度的方法,其特征在于,所述步骤S6具体包括:利用protobuf全局变量调用json形式protos信息表,按位与的方式检测客户端发送的字段,服务端根据客户端状态枚举值判断调用相应的深度学习模型功能。

8.根据权利要求1所述的优化云端深度学习模型异步调度的方法,其特征在于,所述步骤S7具体包括:通过使用消息队列jafka生成有序流传输数据到TensorRT InferenceServer,并返回推理结果到客户端。

9.一种优化云端深度学习模型异步调度的系统,其特征在于,所述系统用于实现如权利要求1-8任一项所述的优化云端深度学习模型异步调度的方法,包括:

10.根据权利要求9所述的优化云端深度学习模型异步调度的系统,其特征在于,所述双向传输模块包括生产者传输模块和消费者接收模块;

...

【技术特征摘要】

1.一种优化云端深度学习模型异步调度的方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的优化云端深度学习模型异步调度的方法,其特征在于,所述步骤s1中,对训练好的深度学习模型进行int8量化,具体包括:将训练好的深度学习模型小批次推理获取校准表,将深度学习模型的权重和激活值的数据类型从32位浮点数转换为8位整数。

3.根据权利要求1所述的优化云端深度学习模型异步调度的方法,其特征在于,所述步骤s2具体包括:先找到tensorrt inference server源码中用于数据传输的protobuf存根文件,之后将protobuf存根文件存放于在深度学习模型对应的路径下。

4.根据权利要求1所述的优化云端深度学习模型异步调度的方法,其特征在于,所述步骤s3中重新定义的protobuf的字段结构包括若干个类型值,每个类型值代表不同的数据类型,类型值分别为0、1、2、3、4、5、6,0代表varint,1代表64-bit,2代表bytes,3代表startgroup,4代表end group,5代表32-bit,6代表default。

5.根据权利要求1所述的优化云端深度学习模型异步调度的方法,其特征在于,所述步骤s4具体包...

【专利技术属性】
技术研发人员:史国杰王远峰张蕤赵连连
申请(专利权)人:天翼数字生活科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1