用于机器学习模型的压缩和分发的系统和方法技术方案

技术编号:23365984 阅读:38 留言:0更新日期:2020-02-18 18:44
本公开提供了用于压缩和/或分发机器学习模型的系统和方法。在一个示例中,提供了一种计算机实现的方法来压缩机器学习模型,该方法包括由一个或多个计算设备获得机器学习模型。该方法包括由一个或多个计算设备选择要被量化的权重,以及由一个或多个计算设备对该权重进行量化。该方法包括由一个或多个计算设备将量化误差的至少一部分传播到一个或多个未被量化的权重,以及由一个或多个计算设备对未被量化的权重中的一个或多个进行量化。该方法包括由一个或多个计算设备提供被量化的机器学习模型。

Systems and methods for compression and distribution of machine learning models

【技术实现步骤摘要】
【国外来华专利技术】用于机器学习模型的压缩和分发的系统和方法
本公开总体上涉及机器学习模型。更具体地,本公开涉及在机器学习模型的分发中利用压缩。
技术介绍
机器学习模型可以帮助解决传统上对于计算系统而言具有困难的各种任务。但是,机器学习模型通常很大,并且需要大量存储容量和传输带宽以递送到计算系统。因此,为了使机器学习模型对于带宽受限网络中的应用(例如在移动应用等中)更具吸引力,需要减少机器学习模型的传送和存储的成本的方法。
技术实现思路
本公开的实施例的方面和优点将部分地在以下描述中阐述,或者可以从描述中学习,或者可以通过对实施例的实施而学习。本公开的一个示例方面针对一种压缩机器学习模型的计算机实现的方法。该方法可以包括由一个或多个计算设备获得机器学习模型。该方法可以还包括由一个或多个计算设备选择要被量化的权重。该方法可以还包括由一个或多个计算设备对该权重进行量化。该方法可以还包括由一个或多个计算设备将量化误差的至少一部分传播到一个或多个未被量化的权重。该方法可以还包括由一个或多个计算设备对未被量化的权重中的一个或多个进行量化。该方法可以还包括由一个或多个计算设备提供被量化的机器学习模型。在一些实施例中,在传播量化误差的情况下,该方法可以另外包括由一个或多个计算设备确定量化误差。传播量化误差还可以包括:由一个或多个计算设备确定与该权重相关联的一个或多个未被量化的权重。传播量化误差还可以包括:由一个或多个计算设备将量化误差的零散部分(fractionalpart)分配给每个相关联的未被量化的权重。>本公开的另一示例方面针对一种计算设备。该计算设备包括一个或多个处理器;以及一个或多个非暂时性计算机可读介质,其存储指令,该指令在由一个或多个处理器执行时使计算设备执行操作。指令的执行使计算设备获得机器学习模型。指令的执行还使计算设备选择要被量化的权重。指令的执行还使计算设备对权重进行量化。指令的执行还使计算设备将量化误差的至少一部分传播到一个或多个未被量化的权重。指令的执行还使计算设备对未被量化的权重中的一个或多个进行量化。指令的执行还使计算设备提供被量化的机器学习模型。本公开的另一示例方面针对一种或多种非暂时性计算机可读介质,其存储指令,这些指令在由计算系统的一个或多个处理器执行时使该计算系统执行操作。指令的执行使计算系统获得机器学习模型。指令的执行使计算系统对于机器学习模型的一个或多个权重,选择要被量化的权重并对该权重进行量化。指令的执行还使计算系统将量化误差的至少一部分传播到一个或多个未被量化的权重。指令的执行还使计算系统提供被量化的机器学习模型。本公开的其他示例方面针对系统、装置、有形非暂时性计算机可读介质、用户接口、存储器设备和电子设备。参考以下描述和所附权利要求,将更好地理解各个实施例的这些和其他特征、方面和优点。结合在本说明书中并构成本说明书的一部分的附图示出了本公开的实施例,并且与说明书一起用于解释相关原理。附图说明在说明书中阐述了针对本领域普通技术人员的对实施例的详细讨论,说明书参考附图,其中:图1描绘了根据本公开的示例实施例的计算系统的框图;图2描绘了根据本公开的示例实施例的具有损失管理的模型量化的示例方法的流程图;图3描绘了根据本公开的示例实施例的具有损失管理的模型量化的另一示例方法的流程图;图4描绘了根据本公开的示例实施例的模型量化的示例方法的流程图;和图5描绘了根据本公开的示例实施例的模型量化的另一示例方法的流程图。具体实施方式现在将详细参考实施例,在附图中示出了实施例的一个或多个示例。通过解释实施例而不是限制本公开的方式来提供每个示例。实际上,对于本领域技术人员将显而易见的是,在不脱离本公开的范围或精神的情况下,可以对实施例进行各种修改和变动。例如,作为一个实施例的一部分示出或描述的特征可以与另一实施例一起使用以产生又一实施例。因此,意图是本公开的各方面覆盖这样的修改和变动。总体上,本公开针对压缩和/或分发机器学习模型的系统和方法。特别地,本公开的系统和方法可以利用压缩方法来减小机器学习模型的大小(例如,数据存储和传送要求)。通过减小模型的大小,本公开的系统和方法可以减少与模型的传送、存储和/或使用相关联的网络和/或计算开销。特别地,能够实现与机器学习模型的传送或其他形式的分发相关联的网络开销的减少可以使机器学习模型在带宽受限网络中更具吸引力或更有用。同样,能够实现与机器学习模型的存储和/或使用相关联的存储开销和/或计算开销的减少可以使机器学习模型在资源受限的设备或环境(诸如例如移动应用、设备和/或环境)中更具吸引力或更有用。因此,本公开提供了可用于减小机器学习模型的大小的压缩技术。特别地,本公开的系统和方法可以执行具有损失管理的对模型权重的各种类型的量化。作为一个示例,本公开的系统和方法可以提供模型压缩,使得压缩引入的失真具有有限的损失增加。作为另一示例,在一些实施方式中,当对模型权重进行量化时,量化误差可以由以后的量化误差来补偿。例如,基于节点相关性和/或根据其他方案,量化误差可以分布在一个模型层到前一层或下一层之间、在层内的节点之间、在单个节点的连接内。作为另一示例,可以执行迭代训练过程,其中,对一定数量的最佳匹配(例如,产生最低量化误差的)节点进行量化,然后在使模型经受附加训练时将其冻结。如本文所述,通过实现具有损失管理的量化,可以在减少机器学习模型的适应度(fitness)降低的同时,更致密地压缩机器学习模型。除了压缩技术之外,本公开还提供了用于改善机器学习模型的分发、存储和/或使用的附加技术。例如,在一些实施方式中,本公开的系统和方法可以执行或能够实现以下中的一个或多个:针对模型更新打补丁、分布式学习、针对量化进行训练、针对打补丁进行训练和/或传送学习。作为示例,在一些实施方式中,机器学习模型分发可以包括打补丁,其中,机器学习模型的较小部分(例如,仅一部分)被递送以更新诸如在移动设备上的机器学习模型的已部署版本,而不是更新整个机器学习模型。在另一示例中,在一些实施方式中,可以执行分布式学习,其中,机器学习模型权重在客户端设备处改变,然后通过补丁从客户端设备收集。使用补丁从客户端设备上传更新的权重可以减少客户端设备使用的带宽。在又另一示例中,在一些实施方式中,本公开的系统和方法可以执行或能够实现针对量化进行训练和针对打补丁进行训练,在针对量化进行训练中,在训练期间选择并冻结模型的某些权重以改善误差,在针对打补丁进行训练中,在训练期间选择并冻结模型的全部层以改善压缩。在另一示例中,在一些实施方式中,机器学习模型分发可以包括传送学习,其中,可以使用打补丁来改换客户端设备上已经存在的模型的用途,从而消除了发送全新模型的需要。更特别地,根据本公开的一个方面,机器学习模型分发可以包括通过实现具有损失管理的量化来压缩机器学习模型。使用具有损失管理的量化,可以通过对模型权重进行量化来压缩机器学习模型以进行分发,其中,量化误差可以由其他量化误差来补偿。例如,在一些本文档来自技高网...

【技术保护点】
1.一种压缩机器学习模型的计算机实现的方法,所述方法包括:/n由一个或多个计算设备获得机器学习模型;/n由所述一个或多个计算设备选择要被量化的权重;/n由所述一个或多个计算设备对所述权重进行量化;/n由所述一个或多个计算设备将量化误差的至少一部分传播到一个或多个未被量化的权重;/n由所述一个或多个计算设备对所述未被量化的权重中的一个或多个进行量化;以及/n由所述一个或多个计算设备提供被量化的机器学习模型。/n

【技术特征摘要】
【国外来华专利技术】1.一种压缩机器学习模型的计算机实现的方法,所述方法包括:
由一个或多个计算设备获得机器学习模型;
由所述一个或多个计算设备选择要被量化的权重;
由所述一个或多个计算设备对所述权重进行量化;
由所述一个或多个计算设备将量化误差的至少一部分传播到一个或多个未被量化的权重;
由所述一个或多个计算设备对所述未被量化的权重中的一个或多个进行量化;以及
由所述一个或多个计算设备提供被量化的机器学习模型。


2.根据权利要求1所述的计算机实现的方法,其中,传播所述量化误差的步骤包括:
由所述一个或多个计算设备确定所述量化误差;
由所述一个或多个计算设备确定与所述权重相关联的一个或多个未被量化的权重;以及
由所述一个或多个计算设备将量化误差的微小部分分配给每个相关联的未被量化的权重。


3.根据权利要求2所述的计算机实现的方法,其中,部分地基于预定乘数,将所述量化误差的零碎部分分配给每个相关联的未被量化的权重。


4.根据权利要求2或3所述的计算机实现的方法,其中:
由所述一个或多个计算设备确定所述量化误差包括:由所述一个或多个计算设备确定与所述机器学习模型的第一层中的第一节点相关联的量化误差;并且
由所述一个或多个计算设备确定与所述权重相关联的一个或多个未被量化的权重包括:识别所述第一层中的第二节点,其中,所述第一节点和第二节点每个均具有到第二层中的第三节点的连接。


5.根据权利要求2至4中任一项所述的计算机实现的方法,其中,由所述一个或多个计算设备将所述量化误差的零碎部分分配给每个相关联的未被量化的权重包括:由所述一个或多个计算设备在所述模型的节点内抖动所述量化误差。


6.根据权利要求5所述的计算机实现的方法,还包括部分地基于所述模型的节点之间的活动的相关性,由所述一个或多个计算设备在所述模型的节点内抖动所述量化误差。


7.根据权利要求6所述的计算机实现的方法,其中,当在所述模型的节点之间存在活动的反相关性时,在相反方向上抖动所述量化误差。


8.根据权利要求1所述的计算机实现的方法,其中,传播所述量化误差的步骤包括:
由所述一个或多个计算设备锁定被量化的权重;以及
由所述一个或多个计算设备执行所述机器学习模型的附加训练迭代,其中,执行附加训练迭代包括更新未被量化的权重。


9.根据权利要求8所述的计算机实现的方法,还包括由所述一个或多个计算设备锁定多个被量化的最佳匹配系数权重。


10.根据前述权利要求中的任一项所述的计算机实现的方法,其中,选择要被量化的权重包括选择最佳匹配系数。


11.一种计算设备,包括:
一个或多个处理器;和
存储指令的一个或多个非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时使所述计算设备:
获得机器学习模型;
选择要被量化的权重;
对所述权重进行量化;
将量化误差的至少一部分传播到一个或多个未被量化的权重;
对所述未被量化的权重中的一个或多个进行量化;以及
提供被量化的机器学习模型。


12.根据权利要求11所述的计算机设备,其中,传播所述量化误差包括:
确定所述量化误差;
确定与所述权重相关联的一个或多个未被量化的权重;以及
将所述误差的零碎部分分配给每个相关联的未被量化的权重。


13.根据权利要求12所述的计算设备,其中,部分地基于预定乘数,将所述量化误差的零碎部分分配给每个相关联的未被量化的权重。


14.根据权利要求12或13中的任一项所述的计算设备,其中:
确定所述量化误差包括:确定与所述机器学习模型的第一层中的第一节点相关联的量化误差;并且
...

【专利技术属性】
技术研发人员:J阿拉库加拉R奥布里克
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国;US

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

1