logo好方法网

机器学习模型的编译优化方法和装置


技术摘要:
本发明公开了一种机器学习模型的编译优化方法和装置。其中,该方法包括:运行第一机器学习模型分别对N个数据集进行处理,得到N组模型运行信息;根据所述N组模型运行信息,在所述第一组操作中确定出N个操作集合;根据所述N个操作集合,在所述第一组操作中确定允许被分别  全部
背景技术:
机器学习系统中的编译优化有提前编译和即时编译两大类技术。现有机器学习系 统在编译时,没有引入运行时的采样信息,由于没有采样运行时张量形状的变化信息,会导 致在多次迭代过程中因为部分操作张量形状变化引发计算图大部分操作的重新编译。这类 重编译非常耗时且耗内存。 针对相关技术中,由于在机器学习在编译时没有引入运行时的采样信息,导致的 编译周期长、浪费资源的问题,目前尚未存在有效的解决方案
技术实现要素:
本发明实施例提供了一种机器学习模型的编译优化方法和装置,以至少解决由于 在机器学习在编译时没有引入运行时的采样信息,导致的编译周期长、浪费资源的技术问 题。 根据本发明实施例的一个方面,提供了一种机器学习模型的编译优化方法,包括: 运行第一机器学习模型分别对N个数据集进行处理,得到N组模型运行信息,其中,对于每个 所述数据集,所述第一机器学习模型被多次运行,得到一组所述模型运行信息,所述第一机 器学习模型包括第一组操作,所述第一组操作中的操作为允许被目标编译器处理的操作, 每组所述模型运行信息用于指示:在所述多次运行所述第一机器学习模型对一个所述数据 集进行处理的过程中,所述第一组操作中的每个操作的输入张量和输出张量的形状是否发 生变化,N为大于1的自然数;根据所述N组模型运行信息,在所述第一组操作中确定出N个操 作集合;根据所述N个操作集合,在所述第一组操作中确定允许被分别编译的多个操作子集 合,其中,所述多个操作子集合设置为允许被所述目标编译器分别编译;使用所述目标编译 器分别对与每个所述编译区域对应的所述操作子集合进行编译。 可选地,每个所述操作集合包括第一操作子集合和第二操作子集合,每个所述第 一操作子集合包括在所述多次运行所述第一机器学习模型对一个所述数据集进行处理的 过程中输入张量和输出张量的形状均未发生变化的操作,每个所述第二操作子集合包括在 所述多次运行所述第一机器学习模型对一个所述数据集进行处理的过程中输入张量和/或 输出张量的形状发生变化的操作,其中,所述根据所述N个操作集合,在所述第一组操作中 确定允许被分别编译的多个操作子集合,包括:对于所述N个操作集合中的每个操作集合, 执行以下操作,其中,在执行以下操作的过程中,所述每个操作集合被视为当前操作集合: 在所述第一组操作中确定是否存在第三操作子集合,其中,所述第三操作子集合中的操作 仅出现在所述当前操作集合中的所述第二操作子集合中、而未出现在所述N个操作集合中 除所述当前操作集合之外的操作集合中的所述第二操作子集合中;其中,在存在所述第三 5 CN 111580828 A 说 明 书 2/15 页 操作子集合的情况下,所述第三操作子集合为所述多个操作子集合中的一个操作子集合。 可选地,每个所述操作集合包括第一操作子集合和第二操作子集合,每个所述第 一操作子集合包括在所述多次运行所述第一机器学习模型对一个所述数据集进行处理的 过程中输入张量和输出张量的形状均未发生变化的操作,每个所述第二操作子集合包括在 所述多次运行所述第一机器学习模型对一个所述数据集进行处理的过程中输入张量和/或 输出张量的形状发生变化的操作,其中,所述根据所述N个操作集合,在所述第一组操作中 确定允许被分别编译的多个操作子集合,包括:对所述N个操作集合中的所述第一操作子集 合取交集,得到第四操作子集合,其中,所述第四操作子集合为所述多个操作子集合中的一 个操作子集合。 可选地,所述方法还包括:对所述N个操作集合中的所述第二操作子集合取交集, 得到第五操作子集合;将所述第五操作子集合中的操作设置为放弃使用搜索目标编译器进 行编译。 可选地,所述根据所述N个操作集合,在所述第一组操作中确定允许被分别编译的 多个操作子集合,包括:在所述第一组操作中确定是否存在第六操作子集合,其中,所述第 六操作子集合中的操作包括:在所述多次运行所述第一机器学习模型对所述N个数据集中 的第一个数据集进行处理的过程中输入张量和输出张量的形状均未发生变化,且在对所述 N个数据集中除了所述第一个数据集之外的其它N-1个数据集进行处理的过程中输入张量 和/或输出张量的形状发生变化的操作,以及在所述多次运行所述第一机器学习模型对所 述N个数据集中的第M个数据集进行处理的过程中输入张量和/或输出张量的形状发生变 化,且除了所述第M个数据集之外的其它N-1个数据集进行处理的过程中输入张量和输出张 量的形状均未发生变化的操作,其中,所述第M个数据集为所述N个数据集中除所述第一个 数据集之外的数据集;其中,在存在所述第六操作子集合的情况下,所述第六操作子集合为 所述多个操作子集合中的一个操作子集合。 可选地,所述根据所述N个操作集合,在所述第一组操作中确定允许被分别编译的 多个操作子集合,包括:在所述第一组操作中确定是否存在第七操作子集合,其中,所述第 七操作子集合中的操作为在所述多次运行所述第一机器学习模型对所述N个数据集中的第 一个数据集进行处理的过程中输入张量和/或输出张量的形状发生变化,且在对所述N个数 据集中除了所述第一个数据集之外的其它N-1个数据集进行处理的过程中输入张量和输出 张量的形状均未发生变化的操作;其中,在存在所述第七操作子集合的情况下,所述第七操 作子集合为所述多个操作子集合中的一个操作子集合。 可选地,所述根据所述N个操作集合,在所述第一组操作中确定允许被分别编译的 多个操作子集合,包括:在所述第一组操作中确定是否存在第八操作子集合,其中,所述第 八操作子集合中的操作为在所述多次运行所述第一机器学习模型对所述N个数据集中第M 个数据集进行处理的过程中输入张量和输出张量的形状均未发生变化,且除了所述第M个 数据集之外的其它N-1个数据集进行处理的过程中输入张量和/或输出张量的形状发生变 化的操作,其中,所述第M个数据集为所述N个数据集中除第一个数据集之外的数据集;其 中,在存在所述第八操作子集合的情况下,所述第八操作子集合为所述多个操作子集合中 的一个操作子集合。 可选地,所述根据所述N个操作集合,在所述第一组操作中确定允许被分别编译的 6 CN 111580828 A 说 明 书 3/15 页 多个操作子集合,包括:在所述第一组操作中确定是否存在第九操作子集合,其中,所述第 九操作子集合中的操作为在所述多次运行所述第一机器学习模型对所述N个数据集中进行 处理的过程中,输入张量和/或输出张量的形状发生变化的操作;其中,在存在所述第九操 作子集合的情况下,所述第九操作子集合为所述多个操作子集合中的一个操作子集合。 可选地,对于每个所述数据集,所述第一机器学习模型被多次运行,得到一组所述 模型运行信息,包括:重复执行多次以下步骤:将数据集中的多个输入张量分别输入至所述 第一组操作中部分或全部的操作;每运行一次所述第一机器学习模型,修改所述数据集中 的一个或多个变量的变量值,在下一次运行所述第一机器学习模型时,将修改后的数据集 的多个输入张量分别输入至所述第一组操作中部分或全部的操作,运行一次所述第一机器 学习模型,得到所述第一组操作中的每个操作的输入张量和输出张量;比较在所述多次运 行所述第一机器学习模型的过程中所述第一组操作中的每个操作的输入张量和输出张量 的形状是否发生变化,得到一组所述模型运行信息。 可选地,所述方法还包括:在所述允许被分别编译的一个操作子集合中包括多个 目标操作的情况下,使用所述目标编译器将所述多个目标操作合并成一个操作,保留所述 第一机器学习模型中除所述多个目标操作之外的操作,并将所述多个目标操作的输入张量 和输出张量转换为所述一个操作的输入张量和输出张量,得到第二机器学习模型;或者使 用所述目标编译器将所述第一机器学习模型中的所述多个目标操作合并成多个操作,保留 所述第一机器学习模型中除所述多个目标操作之外的操作,并将所述多个目标操作的输入 张量和输出张量转换为合并成的所述多个操作的输入张量和输出张量,得到第二机器学习 模型,其中,所述合并成的所述多个操作中操作的数量小于所述多个目标操作中操作的数 量。 可选地,使用所述目标编译器分别对与每个所述编译区域对应的所述操作子集合 进行编译,包括:将正式数据输入至所述第二机器学习模型;使用所述目标编译器对所述第 二机器学习模型进行编译,得到所述第二机器学习模型对所述正式数据进行处理后输出的 处理结果。 根据本发明实施例的另一方面,还提供了一种机器学习模型的编译优化装置,包 括:运行模块,用于运行第一机器学习模型分别对N个数据集进行处理,得到N组模型运行信 息,其中,对于每个所述数据集,所述第一机器学习模型被多次运行,得到一组所述模型运 行信息,所述第一机器学习模型包括第一组操作,所述第一组操作中的操作为允许被目标 编译器处理的操作,每组所述模型运行信息用于指示:在所述多次运行所述第一机器学习 模型对一个所述数据集进行处理的过程中,所述第一组操作中的每个操作的输入张量和输 出张量的形状是否发生变化,N为大于1的自然数;第一确定模块,用于根据所述N组模型运 行信息,在所述第一组操作中确定出N个操作集合;第二确定模块,用于根据所述N个操作集 合,在所述第一组操作中确定允许被分别编译的多个操作子集合,其中,所述多个操作子集 合设置为允许被所述目标编译器分别编译;编译模块,用于使用所述目标编译器分别对与 每个所述编译区域对应的所述操作子集合进行编译。 根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机 可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述机器 学习模型的编译优化方法。 7 CN 111580828 A 说 明 书 4/15 页 根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上 述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的机器 学习模型的编译优化方法。 在本发明实施例中,采用运行第一机器学习模型分别对N个数据集进行处理,得到 N组模型运行信息,对于每个所述数据集第一机器学习模型被多次运行,得到一组模型运行 信息,第一机器学习模型包括第一组操作,第一组操作中的操作为允许被目标编译器处理 的操作,每组模型运行信息用于指示:在多次运行所述第一机器学习模型对一个数据集进 行处理的过程中,第一组操作中的每个操作的输入张量和输出张量的形状是否发生变化,N 为大于1的自然数;根据N组模型运行信息,在第一组操作中确定出N个操作集合;使用目标 编译器分别对与每个编译区域对应的操作子集合进行编译。达到了引入机器学习模型编译 运行时的张量信息,对机器学习模型进行优化的目的,从而实现了提升机器学习模型的编 译效率的技术效果,进而解决了由于在机器学习在编译时没有引入运行时的采样信息,导 致的编译周期长、浪费资源的技术问题。 附图说明 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中: 图1是根据本发明实施例的机器学习模型的编译优化方法的硬件环境的示意图; 图2是根据本发明实施例的一种可选的机器学习模型的编译优化方法的应用框架 图; 图3是根据本发明实施例的机器学习模型的编译优化方法的流程图; 图4是根据本发明一个可选实施例的机器学习模型的编译优化方法示意图一; 图5是根据本发明一个可选实施例的机器学习模型的编译优化方法示意图二; 图6是根据本发明一个可选实施例的机器学习模型的编译优化方法示意图三; 图7是根据本发明实施例的机器学习模型的编译优化装置的结构框图; 图8是根据本发明实施例的一种可选的电子设备的结构示意图。
分享到:
收藏