CN113168590A - 有损恢复的有损显著性压缩 - Google Patents
有损恢复的有损显著性压缩 Download PDFInfo
- Publication number
- CN113168590A CN113168590A CN201980081614.8A CN201980081614A CN113168590A CN 113168590 A CN113168590 A CN 113168590A CN 201980081614 A CN201980081614 A CN 201980081614A CN 113168590 A CN113168590 A CN 113168590A
- Authority
- CN
- China
- Prior art keywords
- data
- recovery
- truncated
- bits
- compressed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods or arrangements to increase the throughput
- H03M7/6029—Pipelining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Medical Informatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Operations Research (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Multimedia (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
描述了用于数据的有损压缩和恢复的系统和方法。原始数据首先被截断。然后,将截断的数据压缩。然后可以使用更少的位有效地存储和/或传输压缩的截断数据。为了恢复数据,然后对压缩的数据进行解压缩并链接恢复位。选择恢复位以补偿由截断引入的统计偏差。
Description
相关申请的交叉引用
本申请要求2018年12月14日提交的美国非临时专利申请第16/220,540号的权益,其内容通过引用特此并入本文。
背景技术
计算机存储器、缓存和链接被设计为无损的,以便精确地重现存储的信息。然而,在诸如机器学习的一些应用中,不需要精确的值。实际上,在许多这样的情况下,使用精确值会导致机器学习系统的性能下降,而没有任何其他好处。
附图说明
可从结合附图以举例的方式给出的以下描述中获得更详细的理解,在附图中:
图1是其中可以实现一个或多个所公开的实现方式的示例装置的框图;
图2A是根据一个示例的压缩单元的框图;
图2B是根据一个示例的恢复单元的框图;
图2C是用于压缩数据的技术的示例流程图;
图2D是用于恢复压缩的数据的技术的示例流程图;
图3是仅使用基于字典的频繁值压缩(FVC)实现的数据压缩的示例;
图4是根据某些实现方式的数据压缩和恢复的示例;
图5A是利用恢复单元进行评估的机器学习系统的框图;
图5B是利用压缩单元和恢复单元进行训练的机器学习系统的框图;
图6A是用于执行评估的机器学习技术的示例流程图;以及
图6B是用于执行训练的机器学习技术的示例流程图。
具体实施方式
本公开涉及用于数据的有损压缩和恢复的技术。根据该技术,原始数据被截断。然后,将截断的数据压缩。然后可以使用更少的位有效地存储和传输压缩的截断数据。为了恢复数据,对压缩的数据进行解压缩。然后将恢复位添加到解压缩的数据。在一些实现方式中,选择恢复位以补偿由截断引入的统计偏差。
所公开的用于数据的有损压缩和恢复的系统和方法可以应用于中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、现场可编程门阵列(FPGA)或利用存储器、高速缓存和互连件的任何其他处理装置。在一些情况下,用于数据的有损压缩和恢复的技术可以用于存储器压缩、高速缓存压缩、寄存器文件压缩、链接压缩以及数据传输和存储的其他情况。
在许多机器学习系统中,工作负载受存储器瓶颈的影响。具体地,许多机器学习工作负载涉及使用人工神经网络基于一个或多个输入值来生成一个或多个预测分数。通过人工神经网络进行处理涉及计算每个神经元的传递函数,其中基于可调整的权重对每个神经元的输入偏差化。在大型神经网络系统中,大量的神经元且因而大量的权重导致在处理单元和存储器之间传输大量数据。具体地,在生成预测的过程中,可能在存储器和处理单元之间传输大量的神经元权重。该事实可能导致存储器带宽成为生成此类预测的速度的瓶颈。
可以使用有效的压缩技术来减少在处理单元和存储器之间传输的数据量。该技术利用了神经元权重通常具有“令人满意”的精度这一事实。比该精度更精确的值几乎没有或根本没有为预测模型提供额外的精度。因此,该技术涉及将权重值截断到一定精度,然后压缩结果。用于压缩的有利技术是频繁值压缩技术。在该技术中,数据集中的相同值被字典中的键值替换。权重值截断到一定精度允许基于权重值的更高有效位来构建字典,这导致特定权重值实际上可以被字典值替换的可能性更高。权重值的恢复涉及对压缩的值进行解压缩,然后使用最低有效位中的恢复位来恢复解压缩的值。所使用的具体恢复位可以是固定位(诸如值0)、随机位,或者可以根据任何技术上可行的技术进行选择。随机位提供的一个益处在于随机位减少了对可能由固定位引入的某些值的偏差。固定位提供了易于实现的益处。进一步细节在以下提供。
图1是其中实现本公开的一个或多个方面的示例装置100的框图。装置100包括例如计算机(诸如服务器、台式机或膝上型计算机)、游戏装置、手持式装置、机顶盒、电视机、移动电话或平板计算机。装置100包括处理器102、存储器104、存储装置106、一个或多个输入装置108以及一个或多个输出装置110。装置100可选地包括输入驱动器112和输出驱动器114。应理解,装置100可选地包括未在图1中示出的附加部件。
处理器102包括以下中的一者或多者:中央处理单元(CPU)、图形处理单元(GPU)、位于相同的管芯上的CPU和GPU、或一个或多个处理器核心,其中每个处理器核心是CPU或GPU。存储器104与处理器102位于同一管芯上,或者与处理器102分开定位。存储器104包括易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM或高速缓存。
存储装置106包括固定或可移动存储装置,例如硬盘驱动器、固态驱动器、光盘或快闪驱动器。输入装置108包括相机、键盘、小键盘、触摸屏、触摸板、检测器、传声器、加速计、陀螺仪或生物扫描仪中的一者或多者。输出装置110包括显示器、扬声器、打印机、触觉反馈装置、一个或多个灯或天线中的一者或多者。
输入驱动器112与处理器102和输入装置108通信,并且允许处理器102接收来自输入装置108的输入。输出驱动器114与处理器102和输出装置110通信,并且允许处理器102将输出发送到输出装置110。
压缩单元105和恢复单元103以若干不同形式示出。压缩单元105接收数据并输出压缩的数据。恢复单元103接收压缩的数据并输出恢复的数据。在第一形式中,压缩单元105和恢复单元103是如图所示存储在存储器104中并且在处理器102上执行的软件。以该形式,当不被执行时,压缩单元105和/或恢复单元103可以被存储在存储装置106中。在第二形式中,压缩单元105和恢复单元103是驻留在输出驱动器114中的硬件引擎的至少一部分。在其他形式中,压缩单元105和恢复单元103是软件和硬件元件的组合,其中硬件驻留在例如输出驱动器114中,并且软件在例如处理器102上被执行。压缩单元105将压缩的数据存储在存储器中,诸如存储器104,或者诸如存储在压缩单元105的硬件实现方式中或与之相关联的缓冲器的任何其他存储器,或者任何其他存储器。类似地,恢复单元103从存储器检索压缩的数据、将数据恢复到恢复状态,并将恢复的数据提供给装置100内的其他部件。尽管在某些示例实现方式中描述了压缩单元105和恢复单元103,但应当理解,压缩和恢复的原理可以在此类压缩和/或恢复有意义的任何背景中使用。另外,在任何特定的实现方式中,可以实现本文所述的压缩、恢复或者压缩和恢复两者。
在一些情况下,处理器102使用压缩单元105和/或恢复单元103实现一组指令以加载和存储数据。如果处理器102将有损存储以及要以有损方式存储的数据传输到压缩单元105,则压缩单元105执行本文所述的用于截断和压缩数据的技术,然后输出数据以进行存储。如果处理器102将有损加载指令传输到恢复单元103,指定要以有损方式加载的压缩数据,则恢复单元103提取压缩的数据、执行解压缩和恢复技术,并提供解压缩的恢复数据返回到处理器102以供使用。
在另一个示例中,压缩和解压缩用于高速缓存压缩。在该示例中,当处理器102执行有损加载指令时(其针对一个或多个寄存器),压缩单元105提取(例如,从后备存储器)、截断并压缩高速缓存行,并将压缩的高速缓存行存储在高速缓存中。然后,高速缓存将所请求的数据的压缩版本传输到处理器102以进行处理。处理器包括恢复单元103,所述恢复单元103在将数据放入其寄存器之前恢复数据。当处理器执行有损存储指令时,寄存器中的值被压缩单元105重新压缩,并且这些压缩的值被存储在高速缓存中。当发生高速缓存写回时,恢复单元103恢复数据并将该数据放置在后备存储器中。
在其他情况下,一旦接收到有损加载指令,高速缓存就从高速缓存中读取数据、用压缩单元105对其进行压缩,并将压缩的数据传递回处理器102。然后,处理器102利用恢复单元103来恢复解压缩的数据。
尽管陈述了处理器102可以实现这些指令,但是任何处理单元(包括在本公开中描述和未描述的那些)都可以实现和执行这些指令中的一者或两者。此外,在不同的实现方式中,压缩的数据可以仅在高速缓存中、仅在后备存储器中或者在高速缓存和后备存储器两者的组合中使用。上述用于在高速缓存中存储和使用压缩的数据的技术仅是示例,并且应当理解,压缩单元105和恢复单元103可以以任何技术上可行的方式来使用以压缩和恢复数据以供高速缓存中或后备存储器中的处理器和存储装置使用。
图2A是示例压缩单元105的框图。压缩单元105包括耦合到压缩引擎204的截断单元202。在一些情况下,截断单元202和压缩引擎204被实现为固定功能电路。在其他情况下,截断单元202和压缩引擎204被实现为在处理器上执行的软件或固件。在又其他情况下,截断单元202和压缩引擎204被实现为固定功能电路和软件的组合。
截断单元202接收原始数据405。在一些情况下,原始数据405从存储器104、存储装置106、输入驱动器112或高速缓存行中检索。截断单元202通过截断原始数据405中的每个固定大小数据段(例如,字)的位来形成截断的数据410。在一些实现方式中,每个固定大小数据段的大小与包括压缩单元105的计算机系统中的字的大小相同。在示例中,此大小是32位。在其他示例中,由压缩单元105处理的固定大小数据段的大小与包括压缩单元105的计算机系统中的字的大小不同。可以使用固定大小数据段的任何技术上可行的大小。
由截断单元202截断的位数由参数k设置。在一些情况下,参数k是软件定义的参量。如果经由软件定义,则可以将其存储在存储器104的一部分中。可替代地,可以将参数作为来自处理器102或输出驱动器114的指令(例如,有损存储指令)的参量(通过寄存器参量或作为立即值)传递给截断单元202。
在一种实现方式中,当在诸如机器学习系统500B的机器学习系统中使用压缩单元105时,随着训练过程使神经网络模型更接近最终状态,机器学习系统可以将逐渐减小的k值传递给压缩单元102。通过逐渐减小k值以达到算法精度的渐增折衷压缩密度,可以提高不需要高精度的训练早期阶段的处理速度。之后,例如经过一定数量的训练迭代之后,可以减小参数k以提高预测模型的精度。在其他情况下,基于收敛标准或与机器学习算法相关联的其他动态度量来修改参数k。
在其他情况下,基于装置100的可用资源来确定参数k。在其他情况下,k是固定的数。在又其他情况下,参数k是基于先前压缩的数据动态确定的。例如,初始k值可用于压缩数据。然后分析压缩的数据以确定较大k值的影响。如果影响低于预定阈值,则由压缩单元105使用较大k值。
截断的数据410然后由压缩引擎204接收。压缩引擎204对截断的数据410执行压缩算法以形成压缩的数据415。在一些情况下,压缩算法使用基于字典的频繁值压缩(FVC)。在其他情况下,可以使用游长压缩、基于霍夫曼的压缩或基增量压缩。在替代实现方式中,可以使用任何技术上可行的压缩算法或算法的组合。然后将压缩的数据415输出到装置100内的其他部件。
图2B是示例恢复单元103的框图。恢复单元103包括耦合到恢复单元208的解压缩单元206。在一些情况下,解压缩单元206和恢复单元208被实现为固定功能电路。在其他情况下,解压缩单元206和恢复单元208通过执行软件或固件的处理器来实现。在又其他情况下,解压缩单元206和恢复单元208被实现为固定功能电路和处理器实现的软件的组合。
压缩的数据415由解压缩单元206接收。在一些情况下,压缩的数据415从存储器104、存储装置106、输入驱动器112或高速缓存行中检索。解压缩引擎206对压缩的数据415执行解压缩算法以形成解压缩的截断数据420。基于压缩单元105所使用的压缩类型来确定执行的解压缩类型。例如,当使用FVC压缩时,基于字典435形成解压缩的截断数据。
然后,恢复单元208接收解压缩的截断数据420。恢复单元208选择恢复位425。然后,恢复单元208将恢复位425链接到解压缩的截断数据420,以形成恢复的数据430。然后将恢复的数据430输出到装置100内的其他部件。
恢复位425的数量等于参数k。在一些情况下,截断的数据420选择为固定值(诸如全零)的恢复位425。然而,使用固定值(诸如全零)会将数据朝负无穷大取整,从而使数据产生偏差。较高的值(诸如“FF”)会将数据朝正无穷大取整。在任何一种情况下,固定技术都会导致值发生偏移。引入随机值有助于减轻这种偏差。
结果,在其他情况下,恢复单元208使用随机恢复过程选择恢复位425。在随机恢复中,使用统计技术来选择恢复位425。
在一个示例中,随机恢复过程使用伪随机数生成器来生成恢复位425。在其他实现方式中,恢复单元208通过从概率分布中对值进行采样来实现随机恢复过程。在一些情况下,概率分布是参数化的。可以使用的参数化概率分布的一个示例是泊松分布。在这些情况下,恢复单元208通过从存储器检索参数或基于先前恢复的数据动态确定值来确定参数化分布的参数。在其他情况下,恢复单元208利用非参数化概率分布。在一些情况下,非参数化分布是预定义的,并且由恢复单元208从存储器检索。在其他情况下,非参数化分布由恢复单元208基于先前恢复的数据动态地确定。例如,可以使用先前恢复的数据来形成马尔可夫链和贝叶斯网络。
在一些情况下,恢复单元208选择性地执行随机恢复过程。例如,可能不期望对零值执行随机恢复。因此,在这种情况下,恢复单元208不执行随机恢复过程,而是选择为全零的恢复位。更具体地,在一些实现方式中,未压缩的值是0,且因此被截断的值也是0。当遇到该值时,代替在这种情况下随机地选择恢复位425,恢复单元208对于恢复位425选择0值,使得结果是0值。这样做的原因是,如果初始数据为0,则可能不适合将数据恢复为0以外的值,如果将随机位恢复到最低位,则可能会发生这种情况。
图2C是由压缩单元105实现的过程200C的流程图。在步骤211中,接收原始数据405。在一些情况下,原始数据405从存储器104、存储装置106或输入驱动器112检索。
可选地,在步骤212中,确定要截断的k个位的数量。在一些情况下,参数k是软件定义的参量。当k由软件定义时,该值从存储器104检索或经由来自处理器102或输出驱动器114的参量传递到截断单元202。在其他情况下,k是固定的数。
在又其他情况下,参数k是基于先前压缩的数据动态确定的。例如,初始k值可用于压缩数据。然后分析压缩的数据以确定较大k值的影响。如果影响低于预定阈值,则确定较大k值作为步骤212的输出。
然后在步骤213中,原始数据405被截断以形成截断的数据410。通过截断原始数据405中每个固定大小数据段(例如,字)的k个位来截断原始数据405。在一些实现方式中,每个固定大小数据段的大小与包括压缩单元105的计算机系统中的字的大小相同。在示例中,此大小是32位。在其他示例中,由压缩单元105处理的固定大小数据段的大小与包括压缩单元105的计算机系统中的字的大小不同。可以使用固定大小数据段的任何技术上可行的大小。
接下来,在步骤214中,将截断的数据410压缩以形成压缩的数据415。在许多情况下,步骤214由压缩引擎204执行。在一些情况下,步骤330中的压缩使用基于字典的频繁值压缩(FVC)来执行。在替代实现方式中,可以使用任何技术上可行的压缩算法。
这些压缩算法通过分析数据块并找到可以更有效地重新编码的重复值来进行操作。通过对截断的数据410实现压缩,压缩算法能够在数据中定位具有相似值但非精确相同值的空间局部值的模式。传统上,压缩算法不适应这种模式,因为尽管值相似,但它们并不精确相同(或充分相同,这取决于确切的压缩算法)。因此,压缩算法变得不太有效。
然后在步骤215中,传输压缩的数据415。在一些情况下,压缩的数据415被传输到存储器104、存储器104、存储装置106或输出驱动器114。
图2D是恢复过程200D的流程图。在步骤221中,接收由过程200C生成的压缩的数据415。在一些情况下,压缩的数据415从存储器104、存储装置106或输入驱动器112检索。
在步骤222中,对压缩的数据415进行解压缩以形成解压缩的截断数据420。基于步骤214中所使用的压缩类型来确定执行的解压缩类型。例如,当使用FVC压缩时,基于字典435形成解压缩的截断数据。
接下来在步骤223中,将恢复位425链接到解压缩的截断数据,以形成恢复的数据430。恢复位425的数量等于参数k。在一些情况下,恢复位425为全零。在其他情况下,随机恢复过程用于确定恢复位。在随机恢复中,使用统计技术来选择恢复位425。
在一些实现方式中,随机恢复过程使用伪随机数生成器。在其他实现方式中,随机恢复过程包括从概率分布中对值进行采样。在一些情况下,概率分布是参数化的。例如,分布为泊松分布。在这些情况下,可以基于先前恢复的数据来预先确定或动态地确定参数化分布的参数。在其他情况下,概率分布可以是非参数化的。在一些情况下,非参数化分布可以预先定义,并且在其他情况下,非参数化分布基于先前恢复的数据动态地确定。例如,可以使用先前恢复的数据来形成马尔可夫链和贝叶斯网络。通过实现随机恢复过程,减少了在步骤320中由截断引入的统计偏差。
然后在步骤224中,传输恢复的数据430。在一些情况下,恢复的数据430被传输到处理器102、存储器104、存储装置106或输出驱动器114。
图3示出了单独使用FVC的示例。
在FVC中,识别数据模式并将其存储在字典(诸如字典435)中。代替将整个数据模式存储在存储器中,而是将字典条目的索引存储在存储器中。更具体地,FVC算法识别经常出现的模式并为那些模式创建密钥。每个模式与每个密钥的关系存储在字典中。通过仅将模式的密钥存储在存储器中,只需要较少的存储位。对于解压缩,从存储器中检索数据,并使用字典密钥恢复存储在字典中的模式。对压缩数据中的每个密钥进行此恢复,使得在恢复的数据中,将密钥替换为字典值,从而将数据恢复为未压缩的形式。
在图3所示的FVC的示例中,原始数据305由包括八个32位字的256个位组成。在该示例中,如果可以压缩每个原始的32位字(即,如果存在与该32位字匹配的字典值),则将每个原始32位字替换为2位代码310。如果字的值不经常使用,则可能未压缩,使得在字典中包含这些值不会导致所存储的总数据出现净损失。2位代码310指示该值未压缩(00)或已压缩,并且2位代码指定使用了最多三个字典条目315中的哪一个。在该示例中,由于值的多样性和受限的字典大小,因此只能压缩32位字中的几个。因此,该示例示出当单独使用FVC时需要208个位。
图4示出了演示过程200C的改进的效率的示例。在该示例中,根据步骤211接收原始数据405。在该示例中,原始数据405由代表八个32位字的256个位组成。在步骤212中,参数k被设置为2,并且最低有效位被截断。原始数据405然后根据步骤213被截断以形成截断的数据410。截断的数据410然后根据步骤214被压缩以形成压缩的数据415。在该示例中,在步骤214中,FVC压缩与字典435一起使用。通过将过程300C应用于原始数据405,与单独使用FVC时的208个位相比,仅需要40个位。
图4还示出了根据恢复过程200D的对压缩的数据415的恢复。在步骤221中,接收压缩的数据415。然后压缩的数据415根据步骤222被解压缩以形成解压缩的截断数据420。在该示例中,使用FVC和字典435执行解压缩。恢复位425然后根据步骤335被链接到解压缩的截断数据420以形成恢复的数据430。
图5A是利用恢复单元103进行评估的机器学习系统500A的框图。系统500A包括权重的数据库502。存储在数据库502中的权重为评估器504中的神经元节点接收到的多个输入中的每一个分配相对重要性。
恢复单元103从数据库502接收权重作为输入。恢复单元103然后执行过程200D以产生恢复的数据,所述恢复的数据被传输到评估器504。
评估器504从恢复单元103接收恢复的权重。评估器504由多个互连的神经元节点组成。每个互连神经元都从其他神经元节点或输入源506接收多个输入。然后,每个神经元节点基于从数据库502和传递函数508接收到的权重计算单独的输出。评估器504基于多个互连的神经元节点中的每一个的单独输出来输出预测数据510。
图5B是利用压缩单元105和恢复单元103进行训练的机器学习系统500B的框图。机器学习系统500B包括训练器514,所述训练器514基于训练数据512确定要存储在数据库502中的权重。训练器514通过将评估器504生成的预测数据与训练数据的预定输出进行比较来确定权重。训练器514基于反馈机制来调整权重。
一旦由训练器514确定,就使用压缩单元105将权重存储在数据库502中。压缩单元105接收权重作为输入。压缩单元105然后执行过程200C以生成存储在数据库502中的数据。
在一些情况下,通过训练过程动态地改变压缩单元105使用的k值。例如,在训练过程的早期迭代中,可以容忍权重中较高的噪声水平。因此,使用较大的k值。在这种情况下,训练器514将较小的参量传递给压缩单元105。然而,随着训练的进行和权重开始收敛,训练过程对权重中的噪声的容忍度会降低。因此,使用较小的k值。在这种情况下,训练器514将较小的k参量传递给压缩单元105。
图6A是评估过程600A的流程图。在步骤610中,检索压缩的权重。然后在步骤620中,对检索到的压缩的权重执行恢复过程200D以生成恢复的权重。然后在步骤630中由神经网络基于恢复的权重生成输出。
图6B是训练过程600B的流程图。在步骤605中,检索压缩的权重。然后在步骤615中,对检索到的压缩的权重执行恢复过程200D以生成恢复的权重。然后在步骤625中由神经网络使用恢复的权重生成输出。然后在步骤635中对输出执行训练过程。训练过程的结果是新的权重。然后在步骤645中根据过程200C压缩新的权重。然后在步骤655中存储压缩的新权重。
应理解,基于本文的公开内容,许多变型是可能的。尽管上面以特定的组合描述了特征和要素,但是每个特征或要素可以单独使用而无需其他特征和要素,或者以具有或不具有其他特征和要素的各种组合使用。
所提供的方法可在通用计算机、处理器或处理器核心中实现。合适的处理器包括例如通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其他类型的集成电路(IC)和/或状态机。此类处理器可通过以下方式制造:使用处理后硬件描述语言(HDL)指令的结果和包括网表的其他中间数据(此类指令能够存储在计算机可读介质上)来配置制造过程。此类处理的结果可以是掩模作品,所述掩膜作品然后在半导体制造过程中被用来制造实现实施方案各方面的处理器。
本文提供的方法或流程图可在计算机程序、软件或固件中实现,所述计算机程序、软件或固件结合在非暂时性计算机可读存储介质中以供通用计算机或处理器执行。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓存存储器、半导体存储器装置、磁性介质(诸如内部硬盘和可移动磁盘)、磁光介质以及诸如CD-ROM盘和数字通用光盘(DVD)等光学介质。
Claims (20)
1.一种数据存储和检索方法,其包括:
接收数据;
截断预定位数的所述数据以形成截断的数据;
压缩所述截断的数据以形成压缩的数据;以及
将所述压缩的数据存储在存储器中或将所述压缩的数据传输到接收系统。
2.如权利要求1所述的方法,其还包括:
检索所述压缩的数据;
解压缩所述压缩的数据以形成解压缩的截断数据;以及
将恢复位链接到所述解压缩的截断数据以形成恢复的数据。
3.如权利要求2所述的方法,其中所述恢复位通过从统计分布中采样来选择。
4.如权利要求3所述的方法,其中所述统计分布是非参数化分布。
5.如权利要求4所述的方法,其中所述非参数化分布是基于先前恢复的数据确定的。
6.如权利要求3所述的方法,其中所述统计分布是参数化分布。
7.如权利要求6所述的方法,其中所述参数化分布是基于先前恢复的数据确定的。
8.如权利要求1所述的方法,其中所述预定位数是基于先前压缩的数据或噪声的期望水平确定的。
9.如权利要求1所述的方法,其还包括:
经由软件传递的参量接收所述预定位数。
10.一种数据存储和检索系统,其包括:
存储器;以及
处理器,其通信地耦合到所述存储器,其中所述处理器:
从所述存储器检索数据,
截断预定位数的所述数据以形成截断的数据;
压缩所述截断的数据以形成压缩的数据;以及
将所述压缩的数据存储在所述存储器中或将所述压缩的数据传输到接收系统。
11.如权利要求10所述的系统,其中所述处理器还:
检索所述压缩的数据;
解压缩所述压缩的数据以形成解压缩的截断数据;以及
将恢复位链接到所述解压缩的截断数据以形成恢复的数据。
12.如权利要求11所述的系统,其中所述恢复位通过从统计分布中采样来选择。
13.如权利要求12所述的系统,其中所述统计分布是非参数化分布。
14.如权利要求13所述的系统,其中所述非参数化分布是基于先前恢复的数据确定的。
15.如权利要求12所述的系统,其中所述统计分布是参数化分布。
16.如权利要求15所述的系统,其中所述参数化分布是基于先前恢复的数据确定的。
17.如权利要求10所述的系统,其中所述预定位数是基于先前压缩的数据或噪声的期望水平确定的。
18.如权利要求10所述的系统,其中所述处理器还:
经由软件传递的参量接收所述预定位数。
19.一种非暂时性计算机可读存储介质,其存储指令,所述指令在由处理器执行时致使所述处理器:
从存储器检索数据,
截断预定位数的所述数据以形成截断的数据;
压缩所述截断的数据以形成压缩的数据;以及
将所述压缩的数据存储在所述存储器中或将所述压缩的数据传输到接收系统。
20.如权利要求19所述的非暂时性计算机可读存储介质,其中所述指令还致使所述处理器:
检索所述压缩的数据;
解压缩所述压缩的数据以形成解压缩的截断数据;以及
将恢复位链接到所述解压缩的截断数据以形成恢复的数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/220,540 | 2018-12-14 | ||
US16/220,540 US11342933B2 (en) | 2018-12-14 | 2018-12-14 | Lossy significance compression with lossy restoration |
PCT/US2019/063981 WO2020123173A1 (en) | 2018-12-14 | 2019-12-02 | Lossy significance compression with lossy restoration |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113168590A true CN113168590A (zh) | 2021-07-23 |
Family
ID=71073055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980081614.8A Pending CN113168590A (zh) | 2018-12-14 | 2019-12-02 | 有损恢复的有损显著性压缩 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11342933B2 (zh) |
EP (1) | EP3895081A4 (zh) |
JP (1) | JP2022510944A (zh) |
KR (1) | KR20210092302A (zh) |
CN (1) | CN113168590A (zh) |
WO (1) | WO2020123173A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11922178B2 (en) * | 2021-06-25 | 2024-03-05 | Intel Corporation | Methods and apparatus to load data within a machine learning accelerator |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101738640B1 (ko) | 2011-01-18 | 2017-05-24 | 삼성전자주식회사 | 트레이스 데이터 압축 장치 및 방법 |
JP2015509294A (ja) | 2011-11-18 | 2015-03-26 | コーニンクレッカ フィリップス エヌ ヴェ | 標準低品質(ウェブ)画像フォーマットを用いた高品質(医療)画像の符号化 |
US9189394B2 (en) | 2012-08-08 | 2015-11-17 | Wisconsin Alumni Research Foundation | Memory-link compression for graphic processor unit |
US20140132429A1 (en) * | 2012-11-10 | 2014-05-15 | John Conant Scoville | Method for data compression and inference |
US10382789B2 (en) | 2013-03-08 | 2019-08-13 | Board Of Regents Of The University Of Texas System | Systems and methods for digital media compression and recompression |
US8989257B1 (en) | 2013-10-09 | 2015-03-24 | Integrated Device Technology Inc. | Method and apparatus for providing near-zero jitter real-time compression in a communication system |
WO2015142341A1 (en) * | 2014-03-20 | 2015-09-24 | Hewleet-Packard Development Company, L. P. | Dynamic memory expansion by data compression |
US9385751B2 (en) * | 2014-10-07 | 2016-07-05 | Protein Metrics Inc. | Enhanced data compression for sparse multidimensional ordered series data |
US10169359B1 (en) * | 2015-09-28 | 2019-01-01 | EMC IP Holding Company LLC | Distribution content-aware compression and decompression of data |
US10795836B2 (en) | 2017-04-17 | 2020-10-06 | Microsoft Technology Licensing, Llc | Data processing performance enhancement for neural networks using a virtualized data iterator |
US10812630B2 (en) * | 2018-11-19 | 2020-10-20 | Fungible, Inc. | Merging techniques in data compression accelerator of a data processing unit |
-
2018
- 2018-12-14 US US16/220,540 patent/US11342933B2/en active Active
-
2019
- 2019-12-02 WO PCT/US2019/063981 patent/WO2020123173A1/en unknown
- 2019-12-02 JP JP2021530929A patent/JP2022510944A/ja active Pending
- 2019-12-02 EP EP19895972.8A patent/EP3895081A4/en active Pending
- 2019-12-02 KR KR1020217019697A patent/KR20210092302A/ko unknown
- 2019-12-02 CN CN201980081614.8A patent/CN113168590A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3895081A1 (en) | 2021-10-20 |
JP2022510944A (ja) | 2022-01-28 |
EP3895081A4 (en) | 2022-11-30 |
US11342933B2 (en) | 2022-05-24 |
WO2020123173A1 (en) | 2020-06-18 |
US20200195273A1 (en) | 2020-06-18 |
KR20210092302A (ko) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6998968B2 (ja) | ディープニューラルネットワークの実行方法、実行装置、学習方法、学習装置及びプログラム | |
KR102608467B1 (ko) | 뉴럴 네트워크의 경량화 방법, 이를 이용한 인식 방법, 및 그 장치 | |
US11593711B2 (en) | Method and system for adaptively reducing feature bit-size for homomorphically encrypted data sets used to train machine learning models | |
JP7372347B2 (ja) | データ圧縮方法およびコンピューティングデバイス | |
JP6789894B2 (ja) | ネットワーク係数圧縮装置、ネットワーク係数圧縮方法およびプログラム | |
JP7408799B2 (ja) | ニューラルネットワークモデルの圧縮 | |
EP4008057B1 (en) | Lossless exponent and lossy mantissa weight compression for training deep neural networks | |
Di et al. | Optimization of error-bounded lossy compression for hard-to-compress HPC data | |
US20220114454A1 (en) | Electronic apparatus for decompressing a compressed artificial intelligence model and control method therefor | |
Wang et al. | Stochastic circuit design and performance evaluation of vector quantization for different error measures | |
US20190348999A1 (en) | Method and apparatus for compression and decompression of a numerical file | |
CN111814448A (zh) | 预训练语言模型量化方法和装置 | |
CN113168590A (zh) | 有损恢复的有损显著性压缩 | |
CN110135465B (zh) | 模型参数表示空间大小估计方法及装置、推荐方法 | |
US20220076122A1 (en) | Arithmetic apparatus and arithmetic method | |
US12001237B2 (en) | Pattern-based cache block compression | |
KR102392308B1 (ko) | 커널밀도추정을 이용한 신경망 기반 객체 인식 모델 연결가중치 양자화 장치 및 그 방법 | |
JP4883455B2 (ja) | 符号化装置、符号化方法および符号化プログラム | |
KR102317205B1 (ko) | 압축된 데이터를 복원하는 방법 및 장치 | |
US20230061971A1 (en) | Machine learning model compression | |
WO2023070424A1 (zh) | 一种数据库数据的压缩方法及存储设备 | |
KR20230059435A (ko) | 뉴럴 네트워크의 압축 장치 및 방법 | |
US20230075932A1 (en) | Dynamic variable quantization of machine learning parameters | |
US20210303975A1 (en) | Compression and decompression of weight values | |
WO2023034694A1 (en) | Dynamic variable quantization of machine learning parameters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |