具有非均匀尾数的神经网络激活压缩制造技术

技术编号:29924809 阅读:24 留言:0更新日期:2021-09-04 18:43
公开了用于使用量化精度数据格式来训练神经网络加速器的装置和方法,并且特别是用于以具有有损或非均匀尾数的压缩格式存储来自神经网络的激活值,以用于在神经网络的前向和后向传播训练期间使用。在所公开技术的某些示例中,计算系统包括处理器、存储器和与存储器通信的压缩器。计算系统被配置为针对神经网络的层执行前向传播以产生第一块浮点格式的第一激活值。在一些示例中,由前向传播生成的激活值由压缩器转换为具有非均匀和/或有损尾数的第二块浮点格式。压缩的激活值被存储在存储器中,在存储器中该压缩的激活值可以被取回以用于在后向传播期间使用。用于在后向传播期间使用。用于在后向传播期间使用。

【技术实现步骤摘要】
【国外来华专利技术】具有非均匀尾数的神经网络激活压缩

技术介绍

[0001]机器学习(ML)和人工智能(AI)技术可以被用于解决许多复杂的计算问题,诸如识别图像和语音、分析和分类信息、以及执行各种分类任务。机器学习是计算机科学的一个领域,它使用统计技术来使计算机系统能够从训练数据集合中提取更高级别的特征。具体来说,可以通过训练诸如人工神经网络(NN)或深度神经网络(DNN)之类的模型来提取特征。模型经过训练之后,新数据可以被应用于模型,并且可以使用经训练的模型对新数据进行分类(例如,可以提取更高级别的特征)。机器学习模型通常在通用处理器(也被称为中央处理单元(CPU))上被执行。然而,训练模型和/或使用模型在计算上可能是昂贵的,并且因此可能无法使用通用处理器实时地执行特征提取。因此,有大量机会改进计算机硬件和软件以实现神经网络。

技术实现思路

[0002]公开了用于以压缩格式存储来自神经网络的激活值以用于在神经网络的前向和后向传播训练期间使用的装置和方法。适合采用这种神经网络的计算系统包括具有通用处理器、神经网络加速器或可重构逻辑设备(诸如现场可编程门阵列(FPGA))的计算机。前向传播期间生成的激活值可以以压缩格式“隐藏”(临时存储在大容量存储器中),并且被取回以用于在后向传播期间使用。训练期间使用的激活值可以用量化或块浮点格式(BFP)来表达。所存储的激活值可以是比训练期间使用的格式进一步压缩的格式。在一些示例中,压缩格式包括用于压缩值的有损或非均匀尾数。
[0003]在所公开技术的一些示例中,计算机系统包括通用和/或专用神经网络处理器、包括计算机可读存储设备或存储器的大容量存储器、以及与大容量存储器通信的块浮点压缩器。由于在神经网络训练期间发生前向传播,激活值以第一块浮点格式而被产生。块浮点被用来将激活值转换为数值精度小于第一块浮点格式精度的数字格式。压缩的激活值被存储在大容量存储器中,以用于在后向传播期间使用。
[0004]本
技术实现思路
被提供来以简化的形式介绍以下在详细描述中进一步描述的概念的选择。本
技术实现思路
并不旨在标识要求保护的主题的关键特征或必要特征,也不旨在被用来限制要求保护的主题的范围。从以下参照附图进行的详细描述中,所公开主题的前述和其他目的、特征和优点将变得更加明显。
附图说明
[0005]图1是用于执行激活压缩的启用量化的系统的框图,如可以在所公开技术的某些示例中实现的那样。
[0006]图2是描绘深度神经网络的示例的图,如可以使用本文所公开的某些示例方法和装置建模的那样。
[0007]图3是描绘将正常浮点格式转换为量化浮点格式的某些方面的图,如可以在所公开技术的某些示例中执行的那样。
[0008]图4描绘了可以被用来表示量化神经网络模型的多个示例块浮点格式,如可以在所公开技术的某些示例中使用的那样。
[0009]图5描绘了可以被用来表示量化神经网络模型的多个示例块浮点格式,如可以在所公开技术的某些示例中使用的那样。
[0010]图6是描绘训练与量化模型一起使用的神经网络的示例方法的流程图,如可以在所公开技术的某些示例中实现的那样。
[0011]图7是描绘用于实现具有非均匀尾数浮点格式的激活压缩的示例环境的框图,如可以在所公开技术的某些示例中实现的那样。
[0012]图8是描绘具有非均匀尾数浮点格式的激活压缩的示例的框图,如可以在所公开技术的某些示例中实现的那样。
[0013]图9是图示出了将均匀三位尾数格式转换为非均匀四值有损尾数格式的图,如可以在所公开技术的某些示例中实现的那样。
[0014]图10是图示出了将均匀三位尾数格式转换为非均匀三值有损尾数格式的图,如可以在所公开技术的某些示例中实现的那样。
[0015]图11是图示出了将均匀三位尾数格式转换为非均匀二值有损尾数格式的图,如可以在所公开技术的某些示例中实现的那样。
[0016]图12是图示出了将符号值和三位尾数格式转换为非均匀五值有损尾数格式的图,如可以在所公开技术的某些示例中实现的那样。
[0017]图13是概述了使用具有非均匀尾数的压缩的激活值的示例方法的流程图,如可以在所公开技术的某些示例中执行的那样。
[0018]图14是概述了使用具有非均匀尾数浮点值的激活压缩来训练神经网络的示例方法的流程图,如可以在所公开技术的某些示例中执行的那样。
[0019]图15是图示出了用于实现所公开技术的某些示例的适当的计算环境的框图。
[0020]图16是示出了在利用不同的非均匀尾数方案训练神经网络时获得的准确度结果的图表,如在实现所公开技术的一些示例时可以观察到的那样。
具体实施方式
[0021]一、一般考虑
[0022]本公开是在代表性实施例的上下文中进行阐述,这些实施例不旨在以任何方式进行限制。
[0023]如本申请中所使用的,除非上下文另有明确指出,否则单数形式“一”、“一个”和“该”包括复数形式。此外,术语“包括”意指“包含”。此外,术语“耦合”涵盖机械的、电的、磁的、光的以及将各项耦合或链接在一起的其他实践方式,并且不排除耦合的各项之间存在中间元件。此外,如本文中所使用的,术语“和/或”意指该短语中的任何一项或多项的组合。
[0024]在本文中描述的系统、方法和装置不应被解释为以任何方式进行限制。相反,本公开内容针对各种公开实施例的所有新颖的和非明显的特征和方面,单独地以及以彼此的各种组合和子组合的形式。所公开的系统、方法和装置不限于任何特定方面或特征或其组合,所公开的事物和方法也不要求存在任何一个或多个特定优点或者解决问题。此外,所公开实施例的任何特征或方面可以以彼此的各种组合和子组合来进行使用。
[0025]尽管为了方便呈现以特定的、连续的顺序描述了一些公开方法的操作,但是应当理解,除非下面阐述的特定语言要求特定的排序,否则这种描述方式包含重新布置。例如,顺序描述的操作在一些情况下可以被重新布置或同时执行。此外,为了简单起见,附图可能未示出所公开的事物和方法可以与其他事物和方法结合使用的各种方式。此外,描述有时使用诸如“产生”、“生成”、“显示”、“接收”、“验证”、“执行(execute)”、“执行(perform)”、“转换”和“发起”之类的术语来描述所公开的方法。这些术语是对所执行的实际操作的高级描述。对应于这些术语的实际操作将取决于特定实现而变化,并且本领域普通技术人员很容易辨别。
[0026]参考本公开的装置或方法在本文中呈现的操作理论、科学原理或其他理论描述是为了更好地理解的目的而提供的,并不旨在限制范围。所附权利要求中的装置和方法不限于以由这些操作理论所描述的方式起作用的那些装置和方法。
[0027]任何公开的方法都可以被实现为存储在一个或多个计算机可读介质(例如,计算机可读介质,诸如一个或多个光盘、易失性存储器组件(诸如DRAM或SRAM)或非易失性存储器组件(诸如硬盘驱动器))并在计算机(例如,任何商用计算机,包括智能手机或其他包括计算硬件的移动设备)上执行的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种计算系统,包括:一个或多个处理器;包括计算机可读存储设备和/或存储器的大容量存储器;由所述处理器中的至少一个处理器形成的浮点压缩器,所述块浮点压缩器与所述大容量存储器通信;并且所述计算系统被配置为:利用所述处理器中的至少一个处理器,针对神经网络的层执行前向传播,以产生第一浮点格式的第一激活值,所述第一浮点格式具有正常尾数格式;利用所述浮点压缩器,通过将激活值尾数映射到非均匀尾数格式,将所述激活值中的至少一个激活值转换为第二浮点格式,以产生压缩的激活值;以及利用所述处理器中的至少一个处理器,将所述压缩的激活值存储在所述大容量存储器中。2.根据权利要求1所述的计算系统,其中所述映射包括:将具有所述正常尾数格式的两个或更多个尾数值的尾数映射到所述非均匀尾数格式的单个尾数值。3.根据权利要求1所述的计算系统,其中所述映射包括:将具有所述正常尾数格式的一个或多个尾数值的第一尾数映射到所述非均匀尾数格式的单个尾数值;以及将具有所述正常尾数格式的至少多出一个尾数值的第二尾数映射到所述非均匀尾数格式的单个尾数值。4.根据权利要求1

3中任一项所述的计算系统,其中所述压缩器还被配置为通过至少执行以下中的一项或多项来在所述存储之前进一步压缩所述压缩的激活值:熵压缩、零压缩、行程长度编码、压缩的稀疏行压缩、或者压缩的稀疏列压缩。5.根据权利要求1

4中任一项所述的计算系统,其中所述计算系统还被配置为:通过将存储的所述压缩的激活值转换为所述第一浮点格式的激活值以产生未压缩的激活值,来针对所述神经网络的层执行后向传播;以及利用所述未压缩的激活值来执行梯度操作。6.根据权利要求1

4中任一项所述的计算系统,其中所述层是第一层,所述压缩的激活值是第一压缩的激活值,所述非均匀尾数格式是第一非均匀尾数格式,并且其中所述计算系统还被配置为:利用所述处理器中的至少一个处理器,针对神经网络的不同的第二层执行前向传播,以产生所述第一浮点格式的第二激活值;利用所述浮点压缩器,针对所述第二激活值中的至少一个第二激活值,将所述第二激活值中的所述至少一个第二激活值转换为第三浮点格式,以产生第二压缩的激活值,所述第三浮点格式具有第二非均匀尾数格式的激活值尾数,所述第二非均匀尾数格式与所述第一非均匀尾数格式不同;以及利用所述处理器中的至少一个处理器,将所述第二压缩的激活值存储在所述大容量存储器中。7.根据权利要求1

6中任一项所述的计算系统,其中:
所述处理器包括以下至少一项:张量处理单元、神经网络加速器、图形处理单元、或者以可重构逻辑阵列实现的处理器;并且所述大容量存储器包括动态随机存取存储器(DRAM)或嵌入式DRAM,并且所述系统还包括硬件加速器,所述硬件加速器包括临时存储针对所述神经网络的仅一层的至少一部分的所述...

【专利技术属性】
技术研发人员:D
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:

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

1