混合精度神经网络制造技术

技术编号:31080350 阅读:20 留言:0更新日期:2021-12-01 11:53
本公开的实施例涉及混合精度神经网络。用于机器学习(ML)模型的混合精度量化技术。对于ML模型(114),接收目标带宽增加(302),ML模型(114)包括由第一位数目表示的第一数据类型的对象。目标带宽增加涉及将对象的第一部分改变为由不同于第一位数目的第二位数目表示的第二数据类型(310)。方法进一步包括基于带宽对ML模型中的对象进行排序(304)。方法进一步包括:基于目标带宽增加和多个对象的排序来标识对象的第一部分,以从第一数据类型改变为第二数据类型(508)。方法进一步包括将对象的第一部分从第一数据类型改变为第二数据类型(508)。(508)。(508)。

【技术实现步骤摘要】
混合精度神经网络


[0001]本公开涉及机器学习,并且更具体地涉及使用以不止一个精度表示的值的神经网络。

技术介绍

[0002]神经网络和其他机器学习(ML)模型可以包括表示数值的变量。这些数值通常被表示为浮点数据类型。例如,浮点值通常用于表示:(1)网络中某个层(诸如卷积或内积)的权重或学习值,以及(2)特征图,也被称为激活或二进制大对象(BLOB)。这些权重和BLOB可以用于例如神经网络中给定层的输出以及后续层的输入。
[0003]然而,以浮点值执行神经网络在计算上可能是昂贵的(例如,执行可能较慢,并且功率密集)。许多神经网络包括大量的浮点值,并且浮点算术通常较慢并且消耗功率。另外,浮点数据类型通常为32位或更大,因此加载和存储这种值需要存储空间并且需要时间。因此,使用浮点值可能会抑制神经网络在可用计算资源较少或功率受限的设备(包括诸如智能手机和平板电脑的边缘设备)上的执行。

技术实现思路

[0004]实施例包括一种方法。该方法包括:接收针对机器学习(ML)模型的目标带宽增加,ML模型包括由第一位数目表示的第一数据类型的多个对象。目标带宽增加涉及将多个对象的第一部分改变为由不同于第一位数目的第二位数目表示的第二数据类型。方法还包括基于带宽对ML模型中的多个对象进行排序。方法还包括:基于目标带宽增加和多个对象的排序,标识多个对象的第一部分以从第一数据类型改变为第二数据类型。方法还包括将多个对象的第一部分从第一数据类型改变为第二数据类型。
[0005]实施例还包括一种系统,系统包括处理器和存储指令的存储器,该指令在由处理器执行时,使处理器执行操作。操作包括:接收针对神经网络的目标带宽增加,神经网络包括由第一位数目表示的第一数据类型的多个二进制大对象(BLOB)和权重。目标带宽增加涉及:将多个BLOB和权重中的至少一些改变为由不同于第一位数目的第二位数目表示的第二数据类型。操作还包括:基于目标带宽增加,标识多个BLOB和权重的第一部分,以从第一数据类型改变为第二数据类型。操作还包括将多个BLOB和权重的第一部分从第一数据类型改变为第二数据类型。
[0006]实施例还包括非暂态计算机可读介质,其包括所存储的指令,该指令在由处理器执行时,使处理器执行操作。操作包括:接收针对机器学习(ML)模型的目标性能改变,ML模型包括由第一位数目表示的第一数据类型的多个对象。目标性能改变涉及:将多个对象中的至少一些改变为由不同于第一位数目的第二位数目表示的第二数据类型。操作还包括基于大小对ML模型中的多个对象进行排序。操作还包括:基于目标性能改变和对多个对象的排序,标识多个对象的第一部分以从第一数据类型改变为第二数据类型。操作还包括将多个对象的第一部分从第一数据类型改变为第二数据类型。操作还包括:使用ML模型(包括将
多个对象的第一部分改变为第二数据类型)来推断一个或多个输入的结果。
附图说明
[0007]通过下面给出的详细描述和本文描述的示例的附图,将更全面地理解本公开。附图用于提供本文描述的示例的知识和理解,并且不将本公开的范围限制为这些特定示例。此外,附图不必按比例绘制。
[0008]图1图示了根据一个实施例的将混合精度值用于ML模型。
[0009]图2图示了根据一个实施例的用于将混合精度值用于ML模型的ML训练服务器和混合精度量化服务器。
[0010]图3是根据一个实施例的用于将混合精度值用于ML模型的流程图。
[0011]图4是根据一个实施例的用于将对象排序以更新用于ML模型的混合精度值的流程图。
[0012]图5是根据一个实施例的用于增加对象大小以更新用于ML的混合精度值的流程图。
[0013]图6图示了根据一个实施例的用于将ML模型更新为混合精度的示例技术。
[0014]图7A图示了根据一个实施例的混合精度ML模型中的示例对象的表。
[0015]图7B图示了根据一个实施例的另外的混合精度ML模型中的示例对象的表。
[0016]图8是根据一个实施例的用于混合精度量化感知训练的流程图。
[0017]图9图示了根据一个实施例的示例计算机系统的抽象图,本公开的示例可以在其中操作。
[0018]为了便于理解,在可能的情况下使用相同的附图标记来表示图中共有的相同元件。可以预期,一个实施例中公开的元件可以在没有具体叙述的情况下有益地被用在其他实施例中。
具体实施方式
[0019]通过将浮点值中的一些或全部浮点值转换为更小的整数数据类型,可以减少执行具有浮点数据类型的ML模型(例如,神经网络)的计算开销。这可以减少计算开销,但会降低准确性。然后神经网络可以在支持所需整数数据类型(例如12位整数数据类型)的硬件上被执行,从而使执行的计算成本显著减小。
[0020]此外,神经网络硬件可以支持不止一个大小的整数数据类型。例如,一些硬件支持12位或8位整数权重和BLOB。神经网络可以将一些对象存储为12位整数数据类型,并且将一些对象存储为8位整数数据类型。这可以被称为混合精度实现。
[0021]通常,由于8位整数权重的大小,它们从存储器中加载到乘法器寄存器的速度比12位整数权重更快。与12位整数BLOB相比,在层计算其输出时,8位整数BLOB写入存储器的速度通常也更快。当层将先前计算的BLOB作为输入时,8位整数BLOB加载到乘法器寄存器中的速度也更快。此外,由于8是2的幂,而12不是,因此在硬件实现中,8位整数的加载和存储通常比12位整数的加载和存储更简单并且更便宜。
[0022]然而,表示中的位越少,表示浮点值的准确性越低,这可能会降低整个神经网络的推断准确性。有时,用较小的数据类型(例如8位整数)表示神经网络中的所有数值不能提供
足够的准确性,因此一些值使用较小的数据类型(例如8位整数)来被表示,而其他值使用较大的数据类型(例如12位整数)来被表示。
[0023]本文公开的一个或多个实施例提供了多个技术,当可以存在两个精度水平时,可以通过该技术来选择混合精度ML模型。例如,一些权重和BLOB可以使用较大的整数数据类型(例如12位整数数据类型)来被表示,而其余的可以使用较小的整数数据类型(例如8位整数数据类型)来被表示。本文公开的一种或多种技术可以用于选择哪些权重和BLOB要以不同的精度水平来表示(例如,哪些表示为8位整数以及哪些表示为12位整数)。
[0024]图1图示了根据一个实施例的针对ML模型使用混合精度值。在一个实施例中,训练数据102被提供给ML训练服务器110。ML训练服务器110包括ML训练服务112和初始ML模型114。在一个实施例中,ML训练服务112使用训练数据102来训练初始ML模型114。例如,ML训练服务112可以将训练数据102转换为特征向量。ML训练服务112可以使用特征向量以及关联的属性值来训练初始ML模型114。这仅仅是一个示例,可以使用任何合适的训练数据。
[0025]此外,可以使用任何合适的监督ML技术来训练浮点M本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种方法,包括:接收针对机器学习ML模型的目标带宽增加,所述ML模型包括由第一位数目表示的第一数据类型的多个对象,其中所述目标带宽增加涉及将所述多个对象的第一部分改变为由不同于所述第一位数目的第二位数目表示的第二数据类型;基于带宽,对所述ML模型中的所述多个对象进行排序;基于所述目标带宽增加和所述多个对象的所述排序,标识所述多个对象的所述第一部分,以从所述第一数据类型改变为所述第二数据类型;以及由处理器将所述多个对象的所述第一部分从所述第一数据类型改变为所述第二数据类型。2.根据权利要求1所述的方法,其中所述ML模型包括神经网络,并且其中所述多个对象包括多个权重和多个二进制大对象BLOB。3.根据权利要求1所述的方法,其中所述第一数据类型包括由所述第一位数目表示的第一整数数据类型,其中所述第二数据类型包括由所述第二位数目表示的第二整数数据类型,并且其中所述第二位数目大于所述第一位数目。4.根据权利要求1所述的方法,其中所述目标带宽增加还涉及将所述多个对象中的至少一些对象改变为由大于所述第二位数目的第三位数目表示的第三数据类型,所述方法还包括:基于所述目标带宽增加和对所述多个对象的所述排序,标识所述多个对象的第二部分,以从所述第一数据类型改变为所述第三数据类型;以及将所述多个对象的所述第二部分从所述第一数据类型改变为所述第三数据类型。5.根据权利要求4所述的方法,其中所述第一数据类型包括浮点数据类型,其中所述第二数据类型包括第一整数数据类型,并且其中所述第三数据类型包括第二整数数据类型。6.根据权利要求1所述的方法,其中对所述基于带宽对所述ML模型中的所述多个对象进行排序包括:基于大小对所述多个对象进行排序。7.根据权利要求6所述的方法,其中所述ML模型包括神经网络,并且其中对所述ML模型中的所述多个对象进行排序还基于相应对象与表示所述神经网络的网络图的根的接近度。8.一种系统,包括:处理器;以及存储器,存储指令,所述指令在由所述处理器执行时,使所述处理器执行操作,所述操作包括:接收针对神经网络的目标带宽增加,所述神经网络包括由第一位数目表示的第一数据类型的多个二进制大对象BLOB和权重,其中所述目标带宽增加涉及将所述多个BLOB和权重中的至少一些改变为由不同于所述第一位数目的第二位数目表示的第二数据类型;基于所述目标带宽增加,标识所述多个BLOB和权重的第一部分,以从所述第一数据类型改变为所述第二数据类型;以及将所述多个BLOB和权重的所述第一部分从所述第一数据类型改变为所述第二数据类型。9.根据权利要求8所述的系统,其中所述操作还包括:基于带宽对所述神经网络中的所述多个BLOB和权重进行排序,其中标识所述多个BLOB
和权重中的所述第一部分以从所述第一数据类型改变为所述第二数据类型还基于所述多个BLOB和权重的所述排序。10.根据权利要求8所述的系统,其中所述第一数据类型包括由所述第一位数目表示的第一整数数据类型,并且其中所述第二数据类型包括由所述第二位数目表示的第二整数数据类型。11.根据权利要求8所述的系统,其中所述目标带宽增加还涉及将所述多个BLOB和权重中的至少一些改变为由小于所述第二位数目的第三位数目表示的第三数据类型,所述操作还包括...

【专利技术属性】
技术研发人员:T
申请(专利权)人:美商新思科技有限公司
类型:发明
国别省市:

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

1