深度学习模型的推理方法、装置、电子设备和存储介质制造方法及图纸

技术编号:36774219 阅读:9 留言:0更新日期:2023-03-08 21:55
本公开提供了一种深度学习模型的推理方法、装置、电子设备和存储介质,涉及人工智能技术领域,尤其涉及深度学习技术领域。具体实现方案为:响应于接收到模型推理请求,基于模型推理请求包括的目标模型的模型标识,从托管存储单元获取与目标模型关联的模型运算图和线程块配置文件,其中,模型推理请求还包括待处理数据,模型运算图包括多个节点,多个节点各自表示目标模型的多个功能模块,多个节点之间的边表示多个功能模块的运行顺序,线程块配置文件表示计算单元中的多个线程块与功能模块的对应关系;以及基于模型运算图和线程块配置文件,依次运行多个线程块来处理待处理数据,得到目标模型的模型推理结果。得到目标模型的模型推理结果。得到目标模型的模型推理结果。

【技术实现步骤摘要】
深度学习模型的推理方法、装置、电子设备和存储介质


[0001]本公开涉及人工智能
,尤其涉及深度学习
,可应用于音频合成场景下。更具体地,本公开提供了一种深度学习模型的推理方法、装置、电子设备、存储介质和程序产品。

技术介绍

[0002]深度学习模型的模型推理可以指简化并使用深度学习模型,使模型能够快速、高效地对未知的数据进行操作,以获得预期的结果。深度学习模型的模型推理策略是深度学习模型运算性能的重要影响因素。

技术实现思路

[0003]本公开提供了一种深度学习模型的推理方法、装置、电子设备、存储介质和程序产品。
[0004]根据本公开的一方面,提供了一种深度学习模型的推理方法,包括:响应于接收到模型推理请求,基于上述模型推理请求包括的目标模型的模型标识,从托管存储单元获取与上述目标模型关联的模型运算图和线程块配置文件,其中,上述模型推理请求还包括待处理数据,上述模型运算图包括多个节点,上述多个节点各自表示上述目标模型的多个功能模块,上述多个节点之间的边表示多个上述功能模块的运行顺序,上述线程块配置文件表示计算单元中的多个线程块与上述功能模块的对应关系;以及基于上述模型运算图和上述线程块配置文件,依次运行上述多个线程块来处理上述待处理数据,得到上述目标模型的模型推理结果。
[0005]根据本公开的另一方面,提供了一种深度学习模型的推理装置,包括:获取模块,用于响应于接收到模型推理请求,基于上述模型推理请求包括的目标模型的模型标识,从托管存储单元获取与上述目标模型关联的模型运算图和线程块配置文件,其中,上述模型推理请求还包括待处理数据,上述模型运算图包括多个节点,上述多个节点各自表示上述目标模型的多个功能模块,上述多个节点之间的边表示多个上述功能模块的运行顺序,上述线程块配置文件表示计算单元中的多个线程块与上述功能模块的对应关系;以及模型推理模块,用于基于上述模型运算图和上述线程块配置文件,依次运行上述多个线程块来处理上述待处理数据,得到上述目标模型的模型推理结果。
[0006]根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
[0007]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如上所述的方法。
[0008]根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算
机程序在被处理器执行时实现如上所述的方法。
[0009]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0010]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0011]图1示意性示出了根据本公开实施例的可以应用深度学习模型的推理方法及装置的示例性系统架构;
[0012]图2示意性示出了根据本公开实施例的深度学习模型的推理方法的流程图;
[0013]图3A示意性示出了根据本公开实施例的目标模型的模型运算图的示意图;
[0014]图3B示意性示出了根据本公开另一实施例的目标模型的模型运算图的示意图;
[0015]图4示意性示出了根据本公开另一实施例的执行目标迭代过程的流程示意图;
[0016]图5A示意性示出了根据本公开实施例的WaveRNN模型的模型运算图的示意图;
[0017]图5B示意性示出了根据本公开实施例的WaveRNN模型的模型运算图的示意图;
[0018]图6示意性示出了根据本公开实施例的深度学习模型的推理装置的框图;以及
[0019]图7示意性示出了根据本公开实施例的可以应用深度学习模块的推理方法的电子设备的框图。
具体实施方式
[0020]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0021]随着深度学习模型向层数越来越多、结构越来越复杂,深度学习模型的参数量也越来越大,导致模型应用效率的降低。因此,利用模型推理方法,对模型的应用进行加速对于深度学习模型的推广应用具有重要的意义。
[0022]在一些实施例中,可以应用图形处理器(Graphics Processing Unit,GPU)来实现深度学习模型的处理。具体地,可以利用图形处理器的多个运算核分别实现深度学习模型的不同层的并行运算,或者,分别实现深度学习模型的多个样本的并行运算。
[0023]然而,利用多个运算核实现的深度学习模型的推理方法无可避免地需要反复调用运算核。由于运算核的启动时间一般较大,因此,运算核的反复调用会影响模型的运行速度。另一方面,模型推理过程中模型的权重数据一般是不需要更新的,而利用多个运算核实现的模型推理方法需要在每次循环和接收新的输入数据时,都需要将模型的权重数据从全局存储单元加载到寄存器中,权重数据的反复加载也会影响模型的运行速度。此外,运算核在每次运算时的输入输出都需要经历全局存储单元和寄存器的I/O过程,I/O过程同样会影响模型的运行速度。
[0024]以WaveRNN模型为例,WaveRNN模型的每一次采样点的预测过程可以拆分为两组相同的矩阵运算过程,每一组矩阵运算过程可以得到8位的采样点预测结果。每一组矩阵运算过程包括5个网络模块的运算,5个网络模块依序包括1个GRU(Gate Recurrent Unit,门控
循环单元)、2个GEMM(General Matrix Multiplication,通用矩阵乘)、1个Softmax(归一化指数单元)和1个Sampling(采样单元)。GRU可以由3个运算核来实现,GEMM、Softmax和Sampling可以分别由1个运算核来实现,即一组矩阵运算过程需要7个运算核来实现。WaveRNN模型的每一次采样点的预测过程需要启动14次运算核,则WaveRNN模型的每一次采样点的预测过程的基础耗时为运算核的启动耗时、权重数据加载耗时和I/O过程耗时之和的14倍。假设启动耗时、权重数据加载耗时和I/O过程耗时之和为10微秒,则一个预测采样点的生成需要280微秒,应用上述实施例方法的WaveRNN模型的最大运行速度为3570样本/秒。可见,运算核的启动耗时、权重数据加载耗时和I/O过程耗时对模型的运行速度有较大影响。
[0025]图1示意性示出了根据本公开实施例的可以应用深度学习模型的推理方法及装置的示例性系统架构。
[0026]需要注意的是,图1所示仅为可以本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种深度学习模型的推理方法,包括:响应于接收到模型推理请求,基于所述模型推理请求包括的目标模型的模型标识,从托管存储单元获取与所述目标模型关联的模型运算图和线程块配置文件,其中,所述模型推理请求还包括待处理数据,所述模型运算图包括多个节点,所述多个节点各自表示所述目标模型的多个功能模块,所述多个节点之间的边表示多个所述功能模块的运行顺序,所述线程块配置文件表示计算单元中的多个线程块与所述功能模块的对应关系;以及基于所述模型运算图和所述线程块配置文件,依次运行所述多个线程块来处理所述待处理数据,得到所述目标模型的模型推理结果。2.根据权利要求1所述的方法,其中,所述依次运行所述多个线程块来处理所述待处理数据包括多次迭代过程;其中,所述模型运算图配置有同步点序列,所述同步点序列包括多个同步点参数,所述多个同步点参数各自与所述多次迭代过程相对应,所述同步点参数的值表示与所述同步点参数对应的迭代过程中参与运算的线程块的最大数量。3.根据权利要求2所述的方法,其中,所述多次迭代过程中的每次迭代过程包括:从所述待处理数据中确定目标输入数据;以及基于所述模型运算图、所述线程块配置文件和与目标迭代过程对应的目标同步点参数,依次运行所述多个线程块来处理所述目标输入数据,得到所述目标迭代过程的输出数据;其中,所述依次运行所述多个线程块来处理所述待处理数据,得到所述目标模型的模型推理结果,包括:基于所述多次迭代过程各自的输出数据,得到所述目标模型的模型推理结果。4.根据权利要求3所述的方法,其中,所述基于所述模型运算图、所述线程块配置文件和与目标迭代过程对应的目标同步点参数,依次运行所述多个线程块来处理所述目标输入数据,得到所述目标迭代过程的输出数据,包括:确定目标同步点标识数据,其中,所述目标同步点标识数据表示所述目标迭代过程中已参与运算的线程块的数量;在所述目标同步点标识数据小于或等于所述目标同步点参数的情况下,基于所述目标同步点标识数据确定第一目标线程块;根据所述线程块配置文件,确定与所述第一目标线程块对应的第一功能模块;根据所述模型运算图,确定与所述第一功能模块关联的第二功能模块;根据所述第二功能模块的输出数据,确定当前输入数据;以及运行所述第一目标线程块来处理所述当前输入数据,得到当前输出数据。5.根据权利要求4所述的方法,其中,所述模型推理请求还包括所述目标模型的参数;所述方法还包括:基于所述线程块配置文件,将所述目标模型的参数分别写入多个所述线程块各自的共享存储单元。6.根据权利要求5所述的方法,其中,所述运行所述第一目标线程块来处理所述当前输入数据,得到当前输出数据,包括:从所述目标线程块的共享存储单元中读取目标模型参数;以及
运行所述第一目标线程块,对所述目标模型参数和所述当前输入数据进行矩阵运算,得到所述当前输出数据。7.根据权利要求5所述的方法,其中,所述基于所述线程块配置文件,将所述目标模型的参数分别写入多个所述线程块各自的共享存储单元,包括:对于每个所述功能模块,从所述目标模型的参数中确定与所述功能模块对应的目标参数集;基于所述线程块配置文件,确定与所述功能模块对应的第二目标线程块;以及将所述目标参数集写入所述第二目标线程块的共享存储单元。8.根据权利要求4所述的方法,还包括:在运行所述第一目标线程块来处理所述当前输入数据,得到当前输出数据之后,利用预设规则调整所述目标同步点标识数据。9.根据权利要求4所述的方法,还包括:在所述目标同步点标识数据大于所述目标同步点参数的情况下,控制所述多个线程块停止运行;以及基于所述多个线程块的当前输出数据,得到所述目标迭代过程的输出数据。10.根据权利要求1所述的方法,还包括:基于所述目标模型的参数,确定所述多个功能模块各自的资源占用信息;基于所述计算单元的资源配置信息和多个功能模块各自的资源占用信息,生成所述线程块配置文件;以及将所述线程块配置文件写入所述托管存储单元。11.一种深度学习模型的推理装置,包括:获取模块,用于响应于接收到模型推理请求,基于所述模型推理请求包括的目标模型的模型标识,从托管存储单元获取与所述目标模型关联的模型运算图和线程块配置文件,其中,所述模型推理请求还包括待处理数据,所述模型运算图包括多个节点,所述多个节点各自表示所述目标模型的多个功能模块,所述多个节点之间的边表示多个所述功能模块的运行顺序,所述线程块配置...

【专利技术属性】
技术研发人员:丛士钧王桂彬徐扬凯
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1