CN111985632A - 解压缩设备及其控制方法 - Google Patents
解压缩设备及其控制方法 Download PDFInfo
- Publication number
- CN111985632A CN111985632A CN202010435215.1A CN202010435215A CN111985632A CN 111985632 A CN111985632 A CN 111985632A CN 202010435215 A CN202010435215 A CN 202010435215A CN 111985632 A CN111985632 A CN 111985632A
- Authority
- CN
- China
- Prior art keywords
- matrix
- data
- pruning index
- neural network
- compressed data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 120
- 230000006837 decompression Effects 0.000 title claims abstract description 93
- 238000007906 compression Methods 0.000 claims abstract description 164
- 230000006835 compression Effects 0.000 claims abstract description 158
- 238000013528 artificial neural network Methods 0.000 claims abstract description 83
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 76
- 238000012545 processing Methods 0.000 claims abstract description 75
- 230000015654 memory Effects 0.000 claims abstract description 62
- 239000011159 matrix material Substances 0.000 claims description 575
- 238000013138 pruning Methods 0.000 claims description 187
- 230000008569 process Effects 0.000 claims description 39
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 30
- 230000014509 gene expression Effects 0.000 description 20
- 238000013139 quantization Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 8
- 238000009966 trimming Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/6312—Error control coding in combination with data compression
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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/048—Activation functions
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
-
- 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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2778—Interleaver using block-wise interleaving, e.g. the interleaving matrix is sub-divided into sub-matrices and the permutation is performed in blocks of sub-matrices
-
- 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
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
提供了解压缩设备。该解压缩设备包括存储器、解码器和处理器,其中存储器配置为存储待被解压缩并在人工智能模型的神经网络处理中使用的压缩数据,解码器配置为包括与压缩数据的压缩方法相关的多个逻辑电路、基于压缩数据的输入通过多个逻辑电路对压缩数据进行解压缩、并且输出解压缩数据,处理器配置为从解码器输出的数据中获得神经网络可处理形式的数据。
Description
相关申请的交叉引用
本申请要求并基于2019年5月24日在韩国知识产权局提交的第10-2019-0060991号韩国专利申请、2019年9月23日在韩国知识产权局提交的第10-2019-0117081号韩国专利申请以及2019年11月6日在韩国知识产权局提交的第10-2019-0140720号韩国专利申请的优先权,这些韩国专利申请的每一者的全部公开内容以引用的方式并入本文中。
技术领域
本公开涉及用于对人工智能(AI)系统中的压缩人工智能模型进行解压缩的解压缩设备及其控制方法,该AI系统使用诸如深度学习的机器学习算法及其应用程序来模拟人脑的认知和判断功能。
背景技术
近年来,在使深度学习模型的性能退化最小化的同时,已使用修剪和量化来增加压缩率。例如,等于某个值或更小的权重被修剪为零的权重矩阵可以划分成表示非零值的第一数据集、累积每行非零权重数目的第二数据以及存储与每个非零值对应的列索引的第三数据。此后,可以对第一至第三数据进行量化。另一方面,权重矩阵可以以矩阵形式表示深度学习模型的权重参数。
然而,为了从经量化的数据恢复原始权重矩阵,需要释放量化并从第一至第三数据恢复原始权重矩阵的过程。也就是说,在恢复原始权重矩阵之前,不可能将经量化的数据划分成多个群组并且并行处理每个群组。
因此,正在积极地研究以在压缩过程中保持准确度并同时增加压缩率,并且在解压缩过程中通过并行处理来确保操作速度。
上述信息仅作为背景信息来呈现以帮助理解本公开。对于上述任何内容是否可用作相对于本公开的现有技术,尚未做出确定,也没有做出断言。
发明内容
本公开的各方面旨在至少解决上述问题和/或缺点,并至少提供下面描述的优点。因此,本公开的一方面提供了一种解压缩设备和用于该解压缩设备的方法。
附加方面将部分地在随后的描述中阐述,并且部分地将从所述描述中显而易见,或者可以通过所呈现的实施方式的实践来了解。
根据本公开的一方面,提供了一种解压缩设备。该解压缩设备包括存储器、解码器和处理器,其中存储器配置为存储待被解压缩并在人工智能模型的神经网络处理中使用的压缩数据,解码器配置为包括与压缩数据的压缩方法相关的多个逻辑电路、基于压缩数据的输入通过多个逻辑电路对压缩数据进行解压缩、并且输出解压缩数据,处理器配置为从解码器输出的数据中获得神经网络可处理形式的数据。
存储器进一步配置为存储对应于压缩数据的代表值矩阵,其中处理器进一步配置为:基于解压缩数据和代表值矩阵获得神经网络可处理形式的数据,并且使用神经网络可处理形式的数据执行神经网络处理,并且其中解压缩数据和代表值矩阵包括通过量化人工智能模型中所包括的原始矩阵获得的矩阵。
存储器进一步配置为存储对应于压缩数据的修剪索引矩阵,其中处理器进一步配置为基于修剪索引矩阵更新解压缩数据,其中修剪索引矩阵包括在原始矩阵的修剪过程中获得的矩阵,并且其中修剪索引矩阵在获得压缩数据的过程中使用。
存储器配置为进一步存储对应于压缩数据的补丁信息,其中处理器进一步配置为基于补丁信息改变解压缩数据中所包括的多个元素的至少一个元素的二进制数据值,并且其中补丁信息包括在获得压缩数据的过程中生成的误差信息。
存储器进一步配置为:存储对应于压缩数据的第一修剪索引矩阵并存储对应于压缩数据的第二修剪索引矩阵,其中处理器进一步配置为:基于第一修剪索引矩阵和第二修剪索引矩阵获得修剪索引矩阵,并且基于修剪索引矩阵更新解压缩数据,其中修剪索引矩阵包括在原始矩阵的修剪过程中获得的矩阵,其中修剪索引矩阵在获得压缩数据的过程中使用,并且其中第一修剪索引矩阵和第二修剪索引矩阵分别是基于通过因式分解原始矩阵所获得的第一子矩阵和第二子矩阵中的每一者来获得的。
解压缩数据包括通过交错原始矩阵并且接着量化经交错的矩阵来获得的矩阵,并且其中处理器进一步配置为:根据对应于交错的方式对神经网络可处理形式的数据进行去交错,并且使用去交错后的数据执行神经网络处理。
处理器包括以矩阵形式排列的多个处理元件,并且其中处理器进一步配置为使用多个处理元件来执行神经网络处理。
解压缩数据包括通过将原始矩阵划分成具有相同列数和行数的多个矩阵并量化所划分的多个矩阵之一来获得的矩阵。
存储器进一步配置为存储被解压缩并在人工智能模型的神经网络处理中使用的其它压缩数据,其中解压缩设备还包括另一解码器,所述另一解码器配置为:包括与其它压缩数据的压缩方法相关的多个其它逻辑电路、基于其它压缩数据的输入通过多个其它逻辑电路对其它压缩数据进行解压缩、并且输出解压缩后的其它数据,并且其中处理器进一步配置为:从另一解码器输出的、解压缩后的其它数据中获得神经网络可处理形式的其它数据,并且通过耦合神经网络可处理数据和神经网络可处理形式的其它数据来获得每个元素包括多个二进制数据的矩阵。
解压缩设备被实施为一个芯片。
根据本公开的另一方面,提供了解压缩设备的控制方法,解压缩设备包括与压缩数据的压缩方法相关的多个逻辑电路。控制方法包括由多个逻辑电路接收待被解压缩并在人工智能模型的神经网络处理中使用的压缩数据、由多个逻辑电路对压缩数据进行解压缩并输出解压缩数据、以及从多个逻辑电路输出的数据中获得神经网络可处理形式的数据。
控制方法可以包括基于解压缩数据和对应于压缩数据的代表值矩阵获得神经网络可处理形式的数据;以及使用神经网络可处理形式的数据执行神经网络处理,其中解压缩数据和代表值矩阵包括通过量化人工智能模型中所包括的原始矩阵来获得的矩阵。
控制方法可以包括基于对应于压缩数据的修剪索引矩阵来更新解压缩数据,其中修剪索引矩阵包括在原始矩阵的修剪过程中获得的矩阵,并且其中修剪索引矩阵在获得压缩数据的过程中使用。
控制方法可以包括基于对应于压缩数据的补丁信息来改变解压缩数据中所包括的多个元素的至少一个元素的二进制数据值,其中补丁信息包括在获得压缩数据的过程中生成的误差信息。
控制方法可以包括基于对应于压缩数据的第一修剪索引矩阵和对应于压缩数据的第二修剪索引矩阵获得修剪索引矩阵;以及基于修剪索引矩阵更新解压缩数据,其中修剪索引矩阵包括在原始矩阵的修剪过程中获得的矩阵,其中修剪索引矩阵在获得压缩数据的过程中使用,并且其中第一修剪索引矩阵和第二修剪索引矩阵分别是基于通过因式分解原始矩阵所获得的第一子矩阵和第二子矩阵中的每一者来获得的。
解压缩数据包括通过交错原始矩阵并且接着量化交错矩阵来获得的矩阵,其中控制方法还包括根据对应于交错的方式对神经网络可处理形式的数据进行去交错,并且其中在执行神经网络处理的过程中,使用去交错后的数据来执行神经网络处理。
在执行神经网络处理的过程中,使用以矩阵形式排列的多个处理元件来执行神经网络处理。
解压缩数据包括通过将原始矩阵划分成具有相同列数和行数的多个矩阵并量化所划分的多个矩阵之一来获得的矩阵。
解压缩设备还包括与其它压缩数据的压缩方法相关的多个其它逻辑电路,并且其中控制方法还包括:接收待被解压缩并在人工智能模型的神经网络处理中使用的其它压缩数据、由多个其它逻辑电路对其它压缩数据进行解压缩、输出解压缩的其它数据、获得从多个逻辑电路输出的神经网络可处理形式的其它数据,以及通过耦合神经网络可处理数据和神经网络可处理形式的其它数据来获得每个元素包括多个二进制数据的矩阵。
解压缩设备被实施为一个芯片。
通过以下结合附图公开了本公开的各种实施方式的详细描述,本公开的其它方面、优点和显著特征对于本领域的技术人员来说将变得显而易见。
附图说明
从下面结合附图所作的描述中,本公开的某些实施方式的以上和其它方面、特征和优点将变得更加显而易见,在附图中:
图1是示出根据本公开的实施方式的解压缩设备的配置的框图;
图2是描述根据本公开的实施方式的电子系统的图;
图3A、图3B、图3C和图3D是描述根据本公开的各种实施方式的用于获得第一矩阵、第一修剪索引矩阵和第二修剪索引矩阵的方法的图;
图4是描述根据本公开的实施方式的用于获得第一矩阵的方法的图;
图5A和图5B是描述根据本公开的各种实施方式的解压缩设备的图;
图6是描述根据本公开的实施方式的原始矩阵的图;
图7A、图7B和图7C是描述根据本公开的各种实施方式的用于解压缩第一矩阵的方法的图;
图8A和图8B是描述根据本公开的各种实施方式的第二矩阵的更新操作的图;
图9是描述根据本公开的实施方式的用于合并处理器的多个第二矩阵的方法的图;
图10是描述根据本公开的实施方式的解压缩设备的控制方法的流程图;
图11A、图11B、图11C和图11D是描述根据本公开的各种实施方式的人工智能模型的学习过程的图;
图12是描述根据本公开的实施方式的用于在学习过程中执行修剪的方法的图;
图13是描述根据本公开的实施方式的m值的影响的图;以及
图14A和图14B是描述根据本公开的各种实施方式的学习速度提高的图。
在所有附图中,相同的参考标号始终用于表示相同的元件。
具体实施方式
提供以下参考附图的描述以帮助全面理解由权利要求书及其等同限定的本公开的各种实施方式。其包括各种具体细节以帮助理解,但是这些细节应当视为仅仅是示例性的。因此,本领域的普通技术人员将认识到,在不脱离本公开的范围和精神的情况下,可以对本文描述的各种实施方式做出各种改变和修改。此外,为了清楚和简明起见,可以省略对众所周知的功能和构造的描述。
以下描述和权利要求书中所使用的术语和词语不限于书目含义,而是仅由发明人用来使得能够清楚且一致地理解本公开。因此,对于本领域的技术人员来说应当显而易见的是,提供以下对本公开的各种实施方式的描述仅仅是为了说明的目的,而不是为了限制由所附权利要求书及其等同限定的本公开的目的。
应当理解,单数形式包括复数指示物,除非上下文另有明确规定。因此,例如,提及“部件表面”包括提及一个或多个这种表面。
本公开提供了一种解压缩设备及其控制方法,该解压缩设备减少语音识别或对象识别中的存储器使用,将具有减小数据容量的人工智能模型用于高速处理,并且对具有减小数据容量的人工智能模型进行解压缩。
考虑到在本公开中的功能,当前广泛使用的通用术语被选择作为本公开的实施方式中使用的术语,但是可以根据本领域技术人员的意图或司法先例、新技术的出现等进行改变。此外,在特定情况下,可以存在由申请人任意选择的术语。在这种情况下,此类术语的含义将在本公开的对应描述部分中详细提及。因此,本公开中使用的术语应当基于术语的含义和贯穿本公开的内容而不是术语的简单名称来定义。
在本公开中,表达“具有”、“可以具有”、“包括”、“可以包括”等指示对应特征(例如,数值、功能、操作、诸如零件的部件等)的存在,并且不排除额外特征的存在。
表达“A和/或B中的至少一者”应当理解为表示“A”或“B”或“A和B”中的任何一者。
本公开中所使用的表达“第一”、“第二”等可以指示各种部件,而不管所述部件的顺序和/或重要性,将仅用于把一个部件与其它部件区分开来,并且不限制对应部件。
单数表达包括复数表达,除非上下文另有明确指示。还应当理解,本申请中所使用的术语“包括”或“构成”指定了说明书中提及的特征、数字、操作、部件、部分或其组合的存在,但不排除一个或多个其它特征、数字、操作、部件、部分或其组合的存在或添加。
在说明书中,术语“用户”可以是使用电子设备的人或使用电子设备的设备(例如,人工智能电子设备)。
在下文中,将参考附图更详细地描述本公开的实施方式。
图1是示出根据本公开实施方式的解压缩设备的配置的框图。
参考图1,解压缩设备100可以是对压缩人工智能模型进行解压缩的设备。这里,压缩人工智能模型是在解压缩之后可用于神经网络处理的数据,并且可以是在解压缩之前不可用于神经网络处理的数据。
例如,解压缩设备100可以是对压缩人工智能模型中所包括的压缩数据进行解压缩、最终获得神经网络可处理数据(下文称为恢复数据)并且使用恢复数据执行神经网络处理的设备。例如,解压缩设备100可以以存在于服务器、台式个人计算机(PC)、笔记本、智能电话、平板PC、电视(TV)、可穿戴装置等中的存储器和芯片之间的单独硬件(HW)的形式来实施,并且还可以实施为片上系统(SOC)。可替换地,解压缩设备100可以以诸如中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理(DSP)、网络处理单元(NPU)等芯片的形式来实施,可以以电路的形式来实施,并且可以以芯片内部的配置的形式来实施。
然而,如上所述的解压缩设备100的类型仅仅是示例,并且可以使用任何设备,只要它是对压缩人工智能模型中所包括的压缩数据进行解压缩、最终获得恢复数据并且使用恢复数据执行神经网络处理的设备。
如图1所示,解压缩设备100包括存储器110、解码器120和处理器130。
存储器110可以存储被解压缩并在人工智能模型的神经网络处理中使用的压缩数据。例如,存储器110可以存储从压缩设备接收的压缩数据。压缩数据和在压缩之前构成人工智能模型的数据可以以至少一种矩阵形式来表达。在下文中,为了便于解释,压缩数据将被描述为第一矩阵,并且从其将第一矩阵解压缩的数据将被描述为第二矩阵。第二矩阵可以与待稍后描述的代表值矩阵一起转换成恢复数据。
这里,第一矩阵可以是基于压缩方法压缩第二矩阵的矩阵。例如,第一矩阵可以是通过基于诸如异或门的逻辑电路形成的编码矩阵压缩的矩阵,在逻辑电路中第二矩阵构成解码器120。第二矩阵可以是人工智能模型中所包括的原始矩阵(权重矩阵)通过修剪等进行压缩的矩阵,或者是原始矩阵被量化的矩阵。可替换地,第二矩阵可以是包括在经修剪的原始矩阵的量化过程中所获得的二进制数据的矩阵。作为人工智能模型中所包括的矩阵的原始矩阵是在人工智能模型的学习过程完成之后获得的矩阵,并且可以处于不执行压缩的状态。另一方面,编码矩阵是用于压缩第二矩阵的矩阵,并且可以是用于实施构成解码器120的逻辑电路的矩阵。
稍后将参考附图描述通过压缩第二矩阵来获得第一矩阵的详细方法。
解码器120可以包括与对压缩数据进行压缩的方法相关的多个逻辑电路。作为使用编码矩阵执行压缩的示例,解码器120可以包括基于编码矩阵形成的多个逻辑电路。逻辑电路可以是异或门,但不限于此。例如,解码器120可以包括多个异或门,其中相应输入/输出端子基于编码矩阵连接到多个异或门。也就是说,如果二进制数据被输入到多个异或门,则相应输入/输出端子可以连接以输出编码矩阵和二进制数据的矩阵乘法结果。二进制数据是指被二进制量化并以1位显示的数据,但不限于此,并且可以通过其它量化方法来获得。
在设计压缩方法的情况下,可以首先通过随机连接多个异或门来实施解码器120,并且可以通过比较多个异或门中的每一者的输入和多个异或门中的每一者的输出来获得编码矩阵。此外,可以首先生成包括0和1的编码矩阵,并且可以基于编码矩阵压缩第二矩阵以获得第一矩阵。在这种情况下,当实施解压缩设备100时,还可以通过连接多个异或门的输入/输出端子以便对应于编码矩阵来实施解码器120。
当输入第一矩阵时,解码器120可以通过多个逻辑电路解压缩第一矩阵并输出解压缩数据。例如,当输入第一矩阵中所包括的第一数目的单元的二进制数据时,解码器120可以通过多个异或门输出比第一数目大的第二数目的单元的二进制数据。例如,解码器120可以依序接收第一矩阵中所包括的五个单元的二进制数据,并且可以通过多个异或门依序输出九个单元的二进制数据。例如,如果编码矩阵是呈9×5的形式,则解码器120可以包括五个输入端子和九个输出端子。此外,如果第一矩阵具有25个元素(参数),则解码器120可以五次接收五个单元的二进制数据并且五次输出九个单元的二进制数据,从而输出总共45个元素。
处理器130可以从解码器120输出的二进制数据中获得第二矩阵。在上述示例中,处理器130可以从输出五次的九个单元的二进制数据中获得包括45个元素的第二矩阵。
另一方面,存储器110还可以存储对应于第一矩阵的代表值矩阵。例如,存储器110可以存储从压缩设备接收的对应于第一矩阵的代表值矩阵。代表值矩阵可以在修剪原始矩阵的量化过程中获得,并且可以是代表修剪原始矩阵中所包括的多个元素的一组代表值。
处理器130可以基于第二矩阵和代表值矩阵获得恢复矩阵,并且使用恢复矩阵执行神经网络处理。这里,第二矩阵和代表值矩阵可以是通过量化人工智能模型中所包括的原始矩阵来获得的矩阵。量化意指将数据改变为多个样本值之一,并且在量化中,因为数据由多个样本值表示,所以总体数据容量可以减小,但是可能出现因改变的样本值与原始数据之间的差异而导致的误差。
例如,压缩设备可以量化人工智能模型中所包括的原始矩阵以获得代表值矩阵和包括二进制量化数据的第二矩阵。这里,二进制量化数据是指由1位表示的数据。作为更具体的示例,压缩设备可以通过为原始矩阵中所包括的预定数目的元素设置一个代表值并将每个元素表示为二进制量化数据的方法来执行量化。以这种方式,压缩设备可以获得包括用于整个原始矩阵的代表值的代表值矩阵,并且可以获得通过将原始矩阵中所包括的元素转换成二进制量化数据来获得的第二矩阵。然而,压缩方法不限于此,并且压缩设备可以使用任何其它量化方法。
处理器130可以从第二矩阵和代表值矩阵获得待用于神经网络处理的恢复矩阵。这里,恢复矩阵可以不同于原始矩阵。也就是说,由于量化误差,恢复矩阵可以不同于原始矩阵。然而,可以获得恢复矩阵以使得使用原始矩阵的神经网络处理的结果和使用恢复矩阵的神经网络处理的结果在待稍后描述的压缩过程中没有显著不同,这将稍后进行描述。
处理器130可以包括以矩阵形式排列的多个处理元件,并且可以使用多个处理元件执行人工智能模型的神经网络处理。
另一方面,存储器110还可以存储对应于第一矩阵的修剪索引矩阵。例如,存储器110还可以存储从压缩设备接收的对应于第一矩阵的修剪索引矩阵。
修剪索引矩阵是在原始矩阵的修剪过程中获得的矩阵,并且可以在将第二矩阵压缩成第一矩阵的过程中使用。
首先,修剪是去除冗余权重的方法,具体是将人工智能模型中所包括的原始矩阵中的某些元素(特定深度学习参数)的数字改变为零。例如,压缩设备可以通过将m×n的原始矩阵中所包括的多个元素中的预定值或更小的元素改变为0来修剪m×n的原始矩阵,并且可以获得表示0或1的m×n的修剪索引矩阵,所述修剪索引矩阵指示m×n的原始矩阵中所包括的多个元素中的每一元素是否被修剪。
另外,压缩设备可以在基于编码矩阵将第二矩阵压缩成第一矩阵的过程中使用修剪索引矩阵。具体地,压缩设备可以确定待包括在第一矩阵中的第一数目的单元的二进制数据的值,使得待包括在第一矩阵中的第一数目的单元的二进制数据与编码矩阵的矩阵乘法结果等于第二矩阵中所包括的第二数目的单元的对应二进制数据,并且在这种情况下,因为第一数目小于第二数目,所以满足上述条件的待包括在第一矩阵中的第一数目的单元的二进制数据的值可能无法导出。在这种情况下,压缩设备可以通过基于修剪索引矩阵将第二矩阵中所包括的第二数目的单元的一些对应二进制数据确定为不必要数据,来确定待包括在第一矩阵中的第一数目的单元的二进制数据的值。稍后将对其进行详细描述。
处理器130可以基于修剪索引矩阵来更新第二矩阵。例如,处理器130可以基于修剪索引矩阵将第二矩阵中所包括的多个元素中的一些元素改变为0。
然而,处理器130不限于此,并且存储器110可以不存储修剪索引矩阵。也就是说,如果压缩设备没有向解压缩设备100提供修剪索引矩阵,则解压缩设备100可以识别出修剪索引矩阵没有在将第二矩阵压缩成第一矩阵的过程中使用,并且可以省略将第二矩阵中所包括的多个元素中的一些元素改变为0的操作。
可替换地,虽然压缩设备可以向解压缩设备100提供修剪索引矩阵,但是修剪索引矩阵可以不用在将第二矩阵压缩成第一矩阵的过程中。在这种情况下,压缩设备可以向解压缩设备100提供指示在将第二矩阵压缩成第一矩阵的过程中没有使用修剪索引矩阵的信息,并且解压缩设备100可以省略将第二矩阵中所包括的多个元素中的一些元素改变为0的操作。
另一方面,存储器110还可以存储对应于第一矩阵的补丁信息。例如,存储器110还可以存储从压缩设备接收的对应于第一矩阵的补丁信息。
这里,补丁信息可以包括在将第二矩阵压缩成第一矩阵的过程中生成的误差信息。具体地,压缩设备可以通过在将第二矩阵压缩成第一矩阵的过程中使用修剪索引矩阵,来确定待包括在第一矩阵中的第一数目的单元的二进制数据的值。然而,即使使用修剪索引矩阵,也可能不确定待包括在第一矩阵中的第一数目的单元的二进制数据的值。在这种情况下,压缩设备可以确定待包括在第一矩阵中的第一数目的单元的二进制数据的值以最小化误差数目。例如,压缩设备可以确定待包括在第一矩阵中的第一数目的单元的二进制数据的值,以使出现待包括在第一矩阵中的第一数目的单元的二进制数据和编码矩阵的矩阵乘法结果与第二矩阵中所包括的第二数目的单元的对应二进制数据之间的差异的位数最小化。此外,压缩设备可以生成关于出现差异的位数、位置等的信息作为补丁信息。此外,压缩设备可以向解压缩设备100提供补丁信息以解决在解压缩过程中可能出现的误差。
处理器130可以基于补丁信息改变第二矩阵中所包括的多个元素中的一些元素的二进制数据值。例如,如果元素的值是0,则处理器130可以将第二矩阵中所包括的多个元素当中由补丁信息指示的元素的值改变为1,并且如果元素的值是1,则改变为0。
另一方面,存储器110还可以存储对应于压缩数据的第一修剪索引矩阵和对应于第一矩阵的第二修剪索引矩阵。例如,存储器110可以存储从压缩设备接收的对应于第一矩阵的第一修剪索引矩阵和第二修剪索引矩阵。在这种情况下,压缩设备可以向解压缩设备100提供第一修剪索引矩阵和第二修剪索引矩阵而不是修剪索引矩阵。
首先,如上所述,修剪索引矩阵可以是在原始矩阵的修剪过程中获得的矩阵。
第一修剪索引矩阵和第二修剪索引矩阵可以基于通过因式分解原始矩阵获得的第一子矩阵和第二子矩阵中的每一者来获得。因式分解是意指将一个矩阵分成两个较小矩阵的一种因式分解,并且例如,可以使用诸如非负矩阵因式分解(NMF)等方法。然而,获得第一修剪索引矩阵和第二修剪索引矩阵的方法不限于此,并且可以使用各种方法。
压缩设备可以通过因式分解原始矩阵以获得第一子矩阵和第二子矩阵并分别修剪第一子矩阵和第二子矩阵,来获得第一修剪索引矩阵和第二修剪索引矩阵。此后,压缩设备可以通过将使用修剪索引矩阵的神经网络处理的结果与使用第一修剪索引矩阵和第二修剪索引矩阵的神经网络处理的结果进行比较,来更新第一修剪索引矩阵和第二修剪索引矩阵。更新方法可以是改变第一子矩阵和第二子矩阵中的每一者的修剪率的方法。最后,压缩设备可以获得第一修剪索引矩阵和第二修剪索引矩阵,其中两种情况的运算结果之间的差异落在阈值内。
压缩设备可以通过将修剪索引矩阵转换成第一修剪索引矩阵和第二修剪索引矩阵来减少数据容量。例如,压缩设备可以将100×50的修剪索引矩阵转换成100×10的第一修剪索引矩阵和10×50的第二修剪索引矩阵。在这种情况下,压缩设备可以将5000的数据减少到1000+500=1500的数据。
处理器130可以基于第一修剪索引矩阵和第二修剪索引矩阵获得修剪索引矩阵,并且基于修剪索引矩阵更新第二矩阵。具体地说,第一修剪索引矩阵和第二修剪索引矩阵中的每一者可以包括二进制数据,并且处理器130可以通过对第一修剪索引矩阵和第二修剪索引矩阵执行矩阵乘法运算来获得修剪索引矩阵。
处理器130可以基于修剪索引矩阵将第二矩阵中所包括的多个元素中的一些元素改变为0。
另一方面,第二矩阵可以是通过交错原始矩阵并且接着量化交错后的矩阵来获得的矩阵。交错意指按预定单元重新排列矩阵中所包括的数据的次序。也就是说,压缩设备也可以在量化原始矩阵之前执行交错。
处理器130可以根据对应于交错的方法对恢复矩阵进行去交错,并且使用去交错的恢复矩阵来执行神经网络处理。
随着添加交错和去交错操作,可以在量化过程期间改善压缩率。例如,如果原始矩阵的元素不是均匀分布的,则由于修剪索引矩阵是1或0连续的,压缩率或准确度可能显著下降。在这种情况下,当交错待压缩的矩阵时,可以改善修剪索引矩阵的随机性,从而改善压缩率和准确度。对交错方法和去交错方法的类型没有特别的限制,并且可以根据解压缩速度和随机性使用各种方法。例如,可以使用在涡轮码中使用的方法,并且没有特别的限制,只要交错方法和去交错方法彼此对应即可。
另一方面,第二矩阵可以是通过将原始矩阵划分成具有相同列数和相同行数的多个矩阵并量化多个被划分的矩阵之一来获得的矩阵。
将原始矩阵划分成多个矩阵的优点可以是,例如,在m×n的原始矩阵中,m和n中的一者显著大于另一者。例如,在将100×25的原始矩阵压缩成100×r的矩阵和r×25的矩阵的情况下,通常选择r小于25并且可以降低压缩比。在这种情况下,当100×25的原始矩阵被划分成四个25×25的矩阵并且四个矩阵中的每一者都被压缩时,可以改善压缩率。此外,当原始矩阵被划分成多个矩阵时,还可以减少压缩过程期间的计算量。也就是说,在将偏斜矩阵划分成正方形矩阵之后执行压缩可能是有效的。
另一方面,存储器110还可以存储第三矩阵,该第三矩阵被解压缩并在人工智能模型的神经网络处理中使用。例如,存储器110还可以存储从压缩设备接收的第三矩阵。
解压缩设备100包括与基于编码矩阵的第三矩阵的压缩方法相关的多个其它逻辑电路,并且还可以包括另一解码器,当输入第三矩阵时,该另一解码器通过多个其它逻辑电路解压缩其它压缩数据并输出其它解压缩数据。这里,第三矩阵可以是基于编码矩阵压缩第四矩阵的矩阵。多个其它逻辑电路可以是多个其它异或门。
然而,多个其它异或门不限于此,并且多个其它异或门可以基于不同于该编码矩阵的另一编码矩阵连接到每个输入/输出端子。在这种情况下,输入到多个其它异或门的二进制数据的数目和输出二进制数据的数目可以分别不是第一数目和第二数目。这里,第三矩阵可以是基于另一个编码矩阵压缩第四矩阵的矩阵。
处理器130可以从另一解码器输出的数据中获得神经网络可操作形式的第四矩阵,并且可以组合第二矩阵和第四矩阵以获得其中每个元素包括多个二进制数据的矩阵。
也就是说,解压缩设备100还可以包括多个解码器。这是因为原始矩阵中所包括的每个元素可以包括多个二进制数据。例如,压缩设备可以将原始矩阵划分成多个矩阵,在该多个矩阵中每个元素为1,并且对多个矩阵中的每个执行量化和压缩。例如,如果原始矩阵的每个元素包括两个二进制数据,则压缩设备可以将原始矩阵划分成两个矩阵,其中每个元素包括一个二进制数据,并且量化并压缩两个矩阵中的每个以获得上述第一矩阵和第三矩阵。另外,压缩设备可以向解压缩设备100提供第一矩阵和第三矩阵。解压缩设备100可以分别使用解码器120和另一解码器并行处理第一矩阵和第三矩阵,并且处理器130可以合并第二矩阵和第四矩阵以获得其中每个元素包括多个二进制数据的矩阵。
同时,在上文中,解码器120已经被描述为设置在存储器110与处理器130之间。在这种情况下,因为处理器130中所提供的内部存储器存储解压缩数据,所以需要具有大容量的存储器并且功耗可能相当大。然而,可以在处理器130内部的处理元件单元中执行计算的同时执行解压缩,并且可以使对处理元件单元的处理执行时间的影响更小而不会产生现有硬件上的开销。此外,因为解码器120可以设置在存储器110与处理器130之间,所以有可能以存储器包装的形式设计而不修改现有加速器设计的内容。这种配置可能更适合于重复使用整个解压缩数据的卷积神经网络(CNN)。
然而,解压缩设备100不限于此,并且还可以实施为一个芯片。在这种情况下,存储器110可以仅从芯片外部的外部存储器接收一些压缩数据,并且仅存储一些压缩数据。此外,因为每当处理元件单元请求数据时,存储器110都在运行中执行解压缩,所以存储器110可以使用具有小容量的存储器并且还可以降低功耗。然而,因为存储器110仅存储一些压缩数据,所以每当处理元件单元请求数据时都可能执行解压缩和去交错,从而增加等待时间并增加长期功耗。另外,解码器120被添加到现有加速器的内部,可能有必要修改许多现有设计。这种配置可能更适合一次使用一些压缩数据的递归神经网络(RNN)。
解压缩设备100可以通过上述方法执行解压缩以获得恢复矩阵,并且使用所获得的恢复矩阵执行神经网络处理。
图2是描述根据本公开的实施方式的电子系统的图。
参考图2,电子系统1000包括压缩设备50和解压缩设备100。
首先,压缩设备50可以是压缩人工智能模型的设备。例如,压缩设备50是压缩人工智能模型中所包括的至少一个原始矩阵的设备,并且可以是诸如服务器、台式PC、笔记本、智能电话、平板PC、TV、可穿戴装置等设备。
然而,这仅仅是示例,并且可以使用任何设备,只要压缩设备50可以是可通过压缩人工智能模型来减小人工智能模型的数据大小的设备。这里,原始矩阵可以是权重矩阵。
压缩设备50可以量化人工智能模型中所包括的原始矩阵以获得代表值矩阵和第二矩阵。如上所述,量化方法不受特别限制。
压缩设备50可以基于编码矩阵将第二矩阵压缩成第一矩阵。可替换地,压缩设备50可以基于编码矩阵以及原始矩阵中所包括的多个元素是否被修剪,来将第二矩阵压缩成第一矩阵。特别地,随着压缩设备50进一步考虑是否执行修剪,可以改善第二矩阵的压缩率。
压缩设备50可以从第二矩阵仅获得第一矩阵。可替换地,压缩设备50还可以从第二矩阵获得第一矩阵和补丁信息。特别地,随着压缩设备50进一步使用补丁信息,可以改善第二矩阵的压缩率。然而,随着补丁信息的大小增加,压缩率可能会降低。
同时,压缩设备50可以获得这样的修剪索引矩阵,该修剪索引矩阵指示原始矩阵中所包括的每个元素是否通过修剪人工智能模型中所包括的原始矩阵来修剪。压缩设备50可以向解压缩设备100提供修剪索引矩阵。
可替换地,压缩设备50可以获得修剪索引矩阵,该修剪索引矩阵指示原始矩阵中所包括的每个元素是否通过修剪人工智能模型中所包括的原始矩阵来修剪,并且可以使用上述方法将修剪索引矩阵压缩成第一修剪索引矩阵和第二修剪索引矩阵。压缩设备50可以向解压缩设备100提供第一修剪索引矩阵和第二修剪索引矩阵。
解压缩设备100可以从压缩设备50接收压缩的人工智能模型、执行解压缩、并且执行神经网络处理。
然而,电子系统1000不限于此,并且可以实施为一个电子设备。例如,当该电子设备以与压缩设备50相同的方式压缩人工智能模型并执行神经网络处理时,电子设备可以以与解压缩设备100相同的方式执行解压缩。
在下文中,为了便于解释,压缩设备50和解压缩设备100将被描述为分开的。此外,将首先描述压缩设备50的压缩操作,并且将参考附图更详细地描述解压缩设备100的操作。
图3A至图3D是描述根据本公开的各种实施方式的用于获得第一矩阵、第一修剪索引矩阵和第二修剪索引矩阵的方法的图。
参考图3A至图3D,图3A是示出人工智能模型中所包括的原始矩阵的示例的图,并且原始矩阵可以呈m×n的形式。例如,原始矩阵可以呈10000×8000的形式。另外,原始矩阵中的多个元素中的每个可以是32位。也就是说,原始矩阵可以包括具有32位的10000×8000个元素。然而,原始矩阵不限于此,并且原始矩阵的每个元素的大小和位数可以变化。
图3B是示出修剪并量化图3A所示的原始矩阵的结果的图。
压缩设备50可以基于第一阈值修剪原始矩阵中所包括的多个元素中的每个,并且获得指示多个元素中的每个是否被修剪为二进制数据的修剪索引矩阵310。
例如,压缩设备50可以通过将原始矩阵中所包括的多个元素中、小于30个元素转换为0并保持剩余元素不变来修剪原始矩阵。此外,压缩设备50可以通过将多个元素中转换为0的元素转换为0并将剩余元素转换为1来获得修剪索引矩阵310。也就是说,修剪索引矩阵310具有与原始矩阵相同的大小,并且可以包括0或1。
此外,压缩设备50可以量化原始矩阵中所包括的多个元素当中的未修剪元素,以获得代表值矩阵330和包括二进制量化数据的第二矩阵320。
压缩设备50可以使用一个代表值量化图3A的原始矩阵中的n个元素。相应地,图3B示出了包括m个元素的代表性值矩阵330。这里,量化为一个代表值的元素的数目n仅是一个示例,并且可以使用其它值,并且如果使用其它值,则代表值矩阵330中所包括的元素的数目也可以变化。另外,压缩设备50可以获得包括二进制量化数据的第二矩阵320,并且第二矩阵320具有与原始矩阵相同的大小并可以包括0或1。
如图3C所示,压缩设备50可以基于编码矩阵将第二矩阵320压缩成第一矩阵10。第一矩阵10中所包括的元素的数目小于第二矩阵320中所包括的元素的数目。稍后将参考图4描述获得第一矩阵10的方法。
如图3D所示,压缩设备50可以将修剪索引矩阵310压缩成第一修剪索引矩阵20-1和第二修剪索引矩阵20-2。具体地说,压缩设备50可以通过将原始矩阵因式分解成第一子矩阵和第二子矩阵并分别修剪第一子矩阵和第二子矩阵,来获得第一修剪索引矩阵20-1和第二修剪索引矩阵20-2。另外,压缩设备50可以更新第一修剪索引矩阵20-1和第二修剪索引矩阵20-2,使得使用第一修剪索引矩阵20-1和第二修剪索引矩阵20-2的矩阵乘法结果的神经网络处理结果接近使用修剪索引矩阵310的神经网络处理结果。例如,如果使用第一修剪索引矩阵20-1和第二修剪索引矩阵20-2的矩阵乘法结果的神经网络处理结果的准确度变低,则可以通过降低当修剪第一子矩阵和第二子矩阵中的每一者时所使用的修剪率来提高准确度。在这种情况下,用于获得第一修剪索引矩阵20-1和第二修剪索引矩阵20-2的修剪率可以彼此不同。压缩设备50可以通过重复这种过程来提高使用第一修剪索引矩阵20-1和第二修剪索引矩阵20-2的矩阵乘法结果的神经网络处理结果的准确度。
在图3A至图3D中,压缩设备50被描述为执行修剪和量化两者,但不限于此。例如,压缩设备50可以执行量化而不执行修剪。
图4是描述根据本公开的实施方式的用于获得第一矩阵的方法的图。
参考图4,图4示出了使用编码矩阵A将第二矩阵中所包括的预定数目的元素B压缩成x的方法。这里,x可以包括在第一矩阵中。例如,第二矩阵中包括的九个二进制数据可以被压缩成五个二进制数据。此时,九个二进制数据当中的修剪数据表示为“-”并且在压缩之后不需要恢复。也就是说,根据图4的矩阵乘法可以生成九个方程式,但是不需要考虑包括“-”的方程式。因此,第二矩阵中所包括的九个二进制数据可以被压缩成五个二进制数据。
也就是说,第一矩阵中所包括的第一数目单元的二进制数据x和编码矩阵A的矩阵乘法结果可以与第二矩阵中所包括的第二数目的单元的对应二进制数据B相同。这里,第二数目大于第一数目。在压缩过程中,第二矩阵中所包括的第二数目的单元的二进制数据被转换成比第二数目小的第一数目的单元的二进制数据,并且经转换的二进制数据可以形成第一矩阵。在矩阵乘法过程中,相应二进制数据之间的乘法处理可以以与与门相同的方式来执行,乘法结果之间的加法处理可以以与异或门相同的方式来执行,并且与门具有比异或门高的计算优先级。
这里,编码矩阵可以包括第一类型元素和第二类型元素,并且编码矩阵中所包括的第一类型元素的数目和编码矩阵中所包括的第二类型元素的数目可以彼此相同。例如,编码矩阵可以包括零和一,并且零的数目和一的数目可以彼此相同。然而,编码矩阵不限于此,并且当编码矩阵中所包括的元素的数目是奇数时,零的数目与一的数目之间的差值可以在预定数目(例如,一)内。
另一方面,如图4所示,当修剪数据的数目为三(“-”为三)时,五个二进制数据可能不满足剩余六个方程式。因此,压缩设备50可以获得与未由五个二进制数据建立的方程式的数目有关的信息和最后一个方程式410的位置信息作为补丁信息。在图4中,10110表示压缩的五个二进制数据,01表示关于未建立的方程式的数目的信息,并且0110可以是最后一个方程式410的位置信息。这里,最后一个方程式410的位置信息已经被描述为指示其基于未修剪数据是第六个,但是不限于此。例如,可以获得最后一个方程式410的位置信息以指示其基于九个数据是第九个而不考虑修剪。
另一方面,在矩阵乘法过程中,相应二进制数据之间的乘法处理可以以与与门相同的方式来执行,乘法结果之间的加法处理可以以与异或门相同的方式来执行,并且与门具有比异或门高的计算优先级。
为了便于解释,将使用10110描述矩阵乘法,10110是从图4导出的x的值。省略了A的第一行与作为x的值的10110的矩阵乘法,因为根据修剪,它是不必要的数据。在10010(A的第二行)与10110(x的值)的矩阵乘法中,首先,针对每个数字,以与与门相同的方式执行二进制数据之间的乘法运算。也就是说,1、0、0、1、0是通过1×1=1、0×0=0、0×1=0、1×1=1和0×0=0的运算获得的。此后,以与异或门相同的方式对1、0、0、1、0执行加法运算,并且最终获得0。具体地说,1可以通过第一二进制数据1和第二二进制数据0的加法运算来获得,1可以通过运算结果1和第三二进制数据0的加法运算来获得,0可以通过累加运算1和第四二进制数据1的加法运算来获得,并且0可以最终通过累加运算结果0和第五二进制数据0的加法运算来获得。这里,运算次序可以尽可能多地改变,并且即使运算次序改变,最终获得的值也是相同的。以此方式,可以执行A的剩余行与10010之间的矩阵乘法。
然而,如上所述,可能存在未建立的方程式(例如,A的最后一行(即,最后一个方程式410)),并且其运算结果如下。在00011(A的最后一行)与10110(x的值)的矩阵乘法中,首先,针对每个数字,以与与门相同的方式执行二进制数据之间的乘法运算。也就是说,0、0、0、1、0是通过0×1=0、0×0=0、0×1=0、1×1=1和0×0=0的运算来获得的。此后,以与异或门相同的方式对0、0、0、1、0执行加法运算,并且最终获得1。具体地说,0可以通过第一二进制数据0和第二二进制数据0的加法运算来获得,0可以通过运算结果0和第三二进制数据0的加法运算来获得,1可以通过累加运算结果0和第四二进制数据1的加法运算来获得,并且1可以最终通过累加运算结果1和第五二进制数据0的加法运算来获得。这与B的最后一行的值0不匹配,压缩设备50将其作为补丁信息提供给解压缩设备100,并且解压缩设备100可以基于该补丁信息对此进行补偿。也就是说,解压缩设备100可以基于补丁信息获得未建立方程式的行的位置信息,并且可以将编码矩阵A和x的矩阵乘法结果当中与位置信息相对应的行的二进制数据转换成其它二进制数据。在图4的示例中,解压缩设备100可以基于补丁信息将编码矩阵A和x的矩阵乘法结果的最后一行的值从1转换为0。
这样,压缩设备50可以从原始矩阵获得第一矩阵、第一修剪索引矩阵、第二修剪索引矩阵和补丁信息。
然而,压缩设备50不限于此,并且可以通过不使用补丁信息的方法将第二矩阵压缩成第一矩阵。例如,根据图4的示例,压缩设备50可以将x确定为6位以防止补丁信息的生成。
可替换地,压缩设备50还可以在不执行修剪的情况下将第二矩阵压缩成第一矩阵。例如,在图4的示例中,压缩设备50可以基于九个方程式之间的相依性来确定x的位数。也就是说,如果在九个方程式之间不存在相依性,则压缩设备50获得包括九个位的x,并且在这种情况下,可以不执行压缩。可替换地,如果在九个方程式之间存在相依性,则压缩设备50获得包括小于九的位数的x,并且在这种情况下,可以执行压缩。
图5A和图5B是描述根据本公开的各种实施方式的解压缩设备的图。
图6是描述根据本公开的实施方式的原始矩阵的图。
首先,参考图5A,解压缩设备100可以包括多个解码器(D单元)。解压缩设备100还可以包括外部存储器510、多个去交错器520和处理器530-1。这里,外部存储器510和处理器530-1可以分别与图1的存储器110和处理器130相同。
参考图5A和图6,外部存储器510可以存储从压缩设备50提供的多个第一矩阵。这里,多个第一矩阵可以是原始矩阵被量化和压缩的矩阵。这实际上是因为原始矩阵中的数据非常大,并且例如,如图6所示,压缩设备50可以将原始矩阵划分成多个矩阵,量化并压缩多个矩阵中的每一者以获得多个第一矩阵。压缩设备50可以向外部存储器510提供多个第一矩阵。
多个解码器(D单元)中的每个可以从外部存储器510接收多个第一矩阵之一并且输出解压缩的第二矩阵。也就是说,外部存储器510可以通过分别向多个解码器提供多个第一矩阵来并行解压缩多个第一矩阵,并且可以改善并行性。
然而,解压缩设备100不限于此,并且还可以依序对压缩数据进行解压缩,诸如对图6的左上角的矩阵被压缩的数据进行解压缩以及对图6的左上角的右边相邻的矩阵被压缩的数据进行解压缩的方法。
多个解码器中的每个可以将解压缩的第二矩阵传输到处理器530-1的内部存储器(片上存储器)。在这种情况下,多个解码器中的每个可以经由多个去交错器520传输第二矩阵。
为了描述多个去交错器520的操作,首先将描述压缩设备50的交错操作。压缩设备50可以交错多个划分矩阵中的每个,如图6所示。压缩设备50可以量化并压缩多个交错矩阵中的每个。
多个去交错器520可以对应于压缩设备50的交错操作。也就是说,多个去交错器520可以对交错矩阵进行去交错以在交错之前恢复矩阵。
在图5A中,解压缩设备100被示出为包括多个去交错器520,但不限于此。例如,压缩设备50可以交错原始矩阵本身而不交错原始矩阵被划分的多个矩阵中的每一者。在这种情况下,解压缩设备100也可包括一个去交错器。
另一方面,存储器110还可以存储第一修剪索引矩阵、第二修剪索引矩阵和补丁信息。在这种情况下,处理器530-1可以从第一修剪索引矩阵和第二修剪索引矩阵获得修剪索引矩阵,并且基于修剪索引矩阵和补丁信息更新第二矩阵。
另一方面,参考图5B,解压缩设备100还可以实施为一个芯片。也就是说,在图5B中,解压缩设备100被示出为处理器530-2,并且处理器530-2可以从外部存储器510接收多个第一矩阵。
处理器530-2中的多个解码器中的每一者可以解压缩多个第一矩阵,并且将多个第二矩阵传输到处理器530-2中所包括的处理元件(PE)单元(即,PE阵列)。
如上所述,由于在压缩过程中对原始矩阵进行划分和交错,可以提高压缩率和准确度,并且可以通过多个解码器并行执行解压缩,从而有效地执行解压缩。
图7A至图7C是描述根据本公开的各种实施方式的用于解压缩第一矩阵的方法的图。
参考图7A,图7A示出了9×5的编码矩阵的示例,并且示出了在压缩过程中九个单元的二进制数据被转换成五个单元的二进制数据。
参考图7B,解码器120可以用多个异或门实施,其中所述多个异或门基于编码矩阵连接有相应输入/输出端子。然而,解码器120不限于此,并且可以使用不同于多个异或门的逻辑电路来实施,并且只要可以执行对应于编码矩阵的操作,就可以使用其它方法。
解码器120可以以第一数目的单元接收第一矩阵中所包括的多个二进制数据,并且以第二数目的单元输出多个二进制数据以被包括在第二矩阵中。
参考图7B,解码器120可以将输入x0至x4输出为O1至O9。例如,解码器120可以将第一矩阵710的10110转换成001111001,如图7C所示。
处理器130可以基于补丁信息改变001111001的一些数据的值。在图7C中,示出了001111001的第四和第七数据被改变,并且0可以被改变为1且1可以被改变为0。
图8A和图8B是描述根据本公开的各种实施方式的第二矩阵的更新操作的图。
参考图8A和图8B,处理器130可以从多个解码器中的每个接收第二矩阵,在第二矩阵中每个元素是1位,并且从存储器110接收修剪索引矩阵。可替换地,处理器130可以从存储器110接收第一修剪索引矩阵和第二修剪索引矩阵,并且从第一修剪索引矩阵和第二修剪索引矩阵获得修剪索引矩阵。
处理器130可以基于修剪索引矩阵来识别第二矩阵中的修剪元素,如图8A所示。此外,处理器130可以将所识别的元素转换为0,如图8B所示。
图9是描述根据本公开的实施方式的用于合并处理器的多个第二矩阵的方法的图。
参考图9,为了便于解释,处理器130将被描述为组合两个第二矩阵。
解压缩设备100可以包括多个解码器,并且多个解码器中的每一者可以向处理器130传输第二矩阵。
如图9所示,处理器130可以组合每个元素为1位的第二矩阵1和每个元素为1位的第二矩阵2,以获得每个元素为2位的组合第二矩阵。
处理器130可以基于修剪索引矩阵,将每个元素为2位的组合第二矩阵中的修剪元素转换为0。
然而,处理器130不限于此,并且可以组合三个或更多个第二矩阵以获得组合第二矩阵,并且将修剪元素转换为0。
图10是描述根据本公开的实施方式的解压缩设备的控制方法的流程图。
参考图10,首先,在操作S1010处,与压缩数据的压缩方法相关的多个逻辑电路接收被解压缩并在人工智能模型的神经网络处理中使用的压缩数据。此外,在操作S1020处,多个逻辑电路对压缩数据进行解压缩并输出解压缩数据。此外,在操作S1030处,从多个逻辑电路输出的数据中获得神经网络可处理形式的数据。
这里,控制方法还可以包括基于解压缩数据和对应于压缩数据的代表值矩阵,获得神经网络可处理形式的数据,并且使用神经网络可处理形式的数据执行神经网络处理,并且解压缩数据和代表值矩阵可以是通过量化人工智能模型中所包括的原始矩阵来获得的矩阵。
另外,控制方法还可以包括基于对应于压缩数据的修剪索引矩阵来更新解压缩数据,并且修剪索引矩阵可以是在原始矩阵的修剪过程中获得的矩阵,并且可以在获得压缩数据的过程中使用。
这里,控制方法还可以包括基于对应于压缩数据的补丁信息来改变解压缩数据中所包括的多个元素中的一些元素的二进制数据值,并且补丁信息可以包括在获得压缩数据的过程中生成的误差信息。
同时,控制方法还可以包括基于对应于压缩数据的第一修剪索引矩阵和对应于压缩数据的第二修剪索引矩阵,获得修剪索引矩阵,并且基于修剪索引矩阵更新解压缩数据,修剪索引矩阵可以是在原始矩阵的修剪过程中获得的矩阵并且可以在获得压缩数据的过程中使用,并且第一修剪索引矩阵和第二修剪索引矩阵可以基于通过因式分解原始矩阵获得的第一子矩阵和第二子矩阵中的每一者来获得。
解压缩数据是通过交错原始矩阵并且接着量化交错矩阵来获得的矩阵。控制方法还可以包括根据对应于交错的方式对神经网络可处理数据进行去交错,并且在执行神经网络处理的过程中,可以使用去交错数据来执行神经网络处理。
另一方面,在操作S1010处执行神经网络处理的过程中,可以使用以矩阵形式排列的多个处理元件来执行神经网络处理。
此外,解压缩数据可以是通过将原始矩阵划分成具有相同列数和相同行数的多个矩阵并量化多个划分矩阵之一来获得的矩阵。
另一方面,解压缩设备包括与其它压缩数据的压缩方法相关的多个其它逻辑电路,并且控制方法还可以包括接收被解压缩并在人工智能模型的神经网络处理中使用的其它压缩数据,通过多个其它逻辑电路解压缩其它压缩数据并输出解压缩的其它数据,获得从多个其它逻辑电路输出的神经网络可处理形式的其它数据,并且通过组合神经网络可处理数据和其它神经网络可处理数据,来获得每个元素包括多个二进制数据的矩阵。
此外,解压缩设备可以实施为一个芯片。
图11A至图11D是描述根据本公开的各种实施方式的人工智能模型的学习过程的图。
参考图11A,图11A是示出在学习完成之前的人工智能模型的示例的图。人工智能模型包括两个原始矩阵W12和W23,并且压缩设备50可以将Li-1的值输入到W12以获得Li的中间值,并且可以将Li的中间值输入到W23中以获得Li+1的最终值。然而,图11A非常简要地示出了人工智能模型,人工智能模型实际上可以包括比图11A多的矩阵。
参考图11B,图11B是示出人工智能模型中所包括的原始矩阵的示例的图,其与图3A的描述相同。然而,图3A的原始矩阵可以处于学习已完成的状态,并且图11B的原始矩阵可以在学习完成之前。
参考图11C,图11C是示出量化图11B所示的原始矩阵的结果的图。
压缩设备50可以量化原始矩阵中所包括的多个元素中的每个以获得代表性矩阵1120和包括二进制量化数据的第二矩阵1110。在这种情况下,不同于图3B,压缩设备50可以不执行修剪。然而,压缩设备50不限于此,并且还可以执行修剪,并且稍后将描述执行修剪的方法。
参考图11D,压缩设备50可以压缩图11D的左侧的第二矩阵1110以获得图11D的右侧的第一矩阵1110-1。第一矩阵1110-1中所包括的元素的数目小于第二矩阵1110中所包括的元素的数目。
压缩设备50可以基于如图7A所示的编码矩阵从第二矩阵1110获得第一矩阵1110-1。所有这些操作都包括在人工智能模型的学习过程中。另外,虽然在图11B至图11D中已经描述了仅一个原始矩阵,但是在人工智能模型的学习过程中,人工智能模型中所包括的全部多个原始矩阵可以被压缩,如图11B至图11D所示。
更具体地说,例如,图11A的W12可以被量化,并且可以基于第一编码矩阵被压缩并被存储为Q12',如图11D的右侧所示。此外,图11A的W23可以被量化,并且可以基于第二编码矩阵被压缩并被存储为Q23',如图11D的右侧所示。压缩设备50可以通过第一编码矩阵对Q12'进行解压缩和去量化以获得W12,并且可以通过第二编码矩阵对Q23'进行解压缩和去量化以获得W23。另外,压缩设备50可以通过使用W12和W23来执行前馈操作。在这种情况下,第一编码矩阵和第二编码矩阵可以被实施为异或门,如图7B所示。也就是说,当通过第一编码矩阵解压缩Q12'时,压缩设备50可以将Q12'数字化为0或1。另外,当通过第二编码矩阵解压缩Q23'时,压缩设备50可以将Q23'数字化为0或1。
此后,压缩设备50可以执行向后操作来更新人工智能模型中所包括的元素。然而,因为使用异或门的操作是数字电路的操作,所以区分是不可能的,但是在更新过程中需要区分。因此,压缩设备50可以通过将使用异或门的操作转换成可以区分的形式来学习人工智能模型,如以下数学表达式1所示。输入值0可以转换为-1并且输入到以下数学表达式1。
XOR(a,b)=(-1)xtanh(a)xtanh(b)...数学表达式1
数学表达式1示出了输入值是a和b的情况,但输入值实际上可能不是两个。输入值可以依据编码矩阵的大小、一行中所包括的1的数目等而变化。因此,压缩设备50可以使用更一般的数学表达式(诸如以下数学表达式2)来学习人工智能模型。
这里,X是异或门的输入并且m是用于调整学习速度的变量,每一者可以如下表示。图13是示出根据值m的输出的图,并且随着梯度改变,学习速度可以变化。值m可以由用户设置。
X=[x0 x1...xn-1]
M=[m0 m1...mn-1],mi∈{0,1}
如上所述,压缩设备50可以将异或门的操作类推用于学习人工智能模型。也就是说,异或门的输入值被存储为实数,但是压缩设备50在推理过程中将异或门的输入值当中的负数转换为零并且将正数转换为一。也就是说,压缩设备50将异或门的输入值数字化以处理由使用诸如异或门等数字电路引起的误差。
此外,压缩设备50可以在后向过程中保持全精度值,并且以可区分形式的数学表达式更新内部变量。也就是说,即使在解压缩过程中使用异或门,压缩设备50也可以在人工智能模型的学习过程中包括根据异或门的操作以执行学习,因为压缩设备50使用可区分形式的数学表达式。
同时,人工智能模型的学习过程中所使用的损失值由以下数学表达式3表达。压缩设备50可以通过如以下数学表达式3所示的处理来学习人工智能模型。
这里,因为tanh-1(xjmj)是介于-1与1之间的值,所以越来越接近零。也就是说,随着异或门的输入和输出数目增加,学习变得更加困难。因此,压缩设备50还可以通过在数学表达式3中针对其自身(例如,i)的区分使用tanh的形式并针对剩余项(例如,j≠i)的区分将tanh转换为符号来学习人工智能模型。在这种情况下,不管异或门的输入和输出的数目如何,都可以简化向后路径,从而提高学习速度。图14A示出了使用数学表达式3的情况,并且图14B示出了数学表达式3的一些tanh被转换成符号的情况。随着学习进行,如图14B所示,0和1的值被清楚地区分开,并且可以提高学习速度。
当如上所述完成学习时,压缩设备50可以获得与人工智能模型中所包括的多个原始矩阵中的每一者相对应的多个第一矩阵。
压缩设备50可以如上所述在人工智能模型中包括异或门的操作的同时执行学习,从而确保高水平的压缩率,同时保持人工智能模型的准确度。另外,因为省略了修剪过程并且不需要使用补丁信息,所以可以提高处理速度。
在图1、图2、图3A到图3D、图4、图5A和图5B、图6、图7A到图7C、图8A和图8B、图9以及图10的情况下,在检查修剪结果之后,可以确定编码矩阵的大小。另一方面,当在人工智能模型中包括异或门的操作的同时执行学习时,编码矩阵的大小可以被任意指定以设置分数量化位值而不进行修剪。例如,0.7位量化也可以代替整数数目。
压缩设备50可以使用与人工智能模型中所包括的多个原始矩阵中的每一者相对应的多个编码矩阵。例如,压缩设备50可以使用编码矩阵来对人工智能模型的第一原始矩阵和最后一个原始矩阵执行相对较低压缩率的压缩,并且可以使用编码矩阵来对人工智能模型的剩余原始矩阵执行相对较高压缩率的压缩。
即使当在如上所述的方法中执行压缩时,解压缩设备100也可以通过如图1所示的操作来解压缩,并且将省略对其的冗余描述。
图12是描述根据本公开的实施方式的用于在学习过程中执行修剪的方法的图。
在图11A至图11D中,已经描述了在人工智能模型中省略修剪并且包括使用异或门的量化的学习方法,但是压缩设备50可通过在人工智能模型中包括使用修剪和异或门的量化来学习人工智能模型。
图13是用于描述根据本公开的实施方式的值m的影响的图。
图14A和图14B是用于描述根据本公开的各种实施方式的学习速度提高的图。
参考图12、图13、图14A和图14B,压缩设备50可以每个权重使用两个异或门来反映修剪。例如,压缩设备50可以从异或门的两个输出(w,m)获得最终输出。这里,w是参考图11A至图11D描述的异或门的输出,并且m可以是用于反映修剪的值。例如,如果(0,0),则压缩设备50可以输出-1,如果(0,1)或(1,0),则输出0,并且如果(1,1),则输出+1。
压缩设备50可以通过诸如(w+m)/2的方程式从w和m输出三个值,并且为此,压缩设备50在输入值为0时将输入值转换成-1,并且在输入值为1时将输入值转换成+1,并且将转换值输入到方程式。
压缩设备50通过参考图11A至图11D描述的方法执行w的学习,并且将省略其冗余描述。
当值w是阈值或更小时,压缩设备50可以将m设置为与值w相反的值,并且最终将w转换为0并输出结果。可替换地,当值w超过阈值时,压缩设备50可以将m设置为具有与值w相同符号的值,并且最终将w转换为+1或-1并输出结果。以此方式,可以获得通过将阈值或更小值的w转换为0实现的修剪效果。
当如上所述完成学习时,压缩设备50可以获得与人工智能模型中所包括的多个原始矩阵中的每一者相对应的多个第一矩阵。然而,不同于图1、图2、图3A到图3D、图4、图5A和图5B、图6、图7A到图7C、图8A和图8B、图9以及图10,不生成单独的修剪索引矩阵。
如上所述,压缩设备50可以在人工智能模型中包括使用修剪和异或门的量化以执行人工智能模型的学习,从而促进学习并提高准确度。
即使当在如上所述的方法中执行压缩时,解压缩设备100也可以通过如图1所示的操作来解压缩,并且将省略对其的冗余描述。
图11A至图11D、图12、图13、图14A和图14B的压缩设备50的操作或解压缩设备100的操作可以由诸如移动装置或台式PC等电子设备来执行。例如,第一电子设备的存储器可以存储在学习完成之前的人工智能模型和学习过程所必要的样本数据,并且第一电子设备的处理器可以以与图11A至图11D、图12、图13、图14A和图14B中相同的方式学习存储器中所存储的数据,并且同时压缩数据。
另外,第二电子设备的存储器可以存储完成学习和压缩的人工智能模型,并且第二电子装置的处理器可以像图2的量化获取矩阵单元一样处理存储器中所存储的数据以解压缩数据。
如上所述,根据本公开的各种实施方式,解压缩设备可以通过使用采用多个逻辑电路实施的解码器解压缩矩阵并从解压缩矩阵获得恢复矩阵,来执行神经网络处理。
同时,根据本公开的实施方式,上文描述的各种实施方式可以通过包括机器(例如,计算机)可读存储介质中所存储的指令的软件来实施。机器是从存储介质调用所存储的指令并且能够根据所调用的指令进行操作的设备,并且可以包括根据所公开的实施方式的电子设备(例如,电子设备A)。当指令由处理器执行时,处理器可以直接或使用在处理器的控制下的其它部件来执行对应于指令的功能。指令可以包括由编译器或解释器生成或执行的代码。机器可读存储介质可以以非暂时性存储介质的形式来提供。这里,术语“非暂时性”意味着存储介质不包括信号并且是有形的,但是不区分数据是半永久地还是暂时地存储在存储介质中。
此外,根据本公开的实施方式,根据上述各种实施方式的方法可以被包括并提供在计算机程序产品中。计算机程序产品可以作为产品在卖方与买方之间进行交易。计算机程序产品可以以机器可读存储介质(例如,压缩光盘只读存储器(CD-ROM))的形式来分发,或者通过应用程序商店(例如,PlayStoreTM)在线分发。在在线分发的情况下,计算机程序产品的至少一部分可以至少暂时存储在存储介质(诸如制造商的服务器、应用程序商店的服务器或中继服务器的存储器)中,或者临时生成。
此外,根据本公开的实施方式,上述各种实施方式可以使用软件、硬件或其组合在计算机或类似装置可读记录介质中实施。在一些情况下,本公开中所描述的实施方式可以由处理器本身实施。根据软件实施方案,本公开中所描述的诸如过程和功能的实施方式可以实施为单独的软件模块。每个软件模块可以执行本公开中所描述的一个或多个功能和操作。
同时,用于执行根据上述各种实施方式的装置的处理操作的计算机指令可以存储在非暂时性计算机可读介质中。当由特定装置的处理器执行时,存储在非暂时性计算机可读介质中的计算机指令允许特定装置执行根据上述各种实施方式的装置的处理操作。非暂时性计算机可读介质不是诸如寄存器、高速缓冲存储器、存储器等短期存储数据的介质,而是意指半永久存储数据的机器可读介质。非暂时性计算机可读介质的具体示例可以包括压缩光盘(CD)、数字多功能光盘(DVD)、硬盘、蓝光光盘、通用串行总线(USB)、存储卡、只读存储器(ROM)等。
此外,根据上述各种实施方式的每个部件(例如,模块或程序)可以包括单个实体或多个实体,并且可以省略上述子部件中的一些子部件,或者可以在各种实施方式中进一步包括其它子部件。替代地或另外地,一些部件(例如,模块或程序)可以被集成到一个实体中以执行由各个部件在集成之前执行的相同或相似功能。根据各种实施方式的由模块、程序或其它部件执行的操作可以以顺序、并行、迭代或启发式方式来执行,或者至少一些操作可以以不同次序来执行或省略,或者可以添加其它操作。
尽管已经参考本公开的各种实施方式示出和描述了本公开,但是本领域的技术人员将理解,在不脱离由所附权利要求书及其等同限定的本公开的精神和范围的情况下,可以在形式和细节上做出各种改变。
Claims (15)
1.一种解压缩设备,包括:
存储器,配置为存储待被解压缩并在人工智能模型的神经网络处理中使用的压缩数据;
解码器,包括与所述压缩数据的压缩方法相关的多个逻辑电路,其中所述解码器配置为:
基于所述压缩数据的输入通过所述多个逻辑电路对所述压缩数据进行解压缩,以及
输出解压缩数据;以及
处理器,配置为从所述解码器输出的所述解压缩数据中获得神经网络可处理形式的数据。
2.根据权利要求1所述的解压缩设备,其中,所述存储器进一步配置为存储与所述压缩数据对应的代表值矩阵,
其中,所述处理器进一步配置为:
基于所述解压缩数据和所述代表值矩阵获得所述神经网络可处理形式的数据,以及
使用所述神经网络可处理形式的数据执行所述神经网络处理,以及
其中,所述解压缩数据和所述代表值矩阵包括通过对所述人工智能模型中所包括的原始矩阵进行量化而获得的矩阵。
3.根据权利要求2所述的解压缩设备,
其中,所述存储器进一步配置为存储与所述压缩数据对应的修剪索引矩阵,
其中,所述处理器进一步配置为基于所述修剪索引矩阵更新所述解压缩数据,
其中,所述修剪索引矩阵包括在所述原始矩阵的修剪过程中获得的矩阵,以及
其中,所述修剪索引矩阵在获得所述压缩数据的过程中使用。
4.根据权利要求3所述的解压缩设备,
其中,所述存储器进一步配置为存储与所述压缩数据对应的补丁信息,
其中,所述处理器进一步配置为:基于所述补丁信息改变所述解压缩数据中所包括的多个元素的至少一个元素的二进制数据值,以及
其中,所述补丁信息包括在获得所述压缩数据的过程中生成的误差信息。
5.根据权利要求2所述的解压缩设备,其中,
所述存储器进一步配置为:
存储与所述压缩数据对应的第一修剪索引矩阵,以及
存储与所述压缩数据对应的第二修剪索引矩阵,
其中,所述处理器进一步配置为:
基于所述第一修剪索引矩阵和所述第二修剪索引矩阵获得修剪索引矩阵,以及
基于所述修剪索引矩阵更新所述解压缩数据,
其中,所述修剪索引矩阵包括在所述原始矩阵的修剪过程中获得的矩阵,
其中,所述修剪索引矩阵在获得所述压缩数据的过程中使用,以及
其中,所述第一修剪索引矩阵和所述第二修剪索引矩阵分别是基于通过因式分解所述原始矩阵所获得的第一子矩阵和第二子矩阵中的每一者而获得的。
6.根据权利要求2所述的解压缩设备,其中,所述解压缩数据包括通过对所述原始矩阵进行交错并且接着对交错后的矩阵进行量化来获得的矩阵,以及
其中,所述处理器进一步配置为:
根据与所述交错对应的方式对所述神经网络可处理形式的数据进行去交错,以及
使用去交错后的数据来执行所述神经网络处理。
7.根据权利要求2所述的解压缩设备,
其中,所述处理器包括以矩阵形式排列的多个处理元件,以及
其中,所述处理器进一步配置为使用所述多个处理元件来执行所述神经网络处理。
8.根据权利要求2所述的解压缩设备,其中所述解压缩数据包括:通过将所述原始矩阵划分成具有相同列数和行数的多个矩阵并对所划分的多个矩阵之一进行量化来获得的矩阵。
9.根据权利要求1所述的解压缩设备,其中,所述存储器进一步配置为存储被解压缩并在所述人工智能模型的神经网络处理中使用的其它压缩数据,
其中,所述解压缩设备还包括另一解码器,所述另一解码器配置为:
包括与所述其它压缩数据的压缩方法相关的多个其它逻辑电路,
基于所述其它压缩数据的输入通过所述多个其它逻辑电路对所述其它压缩数据进行解压缩,以及
输出其它解压缩数据,以及
其中,所述处理器进一步配置为:
从所述另一解码器输出的所述其它解压缩数据中获得神经网络可处理形式的其它数据,以及
通过耦合所述神经网络可处理数据和所述神经网络可处理形式的其它数据来获得每个元素包括多个二进制数据的矩阵。
10.根据权利要求1所述的解压缩设备,其中所述解压缩设备实施为一个芯片。
11.一种解压缩设备的控制方法,所述解压缩设备包括与压缩数据的压缩方法相关的多个逻辑电路,所述控制方法包括:
通过所述多个逻辑电路接收待被解压缩并在人工智能模型的神经网络处理中使用的所述压缩数据;
通过所述多个逻辑电路对所述压缩数据进行解压缩;
输出解压缩数据;以及
从所述多个逻辑电路输出的所述解压缩数据中获得神经网络可处理形式的数据。
12.根据权利要求11所述的控制方法,还包括:
基于所述解压缩数据和与所述压缩数据对应的代表值矩阵,获得所述神经网络可处理形式的数据;以及
使用所述神经网络可处理形式的数据执行所述神经网络处理,
其中,所述解压缩数据和所述代表值矩阵包括通过对所述人工智能模型中所包括的原始矩阵进行量化而获得的矩阵。
13.根据权利要求12所述的控制方法,还包括:
基于与所述压缩数据对应的修剪索引矩阵更新所述解压缩数据,
其中,所述修剪索引矩阵包括在所述原始矩阵的修剪过程中获得的矩阵,以及
其中,所述修剪索引矩阵在获得所述压缩数据的过程中使用。
14.根据权利要求13所述的控制方法,还包括:
基于与所述压缩数据对应的补丁信息,改变所述解压缩数据中所包括的多个元素的至少一个元素的二进制数据值,
其中,所述补丁信息包括在获得所述压缩数据的过程中生成的误差信息。
15.根据权利要求12所述的控制方法,还包括:
基于与所述压缩数据对应的第一修剪索引矩阵和与所述压缩数据对应的第二修剪索引矩阵,获得修剪索引矩阵;以及
基于所述修剪索引矩阵更新所述解压缩数据,
其中,所述修剪索引矩阵包括在所述原始矩阵的修剪过程中获得的矩阵,
其中,所述修剪索引矩阵在获得所述压缩数据的过程中使用,以及
其中,所述第一修剪索引矩阵和所述第二修剪索引矩阵分别是基于通过对所述原始矩阵进行因式分解所获得的第一子矩阵和第二子矩阵中的每个来获得的。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0060991 | 2019-05-24 | ||
KR20190060991 | 2019-05-24 | ||
KR10-2019-0117081 | 2019-09-23 | ||
KR1020190117081A KR20200135117A (ko) | 2019-05-24 | 2019-09-23 | 압축 해제 장치 및 그 제어 방법 |
KR1020190140720A KR20200135126A (ko) | 2019-05-24 | 2019-11-06 | 압축 해제 장치 및 그 제어 방법 |
KR10-2019-0140720 | 2019-11-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111985632A true CN111985632A (zh) | 2020-11-24 |
Family
ID=70110008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010435215.1A Pending CN111985632A (zh) | 2019-05-24 | 2020-05-21 | 解压缩设备及其控制方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10917121B2 (zh) |
EP (1) | EP3742349A1 (zh) |
CN (1) | CN111985632A (zh) |
WO (1) | WO2020242057A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI778493B (zh) * | 2021-01-12 | 2022-09-21 | 鴻海精密工業股份有限公司 | 多神經網路模型載入方法、裝置、電子設備及電腦可讀取記錄媒體 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11037330B2 (en) * | 2017-04-08 | 2021-06-15 | Intel Corporation | Low rank matrix compression |
KR102659494B1 (ko) | 2019-01-21 | 2024-04-23 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
US10997179B1 (en) | 2019-12-26 | 2021-05-04 | Snowflake Inc. | Pruning index for optimization of pattern matching queries |
US10769150B1 (en) | 2019-12-26 | 2020-09-08 | Snowflake Inc. | Pruning indexes to enhance database query processing |
US11372860B2 (en) | 2019-12-26 | 2022-06-28 | Snowflake Inc. | Processing techniques for queries where predicate values are unknown until runtime |
US11681708B2 (en) | 2019-12-26 | 2023-06-20 | Snowflake Inc. | Indexed regular expression search with N-grams |
US11567939B2 (en) | 2019-12-26 | 2023-01-31 | Snowflake Inc. | Lazy reassembling of semi-structured data |
US11308090B2 (en) | 2019-12-26 | 2022-04-19 | Snowflake Inc. | Pruning index to support semi-structured data types |
US20220191482A1 (en) * | 2020-12-16 | 2022-06-16 | Tencent America LLC | Method and apparatus for video coding |
US11880369B1 (en) | 2022-11-21 | 2024-01-23 | Snowflake Inc. | Pruning data based on state of top K operator |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107944555A (zh) * | 2017-12-07 | 2018-04-20 | 广州华多网络科技有限公司 | 神经网络压缩和加速的方法、存储设备和终端 |
CN108932548A (zh) * | 2018-05-22 | 2018-12-04 | 中国科学技术大学苏州研究院 | 一种基于fpga的稀疏度神经网络加速系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6678421B1 (en) * | 2000-06-09 | 2004-01-13 | Hrl Laboratories, Llc | Subband coefficient prediction with pattern recognition techniques |
KR101121185B1 (ko) | 2002-12-16 | 2012-03-22 | 텔레콤 이탈리아 소시에떼 퍼 아찌오니 | 터보 인코더 및 디코더에서 인터리버용 어드레스 발생장치 및 방법 |
US8452111B2 (en) | 2008-06-05 | 2013-05-28 | Microsoft Corporation | Real-time compression and decompression of wavelet-compressed images |
KR20180052069A (ko) | 2016-11-07 | 2018-05-17 | 한국전자통신연구원 | 콘볼루션 신경망 시스템 그리고 콘볼루션 신경망의 시냅스 데이터를 압축하는 방법 |
US20180131946A1 (en) | 2016-11-07 | 2018-05-10 | Electronics And Telecommunications Research Institute | Convolution neural network system and method for compressing synapse data of convolution neural network |
CN108271026B (zh) * | 2016-12-30 | 2020-03-31 | 上海寒武纪信息科技有限公司 | 压缩/解压缩的装置和系统、芯片、电子装置、方法 |
CN107832837B (zh) | 2017-11-28 | 2021-09-28 | 南京大学 | 一种基于压缩感知原理的卷积神经网络压缩方法及解压缩方法 |
US11257254B2 (en) * | 2018-07-20 | 2022-02-22 | Google Llc | Data compression using conditional entropy models |
US11109065B2 (en) * | 2018-09-26 | 2021-08-31 | Google Llc | Video encoding by providing geometric proxies |
WO2020081399A1 (en) * | 2018-10-15 | 2020-04-23 | Nam Sung Kim | Network-centric architecture and algorithms to accelerate distributed training of neural networks |
US10848765B2 (en) * | 2018-12-11 | 2020-11-24 | Google Llc | Rate/distortion/RDcost modeling with machine learning |
KR102659494B1 (ko) | 2019-01-21 | 2024-04-23 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
-
2020
- 2020-03-31 EP EP20166954.6A patent/EP3742349A1/en active Pending
- 2020-04-21 US US16/854,285 patent/US10917121B2/en active Active
- 2020-04-22 WO PCT/KR2020/005269 patent/WO2020242057A1/en active Application Filing
- 2020-05-21 CN CN202010435215.1A patent/CN111985632A/zh active Pending
- 2020-12-22 US US17/130,538 patent/US11595062B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107944555A (zh) * | 2017-12-07 | 2018-04-20 | 广州华多网络科技有限公司 | 神经网络压缩和加速的方法、存储设备和终端 |
CN108932548A (zh) * | 2018-05-22 | 2018-12-04 | 中国科学技术大学苏州研究院 | 一种基于fpga的稀疏度神经网络加速系统 |
Non-Patent Citations (1)
Title |
---|
DAEHYUN AHN等: "Double Viterbi: Weight Encoding for High Compression Ratio and Fast On-chip Reconstruction for Deep Neural Network", ICLR 2019, 21 December 2018 (2018-12-21), pages 1 - 14 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI778493B (zh) * | 2021-01-12 | 2022-09-21 | 鴻海精密工業股份有限公司 | 多神經網路模型載入方法、裝置、電子設備及電腦可讀取記錄媒體 |
Also Published As
Publication number | Publication date |
---|---|
EP3742349A1 (en) | 2020-11-25 |
WO2020242057A1 (en) | 2020-12-03 |
US20210111741A1 (en) | 2021-04-15 |
US20200373946A1 (en) | 2020-11-26 |
US11595062B2 (en) | 2023-02-28 |
US10917121B2 (en) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111985632A (zh) | 解压缩设备及其控制方法 | |
US20240137044A1 (en) | Data compression and storage | |
EP3617959B1 (en) | Computing device and method | |
CN106549673B (zh) | 一种数据压缩方法及装置 | |
WO2022037257A1 (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
CN107565971B (zh) | 一种数据压缩方法及装置 | |
CN110663048A (zh) | 用于深度神经网络的执行方法、执行装置、学习方法、学习装置以及程序 | |
CN114830134A (zh) | 用于解码经编码数据的递归神经网络和系统 | |
CN108921292B (zh) | 面向深度神经网络加速器应用的近似计算系统 | |
CN111507465B (zh) | 一种可配置的卷积神经网络处理器电路 | |
CN112162957B (zh) | 多块结构网格数据压缩存储方法、解压缩方法及装置 | |
CN114402596A (zh) | 神经网络模型压缩 | |
CN114615507B (zh) | 一种图像编码方法、解码方法及相关装置 | |
Kaur | Design and Implementation of Lzw data compression algorithm | |
US20220114454A1 (en) | Electronic apparatus for decompressing a compressed artificial intelligence model and control method therefor | |
CN114640354A (zh) | 数据压缩方法、装置、电子设备及计算机可读存储介质 | |
CN118056355A (zh) | 用于使用神经网络估计经编码数据的位错误率(ber)的系统 | |
US11615286B2 (en) | Computing system and compressing method for neural network parameters | |
WO2023159820A1 (zh) | 图像压缩方法、图像解压缩方法及装置 | |
Ipek | Memristive accelerators for dense and sparse linear algebra: from machine learning to high-performance scientific computing | |
KR20200135126A (ko) | 압축 해제 장치 및 그 제어 방법 | |
KR20200135117A (ko) | 압축 해제 장치 및 그 제어 방법 | |
JP2022187683A5 (zh) | ||
KR20110033154A (ko) | 규칙적인 지점의 네트워크에서 벡터를 카운팅하는 방법 | |
CN111384974A (zh) | 多进制ldpc码的置信度量化方法、装置及解码器 |
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 |