首页 / 专利分类库 / 控制;调节 / 用于确定工业任务的AI模型的压缩率的方法和系统

用于确定工业任务的AI模型的压缩率的方法和系统

申请号 CN202180059888.4 申请日 2021-07-06 公开(公告)号 CN116134387B 公开(公告)日 2024-04-19
申请人 西门子股份公司; 发明人 弗拉迪米尔·拉夫里克; 孟仰峤;
摘要 本 发明 涉及一种根据工业任务(任务1,...,k;任务k+1,...,k+n)的AI模型的运行时属性的要求集合来确定AI模型的压缩率r*的推荐系统和方法,其中对于该AI模型,将原始的参数数量(n)缩减为减少的参数数量(n*)。在第一阶段中,以多个不同的压缩率ri来压缩每个AI模型,其中在 执行环境 中执行每个压缩的AI模型,并且作为执行期间的第一结果,记录运行时属性,并且其中通过对第一结果的解析分析来计算每个AI模型的最优压缩率r*并将其存储在 数据库 或类似系统中。在第二阶段中,来自数据库的数据被用于训练附加的 机器学习 模型。在针对新任务(任务k+1,...,k+n)的新AI模型的第三阶段中,定义期望运行时属性的新集合,并且使用附加的机器学习模型来确定新AI模型相对于期望运行时属性的最优压缩率r*。
权利要求

1.一种用于根据工业任务的AI模型的运行时属性的要求集合来确定所述AI模型的压缩率的方法,
其中,对于所述AI模型,将原始的参数数量缩减为减少的参数数量,
其特征在于,
在第一阶段,针对多个工业任务的多个不同AI模型,针对每个所述工业任务确定用于被分配的AI模型的多个不同压缩率,
其中,在第一步骤中,以所述多个不同压缩率来压缩每个AI模型,其中,在第二步骤中,每个被压缩的AI模型在执行环境中被执行,由此作为在每个AI模型的执行期间的第一结果,所述运行时属性被记录,
其中,在第三步骤中,通过对所述第一结果的解析分析,计算每个所述AI模型的最优压缩率,由此将每个工业任务的所述最优压缩率与所述工业任务的说明一起存储在数据库中,以及
在第二阶段中,使用来自所述数据库的数据来训练附加机器学习模型,所述附加机器学习模型具有关于每个所述工业任务的特征信息作为输入以及所计算的最优压缩率作为输出,所述特征信息至少包括关于存储器分配限制、被压缩的模型的推断时限、未压缩的AI模型的原始AI模型大小和使用的压缩算法的信息,并且
在针对新任务的新AI模型的第三阶段中,定义期望运行时属性的新集合,并且使用所述附加机器学习模型来确定所述新AI模型相对于期望运行时属性的所述最优压缩率。
2.根据权利要求1所述的方法,其中,在所述第一步骤中,针对每个压缩率创建被压缩的AI模型。
3.根据前述权利要求中任一项所述的方法,其中,至少使用所执行的AI模型的存储器消耗和推断时间作为运行时属性。
4.根据权利要求3所述的方法,其中,在所述第三步骤中,所述最优压缩率是仍符合所述运行时属性的要求的具有最优推断准确度a的压缩率。
5.根据权利要求1或2所述的方法,其中,在所述第三步骤中,对于每个工业任务,通过所记录的运行时属性来拟合线性或非线性函数。
6.根据权利要求5所述的方法,其中,所述函数是插值法。
7.根据权利要求1或2所述的方法,其中,使用工业边缘设备ED作为所述执行环境。
8.根据权利要求1或2所述的方法,其中,在所述第三步骤中,将所述未压缩的AI模型的运行时属性以及所述要求与所述最优压缩率一起存储。
9.根据权利要求1或2所述的方法,其中,在所述第二步骤中,所述执行环境是个人计算机、真实可编程逻辑控制器PLC、仿真可编程逻辑控制器、计算服务CCS或工业边缘设备ED中的一者。
10.一种用于根据工业任务的AI模型的运行时属性的要求集合来确定所述AI模型的压缩率的系统,
其中,对于所述AI模型,原始的参数数量被缩减到减少的参数数量,
其特征在于,
第一计算机系统,被设置用于执行根据权利要求1所述的方法的所述第一阶段的步骤,并且用于在执行所述被压缩的AI模型时控制所述执行环境,
第二计算机系统,被设置用于执行根据权利要求1所述的方法的所述第二阶段和所述第三阶段的方法步骤,以及
连接所述第一计算机系统和所述第二计算机系统的通信信道。
11.一种计算机可读存储介质,在其上存储有计算机可读代码,当在处理器上执行时,所述计算机可读代码执行根据权利要求1至9中的任一项或多项的方法步骤中的任一项。

说明书全文

用于确定工业任务的AI模型的压缩率的方法和系统

技术领域

[0001] 本发明涉及确定工业任务的AI模型的压缩率的方法、系统和计算机程序产品。

背景技术

[0002] 工业物联网的概念与基于AI的革命性解析技术一起可由以下语句来描述:给定生产地点、客户或自动化制造商安装工业装备,其中可能利用不同传感器收集不同类型的数据。收集的数据通过有线或无线连接传输以用于进一步分析。数据的分析是利用传统方法或AI方法来执行的。数据分析可以在上进行,或者利用所谓的边缘设备或其他计算设备上的部署模型(AI模型)现场进行。基于数据分析的结果,客户或自动化制造商本身可以执行商业/生产过程的优化,以降低生产成本、电消耗、资源使用,并且因此降低对全球气候变化的总体贡献。
[0003] AI模型在工业边缘设备、工业控制器(例如,PLC‑可编程逻辑控制器)上执行,或者甚至在基于云的计算实体(所谓的“web服务”或“云托管”)上执行。
[0004] 挑战在于,AI模型工作得越精确,它需要越多的资源(存储器空间、计算时间等)。另一方面,在现有环境中,计算能力(“CPU时间”)是有限的。此外,在大多数情况下,AI模型的响应是在有限的时间范围内,因此最大响应时间或“推断时间”是有限的。AI模型可以被压缩,例如在减少其参数方面,以便加速和减少存储器分配或其他资源消耗。然而,这种压缩降低了AI模型预测的准确度。
[0005] 文献CN110163341A“神经网络模型优化处理的方法和设备”公开了一种深度神经网络的压缩方法。
[0006] 如上所表述,如何执行优化的一种方法是,与适当的AI模型一起,找到如何优化该AI模型的方式,以便将其部署在边缘设备或诸如工业控制器的另一个执行环境上,使得其将尽可能精确和高效地运行,目的在于减少计算工作量并降低总功耗。

发明内容

[0007] 因此,本发明的任务是提出一种用于选择应在工业环境中部署的AI模型的最优压缩率的方法和推荐系统。
[0008] 该任务的解决方案考虑工业环境要求、边缘设备(或其他执行环境)本身的硬件资源和解析项目(“工业任务”)描述中的AI模型所指定的要求。
[0009] 当为AI模型选择压缩率时,我们面临折衷使得更高的压缩率将节省更多的存储器空间并提高预测速度,但AI模型准确度却有更大的降低。类似地,较低的压缩率将具有相反的效果。本发明的核心是应用来自运筹学(英语:operation research)领域的数学方法来处理这种折衷。它提供了使AI模型预测准确度最大化的压缩率,同时满足了空间存储的限制和预测速度(推断时间)的要求。当然,诸如部署时间等的其他标准或“特征”也可以是优化问题的一部分。
[0010] 在独立权利要求中限定了该优化问题的解决方案。
[0011] 该问题通过一种根据工业任务的AI模型的运行时属性的要求集合来确定该AI模型的压缩率的方法来解决,其中对于该AI模型,将原始的参数数量缩减到减少的参数数量。在该方法的第一阶段中,对于多个工业任务的多个不同AI模型,为每个工业任务确定被分配的AI模型的多个不同压缩率。此后,在第一步骤中,用该多个不同压缩率对每个AI模型压缩多次。在第二步骤中,在执行环境中执行每个被压缩的AI模型,其中作为在每个AI模型的执行期间的第一结果,记录运行时属性,并且其中在第三步骤中,通过对第一结果的解析分析来计算每个AI模型的最优压缩率,其中将每个工业任务的最优压缩率与工业任务的描述一起存储在数据库或类似的存储技术中。在该方法的第二阶段中,来自数据库的数据被用于训练附加机器学习模型,该附加机器学习模型具有关于工业任务中的每一者的特征信息作为输入以及所计算的最优压缩率作为输出,该特征信息至少包括关于存储器分配限制、被压缩的模型的推断时限、未压缩的AI模型的原始AI模型大小以及所使用的压缩算法的信息,并且在第三阶段中,对于新工业任务的新AI模型,定义期望运行时属性的新集合,并且执行附加机器学习模型并将其用于确定该新AI模型关于期望运行时属性的最优压缩率。然后,根据该最优压缩率来压缩新AI模型,并执行该新AI模型以完成新的工业任务。使用该方法,AI模型以最好的可能准确度运行,同时满足推断时间的要求并且不超过允许的或给定的计算资源和要求。
[0012] 该问题还通过一种根据工业任务的AI模型的运行时属性的要求集合来确定该AI模型的压缩率的系统来解决,其中对于AI模型,将原始的参数数量缩减到减少的参数数量。该系统包括第一计算机系统,其被设置用于执行前述方法的第一阶段的步骤,并且用于在执行被压缩的AI模型时控制执行环境。该系统还包括第二计算机系统,其被设置用于执行如前所述的方法的第二阶段和第三阶段的方法步骤,以及连接第一计算机系统和第二计算机系统的通信信道。该系统可以实现如结合本发明的方法所描述的优点。
[0013] 本发明的有利实施例在从属方法权利要求中公开。这些实施例的特征和它们的优点也以类似的方式适用于本发明的系统。可以组合各种实施例的特征。
[0014] 在一个实施例中,在第一步骤中,对于每个压缩率,创建并执行压缩的AI模型。多种压缩率可覆盖宽范围的压缩,但在子步骤中是不同的,因为其具有第三步骤中解析分析的精确基础
[0015] 在大多数情况下,至少使用所执行的AI模型的存储器消耗和推断时间作为运行时属性可能是适当的。在大多数情况下,最大推断时间的要求由工业任务的使用情况给出,并且在大多数情况下,存储器消耗仅取决于给定的执行环境(计算设备)。因此,对于系统工程师来说,容易提供这些属性参数。
[0016] 在一个重要的实施例中,在第三步骤中,最优压缩率是具有最优推断准确度的压缩率,其仍然符合运行时属性的要求。这产生其中给定计算能力被最大限度地使用的系统。
[0017] 在第三步骤中,对于每个AI任务,通过所记录的运行时属性来拟合线性或非线性函数。这可以通过已知的软件来完成,并且不需要用户输入。线性或非线性函数可以包括插值法,例如线性插值法或样条插值法,但不限于这些。
[0018] 在第二阶段和第三阶段中,每个工业任务的特征信息至少包括:关于存储器分配限制、压缩模型的推断时限、未压缩的AI模型的原始AI模型大小以及用于该特定任务的压缩算法的类型的信息。
[0019] 使用工业边缘设备来执行AI模型是有利的,因为边缘设备向工业车间提供计算能力,从而使控制器(PLC‑可编程逻辑控制器)免于耗时的计算,即运行AI模型。在其他情况下,它可以是眼前不同的设备,尤其是可以是工业控制器的一部分的神经处理单元(所谓的用于神经处理的技术模)。
[0020] 在一个实施例中,可以在不同的平台(执行环境)上执行第一阶段中的AI任务,从而返回这些环境中的每一者的最优压缩率。在其它情况下,为了减少第一阶段中的“测试”‑执行的次数,可以使用经验资源使用因素。这意味着,一旦确定了第一类型平台上的运行时属性,就可以通过使用经验因素来估计具有相同压缩率但在不同平台(执行环境)上的相同AI任务的运行时属性。
[0021] 另一有利的实施例使用仿真设备来进行第一阶段测试系列。这意味着,例如,PLC或神经处理单元或另一类型的执行环境可以用标准硬件、例如个人计算机或虚拟机器来模拟(“仿真”)。
[0022] 在一些实施例中,第一阶段中的“目标”是云计算服务(CCS)。云计算服务可以递送虚拟的无限计算资源,尤其是在其中需要在本地实体(如PLC)与云计算服务之间交换有限数量的参数的情况下,云计算服务执行AI模型。附图说明
[0023] 借助于附图来说明该方法的示例。这同样用于说明本发明的系统和用于执行该方法的本发明的计算机程序产品。
[0024] 图1示出了所提出的方法的示意图。
[0025] 图2示出了在本发明方法的阶段1使用的算法的示意图。
[0026] 图3示出了在执行本发明方法的阶段1期间生成的数据库。
[0027] 图4示出了用于执行本发明方法的系统的示意图。

具体实施方式

[0028] 图1示出了所提出的方法的示意图。该方法由三个阶段组成。阶段1旨在运行图1的*左手侧上示出的算法,并且获得针对每个AI任务(任务1,2,...k)的最优压缩率r。在阶段2*
(中间示出)中,具有关于AI任务及其最优压缩率r 的信息,我们训练机器学习模型,以便概*
括任务及其对应的最优压缩率r (图中的上框)。在具有经训练的机器学习模型的情况下,在第三阶段(在右手侧示出)中,对于每个新的AI任务(任务k+1,k+2,...k+n),我们可以输*
出最优压缩率r,而不针对新的AI任务(任务k+1,k+2,...k+n)运行阶段1的算法。
[0029] 图2示出了在我们方法的阶段1使用的算法的示意图。以原始AI模型和AI任务运行时间要求R(“约束”)作为输入,我们制定了优化问题,该优化问题旨在使压缩的AI模型相对*于AI任务约束的准确度最大化,并输出AI模型的最优压缩率r的输出。
[0030] 图3示出了在执行该方法的阶段1期间生成的数据库(表)。在具有关于AI任务及其*压缩率r的信息作为从阶段1的输出的情况下,我们制定机器学习问题,其中每个AI任务与*
其约束条件我们将其压缩率r 相关联,以便训练任何合适的机器学习模型。可以使用训练*
的机器学习模型以便获得最优压缩率r 而不用每次对于新的但类似的AI任务再次运行如图2中所示的阶段1的算法。具有标题“特征”的列示出了在执行各种AI任务的AI模型时已经满足的一些要求R。此类要求(特征)可以与新AI任务的描述一起用作在向训练的机器学习*
模型询问关于该新AI任务的AI模型的最优压缩率r时的输入。请注意,为了简明起见,图3的表限于少量参数(特征、要求);真实系统可以采用更多不同的要求、参数、AI任务等。
[0031] 图4示出了用于执行该方法的系统的示意图。该系统包括云计算服务CCS、工业边缘设备ED或可编程逻辑控制器PLC的神经处理单元NPU等各种执行环境。各种执行环境经由通信信道(网络NW)连接到分别运行该方法的阶段1和阶段2和3的计算机系统CS1、CS2。在一个实施例中,所有阶段都可以由相同的计算机系统CS1或CS2实现,但是可以用不同的软件模块实现。可编程逻辑控制器PLC例如通过现场总线系统连接到包括工业任务的工业过程IP。可编程逻辑控制器PLC控制工业任务,并由此频繁地采用在神经处理单元NPU上或在另一执行环境上执行的AI模型。例如,PLC可以监控电机的“健康状态”并周期性地将状态信息(振动数据、温度数据、电参数)馈送到AI模型,该AI模型返回健康状态信息(o.k.;关键的;有缺陷的)。
[0032] 在该示例中,我们从AI模型压缩率ri的定义开始我们的方法。模型压缩率ri定义如*下:在初始AI模型M具有参数数量n的情况下,我们找到具有参数数量n的被压缩的AI模型*
M,使得压缩率r可以下述方式由参数r来描述:
[0033] 如果在我们最初选择的模型M中,我们具有100个参数,并且我们能够找到具有2的*压缩率的压缩的模型M,则这意味着在模型压缩之后,我们具有50个参数,并且因此我们需要较少的计算量和较少的存储空间以便运行压缩的模型。
[0034] 我们提出的方法包括三个阶段‑参见图1。在阶段1中,当我们没有太多的经验数据时,我们应用运筹学技术来找到最优速率。在阶段2中,我们已经在不同的任务中收集了大量数据,我们训练机器学习模型,并且稍后(阶段三),我们使用该机器学习模型来获得最优*压缩率r。
[0035] 阶段1的算法和方法步骤在图2中示意性地示出。阶段1的算法是一种针对解析项*目要求选择AI模型的最优压缩率r的方法,使AI模型的准确度最大化,并且可以描述如下:
[0036] 阶段1的方法步骤的输入:
[0037] 初始选择的具有参数数量n的训练模型M;
[0038] 压缩率S的集合;
[0039] 解析项目部署要求R的集合(存储器分配限制、推断时限等)。
[0040] 阶段1的方法步骤的输出:
[0041] 相对于R的最优压缩率r*,产生最优压缩的模型M*。
[0042] 这些步骤的伪代码可以被简写为:
[0043] 1:对于S中的每个ri:
[0044] 2:以比率ri压缩模型M并获得模型mi
[0045] 3:测试(执行)压缩的模型mi
[0046] 4:记录模型mi的推断时间ti和准确度ai
[0047] 5:定义函数h(ri)=ri*n
[0048] 6:利用记录的(ti,ai,ri)的数据:
[0049] 采用均方误差最小化来拟合f和g的线性或非线性函数,使得ti=f(ri),和ai=g(ri)
[0050] 7:如下定义优化问题P:
[0051] 最大化g(ri)(准确度),遵循:
[0052] f(ri)<来自R的推断时间要求
[0053] h(ri)<来自R的存储器分配要求
[0054] 8:如果g(ri)、f(ri)全部为线性函数,则利用线性规划求解P,如果g(ri)、k(ri)、f*(ri)中的任一者为非线性函数,则利用非线性规划求解P,其返回r。
[0055] 9:以最优压缩率r*压缩M
[0056] 10:返回压缩的模型M*,最优压缩率r*
[0057] 因此,我们的方法的阶段1由4个主要步骤组成:
[0058] 首先:用不同的压缩率的集合对AI模型进行压缩。首先,我们通过不同的压缩率数值{rl,r2,...}进行几次压缩,并保存这些模型。
[0059] 可以通过将压缩范围的总范围(例如,1.5到10)分成多个(例如,10个)等距步长来确定(选择)不同的值。系统工程师可以输入或改变这些参数。然而,在其他实施例中,系统本身可以决定用于该步骤的压缩率的范围和数量,例如具有用于这些参数的查找表,在其中对于每种(类型)的工业任务,提出这些参数。
[0060] 存在不同的算法来压缩AI模型(例如,知识精炼、权重量化)。此类压缩尤其被描述于:深度神经网络的模型压缩和加速的调查;Yu Cheng、Duo Wang、Pan Zhou(IEEE会员)和Tao Zhang(IEEE高级会员)。我们假设我们使用的压缩算法是选择的和固定的,使得每个压缩率将仅具有一个相应的推断准确度分数。
[0061] 第二:对步骤1得到的压缩的模型的性能进行测试。在该步骤,我们测试每个压缩的模型的性能。我们考虑两个测试值:
[0062] a)AI模型推断准确度ai,其可以在测试数据集上立即获得,和
[0063] b)推断时间ti,其可在边缘本身或在边缘模拟器或在具有可比较硬件特性的另一设备上执行。
[0064] 第三:获得f(r)、g(r)和h(r)的函数。给定所收集的数据(rl,tl,al)...(rn,tn,an),我们拟合推断时间和推断准确度的函数:
[0065] ti=f(ri),
[0066] ai=g(ri)
[0067] 并使用均方误差的最小化。在一般情况下,取决于数据点,f和g可以是线性或非线性函数(通常,f和g可以由线性或指数函数近似)。我们还定义了存储空间的函数:h(ri)=*rin。现在,我们可以将我们的优化问题P公式化为如下:
[0068] 相对于以下项来最大化g(r):
[0069] ·f(r)<来自R的推断时限要求(“要求”),以及
[0070] ·h(r)<来自R的存储器分配限制要求,
[0071] 这是典型的线性/非线性编程优化问题,其由目标函数和多个不等式约束组成。如果f、g、h都是线性函数,则是线性规划问题,如果它们中的任何一者是非线性函数,则将是非线性规划问题。此类问题及其解决方案是已知的,例如参见:Kantorovich,L.V.(1940)。一种解决某些类极值问题的新方法。Doklady Akad Sci SSSR.28:211‑214。
[0072] 第四:使用线性(或非线性)规划技术来求解优化问题P。线性/非线性规划都是运筹学中研究得很好的主题。存在多个现有算法来解决该问题。例如,用于线性编程的单纯形法;近似编程、用于非线性编程的凸规划。最后,在求解P后,得到用于AI模型压缩的最优压* *缩率r。应用该最优压缩率r得到最优压缩的AI模型,用于部署在要求R下的特定AI任务中。
[0073] 我们以以下方式概括上述方法:执行具有特定要求的解析任务并利用图1所示的方法,我们得到可以存储在数据库中的信息,并且可以如图3所示的表格中的示例那样概括该信息,这是该方法的阶段2的起始点。
[0074] 在该表中,我们收集关于AI任务和部署要求的所有信息。首先,本发明的方法根据*阶段1中说明的工作流程填充该表,输出最优压缩率r。
[0075] 在应用于N个AI任务之后,我们可以利用图3所示的表中的信息来训练(阶段2)附加的机器学习模型。具有此类模型,我们稍后可以避免每次运行算法1中描述的高消耗算*法,并且可以利用该机器学习模型来推荐用于每个新的但类似的AI任务的最优压缩率r(阶段3)。
[0076] 因此,该表的信息被馈送到机器学习模型,例如神经网络等。一旦训练了机器学习*模型,就可以采用该机器学习模型来选择用于新的工业任务的最优压缩率r。这在第三阶段(采用经训练的机器学习模型)中完成,如图1的右手侧框所示。
[0077] 新任务的描述(问题的类型、客户的类型或名称、机器的功率等级、部件的材料类型等)、选择的压缩算法、未压缩的AI模型的存储器分配以及执行的要求(推断时限、存储器空间约束)可以是机器学习系统的合适输入。
[0078] 机器学习系统通过用于合适的最优压缩率r*的值来响应。最后,根据该压缩率r*压缩新的AI模型,并且新的AI模型用于完成新的AI任务,例如,工业设备或过程的控制或维护*任务的预测/调度。优点在于,基于AI任务的相似性和要求,可以找到答案(最优压缩率r 的值),而无需具有与新问题在相同的事情中匹配的经验数据,并且无需进行一系列新的以不同压缩率执行新AI任务的义务。
[0079] 在有利的实施例中,还可以利用经训练的机器学习模型来提出其他参数。例如,可以为新的工业任务(“新AI任务”)及其新AI模型自动提出最优拟合压缩算法(权重量化、张量分解、知识精炼,...)。
[0080] 在一个有利的实施例中,AI任务的描述可使用标记语言来定义。这对于训练中的自动评估以及随后使用机器学习模型来说是理想的。
[0081] 与已知方法相比,本发明具有更好的性能和效率。这因为我们执行关于所需的最大推断时间、所需的存储器分配限制以及最大化推断准确度的优化而实现。在对所提出的*工作流进行概括之后,可以直接选择最优压缩率r 并且减少在传统方法中当在边缘设备ED或类似的硬件设置上运行高消耗的迭代算法时所必需的计算量。
[0082] 已知的方法集中在以高消耗的迭代方式调整固定压缩算法的超参数,直到满足要求,而不管最终的推断准确度。相反,我们提出在阶段1中关于最大推断准确度和有限的硬*件资源找到最优压缩率r,并且在阶段2中,我们对AI任务和附加要求执行概括,如图3的表中所总结的。利用这种概括(阶段3),我们避免了运行复杂的算法。
[0083] 在我们提出的方法的阶段1中,仅需要少数的边缘试验或可比较的硬件设置(执行环境)来拟合函数f和g,并且之后应用线性/非线性规划,这避免了在先前的工作中执行的大量迭代步骤。在阶段2和3中,在概括来自阶段1的结果之后,我们不再需要这些计算,并且*可以利用计算成本低的机器学习算法来提出最优压缩率r。
[0084] 通过这种方法,我们提高了在不同设备(例如,西子的S7‑1500 TM NPU(技术模块‑神经处理单元)和西门子的工业边缘上部署经训练的AI模型的灵活性和效率,使得该方法可以被扩展到与有前途的边缘技术一起工作的各种垂直技术,从而产生与其他方法相比的成本优势。我们的方法允许在短时间内针对客户需求有效地部署高度精确且计算高效的AI模型。
QQ群二维码
意见反馈