掌桥专利:专业的专利平台
掌桥专利
首页

模型自动优化的方法及装置、设备、存储介质

文献发布时间:2023-06-19 11:14:36


模型自动优化的方法及装置、设备、存储介质

技术领域

本申请涉及人工智能领域,涉及但不限定于模型自动优化的方法及装置、设备、存储介质。

背景技术

面向大量的已经在云端、高智能设备上应用的深度学习业务模型,模型通道剪枝(Model Channel Pruning)是一种非常有效的模型轻量化或者模型稀疏化方法。现有很多深度神经网络(Deep Neural Networks,DNN)模型预测准确度已经超过人类,然而模型庞大、结构复杂,存在大量冗余信息和结构,降低了模型的预测性能,占用了大量计算存储资源。通过对模型各层中冗余通道的特征分析和卷积核裁剪,可以尝试在保持模型精度的同时快速降低模型网络复杂度,提升模型运行效能。

目前基于通道剪枝的方法存在以下问题:1)考虑指标不全面。比如大部分方法仅考虑模型性能提升和复杂度降低,没有考虑因为剪枝造成的模型质量(准确度)下降;2)剪枝判定标准众多。主要方法比如基于卷积核权重、基于激活函数特性、基于反向梯度等,算法效果和性能各有利弊;3)自动化程度偏低。大部分方法中间需要人工参与决策、调参;4)剪枝计算量庞大。如ThiNet、区分感知通道剪枝(Discrimination-aware channelpruning,DCP)等依赖训练的方法,整个剪枝过程对模型的算力(Flops)要求较高,剪枝效率偏低。

发明内容

有鉴于此,本申请实施例为解决现有技术中存在的至少一个问题而提供一种模型自动优化的方法及装置、设备、存储介质,其中,本申请实施例提供的一种模型自动优化的方法,解决了在基于通道剪枝使模型轻量化的过程中,仅考虑模型的性能提升和复杂度降低,没有考虑因为剪枝造成的模型质量(准确度)过低而不可用的问题。

本申请实施例的技术方案是这样实现的:

第一方面,本申请实施例提供一种模型自动优化的方法,所述方法包括:

根据所述模型的目标需求,确定所述模型的优化指标;

根据所述模型的优化指标,确定对应的目标约束条件;

根据所述模型的模型特征,生成所述模型的剪枝策略;

根据所述剪枝策略和所述目标约束条件,对所述模型进行裁剪,得到目标模型,以实现所述模型的自动优化。

第二方面,本申请实施例提供一种模型自动优化的装置,所述装置包括第一确定模块、第二确定模块、生成模块和裁剪模块,其中:

所述第一确定模块,用于根据所述模型的应用需求,确定所述模型的优化指标;

所述第二确定模块,用于根据所述模型的优化指标,确定对应的目标约束条件;

所述生成模块,用于根据所述模型的模型特征,生成所述模型的剪枝策略;

所述裁剪模块,用于根据所述剪枝策略和所述目标约束条件,对所述模型进行裁剪,得到目标模型,以实现所述模型的自动优化。

第三方面,本申请实施例提供一种模型自动优化的设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述模型自动优化的方法中的步骤。

第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述模型自动优化的方法中的步骤。

本发明实施例提供的技术方案带来的有益效果至少包括:

在本申请实施例中,根据目标设备环境对模型的目标需求,综合考虑质量与效能两方面因素,定义模型的优化指标和优化指标对应的目标约束条件,同时根据模型特征生成模型的剪枝策略,将所述目标约束条件和剪枝策略作为输入进行模型重构,得到具有端侧部署和实时运行能力的轻量化、高准确率模型;如此既保证模型轻量化后的性能提升,同时保护了模型的准度不至于过低,解决了在基于通道剪枝使模型轻量化的过程中,仅考虑模型的性能提升和复杂度降低,没有考虑因为剪枝造成的模型质量(准确度)过低而不可用的问题。

附图说明

图1为本申请实施例提供的一种模型自动优化的方法的流程示意图;

图2为本申请实施例提供的另一种模型自动优化的方法的流程示意图;

图3为本申请实施例提供的又一种模型自动优化的方法的流程示意图;

图4A为本申请实施例提供的一种模型自动优化的方法的整体实现流程示意图;

图4B为本申请实施例提供的一种模型自动优化的方法中剪枝比例生产者的流程示意图;

图5为本申请实施例提供的一种模型自动优化的装置的组成结构示意图;

图6为本申请实施例提供的一种模型自动优化的设备的一种硬件实体示意图。

具体实施方式

经过调研,相关技术中基于通道剪枝使模型轻量化的方法存在以下问题:1)只考虑对模型的剪枝轻量化,普遍没有考虑剪枝带来的模型精度损失问题。对于精度敏感性模型来说,可能这类方法过于简单和粗糙,无论从目标指标还是剪枝流程,未体现出对模型精度的考量;2)依赖的判别标准和通道重要程度的关联关系不明确。比如卷积核权重的大小是否和通道重要程度有强相关,并未有理论上的依据,而且通过阈值的方式往往是一种基于人工经验进行设定的方法,没有自适应能力,是否适用于所有模型,此方法的鲁棒性未知;3)是否支持自动化实现。大部分方法没有给出自动化流程设计,不明确是否能脱离人工干预,进行自动、智能的轻量化。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

实施例一

本申请实施例提供一种模型自动优化的方法,所述模型自动优化的方法应用于终端,所述终端可以为手机,平板电脑或者个人电脑等,本申请实施例对此不做限定。图1为本申请实施例一提供的一种模型自动优化的方法的流程示意图,如图1所示,所述方法包括:

步骤S101,根据所述模型的目标需求,确定所述模型的优化指标。

这里,所述模型的目标需求为所述模型的目标部署环境,如需要部署所述模型的目标设备的硬件要求及应用需求,硬件要求比如中央处理器(Central Processing Unit,CPU)处理能力、图像处理器(Graphics Processing Unit,GPU)计算能力、内存/RAM/DRAM内存利用率等;应用需求如模型识别准确率/错误率(Accuracy/Error)、模型预测时间(Runtime)、每秒处理帧数(FPS)等。

这里,所述模型的优化指标为使模型轻量化的评价指标,被轻量化之后的模型不包含设计模型中的非几何信息,仅保留了产品的结构和几何拓补关系,也就是模型所包含的信息会大量减少,文件所占用的空间也会小很多。

需要说明的是,在本申请实施例中,综合考虑AI模型的质量(准确率)和效能(性能、功耗)因素,所述优化指标主要包括模型预测准确率/错误率、模型预测时间、模型算力和模型参数量等,其中模型算力指的是模型的计算能力,模型参数量是模型内部的配置变量,在进行预测时用到,如权重(weight)和偏置(bias),模型参数的值可以根据数据进行估计。

步骤S102,根据所述模型的优化指标,确定对应的目标约束条件。

这里,可以建立和优化指标之间的关联关系,直接量化模型预测准确率、模型预测时间、模型算力和模型参数量等优化指标各自对应的目标约束条件(Target Condition),例如模型预测准确率的目标约束条件为模型错误率<=15%、模型算力的目标约束条件为Flops<=21Gflops、模型预测时间的目标约束条件为每张图片识别速度Runtime<=50ms和模型参数量的目标约束条件为Param<=1×10

进一步地,将目标约束条件作为输入,通过构建反馈函数,可自动实现优化和决策问题。

步骤S103,根据所述模型的模型特征,生成所述模型的剪枝策略。

这里,所述模型的模型特征为对该模型的网络结构进行解析、计算或提取得到,比如通过模型构建框架(如TensorFlow、Caffe等)相关的应用程序接口(ApplicationProgramming Interface,API),或者框架间的交互工具,比如ONNX、MMDNN等,解析原模型的网络结构和配置参数等信息。

这里,所述模型的剪枝策略为对所述模型的各层通道裁剪比例的决策。

步骤S104,根据所述剪枝策略和所述目标约束条件,对所述模型进行裁剪,得到目标模型,以实现所述模型的自动优化。

这里,所述目标模型为具有端侧部署和实时运行能力的轻量化模型(CompressedModel)。可以按照目标约束条件,根据剪枝策略对原模型进行通道裁剪,实现原模型的自动轻量化。

在本申请实施例中,首先根据所述模型的目标需求,确定所述模型的优化指标;然后根据所述模型的优化指标,确定对应的目标约束条件;再根据所述模型的模型特征,生成所述模型的剪枝策略;最后根据所述剪枝策略和所述目标约束条件,对所述模型进行裁剪,得到目标模型,以实现所述模型的自动优化;如此,面向模型轻量化需求,同时考虑质量和效能,给出轻量化评价指标集,以及目标约束条件,并且构建通道剪枝策略模型,自适应、动态地找到最佳模型通道剪枝比,解决对复杂度较高的深度学习模型的自动剪枝优化问题。

实施例二

本申请实施例提供一种模型自动优化的方法,应用于终端,图2为本申请实施例提供的另一种模型自动优化的方法的流程示意图,如图2所示,所述方法包括:

步骤S201,根据所述模型的目标需求,确定所述模型的优化指标。

步骤S202,根据所述模型的优化指标,确定对应的目标约束条件。

步骤S203,根据所述模型每一层的特征信息,确定所述模型每一层的剪枝比例决策。

这里,所述模型为多层结构,例如深度神经网络模型包括卷积层,池化层,激活函数层,归一化层、全连接层和输出层。

这里,通过提取每一层的特征信息,生成各对应层的特征向量,并送入基于Actor-Critic(表演者-评价者)强化学习机制的不断迭代优化的决策模型中,生成对应各层的通道剪枝比例,最终确定所述模型每一层的剪枝比例决策,如此构建通道剪枝策略模型,自适应、动态的找到最优模型通道剪枝比例。

需要说明的是,表演者模型(Actor)和评价者模型(Critic)可以用神经网络、线性函数、内核(kernel)等多种方式构建。

这里,所述步骤S203可以通过以下过程实现:

S2031,根据所述模型每一层的特征信息,确定所述模型每一层的特征向量。

这里,所述模型每一层的特征信息包括模型中通道剪枝的层索引、所需剪枝层的个数、每层输入的通道数、卷积核的尺寸、卷积核的滑动步长和边界填充、当前卷积层的算力、该层之前各层的累积算力、该层之后各层的累积算力和前一卷积层的通道裁剪比例等,根据上述各层的特征信息,生成各对应层的特征向量。

S2032,根据所述模型每一层的特征向量,确定模型每一层对应的通道剪枝比例。

这里,通过特征向量可以有效的区分不同卷积层间的不同,在确定通道剪枝比例之前可进行各特征的归一化处理。

这里,通过强化学习机制中表演者模块获取模型每层的特征向量,输出对应各层的通道剪枝比例。

需要说明的是,根据已有研究统计,在卷积神经网络(Convolutional NeuralNetworks,CNN)中卷积(conv)层的算力平均占比遥遥领先于其他层,所以可以假设卷积层是进行通道剪枝的主要对象。

S2033,根据所述模型每一层的特征向量和所述模型每一层对应的通道剪枝比例,生成模型每一层的决策评分。

这里,所述模型每一层的特征向量和对应的通道剪枝比例作为基于Actor-Critic强化学习机制中评价者模型的输入,经评价者模型输出对此次表演者模型决策的决策评分。

S2034,根据所述决策评分对所述通道剪枝比例进行反馈调节,确定所述模型每一层的剪枝比例决策。

这里,表演者模型会在决策者模型的决策评分下不断调整自己的模型和优化自己的决策,从而确定所述模型每一层的剪枝比例决策,即输出每一层的最优通道剪枝比。

步骤S204,根据所述模型每一层的剪枝比例决策,生成所述模型的剪枝策略。

这里,将所述模型每一层的剪枝比例决策,组合生成整个模型的剪枝策略。

上述步骤S203和S204提出了一种实现“根据所述模型的模型特征,生成所述模型的剪枝策略”的方式,在该方式中通过提取每一层的特征信息,生成各对应层的特征向量,并送入基于强化学习机制的不断迭代优化的决策模型中,生成对应各层的通道剪枝比例,最终确定所述模型每一层的剪枝比例决策,并生成整个模型的剪枝策略。

步骤S205,根据所述剪枝策略和所述目标约束条件,对所述模型进行裁剪,得到目标模型,以实现所述模型的自动优化。

在本申请实施例中,通过提取每一层的特征信息,生成各对应层的特征向量,并送入基于强化学习机制的不断迭代优化的决策模型中,生成对应各层的通道剪枝比例,最终确定所述模型每一层的剪枝比例决策,并生成整个模型的剪枝策略,如此,凭借Actor-Critic算法强化学习和反馈函数的设计,构建通道剪枝策略模型,自适应、动态的找到最佳通道剪枝比。本申请实施例给出一种自学习机制,自动学习决策剪枝,规避了传统人工经验和提升了对不同模型的普适性。

实施例三

本申请实施例提供一种模型自动优化的方法,应用于终端,图3为本申请实施例提供的又一种模型自动优化的方法的流程示意图,如图3所示,所述方法包括:

步骤S301,根据所述模型的目标需求,确定所述模型的优化指标。

步骤S302,根据所述模型的优化指标,确定对应的目标约束条件。

步骤S303,根据所述模型的模型特征,生成所述模型的剪枝策略。

步骤S304,根据所述剪枝策略对所述模型进行裁剪,得到中间模型。

这里,通过剪枝执行代理完成基于所述剪枝策略的通道序列的选取、剪枝的执行,即按照每一层的剪枝比例裁剪每一层中部分不重要的通道,得到中间模型。

这里,所述步骤S304可以通过以下过程实现:

步骤S3041,根据所述剪枝策略确定各层的裁剪通道集合。

这里,经过剪枝策略代理会根据原始模型特征得到各层裁剪比例,但是具体保留或裁减哪几个通道,还需要进行通道选择,也就是根据裁剪比例以及不同通道的重要性程度找到裁剪通道集合。

需要说明的是,通道选择的代表性方法有几类:i)基于卷积核权重,比如加权和(Weight Sum),计算过滤器(filter)的绝对值和,此方法的好处是不依赖数据、计算简单,但准度相对较低;ii)基于卷积核梯度,比如鉴别力感知的通道剪枝(Discrimination-aware Channel Pruning,DCP),将通道选择问题转换为鉴别力感知损失(discrimination-aware loss)和重建损失(reconstruction loss)的优化问题,通过反向传播计算卷积核梯度,找到裁剪的通道集合。此方法严重依赖数据、需要前向计算误差、反向计算梯度,对算力有很高要求;iii)基于特征映射(Feature Map),比如APoZ,计算该层输出的特征映射的值稀疏度。此类方法需要数据驱动,前向推理,计算量和准度相对适中。

本申请实施例考虑到整体方法的执行效率,可以采用基于特征映射的方法结合贪心算法,通过少量随机数据进行通道选择,如此既保证了一定的准确率,又有高效的计算过程。

步骤S3042,根据所述裁剪通道集合,通过应用程序接口API对所述模型的各层进行裁剪,得到所述中间模型。

这里,根据裁剪通道集合,通过模型构建框架(如TensorFlow、Caffe等)相关API对网络结构和权重剪枝,完成模型重构,生成中间模型。

步骤S305,根据所述目标约束条件对所述中间模型进行效果评估,得到评估结果。

这里,所述中间模型为原模型经过通道剪枝得到,只包含少量评估数据集,通过少量评估数据集评估模型轻量化指标,如模型预测错误率、模型运行时间、模型算力和模型参数量等,其中模型算力和模型参数量指标也可根据结构通过公式计算。

步骤S306,若所述评估结果表明所述中间模型满足所述目标约束条件,对所述中间模型进行模型微调,得到所述目标模型。

这里,若评估出中间模型满足既定目标约束条件,则进行模型微调(Fine-tune)后输出目标模型即轻量化模型。

这里,模型微调的过程是对满足条件的中间模型进行最后的小样本微调训练,以进一步回升模型的准确率。在微调过程中可以借鉴网络蒸馏的方法,通过教师(原始模型Original Model)-学生网络(中间状态模型Mid-state Model)间的特征迁移学习,规避对标签数据的依赖,输出满足轻量化条件的轻量化模型。

需要说明的是,所述中间模型在评估的时候无需做微调训练,能够大大提升方法效率。

步骤S307,若所述评估结果表明所述中间模型不满足所述目标约束条件,对所述剪枝策略进行反馈调节,得到新的剪枝策略。

这里,若所述中间模型不满足所述目标约束条件,计算奖励(或惩罚)反馈到剪枝比例生成部分进行下一步迭代优化。

进一步地,根据所述新的剪枝策略对所述中间模型进行裁剪,得到新的中间模型;根据所述目标约束对所述新的中间模型进行效果评估,得到新的评估结果。

这里,可以预设全局迭代上限,作为另一个终止条件。因为目标约束的苛刻程度以及模型的冗余程度不同,导致目标约束条件不一定可达,整个方法可能陷入死循环。

需要说明的是,根据步骤S305的评估结果,只能出现上述步骤S306和S307的两种之一。

在本申请实施例中,在根据模型的模型特征确定剪枝策略后,基于特征映射的贪心算法,快速搜索通道剪枝序列,准确、高效地完成通道剪枝序列选择;进行模型重构和评估;同时对于满足目标预设条件的中间模型,基于网络蒸馏的微调方法,对剪枝后的模型进行参数微调,使准度回升规避对标签数据的依赖,获得更高的模型准确率。

实施例四

机器智能是实现端侧智能的关键技术。其核心目的是在物联网(Internet ofThings,IoT)终端上基于受限的计算、存储、数据等资源进行端侧分析与决策,实现无人值守设备自操作能力的提升。由于机器智能具备低延迟、高可靠、高隐私保护、高效带宽利用、个性化服务等优势,可广泛应用于自动驾驶、工业控制、智能穿戴、视频分析、智能家居等领域。据相关报告测算,未来可达千亿级市场价值。

机器智能也面临很多挑战。大部分物联网嵌入式设备受到成本和功耗等因素的限制,无法具备足够的算力、存储以及数据资源。然而,人工智能(Artificial Intelligence,AI)模型对目标设备的算力存储均有比较高的要求,同时,在特定场景下对模型实时性也有严格要求,这导致在图形处理器(Graphics Processing Unit,GPU)集群或个人计算机(Personal Computer,PC)端训练和运行的高复杂度模型无法直接部署在受限终端上。

为了应对上述挑战,需要借助AI模型轻量化技术。模型轻量化已经成为AI向物联网赋能过程中不可或缺的一个重要环节,自动化的模型轻量化技术已经逐步成为AI模型端到端训练、部署、运行中一项必备基础能力。模型自动轻量化有两种思路。一种是基于已有模型的轻量化或加速,具体包括通道剪枝、权重稀疏化、权重量化、模型蒸馏、计算图优化、卷积算法优化、硬件加速等。另一种就是基于网络架构搜索(Neural ArchitectureSearch,NAS)的轻量化模型自动构建,具体代表就是谷歌(Google)的AutoML。

面向大量的已经在云端、高智能设备上应用的深度学习业务模型,模型通道剪枝是一种非常有效的模型轻量化或者模型稀疏化方法。相关技术中与通道剪枝模型轻量化方法相关的专利,主要有以下几类:1)基于权重和阈值的通道剪枝;2)基于聚类的方法进行通道剪枝;3)基于构建掩码矩阵的通道剪枝等,主要存在以下问题:1)只考虑对模型的剪枝轻量化,普遍没有考虑剪枝带来的模型精度损失问题。对于精度敏感性模型来说,可能这类方法过于简单和粗糙,无论从目标指标还是剪枝流程,未体现出对模型精度的考量;2)依赖的判别标准和通道重要程度的关联关系不明确。比如卷积核权重的大小是否和通道重要程度有强相关,并未有理论上的依据,而且通过阈值的方式往往是一种基于人工经验进行设定的方法,没有自适应能力,是否适用于所有模型,此方法的鲁棒性未知;3)是否支持自动化实现。大部分方法没有给出自动化流程设计,不明确是否能脱离人工干预,进行自动、智能的轻量化。

本申请实施例要解决的主要问题包括:1)面向模型轻量化需求,同时考虑质量和效能,给出轻量化评价指标集,以及目标约束条件;2)基于强化学习方法,构建通道剪枝策略模型,自适应、动态地找到最佳模型通道剪枝比;3)基于特征映射的贪心算法,准确、高效地完成通道剪枝序列选择;4)基于网络蒸馏的微调方法,对剪枝后的模型进行参数微调,规避对标签数据的依赖,获得更高的模型准确率。

本申请实施例面向AI技术向广大物联网设备的赋能,提出一种模型自动优化的方法。

图4A为本申请实施例提供的一种模型自动优化的方法的整体实现流程示意图。如图4A所述,输入为原始模型41和目标设备(Target Device)42,经过剪枝策略代理(PruningPolicy Agent)43、剪枝执行代理(Pruning Execution Agent)44,输出中间状态模型45,再经过模型微调模块46后,输出轻量化模型47,其中,①过程为层(Layer)级迭代过程:表示剪枝比例生产者(Pruning Ratio Producer)模块对DNN网络各层剪枝比例的迭代决策;②过程为模型(Model)级别迭代过程:通过模型级迭代不断优化Actor-Critic决策模型,使剪枝比例更吻合模型冗余特性,下面详细论述各模块的功能:

1、输入和输出

1)原始模型41

原始模型41为系统输入的原始DNN的预训练模型(Pre-trained Model)。通道剪枝就是针对DNN模型的各层冗余通道进行剪枝,轻量化或加速原始模型,以达到在对应的受限目标设备上部署和实时运行的目的。

2)目标设备42

目标设备42为模型的目标部署环境,比如Raspberry Pi 3B+。根据目标设备42的硬件要求及应用需求,可以量化模型轻量化指标集对应的目标约束条件,同时作为模型评估模块(Model Evaluation)443中奖励函数(Reward Function)的输入。

AI模型对目标设备42的算力和存储均有比较高的要求。然而,大部分物联网嵌入式设备受到成本、功耗等因素限制,所提供的计算和存储资源往往很有限。以深度学习网络AlexNet和中国移动和目摄像头为例。AlexNet模型尺寸超过200MB(兆),所需计算量高达720MIPS(百万条指令每秒,Million Instructions Per Second),而和目摄像头C15的存储容量仅32MB,远低于模型所需,最高计算能力仅220MIPS,处理每帧图片的所需时间(>3s)远高于可接受时延。

本申请实施例综合考虑AI模型的质量(准确率)和效能(性能、功耗)两方面因素,提出模型轻量化评价指标集,主要包括模型预测准确率/错误率、模型时间性能、模型算力和模型参数量等指标,如表1所示,为本申请实施例提供的模型轻量化评价指标及对应的目标约束条件:

表1模型轻量化评价指标及对应的目标约束条件

根据目标设备的硬件要求和应用需求,硬件要求比如CPU处理能力、GPU计算能力、内存/RAM/DRAM内存利用率等,应用需求如模型识别准确率/错误率、模型预测时间、每秒处理帧数等,可以建立和模型轻量化指标之间的关联关系,直接量化模型轻量化指标集对应的目标约束条件,通过构建奖励函数,可自动实现优化和决策问题。下面通过举例和表2来详细说明本申请实施例在实施过程中的目标约束条件:

表2举例一至四中的设备参数

举例一,假设原模型准确率为90%(即错误率Error=10%),采用不同的轻量化方法、策略和力度,会造成压缩后的模型准确率不同程度的下降,所以在轻量化前,对模型提出可容忍的目标错误率约束,比如放宽到Error<=15%。

举例二,假设图像识别类模型在端侧要求处理性能为FPS>=20,即每张图片识别速度Runtime<=50ms。

举例三,假设目标设备为Raspberray Pi 3B+,参考类似Linpack等Baseline标准,比如rasp3b+的算力上限为30GFlops。考量到硬件功耗和可靠性等因素,会假设一些算力冗余,比如要求在实际生产环境中算力冗余率为30%,则要求模型算力优化目标为Flops<=21GFlops。

举例四,假设目标设备为Nvidia Jetson Nano,其内存(Memory)为4GB,模型参数精度为Float16(2Byte/Weight),考量硬件功耗和可靠性等因素,假设要求在实际生产环境中模型的平均内存使用率为50%,则要求模型参数量优化目标为Param<=1×10

3)中间状态模型45

中间状态模型45为经过通道剪枝后生成的一种临时模型,此模型用于评估是否满足目标约束条件,若满足,则通过模型微调模块46得到最终的轻量化模型47,否则计算奖励(惩罚)值并反馈优化剪枝比例生产者432。

4)轻量化模型47

轻量化模型47为方法输出。在剪枝策略代理43和剪枝执行代理的不断迭代优化下,获得最佳通道剪枝方案和轻量化模型。

2、剪枝策略代理43

剪枝策略代理43包括模型解析器(Model Parser)431和剪枝比例生成者432两部分,通过剪枝策略代理43完成对原模型的网络结构解析,和对原模型各层通道道裁剪比例的决策,各部分详细功能如下:

1)模型解析器431

模型解析器431通过模型构建框架(如TensorFlow、Caffe等)相关API,或者框架间的交互工具,比如ONNX、MMDNN等,解析原模型的网络结构和配置参数等信息,计算和抽取13个特征值,生成各对应各层的特征向量s

s

其中,若模型中需要通道剪枝的层集为L={l

需要说明的是,根据已有研究统计,在卷积神经网络CNN中卷积层的算力平均占比遥遥领先于其他层,所以可以假设卷积层是我们进行通道剪枝的主要对象。

2)剪枝比例生产者432

剪枝比例生产者432是基于Actor-Critic强化学习机制的不断迭代优化的决策模型。图4B为本申请实施例提供的一种模型自动优化的方法中剪枝比例生产者的流程示意图,如图4B所示,表演者模型321获取原模型每层的特征向量s

剪枝比例生产者432会对每层进行迭代,直到完成所有n层的决策,生成整个模型的通道剪枝比例方案a

3、剪枝执行代理44

通过剪枝执行代理44完成基于通道剪枝比例方案a

1)通道选择模块441

经过剪枝策略代理43会根据原始模型特征得到各层裁剪比例,但是具体保留或裁减哪几个通道,需要通道选择模块441完成。通道选择模块441会根据裁剪比例以及不同通道的重要性程度找到裁剪通道的集合T。

目前,通道选择代表性方法有几类:i)基于卷积核权重,比如加权和,计算过滤器的绝对值和,此方法的好处是不依赖数据、计算简单,但准度相对较低;ii)基于卷积核梯度,比如鉴别力感知的通道剪枝DCP,将通道选择问题转换为鉴别力感知损失和重建损失的优化问题,通过反向传播计算卷积核梯度,找到裁剪的通道集合。此方法严重依赖数据、需要前向计算误差、反向计算梯度,对算力有很高要求;iii)基于特征映射,比如APoZ,计算该层输出的特征映射的值稀疏度。此类方法需要数据驱动,前向推理,计算量和准度相对适中。

考虑到整体方法的执行效率,本申请实施例主要采用基于特征映射的方法结合贪心算法,通过少量随机数据进行通道选择,如此既保证了一定的准确率,又有高效的计算过程。

基于贪心算法的通道选择方法,在实施过程中算法输入为原模型M、数据集D和第t层的通道剪枝比a

其中,数据集为D={1,L,i,L,k},共k个样本,在输入第d

2)通道剪枝模块442

通道剪枝模块442,根据通道剪枝集T,通过模型构建框架(如TensorFlow、Caffe等)相关API对网络结构和权重剪枝,完成模型重构,生成中间状态模型45。此方法中的中间状态模型45在评估时无需做微调训练,能够大大提升方法效率。

3)模型评估模块443

模型评估模块443,通过少量评估数据集评估模型各轻量化指标,如模型预测错误率、模型运行时间、模型算力和模型参数量等,其中模型算力和模型参数量指标也可根据结构通过公式计算。若满足既定目标约束条件,则进行模型微调后输出最终模型,否则根据奖励函数计算奖励(或惩罚)反馈到评价者模块进行下一步迭代优化。

另外,模型评估模块443可以预设全局迭代上限,作为另一个终止条件。因为目标约束的苛刻程度以及模型的冗余程度不同,导致目标约束条件不一定可达,整个方法可能陷入死循环。

通过奖励函数R,可以很准确的找到来自目标设备的轻量化目标与强化模型的优化之间的关联关系。本申请实施例建议奖励函数为如下公式(3)所示:

R=αR

其中,R

4、模型微调模块46

当模型评估满足约束条件时,模型微调模块46对满足条件的中间状态模型45进行最后的小样本微调训练,以进一步回升模型的准确率。

在微调过程中可以借鉴网络蒸馏的方法,通过教师-学生网络间特征迁移学习,在本申请实施例中原始模型为教师,中间状态模型为学生,从而规避对标签数据的依赖,输出满足轻量化条件的轻量化模型。

本申请实施例面向AI技术与物联网技术的融合,在基于强化学习的通道剪枝技术对DNN模型进行自动轻量化,将目标设备环境对模型的目标需求作为输入,综合考虑质量与效能两方面因素,定义模型轻量化指标集和对应的目标约束条件,凭借Actor-Critic强化学习和奖励函数的设计,自适应、动态的找到最佳通道剪枝比,通过基于特征映射的贪心算法快速搜索通道剪枝序列,进行模型重构和评估,经过网络蒸馏训练使准确度回升,解决对复杂度较高的深度学习模型的自动剪枝优化问题,形成具有端侧部署和实时运行能力的轻量化模型。本申请实施例面向5G+AICDE战略对已有AI能力,如目标检测、人脸识别、物体识别、行为识别等业务模型,向IoT终端产品业态,如和路由、和目摄像头、车载后视镜等产品的赋能,通过知识产权(Intellectual Property Rights,IPR)布局、原型实验、技术输出,致力于智能家居、车联网、智能制造、增强现实\虚拟现实(Augmented Reality\VirtualReality,AR\VR)等重要垂直行业和场景,AI、物联网、边缘计算等重要技术领域,以打造更好、更丰富的端-边智能软硬件产品生态圈,在人工智能、物联网、边缘计算等领域输出更多的价值。

实施例五

本申请实施例提供一种模型自动优化的装置400,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。

图5为本申请实施例提供的一种模型自动优化的装置的组成结构示意图,如图5所示,所述模型自动优化的装置500包括:第一确定模块501、第二确定模块502、生成模块503和裁剪模块504,其中:

所述第一确定模块501,用于根据所述模型的目标需求,确定所述模型的优化指标;

所述第二确定模块502,用于根据所述模型的优化指标,确定对应的目标约束条件;

所述生成模块503,用于根据所述模型的模型特征,生成所述模型的剪枝策略;

所述裁剪模块504,用于根据所述剪枝策略和所述目标约束条件,对所述模型进行裁剪,得到目标模型,以实现所述模型的自动优化。

在其他实施例中,所述生成模块503还包括确定子模块和生成子模块,其中:

所述确定子模块,用于根据所述模型每一层的特征信息,确定所述模型每一层的剪枝比例决策;所述生成子模块,用于根据所述模型每一层的剪枝比例决策,生成所述模型的剪枝策略。

在其他实施例中,所述确定子模块包括第一确定单元、第二确定单元、第一生成单元和第一反馈单元,其中:

所述第一确定单元,用于根据所述模型每一层的特征信息,确定所述模型每一层的特征向量;所述第二确定单元,根据所述模型每一层的特征向量,确定模型每一层对应的通道剪枝比例;所述第一生成单元,用于根据所述模型每一层的特征向量和所述模型每一层对应的通道剪枝比例,生成模型每一层的决策评分;所述第一反馈单元,用于根据所述决策评分对所述通道剪枝比例进行反馈调节,确定所述模型每一层的剪枝比例决策。

在其他实施例中,所述裁剪模块504还包括裁剪子模块、评估子模块和微调子模块,其中:

所述裁剪子模块,用于根据所述剪枝策略对所述模型进行裁剪,得到中间模型;所述评估子模块,用于根据所述目标约束条件对所述中间模型进行效果评估,得到评估结果;所述微调子模块,用于若所述评估结果表明所述中间模型满足所述目标约束条件,对所述中间模型进行模型微调,得到所述目标模型。

在其他实施例中,所述裁剪子模块还包括第三确定单元和裁剪单元,其中:

所述第三确定单元,用于根据所述剪枝策略确定各层的裁剪通道集合;所述裁剪单元,用于根据所述裁剪通道集合,通过应用程序接口API对所述模型的各层进行裁剪,得到所述中间模型。

在其他实施例中,所述裁剪模块504还包括反馈子模块,用于若所述评估结果表明所述中间模型不满足所述目标约束条件,对所述剪枝策略进行反馈调节,得到新的剪枝策略。

相应地,所述裁剪子模块还用于根据所述新的剪枝策略对所述中间模型进行裁剪,得到新的中间模型;所述评估子模块,还用于根据所述目标约束条件对所述新的中间模型进行效果评估,得到新的评估结果。

在其他实施例中,所述反馈子模块包括第四确定单元和第二反馈单元,其中:所述第四确定单元,用于根据所述轻量化指标,确定反馈函数;所述第二反馈单元,用于根据所述反馈函数,对所述剪枝策略进行反馈调节,得到新的剪枝策略。

这里需要指出的是:以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的模型自动优化的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得包含该存储介质的设备自动测试线执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。

对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的模型自动优化的方法中的步骤。

对应地,本申请实施例提供一种模型自动优化的设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的步骤。

本申请实施例提供一种模型自动优化的设备,图6为本申请实施例提供的一种模型自动优化的设备的一种硬件实体示意图,如图6所示,该设备600的硬件实体包括:处理器601、通信接口602和存储器603,其中

处理器601通常控制设备600的总体操作。

通信接口602可以使设备600通过网络与其他终端或服务器通信。

存储器603配置为存储由处理器601可执行的指令和应用,还可以缓存待处理器601以及设备600中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。

这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本申请实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得设备自动测试线执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。

本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 模型自动优化的方法及装置、设备、存储介质
  • 自动优化方法、装置、设备和存储介质
技术分类

06120112858457