一种优化云端深度学习模型异步调度的方法及系统与流程

文档序号:37888192发布日期:2024-05-09 21:32阅读:11来源:国知局
一种优化云端深度学习模型异步调度的方法及系统与流程

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


背景技术:

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消息,并将解析后的数据传递至模型调度模块。

25、与现有技术相比,本发明的优化云端深度学习模型异步调度的方法及系统的有益效果在于:

26、1)本发明通过重写底层协议改进grpc通信机制,结合使用jafka提供传输保障,大大增强了传输的效率和稳定性,整体鲁棒性和容灾性出色。

27、2)本发明显著减少了应用延迟,充分利用cuda资源,满足实时服务需求,提高了深度学习模型的访问速度,降低了性能损耗。

28、3)本发明成本效益和便利性提高,相较于传统的restful方法,具有更高的成本效益、更强的维护性和便利性,支持热更新模型,具有高内聚和低耦合性,不受模型框架限制,减少了网络开销,增强了容灾能力和稳定性,实现负载均衡。

29、4)本发明通用融合性强,适用于多种深度学习框架下的模型,通过对grpc底层协议修改适配图像和视频的矩阵数据,减少交付次数,保证无感检测实时性,并使用jafka确保大批量数据的完整性,同时优化grpc底层数据接口格式,提高数据处理性能,避免gpu调度兼容问题。

30、5)本发明克服了基于rpc的异步传输限制和基于kafka的restful协议性能问题,结合了两种方法的优点,提供了更高效、精简和稳定的传输方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1