JP2022501676A - データ処理方法、装置、コンピュータデバイス、及び記憶媒体 - Google Patents
データ処理方法、装置、コンピュータデバイス、及び記憶媒体 Download PDFInfo
- Publication number
- JP2022501676A JP2022501676A JP2020567529A JP2020567529A JP2022501676A JP 2022501676 A JP2022501676 A JP 2022501676A JP 2020567529 A JP2020567529 A JP 2020567529A JP 2020567529 A JP2020567529 A JP 2020567529A JP 2022501676 A JP2022501676 A JP 2022501676A
- Authority
- JP
- Japan
- Prior art keywords
- data
- quantization
- waiting
- iteration
- neural network
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract 3
- 238000013139 quantization Methods 0.000 claims abstract description 1146
- 238000004364 calculation method Methods 0.000 claims abstract description 105
- 238000012545 processing Methods 0.000 claims abstract description 77
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 49
- 230000005540 biological transmission Effects 0.000 claims abstract description 12
- 238000013528 artificial neural network Methods 0.000 claims description 229
- 238000000034 method Methods 0.000 claims description 201
- 238000006243 chemical reaction Methods 0.000 claims description 36
- 210000002364 input neuron Anatomy 0.000 claims description 31
- 238000012549 training Methods 0.000 claims description 27
- 230000000737 periodic effect Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013500 data storage Methods 0.000 claims description 3
- 230000001537 neural effect Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 2
- 230000002829 reductive effect Effects 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 24
- 210000002569 neuron Anatomy 0.000 description 21
- 230000015654 memory Effects 0.000 description 14
- 238000007667 floating Methods 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 12
- 230000008859 change Effects 0.000 description 10
- 238000003062 neural network model Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000001143 conditioned effect Effects 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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/045—Combinations of networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
Abstract
Description
本発明の一態様によると、ニューラルネットワーク量子化装置を提供し、前記装置は、制御モジュールと、処理モジュールと、を備え、そのうち前記処理モジュールが、第1の演算サブモジュールを備え、前記第1の演算サブモジュールが、メイン演算サブモジュールと、スレーブ演算サブモジュールと、を備え、
前記第1の演算サブモジュールが、前記量子化結果に関連する演算を実行し、演算結果を得、
前記スレーブ演算サブモジュールが、受信した前記第1のデータに対して乗算演算を実行し、中間結果を得、
前記メイン演算サブモジュールが、さらに、前記中間結果および前記量子化結果の中の前記第1のデータ以外のデータに対して演算を実行し、演算結果を得る。
前記第1の演算サブモジュールを利用し、前記量子化結果に関連する演算を実行し、演算結果を得るステップと、を含み、
ここで、前記第1の演算サブモジュールを利用し、前記量子化結果に関連する演算を実行し、演算結果を得るステップは、
前記スレーブ演算サブモジュールを利用し、受信した前記第1のデータに対して乗算演算を実行し、中間結果を得るステップと、
本発明のもう一態様によると、人工知能チップを提供し、前記人工知能チップは、上述したニューラルネットワーク量子化装置を備える。
本発明のもう一態様によると、電子デバイスを提供し、前記電子デバイスは、上述した人工知能チップを備える。
ここで、前記人工知能チップは、前記記憶部品、前記制御部品、および、前記インターフェース装置にそれぞれ接続され、
前記記憶部品は、データを記憶し、
前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現し、
前記制御部品は、前記人工知能チップの状態を監視制御する。
前記第1の演算サブモジュール121は、前記量子化結果に関連する演算を実行し、演算結果を得、ここで、
前記スレーブ演算サブモジュール1211が、受信した前記第1のデータに対して乗算演算を実行し、中間結果を得る。
当該実現形態において、量子化結果は、固定小数点数であり、下述したデータフォーマットを使用して表すことができる。
第1タイプのデータは、Fixed_Style1=I×2Sであり、
第2タイプのデータは、Fixed_Style2=I×2S×f+Oで表す。
ここで、第2タイプのデータの第1の部分は、I×2Sであり、第2タイプのデータの第2の部分は、fおよびoである。
可能な一実現形態において、図1に示すように、処理モジュール12は、データ変換サブモジュール122をさらに備えてもよい。
可能な一実現形態において、制御モジュールは、以下の少なくとも一つの方式(すなわち、方式1〜方式5)を使用し、複数の量子化待ちデータを決定する。
方式1:一層または多層の量子化待ち層の中の目標データを一つの量子化待ちデータとして決定する。
方式2:一層または多層の量子化待ち層の中の同一の種類の演算待ちデータを一つの量子化待ちデータとして決定する。
方式3:量子化待ち層の目標データに対応する一つまたは複数のチャネル中のデータを、一つの量子化待ちデータとして決定する。
方式4:量子化待ち層の目標データに対応する一つまたは複数のバッチのデータを、一つの量子化待ちデータとして決定する。
方式5:量子化待ち層に対応する目標データを決定された分割サイズに基づいて一つまたは複数の量子化待ちデータに分割する。
命令記憶サブモジュール111は、前記ニューラルネットワークに対応する命令を記憶する。
命令処理サブモジュール112は、前記命令を解析し、前記命令の操作コードおよび操作ドメインを得る。
可能な一実現形態において、図1に示すように、制御モジュール11は、依存関係処理サブモジュール114を備えてもよい。
可能な一実現形態において、記憶モジュール10は、計算データの入力および出力を制御するためのデータI/Oユニット203を備えてもよい。
可能な一実現形態において、パラメータ決定サブモジュールは、
を計算して得ることができる。
可能な一実現形態において、パラメータ決定サブモジュールは、
さらに、計算して得たZ2および対応するデータビット幅に基づいて以下の式(4)を利用して第2タイプのポイント位置s2を計算できる
可能な一実現形態において、パラメータ決定サブモジュールは、
ここで、当該第1スケーリング係数f1は、以下の式(5)に基づいて計算できる。
ここで、第2スケーリング係数f2は、以下の式(6)に基づいて計算できる。
可能な一実現形態において、、前記パラメータ決定サブモジュールは、
当該最小値Zminおよび最大値Zmaxに基づいて以下の式(7)に基づいてオフセット量を計算して得ることができる。
可能な一実現形態において、前記パラメータ決定サブモジュールは、
さらに、第4のスケーリング係数f4は、以下の式(9)に基づいて計算できる。
量子化待ちデータに対して量子化を実行する場合、使用される量子化パラメータが異なると、量子化の実行に使用されるデータが異なる。
ここで、Ixは、量子化データが第1タイプに属するデーダであり、Fxは、量子化待ちデータであり、roundは、最も近い整数への丸め演算を実行する。
さらに、量子化間隔、量子化後のデータの数、および、対応する量子化前のデータに基づいて式(25)に基づいて量子化誤差diffbitを決定できる。
可能な一実現形態において、前記調整ビット幅決定サブモジュールは、第2の調整ビット幅決定サブモジュールをさらに備えてもよい。
第2の調整後の量子化誤差サブモジュールは、前記調整ビット幅および前記量子化待ちデータに基づいて前記量子化待ちデータの調整後の量子化誤差を計算し、
第1のデータ変動幅決定サブモジュールは、現在反復および前記現在反復中の前の反復である履歴反復中の量子化待ちデータのデータ変動幅を取得する。
可能な一実現形態において、制御モジュールは、第1目標反復間隔適用サブモジュールをさらに備えてもよい。
式(28)を利用して第1のデータ変動幅diffupdate1を計算できる。
ここで、βは、第2のパラメータであり、γは、第3のパラメータである。第2のパラメータおよび第3のパラメータは、ハイパーパラメータであり得る。
現在反復中の前記量子化待ちデータと前記量子化待ちデータに対応する量子化データとの間の誤差を計算するステップと、
前記誤差の2乗を前記第2のデータ変動幅として決定するステップと、を含んでもよい。
式(31)を利用して第2のデータ変動幅diffupdate2を計算して得ることができる。
ここで、δは、第4のパラメータであり、第4のパラメータは、ハイパーパラメータであり得る。
可能な一実現形態において、前記第2の目標反復間隔決定サブモジュールは、間隔決定サブモジュールを備えてもよい。
式(32)に基づいて目標反復間隔を計算して得ることができる
ここで、βは、第2のパラメータであり、γは、第3のパラメータである。第2のパラメータおよび第3のパラメータは、ハイパーパラメータであり得る。
ステップS12において、前記第1の演算サブモジュールを利用し、前記量子化結果に関連する演算を実行し、演算結果を得、ここで、ステップS12は、
前記スレーブ演算サブモジュールを利用し、受信した前記第1のデータに対して乗算演算を実行し、中間結果を得るステップと、
前記第1のデータは、前記量子化結果の中の第2タイプのデータの第1部分をさらに含む。
可能な一実現形態において、前記処理モジュールは、データ変換サブモジュールをさらに備え、前記方法は、
可能な一実現形態において、前記方法は、
可能な一実現形態において、前記制御モジュールを利用し、ニューラルネットワークの目標データの中から複数の量子化待ちデータを決定する方式は、
一層または多層の量子化待ち層の中の目標データを一つの量子化待ちデータとして決定する方式と、
一層または多層の量子化待ち層の中の同一の種類の演算待ちデータを一つの量子化待ちデータとして決定する方式と、
量子化待ち層の目標データに対応する一つまたは複数のチャネルの中のデータを、一つの量子化待ちデータとして決定する方式と、
量子化待ち層の目標データに対応する一つまたは複数のバッチのデータを、一つの量子化待ちデータとして決定する方式と、
可能な一実現形態において、前記処理モジュールは、第2の演算サブモジュールをさらに備え、前記方法は、
可能な一実現形態において、前記方法は、
前記各量子化待ちデータおよび対応するデータビット幅に基づいて計算して対応する量子化パラメータを得るステップをさらに含む。
可能な一実現形態において、前記各量子化待ちデータおよび対応するデータビット幅に基づいて計算して対応する量子化パラメータを得るステップは、
可能な一実現形態において、前記各量子化待ちデータおよび対応するデータビット幅に基づいて計算して対応する量子化パラメータを得るステップは、
可能な一実現形態において、前記各量子化待ちデータおよび対応するデータビット幅に基づいて計算して対応する量子化パラメータを得るステップは、
可能な一実現形態において、前記各量子化待ちデータおよび対応するデータビット幅に基づいて計算して対応する量子化パラメータを得るステップは、
可能な一実現形態において、前記各量子化待ちデータおよび対応するデータビット幅に基づいて計算して対応する量子化パラメータを得るステップは、
前記各量子化待ちデータの中の最大値および最小値に基づいて、前記各量子化待ちデータのオフセット量を得るステップを含む。
可能な一実現形態において、前記方法は、
前記量子化誤差が第1の誤差閾値よりも大きいと、前記対応するデータビット幅を増加し、前記対応する調整ビット幅を得るステップを含む。
可能な一実現形態において、前記方法は、
前記各量子化待ちデータおよび対応する調整ビット幅に基づいて前記各量子化待ちデータの調整後の量子化誤差を計算するステップと、
可能な一実現形態において、前記方法は、
前記調整ビット幅および前記量子化待ちデータに基づいて前記量子化待ちデータの調整後の量子化誤差を計算するステップと、
可能な一実現形態において、前記ニューラルネットワークによって演算される微調整段階、および/または、トレーニング段階において、前記方法は、
現在反復および前記現在反復中の前の反復である履歴反復中の量子化待ちデータのデータ変動幅を得るステップと、
可能な一実現形態において、前記方法は、
可能な一実現形態において、前記方法は、
可能な一実現形態において、現在反復および履歴反復中の量子化待ちデータのデータ変動幅を得るステップは、
可能な一実現形態において、現在反復および履歴反復中の量子化待ちデータのデータ変動幅を得るステップは、
前記第1の移動平均値と前記第2の移動平均値との差分値を計算するステップと、
前記差分値の絶対値を第1のデータ変動幅として決定するステップと、を含む。
可能な一実現形態において、前記方法は、
現在反復中の前記量子化待ちデータおよび前記量子化待ちデータに対応する量子化データに基づいて第2のデータ変動幅を得るステップをさらに含み、
現在反復中の前記量子化待ちデータと前記量子化待ちデータに対応する量子化データとの間の誤差を計算するステップと、
前記誤差の2乗を前記第2のデータ変動幅として決定するステップと、を含む。
前記第1のデータ変動幅および前記第2のデータ変動幅の中の最大値に基づいて、前記量子化待ちデータに対応する目標反復間隔を決定するステップを含む。
可能な一実現形態において、現在反復および履歴反復中の量子化待ちデータのデータ変動幅を得るステップは、
可能な一実現形態において、前記方法は、
可能な一実現形態において、をさらに人工知能チップを開示し、前記人工知能チップは、上述したデータ処理装置を備える。
ことを特徴とするボードカード。
以下の条項によって前述した内容をよりよく理解できる。
前記第1の演算サブモジュールは、前記量子化結果に関連する演算を実行して、演算結果を得、
前記スレーブ演算サブモジュールが、受信した前記第1のデータに対して乗算演算を実行して、中間結果を得、
前記メイン演算サブモジュールが、さらに、前記中間結果および前記量子化結果の中の前記第1のデータ以外のデータに対して演算を実行し、演算結果を得る。
前記第1のデータは、前記量子化結果の中の第2タイプのデータの第1部分をさらに含む。
条項A3.条項A1に記載の装置であって、前記処理モジュールは、
条項A4.条項A3に記載の装置であって、
条項A6.条項A5に記載の装置であって、前記制御モジュールは、
一層または多層の量子化待ち層の中の目標データを一つの量子化待ちデータとして決定する方式と、
一層または多層の量子化待ち層の中の同一の種類の演算待ちデータを一つの量子化待ちデータとして決定する方式と、
対応する量子化待ち層の目標データに対応する一つまたは複数のチャネル中のデータを、一つの量子化待ちデータとして決定する方式と、
対応する量子化待ち層の目標データに対応する一つまたは複数のバッチのデータを、一つの量子化待ちデータとして決定する方式と、
条項A7.条項A1に記載の装置であって、前記処理モジュールは、
前記装置中の、前記第1の演算サブモジュールによって実行される演算処理以外の演算処理を実行するための第2の演算サブモジュールをさらに備える。
条項A8.条項1または条項A2に記載の装置であって、前記制御モジュールは、
条項A9.条項A8に記載の装置であって、前記パラメータ決定サブモジュールは、
条項A10.条項A8に記載の装置であって、前記パラメータ決定サブモジュールは、
条項A11.条項A8に記載の装置であって、前記パラメータ決定サブモジュールは、
条項A12.条項A8に記載の装置であって、前記パラメータ決定サブモジュールは、
条項A13.条項A8に記載の装置であって、前記パラメータ決定サブモジュールは、
条項A14.条項A1から条項A13中のいずれか1項に記載の装置であって、前記制御モジュールは、
条項A15.条項A14に記載の装置であって、前記調整ビット幅決定サブモジュールは、
条項A16.条項A14または条項A15に記載の装置であって、前記制御モジュールは、
条項A17.条項A14または条項A15に記載の装置であって、前記調整ビット幅決定サブモジュールは、
条項A18.条項A17に記載の装置であって、前記制御モジュールは、
現在反復および前記現在反復中の前の反復である履歴反復中の量子化待ちデータのデータ変動幅を取得するための第1のデータ変動幅決定サブモジュールと、
条項A20.条項A19に記載の装置であって、前記制御モジュールは、
条項A21.条項A20に記載の装置であって、前記制御モジュールは、
条項A22.条項A19に記載の装置であって、前記第1のデータ変動幅決定サブモジュールは、
ここで、前記目標反復間隔決定サブモジュールは、
条項A23.条項A22に記載の装置であって、前記第1のデータ変動幅決定サブモジュールは、
条項A24.条項A23に記載の装置であって、前記制御モジュールは、
ここで、目標反復間隔決定サブモジュールは、
条項A25.条項A24に記載の装置であって、前記第2のデータ変動幅決定サブモジュールは、
条項A26.条項A24に記載の装置であって、前記第2の目標反復間隔決定サブモジュールは、
条項A27.条項A19から条項A26中のいずれか1項に記載の装置であって、前記第1のデータ変動幅決定サブモジュールは、
条項A28.条項A19から条項A27中のいずれか1項に記載の装置であって、前記制御モジュールは、
前記第1の演算サブモジュールを利用し、前記量子化結果に関連する演算を実行し、演算結果を得るステップと、を含み、
ここで、前記第1の演算サブモジュールを利用し、前記量子化結果に関連する演算を実行して、演算結果を得るステップは、
前記スレーブ演算サブモジュールを利用し、受信した前記第1のデータに対して乗算演算を実行し、中間結果を得るステップと、
前記第1データは、前記量子化結果の中の第2タイプのデータの第1部分をさらに含む。
条項A31.条項A29に記載の方法であって、前記処理モジュールは、データ変換サブモジュールをさらに備え、前記方法は、
条項A32.条項A31に記載の方法であって、
一層または多層の量子化待ち層の中の目標データを一つの量子化待ちデータとして決定する方式と、
一層または多層の量子化待ち層の中の同一の種類の演算待ちデータを一つの量子化待ちデータとして決定する方式と、
量子化待ち層の目標データに対応する一つまたは複数のチャネルの中のデータを、一つの量子化待ちデータとして決定する方式と、
量子化待ち層の目標データに対応する一つまたは複数のバッチのデータを、一つの量子化待ちデータとして決定する方式と、
条項A35.条項A29に記載の方法であって、前記処理モジュールは、第2の演算サブモジュールをさらに備え、前記方法は、
条項A36.条項A29または条項A30に記載の方法であって、
前記各量子化待ちデータおよび対応するデータビット幅に基づいて計算して対応する量子化パラメータを得るステップをさらに含む。
前記各量子化待ちデータの中の最大値および最小値に基づいて、前記各量子化待ちデータのオフセット量を得るステップを含む。
条項A42.条項A29から条項A41のいずれか1項に記載の方法であって、
前記量子化誤差が第1の誤差閾値よりも大きいと、前記対応するデータビット幅を増加し、前記対応する調整ビット幅を得るステップを含む。
条項A44.条項A42または条項A43に記載の方法であって、
前記各量子化待ちデータおよび対応する調整ビット幅に基づいて前記各量子化待ちデータの調整後の量子化誤差を計算するステップと、
条項A46.条項A45に記載の方法であって、
前記調整ビット幅および前記量子化待ちデータに基づいて前記量子化待ちデータの調整後の量子化誤差を計算するステップと、
現在反復および前記現在反復中の前の反復である履歴反復中の量子化待ちデータのデータ変動幅を取得するステップと、
条項A48.条項A47に記載の方法であって、
条項A49.条項A48に記載の方法であって、
条項A50.条項A47に記載の方法であって、現在反復および履歴反復中の量子化待ちデータのデータ変動幅を得るステップは、
条項A51.条項A50に記載の方法であって、現在反復および履歴反復中の量子化待ちデータのデータ変動幅を取得するステップは、
前記第1の移動平均値と前記第2の移動平均値との差分値を計算するステップと、
前記差分値の絶対値を第1のデータ変動幅として決定するステップと、を含む。
条項A52.条項A51に記載の方法であって、
現在反復中の前記量子化待ちデータおよび前記量子化待ちデータに対応する量子化データに基づいて第2のデータ変動幅を得るステップをさらに含み、
現在反復中の前記量子化待ちデータと前記量子化待ちデータに対応する量子化データとの間の誤差を計算するステップと、
前記誤差の2乗を前記第2のデータ変動幅として決定するステップと、を含む。
前記第1のデータ変動幅および前記第2のデータ変動幅の中の最大値に基づいて、前記量子化待ちデータに対応する目標反復間隔を決定するステップを含む。
条項A56.条項A47から条項A55のいずれか1項に記載の方法であって、
条項A57.人工知能チップであって、前記人工知能チップは、条項A1から条項A28の何れか1項に記載のニューラルネットワーク量子化装置を備える。
条項A58.電子デバイスであって、前記電子デバイスは、条項A57に記載の人工知能チップを備える。
ここで、前記人工知能チップは、前記記憶部品、前記制御部品、および、前記インターフェース装置にそれぞれ接続され、
前記記憶部品は、データを記憶し、
前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現し、
前記制御部品は、前記人工知能チップの状態を監視制御する。
条項A60.条項A59記載のボードカードであって、
前記チップは、DDRコントローラを備え、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に用いられ、
前記インターフェース装置は、標準PCIEインターフェースである。
Claims (61)
- ニューラルネットワーク量子化装置であって、
制御モジュールと、処理モジュールと、を備え、そのうち前記処理モジュールは、第1の演算サブモジュールを備え、前記第1の演算サブモジュールが、メイン演算サブモジュールと、スレーブ演算サブモジュールと、を備え、
前記制御モジュールは、ニューラルネットワークの目標データの中から複数の量子化待ちデータを決定し、前記各量子化待ちデータに対応する量子化データに基づいて前記目標データの量子化結果を得、前記各量子化待ちデータの量子化データが、対応する量子化パラメータを利用して量子化して得られたものであり、前記量子化パラメータが、ポイント位置を含み、
前記第1の演算サブモジュールは、前記量子化結果に関連する演算を実行し、演算結果を得、
ここで、前記メイン演算サブモジュールが第1のデータを前記スレーブ演算サブモジュールまでに送信し、前記第1のデータが、前記量子化結果の中の、前記ポイント位置に基づいて量子化して得られた第1タイプのデータを含み、
前記スレーブ演算サブモジュールが、受信した前記第1のデータに対して乗算演算を実行し、中間結果を得、
前記メイン演算サブモジュールが、さらに、前記中間結果および前記量子化結果の中の前記第1のデータ以外のデータに対して演算を実行し、演算結果を得る
ことを特徴とするニューラルネットワーク量子化装置。 - 前記量子化パラメータは、オフセット量および/またはスケーリング係数をさらに含み、前記量子化結果は、第2タイプのデータをさらに含み、前記第2タイプのデータが、ポイント位置を用いて表す第1部分、および、オフセット量および/またはスケーリング係数を用いて表す第2部分のデータを含み、
前記第1のデータは、前記量子化結果の中の第2タイプのデータの第1部分をさらに含む
ことを特徴とする請求項1に記載のニューラルネットワーク量子化装置。 - 前記処理モジュールは、
変換待ちデータに対してフォーマット変換を実行し、変換後のデータを得るためのデータ変換サブモジュールをさらに備え、前記変換後のデータのフォーマットタイプが、第1タイプおよび第2タイプの中の任意のタイプを含み、ここで、前記変換待ちデータが、前記目標データの中の量子化処理を実行したことがないデータを含み、前記第1のデータが、第1タイプの変換後のデータおよび/または第2タイプの変換後のデータの中の第1部分をさらに含み、
前記メイン演算サブモジュールが、さらに、前記中間結果、前記量子化結果の中の前記第1のデータ以外のデータ、および、前記変換後のデータの中の前記第1のデータ以外のデータに対して演算を実行し、演算結果を得る
ことを特徴とする請求項1に記載のニューラルネットワーク量子化装置。 - 前記データ変換サブモジュールは、さらに、前記各量子化待ちデータに対応する量子化データに基づいて得られた前記目標データの変換待ち量子化結果に対してフォーマット変換を実行し、前記量子化結果を得る
ことを特徴とする請求項3に記載のニューラルネットワーク量子化装置。 - 前記各量子化待ちデータは、いずれも前記目標データのサブセットであり、前記目標データは、前記ニューラルネットワークの量子化待ち層の任意の1種の量子化待ちの演算待ちデータであり、前記演算待ちデータは、入力ニューロン、重み値、バイアス、勾配の中の少なくとも一種を含む
ことを特徴とする請求項1から4のいずれか1項に記載のニューラルネットワーク量子化装置。 - 前記制御モジュールは、
一層または多層の量子化待ち層の中の目標データを一つの量子化待ちデータとして決定する方式と、
一層または多層の量子化待ち層の中の同一の種類の演算待ちデータを一つの量子化待ちデータとして決定する方式と、
量子化待ち層の目標データに対応する一つまたは複数のチャネルの中のデータを、一つの量子化待ちデータとして決定する方式と、
量子化待ち層の目標データに対応する一つまたは複数のバッチのデータを、一つの量子化待ちデータとして決定する方式と、
量子化待ち層に対応する目標データを決定された分割サイズに基づいて一つまたは複数の量子化待ちデータに分割する方式と、の中の少なくとも一つの方式を使用して複数の量子化待ちデータを決定する
ことを特徴とする請求項5に記載のニューラルネットワーク量子化装置。 - 前記処理モジュールは、
前記装置中の、前記第1の演算サブモジュールによって実行される演算処理以外の演算処理を実行するための第2の演算サブモジュールをさらに備える
ことを特徴とする請求項1に記載のニューラルネットワーク量子化装置。 - 前記制御モジュールは、
前記各量子化待ちデータおよび対応するデータビット幅に基づいて対応する量子化パラメータを計算して得るためのパラメータ決定サブモジュールをさらに備える
ことを特徴とする請求項1または2に記載のニューラルネットワーク量子化装置。 - 前記パラメータ決定サブモジュールは、
前記量子化パラメータがオフセット量を含まないと、前記各量子化待ちデータの中の絶対値の最大値および対応するデータビット幅に基づいて、前記各量子化待ちデータの第1タイプのポイント位置を得るための第1のポイント位置決定サブモジュールを備える
ことを特徴とする請求項8に記載のニューラルネットワーク量子化装置。 - 前記パラメータ決定サブモジュールは、
前記量子化パラメータがオフセット量を含まないと、前記各量子化待ちデータおよび対応するデータビット幅に基づいて量子化後のデータの最大値を得るための第1の最大値決定サブモジュールと、
前記各量子化待ちデータの中の絶対値の最大値および前記量子化後のデータの最大値に基づいて、前記各量子化待ちデータの第1タイプのスケーリング係数を得るための第1のスケーリング係数決定サブモジュールと、を備える
ことを特徴とする請求項8に記載のニューラルネットワーク量子化装置。 - 前記パラメータ決定サブモジュールは、
前記量子化パラメータがオフセット量を含むと、前記各量子化待ちデータの中の最大値、最小値、および、対応するデータビット幅に基づいて、前記各量子化待ちデータの第2タイプのポイント位置を得るための第2のポイント位置決定サブモジュールを備える
ことを特徴とする請求項8に記載のニューラルネットワーク量子化装置。 - 前記パラメータ決定サブモジュールは、
前記量子化パラメータがオフセット量を含むと、前記各量子化待ちデータおよび対応するデータビット幅に基づいて量子化後のデータの最大値を得るための第2の最大値決定サブモジュールと、
前記各量子化待ちデータの中の最大値、最小値、および、量子化後のデータの最大値に基づいて、前記各量子化待ちデータの第2タイプのスケーリング係数を得るための第1のスケーリング係数決定サブモジュールと、を備える
ことを特徴とする請求項8に記載のニューラルネットワーク量子化装置。 - 前記パラメータ決定サブモジュールは、
前記各量子化待ちデータの中の最大値および最小値に基づいて、前記各量子化待ちデータのオフセット量を得るためのオフセット量決定サブモジュールを備える
ことを特徴とする請求項8に記載のニューラルネットワーク量子化装置。 - 前記制御モジュールは、
前記各量子化待ちデータおよび前記各量子化待ちデータに対応する量子化データに基づいて、前記各量子化待ちデータに対応する量子化誤差を決定するための第1の量子化誤差決定サブモジュールと、
前記各量子化待ちデータに対応する量子化誤差および誤差閾値に基づいて、前記各量子化待ちデータに対応するデータビット幅を調整し、前記各量子化待ちデータに対応する調整ビット幅を得るための調整ビット幅決定サブモジュールと、
前記各量子化待ちデータが前記対応する調整量子化パラメータに基づいて量子化を実行するように、前記各量子化待ちデータに対応するデータビット幅を対応する調整ビット幅に更新し、前記各量子化待ちデータおよび対応する調整ビット幅に基づいて対応する調整量子化パラメータを計算して得るための調整量子化パラメータ決定サブモジュールと、をさらに備える
ことを特徴とする請求項1から13中のいずれか1項に記載のニューラルネットワーク量子化装置。 - 前記調整ビット幅決定サブモジュールは、
前記量子化誤差が第1の誤差閾値よりも大きいと、前記対応するデータビット幅を増加し、前記対応する調整ビット幅を得るための第1の調整ビット幅決定サブモジュールを備える
ことを特徴とする請求項14に記載のニューラルネットワーク量子化装置。 - 前記制御モジュールは、
前記各量子化待ちデータおよび対応する調整ビット幅に基づいて前記各量子化待ちデータの調整後の量子化誤差を計算するための第1の調整後の量子化誤差サブモジュールと、
前記調整後の量子化誤差が前記第1の誤差閾値以下になるまで、前記調整後の量子化誤差および前記第1の誤差閾値に基づいて前記対応する調整ビット幅を増加し続けるための第1の調整ビット幅循環決定モジュールと、をさらに備える
ことを特徴とする請求項14または15に記載のニューラルネットワーク量子化装置。 - 前記調整ビット幅決定サブモジュールは、
前記量子化誤差が前記第1の誤差閾値よりも小さい第2の誤差閾値よりも小さいと、前記対応するデータビット幅を増加し、前記対応する調整ビット幅を得るための第2の調整ビット幅決定サブモジュールを備える
ことを特徴とする請求項14または15に記載のニューラルネットワーク量子化装置。 - 前記制御モジュールは、
前記調整ビット幅および前記量子化待ちデータに基づいて前記量子化待ちデータの調整後の量子化誤差を計算するための第2の調整後の量子化誤差サブモジュールと、
調整ビット幅および前記量子化待ちデータに基づいて計算して得た調整後の量子化誤差が前記第2の誤差閾値以上になるまで、前記調整後の量子化誤差および前記第2の誤差閾値に基づいて前記調整ビット幅を減少し続けるための第2の調整ビット幅循環決定サブモジュールと、をさらに備える
ことを特徴とする請求項17に記載のニューラルネットワーク量子化装置。 - 前記ニューラルネットワークによって演算される微調整段階、および/または、トレーニング段階において、前記制御モジュールは、
現在反復および前記現在反復中の前の反復である履歴反復中の量子化待ちデータのデータ変動幅を得るための第1のデータ変動幅決定サブモジュールと、
前記量子化待ち層が前記目標反復間隔に基づいて前記量子化待ちデータの量子化パラメータを更新するように、前記量子化待ちデータのデータ変動幅に基づいて、前記量子化待ちデータに対応する目標反復間隔を決定するための目標反復間隔決定サブモジュールと、をさらに備え、前記目標反復間隔は、少なくとも一回の反復を含む
ことを特徴とする請求項1から18中のいずれか1項に記載のニューラルネットワーク量子化装置。 - 前記制御モジュールは、
前記ニューラルネットワークが前記量子化待ちデータの前記目標反復間隔内の反復中の対応するデータビット幅に基づいて量子化パラメータを決定するように、前記量子化待ちデータの前記現在反復中のデータビット幅に基づいて、前記量子化待ちデータの前記目標反復間隔内の反復中の対応するデータビット幅を決定するための第1の目標反復間隔適用サブモジュールをさらに備える
ことを特徴とする請求項19に記載のニューラルネットワーク量子化装置。 - 前記制御モジュールは、
前記量子化待ちデータの前記現在反復中の対応するポイント位置に基づいて、前記量子化待ちデータの前記目標反復間隔内の反復中の対応するポイント位置を決定するための第2の目標反復間隔適用サブモジュールをさらに備え、前記ポイント位置は、第1タイプのポイント位置、および/または、第2タイプのポイント位置を含む
ことを特徴とする請求項20に記載のニューラルネットワーク量子化装置。 - 前記第1のデータ変動幅決定サブモジュールは、
量子化待ちデータの現在反復中のポイント位置、および、履歴反復間隔に基づいて決定した、前記現在反復に対応する履歴反復中のポイント位置に基づいて、量子化待ちデータの各反復間隔に対応するポイント位置の移動平均値を計算するための移動平均値計算サブモジュールと、前記ポイント位置は、第1タイプのポイント位置、および/または、第2タイプのポイント位置を含み、
前記量子化待ちデータの現在反復中のポイント位置の第1の移動平均値、および、一つ前の反復間隔に対応する反復中のポイント位置の第2の移動平均値に基づいて、第1のデータ変動幅を得るための第1のデータ変動幅決定サブモジュールと、を備え、
ここで、前記目標反復間隔決定サブモジュールは、
前記ニューラルネットワークが前記目標反復間隔に基づいて前記量子化待ちデータの量子化パラメータを更新するように、前記第1のデータ変動幅に基づいて、前記量子化待ちデータに対応する目標反復間隔を決定するための第1の目標反復間隔決定サブモジュールを備える
ことを特徴とする請求項19に記載のニューラルネットワーク量子化装置。 - 前記第1のデータ変動幅決定サブモジュールは、
前記第1の移動平均値と前記第2の移動平均値との差分値を計算し、前記差分値の絶対値を第1のデータ変動幅として決定するための第1の幅度決定サブモジュールと、を備える
ことを特徴とする請求項22に記載のニューラルネットワーク量子化装置。 - 前記制御モジュールは、
現在反復中の前記量子化待ちデータおよび前記量子化待ちデータに対応する量子化データに基づいて第2のデータ変動幅を得るための第2のデータ変動幅決定サブモジュールをさらに備え、
ここで、目標反復間隔決定サブモジュールは、
前記ニューラルネットワークが前記目標反復間隔に基づいて前記量子化待ちデータの量子化パラメータを更新するように、前記量子化待ちデータの第1のデータ変動幅および前記第2のデータ変動幅に基づいて、前記量子化待ちデータに対応する目標反復間隔を決定するための第2の目標反復間隔決定サブモジュールを備える
ことを特徴とする請求項23に記載のニューラルネットワーク量子化装置。 - 前記第2のデータ変動幅決定サブモジュールは、
現在反復中の前記量子化待ちデータと前記量子化待ちデータに対応する量子化データとの間の誤差を計算し、前記誤差の2乗を前記第2のデータ変動幅として決定するための第2の幅度決定サブモジュールを備える
ことを特徴とする請求項24に記載のニューラルネットワーク量子化装置。 - 前記第2の目標反復間隔決定サブモジュールは、
前記第1のデータ変動幅および前記第2のデータ変動幅の中の最大値に基づいて、前記量子化待ちデータに対応する目標反復間隔を決定するための間隔決定サブモジュールを備える
ことを特徴とする請求項24に記載のニューラルネットワーク量子化装置。 - 前記第1のデータ変動幅決定サブモジュールは、
現在反復が更新周期以外に位置すると、現在反復および履歴反復中の量子化待ちデータのデータ変動幅を得るための第2のデータ変動幅決定サブモジュールを備え、前記更新周期は、少なくとも一つの反復を含む
ことを特徴とする請求項19から26中のいずれか1項に記載のニューラルネットワーク量子化装置。 - 前記制御モジュールは、
現在反復が所定の周期内に位置すると、現在反復、前記所定の周期の次の周期中の前記現在反復中の対応する反復、および、現在反復中の対応する反復間隔に基づいて、周期間隔を決定するための周期間隔決定サブモジュールと、
前記量子化待ちデータの現在反復中の対応するデータビット幅に基づいて、前記周期間隔内の反復中の前記量子化待ちデータのデータビット幅を決定するための第1の周期間隔適用サブモジュール、または
前記量子化待ちデータの現在反復中の対応するポイント位置に基づいて、前記周期間隔内の反復中の前記量子化待ちデータのポイント位置を決定するための第2の周期間隔適用サブモジュールと、をさらに備える
ことを特徴とする請求項19から27中のいずれか1項に記載のニューラルネットワーク量子化装置。 - ニューラルネットワーク量子化方法であって、
前記ニューラルネットワーク量子化方法は、ニューラルネットワーク量子化装置に適用され、前記ニューラルネットワーク量子化装置は、制御モジュールと、処理モジュールと、を備え、前記処理モジュールが、第1の演算サブモジュールを備え、前記第1の演算サブモジュールが、メイン演算サブモジュールと、スレーブ演算サブモジュールと、を備え、
前記ニューラルネットワーク量子化方法は、
前記制御モジュールを利用し、ニューラルネットワークの目標データの中から複数の量子化待ちデータを決定し、前記各量子化待ちデータに対応する量子化データに基づいて前記目標データの量子化結果を得るステップと、前記各量子化待ちデータの量子化データは、対応する量子化パラメータを利用して量子化して得られたものであり、前記量子化パラメータは、ポイント位置を含み、
前記第1の演算サブモジュールを利用し、前記量子化結果に関連する演算を実行し、演算結果を得るステップと、を含み、
ここで、前記第1の演算サブモジュールを利用し、前記量子化結果に関連する演算を実行し、演算結果を得るステップは、
前記メイン演算サブモジュールを利用し、第1のデータを前記スレーブ演算サブモジュールまでに送信するステップと、前記第1のデータは、前記量子化結果中の、前記ポイント位置に基づいて量子化して得られた第1タイプのデータを含み、
前記スレーブ演算サブモジュールを利用し、受信した前記第1のデータに対して乗算演算を実行し、中間結果を得るステップと、
前記メイン演算サブモジュールを利用し、前記中間結果および前記量子化結果の中の前記第1のデータ以外のデータに対して演算を実行し、演算結果を得るステップと、を含む
ことを特徴とするニューラルネットワーク量子化方法。 - 前記量子化パラメータは、オフセット量および/またはスケーリング係数をさらに含み、前記量子化結果は、第2タイプのデータをさらに含み、前記第2タイプのデータは、ポイント位置を用いて表す第1部分、および、オフセット量および/またはスケーリング係数を用いて表す第2部分のデータを含み、
前記第1データは、前記量子化結果の中の第2タイプのデータの第1部分をさらに含む
ことを特徴とする請求項29に記載のニューラルネットワーク量子化方法。 - 前記処理モジュールは、データ変換サブモジュールをさらに備え、
前記ニューラルネットワーク量子化方法は、
前記データ変換サブモジュールを利用し、変換待ちデータに対してフォーマット変換を実行し、変換後のデータを得るステップを含み、前記変換後のデータのフォーマットタイプが、第1タイプおよび第2タイプの中の任意のタイプを含み、ここで、前記変換待ちデータが、前記目標データの中の量子化処理を実行したことがないデータを含み、前記第1のデータが、第1タイプの変換後のデータおよび/または第2タイプの変換後のデータの中の第1部分をさらに含み、
ここで、前記メイン演算サブモジュールを利用し、前記中間結果および前記量子化結果の中の前記第1のデータ以外のデータに対して演算を実行し、演算結果を得るステップは、
前記メイン演算サブモジュールを利用し、前記中間結果に対して、前記量子化結果の中の前記第1のデータ以外のデータおよび前記変換後のデータの中の前記第1のデータ以外のデータ演算を実行し、演算結果を得るステップを含む
ことを特徴とする請求項29に記載のニューラルネットワーク量子化方法。 - 前記データ変換サブモジュールを利用し、前記各量子化待ちデータに対応する量子化データに基づいて得られた前記目標データの変換待ち量子化結果に対してフォーマット変換を実行し、前記量子化結果を得るステップをさらに含む
ことを特徴とする請求項31に記載のニューラルネットワーク量子化方法。 - 前記各量子化待ちデータは、いずれも前記目標データのサブセットであり、前記目標データは、前記ニューラルネットワークの量子化待ち層の任意の1種の量子化待ちの演算待ちデータであり、前記演算待ちデータは、入力ニューロン、重み値、バイアス、勾配の中の少なくとも一種を含む
ことを特徴とする請求項29から32のいずれか1項に記載のニューラルネットワーク量子化方法。 - 前記制御モジュールを利用し、ニューラルネットワークの目標データの中から複数の量子化待ちデータを決定する方式は、
一層または多層の量子化待ち層の中の目標データを一つの量子化待ちデータとして決定する方式と、
一層または多層の量子化待ち層の中の同一の種類の演算待ちデータを一つの量子化待ちデータとして決定する方式と、
量子化待ち層の目標データに対応する一つまたは複数のチャネルの中のデータを、一つの量子化待ちデータとして決定する方式と、
量子化待ち層の目標データに対応する一つまたは複数のバッチのデータを、一つの量子化待ちデータとして決定する方式と、
量子化待ち層に対応する目標データを決定された分割サイズに基づいて一つまたは複数の量子化待ちデータに分割する方式と、の中の少なくとも一つの方式を含む
ことを特徴とする請求項33に記載のニューラルネットワーク量子化方法。 - 前記処理モジュールは、第2の演算サブモジュールをさらに備え、
前記ニューラルネットワーク量子化方法は、
前記第2の演算サブモジュールを利用し、前記装置中の、前記第1の演算サブモジュールによって実行される演算処理以外の演算処理を実行するステップをさらに含む
ことを特徴とする請求項29に記載のニューラルネットワーク量子化方法。 - 前記各量子化待ちデータおよび対応するデータビット幅に基づいて計算して対応する量子化パラメータを得るステップをさらに含む
ことを特徴とする請求項29または30に記載のニューラルネットワーク量子化方法。 - 前記各量子化待ちデータおよび対応するデータビット幅に基づいて計算して対応する量子化パラメータを得るステップは、
前記量子化パラメータがオフセット量を含まないと、前記各量子化待ちデータの中の絶対値の最大値および対応するデータビット幅に基づいて、前記各量子化待ちデータの第1タイプのポイント位置を得るステップを含む
ことを特徴とする請求項36に記載のニューラルネットワーク量子化方法。 - 前記各量子化待ちデータおよび対応するデータビット幅に基づいて計算して対応する量子化パラメータを得るステップは、
前記量子化パラメータがオフセット量を含まないと、前記各量子化待ちデータおよび対応するデータビット幅に基づいて量子化後のデータの最大値を得るステップと、
前記各量子化待ちデータの中の絶対値の最大値および前記量子化後のデータの最大値に基づいて、前記各量子化待ちデータの第1タイプのスケーリング係数を得るステップと、を含む
ことを特徴とする請求項36に記載のニューラルネットワーク量子化方法。 - 前記各量子化待ちデータおよび対応するデータビット幅に基づいて計算して対応する量子化パラメータを得るステップは、
前記量子化パラメータがオフセット量を含むと、前記各量子化待ちデータの中の最大値、最小値、および、対応するデータビット幅に基づいて、前記各量子化待ちデータの第2タイプのポイント位置を得るステップを含む
ことを特徴とする請求項36に記載のニューラルネットワーク量子化方法。 - 前記各量子化待ちデータおよび対応するデータビット幅に基づいて計算して対応する量子化パラメータを得るステップは、
前記量子化パラメータがオフセット量を含むと、前記各量子化待ちデータおよび対応するデータビット幅に基づいて量子化後のデータの最大値を得るステップと、
前記各量子化待ちデータの中の最大値、最小値、および、量子化後のデータの最大値に基づいて、前記各量子化待ちデータの第2タイプのスケーリング係数を得るステップと、を含む
ことを特徴とする請求項36に記載のニューラルネットワーク量子化方法。 - 前記各量子化待ちデータおよび対応するデータビット幅に基づいて計算して対応する量子化パラメータを得るステップは、
前記各量子化待ちデータの中の最大値および最小値に基づいて、前記各量子化待ちデータのオフセット量を得るステップを含む
ことを特徴とする請求項36に記載のニューラルネットワーク量子化方法。 - 前記各量子化待ちデータおよび前記各量子化待ちデータに対応する量子化データに基づいて、前記各量子化待ちデータに対応する量子化誤差を決定するステップと、
前記各量子化待ちデータに対応する量子化誤差および誤差閾値に基づいて、前記各量子化待ちデータに対応するデータビット幅を調整し、前記各量子化待ちデータに対応する調整ビット幅を得るステップと、
前記各量子化待ちデータが前記対応する調整量子化パラメータに基づいて量子化を実行するように、前記各量子化待ちデータに対応するデータビット幅を対応する調整ビット幅に更新し、前記各量子化待ちデータおよび対応する調整ビット幅に基づいて対応する調整量子化パラメータを計算して得るステップと、をさらに含む
ことを特徴とする請求項29から41のいずれか1項に記載のニューラルネットワーク量子化方法。 - 前記各量子化待ちデータに対応する量子化誤差および誤差閾値に基づいて、前記各量子化待ちデータに対応するデータビット幅を調整し、前記各量子化待ちデータに対応する調整ビット幅を得るステップは、
前記量子化誤差が第1の誤差閾値よりも大きいと、前記対応するデータビット幅を増加し、前記対応する調整ビット幅を得るステップを含む
ことを特徴とする請求項42に記載のニューラルネットワーク量子化方法。 - 前記各量子化待ちデータおよび対応する調整ビット幅に基づいて前記各量子化待ちデータの調整後の量子化誤差を計算するステップと、
前記調整後の量子化誤差が前記第1の誤差閾値以下になるまで、前記調整後の量子化誤差および前記第1の誤差閾値に基づいて前記対応する調整ビット幅を増加し続けるステップと、をさらに含む
ことを特徴とする請求項42または43に記載のニューラルネットワーク量子化方法。 - 前記各量子化待ちデータに対応する量子化誤差および誤差閾値に基づいて、前記各量子化待ちデータに対応するデータビット幅を調整し、前記各量子化待ちデータに対応する調整ビット幅を得るステップは、
前記量子化誤差が前記第1誤差閾値よりも小さい第2誤差閾値よりも小さいと、前記対応するデータビット幅を増加し、前記対応する調整ビット幅を得るステップを含む
ことを特徴とする請求項42または43に記載のニューラルネットワーク量子化方法。 - 前記調整ビット幅および前記量子化待ちデータに基づいて前記量子化待ちデータの調整後の量子化誤差を計算するステップと、
調整ビット幅および前記量子化待ちデータに基づいて計算して得た調整後の量子化誤差が前記第2の誤差閾値以上になるまで、前記調整後の量子化誤差および前記第2の誤差閾値に基づいて前記調整ビット幅を減少し続けるステップと、をさらに含む
ことを特徴とする請求項45に記載のニューラルネットワーク量子化方法。 - 前記ニューラルネットワークによって演算される微調整段階、および/または、トレーニング段階において、
前記ニューラルネットワーク量子化方法は、
現在反復および前記現在反復中の前の反復である履歴反復中の量子化待ちデータのデータ変動幅を取得するステップと、
前記量子化待ち層が前記目標反復間隔に基づいて前記量子化待ちデータの量子化パラメータを更新するように、前記量子化待ちデータのデータ変動幅に基づいて、前記量子化待ちデータに対応する目標反復間隔を決定するステップと、をさらに含み、前記目標反復間隔は、少なくとも一回の反復を含む
ことを特徴とする請求項29から44のいずれか1項に記載のニューラルネットワーク量子化方法。 - 前記ニューラルネットワークが前記量子化待ちデータの前記目標反復間隔内の反復中の対応するデータビット幅に基づいて量子化パラメータを決定するように、前記量子化待ちデータの前記現在反復中のデータビット幅に基づいて、前記量子化待ちデータの前記目標反復間隔内の反復中の対応するデータビット幅を決定するステップをさらに含む
ことを特徴とする請求項47に記載のニューラルネットワーク量子化方法。 - 前記量子化待ちデータの前記現在反復中の対応するポイント位置に基づいて、前記量子化待ちデータの前記目標反復間隔内の反復中の対応するポイント位置を決定するステップをさらに含み、前記ポイント位置は、第1タイプのポイント位置、および/または、第2タイプのポイント位置を含む
ことを特徴とする請求項48に記載のニューラルネットワーク量子化方法。 - 現在反復および履歴反復中の量子化待ちデータのデータ変動幅を得るステップは、
量子化待ちデータの現在反復中のポイント位置、および、履歴反復間隔に基づいて決定した、前記現在反復に対応する履歴反復中のポイント位置に基づいて、量子化待ちデータの各反復間隔に対応するポイント位置の移動平均値を計算するステップと、前記ポイント位置は、第1タイプのポイント位置、および/または、第2タイプのポイント位置を含み、
前記量子化待ちデータの現在反復中のポイント位置の第1の移動平均値、および、一つ前の反復間隔に対応する反復中のポイント位置の第2の移動平均値に基づいて、第1のデータ変動幅を得るステップと、を含み、
ここで、前記量子化待ち層が前記目標反復間隔に基づいて前記量子化待ちデータの量子化パラメータを更新するように、前記量子化待ちデータのデータ変動幅に基づいて、前記量子化待ちデータに対応する目標反復間隔を決定するステップは、
前記ニューラルネットワークが前記目標反復間隔に基づいて前記量子化待ちデータの量子化パラメータを更新するように、前記第1のデータ変動幅に基づいて、前記量子化待ちデータに対応する目標反復間隔を決定するステップを含む
ことを特徴とする請求項47に記載のニューラルネットワーク量子化方法。 - 現在反復および履歴反復中の量子化待ちデータのデータ変動幅を得るステップは、
前記第1の移動平均値と前記第2の移動平均値との差分値を計算するステップと、
前記差分値の絶対値を第1のデータ変動幅として決定するステップと、を含む
ことを特徴とする請求項50に記載のニューラルネットワーク量子化方法。 - 現在反復中の前記量子化待ちデータおよび前記量子化待ちデータに対応する量子化データに基づいて第2のデータ変動幅を得るステップをさらに含み、
ここで、前記量子化待ち層が前記目標反復間隔に基づいて前記量子化待ちデータの量子化パラメータを更新するように、前記量子化待ちデータのデータ変動幅に基づいて、前記量子化待ちデータに対応する目標反復間隔を決定するステップは、
前記ニューラルネットワークが前記目標反復間隔に基づいて前記量子化待ちデータの量子化パラメータを更新するように、前記量子化待ちデータの第1のデータ変動幅および前記第2のデータ変動幅に基づいて、前記量子化待ちデータに対応する目標反復間隔を決定するステップを含む
ことを特徴とする請求項51に記載のニューラルネットワーク量子化方法。 - 現在反復中の前記量子化待ちデータおよび前記量子化待ちデータに対応する量子化データに基づいて第2のデータ変動幅を得るステップは、
現在反復中の前記量子化待ちデータと前記量子化待ちデータに対応する量子化データとの間の誤差を計算するステップと、
前記誤差の2乗を前記第2のデータ変動幅として決定するステップと、を含む
ことを特徴とする請求項52に記載のニューラルネットワーク量子化方法。 - 前記量子化待ちデータの第1のデータ変動幅および前記第2のデータ変動幅に基づいて、前記量子化待ちデータに対応する目標反復間隔を決定するステップは、
前記第1のデータ変動幅および前記第2のデータ変動幅の中の最大値に基づいて、前記量子化待ちデータに対応する目標反復間隔を決定するステップを含む
ことを特徴とする請求項52に記載のニューラルネットワーク量子化方法。 - 現在反復および履歴反復中の量子化待ちデータのデータ変動幅を得るステップは、
現在反復が更新周期以外に位置すると、現在反復および履歴反復中の量子化待ちデータのデータ変動幅を得るステップを含み、前記更新周期は、少なくとも一つの反復を含む
ことを特徴とする請求項47から54のいずれか1項に記載のニューラルネットワーク量子化方法。 - 現在反復が所定の周期内に位置すると、現在反復、前記所定の周期の次の周期中の前記現在反復中の対応する反復、および、現在反復中の対応する反復間隔に基づいて、周期間隔を決定するステップと、
前記量子化待ちデータの現在反復中の対応するデータビット幅に基づいて、前記周期間隔内の反復中の前記量子化待ちデータのデータビット幅を決定するステップ、または
前記量子化待ちデータの現在反復中の対応するポイント位置に基づいて、前記周期間隔内の反復中の前記量子化待ちデータのポイント位置を決定するステップと、をさらに含む
ことを特徴とする請求項47から55のいずれか1項に記載のニューラルネットワーク量子化方法。 - 人工知能チップであって、
前記人工知能チップは、請求項1から28の何れか1項に記載のニューラルネットワーク量子化装置を備える
ことを特徴とする人工知能チップ。 - 電子デバイスであって
前記電子デバイスは、請求項57に記載の人工知能チップを備える
ことを特徴とする電子デバイス。 - ボードカードであって、
前記ボードカードは、記憶部品と、インターフェース装置と、制御部品と、請求項58に記載の人工知能チップと、を備え、
ここで、前記人工知能チップは、前記記憶部品、前記制御部品、および、前記インターフェース装置にそれぞれ接続され、
前記記憶部品は、データを記憶し、
前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現し、
前記制御部品は、前記人工知能チップの状態を監視制御する
ことを特徴とするボードカード。 - 前記記憶部品は、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットが、前記人工知能チップにバスを介して接続され、前記記憶ユニットが、DDR SDRAMであり、
前記チップは、DDRコントローラを備え、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に用いられ、
前記インターフェース装置は、標準PCIEインターフェースである
ことを特徴とする請求項59に記載のボードカード。 - コンピュータプログラム命令が記憶されている不揮発性のコンピュータ可読記憶媒体であって、
前記コンピュータプログラム命令がプロセッサによって実行されると、請求項29から56の何れか1項に記載のニューラルネットワーク量子化方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910797127.3 | 2019-08-27 | ||
CN201910797127 | 2019-08-27 | ||
CN201910888449.9A CN112085176B (zh) | 2019-06-12 | 2019-09-19 | 数据处理方法、装置、计算机设备和存储介质 |
CN201910888449.9 | 2019-09-19 | ||
PCT/CN2020/110306 WO2021036905A1 (zh) | 2019-08-27 | 2020-08-20 | 数据处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022501676A true JP2022501676A (ja) | 2022-01-06 |
JP7146953B2 JP7146953B2 (ja) | 2022-10-04 |
Family
ID=74684026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020567529A Active JP7146953B2 (ja) | 2019-08-27 | 2020-08-20 | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210117768A1 (ja) |
EP (1) | EP4024280A4 (ja) |
JP (1) | JP7146953B2 (ja) |
WO (1) | WO2021036905A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11437032B2 (en) | 2017-09-29 | 2022-09-06 | Shanghai Cambricon Information Technology Co., Ltd | Image processing apparatus and method |
US11397579B2 (en) | 2018-02-13 | 2022-07-26 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11630666B2 (en) | 2018-02-13 | 2023-04-18 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
KR102148110B1 (ko) | 2018-02-13 | 2020-08-25 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 계산 장치 및 방법 |
CN116991226A (zh) | 2018-02-14 | 2023-11-03 | 上海寒武纪信息科技有限公司 | 处理器的控制装置、方法及设备 |
EP3624020A4 (en) | 2018-05-18 | 2021-05-05 | Shanghai Cambricon Information Technology Co., Ltd | CALCULATION PROCEDURES AND RELATED PRODUCTS |
EP3798850A4 (en) | 2018-06-27 | 2022-03-23 | Shanghai Cambricon Information Technology Co., Ltd | ON-CHIP CODE BREAKPOINT DEBUG METHOD, ON-CHIP PROCESSOR AND CHIP BREAKPOINT DEBUG SYSTEM |
EP3757896B1 (en) | 2018-08-28 | 2023-01-11 | Cambricon Technologies Corporation Limited | Method and device for pre-processing data in a neural network |
WO2020062392A1 (zh) | 2018-09-28 | 2020-04-02 | 上海寒武纪信息科技有限公司 | 信号处理装置、信号处理方法及相关产品 |
CN111383638A (zh) | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 信号处理装置、信号处理方法及相关产品 |
CN111832739B (zh) | 2019-04-18 | 2024-01-09 | 中科寒武纪科技股份有限公司 | 一种数据处理方法及相关产品 |
US20200334522A1 (en) | 2019-04-18 | 2020-10-22 | Cambricon Technologies Corporation Limited | Data processing method and related products |
US11676028B2 (en) | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
CN112085181B (zh) | 2019-06-12 | 2024-03-29 | 上海寒武纪信息科技有限公司 | 神经网络量化方法及装置以及相关产品 |
CN112686364B (zh) * | 2019-10-18 | 2023-12-08 | 华为技术有限公司 | 一种神经网络计算芯片及计算方法 |
KR20210156538A (ko) * | 2020-06-18 | 2021-12-27 | 삼성전자주식회사 | 뉴럴 네트워크를 이용한 데이터 처리 방법 및 데이터 처리 장치 |
CN113504892A (zh) * | 2021-06-13 | 2021-10-15 | 山东云海国创云计算装备产业创新中心有限公司 | 一种设计乘法器查找表的方法、系统、设备及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10262259B2 (en) * | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
US10474458B2 (en) * | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
CN109902745A (zh) * | 2019-03-01 | 2019-06-18 | 成都康乔电子有限责任公司 | 一种基于cnn的低精度训练与8位整型量化推理方法 |
CN110058883B (zh) * | 2019-03-14 | 2023-06-16 | 梁磊 | 一种基于opu的cnn加速方法及系统 |
CN110069715B (zh) * | 2019-04-29 | 2022-12-23 | 腾讯科技(深圳)有限公司 | 一种信息推荐模型训练的方法、信息推荐的方法及装置 |
-
2020
- 2020-08-20 EP EP20824881.5A patent/EP4024280A4/en active Pending
- 2020-08-20 JP JP2020567529A patent/JP7146953B2/ja active Active
- 2020-08-20 WO PCT/CN2020/110306 patent/WO2021036905A1/zh unknown
- 2020-12-30 US US17/137,981 patent/US20210117768A1/en active Pending
Non-Patent Citations (1)
Title |
---|
YANG,YI ET AL: "Deploy Large-Scale Deep Neural Networks in Resource Constrained IoT Devices with Local Quantization", ARXIV.1805.09473, JPN6022004424, 24 May 2018 (2018-05-24), ISSN: 0004702381 * |
Also Published As
Publication number | Publication date |
---|---|
JP7146953B2 (ja) | 2022-10-04 |
US20210117768A1 (en) | 2021-04-22 |
WO2021036905A1 (zh) | 2021-03-04 |
EP4024280A4 (en) | 2022-11-16 |
EP4024280A1 (en) | 2022-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022501676A (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
JP7146955B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
JP7146954B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
CN112085181B (zh) | 神经网络量化方法及装置以及相关产品 | |
JP7034336B2 (ja) | データを処理するための方法、装置、および関連製品 | |
CN112085182A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112085176B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
JP7146952B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
CN112085187A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN113112009B (zh) | 用于神经网络数据量化的方法、装置和计算机可读存储介质 | |
JP7060719B2 (ja) | データを処理するための方法、装置、及び関連製品 | |
WO2021036892A1 (zh) | 循环神经网络的量化参数调整方法、装置及相关产品 | |
US12001955B2 (en) | Data processing method, device, computer equipment and storage medium | |
CN112085150A (zh) | 量化参数调整方法、装置及相关产品 | |
WO2021036412A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112085151A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
WO2021169914A1 (zh) | 数据量化处理方法、装置、电子设备和存储介质 | |
CN112085177A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20220222041A1 (en) | Method and apparatus for processing data, and related product | |
CN113111997A (zh) | 用于神经网络数据量化的方法、装置和计算机可读存储介质 | |
CN113112008A (zh) | 用于神经网络数据量化的方法、装置和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201130 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220426 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220830 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220921 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7146953 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |