JP7166704B2 - ニューラルネットワークにおける量子化パラメータの確定方法および関連製品 - Google Patents
ニューラルネットワークにおける量子化パラメータの確定方法および関連製品 Download PDFInfo
- Publication number
- JP7166704B2 JP7166704B2 JP2020219685A JP2020219685A JP7166704B2 JP 7166704 B2 JP7166704 B2 JP 7166704B2 JP 2020219685 A JP2020219685 A JP 2020219685A JP 2020219685 A JP2020219685 A JP 2020219685A JP 7166704 B2 JP7166704 B2 JP 7166704B2
- Authority
- JP
- Japan
- Prior art keywords
- iteration
- data
- target
- quantization
- bit width
- 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.)
- Active
Links
- 238000013139 quantization Methods 0.000 title claims description 2178
- 238000013528 artificial neural network Methods 0.000 title claims description 827
- 230000000875 corresponding effect Effects 0.000 claims description 1186
- 238000012795 verification Methods 0.000 claims description 784
- 238000000034 method Methods 0.000 claims description 659
- 238000012549 training Methods 0.000 claims description 218
- 230000008859 change Effects 0.000 claims description 112
- 230000015654 memory Effects 0.000 claims description 101
- 238000010200 validation analysis Methods 0.000 claims description 65
- 230000002596 correlated effect Effects 0.000 claims description 39
- 238000004590 computer program Methods 0.000 claims description 28
- 230000003247 decreasing effect Effects 0.000 claims description 26
- 230000008569 process Effects 0.000 description 178
- 238000013473 artificial intelligence Methods 0.000 description 146
- 238000004364 calculation method Methods 0.000 description 112
- 210000002569 neuron Anatomy 0.000 description 84
- 238000012545 processing Methods 0.000 description 75
- 238000010586 diagram Methods 0.000 description 61
- 230000006870 function Effects 0.000 description 41
- 238000007667 floating Methods 0.000 description 29
- 230000005540 biological transmission Effects 0.000 description 24
- 238000009826 distribution Methods 0.000 description 20
- 230000001976 improved effect Effects 0.000 description 19
- 230000002829 reductive effect Effects 0.000 description 18
- 230000001537 neural effect Effects 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 13
- 210000002364 input neuron Anatomy 0.000 description 12
- 230000004044 response Effects 0.000 description 12
- 230000000737 periodic effect Effects 0.000 description 11
- 238000013500 data storage Methods 0.000 description 10
- 230000007423 decrease Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 10
- 238000012544 monitoring process Methods 0.000 description 10
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 9
- 238000005457 optimization Methods 0.000 description 9
- 230000004913 activation Effects 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 8
- 230000014509 gene expression Effects 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- 230000000670 limiting effect Effects 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 241000282994 Cervidae Species 0.000 description 4
- 230000001276 controlling effect Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 239000002245 particle Substances 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000005481 NMR spectroscopy Methods 0.000 description 3
- 241000209094 Oryza Species 0.000 description 3
- 235000007164 Oryza sativa Nutrition 0.000 description 3
- 238000007792 addition Methods 0.000 description 3
- 230000003416 augmentation Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 235000009566 rice Nutrition 0.000 description 3
- 230000000630 rising effect Effects 0.000 description 3
- 239000004576 sand Substances 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000002604 ultrasonography Methods 0.000 description 3
- 235000021419 vinegar Nutrition 0.000 description 3
- 239000000052 vinegar Substances 0.000 description 3
- 238000005406 washing Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013529 biological neural network Methods 0.000 description 2
- 235000013339 cereals Nutrition 0.000 description 2
- 238000005094 computer simulation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000013178 mathematical model Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 210000004205 output neuron Anatomy 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000006641 stabilisation Effects 0.000 description 2
- 238000011105 stabilization Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 241001279686 Allium moly Species 0.000 description 1
- 101100006960 Caenorhabditis elegans let-2 gene Proteins 0.000 description 1
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 101150013240 bpt gene Proteins 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- MKHLSGKJYGBQLI-UHFFFAOYSA-N ethoxy-(2-ethylsulfanylethylsulfanyl)-methoxy-sulfanylidene-$l^{5}-phosphane Chemical compound CCOP(=S)(OC)SCCSCC MKHLSGKJYGBQLI-UHFFFAOYSA-N 0.000 description 1
- BTCSSZJGUNDROE-UHFFFAOYSA-N gamma-aminobutyric acid Chemical compound NCCCC(O)=O BTCSSZJGUNDROE-UHFFFAOYSA-N 0.000 description 1
- 230000036039 immunity Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000002002 slurry Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 210000002784 stomach Anatomy 0.000 description 1
- 230000008093 supporting effect Effects 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/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1476—Error detection or correction of the data by redundancy in operation in neural 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic 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/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
- 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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
よび関連製品に関する。
ラルネットワークの構造と機能を模倣する数学モデルまたは計算モデルである。サンプル
データでのトレーニングを通じて、ニューラルネットワークはネットワークの重みと閾値
を継続的に修正して、誤差関数を負の勾配方向に沿って低下させ、期待される出力に近似
させる。これは広く使用されている識別および分類モデルであり、主に関数近似、モデル
の識別および分類、データ圧縮、および時系列予測に使用される。
存のニューラルネットワークにおけるデータはより多くのビットを占有することで、精度
は保証されるが、より多くのストレージスペースと高い処理帯域幅が必要になるため、コ
ストが増加される。
製品を提供する。
法は、
量子化すべきデータが量子化処理された後の量子化後のデータのビット幅を示す、前記
量子化すべきデータに対して前記量子化処理を実行するためのデータビット幅を取得する
ことと、
て、前記1組の量子化すべきデータを、前記データビット幅を持つ1組の量子化後のデー
タに変換することと、
前記1組の量子化すべきデータを前記1組の量子化後のデータと比較し、前記データビ
ット幅に関連する量子化誤差を確定することと、
確定された前記量子化誤差に基づいて前記データビット幅を調整することとを含む、こ
とを特徴とする。
置はメモリおよびプロセッサを含み、前記メモリに、プロセッサで実行できるコンピュー
タプログラムが記憶され、前記プロセッサはコンピュータプログラムを実行すると、上記
の方法のステップが実施される。
ュータ可読記憶媒体を提供し、前記コンピュータプログラムは、プロセッサによって実行
されると、上記の方法のステップが実施される。
置は、
量子化すべきデータに対して前記量子化処理を実行するためのデータビット幅を取得する
ように構成される取得ユニットと、
前記データビット幅に基づいて1組の量子化すべきデータに対して量子化処理を実行し
て、前記1組の量子化すべきデータを前記データビット幅を持つ1組の量子化後のデータ
に変換するように構成される量子化ユニットと、
前記1組の量子化すべきデータを前記1組の量子化後のデータと比較し、前記データビ
ット幅に関連する量子化誤差を確定するように構成される確定ユニットと、
確定された前記量子化誤差に基づいて前記データビット幅を調整するように構成される
調整ユニットとを含む。
ータビット幅を確定する。このデータビット幅は、人工知能プロセッサがニューラルネッ
トワーク演算過程におけるデータを量子化し、高精度のデータを低精度の固定小数点数に
変換するためのものであり、これにより、ニューラルネットワーク演算過程に係るデータ
ストレージが占めるスペースサイズを減少できる。例えば、float32をfix8に
変換すると、モデルパラメータを4分の1に減少することができる。データストレージス
ペースが小さくなるため、ニューラルネットワークの配置に使用されるスペースが小さく
なり、人工知能プロセッサのチップにおけるオンチップメモリがより多くのデータを記憶
できるようになり、人工知能プロセッサのチップによるデータのアクセスが減少され、コ
ンピューティングパフォーマンスが向上する。
単に説明する。明らかに、以下の説明における図面は、本開示のいくつかの実施形態のみ
に関連し、本開示を限定するものではない。
明確かつ完全に説明される。明らかに、記載された実施形態は、本開示の実施形態の一部
であるが、すべての実施形態ではない。本開示の実施形態に基づいて、創造的な作業なし
に当業者によって得られる他のすべての実施形態は、本開示の保護範囲に含まれる。
第4」等の用語は、特定の順序を説明するのではなく、異なる対象を区別するためのもの
であることを理解されたい。本開示の明細書およびアイテムで使用される「含む」および
「含む」という用語は、記載された特徴、全体、ステップ、操作、要素および/またはコ
ンポーネントの存在を示すが、1つまたは複数の他の特徴、全体、ステップ、操作、要素
、コンポーネント、および/またはそれらのコンビネーションの存在または追加を除外し
ない。
おり、本開示を限定することを意図するものではないことも理解されたい。本開示の明細
書およびアイテムで使用されているように、文脈が他の状況を明確に示さない限り、単数
形「一」、「一つ」および「この」は複数形を含むことを意図している。本開示の明細書
およびアイテムで使用される「および/または」という用語は、関連してリストされた1
つまたは複数の項目の任意の組み合わせおよびすべての可能な組み合わせを指し、これら
の組み合わせを含むことをさらに理解されたい。
て、「…時」または「…すると」または「…確定したことに応じて」または「…検出した
ことに応じて」と解釈することができる。同様に、「確定すれば」または「[説明される
条件またはイベント]を検出すれば」という短句は、文脈に基づいて「確定したら」、「
確定することに応じて」、「[説明される条件またはイベント]を検出したら」、または
「[説明される条件またはイベント]を検出したことに応じて」を意味すると解釈されて
もよい。
(mantissa)の3つの部分で構成される。ここでは、共有指数とは、指数が量子
化する必要のある実数の集合内で共有されることを意味する。符号ビットは、固定小数点
数が正または負であることを示す。仮数は、固定小数点数の有効桁数、つまり精度を決め
る。8ビットの固定小数点数のタイプを例にとると、その数値計算方法は次のとおりであ
る:
value=(-1)signX(mantissa)X2(ecponent-1
27)
進数の12.34は式1で表されると、12.34=1*101+2*100+3*10
-1+4*10-2となる。小数点の左側は10の正の冪乗としてカウントされ、小数点
の右側は10の負の冪乗としてカウントされる。同様に、2進数の小数もこのように表す
ことができ、小数点の左側は2の正の冪乗であり、小数点の右側は2の負の冪乗としてカ
ウントされる。10進数の小数5.75は、2進数の小数の101.11で表すことがで
き、この2進数の小数は、5.75=1*22+0*21+1*20+1*2-1+1*
2-2 と表す。
過程において、数値のサイズが固定小数点数で表すことができる範囲を超える場合、「オ
ーバーフロー」と呼ばれる。
:相対エントロピー(relative entropy)、情報ダイバージェンス(i
nformation divergence)、情報利得(information
gain)とも呼ばれる。KLダイバージェンスは、2つの確率分布PとQの間の差の非
対称性の測度である。KLダイバージェンスは、Qベースのコーディングを使用してPか
らのサンプルをエンコードするために平均して必要な追加ビット数の測度である。通常、
Pはデータの真の分布を表し、Qはデータの理論分布、モデル分布、またはPの近似分布
を表す。
スを節約する固定小数点数に変換する過程であり、高精度の数値を固定小数点数に変換す
る過程は、精度のある程度の低下を引き起こす。
ークの量子化パラメータの確定方法および関連製品の具体的な実施形態を詳細に説明する
。
ラルネットワークの構造と機能を模倣する数学モデルである。ニューラルネットワークは
、多数のニューロンによって接続され計算を行う。したがって、ニューラルネットワーク
は、相互に接続された多数のノード(または「ニューロン」と呼ばれる)で構成される計
算モデルである。各ノードは、活性化関数(activation function)
と呼ばれる特定の出力関数を表す。2つごとのニューロン間の接続は、この接続を通過す
る信号の重み付き値を表し、重みと呼ばれ、これはニューラルネットワークの記憶に相当
する。ニューラルネットワークの出力は、ニューロン間の接続方法、重み、活性化関数に
よって異なる。ニューラルネットワークにおいて、ニューロンはニューラルネットワーク
の基本単位である。特定の数の入力とオフセットを取得し、信号(値)が到着すると、重
みと乗算される。接続とは、ニューロンを別の層または同じ層内の別のニューロンに接続
することであり、接続にはそれに関連付けられた重みが伴う。さらに、オフセットはニュ
ーロンへの追加入力であり、常に1であり、独自の接続重みを持つ。これにより、すべて
の入力がヌル(すべて0)の場合でも、ニューロンを活性化することができる。
ニューラルネットワークは単なる線形関数であり、すると、単一のニューロンよりも強力
ではない。ニューラルネットワークの出力結果が0から1の間にする場合、たとえば猫と
犬の識別の場合、0に近い出力は猫と見なされ、1に近い出力は犬と見なされる。この目
標を達成するために、sigmoid活性化関数などの活性化関数がニューラルネットワ
ークに導入される。この活性化関数に関しては、その戻り値が0から1の間の数値である
ことを知っておくだけでよい。したがって、活性化関数はニューラルネットワークに非線
形性を導入するためであり、ニューラルネットワークの演算結果をより狭い範囲に絞る。
実際、活性化関数がどのように表現されるかは重要ではない。重要なことは、いくつかの
重みによって一つの非線形関数をパラメータ化することであり、これらの重みを変更する
ことでこの非線形関数を変更することができる。
ューラルネットワークには、入力層、隠れ層、出力層の3つの層があり、図1に示す隠れ
層には5つの層がある。ここで、ニューラルネットワークの一番左端の層は入力層と呼ば
れ、入力層のニューロンは入力ニューロンと呼ばれる。入力層はニューラルネットワーク
の第1層であり、必要な入力信号(値)を受け入れて次の層に伝送する。通常、入力層は
入力信号(値)に対して操作を行わなく、関連する重みとオフセットもない。図1に示す
ニューラルネットワークには、4つの入力信号x1、x2、x3、x4がある。
まれている。図1に示すニューラルネットワークには、5つの隠れ層がある。第1隠れ層
には4つのニューロン(ノード)があり、第2層には5つのニューロンがあり、第3層に
は6つのニューロンがあり、第4層には4つのニューロンがあり、第5層には3つのニュ
ーロンがある。最後に、隠れ層はニューロンの演算値を出力層に伝送する。図1に示すニ
ューラルネットワークは、5つの隠れ層における各ニューロンを完全に接続する。つまり
、各隠れ層の各ニューロンは、次の層の各ニューロンに接続される。すべてのニューラル
ネットワークの隠れ層が完全に接続されているわけではないことに注意されたい。
ューロンは出力ニューロンと呼ばれる。出力層は、最後の隠れ層からの出力を受け取る。
図1に示すニューラルネットワークでは、出力層には3つのニューロンと3つの出力信号
y1、y2、およびy3がある。
数のサンプルデータ(入力と出力を含む)が提供され、トレーニングが完了した後、トレ
ーニングされたニューラルネットワークが取得される。このニューラルネットワークは、
将来の実際の環境での入力に対して正しい出力を提供できる。
要がある。損失関数は、特定のタスクを実行する際のニューラルネットワークを評価する
パフォーマンス関数である。いくつかの実施形態では、損失関数は、以下のように得るこ
とができる:特定のニューラルネットワークをトレーニングする過程において、各サンプ
ルデータをニューラルネットワークに沿って伝送し、出力値を得る。次にこの出力値と期
待値との減算を行い、その差が二乗される。このように計算された損失関数は、予測値と
真の値の間の差別である。ニューラルネットワークをトレーニングする目的は、この差別
または損失関数の値を減少することである。いくつかの実施形態では、損失関数は次のよ
うに表すことができる:
がある。明らかに、初期化されたニューラルネットワークは良い結果を提供しない。トレ
ーニング過程では、悪いニューラルネットワークから始めたとすると、トレーニングを通
じて、高精度のネットワークを取得できる。
、入力層から隠れ層、最後に出力層への信号の順方向処理である。第2段階は、出力層か
ら隠れ層、最後に入力層への逆方向伝播勾配であり、勾配によって、ニューラルネットワ
ークの各層の重みとオフセットが順番に調整される。
わゆる予測値の出力はニューラルネットワークの出力層から取得される。入力値がニュー
ラルネットワークの入力層に提供されるとき、何の操作もしない。隠れ層では、第2隠れ
層が第1隠れ層から予測中間結果値を取得し、計算操作および活性化操作を実行してから
、取得した中間予測結果値を次の隠れ層に伝送する。後続の層で同じ操作を実行し、最後
にニューラルネットワークの出力層で出力値を取得する。
実際の出力値と比較され、対応する誤差値が取得される。逆方向伝播は微分学のチェーン
ルールを使用する。チェーンルールでは、最初にニューラルネットワークの最後の層に対
応する重みの誤差値の導関数が計算される。これらの導関数を勾配と呼び、次にこれらの
勾配を使用して、ニューラルネットワークの最後から第2層の勾配を計算する。ニューラ
ルネットワークの各重みに対応する勾配が得られるまで、この過程を繰り返す。最後に、
ニューラルネットワークの各重みから対応する勾配を差し引き、重みが1回更新され、誤
差値を減少させる目的を達成する。
ークをロードすることである。微調整過程は、トレーニング過程と同じ、2つの段階に分
かれている。第1段階は信号の順方向処理で、第2段階は逆方向の伝搬勾配であり、トレ
ーニングされたニューラルネットワークの重みが更新される。トレーニングと微調整の違
いは、トレーニングは初期化されたニューラルネットワークをランダムに処理し、ニュー
ラルネットワークを最初からトレーニングすることであるが、微調整はそうではないこと
である。
ークに対して信号の順方向処理および対応する誤差の逆方向伝播過程を実行するたびに、
ニューラルネットワークの重みが勾配を使用して1回更新される。これは1回の反復(i
teration)と呼ばれる。精度が期待に応えるニューラルネットワークを取得する
には、トレーニング過程に非常に大きなサンプルデータセットが必要である。この場合、
サンプルデータセットを一度コンピュータに入力することはできない。したがって、この
問題を解決するには、サンプルデータセットを複数のブロックに分割し、各ブロックをコ
ンピュータに伝送する必要がある。データセットの各ブロックが順方向処理された後、そ
れに応じてニューラルネットワークの重みが一回更新される。一つの完全なサンプルデー
タセットがニューラルネットワークによって順方向処理を1回実行され、かつ対応する重
みの更新を1回返す場合、この過程は周期(epoch)と呼ばれる。実際には、完全な
データセットをニューラルネットワークで1回伝送するだけでは不十分であり、完全なデ
ータセットを同じニューラルネットワークで複数回伝送する必要がある。つまり、最終的
に期待される精度でニューラルネットワークを取得するには、複数の周期が必要である。
ほど優れており、精度が高いほど優れていることが望まれる。ニューラルネットワークに
おけるデータは浮動小数点数などの高精度のデータフォーマットで表現されるため、トレ
ーニングや微調整の過程において、関連するデータはすべて高精度のデータフォーマット
であり、続いてトレーニングされたニューラルネットワークが量子化される。量子化され
る対象がニューラルネットワーク全体の重みで、かつ量子化された重みがすべて8ビット
の固定小数点数であるとすると、ニューラルネットワークには接続が数百万もあることが
多いため、ほとんどすべてのスペースがニューロンの接続の重みに占められている。それ
に、これらの重みはすべて異なる浮動小数点数である。各層の重みは、(-3.0、3.
0)などの特定の区間の正規分布になる傾向がある。ニューラルネットワークの各層の重
みに対応する最大値と最小値が保存され、各浮動小数点値は8ビットの固定小数点数で表
される。ここで、最大値と最小値の範囲内の区間で256の量子化間隔に線形に分割され
、各量子化間隔は8ビットの固定小数点数で表される。例えば、区間(-3.0、3.0
)では、バイト0は-3.0を表し、バイト255は3.0を表す。このように類推する
と、バイト128は0を表す。
ンピュータアーキテクチャによれば、浮動小数点数の演算表現規則、固定小数点数の演算
表現規則に基づき、同じ長さの固定小数点演算と浮動小数点演算については、浮動小数点
演算の計算モードはより複雑であり、浮動小数点演算ユニットを形成するには、より多く
のロジック装置が必要である。このように、体積に関しては、浮動小数点演算ユニットの
体積は固定小数点演算ユニットの体積よりも大きくなる。さらに、浮動小数点演算ユニッ
トは、処理にはより多くのリソースを消費する必要があるため、固定小数点演算と浮動小
数点演算の間の電力消費ギャップは通常、オーダー的である。つまり、浮動小数点演算器
が占めるチップ面積と消費電力は、固定小数点演算器の何倍にもなる。
あるが、固定の小数点位置が固定桁数の整数部と小数部を確定するため、非常に大きい数
や非常に小さい数を同時に表現することができず、オーバーフローが発生する可能性があ
る。
る場合、主に監視付き学習を含むニューラルネットワークでは、浮動小数点演算のみがト
レーニング時の僅かなインクリメントを記録およびキャプチャ可能であるため、浮動小数
点演算器が通常好まれる。そのため、如何にして人工知能プロセッサのチップ面積や消費
電力を増加することなく、チップのトレーニングするための計算能力を大幅に向上させる
ことは、早急に解決する必要のある問題である。
合、実際のフィードバックによれば、逆伝播勾配を処理するためには、8ビットよりも大
きい固定小数点数を使用する必要があるため、低ビット幅で表される定点数を使用してト
レーニングを実行する過程は非常に複雑である。浮動小数点演算ユニットを固定小数点演
算ユニットに置き換えて、固定小数点演算の高速性を実現し、人工知能プロセッサのチッ
プのピーク計算能力を向上させるとともに演算に必要な浮動小数点演算の精度を満たす方
法は、この明細書で解決される技術的な問題である。
ズに対する耐性が高いことである。画像内のオブジェクトを識別することを検討する場合
、ニューラルネットワークは主なノイズを無視して重要な類似点に焦点を合わせることが
できる。この機能は、ニューラルネットワークが低精度の計算をノイズ源として、記憶情
報が少ない数値形式でも正確な予測結果を生成できることを意味する。低精度のトレーニ
ングや微調整を行うには、データのオーバーフローを改善できるだけでなく、目標区間範
囲内の0に近いデータをより適切に表現できるユニバーサルなデータ表現を見つける必要
がある。したがって、このデータ表現は、トレーニングまたは微調整過程とともに調整で
きる適応性が必要である。
ネットワークの量子化パラメータの確定方法のフローチャートである。図2に示す技術案
によって確定された量子化パラメータは、量子化すべきデータへのデータ表現に利用され
、量子化された固定小数点数を確認する。量子化された固定小数点数は、ニューラルネッ
トワークのトレーニング、微調整、または推理に使用される。この方法には次のステップ
が含まれる。
果を確定する。ここで、前記量子化すべきデータには、前記ニューラルネットワークのニ
ューロン、重み、勾配、およびオフセットのうち少なくとも1つが含まれる。
ーラルネットワークの各層には、それぞれニューロン、重み、勾配、オフセットの4種類
のデータが含まれる。推理過程では、ニューラルネットワークの各層に、ニューロン、重
み、オフセットの3種類のデータが含まれる。これらのデータは高精度のデータフォーマ
ットで表現されている。本明細書では、例として、高精度のデータとして浮動小数点数を
使用している。例としての浮動小数点数は、網羅的なリストではなく、例の一部のリスト
にすぎないことは明らかである。当業者は、技術案の本質を理解していれば、本開示の技
術案に基づいて他の変形や置換が可能である。たとえば、高精度のデータは、範囲が広く
、最小精度が低く、データビット幅が大きい固定小数点数にすることができる。本技術案
を使用して、データビット幅が小さい固定小数点数に変換できる。ただ、その実現された
機能および達成された技術効果が本開示と類似している限り、本開示の保護範囲に含まれ
るべきである。
ングまたは微調整の過程において、量子化すべきデータには、ニューラルネットワークの
ニューロン、重み、勾配、およびオフセットのうち少なくとも1つが含まれる。推理過程
では、量子化すべきデータには、ニューラルネットワークのニューロン、重み、およびオ
フセットのうち少なくとも1つ含まれている。たとえば、量子化すべきデータが重みであ
るとすると、量子化すべきデータは、ニューラルネットワーク内の特定の層のすべての重
み、またはニューラルネットワーク内の特定の層の重みの一部にすることができる。この
層が畳み込み層の場合、量子化すべきデータは、この畳み込み層におけるチャンネル単位
でのすべての重みまたは重みの一部であってもよく、このチャネルはこの畳み込み層のチ
ャネルのすべてまたは一部である。畳み込み層のみがチャネルの概念を持ち、畳み込み層
では、重みサブ層のみがチャネルの方法で量子化されることを強調する必要がある。
みの二つのデータであることを例として取り上げ、技術案について詳しく説明する。この
ステップでは、目標層の各層のニューロンと重みを個別に統計して、各種の量子化すべき
データの最大値と最小値を取得する。また、各種の量子化すべきデータの絶対値の最大値
も取得できる。ここで、ニューラルネットワークにおける量子化する必要のある層として
の目標層は、1つの層または複数の層にすることができる。1つの層を単位として、各種
の量子化すべきデータの絶対値の最大値は、各種の量子化すべきデータの最大値と最小値
によって確認できる。また、まず各種の量子化すべきデータの絶対値を計算し、絶対値の
計算結果をトラバースして、各種の量子化すべきデータの絶対値の最大値を取得すること
もできる。
データの最大値と最小値によって取得される理由は、量子化のとき、通常の状況では、目
標層の各層の量子化すべきデータに対応する最大値と最小値が保存され、量子化すべきデ
ータの絶対値を計算するために多くのリソースを消費する必要はない。絶対値の最大値は
、保存された量子化すべきデータに対応する最大値と最小値に基づいて直接取得できる。
、対応する量子化パラメータを確定する。ここで、前記量子化パラメータは、人工知能プ
ロセッサがニューラルネットワーク演算過程におけるデータを対応して量子化するための
ものである。
ケース:量子化パラメータは小数点位置パラメータsである。この場合、次の式(1)を
使用して、量子化すべきデータを量子化し、量子化データIXを取得できる。
Ix=round(Fx/2s) (1)
リ表現の値、FXはデータxの量子化前の浮動小数点値、roundは四捨五入の丸め演
算である。このroundの丸め演算に限定されるものではなく、他の丸め演算方法も使
用できることに注意されたい。たとえば、切り上げ、切り下げ、ゼロへの丸めなどの丸め
演算で式(1)のround丸め演算を置き換えてもよい。このとき、nビットの固定小
数点数で浮動小数点数を表せる最大値Aは2 s (2 n-1 -1)であり、nビットの固定
小数点数で量子化すべきデータの数値フィールドにおいて表せる最大値は2s(2n-1
-1)であり、nビットの固定小数点数で量子化すべきデータの数値フィールドにおいて
表せる最小値は-2s(2n-1-1)である。式(1)からわかるように、第1ケース
に対応する量子化パラメータを使用して、量子化すべきデータを量子化すると、量子化間
隔は2sであり、量子化間隔はCで表される。
であるとすると、AはZを含める必要があり、かつZはA/2より大きい必要があるため
、次の式(2)の制約がある。
2s(2n-1-1)>=Z>2s-1(2n-1-1) 式(2)
=ceil(ln(Z/(2n-1-1)))およびA=(2^ceil(ln(Z/(
2n-1-1))))(2n-1-1)が得られる。
(4)を使用して、量子化すべきデータを量子化し、量子化データIxを取得できる。
Ix=round(Fx/f1) 式(4)
ナリ表現の値、Fxはデータxの量子化前の浮動小数点値、roundは四捨五入の丸め
によって実行される丸め演算である。このroundの丸め演算に限定されるものではな
く、他の丸め演算方法も使用できることに注意されたい。たとえば、切り上げ、切り下げ
、ゼロへの丸めなどの丸め演算で式(4)のround丸め演算を置き換えてもよい。式
(4)からわかるように、第2ケースに対応する量子化パラメータを使用して量子化すべ
きデータを量子化するとき、量子化間隔はf1であり、量子化間隔はCで表される。
定の既知の値であり、変更されなくなった場合、2s=TとしかつTを固定値とすると、
nビットの固定小数点数で表せる浮動小数点数の最大値Aは、(2n-1-1)xTであ
る。この場合、最大値Aはデータビット幅nに依存する。このとき、量子化すべきデータ
の数値フィールドにあるすべての数値の絶対値の最大値をZとすると、f 1= Z/(2 n
-1 -1)であり、この場合、Z=(2 n-1 -1)xf 1 である。nビットの固定小数
点数で表せる量子化すべきデータの数値フィールドの最大値が(2 n-1 -1)xf 1 で
あり、nビットの固定小数点数で表せる量子化すべきデータの数値フィールドの最小値が
-(2 n-1 -1)xf 1 である。エンジニアリング応用では、2 s xf 2 を全体として
第1スケーリング係数とした別のケースがある。この場合、独立した小数点位置パラメー
タsは存在しないと見なすことができる。ここでは、f 2 は第2スケーリング係数である
。Zを量子化すべきデータの数値フィールドにあるすべての数値の絶対値の最大値とする
と、f 1= Z/(2 n-1 -1)であり、このとき、Z=(2 n-1 -1)xf 1 である
。nビットの固定小数点数で表せる量子化すべきデータの数値フィールドの最大値が(2
n-1 -1)xf 1 であり、nビットの固定小数点数で表せる量子化すべきデータの数値
フィールドの最小値が-(2 n-1 -1)×f 1 である。
2 である。この場合、次の式(6)を使用して、量子化すべきデータを量子化し、量子化
データIxを取得できる。
Ix=round(Fx/(2sxf2)) 式(6)
ここでは、sは小数点位置パラメータ、f2は第2スケーリング係数で、f2=Z/(
2s(2n-1-1))であり、Ixはデータxの量子化後のnビットのバイナリ表現の
値、FXはデータx量子化前の浮動小数点値、roundは四捨五入の丸め演算である。
このroundの丸め演算に限定されるものではなく、他の丸め演算方法も使用できるこ
とに注意されたい。たとえば、切り上げ、切り下げ、ゼロへの丸めなどの丸め演算で式(
6)のround丸め演算を置き換えてもよい。量子化すべきデータの数値フィールドで
、nビットの固定小数点数で表せる最大値Aは2s(2n-1-1)である。式(6)か
らわかるように、第3ケースに対応する量子化パラメータを使用して量子化すべきデータ
を量子化するとき、量子化間隔は2sxf2であり、量子化間隔はCで表される。
る。このとき、式(2)によって、次の式が得られる。
1>=Z/(2s(2n-1-1))>1/2、即ち1>=Z/A>1/2、1>=f
2>1/2
く正確に表現できる。f2=1の場合、式(6)および式(1)は、s=ceil(ln
(Z/(2n-1-1)))である。nビットの固定小数点数で表せる、量子化すべきデ
ータの数値フィールドの最大値が(2n-1-1)x2sxf2であり、nビットの固定
小数点数で表せる、量子化すべきデータの数値フィールドの最小値が-(2n-1-1)
x2sxf2である。
データの数値フィールドは、「0」を対称中心として分布されている。Zは、量子化すべ
きデータの数値フィールド内のすべての浮動小数点数の絶対値の最大値である。図3は、
Aはnビットの固定小数点数で表すことができる浮動小数点数の最大値である。浮動小数
点数Aから固定小数点数2n-1-1への変換はである。オーバーフローを回避するには
、AはZを含める必要がある。実際には、ニューラルネットワーク演算過程での浮動小数
点データは一定の間隔で正規分布する傾向があるが、対称中心が「0」の分布を必ずしも
満たすとは限らない。このとき、固定小数点数で表すとオーバーフローが発生しやすくな
る。この状況を改善するために、図4に示すように、オフセットが量子化パラメータに導
入される。図4では、量子化すべきデータの数値フィールドは、「0」を中心として対称
的に分布していない。Z min は、量子化すべきデータの数値フィールドのすべての浮動
小数点数の最小値であり、Z max は量子化すべきデータの数値フィールドのすべての浮
動小数点数の最大値である。PはZ min ~Z max の間の中心点であり、全体として量
子化すべきデータの数値フィールドをシフトして、変換後に量子化すべきデータの数値フ
ィールドが「0」を対称中心として分散されるようにし、変換後に量子化すべきデータの
数値フィールドは絶対値の最大値はZである。図4からわかるように、オフセットは点「
0」から点「P」までの水平距離であり、この距離はオフセットOと呼ばれている。ここ
では、0=(Z max +Z min )/2で、Z=(Z max -Z min )/2である。
れる。第4ケース:量子化パラメータには、小数点位置パラメータとオフセットが含まれ
る。この場合、次の式(8)を使用して、量子化すべきデータを量子化し、量子化データ
Ixを取得できる。
Ix=round((Fx-O)/2s) 式(8)
/2で、I x はデータxの量子化後のnビットのバイナリ表現の値、FXはデータx量子
化前の浮動小数点値、roundは四捨五入の丸め演算である。このroundの丸め演
算に限定されるものではなく、他の丸め演算方法も使用できることに注意されたい。たと
えば、切り上げ、切り下げ、ゼロへの丸めなどの丸め演算で式(8)のround丸め演
算を置き換えてもよい。このとき、nビットの固定小数点数で浮動小数点数を表せる最大
値Aは2s(2n-1-1)であり、すると、nビットの固定小数点数で量子化すべきデ
ータの数値フィールドにおいて表せる最大値は2 s (2 n-1 -1)+Oであり、nビッ
トの固定小数点数で量子化すべきデータの数値フィールドにおいて表せる最小値は-2s
(2n-1-1)+Oである。式(8)から分かるように、第4ケースに対応する量子化
パラメータを使用して量子化すべきデータを量子化すると、量子化間隔は2sであり、量
子化間隔はCで表される。
ケース:量子化パラメータには、第1スケーリング係数f1とオフセットOが含まれる。
この場合、次の式(10)を使用して、量子化すべきデータを量子化し、量子化データI
xを取得できる。
Ix=round((Fx-O)/f1) 式(10)
nビットのバイナリ表現の値、Fxはデータ量子化前の浮動小数点値であり、round
は四捨五入の丸め演算である。このroundの丸め演算に限定されるものではなく、他
の丸め演算方法も使用できることに注意されたい。たとえば、切り上げ、切り下げ、ゼロ
への丸めなどの丸め演算で式(10)のround丸め演算を置き換えてもよい。このと
き、小数点位置パラメータsが既知の固定値であり、変化しなくなり、2s=Tとすると
、Tを固定値とするという状況がある。次に、nビットの固定小数点数で表せる浮動小数
点数の最大値Aは(2n-1-1)xTである。この場合、最大値Aはデータビット幅n
に依存する。このとき、量子化すべきデータの数値フィールドの全ての数値の絶対値の最
大値をZとして設定すると、f1=Z/(2n-1-1)となり、Z=(2n-1-1)
xf1となる。nビットの固定小数点数で表せる量子化すべきデータの数値フィールドの
最大値が(2n-1-1)xf1であり、nビットの固定小数点数で表せる量子化すべき
データの数値フィールドの最小値が-(2n-1-1)xf1である。エンジニアリング
応用では、2sxf2は全体として第1スケーリング係数として別のケースがある。この
場合、独立した小数点位置パラメータは存在しないと見なすことができる。f2は第2ス
ケーリング係数である。量子化すべきデータの数値フィールドにあるすべての数値の絶対
値の最大値をZとすると、f1=Z/(2n-1-1)であり、このとき、Z=(2n-
1-1)xf1とする。nビットの固定小数点数で表せる量子化すべきデータの数値フィ
ールドの最大値が(2n-1-1)xf1+Oであるが、nビットの固定小数点数で表せ
る量子化すべきデータの数値フィールドの最小値が-(2n-1-1)xf1+Oである
。
化すべきデータを量子化すると、量子化間隔はf1であり、量子化間隔はCである。
第6ケース:量子化パラメータには、小数点位置パラメータ、第2スケーリング係数f2
、およびオフセットOが含まれる。この場合、次の式(12)を使用して、量子化すべき
データを量子化し、量子化データIxを取得できる。
Ix=round((Fx-O)/(2sxf2)) 式(12)
で、f2=Z/(2s(2n-1-1))かつZ=(Z max -Z min )/2であり、
Ixはデータxの量子化後のnビットのバイナリ表現の値、Fxはデータxの量子化前の
浮動小数点値であり、roundは四捨五入の丸め演算である。このroundの丸め演
算に限定されるものではなく、他の丸め演算方法も使用できることに注意されたい。たと
えば、切り上げ、切り下げ、ゼロへの丸めなどの丸め演算で式(12)のround丸め
演算を置き換えてもよい。nビットの固定小数点数で表せる量子化すべきデータの数値フ
ィールドでの最大値Aは2s(2n-1-1)である。式(12)からわかるように、第
6ケースに対応する量子化パラメータを使用して量子化すべきデータを量子化すると、量
子化間隔は2sxf2であり、量子化間隔はCで表される。
る。このとき、式(2)によって、次の式が得られる。
1>=Z/(2s(2n-1-1))>1/2、即ち1>=Z/A>1/2、1>=f
2>1/2
く正確に表現できる。f2=1の場合、s=ceil(ln((Z max -Z min /2
(2 n-1 -1)))である。nビットの固定小数点数で表せる量子化すべきデータの数
値フィールドの最大値が(2n-1-1)x2sxf2+Oであるが、nビットの固定小
数点数で表せる量子化すべきデータの数値フィールドの最小値が-(2n-1-1)x2
sxf2+Oである。
ぎない。量子化パラメータのタイプは、異なる実施形態における上記の説明とは異なる場
合がある。式(1)~式(13)からわかるように、小数点位置パラメータとスケーリン
グ係数はすべてデータビット幅に関連している。データビット幅が異なると、小数点位置
パラメータとスケーリング係数が異なるため、量子化の精度に影響する。トレーニングま
たは微調整の過程において、特定の反復(iterations)の回数範囲内で、同じ
データ幅の量子化を使用しても、ニューラルネットワーク演算の全体的な精度にはほとん
ど影響しない。特定の回数の反復を超えて、同じデータビット幅の量子化の使用はトレー
ニングまたは微調整の精度需要を満たすことができない。これには、トレーニングまたは
微調整過程とともにデータビット幅nを調整する必要がある。簡単にすると、データビッ
ト幅nを手動で設定できる。異なる反復の回数範囲で、予め設定された対応するデータビ
ット幅nを呼び出す。ただし、上記のように、低ビット幅で表される固定小数点数を使用
してトレーニングを実行する過程は非常に複雑である。データビット幅を事前に設定する
ような人為的な調整方法は、基本的に実際の応用の需要を満たしていない。
り詳細には、量子化誤差diff bit を閾値と比較し、比較結果を取得する。ここで、
閾値は第1閾値と第2閾値を含み、第1閾値が第2閾値よりも大きい。比較結果には3つ
のケースがある。第1ケースは、量子化誤差diff bit が第1閾値以上のことである
。この場合、データビット幅を増加する。第2ケースは、量子化誤差diff bit が第
2閾値以下のことである。この場合、データビット幅を減少する。第3ケースは、量子化
誤差diff bit が第1閾値と第2閾値の間にあることである。この場合、データビッ
ト幅は変更されない。実際の応用では、第1閾値と第2閾値は、経験値であってもよいし
、可変ハイパーパラメータであってもよい。従来のハイパーパラメータ最適化方法は、第
1閾値と第2閾値に適しており、ハイパーパラメータ最適化案はここでは繰り返されない
。
誤差と誤差閾値の差によって調整できることを強調する必要がある。データビット幅は、
可変な調整ステップ長さによって、データビット幅を調整し、最終的にニューラルネット
ワークの演算過程の実際のニーズに応じて、データビット幅をより長くまたはより短く調
整できる。たとえば、現在の畳み込み層のデータビット幅nは16であり、データビット
幅nは量子化誤差diff bit に応じて12に調整される。つまり、実際の応用では、
データビット幅nを16ではなく12にするたけで、ニューラルネットワークの演算過程
の精度需要を満たすため、精度の許容範囲内で固定小数点の演算速度を大幅に向上させる
ことができる。これにより、人工知能プロセッサのチップのリソース使用率が向上する。
対応するデータによって確定される。実際の応用では、3つの量子化誤差確定方法があり
、それらはすべて本技術案に応用できる。第1方式:量子化間隔、量子化後のデータの数
、および量子化前の対応するデータによって、式(14)によって量子化誤差を確定する
。
diffbit=ln(C*2-1*m/Σi|Fi|)
式(14)
べきデータの数、Fiは量子化すべきデータに対応する浮動小数点値、iは量子化すべき
データセット内のデータの添え字である。
ストではないことを強調すべきである。当業者は、本開示の技術案の本質から逸脱するこ
となく、本開示の技術案に基づいて、他の変形または置換を生成する可能性があり、量子
化後のデータおよび量子化前の対応するデータに基づいて量子化誤差を確定することをサ
ポートする変形式であれば、それによる機能および技術の効果が本開示のものと類似して
いる限り、すべて本開示の保護範囲に属するものである。
ークの重みデータの変動幅の第1グラフである。図5bは、トレーニング過程におけるニ
ューラルネットワークの重みデータの変動幅の第2グラフである。図5aおよび5bでは
、横軸は反復回数を表し、縦軸は対数を取った後の重みの最大値を表す。図5aに示され
る重みデータ変動幅曲線は、ニューラルネットワークの任意の畳み込み層の同じ周期(e
poch)における異なる反復に対応する重みデータの変動状況を示している。図5bで
は、conv0層は重みデータ変動幅曲線Aに対応し、conv1層は重みデータ変動幅
曲線Bに対応し、conv2層は重みデータ変動幅曲線Cに対応し、conv3層は重み
データ変動幅曲線Dに対応し、conv4は重みデータ変動幅曲線eに対応する。図5a
と図5bからわかるように、同じ周期(epoch)で、トレーニングの初期段階では、
各反復での重み変動幅が比較的大きい。トレーニングの中期および後期では、各反復での
重みの変動幅はそれほど大きくならない。この場合、トレーニングの中期および後期では
、各反復の前後で重みデータがほとんど変化しないため、各反復に対応する層の重みデー
タは、特定の反復間隔内で類似性があり、ニューラルネットワークトレーニング過程では
、各層に係るデータ量子化のとき、前の反復のときに対応する層の量子化で使用されたデ
ータビット幅を使用できる。ただし、トレーニングの初期段階では、各反復の前後で重み
データが比較的大きく変化するため、量子化に必要な浮動小数点演算の精度を満たすため
に、トレーニング初期段階の各反復において、前の反復のときに対応する層の量子化時に
使用したデータビット幅を使用して、現在反復の対応する層の重みデータを量子化するか
、現在の層のプリセットデータビット幅nに基づいて現在の層の重みデータを量子化して
、量子化された固定小数点数を取得する。量子化された重みデータと量子化前の対応する
重みデータによって量子化誤差diffbitを確定する。量子化誤差diffbitと
閾値の比較結果によって、前の反復のとき、対応する層の量子化に使用されたデータビッ
ト幅n、または現在の層のプリセットのデータビット幅nを調整し、調整後データビット
幅が現在反復の対応する層の重みデータの量子化に応用される。さらに、トレーニングま
たは微調整の過程では、ニューラルネットワークの各層間の重みデータは互いに独立して
おり、類似性はない。重みデータには類似性がないため、各層間のニューロンデータも互
いに独立しており、類似性はない。したがって、ニューラルネットワークのトレーニング
または微調整過程では、ニューラルネットワークの各反復における各層のデータビット幅
は、対応するニューラルネットワーク層にのみ応用できる。
過程において、ニューロンデータと勾配データにそれぞれ対応するデータビット幅も同じ
であり、ここでは繰り返さない。
タは互いに独立しており、類似性はない。重みデータには類似性がないため、各層間のニ
ューロンデータも互いに独立しており、類似性はない。したがって、ニューラルネットワ
ークの推理過程では、ニューラルネットワークの各層のデータビット幅が対応する層に応
用される。実際の応用では、推理過程で毎回入力されるニューロンデータは同様ではない
か、類似していない可能性があり、しかも、ニューラルネットワークの各層間の重みデー
タは互いに独立しているため、ニューラルネットワークの各隠れ層の入力ニューロンデー
タは類似していない。量子化のとき、上位層の入力ニューロンデータで使用されるデータ
ビット幅は、現在の層の入力ニューロンデータには適していない。これに基づいて、量子
化に必要な浮動小数点演算の精度を満たすために、推理のとき、前の層の入力ニューロン
データの量子化で使用されたデータビット幅を使用して現在の層の入力ニューロンデータ
を量子化するか、または現在の層のプリセットデータのビット幅nによって現在の層の入
力ニューロンデータを量子化して、量子化された固定小数点数を取得する。量子化前の入
力ニューロンデータとそれに対応する量子化された入力ニューロンデータによって量子化
誤差diffbitを確定し、量子化誤差diffbitと閾値の比較結果によって、前
の層の入力ニューロンデータを量子化するときに使用されたデータビット幅はnまたは現
在の層のプリセットデータビット幅nを調整し、調整後データビット幅を現在の層の入力
ニューロンデータの量子化に応用する。重みデータに対応するデータビット幅も同じであ
り、ここでは繰り返さない。
内において、トレーニング初期段階で、各反復の重みが比較的大きく変化する。トレーニ
ングの中期および後期では、各反復の前後の重みデータの変動幅が大きくないため、各反
復の対応する層の重みデータは特定の反復間隔内で類似性があり、このように量子化する
とき、現在反復の各層のデータは、前の反復の対応する層の対応するデータの量子化パラ
メータを流用することができ、トレーニングの中期および後期の段階で、反復するたびに
改めて量子化パラメータを確認する必要がなく、ただトレーニングの初期段階の各反復の
各層のみで量子化パラメータを確認するだけでよい。これにより、依然としてニューラル
ネットワーク演算に必要な浮動小数点操作の精度を満たし、量子化の効率を大幅に向上さ
せる。更に、トレーニングまたは微調整の過程では、ニューラルネットワークの各層間の
重みデータは互いに独立しており、類似性はない。重みデータには類似性がないため、各
層間のニューロンデータも互いに独立しており、類似性はない。したがって、ニューラル
ネットワークのトレーニングまたは微調整過程では、ニューラルネットワークの各反復に
おける各層の量子化パラメータが、対応する層の対応する量子化すべきデータに応用され
る。
調整過程では、ニューロンデータと勾配データにそれぞれ対応する量子化パラメータも同
じであり、ここでは繰り返さない。
タは互いに独立しており、類似性はない。重みデータには類似性がないため、各層間のニ
ューロンデータも互いに独立しており、類似性はない。したがって、ニューラルネットワ
ーク推理過程では、ニューラルネットワークの各層の量子化パラメータが、対応する層の
量子化すべきデータに応用される。たとえば、ニューラルネットワークの現在の層は畳み
込み層である。畳み込み層の量子化すべきデータに基づいて、現在の畳み込み層の量子化
すべきデータの量子化パラメータは、図2に示す技術案によって取得される。この量子化
パラメータは、現在の畳み込み層にのみ適用でき、このニューラルネットワークの他の層
に応用することはできず、他の層が畳み込み層であっても応用しない。
似性に基づいて確定される。データ間に類似性がある場合、データビット幅と量子化パラ
メータを流用できる。データ間に類似性がない場合、データビット幅または量子化パラメ
ータを調整する必要がある。データ間の類似性の測定は、通常、KLダイバージェンスに
よって測定されるが、次の式(17)によっても測定できる。
Absmax(A)≒absmax(B)かつmean(A)≒mean(B) 式(1
7)
AおよびデータBは類似していると確定される。
よび量子化パラメータの流用戦略は、ほんの一例でであり、網羅的なものではないことに
注意されたい。例えば、上記量子化誤差を確認する方法、データビット幅を調整する方法
、データビット幅および量子化パラメータの流用戦略はすべて、ニューラルネットワーク
の微調整過程に適している。また、データ間の類似性の測定に関しては、上記のKLダイ
バージェンスと式(17)の類似性測定方法は単なる例であり、網羅的なものではない。
例えば、ヒストグラムマッチング法、マトリックス分解法、特徴点に基づく画像類似度計
算法、近接測定標準法などがある。当業者が本開示の技術案の本質を理解している状況下
では、本開示の技術案に基づいて他の変形または変形を生じ得るが、達成された機能およ
び技術の効果が本開示のものと類似している限り、すべてが本開示の保護範囲に含まれる
べきである。
ータはあまり変化しないため、各反復の対応する層の重みデータは、特定の反復間隔内で
類似している。本技術案がトレーニングや微調整においてよりよい応用性を高め、人工知
能プロセッサチップのリソースの合理的な応用を達成するために、反復間隔を確定するた
めの戦略が必要であり、これによって、この反復間隔範囲では、各反復の対応する層のデ
ータビット幅nは変化せず、この反復間隔を超えると、データビット幅nが変化するため
、データビット幅nを反復ごとに調整するかどうかを確定する必要はない。同様に、量子
化パラメータは同じであり、人工知能プロセッサのチップのピーク計算能力を向上させる
と同時に、量子化に必要な浮動小数点演算の精度を満たす。
。図6に示す技術案では、目標反復間隔は少なくとも1つの重み更新反復を含み、同じデ
ータビット幅が同じ目標反復間隔内の量子化過程で使用される。前記目標反復間隔の確定
ステップは、以下を含む:
位置パラメータの変動傾向値を確定する。ここで、前記予測時点は、前記データビット幅
を調整する必要があるか否かを判断するための時点であり、前記予測時点は、重み更新反
復が完了した時点に対応する。
の予測時点に対応する重み反復過程における小数点位置パラメータのスライディング平均
値、および前の予測時点に対応する値重み反復過程の小数点位置パラメータのスライディ
ング平均値に基づいて確定されるか、現在の予測時点に対応する重み反復過程における小
数点位置パラメータと、前の予測時点に対応する重み反復過程における小数点位置パラメ
ータのスライディング平均値によって確定される。式18は次のとおりである。
diffupdate1=|M(t)-M(t-1)|=α|s(t)-M(t-
1)| 式(18)
イディング平均値である。ここでは、M(t)は式(19)によって得られる、t番目の
予測時点に対応する小数点位置パラメータsがトレーニングの反復とともに増加するスラ
イディング平均値である。s(t)はt番目の予測時点に対応する小数点位置パラメータ
sである。M (t-1) はt-1番目の予測時点に対応する小数点位置パラメータsのス
ライディング平均値である。αはハイパーパラメータであり、diff update1 値
は小数点位置パラメータsの変化傾向を測る。小数点位置パラメータsの変化も現在量子
化すべきデータにおけるデータ最大値Z max の変化状況に反映される。diff upd
ate1 が大きければ大きいほど、数値範囲の変化がひどく、間隔がより短い更新頻度が
必要であり、即ち目標反復間隔がより小さい。
M(t)←αxs(t-1)+(1-α)M(t-1) 式(19)
反復間隔を確定する。
同一目標反復間隔内の量子化過程において、同じ前記データビット幅を使用し、異なる目
標反復間隔内の量子化過程において使用されるデータビット幅は同じであっても、異なっ
てもよい。
I=β/diffupdate1-γ 式(20)
ータの変化傾向値である。β、γは経験値であり、可変なハイパーパラメータであっても
よい。従来のハイパーパラメータの最適化方法はいずれもβ、γに適し、ここでは、ハイ
パーパラメータの最適化案を再び述べない。
によって確定される。具体的には、トレーニングまたは微調整過程のt番目の予測時点で
、現在反復の対応する層の重みデータが、前の反復の対応する層の量子化で使用されるデ
ータビット幅を使用して量子化され、量子化された固定小数点数が取得される。量子化前
の重みデータとそれに対応する量子化前の重みデータに基づいて量子化誤差diffbi
tを確定する。量子化誤差diffbitはそれぞれ第1閾値および第2閾値と比較され
、その比較結果によって、前の反復で対応する層の量子化に使用されたデータビット幅を
調整するかどうかを確定する。t番目の第1予測時点は100回目の反復に対応し、99
回目の反復で使用されるデータビット幅はn1であるとする。100回目の反復で、デー
タビット幅n1 から量子化誤差diffbitを確認し、量子化誤差diffbitを第
1閾値、第2閾値と比較し、比較結果を得る。比較結果からデータビット幅n1を変更す
る必要がないことを確認すると式(20)を用いて、目標反復間隔が8回の反復であるこ
とを確認し、100回目の反復が現在の目標反復間隔内の開始反復として使用される場合
、100回目の反復~107回目の反復が現在の目標反復間隔として使用される。100
回目の反復が前の目標反復間隔の最終反復である場合、101回目の反復~108回目の
反復が現在の目標反復間隔として使用される。現在の目標反復間隔で量子化する場合、各
反復は、前の目標反復間隔で使用されたデータビット幅n1を流用する。この場合、異な
る目標反復間隔間の量子化で使用されるデータビット幅は同じにすることができる。10
0回目の反復から107回目の反復が現在の目標反復間隔として使用される場合、次の目
標反復間隔内の108回目の反復は、t+1目の第1予測時点と見なされる。101番目
から108番目の反復が現在の目標反復間隔として使用される場合、現在の目標反復間隔
内の108番目の反復は、t+1番目の第1予測時点と見なされる。t+1番目の第1予
測時点において、データビット幅n1によって量子化誤差diffbitを確認し、量子
化誤差diffbitを第1閾値および第2閾値と比較して比較結果を得る。比較結果か
ら、データビット幅n1をn2に変更する必要があると判断し、式(20)を使用して、
目標反復間隔が55回の反復であることを確認する。108回目の反復~163回目の反
復、または109回目の反復~163回目の反復が目標反復間隔として使用される場合、
この目標反復間隔内で量子化するときに反復ごとにデータビット幅n2を使用する。この
場合、異なる目標反復間隔の間において量子化で使用されるデータビット幅は異なっても
よい。
かかわらず、式(18)により小数点位置パラメータの変化の傾向値を求めることに適す
る。現在時刻の第1予測時点が現在の目標反復間隔の開始反復である場合、式(18)に
おいて、M(t)は現在の目標反復間隔の開始反復の対応時間点に対応する小数点位置パ
ラメータsの、トレーニング反復に伴って増加するスライディング平均値であり、s(t
)は現在の目標反復間隔の開始反復の対応時間点に対応する小数点位置パラメータsであ
り、M(t-1)は前の目標反復間隔の開始反復の対応時点に対応する小数点位置パラメ
ータsの、トレーニング反復に伴って増加するスライディング平均値である。現在時刻の
第1予測時点が現在の目標反復間隔の最終反復である場合、式(18)において、M(t
) は現在の目標反復間隔の最終反復の対応時間点に対応する小数点位置パラメータsの、
トレーニング反復に伴って増加するスライディング平均値であり、s(t)は現在の目標
反復間隔の最終反復の対応時間点に対応する小数点位置パラメータsであり、M(t-1
)は前の目標反復間隔の最終反復の対応時点に対応する小数点位置パラメータsの、トレ
ーニング反復に伴って増加するスライディング平均値である。
もよい。第2予測時点は、データ変動幅曲線に基づいて確定されるものである。ビッグデ
ータのニューラルネットワークのトレーニング過程におけるデータの変動幅の状況に基づ
いて、図5aに示すデータ変動幅曲線を得る。
ング開始からT回目の反復までの反復間隔周期では、重みが更新されるたびにデータ変動
幅が非常に大きい。現在予測時点では、量子化するとき、現在反復は、まず前回の反復の
データビット幅n1を用いて量子化し、得られた量子化結果と、対応する量子化前のデー
タとで対応する量子化誤差を確定し、量子化誤差はそれぞれ第1閾値、第2閾値と比較し
て、比較結果に基づいてデータビット幅n1を調整し、データビット幅n2を得る。ビッ
ト幅n2を用いて、現在回の反復に関連する量子化すべき重みデータを量子化する。次に
式(20)に基づいて、目標反復間隔を確定して、第1予測時点を確定し、第1予測時点
で、さらにデータのビット幅を調整するかどうかおよび調整方法を判定し、式(20)に
基づいて次の目標反復間隔を確定することで、次の第1予測時点を得る。トレーニング開
始からT回目の反復までの反復間隔の周期内に、毎回の反復前後の重みデータの変化幅が
非常に大きいため、毎回の反復の対応する層の重みデータ間に類似性を有せず、精度問題
を満たすために、量子化する時、現在回の反復の各層のデータは前回の反復の対応層に対
応する量子化パラメーターを引き続き使用することができず、前のT回の反復でデータビ
ット幅を反復ごとに調整することができる。このとき、量子化前のT回の反復では毎回の
反復に用いられるデータビット幅がいずれも異なり、目標反復間隔は1回の反復である。
人工知能プロセッサーチップの資源を最適化に利用するために、前のT回の反復の目標反
復間隔は図5aに示すデータ変動幅曲線図によって掲示された規則に従って事前に設定す
ることができる。つまり、データ変動幅曲線によって、前のT回の反復の目標反復間隔は
直接、事前に設定され、式(20)によって前のT回の反復の反復ごとに対応する重みで
反復の更新を完了した時の時点を第2予測時点として確認する必要がない。これによって
、人工知能プロセッサーチップの資源をもっと合理的にいかす。図5aに示したデータ変
動幅曲線は、T回目の反復からは変動幅が大きくない。トレーニングの後半で反復ごとに
量子化パラメータを再確認する必要がなく、第T回目の反復または第T+1回目の反復で
は、現在反復に対応する量子化前のデータおよび量子化後のデータを用いて量子化誤差を
確定し、量子化誤差に基づいて、データのビット幅を調整する必要があるかどうか、およ
びその調整方法を確定し、また、式(20)に基づいて、目標反復間隔を確定する必要が
ある。目標反復間隔が55回の反復であることを確認した場合に、T回目の反復またはT
+1回目の反復の後、55回反復おきに対応する時点を第1予測時点として、データビッ
ト幅を調整するかどうかおよびその調整方法を判断する必要があり、式(20)に基づい
て次の目標反復間隔を確定することにより、同じ周期(epoch)内ですべての反復の
演算が完了するまで、次の第1予測時点を確定する。その上で、各周期(epoch)の
後に、データビット幅または量子化パラメータを適応的に調整して、最終的に量子化した
データを用いて期待どおりの精度のニューラルネットワークを得る。
図5aには対応していないが、説明の便宜上、Tが130をとり、仮定値に限定されない
。)とすると、トレーニング中の第130回目の反復を第2予測時点とし、現在の第1予
測時点をトレーニング中の第100回目の反復とし、第100回目の反復において、式(
20)によって目標反復間隔を35回の反復と確定する。この目標反復間隔内で、130
回目の反復までトレーニングし、第2予測時点に到達し、このとき、130回目の反復に
対応する時点で、データビット幅を調整する必要があるかどうかおよび調整方法を確定し
、さらに式(20)に基づいて目標反復間隔を確定する必要がある。この場合に確定され
る目標反復間隔は42回の反復である。第130回の反復から第172回の反復までを目
標反復間隔とし、目標反復間隔が35回の反復のときに確定される第1予測時点に対応す
る第135反復は、目標反復間隔が42回反復内であり、第135回の反復では、式(2
0)によって、データビット幅を調整する必要があるかどうか、および調整方法を判断す
ることができる。また、135回目の反復で評価や予測を事前に行わずに、そのまま17
2回目の反復になってこそデータのビット幅を調整する必要があるかどうかおよびどのよ
うに調整するかについての評価や予測を実行してもよい。つまり、135回目の反復で評
価や予測を実行するかどうかは、いずれも本技術案に適する。
レーニングまたは微調整の初期において、人工知能プロセッサチップの資源を消費して目
標反復間隔を確定する必要がなく、プリセットされた第2予測時点で直接に量子化誤差に
よってデータビット幅を調整し、そして調整されたデータビット幅を利用して現在回の反
復に関わる量子化すべきデータを量子化する。トレーニングまたは微調整の後半で、式(
20)によって目標反復間隔を取得することで、対応する第1予測時点を確定し、各第1
予測時点で、データビット幅を調整するかどうか、および調整方法を確定する。このよう
にニューラルネットワーク演算に必要な浮動小数点演算の精度を満たすと同時に人工知能
プロセッサチップの資源を合理的に利用することで、量子化時の効率を大幅に向上させる
。
ータの変化傾向値diff update1 だけでなく、小数点位置パラメータの変化傾向
値diff update1 とデータビット幅の変化傾向値diff update2 を同時
に考慮を入れることができる。図7に示すように、目標反復間隔を確定する方法の第2フ
ローチャートである。前記目標反復間隔の確定ステップは、以下を含む:
に対応する小数点位置パラメータの変化傾向値、データビット幅の変化傾向値を確定する
。ここで、前記予測時点は、前記データビット幅を調整する必要があるか否かを判断する
ための時点であり、前記予測時点は、重み更新反復が完了した時点に対応する。
反復間隔を確定する技術案についての内容は、図7に示す技術案に適し、ここではこれ以
上述べない。
本ステップでは、式(21)に基づいて、対応する前記量子化誤差を利用して、前記デ
ータビット幅の変化傾向値を確定する。
diffupdate2=δ*diff2 bit
式(21)
ある;diffupdate2はデータビット幅の変化傾向値である。diffupda
te2は量子化時に用いられるデータビット幅nの変化傾向を測るために、diffup
date2 は大きければ大きいほど、固定小数点のビット幅を更新する必要がある可能性
が高く、より短い間隔の更新頻度が必要である。
求めることができ、式(18)におけるM(t)は式(19)によって求められる。di
ffupdate1小数点位置パラメータsの変化傾向を測り、小数点位置パラメータs
の変化も現在量子化すべきデータにおけるデータ最大値Z max の変化状況に反映される
。diff update1 が大きければ大きいほど、数値範囲の変化がひどく、間隔がよ
り短い更新頻度が必要であり、即ち目標反復間隔がより小さい。
化傾向値によって対応する前記目標反復間隔を確定する。
同一目標反復間隔内の量子化過程において、同じ前記データビット幅を使用し、異なる目
標反復間隔内の量子化過程において使用されるデータビット幅は同じであっても、異なっ
てもよい。
I=β/max(diffupdate1,diffupdate2)-γ
式(22)
diffupdate1は小数点位置パラメータの変化傾向値である。diffupda
te2はデータビット幅の変化傾向値である。β、γは経験値であり、可変なハイパーパ
ラメータであってもよい。従来のハイパーパラメータの最適化方法はいずれもβ、γに適
し、ここでは、ハイパーパラメータの最適化案を再び述べない。
めのものであるが、データビット幅nの変化による小数点位置パラメータsの変化は無視
すべきである。これは、すでにdiffupdate2 でデータビット幅nの変化を反映
した。diffupdate1では無視という動作をしないと、式(22)によって確定
される目標反復間隔Iは正確ではなくなり、第1予測時点が多すぎてしまい、トレーニン
グまたは微調整の過程において、データビット幅nが更新されているかどうか、どのよう
に更新されているかといった動作が頻繁に行われるため、人工知能プロセッサチップの資
源が適切に利用されていない。
1番目の予測時点に対応するデータビット幅がn1 であり、対応する小数点位置パラメー
タがs1であり、小数点位置パラメータがトレーニング反復に伴ってして増加するスライ
ディング平均値がm1であると仮定する。データビット幅n1を利用して量子化すべきデ
ータを量子化し、量子化後の定点数を取得する。量子化前のデータと対応する量子化後の
データに基づき、量子化誤差diffbitを確定し、量子化誤差diffbitと閾値
の比較結果によって、データビット幅n1をn2に調整し、データビット幅を|n1-n
2|ビット調整し、t番目の予測時点の量子化時に使用されるデータビット幅はn2であ
る。データビット幅の変化による小数点位置パラメータの変化を無視するために、M(t
)を確定するとき、以下の二つの最適化方式のうち1つを選択すればよい。第1方式:デ
ータビット幅は|n1-n2|ビット増加すれば、s(t-1) の値はs1-|n1-n
2|を取り、M(t-1) の値はm1-|n1-n2|を取り、s(t-1)、M(t-
1)を式(19)に代入し、M(t)を得て、t番目の予測時点に対応する小数点位置パ
ラメータがトレーニング反復に伴って増加するスライディング平均値である。データビッ
ト幅は|n1-n2|ビット減少すれば、s(t-1) の値はs1+|n1-n2|を取
り、M(t-1) の値はm1+|n1-n2|を取り、s (t-1) 、M (t-1) を式
(19)に代入し、M (t) を得て、t番目の予測時点に対応する小数点位置パラメータ
がトレーニング反復に伴って増加するスライディング平均値である。第2方式:データビ
ット幅は|n1-n2|ビット増加するか、|n 1 -n 2 |ビット減少するかにもかかわ
らず、s(t-1) の値はs 1 を取り、M(t-1) の値はm1 を取り、s(t-1)、
M(t-1)を式(19)に代入し、M(t)を得る。データビット幅は|n1-n2|
ビット増加すると、M (t) から|n 1 -n 2 |を減少し、データビット幅は|n1-n
2|ビット減少する時、M (t) に|n 1 -n 2 |を増加し、結果をt番目の予測時点に
対応する小数点位置パラメータがトレーニング反復に伴って増加するスライディング平均
値とする。この二つの方式は等価であり、いずれもデータビット幅の変化による小数点位
置パラメータの変化を無視でき、より精確な目標反復間隔を取得することができ、これに
よって、人工知能プロセッサチップの資源利用率を高める。
影響が非常に大きく、量子化パラメータにおける第2スケジューリング係数f2 およびオ
フセットOが量子化の精度に対する影響が大きくない。第1スケジューリング係数f1 に
ついては、前文にもすでに言及されていたが、第2ケースに該当する場合、2sxf2 を
全体的に第1スケジューリング係数f1として、小数点位置パラメータsが量子化の精度
に対する影響が非常に大きいため、この状況での第1スケジューリング係数f1 の量子化
への影響は非常に大きい。そのため、本技術案では、データビット幅nが変化するかにも
かかわらず、小数点位置パラメータsが可変な状況で、小数点位置パラメータsの目標反
復間隔の確定も非常に有意義なことであり、図6に示す技術案の思想は、小数点位置パラ
メータsの目標反復間隔の確定に応用することができる。従って、小数点位置パラメータ
sの目標反復間隔を確定する方法は図8Aに示す。
する小数点位置パラメータの変化傾向値を確定する。ここで、前記予測時点は、前記量子
化パラメータを調整する必要があるか否かを判断するための時点であり、前記予測時点は
、重み更新反復が完了した時点に対応する。
反復間隔を確定する。
標反復間隔を確定する技術案についての内容は、図8Aに示す技術案に適し、ここではこ
れ以上述べない。図8Aに示す技術案に対して、量子化パラメータは好ましくは小数点位
置パラメータである。
する目標反復間隔は、全て、網羅的なものではなく、単に列挙された一部の状況に過ぎず
、当業者が本開示の技術案の精神を理解するうえで、本開示の技術案に基づいて、他の変
形または変換を生じる可能性がある。例えば、データビット幅を確定する目標反復間隔内
で量子化パラメータの目標反復間隔を確定することは図6、図7、および図8Aに示す技
術案にも応用される。ただ、その実現された機能および達成された技術効果が本開示と類
似している限り、本開示の保護範囲に含まれるべきである。
または量子化パラメータを調整し、データビット幅または量子化パラメータが調整される
か否かの目標反復間隔を確定し、ニューラルネットワークの演算中にデータビット幅また
は量子化パラメータを適切な時点で調整し、これによって、適切な反復時間において適切
な量子化パラメータを使用するようにし、人工知能プロセッサチップによるニューラルネ
ットワーク演算の実行は定点計算の速度を達成することを実現して、人工知能プロセッサ
チップのピーク演算力を向上させると同時に演算に必要な浮動小数点演算の精度を満たす
。
合わせとして記載しているが、当業者であれば周知するように、本開示は、本開示にした
がって一部のステップが他の順で用いられたり、または同時に実施されたりすることがで
きるから、以上に記載の動作の順で制限されるものではない。次に、当業者であれば分か
るように、本明細書に記載された実施形態は全てオプション実施形態に該当し、係る動作
およびモジュールは必ずしも本開示に必須ではない。
ラメータ)であってもよいし、量子化すべきデータに対する処理によって得られた量子化
パラメータ(オンライン量子化パラメータ)であってもよいことが理解される。ニューラ
ルネットワークの推理、トレーニング、微調整過程において、目標データをオフラインで
量子化したり、オンラインで量子化したりすることができる。ここで、オフライン量子化
は、量子化パラメータを用いて量子化すべきデータをオフライン処理することであっても
よい。オンライン量子化は量子化パラメータを用いて量子化すべきデータをオンライン処
理することであってもよい。例えば、ニューラルネットワークが人工知能チップ上で動作
し、量子化データと量子化パラメータを人工知能チップ以外の演算装置に送信してオフラ
イン量子化を行うか、人工知能チップ以外の演算装置を用いて予め得られた量子化すべき
データと量子化パラメータをオフライン量子化することができる。人工知能チップがニュ
ーラルネットワークを実行する過程において、人工知能チップは量子化すべきデータに対
して量子化パラメータを用いてオンライン量子化を行うことができる。ニューラルネット
ワークに複数の量子化すべき層が含まれている場合、各量子化すべき層はそれぞれオンラ
イン量子化とオフライン量子化を行うことができる。本開示では、各量子化すべき層に対
する量子化過程は、オンラインまたはオフラインであることに限定されない。
下、図8Bから図8Vを参照しながら説明する。図8Bは、本開示の一実施形態における
データビット幅の調整方法800Bを示すフローチャートである。この方法には、以下の
ステップが含まれる。
ータとに基づいて量子化誤差を確定する。ここで、前記現在検証反復の量子化データは、
前記現在の検証反復の量子化すべきデータを量子化することによって得られる。
化して、前記量子化データを得ることができる。この現在の検証反復の初期データビット
幅は、ハイパーパラメータであってもよく、この現在の検証反復の初期データビット幅は
、この現在の検証反復の1つ前の検証反復の量子化すべきデータに基づいて確定されても
よい。
量子化すべきデータとに基づいて、中間表現データを確定することができる。任意選択可
能に、前記中間表現データは、前記量子化すべきデータの表現フォーマットと一致する。
例えば、プロセッサは上述した量子化すべきデータを逆量子化して、量子化すべきデータ
の表現フォーマットと一致する中間表現データを得ることができ、ここで、逆量子化とは
量子化の逆過程を指す。例えば、この量子化すべきデータは式2を用いて得ることができ
、プロセッサはさらに式24によって量子化すべきデータを逆量子化して、対応する中間
表現データを得て、量子化すべきデータと中間表現データに基づいて量子化誤差を確定す
ることができる。
Ix=round(Fx/2s) 式(23)
Fx1=round(Fx/2s)x2s 式(24)
量子化誤差を算出することができる。現在検証反復の量子化すべきデータがFx=[Z1
,Z2...,Zm]であり、この量子化すべきデータに対応する中間表現データがFx
1=[Z1 (n),Z2 (n)...,Zm (n)]であるとする。プロセッサは量子化
すべきデータFxおよびそれに対応する中間表現データFx1に基づいて誤差項を確定し
、この誤差項に基づいて量子化誤差を確定することができる。
子化すべきデータFx における各要素の和に基づいて上記の誤差項を確定することができ
、この誤差項は中間表現データFx1 における各要素の和と量子化すべきデータFx にお
ける各要素の和の差値であってもよい。そのあと、プロセッサはこの誤差項に基づいて量
子化誤差を確定することができる。具体的な量子化誤差は下式によって確定することがで
きる:
diffbit=ln((Σi|Zi (n)|-Σi|Zi|)/Σi|Zi|+1)
式(25)
タFx1の要素である。
データFx1 における対応する要素の差値を計算して、m個の差値を得て、このm個差値
の和を誤差項とする。そのあと、プロセッサはこの誤差項に基づいて量子化誤差を確定す
ることができる。具体的な量子化誤差は下式によって確定することができる:
diffbit=ln(Σi|Zi (n)-Zi|/Σi|Zi|+1) 式(2
6)
タFx1の要素である。
ける対応する要素との差値は2 s-1 にほぼ等しくてもよく、従って、上記量子化誤差は
さらに下式によって確定されてもよい。
diffbit=ln(2s-1*m/Σi|Zi|) 式(27
)
位置であり、ziは量子化すべきデータにおける要素である。
マットと一致し、前記中間表現データと量子化すべきデータとに基づいて量子化誤差を確
定してもよい。例えば、量子化すべきデータは次のように表すことができる。Fx≒Ix
x2s 、すると、中間表現データIx1≒Fx/2sを確定することができ、この中間表
現データIx1は上記の量子化すべきデータと同じデータ表現フォーマットを有すること
ができる。このとき、プロセッサは中間表現データIx1 と上記式(23)によって算出
されたIx=round(Fx/2s)によって量子化誤差を確定することができる。具
体的な量子化誤差確定方式は、上記の式(25)~式(27)を参照することができる。
ト幅を確定する。
ット幅を適応的に調整して、この現在検証反復が調整された後の目標データビット幅を確
定することができる。この量子化誤差がプリセット条件を満たす場合、現在の検証反復に
対応するデータビット幅を維持することができ、つまり、この現在の検証反復の目標デー
タビット幅が初期データビット幅に等しくてもよい。量子化誤差がプリセット条件を満た
さない場合、プロセッサは、現在の検証反復に対応する量子化すべきデータのビット幅を
調整して、現在の検証反復に対応する目標データビット幅を得ることができる。プロセッ
サがこの目標データビット幅を用いて現在検証反復の量子化すべきデータを量子化する時
、量子化誤差は上記のプリセット条件を満たす。任意選択可能に上記のプリセット条件は
ユーザが設定したプリセット閾値であってもよい。
800Cのフローチャートである。図8Cに示すように、上述操作S115は以下のステ
ップを含むことができる。
S1150では、プロセッサは、上述した量子化誤差が第1プリセット閾値以上である
か否かを判断することができる。
の検証反復に対応するデータビット幅を大きくして、現在の検証反復の目標データビット
幅を得ることができる。量子化誤差が第1プリセット閾値より小さい場合、現在の検証反
復のデータビット幅を維持することができる。
ことができる。たとえば、現在の検証反復の初期データビット幅がn1の場合、プロセッ
サは1回の調整で目標データビット幅n2=n1+tを確定することができ、ここでは、
tはデータビット幅の調整値である。ここで、この目標データビット幅n2を用いて、現
在の検証反復の量子化すべきデータを量子化する場合、得られた量子化誤差は、前記第1
プリセット閾値より小さくてもよい。
るまで何度も調整して目標データビット幅を得ることができ、この量子化誤差が第1プリ
セット閾値より小さい場合のデータビット幅を目標データビット幅とすることができる。
具体的には、前記量子化誤差が第1プリセット閾値以上の場合、第1プリセットビット幅
のステップ長さに基づいて第1中間データビット幅を確定する。その後、プロセッサは、
この第1中間データビット幅に基づいて、現在の検証反復の量子化すべきデータを量子化
し、量子化データを得て、前記量子化誤差が前記第1プリセット閾値より小さくなるまで
、前記現在の検証反復における量子化すべきデータと前記現在の検証反復における量子化
データとに基づいて量子化誤差を確定することができる。プロセッサは、この量子化誤差
が第1プリセット閾値より小さい時に対応するデータビット幅をこの目標データビット幅
とすることができる。
タビット幅n1を用いて現在検証反復の量子化すべきデータAを量子化し、量子化データ
B1を得て、この量子化すべきデータAと量子化データB1に基づいて量子化誤差C1を
算出する。量子化誤差C1が第1プリセット閾値以上である場合、プロセッサは、第1中
間データビット幅n2=n1+t1を確定し、ここで、t1は、第1プリセットビット幅
ステップ長さである。そのあと、プロセッサはこの第1中間データビット幅n2に基づい
て現在検証反復の量子化すべきデータを量子化して、現在検証反復の量子化データB2を
得て、この量子化すべきデータAと量子化データB2に基づいて量子化誤差C2を算出す
る。この量子化誤差C2が第1プリセット閾値以上の場合、プロセッサは第1中間データ
ビット幅n2=n1+t1+t1を確定し、そのあと、この新しい第1中間データビット
幅に基づいて現在検証反復の量子化すべきデータAを量子化し、量子化誤差が第1プリセ
ット閾値より小さくなるまで、対応する量子化誤差を計算する。量子化誤差C1が第1プ
リセット閾値より小さい場合、この初期データビット幅n1を維持することができる。
、量子化誤差が第1プリセット閾値より大きくなるたびに、プロセッサは現在検証反復に
対応するデータビット幅を同じビット幅の値を大きくすることができる。任意選択可能に
、上記の第1プリセットビット幅のステップ長さは可変値であってもよく、例えば、プロ
セッサは量子化誤差と第1プリセット閾値の差値を計算することができ、この量子化誤差
と第1プリセット閾値の差値が小さければ小さいほど、第1プリセットビット幅のステッ
プ長さの値が小さい。
00Dのフローチャートである。図8Dに示すように、上記操作装置S115は以下のス
テップをさらに含むことができる。
うかを判定することができる。
記現在検証反復に対応するデータビット幅を小さくして、現在検証反復の目標データビッ
ト幅を得ることができる。量子化誤差が第2プリセット閾値より大きい時、現在検証反復
のデータビット幅をそのまま維持することができる。
ことができる。たとえば、現在の検証反復の初期データビット幅がn1の場合、プロセッ
サは1回の調整で目標データビット幅n2=n1-tを確定することができ、ここでは、
tはデータビット幅の調整値である。ここで、この目標データビット幅n2を用いて、現
在の検証反復の量子化すべきデータを量子化する場合、得られた量子化誤差は、前記第2
プリセット閾値より大きくてもよい。
るまで何度も調整して目標データビット幅を得ることができ、この量子化誤差が第2プリ
セット閾値より大きい場合のデータビット幅を目標データビット幅とすることができる。
具体的には、前記量子化誤差が第1プリセット閾値以下の場合、第2プリセットビット幅
のステップ長さに基づいて第2中間データビット幅を確定する。その後、プロセッサはこ
の第2中間データビット幅に基づいて、現在の検証反復の量子化すべきデータを量子化し
、量子化データを得て、前記量子化誤差が前記第2プリセット閾値より大きくなるまで前
記現在の検証反復における量子化すべきデータと前記現在の検証反復における量子化デー
タとに基づいて量子化誤差を確定することができる。プロセッサは、この量子化誤差が第
2プリセット閾値よりも大きい時に対応するデータビット幅をこの目標データビット幅と
することができる。
タビット幅n1を用いて現在検証反復の量子化すべきデータAを量子化し、量子化データ
B1を得て、この量子化すべきデータAと量子化データB1に基づいて量子化誤差C1を
算出する。量子化誤差C1が第2プリセット閾値以下である場合、プロセッサは、第2中
間データビット幅n2=n1-t2を確定し、ここで、t2は、第2プリセットビット幅
ステップ長さである。そのあと、プロセッサはこの第2中間データビット幅n2に基づい
て現在検証反復の量子化すべきデータを量子化して、現在検証反復の量子化データB2を
得て、この量子化すべきデータAと量子化データB2に基づいて量子化誤差C2を算出す
る。この量子化誤差C2が第2プリセット閾値以下の場合、プロセッサは第2中間データ
ビット幅n2=n1-t2-t2を確定し、そのあと、この新しい第2中間データビット
幅に基づいて現在検証反復の量子化すべきデータAを量子化し、量子化誤差が第2プリセ
ット閾値より大きくなるまで、対応する量子化誤差を計算する。量子化誤差C1が第2プ
リセット閾値より大きければ、この初期データビット幅n1をそのまま維持することがで
きる。
、量子化誤差が第2プリセット閾値より小さくなるたびに、プロセッサは、現在検証反復
に対応するデータビット幅を同じビット幅の値を小さくすることができる。任意選択可能
に、上記の第2プリセットビット幅のステップ長さは可変値であってもよく、例えば、プ
ロセッサは量子化誤差と第2プリセット閾値の差値を計算することができ、この量子化誤
差と第2プリセット閾値の差値が小さければ小さいほど、第2プリセットビット幅のステ
ップ長さの値が小さい。
00Eのフローチャートである。図8Eに示すように、プロセッサは、量子化誤差が第1
プリセット閾値より小さく、且つ量子化誤差が第2プリセット閾値より大きいと確定した
場合、現在検証反復のデータビット幅をそのまま維持することができ、ここでは、第1プ
リセット閾値は第2プリセット閾値より大きい。つまり、現在の検証反復の目標データビ
ット幅が初期データビット幅に等しくてもよい。ここでは、図8Eでは、本開示の一実施
形態に係るデータビット幅の確定方式のみを例示するものであり、図8Eにおける各操作
の順序は適応的に調整することができるが、ここでは具体的に限定しない。
ーチャートである。図8Fに示すように、前記ニューラルネットワーク量子化方法は以下
のステップを含む。
子化パラメータを確定し、前記量子化すべきデータは、ニューロン、重み、オフセット、
および勾配のうち少なくとも1つを含む。
化し、量子化データを得ることで、前記ニューラルネットワークは前記量子化データに基
づいて演算を実行する。
記目標データの量子化誤差を確定し、前記目標データはいずれか一つの量子化すべきデー
タである。
量子化誤差を確定することができる。設定された誤差計算方法、例えば標準偏差計算法、
二乗平均平方根誤差計算法などを使用して、目標データの量子化誤差を計算することがで
きる。
量子化データを得て、逆量子化データと目標データとの間の誤差に基づいて、目標データ
の量子化誤差を得ることができる。
標データに対応する逆量子化データとの間の誤差diffbit を算出してもよい。
diffbit=ln(A*2-1*p/Σi|Fx|) 式(35
)
である。Aの値は、量子化パラメータによって確定されることができ、量子化パラメータ
に小数点位置sが含まれる場合、A=2s である。量子化パラメータに小数点位置sとス
ケジューリング係数fが含まれる場合、A=2sxfである。
るデータビット幅を調整して、前記目標データに対応する調整ビット幅を得る。
ために用いられてもよい。量子化誤差が誤差閾値より大きいか小さい場合、目標データに
対応するデータビット幅を調整して、目標データに対応する調整ビット幅を得ることがで
きる。データビット幅をより長いビット幅またはより短いビット幅に調整することで、量
子化の精度を向上させるか低減することができる。
値より大きい場合、量子化の精度が期待に応えられないことを意味し、データビット幅を
より長いビット幅に調整する必要がある。高い高い方の量子化精度によって、小さい誤差
閾値を確定することもでき、量子化誤差が誤差閾値よりも小さい場合、量子化精度が高い
ことを示し、ニューラルネットワークの動作効率に影響を与える。データビット幅をより
短いビット幅に適切に調整することができる。これによって、量子化精度を適切に低下さ
せ、ニューラルネットワークの動作効率を向上させる。
を、量子化誤差と誤差閾値の差によって、可変調整ステップ長さに応じて調整できる。こ
の開示はこれを制限するものではない。
更新し、前記目標データおよび前記調整ビット幅によって計算して対応する調整量子化パ
ラメータが得られ、これによってニューラルネットワークは調整量子化パラメータによっ
て量子化される。
新することができる。例えば、更新前の目標データのデータビット幅が8ビットで、調整
後のビット幅が12ビットである場合、更新後の目標データに対応するデータビット幅は
12ビットである。調整ビット幅と目標データによって目標データに対応する調整量子化
パラメータを算出できる。目標データに対応する調整量子化パラメータによって目標デー
タを改めて量子化することができる。これによって、量子化精度がより高いかより低い量
子化データが得られ、量子化すべき層は、量子化精度と処理効率との間のバランスがとれ
る。
すべきデータには一定の相関関係があると見なすことができる。例えば、各層の量子化す
べきデータ間の平均値の差が設定された平均閾値よりも小さく、各層の量子化すべきデー
タの最大値の差も設定された差の閾値よりも小さい場合、量子化すべき層の後続の1つ以
上の層の量子化すべきデータを量子化するために、量子化すべきの層の調整量子化パラメ
ータを後続の1つ以上の層の調整量子化パラメータとして使用されてもよい。ニューラル
ネットワークのトレーニングおよび微調整過程では、量子化すべき層の現在反復で得られ
た調整量子化パラメータを使用して、後続の反復で量子化すべき層を量子化してもよい。
1つの可能な実施形態では、前記方法はさらに、以下を含む。
を使用する。
量子化すべき層でのみ調整量子化パラメータを使用して量子化すべきデータを再量子化し
、量子化すべき層の演算に再取得された量子化後のデータを使用することを含んでもよい
。また、量子化すべき層で、調整量子化パラメータを用いて量子化すべきデータを量子化
するかわりに、量子化すべき層の後続の1層または複数層で調整量子化パラメータを用い
て量子化すること、および/または後続の反復で量子化すべき層で調整量子化パラメータ
を使用して量子化することもできる。また、量子化すべき層で調整量子化パラメータを使
用して、量子化を再実行することもでき、再取得された量子化データを、量子化すべき層
の演算に使用され、量子化すべき層の後続の1つまたは複数層で調整量子化パラメータを
使用して量子化すること、および/または後続の反復で量子化すべき層で調整量子化パラ
メータを使用して量子化することもできる。この開示はこれを制限するものではない。
ータの量子化誤差を確定し、目標データはいずれか一つの量子化すべきデータである。前
記量子化誤差と誤差閾値に基づいて、目標データに対応するデータビット幅を調整して、
前記目標データに対応する調整ビット幅を得る。目標データに対応するデータビット幅を
調整ビット幅に更新し、目標データおよび調整ビット幅によって計算して対応する調整量
子化パラメータが得られ、これによってニューラルネットワークは調整量子化パラメータ
によって量子化される。目標データと量子化データの間の誤差によってデータビット幅を
調整し、調整後データビット幅に基づいて調整量子化パラメータを算出する。異なる誤差
閾値を設定することにより、異なる調整量子化パラメータを取得して、量子化精度の向上
や動作効率の向上などの、異なる量子化需要を実現できる。目標データおよび目標データ
の量子化データによって算出された調整量子化パラメータも、目標データ自体のデータ特
性とより一致し、目標データ自体のニーズにより一致する量子化結果を達成し、量化精度
と処理効率との間でよりよいバランスがとれる。
ローチャートを示す。図8Gに示すように、前記ニューラルネットワーク量子化方法にお
けるステップS40は以下のステップを含む。
データに対応するデータビット幅を増加して、前記目標データに対応する調整ビット幅を
得る。
を第1誤差閾値と比較できる。量子化誤差が第1誤差閾値よりも大きい場合、量子化誤差
はすでに許容できないと見なすことができる。量子化精度を向上させるために、目標デー
タに対応するデータビット幅を増加することにより、目標データの量子化精度を向上させ
ることができる。
調整ビット幅を取得することができる。固定される調整ステップ長さサイズはNビットに
することができ、Nは正の整数である。データビット幅を調整するたびに、Nビットだけ
増加することができる。各増加後のデータビット幅=元のデータビット幅+Nビットであ
る。
ビット幅を得ることができる。例えば、量子化誤差と誤差閾値の差が第1閾値より大きい
場合、データビット幅は調整ステップ長さM1で調整でき、量子化誤差と誤差閾値の差が
第1閾値より小さい場合、調整ステップ長さM2でデータビット幅を調整でき、ここでは
、第1閾値は第2閾値よりも大きく、M1はM2よりも大きい。需要に応じて可変調整ス
テップ長さを確定できる。この開示は、データビット幅の調整ステップ長さ、および調整
ステップ長さが可変であるかどうかを制限しない。
調整された量子化パラメータを使用して目標データを再量子化することによって得られた
量子化データは、調整前に量子化パラメータを使用して得られた量子化データよりも高い
量子化精度を持っている。
のフローチャートを示す。図8Hに示されるように、前記ニューラルネットワークの量子
化方法はさらに以下を含む。
後量子化誤差を計算する。
が前記第1誤差閾値以下になるまで、前記調整後量子化誤差と第1誤差閾値によって前記
調整ビット幅を増加し続ける。
1回調整して調整ビット幅を取得し、調整ビット幅に応じて調整後の量子化パラメータを
算出し、調整後の量子化パラメータに応じて目標データを量子化して調整後の量子化デー
タを取得する。次に、調整後の量子化データと目標データによって、前記目標データの調
整後量子化誤差を計算する。調整後量子化誤差は、第1誤差閾値よりも大きい場合がある
。つまり、一回調整後のデータのビット幅によって調整の目的を満たさない場合がある。
調整後量子化誤差が依然として第1誤差閾値よりも大きい場合、調整後データビット幅を
調整し続けることができる。つまり、最終的に得られた調整ビット幅と目標データによっ
て得られた調整後量子化誤差が第1誤差閾値よりも小さくなるまで、目標データに対応す
るデータビット幅を複数回増加することができる。
テップ長さにすることができる。たとえば、最終データビット幅=元のデータビット幅+
A*Nビットである。ここで、Nは増加するごとの固定される調整ステップ長さであり、
Aはデータビット幅の増加回数である。最終データビット幅=元のデータビット幅+M1
+M2+...+Mmであり、ここでM1、M2...Mmは、増加するごとの可変調整
ステップ長さである。
るデータビット幅を大きくして、目標データに対応する調整ビット幅を得る。第1誤差閾
値と調整ステップ長さを設定することでデータビット幅を増加することで、調整後データ
ビット幅は量子化需要を満たすことができる。1回の調整で調整需要を満たせない場合は
、データビット幅を複数回調整できる。第1誤差閾値と調整ステップ長さの設定により、
さまざまな量子化需要を満たすように、量子化需要に応じて量子化パラメータを柔軟に調
整でき、量子化精度を自体のデータ特性に応じて適応的に調整できる。
フローチャートを示す。図8Iに示されるように、ニューラルネットワーク量子化方法の
ステップS40は、以下を含む。
するデータビット幅を減少し、第2誤差閾値が第1誤差閾値よりも小さい。
差閾値を確定できる。量子化誤差は、第2誤差閾値と比較できる。量子化誤差が第2誤差
閾値よりも小さい場合、量子化誤差は予想を超えていると見なすことができるが、動作効
率が低すぎて許容できない。量子化精度を低下させてニューラルネットワークの動作効率
を向上させ、目標データに対応するデータビット幅を小さくすることで目標データの量子
化精度を低下させることができる。
ビット幅を得ることができる。固定の調整ステップ長さはNビットであってもよく、Nは
正整数である。データビット幅を調整するたびに、Nビット減少することができる。増加
後のデータビット幅=元データビット幅-Nビットである。
ト幅を得ることができる。例えば、量子化誤差と誤差閾値の差が第1閾値より大きい場合
、調整ステップ長さM1でデータビット幅を調整でき、量子化誤差と誤差閾値の差が第1
閾値より小さい場合、調整ステップ長さM2でデータビット幅を調整でき、ここでは、第
1閾値は第2閾値よりも大きく、M1はM2よりも大きい。需要に応じて可変な調整ステ
ップ長さを確定できる。この開示は、データビット幅の調整ステップ長さ、および調整ス
テップ長さが可変であるかどうかを制限しない。
子化パラメータを使用して目標データを再量子化することによって得られた量子化データ
は、調整前の量子化パラメータを使用して得られた量子化データよりも量子化精度が低い
。
ローチャートである。図8Jに示されるように、前記ニューラルネットワークの量子化方
法はさらに以下を含む。
整後量子化誤差を計算する。
誤差が第2誤差閾値以上になるまで、前記調整後量子化誤差と前記第2誤差閾値によって
前記調整ビット幅を減少し続ける。
1回調整して調整ビット幅を取得し、調整ビット幅に応じて調整後の量子化パラメータを
算出し、調整後の量子化パラメータに応じて目標データを量子化して調整後の量子化デー
タを取得する。次に、調整後の量子化データと目標データによって、前記目標データの調
整後量子化誤差を算出し、調整後量子化誤差は、やはり第2誤差閾値よりも大きいことが
ある。つまり、1回調整後のデータのビット幅によって調整の目的を満たさない場合があ
る。調整後量子化誤差が依然として第2誤差閾値よりも大きい場合、調整後データビット
幅を調整し続けることができる。つまり、最終的に得られた調整ビット幅と目標データに
よって得られた調整後量子化誤差は、第2誤差閾値よりも大きくなるまで、目標データに
対応するデータビット幅を複数回減少することができる。
テップ長さにすることができる。たとえば、最終データビット幅=元のデータビット幅-
A*Nビットである。ここで、Nは増加するごとの固定される調整ステップ長さであり、
Aはデータビット幅の増加回数である。最終データビット幅=元のデータビット幅-M1
-M2-...-Mmであり、ここでM1、M2...Mmは、減少するごとの可変調整
ステップ長さである。
るデータビット幅を小さくして、目標データに対応する調整ビット幅を得る。第2誤差閾
値を設定し、ステップ長さを調整することでデータビット幅を減少することで、調整後デ
ータビット幅は量子化需要を満たすことができる。1回の調整で調整需要を満たせない場
合は、データビット幅を複数回調整できる。第2誤差閾値と調整ステップ長さの設定によ
り、さまざまな量子化需要に応じて量子化パラメータを適合的に調整でき、異なる量子化
需要を満たし、量子化精度とニューラルネットワークの動作効率とのバランスがとれるよ
うにする。
ト幅を増加し、前記量子化誤差が第2誤差閾値より小さい場合、前記目標データに対応す
るデータビット幅を減少して、前記目標データに対応する調整ビット幅を得る。
すぎると示すために用いられ、データビット幅のビット数を増加することができ、第2誤
差閾値は量子化の精度が高すぎると示すために用いられ、データビット幅のビット数を減
少することができる。第1誤差閾値が第2誤差閾値より大きいと、目標データの量子化誤
差を同時に二つの誤差閾値と比較することができ、量子化誤差が第1誤差閾値より大きい
場合、データビット幅のビット数を増加し、量子化誤差が第2誤差閾値より大きい場合、
データビット幅のビット数を減少する。量子化誤差が第1誤差閾値と第2誤差閾値の間に
ある場合は、データビット幅を一定に保つことができる。
より、比較結果に応じてデータビット幅を増減することができ、第1誤差閾値と第2誤差
閾値とを利用してより柔軟にデータビット幅を調整することができる。データビット幅の
調整結果を、より量子化の需要に適合させるようにする。
ネットワーク(そのニューラルネットワークの重みは乱数とすることができる)に対して
複数回の反復演算(iteration)を行って、ニューラルネットワークの重みがプ
リセット条件を満たすようにする過程である。ここでは、1回の反復演算には、一般的に
、1回の順方向演算、1回の逆方向演算、および1回の重み更新演算が含まれる。順方向
演算とは、ニューラルネットワークの入力データから順方向推理を行い、順方向演算の結
果を得る過程である。逆方向演算とは、順方向の演算結果と予め設定された参照値に基づ
いて損失値を確定し、その損失値に基づいて重み勾配値を確定したり、データ勾配値を入
力したりする過程である。重み更新演算とは、重み勾配値に基づいてニューラルネットワ
ークの重みを調整する過程である。具体的には、ニューラルネットワークのトレーニング
過程は以下のとおりである。プロセッサは、重みを乱数とするニューラルネットワークを
用いて入力データに対して順方向演算を行って、順方向演算結果を得ることができる。そ
の後、プロセッサは、この順方向演算結果と予め設定された参照値に基づいて損失値を確
定し、その損失値に基づいて重み勾配値および/または入力データ勾配値を確定する。最
後に、プロセッサは重み勾配値に基づいてニューラルネットワークの勾配値を更新し、新
たな重み値を取得し、1回の反復演算を完了することができる。プロセッサは、ニューラ
ルネットワークの順方向演算の結果が予め設定された条件を満たすまで、複数の反復演算
を循環して実行する。たとえば、ニューラルネットワークの順方向演算結果が予め設定さ
れた参照値に収束した場合、トレーニングを終了する。あるいは、ニューラルネットワー
クの順方向演算結果と予め設定された参考値により確定された損失値が予め設定された精
度以下である場合、トレーニングを終了する。
るように、ニューラルネットワーク(このニューラルネットワークの重みは乱数ではなく
収束状態にある)に複数回の反復演算を実行することである。この微調整過程は、上記の
トレーニング過程とほぼ一致しており、収束状態にあるニューラルネットワークを再トレ
ーニングする過程であると考えられる。推理(Inference)とは、重みが予め設
定された条件を満たすニューラルネットワークを用いて順方向演算を行って、認識や分類
などの機能を実現する過程であり、例えば、ニューラルネットワークを用いて画像認識な
どを実行する。
程において、ニューラルネットワーク演算の異なる段階で異なる量子化パラメータを用い
てニューラルネットワークの演算データを量子化し、量子化したデータに基づいて反復演
算を行うことで、ニューラルネットワークの演算過程におけるデータストレージスペース
を減少させ、データアクセス効率および演算効率を向上させることができる。図8Kに示
すように、本開示の一実施形態の量子化パラメータ調整方法800Kのフローチャートで
あり、上記方法は以下を含むことができる:
ることができ、この量子化すべきデータのデータ変動幅はユーザが入力するものであって
もよい。
化すべきデータに基づいて、計算により、上記の量子化すべきデータのデータの変動幅を
得ることができ、ここでは、現在反復は現在実行されている反復演算であり、履歴反復は
現在反復の前に実行される反復演算である。たとえば、プロセッサは、現在反復の量子化
すべきデータにおける要素の最大値と要素の平均値、および各履歴反復の量子化すべきデ
ータ内の要素の最大値と要素の平均値を取得し、各反復の要素の最大値と要素の平均値に
基づいて、量子化すべきデータのデータ変動幅を確定することができる。現在反復の量子
化すべきデータにおける要素の最大値が予め設定された数の履歴反復の量子化すべきデー
タにおける要素の最大値に近く、かつ、現在反復の量子化すべきデータにおける要素の平
均値が、予め設定された数の履歴反復の量子化すべきデータにおける要素の平均値に近い
場合、上述した量子化すべきデータのデータ変動幅が小さいと判定できる。そうでなけれ
ば、量子化すべきデータのデータ変動幅が大きいと判定できる。また、この量子化すべき
データのデータ変動幅は、量子化すべきデータのスライディング平均値や分散などで表す
ことができるが、ここでは具体的には限定しない。
タの量子化パラメータを調整する必要があるか否かを判断するために利用することができ
る。例えば、量子化すべきデータのデータ変動幅が大きい場合、量子化の精度を保証する
ために、量子化パラメータをタイムリーに調整する必要があることを説明することができ
る。量子化すべきデータのデータ変動幅が小さい場合、現在の検証反復とその後の一定数
量の反復は履歴反復の量子化パラメータを引き続き使用することができ、それによって頻
繁に量子化パラメータを調整することを避け、量子化効率を高めることができる。
きデータは浮動小数点で表される演算データであってもよいし、固定小数点で表される演
算データであってもよい。任意選択可能に、各反復の量子化すべきデータは、ニューロン
データ、重みデータまたは勾配データのうちの少なくとも1つであってもよい。また、勾
配データは、ニューロン勾配データおよび重み勾配データ等を含んでもよい。
定することで、この目標反復間隔に基づいて、ニューラルネットワーク演算における量子
化パラメータを調整し、ここでは、前記目標反復間隔は、少なくとも1回の反復を含み、
前記ニューラルネットワークの量子化パラメータは、前記ニューラルネットワークの演算
における量子化すべきデータに対する量子化動作を実現するためのものである。ここで、
量子化パラメータはデータ幅を含むことができる。従って、ここでは、前記量子化すべき
データのデータ変動幅に基づいて、目標反復間隔を確定することで、この目標反復間隔に
基づいて、ニューラルネットワーク演算におけるデータ幅を調整することができ、前記目
標反復間隔は少なくとも1つの反復を含む。
リング係数を含むことができ、ここで、スケーリング係数は、第1スケーリング係数と第
2スケーリング係数を含むことができる。具体的な小数点位置の計算方法、スケーリング
係数の計算方法は上記の式を参照でき、ここでは説明しない。任意選択可能に、この量子
化パラメータは上述した式を参照することができるオフセットを含むことができる。更に
、プロセッサは、上記の他の式に従って小数点位置を確定し、スケーリング係数を確定す
ることもできる。本開示の実施形態では、プロセッサは、確定された目標反復間隔に基づ
いて、上記の小数点位置、スケーリング係数、またはオフセットの少なくとも1つを更新
して、このニューラルネットワーク演算における量子化パラメータを調整することができ
る。すなわち、このニューラルネットワーク演算における量子化パラメータは、ニューラ
ルネットワーク演算における量子化すべきデータのデータ変動幅に応じて更新することが
できる。これにより、量子化の精度を保証できる。
し分析することで、量子化すべきデータのデータ変動曲線を得ることができることが理解
できる。図8Lに示すように、このデータの変動曲線800Lからもわかるように、ニュ
ーラルネットワークのトレーニングまたは微調整の初期において、異なる反復の量子化す
べきデータのデータの変動は激しく、トレーニングまたは微調整の演算の進行に従って、
異なる反復の量子化すべきデータのデータ変動は徐々に緩やかになっている。そこで、ニ
ューラルネットのトレーニングや微調整の初期には、量子化パラメータを頻繁に調整する
ことができる。ニューラルネットワークのトレーニングまたは微調整の中期と後期におい
て、複数回の反復またはトレーニング周期おきに、量子化パラメーターを調整することが
できる。本開示の方法は、適切な反復間隔を確定することにより、量子化精度と量子化効
率のバランスをとるものである。
確定し、この目標反復間隔に基づいてニューラルネットワークの演算における量子化パラ
メータを調整することができる。任意選択可能に、この目標反復間隔は、量子化すべきデ
ータのデータ変動幅が小さくなるに伴って増加することができる。すなわち、この量子化
すべきデータのデータ変動幅が大きければ大きいほど、この目標反復間隔が小さく、量子
化パラメータの調整が頻繁であることを示す。この量子化すべきデータのデータ変動幅が
小さければ小さいほど、この目標反復間隔が大きく、量子化パラメータの調整が頻繁でな
いことを示す。もちろん、他の実施形態では、上記の目標反復間隔はハイパーパラメータ
であってもよく、例えば、この目標反復間隔はユーザがカスタマイズして設定してもよい
。
子化すべきデータがそれぞれ異なる反復間隔を有することができる。これに応じて、プロ
セッサは、各種の量子化すべきデータに対応するデータの変動幅をそれぞれ取得すること
ができ、これによって、それぞれの量子化すべきデータのデータ変動幅に応じて、対応す
る種類の量子化すべきデータに対応する目標反復間隔を確定する。すなわち、各種の量子
化すべきデータの量子化過程は非同期に行うことができる。本開示の実施形態によれば、
異なる種類の量子化すべきデータの間に差があるので、異なる量子化すべきデータのデー
タ変動幅を用いて、対応する目標反復間隔を確定することができる。そして、対応する目
標反復間隔に基づいて対応する量子化パラメータを確定し、それによって、量子化すべき
データの量子化の精度を保証でき、さらにニューラルネットワークの演算結果の正確性を
保証できる。
復間隔を確定して、この目標反復間隔に応じて量子化すべきデータに対応する量子化パラ
メータを調整することもできる。例えば、プロセッサは、各種の量子化すべきデータのデ
ータ変動幅をそれぞれ取得し、最大の量子化すべきデータのデータ変動幅に基づいて目標
反復間隔を確定し、この目標反復間隔に基づいて各種の量子化すべきデータの量子化パラ
メータを確定することができる。更に、異なる種類の量子化すべきデータはさらに同じ量
子化パラメータを用いることもできる。
含むことができ、この量子化すべきデータは、各演算層に係るニューロンデータ、重みデ
ータ、または勾配データのうちの少なくとも1つであってもよい。このとき、プロセッサ
は現在の演算層に係る量子化すべきデータを取得し、上記の方法により現在の演算層にお
ける各種の量子化すべきデータのデータ変動幅および対応する目標反復間隔を確定するこ
とができる。
べきデータのデータ変動幅を一回確定し、対応する量子化すべきデータのデータ変動幅に
基づいて、一回の目標反復間隔を確定することができる。つまり、プロセッサは各反復ご
とに目標反復間隔を1回計算できる。具体的な目標反復間隔の計算方法については、以下
の説明を参照できる。更に、プロセッサは、プリセットされた条件に基づいて、各反復か
ら検証反復を選択し、各検証反復において量子化すべきデータのデータ変動幅を確定し、
検証反復に対応する目標反復間隔に基づいて量子化パラメータ等を更新し調整することが
できる。このとき、この反復が選択された検証反復でない場合、プロセッサは、この反復
に対応する目標反復の間隔を無視できる。
反復は、この目標反復間隔の開始反復であってもよいし、この目標反復間隔の終了反復で
あってもよい。プロセッサは、各目標反復間隔の検証反復においてニューラルネットワー
クの量子化パラメータを調整して、目標反復間隔に応じてニューラルネットワーク演算の
量子化パラメータを調整することができる。ここで、検証反復は、現在の量子化パラメー
タが、量子化すべきデータの需要を満たしているかどうかを調べるための時点であっても
よい。この調整前量子化パラメータは、調整後の量子化パラメータと同じであってもよい
し、調整後の量子化パラメータと異なっていてもよい。任意選択可能に、隣接する検証反
復間の間隔は、目標反復の間隔以上であってもよい。
現在の検証反復は、この目標反復間隔の開始反復であってもよい。例えば、現在の検証反
復は100回目の反復であり、プロセッサは、量子化すべきデータのデータ変動幅に基づ
いて、目標反復間隔の反復間隔を3と確定すると、プロセッサは、この目標反復間隔に、
100回目の反復、101回目の反復、102回目の反復の3回の反復を含むことができ
る。プロセッサはこの100回目の反復においてニューラルネットワーク演算における量
子化パラメータを調整することができる。ここでは、現在の検証反復は、プロセッサが現
在、量子化パラメータの更新調整を行っているときの対応する反復演算である。
よく、この現在の検証反復は、現在の検証反復の一つ前の反復間隔の終了反復であっても
よい。例えば、現在の検証反復は100回目の反復であり、プロセッサは、量子化すべき
データのデータ変動幅に基づいて、目標反復間隔の反復間隔を3と確定すると、プロセッ
サは、この目標反復間隔に、101回目の反復、102回目の反復、103回目の反復の
3回の反復を含むことができる。プロセッサは、この100回目の反復と103回目の反
復において、ニューラルネットワーク演算における量子化パラメータを調整することがで
きる。本開示は、目標反復間隔の確定方式を具体的に限定しない。
算式から分かるように、量子化パラメータは、量子化すべきデータに関連していることが
多い。したがって、上述した動作S100では、量子化すべきデータのデータ変動幅は、
量子化パラメータの変動幅によって間接的に確定されてもよい。この量子化すべきデータ
のデータ変動幅は、量子化パラメータの変動幅によって表わされる。具体的に、図8Mは
本開示の一実施形態のパラメータ調整方法における目標反復間隔の確定方法800Mを示
すフローチャートである。上記操作S100は以下のステップをさらに含むことができる
。
前記量子化すべきデータのデータ変動幅を表すために用いることができ、前記小数点位置
の変動幅は、前記量子化すべきデータのデータ変動幅と正の相関がある。
に反映することができる。この小数点位置の変動幅は、現在の検証反復の小数点位置と少
なくとも1回の履歴反復の小数点位置に基づいて確定するものであってもよい。ここで、
現在の検証反復の小数点位置および各回の履歴反復の小数点位置は、上述した式によって
確定することができる。
どを計算し、その分散に基づいて小数点位置の変動幅を確定することもできる。また、プ
ロセッサは、現在の検証反復の小数点位置と履歴反復の小数点位置の平均値から、小数点
位置の変動幅を確定することができる。具体的に、図8Nに示すように、図8Nは本開示
の一実施形態における小数点位置の変動幅の確定方法800Nを示すフローチャートであ
る。上記の動作S110は、以下を含むことができる。
検証反復の前の履歴反復に対応する小数点位置とに基づいて、第1平均値を確定する。こ
こでは、前の検証反復は、前記量子化パラメータを前回調整したときの対応する反復であ
り、前の検証反復と前記現在の検証反復の間の間隔は少なくとも1つの反復の間隔である
。
とができ、各反復間隔は対応的に1つの検証反復があってもよく、隣接する2つの検証反
復には1つの反復間隔があってもよい。上記の動作S111における前の反復は、目標反
復間隔の一つ前の反復間隔に対応する検証反復であってもよい。
M1=a1xst-1+a2xst-2+a3xst-3+...+amxs1
式(38)
の検証反復に対応する小数点位置であり、st-2、st-3...s1は、前の検証反
復の前の履歴反復に対応する小数点位置であり、M1は上記の第1平均値である。更に、
データの分布特性によれば、履歴反復とこの前の反復との距離が遠ければ遠いほど、この
前の反復に近い反復の小数点位置の分布および変動幅への影響が小さくなるので、上記計
算重みはa1~amの順に減少させることができる。
反復は1回目の反復~99回目の反復であり得る場合、プロセッサはこの100回目の反
復の小数点位置(即ちs t-1 )を得ることができ、この100回目の反復の前の履歴反
復の小数点位置、即ちs 1 を得ることができ、ニューラルネットワークの1回目の反復に
対応する小数点位置……であり得て、s t-3 はニューラルネットワークの98回目の反
復に対応する小数点位置であり得て、s t-2 はニューラルネットワークの99回目の反
復に対応する小数点位置であり得る。更に、プロセッサは上記の式で計算して第1平均値
を得ることができる。
とができる。たとえば、この第1平均値は次の式で計算できる。
M1=a1xst-1+a2xst-2+a3xst-3+...+amxs1
1は前の検証反復に対応する小数点位置であり、st-2、st-3...s1は前の検
証反復の前のプリセット数量の反復間隔の検証反復に対応する小数点位置であり、M1は
上記の第1平均値である。
歴反復は1回目から99回目までの反復であり、この99回の反復は11反復間隔に分割
して属することができる。たとえば、1回目の反復から9回目の反復は1番目の反復間隔
に属し、10回目の反復から18回目の反復は2番目の反復間隔に属し……、90回目か
ら99回目は11反復間隔に属する。すると、プロセッサはこの100回目の反復の小数
点位置(即ちst-1)を得ることができ、かつこの100回目の反復の前の反復間隔に
おける検証反復の小数点位置を得ることができ、即ちs1はニューラルネットワークの1
番目の反復間隔の検証反復に対応する小数点位置であり得て(例えばs1はニューラルネ
ットワークの1回目の反復に対応する小数点位置)、……、st-3はニューラルネット
ワークの10番目の反復間隔の検証反復に対応する小数点位置であり得て(例えばst-
3はニューラルネットワークの81回目の反復に対応する小数点位置であり得て)、st
-2はニューラルネットワークの11番目の反復間隔の検証反復に対応する小数点位置で
あり得る(例えば、st-2はニューラルネットワークの90回目の反復に対応する小数
点位置であり得る)。更に、プロセッサは、上式の計算により第1平均M1を得ることが
できる。
ものとする。実際の使用では、この反復間隔に含まれる反復の数が異なってもよい。任意
選択可能に、この反復間隔に含まれる反復の数は反復の増加に従って増加し、即ち、ニュ
ーラルネットワークのトレーニングまたは微調整の実行に従って、反復間隔はますます大
きくなってもよい。
、上記の第1平均値M1は、以下の式によって計算できる。
M1=αxst-1+(1-α)xM0 式(39)
検証反復に対応する小数点位置であり、M0はこの前の検証反復の前の検証反復に対応す
るスライディング平均値であり、このM0の具体的な計算方式は、上記のM1の計算方式
を参照でき、ここでは説明しない。
歴反復の小数点位置とに基づいて第2平均値を確定する。ここで、現在の検証反復に対応
する小数点位置は、現在の検証反復の目標データビット幅および量子化すべきデータに基
づいて確定することができる。
M2=b1xst+b2xst-1+b3xst-2+...+bmxs 式(
40)
証反復に対応する小数点位置であり、st-1、st-2...s1は現在検証反復の前
の履歴反復に対応する小数点位置であり、M2は上記の第2平均値である。更に、データ
の分布特性によれば、履歴反復とこの現在反復との距離が遠ければ遠いほど、この現在検
証反復に近い反復の小数点位置の分布および変動幅への影響が小さくなるので、上記計算
重みはb1~bmの順に減少させることができる。
この現在の検証反復の前の履歴反復は1回目の反復から100回目の反復を指す。すると
、プロセッサはこの101回目の反復の小数点位置を得ることができ(即ちs t )、かつ
この101回目の反復の前の履歴反復の小数点位置を得ることができ、即ちs1は、ニュ
ーラルネットワークの第1回目の反復に対応する小数点位置であり得て……、st-2は
、ニューラルネットワークの99回目の反復に対応する小数点位置であり得て、st-1
はニューラルネットワークの100回目の反復に対応する小数点位置であり得る。更に、
プロセッサは、上式の計算により第2平均M2を得ることができる。
算出することができる。具体的に、図80に示すように、本開示の一実施形態における第
2平均値の確定方法8000を示すフローチャートである。以上の動作S112は、以下
の動作を含むことができる。
S1121では、予め設定された数の中間スリップ平均値を取得し、ここで、各前記中
間スライディング平均値は、前記現在の検証反復の前の前記予め設定された数の検証反復
に基づいて確定され、前記検証反復は前記ニューラルネットワーク量子化過程におけるパ
ラメータを調整する際に対応する反復である。
スライディング平均値に基づいて前記第2平均値を確定する。
M2=b1xst+b2xst-1+b3xst-2+...+bmxs1
現在検証反復に対応する小数点位置であり、st-1、st-2...s1 は現在検証反
復の前の検証反復に対応する小数点位置であり、M2は上記の第2平均値である。
での反復であり、この99回の反復は11反復間隔に分割して属することができる。たと
えば、1回目の反復から9回目の反復は1番目の反復間隔に属し、10回目の反復から1
8回目の反復は2番目の反復間隔に属し……、90回目から99回目は11反復間隔に属
する。すると、プロセッサはこの100回目の反復の小数点位置(即ちst)を得ること
ができ、かつこの100回目の反復の前の反復間隔における検証反復の小数点位置を得る
ことができ、即ちs1はニューラルネットワークの1番目の反復間隔の検証反復に対応す
る小数点位置であり得て(例えばs1はニューラルネットワークの1回目の反復に対応す
る小数点位置)、……、st-2はニューラルネットワークの10番目の反復間隔の検証
反復に対応する小数点位置であり得て(例えばst-2はニューラルネットワークの81
回目の反復に対応する小数点位置であり得て)、st-1はニューラルネットワークの1
1番目の反復間隔の検証反復に対応する小数点位置であり得る(例えば、st-1はニュ
ーラルネットワークの90回目の反復に対応する小数点位置であり得る)。更に、プロセ
ッサは、上式の計算により第2平均M2を得ることができる。
ものとする。実際の使用では、この反復間隔に含まれる反復の数が異なってもよい。任意
選択可能に、この反復間隔に含まれる反復の数は、反復の増加に従って増加し、即ち、ニ
ューラルネットワークのトレーニングまたは微調整の実行に従って、反復間隔はますます
大きくなってもよい。
ッサは、前記現在の検証反復に対応する小数点位置および第1平均値に基づいて、前記第
2平均値を確定することができ、すなわち、前記第2平均値は次の式を用いて計算するこ
とができる。
M2=βxst+(1-β)xM1 式(41)
1平均値である。
記第1誤差は、前記現在の検証反復および前記履歴反復の小数点位置の変動幅を表すため
に用いられる。
することができる。具体的には、上記の第1誤差は、以下の式により算出することができ
る。
diffupdate1=|M2-M1|=β|s(t)-M1| 式(42
)
べきデータと現在の検証反復に対応する目標データビット幅とに基づいて確定することが
でき、具体的な小数点位置の計算方法については、上記の式を参照することができる。こ
こで、上記現在の検証反復に対応する目標データビット幅は、ハイパーパラメータであっ
てもよい。さらに任意選択可能に、この現在の検証反復に対応する目標データビット幅は
ユーザがカスタマイズして入力することができる。任意選択可能に、ニューラルネットワ
ークのトレーニングまたは微調整における量子化すべきデータに対応するデータビット幅
は、一定であってもよい。すなわち、同一のニューラルネットワークの同じ種類の量子化
すべきデータは、同じデータビット幅を用いて量子化される。例えば、このニューラルネ
ットワークの各反復におけるニューロンデータは、いずれも8ビットのデータビット幅を
用いて量子化する。
子化すべきデータに対応するデータビット幅は可変とし、これにより、データビット幅が
量子化すべきデータの量子化需要を満たせることを保証する。つまり、プロセッサは、量
子化すべきデータに応じて、この量子化すべきデータに対応するデータビット幅を適応的
に調整し、この量子化すべきデータに対応する目標データビット幅を得ることができる。
具体的には、プロセッサは、まず、現在の検証反復に対応する目標データのビット幅を確
定することができ、その後、プロセッサは、この現在の検証反復に対応する目標データビ
ット幅およびこの現在の検証反復に対応する量子化すべきデータに基づいて、現在の検証
反復に対応する小数点位置を確定することができる。
対応的に小数点位置の変化が生じる。しかし、このときの小数点位置の変化は、量子化す
べきデータのデータ変動によるものではなく、上述の式(42)で確定される第1誤差で
算出された目標反復間隔が正確ではない可能性があるため、量子化の精度に影響を及ぼす
可能性がある。したがって、現在の検証反復のデータビット幅が変化した場合には、第1
誤差が小数点位置の変動幅を正確に反映することを保証し、さらに目標反復間隔の正確性
と確実性を保証するために上記の第2平均値を適宜調整してもよい。具体的には、図8P
に示すように、本開示の他の実施形態における第2平均値の確定方法800Pを示すフロ
ーチャートである。上記の方法はさらに以下を含んでもよい。
ト幅調整値を確定する。
に基づいて、現在の検証反復のデータビット幅の調整値を確定することができる。ここで
、このデータビット幅の調整値=目標データビット幅-初期データビット幅である。もち
ろん、プロセッサは現在の検証反復のデータビット幅の調整値を直接得ることができる。
いて更新する。
えば、予め設定されたパラメーターがゼロに等しくてもよい)、つまり、現在の検証反復
のデータビット幅が増加する場合、プロセッサはそれに応じて第2平均値を減少すること
ができる。データビット幅の調整値が予め設定されたパラメータより小さい場合(例えば
、この予め設定されたパラメータがゼロであってもよい)、つまり、現在の検証反復のデ
ータビット幅が減少する場合、プロセッサは、それに応じて第2平均値を増加させること
ができる。データビット幅調整値が予め設定されたパラメーターに等しい場合、即ちデー
タビット幅調整値が0に等しい場合、このとき、現在反復に対応する量子化すべきデータ
は変更されず、更新後の第2平均値は更新前の第2平均値に等しくなり、この更新前の第
2平均値は上記式(41)の計算により求められる。任意選択可能に、データビット幅の
調整値が予め設定されたパラメータに等しい場合、すなわち、データビット幅の調整値が
0である場合、プロセッサは、第2平均値を更新しなくてもよい。つまり、プロセッサは
、上記の動作S117を行わなくてもよい。
する目標データビット幅n2=初期データビット幅n1+Δnの場合、ここでは、Δnは
データビット幅調整値を表す。このとき、更新後の第2平均値M2=β×(st-Δn)
+(1-β)×(M1-Δn)である。現在検証反復に対応する目標データビット幅n2
=初期データビット幅n1-Δnの場合、ここでは、Δnはデータビット幅調整値を表し
、このとき、更新後の第2平均値M2=β×(st-Δn)+(1-β)×(M1+Δn
)であり、ここでは、st とは、現在検証反復が目標データビット幅によって確定される
小数点位置を指す。
する目標データビット幅n2=初期データビット幅n1+Δnの場合、ここでは、Δnは
データビット幅調整値を表す。このとき、更新後の第2平均値M2=β×st+(1-β
)×M1-Δnである。例えば、現在検証反復に対応する目標データビット幅n2=初期
データビット幅n1-Δnの場合、ここでは、Δnはデータビット幅調整値を表し、この
とき、更新後の第2平均値M2=β×st+(1-β)×M1+Δnであり、ここでは、
st とは、現在検証反復が目標データビット幅によって確定される小数点位置を指す。
、上記の小数点位置の変動幅と負の相関がある。すなわち、上記の小数点位置の変動幅が
大きいほど、その目標反復間隔は小さくなる。上記の小数点位置の変動幅が小さいほど、
この目標反復間隔は大きくなる。
、以下を含んでもよい。
ここでは、目標反復間隔は、前記第1誤差と負の相関がある。すなわち、第1誤差が大き
いほど、小数点位置の変化幅が大きく、さらに、量子化すべきデータのデータ変動幅が大
きいことを示し、このとき、目標反復間隔は小さくなる。
、δとγはハイパーパラメータであり得る。
が大きいほど、小数点位置の変動幅が大きいことを示し、さらに、量子化すべきデータの
データ変動幅が大きいほど、目標反復間隔を小さく設定する必要があることを示す。すな
わち、第1誤差が大きいほど量子化パラメータの調整が頻繁に行われる。
に基づいて目標反復間隔を確定する。量子化パラメータは、目標反復間隔に応じて確定さ
れるので、量子化パラメータに基づいて量子化して得られた量子化データは、目標データ
の小数点位置の変動傾向にさらに適合することができ、量子化の精度を保証するとともに
、ニューラルネットワークの動作効率を向上させる。
検証反復で、目標反復間隔に対応する量子化パラメータとデータビット幅等のパラメータ
を更に確定することで、目標反復間隔に応じて量子化パラメータを更新することができる
。ここで、量子化パラメータには、小数点位置および/またはスケーリング係数を含むこ
とができる。更に、この量子化パラメータは、オフセットをさらに含むことができる。こ
の量子化パラメータの具体的な計算方法については、上記の説明を参照してもよい。図8
Qに示すように、本開示の他の実施形態における量子化パラメータ調整方法800Qを示
すフローチャートであり、上述した方法はさらに以下を含むことができる。
における量子化パラメータを調整する。
標反復間隔を更新してもよく、さらに各検証反復で量子化パラメータを更新してもよい。
たとえば、ニューラルネット演算におけるデータビット幅は一定に保ち、この場合、プロ
セッサは、各検証反復において、そのまま検証反復の量子化すべきデータに基づいて、小
数点位置などの量子化パラメータを調整することができる。このように、ニューラルネッ
トワーク演算におけるデータビット幅は可変であり、このとき、プロセッサは、各検証反
復において、データビット幅を更新し、更新されたデータビット幅とこの検証反復の量子
化すべきデータに基づき、小数点位置などの量子化パラメータを調整することができる。
て、現在の量子化パラメータが量子化すべきデータの量子化ニーズを満たすことを保証す
る。ここでは、更新前の目標反復間隔は、更新後の目標反復間隔と同じであってもよいし
、異なってもよい。更新前のデータビット幅は、更新後のデータビット幅と同じであって
もよいし、異なっていてもよい。すなわち、異なる反復間隔のデータビット幅は、同一で
あっても異なっていてもよい。更新前の量子化パラメータと更新後の量子化パラメータは
同じであってもよいし、異なっていてもよい。すなわち、異なる反復間隔の量子化パラメ
ータは、同一であっても異なっていてもよい。
反復間隔における量子化パラメータを確定して、ニューラルネットワークの演算における
量子化パラメータを調整することができる。
幅は変化せず、即ち、このニューラルネットワーク演算における各反復に対応するデータ
ビット幅はすべて同じであり、このとき、プロセッサは目標反復間隔における小数点位置
などの量子化パラメータを確定することで、目標反復間隔に応じてニューラルネットワー
ク演算における量子化パラメータの調整を行うという目的を実現することができる。ここ
で、この目標反復間隔における反復に対応する量子化パラメータは、一致してもよい。す
なわち、目標反復間隔における各反復は同じ小数点位置を採用し、ただ各反復毎に小数点
位置などの量子化パラメータを更新し確定するだけである。これにより、反復ごとに量子
化パラメータを更新調整する必要がなくなり、量子化における計算量を減少し、量子化操
作の効率を向上させる。
ける反復の対応する小数点位置は一致に保つことができる。具体的には、プロセッサは、
現在の検証反復の量子化すべきデータと、現在の検証反復に対応する目標データのビット
幅とに基づいて、現在の検証反復に対応する小数点位置を確定し、かつ現在の検証反復に
対応する小数点位置を、この目標検証反復に対応する小数点位置として使用し、この目標
反復間隔における反復はいずれも現在検証反復に対応する小数点位置を引き続き使用する
ことができる。任意選択可能に、この現在の検証反復に対応する目標データビット幅はハ
イパーパラメータであってもよい。たとえば、この現在の検証反復に対応する目標データ
ビット幅はユーザがカスタマイズして入力する。この現在の検証の反復に対応する小数点
位置は、上記の式によって計算することができる。
幅は変化することができ、即ち、異なる目標反復間隔に対応するデータビット幅は一致し
なくてもよいが、目標反復間隔における各反復のデータビット幅は不変である。ここで、
この目標反復間隔における反復に対応するデータのビット幅は、ハイパーパラメータであ
ってもよい。たとえば、この目標反復間隔における反復に対応するデータのビット幅は、
ユーザがカスタマイズして入力することができる。一態様では、この目標反復間隔におけ
る反復に対応するデータビット幅は、例えば、プロセッサ計算によって得られたものであ
ってもよい。例えば、プロセッサは、現在の検証反復の量子化すべきデータに基づいて、
現在の検証反復に対応する目標データビット幅を確定し、この現在の検証反復に対応する
目標データビット幅を目標反復間隔に対応するデータビット幅とする。
対応する小数点位置などの量子化パラメータも一定に保つことができる。すなわち、目標
反復間隔における各反復は同じ小数点位置を採用し、ただ各反復毎に小数点位置などの量
子化パラメータおよびデータビット幅を更新し確定するだけである。これにより、反復ご
とに量子化パラメータを更新調整する必要がなくなり、量子化における計算量を減少し、
量子化操作の効率を向上させる。
して、目標反復間隔における反復の対応する小数点位置は一致に保つことができる。具体
的には、プロセッサは、現在の検証反復の量子化すべきデータと、現在の検証反復に対応
する目標データのビット幅とに基づいて、現在の検証反復に対応する小数点位置を確定し
、かつ現在の検証反復に対応する小数点位置を、この目標検証反復に対応する小数点位置
として使用し、この目標反復間隔における反復はいずれも現在検証反復に対応する小数点
位置を引き続き使用することができる。任意選択可能に、この現在の検証反復に対応する
目標データビット幅は、ハイパーパラメータであってもよい。たとえば、この現在の検証
反復に対応する目標データビット幅はユーザがカスタマイズして入力する。この現在の検
証の反復に対応する小数点位置は、上記の式によって計算することができる。
よい。プロセッサは現在の検証反復の量子化すべきデータに基づいて、現在の検証反復に
対応するスケーリング係数を確定し、この現在の検証反復に対応するスケーリング係数を
目標反復間隔における各回の反復のスケーリング係数とすることができる。ここでは、こ
の目標反復間隔における反復に対応するスケーリング係数が一致している。
ロセッサは、現在の検証反復の量子化すべきデータに基づいて、現在の検証反復に対応す
るオフセットを確定し、この現在の検証反復に対応するオフセットを目標反復間隔におけ
る各反復のオフセットとすることができる。更に、プロセッサは量子化すべきデータの全
ての要素における最小値と最大値を確定し、さらに小数点位置とスケジューリング係数等
の量子化パラメータを確定することができ、具体的に以上の説明を参照できる。この目標
反復間隔における反復に対応するオフセットは、一致してもよい。
すなわち、目標反復間隔に対応する検証反復は、目標反復間隔の開始反復であってもよい
。たとえば、現在の検証反復は100回目の反復であり、プロセッサは、量子化すべきデ
ータのデータの変動幅に基づいて、目標反復間隔の反復間隔を3に確定すると、プロセッ
サは、この目標反復間隔には100回目、101回目、102回目の三回の反復が含まれ
ると判断できる。さらに、プロセッサは、100回目の反復に対応する量子化すべきデー
タと目標データビット幅に基づいて、この100回目の反復に対応する小数点位置などの
量子化パラメータを確定することができ、かつ、この100回目の反復に対応する小数点
位置などの量子化パラメータを用いて、100回目の反復、101回目の反復と102回
目の反復に対して量子化を行うことができる。このように、101回目の反復と102回
目の反復では、小数点位置などの量子化パラメータを計算する必要がなく、量子化におけ
る計算量を減少し、量子化操作の効率を向上させる。
ことができ、すなわち、この目標反復間隔に対応する検証反復は、この目標反復間隔の終
了反復であってもよい。たとえば、現在の検証反復は100回目の反復であり、プロセッ
サは、量子化すべきデータのデータの変動幅に基づいて、目標反復間隔の反復間隔を3に
確定する。この場合、プロセッサは、この目標反復間隔には101回目、102回目、1
03回目の三回の反復が含まれると判断できる。さらに、プロセッサは、100回目の反
復に対応する量子化すべきデータと目標データビット幅に基づいて、この100回目の反
復に対応する小数点位置などの量子化パラメータを確定することができ、かつ、この10
0回目の反復に対応する小数点位置などの量子化パラメータを用いて、101回目の反復
、102回目の反復と103回目の反復に対して量子化を行うことができる。このように
、102回目の反復と103回目の反復では、小数点位置などの量子化パラメータを計算
する必要がなく、量子化における計算量を減少し、量子化操作の効率を向上させる。
幅および量子化パラメータは、いずれも一致しており、すなわち、同じ目標反復間隔にお
ける各回の反復に対応するデータビット幅、小数点位置、スケーリング係数およびオフセ
ットは、いずれも一定に保ち、これによって、ニューラルネットワークのトレーニングま
たは微調整の過程において、量子化すべきデータの量子化パラメータを頻繁に調整するこ
とを避け、量子化過程における計算量を減少し、量子化効率を高めることができる。しか
も、トレーニングまたは微調整の異なる段階でデータの変動幅に応じて量子化パラメータ
を動的に調整することで、量子化の精度を保証することができる。
ト幅は変化することができるが、目標反復間隔における各反復のデータビット幅は不変で
ある。このとき、目標反復間隔における反復に対応する小数点位置などの量子化パラメー
タが一致しなくてもよい。プロセッサはまた現在の検証反復に対応する目標データビット
幅に基づいて、目標反復間隔に対応するデータビット幅を確定することができ、ここでは
、目標反復間隔における反復に対応するデータビット幅は一致する。その後、プロセッサ
はこの目標反復間隔に対応するデータのビット幅と小数点位置の反復間隔に応じて、ニュ
ーラルネットワークの演算における小数点位置などの量子化パラメータを調整することが
できる。任意選択可能に、図8Rに示すように、本開示の実施形態における量子化パラメ
ータ調整方法800Rを示すフローチャートであり、上述した方法S300はさらに以下
を含むことができる。
するデータビット幅を確定する。ここでは、この目標反復間隔における反復に対応するデ
ータビット幅が一致している。すなわち、ニューラルネットワークの演算におけるデータ
ビット幅は、1つの目標反復間隔ごとに更新される。任意選択可能に、この目標反復間隔
に対応するデータビット幅は現在の検証反復の目標データビット幅であってもよい。この
現在の検証反復の目標データのビット幅は、上記の操作S114およびS115を参照す
ることができ、ここでは説明しない。
すなわち、目標反復間隔に対応する検証反復は、目標反復間隔の開始反復であってもよい
。たとえば、現在の検証反復は100回目の反復であり、プロセッサは、量子化すべきデ
ータのデータの変動幅に基づいて、目標反復間隔の反復間隔を6に確定すると、プロセッ
サは、この目標反復間隔には100回目の反復から105回目の反復の6回の反復が含ま
れると判断できる。この場合、プロセッサは、100回目の反復の目標データビット幅を
確定することができ、101回目の反復から105回目の反復までは、この100回目の
反復の目標データビット幅を引き続き使用し、101回目の反復から105回目の反復ま
で、目標データビット幅を計算する必要がなく、これにより、計算量を減少し、量子化効
率および演算効率を向上させる。その後、106回目の反復を現在の検証反復とし、上記
の目標反復間隔の確定、およびデータビット幅の更新の操作を繰り返すことができる。
ことができ、すなわち、この目標反復間隔に対応する検証反復は、この目標反復間隔の終
了反復であってもよい。たとえば、現在の検証反復は100回目の反復であり、プロセッ
サは、量子化すべきデータのデータの変動幅に基づいて、目標反復間隔の反復間隔を6に
確定する。この場合、プロセッサは、この目標反復間隔には101回目の反復から106
回目の反復の6回の反復が含まれると判断できる。この場合、プロセッサは、100回目
の反復の目標データビット幅を確定することができ、101回目の反復から106回目の
反復までは、この100回目の反復の目標データビット幅を引き続き使用し、101回目
の反復から106回目の反復まで、目標データビット幅を計算する必要がなく、これによ
り、計算量を減少し、量子化効率および演算効率を向上させる。その後、106回目の反
復を現在の検証反復とし、上記の目標反復間隔の確定、およびデータビット幅の更新の操
作を繰り返すことができる。
対応するデータビット幅に基づいて、前記目標反復間隔における反復に対応する小数点位
置を調整して、前記ニューラルネットワーク演算における小数点位置等の量子化パラメー
タを調整する。
の反復間隔における反復の小数点位置は一致している。任意選択可能に、この小数点位置
の反復間隔は、ハイパーパラメータであってもよい。たとえば、この小数点位置反復間隔
は、ユーザがカスタマイズして入力することができる。
数点位置の反復間隔が上記の目標反復間隔と同じである場合、プロセッサは現在の検証反
復でデータビット幅と小数点位置などの量子化パラメータを同期的に更新することができ
る。さらに任意選択可能に、目標反復間隔における反復に対応するスケーリング係数は一
致してもよい。更に、この目標反復間隔における反復に対応するオフセットは、一致して
もよい。このとき、この目標反復間隔における反復に対応するデータビット幅と小数点位
置などの量子化パラメータはいずれも同じであり、これにより、計算量を減少し、量子化
効率と演算効率を向上させることができる。具体的な実現過程は上述した実施形態と基本
的に一致しており、上述した説明を参照することができ、ここではこれ以上説明しない。
間隔に対応する検証反復においてデータビット幅と小数点位置などの量子化パラメータを
更新し、その位置反復間隔で確定されたサブ検証反復において小数点位置などの量子化パ
ラメータを更新することができる。データビット幅が不変である場合、小数点位置などの
量子化パラメータは、量子化すべきデータに応じて微調整することができるので、量子化
の精度をさらに向上させるために、同じ目標反復間隔内で小数点位置等の量子化パラメー
タを調整してもよい。
検証反復を確定することができ、このサブ検証反復は小数点位置を調整するために使用さ
れ、このサブ検証反復は目標反復間隔における反復であってもよい。更に、プロセッサは
、サブ検証反復の量子化すべきデータと目標反復間隔に対応するデータビット幅に基づい
て、目標反復間隔における反復に対応する小数点位置を調整することができ、ここでは、
小数点位置の確定方式は上記の式を参照してもよいが、ここではこれ以上述べない。
標反復間隔に含まれる反復は100回目の反復から105回目の反復である。プロセッサ
が取得した小数点位置反復間隔はIs1=3であると、現在検証反復から三回の反復ごと
に小数点位置を調整する。具体的には、プロセッサは、100回目の反復を上記のサブ検
証反復とし、この100回目の反復に対応する小数点位置s1を求め、100回目の反復
、101回目の反復、102回目の反復において共通小数点位置s1を共用して量子化を
行う。その後、プロセッサは、小数点位置の反復間隔に応じて、103回目の反復を上述
したサブ検証反復とすることができ、また、プロセッサは、103回目の反復に対応する
量子化すべきデータと目標反復間隔に対応するデータビット幅nから、第2小数点位置反
復間隔に対応する小数点位置s2を確定することもできる。この場合、103回目の反復
から105回目の反復では、上記の小数点位置s2を共用して量子化を行うことができる
。本開示の実施形態では、上記の更新前の小数点位置s1と更新後の小数点位置s2との
値は同じであってもよいし、異なっていてもよい。更に、プロセッサは、106回目の反
復で、改めて量子化すべきデータのデータ変動幅に応じて、次の目標反復間隔、およびこ
の次の目標反復間隔に対応するデータビット幅と小数点位置などの量子化パラメータを確
定することができる。
標反復間隔に含まれる反復は101回目の反復から106回目の反復である。プロセッサ
が取得した小数点位置反復間隔はIs1=3であると、現在検証反復から三回の反復ごと
に小数点位置を調整する。具体的には、プロセッサは、現在の検証反復の量子化すべきデ
ータと現在の検証反復に対応する目標データビット幅n1とに基づいて、第1小数点位置
の反復間隔に対応する小数点位置をs1として確定することができる。この場合、101
回目の反復、102回目の反復と103回目の反復では上記の小数点位置s1を共用して
量子化を行う。その後、プロセッサは、小数点位置の反復間隔IS1に応じて、104回
目の反復を上述したサブ検証反復とすることができ、また、プロセッサは、104回目の
反復に対応する量子化すべきデータと目標反復間隔に対応するデータビット幅n1から、
第2小数点位置反復間隔に対応する小数点位置s2を確定することもできる。この場合、
104回目の反復から106回目の反復では、上記の小数点位置s2を共用して量子化を
行うことができる。本開示の実施形態では、上記の更新前の小数点位置s1と更新後の小
数点位置s2との値は同じであってもよいし、異なっていてもよい。更に、プロセッサは
、106回目の反復で、改めて量子化すべきデータのデータ変動幅に応じて、次の目標反
復間隔、およびこの次の目標反復間隔に対応するデータビット幅と小数点位置などの量子
化パラメータを確定することができる。
数点位置が1回更新される。任意選択可能に、この小数点位置の反復間隔は同じであって
もよいし、異なっていてもよい。たとえば、この目標反復間隔に含まれる少なくとも1つ
の小数点位置の反復間隔は順に増加することができる。ここでは単に本実施形態の実施形
態を例示し、本開示を限定するものではない。
もよい。さらに任意選択可能に、このスケーリング係数は、上述した小数点位置に同期し
て更新されてもよい。つまり、このスケーリング係数に対応する反復間隔は、上記の小数
点位置の反復間隔と同じであってもよい。つまり、プロセッサが小数点位置を更新確定す
るたびに、それに応じてスケーリング係数を更新確定する。
もよい。更に、このオフセットは、上述した小数点位置に同期して更新されてもよい。つ
まり、このオフセットに対応する反復間隔は、上記の小数点位置の反復間隔と同じであっ
てもよい。つまり、プロセッサが小数点位置を更新確定するたびに、それに応じてオフセ
ットを更新確定する。もちろん、このオフセットは、上記の小数点位置またはデータビッ
ト幅に非同期的に更新することもできるが、ここでは特に制限されない。更に、プロセッ
サは量子化すべきデータの全ての要素における最小値と最大値を確定し、さらに小数点位
置とスケジューリング係数等の量子化パラメータを確定することができ、具体的に以上の
説明を参照できる。
ビット幅の変化とに基づいて、総合的に、量子化すべきデータのデータ変動幅を確定し、
この量子化すべきデータのデータ変動幅に基づいて、目標反復間隔を確定することができ
る。ここでは、この目標反復間隔は、データビット幅を更新確定するために使用できる。
つまり、プロセッサは、各目標反復間隔の検証反復において、データビット幅を更新確定
することができる。小数点位置は、固定小数点データの精度を反映することができ、デー
タビット幅は、固定小数点データのデータ表示範囲を反映することができるので、小数点
位置の変動幅と、量子化すべきデータのデータビット幅の変化とを統合することによって
、量子化されたデータは精度とデータ表示範囲の満足の両立が可能である。任意選択可能
に、小数点位置の変化幅は上述した第1誤差を用いて表すことができ、ビット幅の変化は
上記の量子化誤差に基づいて確定することができる。具体的には、図8Sに示すように、
本開示の他の実施形態におけるパラメータ調整方法における目標反復間隔の確定方法80
0Sを示すフローチャートであり、上記方法は、以下を含んでもよい。
この小数点位置の変動幅は、量子化すべきデータのデータ変動幅を表すことができる。具
体的には、上記の第1誤差の算出方法については、上述の操作S110の説明を参照でき
、ここでは述べない。
基づいて確定することができる。具体的には、図8Tに示すように、本開示の他の実施形
態におけるパラメータ調整方法における目標反復間隔の確定方法800Tを示すフローチ
ャートであり、上記操作S500は、以下を含んでもよい。
ける量子化データとに基づいて量子化誤差を確定する。ここでは、前記現在の検証反復の
量子化データは、初期データビット幅に基づいて、前記現在の検証反復の量子化データを
量子化することで得られる。ここでは、具体的な量子化誤差の算出方法については、上述
の操作S114の説明を参照でき、ここでは説明しない。
量子化誤差と正の相関を有する。
diffupdate2=θ*diff bit 2 式(
44)
量子化誤差を表し、θはハイパーパラメータであってもよい。
する。
標誤差に基づいて目標反復間隔を確定する。任意選択可能に、目標誤差は第1誤差と第2
誤差を加重平均して算出することができる。例えば、目標誤差=K*第1誤差+(1-K
)*第2誤差であり、ここでは、Kはハイパーパラメータである。その後、プロセッサは
この目標誤差に基づいて目標反復間隔を確定し、目標反復間隔はこの目標誤差と負の相関
を有する。つまり、目標の誤差が大きいほど、目標反復間隔は小さい。
いて確定されてもよく、このとき、第1誤差または第2誤差の重みは0である。具体的に
は、図8Tに示すように、上記操作S600は以下を含んでもよい:
date2の大きさを比較してもよく、第1誤差diffupdate1が第2誤差di
ffupdate2より大きい場合、この目標誤差は第1誤差diffupdate1 に
等しい。第1誤差diffupdate1が第2誤差より小さい場合、この目標誤差は第
2誤差diffupdate2 に等しい。第1誤差diffupdate1が第2誤差に
等しい場合、この目標誤差は第1誤差diffupdate1または第2誤差diffu
pdate2であってもよい。即ち目標誤差diffupdateは下式で確定すること
ができる。
差であり、diffupdate2は第2誤差である。
標誤差は前記目標反復間隔と負の相関がある。具体的には、目標反復間隔は以下の方式で
確定することができる。
δとγはハイパーパラメータであってもよい。
ビット幅が可変であり、第2誤差によりデータビット幅の変化傾向を評価することができ
る。この状況で、図8Tに示すように、プロセッサは、目標反復間隔を確定した後、操作
S630を実行し、目標反復間隔における反復に対応するデータビット幅を確定すること
ができ、ここでは、この目標反復間隔における反復に対応するデータビット幅は一致して
いる。具体的に、プロセッサは現在の検証反復の量子化すべきデータに基づいて、目標反
復間隔に対応するデータビット幅を確定する。すなわち、ニューラルネットワークの演算
におけるデータビット幅は、1つの目標反復間隔ごとに更新される。任意選択可能に、こ
の目標反復間隔に対応するデータビット幅は現在の検証反復の目標データビット幅であっ
てもよい。この現在の検証反復の目標データのビット幅は、上記の操作S114およびS
115を参照することができ、ここでは説明しない。
すなわち、目標反復間隔に対応する検証反復は、目標反復間隔の開始反復であってもよい
。たとえば、現在の検証反復は100回目の反復であり、プロセッサは、量子化すべきデ
ータのデータの変動幅に基づいて、目標反復間隔の反復間隔を6に確定すると、プロセッ
サは、この目標反復間隔には100回目の反復から105回目の反復の6回の反復が含ま
れると判断できる。この場合、プロセッサは、100回目の反復の目標データビット幅を
確定することができ、101回目の反復から105回目の反復までは、この100回目の
反復の目標データビット幅を引き続き使用し、101回目の反復から105回目の反復ま
で、目標データビット幅を計算する必要がなく、これにより、計算量を減少し、量子化効
率および演算効率を向上させる。その後、106回目の反復を現在の検証反復とし、上記
の目標反復間隔の確定、およびデータビット幅の更新の操作を繰り返すことができる。
ことができ、すなわち、この目標反復間隔に対応する検証反復は、この目標反復間隔の終
了反復であってもよい。たとえば、現在の検証反復は100回目の反復であり、プロセッ
サは、量子化すべきデータのデータの変動幅に基づいて、目標反復間隔の反復間隔を6に
確定する。この場合、プロセッサは、この目標反復間隔には101回目の反復から106
回目の反復の6回の反復が含まれると判断できる。この場合、プロセッサは100回目の
反復の目標データビット幅を確定することができ、101回目の反復から106回目の反
復までは、この100回目の反復の目標データビット幅を引き続き使用し、101回目の
反復から106回目の反復まで、目標データビット幅を計算する必要がなく、これにより
、計算量を減少し、量子化効率および演算効率を向上させる。その後、106回目の反復
を現在の検証反復とし、上記の目標反復間隔の確定、およびデータビット幅の更新の操作
を繰り返すことができる。
確定して、目標反復間隔に基づいてニューラルネットワークの演算における量子化パラメ
ータを調整することができる。即ち、このニューラルネットワーク演算における小数点位
置等の量子化パラメータはデータビット幅と同期して更新することができる。
もよい。具体的には、プロセッサは、現在の検証反復の量子化すべきデータと、現在の検
証反復に対応する目標データのビット幅とに基づいて、現在の検証反復に対応する小数点
位置を確定し、かつ現在の検証反復に対応する小数点位置を、この目標検証反復に対応す
る小数点位置として使用し、ここでは、この目標反復間隔における反復に対応する小数点
位置は一致している。すなわち、目標反復間隔における各反復はいずれも現在検証反復の
小数点位置などの量子化パラメータを引き続き使用する。これにより、反復ごとに量子化
パラメータを更新調整することを避けて、量子化における計算量を減少し、量子化操作の
効率を向上させる。
よい。プロセッサは現在の検証反復の量子化すべきデータに基づいて、現在の検証反復に
対応するスケーリング係数を確定し、この現在の検証反復に対応するスケーリング係数を
、目標反復間隔における各回の反復のスケーリング係数とすることができる。ここでは、
この目標反復間隔における反復に対応するスケーリング係数が一致している。
ロセッサは、現在の検証反復の量子化すべきデータに基づいて、現在の検証反復に対応す
るオフセットを確定し、この現在の検証反復に対応するオフセットを目標反復間隔におけ
る各反復のオフセットとすることができる。更に、プロセッサは、量子化すべきデータの
全ての要素における最小値と最大値を確定し、さらに小数点位置とスケジューリング係数
等の量子化パラメータを確定することができ、具体的に以上の説明を参照できる。この目
標反復間隔における反復に対応するオフセットは一致している。
すなわち、目標反復間隔に対応する検証反復は、目標反復間隔の開始反復であってもよい
。たとえば、現在の検証反復は100回目の反復であり、プロセッサは、量子化すべきデ
ータのデータの変動幅に基づいて、目標反復間隔の反復間隔を3に確定すると、プロセッ
サは、この目標反復間隔には100回目、101回目、102回目の三回の反復が含まれ
ると判断できる。さらに、プロセッサは、100回目の反復に対応する量子化すべきデー
タと目標データビット幅に基づいて、この100回目の反復に対応する小数点位置などの
量子化パラメータを確定することができ、かつ、この100回目の反復に対応する小数点
位置などの量子化パラメータを用いて、100回目の反復、101回目の反復と102回
目の反復に対して量子化を行うことができる。このように、101回目の反復と102回
目の反復では、小数点位置などの量子化パラメータを計算する必要がなく、量子化におけ
る計算量を減少し、量子化操作の効率を向上させる。
ことができ、すなわち、この目標反復間隔に対応する検証反復は、この目標反復間隔の終
了反復であってもよい。たとえば、現在の検証反復は100回目の反復であり、プロセッ
サは、量子化すべきデータのデータの変動幅に基づいて、目標反復間隔の反復間隔を3に
確定する。この場合、プロセッサは、この目標反復間隔には101回目、102回目、1
03回目の三回の反復が含まれると判断できる。さらに、プロセッサは、100回目の反
復に対応する量子化すべきデータと目標データビット幅に基づいて、この100回目の反
復に対応する小数点位置などの量子化パラメータを確定することができ、かつ、この10
0回目の反復に対応する小数点位置などの量子化パラメータを用いて、101回目の反復
、102回目の反復と103回目の反復に対して量子化を行うことができる。このように
、102回目の反復と103回目の反復では、小数点位置などの量子化パラメータを計算
する必要がなく、量子化における計算量を減少し、量子化操作の効率を向上させる。
幅および量子化パラメータは、いずれも一致しており、すなわち、同じ目標反復間隔にお
ける各回の反復に対応するデータビット幅、小数点位置、スケーリング係数およびオフセ
ットは、いずれも一定に保ち、これによって、ニューラルネットワークのトレーニングま
たは微調整の過程において、量子化すべきデータの量子化パラメータを頻繁に調整するこ
とを避け、量子化過程における計算量を減少し、量子化効率を高めることができる。しか
も、トレーニングまたは微調整の異なる段階でデータの変動幅に応じて量子化パラメータ
を動的に調整することで、量子化の精度を保証することができる。
置反復間隔に基づいて目標反復間隔における量子化パラメータを確定して、ニューラルネ
ットワークの演算における量子化パラメータを調整することができる。即ち、このニュー
ラルネットワーク演算における小数点位置等の量子化パラメータはデータビット幅と非同
期的に更新してもよく、プロセッサは、目標反復間隔の検証反復においてデータビット幅
と小数点位置等の量子化パラメータを更新してもよく、プロセッサはさらに小数点位置反
復間隔によって単独で目標反復間隔における反復に対応する小数点位置を更新してもよい
。
、目標反復間隔に対応するデータビット幅を確定することができ、ここでは、目標反復間
隔に対応するデータビット幅は一致する。その後、プロセッサはこの目標反復間隔に対応
するデータのビット幅と小数点位置の反復間隔に応じて、ニューラルネットワークの演算
における小数点位置などの量子化パラメータを調整することができる。すなわち、図8T
に示すように、目標反復間隔に対応するデータビット幅を確定した後、プロセッサは操作
S640を実行してもよい。取得された小数点位置の反復間隔と前記目標反復間隔に対応
するデータビット幅に基づいて、前記目標反復間隔における反復に対応する小数点位置を
調整して、前記ニューラルネットワーク演算における小数点位置を調整する。ここで、小
数点位置の反復間隔には少なくとも1回の反復が含まれ、前記小数点位置の反復間隔にお
ける反復の小数点位置は一致している。任意選択可能に、この小数点位置の反復間隔は、
ハイパーパラメータであってもよい。たとえば、この小数点位置反復間隔は、ユーザがカ
スタマイズして入力することができる。
数点位置の反復間隔が上記の目標反復間隔と同じである場合、プロセッサは現在の検証反
復でデータビット幅と小数点位置などの量子化パラメータを同期的に更新することができ
る。さらに任意選択可能に、目標反復間隔における反復に対応するスケーリング係数は一
致してもよい。更に、この目標反復間隔における反復に対応するオフセットは、一致して
もよい。このとき、この目標反復間隔における反復に対応するデータビット幅と小数点位
置などの量子化パラメータはいずれも同じであり、これにより、計算量を減少し、量子化
効率と演算効率を向上させることができる。具体的な実現過程は上述した実施形態と基本
的に一致しており、上述した説明を参照することができ、ここではこれ以上説明しない。
間隔に対応する検証反復においてデータビット幅と小数点位置などの量子化パラメータを
更新し、その位置反復間隔で確定されたサブ検証反復において小数点位置などの量子化パ
ラメータを更新することができる。データビット幅が不変である場合、小数点位置などの
量子化パラメータは、量子化すべきデータに応じて微調整することができるので、量子化
の精度をさらに向上させるために、同じ目標反復間隔内で小数点位置等の量子化パラメー
タを調整してもよい。
検証反復を確定することができ、このサブ検証反復は小数点位置を調整するために使用さ
れ、このサブ検証反復は目標反復間隔における反復であってもよい。更に、プロセッサは
、サブ検証反復の量子化すべきデータと目標反復間隔に対応するデータビット幅に基づい
て、目標反復間隔における反復に対応する小数点位置を調整することができ、ここでは、
小数点位置の確定方式は上記の式を参照してもよいが、ここではこれ以上述べない。
標反復間隔に含まれる反復は100回目の反復から105回目の反復である。プロセッサ
が取得した小数点位置反復間隔はIs1=3であると、現在検証反復から三回の反復ごと
に小数点位置を調整する。具体的には、プロセッサは、100回目の反復を上記のサブ検
証反復とし、この100回目の反復に対応する小数点位置s1を求め、100回目の反復
、101回目の反復、102回目の反復において共通小数点位置s1を共用して量子化を
行う。その後、プロセッサは、小数点位置の反復間隔に応じて、103回目の反復を上述
したサブ検証反復とすることができ、また、プロセッサは、103回目の反復に対応する
量子化すべきデータと目標反復間隔に対応するデータビット幅nから、第2小数点位置反
復間隔に対応する小数点位置s2を確定することもできる。この場合、103回目の反復
から105回目の反復では、上記の小数点位置s2を共用して量子化を行うことができる
。本開示の実施形態では、上記の更新前の小数点位置s1と更新後の小数点位置s2との
値は同じであってもよいし、異なっていてもよい。更に、プロセッサは、106回目の反
復で、改めて量子化すべきデータのデータ変動幅に応じて、次の目標反復間隔、およびこ
の次の目標反復間隔に対応するデータビット幅と小数点位置などの量子化パラメータを確
定することができる。
数点位置が1回更新される。任意選択可能に、この小数点位置の反復間隔は同じであって
もよいし、異なっていてもよい。たとえば、この目標反復間隔に含まれる少なくとも1つ
の小数点位置の反復間隔は順に増加することができる。ここでは単に本実施形態の実施形
態を例示し、本開示を限定するものではない。
もよい。さらに任意選択可能に、このスケーリング係数は、上述した小数点位置に同期し
て更新されてもよい。つまり、このスケーリング係数に対応する反復間隔は、上記の小数
点位置の反復間隔と同じであってもよい。つまり、プロセッサが小数点位置を更新確定す
るたびに、それに応じてスケーリング係数を更新確定する。
もよい。更に、このオフセットは、上述した小数点位置に同期して更新されてもよい。つ
まり、このオフセットに対応する反復間隔は、上記の小数点位置の反復間隔と同じであっ
てもよい。つまり、プロセッサが小数点位置を更新確定するたびに、それに応じてオフセ
ットを更新確定する。もちろん、このオフセットは、上記の小数点位置またはデータビッ
ト幅に非同期的に更新することもできるが、ここでは特に制限されない。更に、プロセッ
サは量子化すべきデータの全ての要素における最小値と最大値を確定し、さらに小数点位
置とスケジューリング係数等の量子化パラメータを確定することができ、具体的に以上の
説明を参照できる。
パラメータの間では非同期であってもよい。すなわち、小数点位置の反復間隔、スケーリ
ング係数の反復間隔、オフセットの反復間隔のうちの1つまたは3つ全部が異なる。ここ
では、小数点位置の反復間隔とスケーリング係数の反復間隔は、目標反復間隔以下である
。オフセットの反復間隔は、目標反復間隔より小さくてもよい。オフセットは、量子化す
べきデータの分布にのみ関係するため、任意の実施形態では、このオフセットは、目標反
復間隔と完全に非同期であってもよい。すなわち、オフセットの反復間隔は、目標反復間
隔よりも大きくてもよい。
または微調整の過程で使用されてもよい。これにより、ニューラルネットワークの微調整
またはトレーニング過程に関与する演算データの量子化パラメータに対する調整を実現し
て、ニューラルネットワークの演算過程に関与する演算データの量子化の精度と効率を高
める。この演算データは、ニューロンデータ、重みデータ、または勾配データのうちの少
なくとも1つであってもよい。図8Lに示すように、量子化すべきデータのデータ変動曲
線から分かるように、トレーニングまたは微調整の初期段階では、各反復の量子化すべき
データ間の差が大きく、量子化すべきデータのデータ変動幅が激しい。このとき、目標反
復間隔の値を小さくすることで、目標反復間隔における量子化パラメータをタイムリーに
更新し、量子化の精度を保証することができる。トレーニングまたは微調整の中期段階に
おいて、量子化すべきデータのデータ変動幅は次第に緩やかになり、この場合、目標反復
間隔の値を大きくすることで、量子化パラメータの頻繁な更新を回避し、量子化効率およ
び演算効率を向上させることができる。トレーニングまたは微調整の後期段階で、この時
、ニューラルネットワークのトレーニングまたは微調整は安定になり(即ち、ニューラル
ネットワークの順方向演算結果が予め設定された参考値に近い時、このニューラルネット
ワークのトレーニングや微調整は安定になる)、この場合も目標反復間隔の値を大きくし
続けて、量子化効率や演算効率をさらに向上させることができる。上記のデータの変動傾
向に基づいて、ニューラルネットワークのトレーニングまたは微調整の異なる段階で異な
る方式を採用して目標反復間隔を確定することができ、これにより、量子化の精度を保証
した上で、量子化効率と演算効率を高めることができる。
800Uのフローチャートである。ニューラルネットワークのトレーニングまたは微調整
に使用される場合に、この方法は、以下を含むことができる。
S710では、プロセッサは、現在反復が第1プリセット反復より大きいかどうかを確
定する。
能に、この第1プリセット反復はハイパーパラメータであってもよく、この第1プリセッ
ト反復は量子化すべきデータのデータ変動曲線に基づいて確定されてもよく、この第1プ
リセット反復はユーザがカスタマイズして設定してもよい。任意選択可能に、この第1プ
リセット反復は1つのトレーニング周期(epoch)に含まれる反復総数より小さくて
もよく、ここでは、1つのトレーニング周期とは、データセットにおけるすべての量子化
すべきデータが一回の順方向演算と一回の逆方向演算を完了することを指す。
し、第1プリセット反復間隔を前記目標反復間隔とし、前記第1プリセット反復間隔に基
づいて量子化パラメータを調整することができる。
の第1プリセット反復と第1プリセット反復間隔との対応関係に基づいて、第1プリセッ
ト反復間隔を確定することができる。任意選択可能に、この第1プリセット反復間隔はハ
イパーパラメータであってもよく、この第1プリセット反復間隔はユーザがカスタマイズ
して設定するものであってもよい。このとき、プロセッサは直接、ユーザが入力した第1
プリセット反復と第1プリセット反復間隔を読み取り、この第1プリセット反復間隔に基
づいてニューラルネットワーク演算における量子化パラメータを更新することができる。
本開示の実施形態では、プロセッサは量子化すべきデータのデータ変動幅に基づいて、目
標反復間隔を確定することを必要としない。
反復間隔が5であると、現在反復が100回目の反復以下の場合、第1プリセット反復間
隔に基づいて量子化パラメータを更新することができる。即ち、プロセッサは、ニューラ
ルネットワークのトレーニングまたは微調整の1回目の反復から100回目の反復におい
て、5回目の反復ごとに一回量子化パラメータを更新する。具体的には、プロセッサは、
1回目の反復に対応するデータビット幅n1および小数点位置s1などの量子化パラメー
タを確定し、このデータビット幅n1および小数点位置s1などの量子化パラメータを用
いて、1回目の反復から5回目の反復までの量子化すべきデータを量子化することができ
る。すなわち、1回目の反復から5回目の反復までは同じ量子化パラメータを用いること
ができる。その後、プロセッサは、6回目の反復に対応するデータビット幅n2および小
数点位置s2等の量子化パラメータを確定し、このデータビット幅n2および小数点位置
s2等の量子化パラメータを用いて、6回目の反復から10回目の反復までの量子化すべ
きデータを量子化することができる。すなわち、6回目から10回目までは同じ量子化パ
ラメータを用いることができる。同様に、プロセッサは、上記のように100回目の反復
が完了するまで量子化することができる。ここで、各反復間隔におけるデータビット幅お
よび小数点位置などの量子化パラメータの確定方法については、上記の説明を参照でき、
ここでは説明しない。
復間隔が1であると、現在反復が100回目の反復以下の場合、第1プリセット反復間隔
に基づいて量子化パラメータを更新することができる。即ち、プロセッサは、ニューラル
ネットワークのトレーニングまたは微調整の1回目の反復から100回目の反復において
、各反復ごとに量子化パラメータを更新する。具体的には、プロセッサは、1回目の反復
に対応するデータビット幅n1および小数点位置s1などの量子化パラメータを確定し、
このデータビット幅n1および小数点位置s1などの量子化パラメータを用いて、1回目
の反復の量子化すべきデータを量子化することができる。その後、プロセッサは、2回目
の反復に対応するデータビット幅n2および小数点位置s2等の量子化パラメータを確定
し、このデータビット幅n2および小数点位置s2等の量子化パラメータを用いて2回目
の反復の量子化すべきデータを量子化することができ、……。同様に、プロセッサは10
0回目の反復のデータビット幅n100および小数点位置s100等の量子化パラメータ
を確定し、このデータビット幅n100と小数点位置s100等の量子化パラメータを用
いて100回目の反復の量子化すべきデータを量子化することができる。ここで、各反復
間隔におけるデータビット幅および小数点位置などの量子化パラメータの確定方法につい
ては上記の説明を参照でき、ここでは説明しない。
たが、他の代替的な実施形態では、各目標反復間隔において、プロセッサはまた、小数点
位置の変動幅に基づいて小数点位置の反復間隔を確定し、この小数点位置の反復間隔に基
づいて小数点位置等の量子化パラメータを更新することができる。
ークのトレーニングまたは微調整が中期段階にあると示すことができ、このとき、履歴反
復の量子化すべきデータのデータ変動幅を得て、この量子化すべきデータのデータ変動幅
に基づいて目標反復間隔を確定し、この目標反復間隔は上記の第1プリセット反復間隔よ
り大きくてもよく、これによって、量子化パラメータの更新回数を減少し、量子化効率お
よび演算効率を向上させる。具体的には、前記現在反復が第1プリセット反復より大きい
場合、プロセッサは、操作S713を実行し、前記量子化すべきデータのデータ変動幅に
基づいて目標反復間隔を確定し、前記目標反復間隔に基づいて量子化パラメータを調整す
ることができる。
1プリセット反復間隔が1であると、現在反復が100回目の反復以下の場合、第1プリ
セット反復間隔に基づいて量子化パラメータを更新することができる。即ち、プロセッサ
は、ニューラルネットワークのトレーニングまたは微調整の1回目の反復から100回目
の反復において、各反復ごとに量子化パラメータを更新し、具体的な実施形態は上記の説
明を参照できる。現在反復が100回目の反復より大きい場合、プロセッサは現在反復の
量子化すべきデータとその前の履歴反復の量子化すべきデータに基づいて、量子化すべき
データのデータ変動幅を確定し、この量子化すべきデータのデータ変動幅に基づいて目標
反復間隔を確定することができる。具体的には、現在反復が100回目の反復より大きい
場合、プロセッサは適応的に現在反復に対応するデータビット幅を調整し、現在反復に対
応する目標データビット幅を取得し、この現在反復に対応する目標データビット幅を目標
反復間隔のデータビット幅とすることができ、ここで、目標反復間隔における反復に対応
するデータのビット幅が一致している。同時に、プロセッサは現在反復に対応する目標デ
ータビット幅と量子化すべきデータに基づき、現在反復に対応する小数点位置を確定し、
かつ現在反復に対応する小数点位置に基づいて第1誤差を確定する。プロセッサはさらに
、現在反復に対応する量子化すべきデータに基づいて、量子化の誤差を確定し、量子化誤
差に基づいて第2誤差を確定することができる。その後、プロセッサは第1誤差と第2誤
差に基づいて目標反復間隔を確定し、この目標反復間隔は上記の第1プリセット反復間隔
より大きくてもよい。更に、プロセッサは目標反復間隔における小数点位置またはスケジ
ューリング係数等の量子化パラメータを確定でき、具体的な確定方式は上記の説明を参照
できる。
データの変動幅に基づいて、目標反復間隔の反復間隔を3に確定すると、プロセッサは、
この目標反復間隔には100回目、101回目、102回目の三回の反復が含まれると判
断できる。プロセッサはまた、100回目の反復の量子化すべきデータに基づいて量子化
誤差を確定し、量子化誤差に基づいて第2誤差と100回目の反復に対応する目標データ
ビット幅を確定し、この目標データビット幅を目標反復間隔に対応するデータビット幅と
することもできる。ここでは、100回目の反復、101回目の反復と102回目の反復
に対応するデータビット幅は、いずれもこの100回目の反復に対応する目標データビッ
ト幅である。プロセッサはまた、この100回目の反復の量子化すべきデータとこの10
0回目の反復に対応する目標データビット幅に基づいてこの100回目の反復に対応する
小数点位置とスケジューリング係数等の量子化パラメータを確定することができる。その
後、この100回目の反復に対応する量子化パラメータを用いて100回目の反復、10
1回目の反復と102回目の反復を量子化する。
800Vを示すフローチャートであり、上述した方法はさらに以下を含むことができる。
行することができ、即ちプロセッサはさらに、現在反復が第2プリセット反復より大きい
かどうかを確定することができる。ここでは、前記第2プリセット反復は前記第1プリセ
ット反復より大きく、前記第2プリセット反復間隔は前記第1プリセット反復間隔より大
きい。任意選択可能に、上記第2プリセット反復はハイパーパラメータであってもよく、
第2プリセット反復は少なくとも1つのトレーニング周期の反復総数より大きくてもよい
。任意選択可能に、第2プリセット反復は量子化すべきデータのデータ変動曲線によって
確定できる。任意選択可能に、第2プリセット反復はユーザがカスタマイズして設定する
ものであってもよい。
第2プリセット反復間隔を前記目標反復間隔とし、前記第2プリセット反復間隔に基づい
て前記ニューラルネットワーク量子化過程におけるパラメータを調整することができる。
現在反復が第1プリセット反復より大きく、かつ、現在反復が第2プリセット反復より小
さい場合、プロセッサは上述した操作S713を実行し、前記量子化すべきデータのデー
タ変化幅に基づいて目標反復間隔を確定し、前記目標反復間隔に基づいて量子化パラメー
タを調整することができる。
2プリセット反復と第2プリセット反復間隔との対応関係によって、第2プリセット反復
間隔を確定し、この第2プリセット反復間隔は第1プリセット反復間隔より大きい。任意
選択可能に、前記ニューラルネットワークの収束程度がプリセット条件を満たす場合、前
記現在反復が第2プリセット反復以上であると確定する。例えば、現在反復の順方向演算
結果がプリセット参考値に近い場合、このニューラルネットワークの収束程度がプリセッ
ト条件を満たすと確定し、このとき、現在反復が第2プリセット反復以上であると確定で
きる。または、現在反復に対応する損失値がプリセット閾値以下である場合、このニュー
ラルネットワークの収束程度がプリセット条件を満たすことを確定することができる。
、この第2プリセット反復間隔は少なくとも一つのトレーニング周期の反復総数以上であ
ってもよい。任意選択可能にこの第2プリセット反復間隔はユーザがカスタマイズして入
力するものであってもよい。プロセッサは直接、ユーザが入力した第2プリセット反復と
第2プリセット反復間隔を読み取り、この第2プリセット反復間隔に基づいてニューラル
ネットワーク演算における量子化パラメータを更新することができる。例えば、この第2
プリセット反復間隔は1つのトレーニング周期の反復総数に等しくてもよく、即ち各トレ
ーニング周期(epoch)ごとに一回量子化パラメータを更新する。
ごとに現在データビット幅が調整される必要があるかどうかを確定することができる。現
在データビット幅を調整する必要があれば、プロセッサは上記の操作S714から操作S
713に切り替えて、データビット幅を改めて確定して、データビット幅が量子化すべき
データの需要を満たすことができる。
必要があるかどうかを判断することができる。プロセッサはさらに上記操作S715を実
行し、第2誤差がプリセット誤差値より大きいかどうかを確定し、前記現在反復が第2プ
リセット反復以上でありかつ前記第2誤差がプリセット誤差値より大きい場合、操作S7
13に切り替えて実行し、前記量子化すべきデータのデータ変動幅に基づいて反復間隔を
確定して、前記反復間隔に基づいて前記データビット幅を改めて確定する。現在反復が第
2プリセット反復以上であり、且つ第2誤差がプリセット誤差値以下である場合、引き続
き操作S714を実行し、第2プリセット反復間隔を前記目標反復間隔とし、前記第2プ
リセット反復間隔に基づいて前記ニューラルネットワーク量子化過程におけるパラメータ
を調整する。ここでは、予め設定された誤差値は、量子化誤差に対応する予め設定された
閾値に基づいて確定されてもよい。第2誤差が予め設定された誤差値より大きい場合、デ
ータビット幅をさらに調整する必要があることが示され、プロセッサは、前記反復間隔に
基づいてデータビット幅を改めて確定するために、前記量子化すべきデータのデータ変動
幅に基づいて反復間隔を確定することができる。
復が第2プリセット反復以上の場合、プロセッサは第2プリセット反復間隔に応じて量子
化パラメータを更新することができ、即ち各トレーニング周期(epoch)ごとに一回
量子化パラメータを更新する。このとき、各トレーニング周期の開始反復は1つ検証反復
として、各トレーニング周期の開始反復において、プロセッサはこの検証反復の量子化す
べきデータに基づいて量子化誤差を確定し、量子化誤差に基づいて第2誤差を確定し、下
式によって第2誤差がプリセット誤差値より大きいかどうかを確定する。
あり、θはハイパーパラメータであり、Tはプリセット誤差値である。任意選択可能に、
このプリセット誤差値は第1プリセット閾値をハイパーパラメータで除算するものであっ
てもよい。当然ながら、このプリセット誤差値はハイパーパラメータであってもよい。例
えば、このプリセット誤差値は下式で算出できる:T=th/10、ここでは、thは第
1プリセット閾値であり、ハイパーパラメータの値は10とする。
幅がプリセット要求を満たせない可能性があると示し、このとき、第2プリセット反復間
隔を用いて量子化パラメータを更新することなく、プロセッサは量子化すべきデータのデ
ータ変動幅に基づいて目標反復間隔を確定して、データビット幅がプリセット要求を満た
すことを保証する。即ち、第2誤差diffupdate2がプリセット誤差値Tより大
きい場合、プロセッサは上記の操作S714から上記の操作S713に切り替える。
ット幅を調整する必要があるか否かを判定することができる。例えば、第2プリセット反
復間隔は1つのトレーニング周期の反復総数である。現在反復が第2プリセット反復以上
の場合、プロセッサは第2プリセット反復間隔に応じて量子化パラメータを更新すること
ができ、即ち各トレーニング周期(epoch)ごとに1回量子化パラメータを更新する
。ここでは、各トレーニング周期の開始反復は1つの検証反復とする。各トレーニング周
期の開始反復において、プロセッサはこの検証反復の量子化すべきデータに基づいて量子
化誤差を確定し、この量子化誤差が第1プリセット閾値以上の場合、データビット幅がプ
リセット要求を満たせない可能性があると示し、即ちプロセッサは上記の操作S714か
ら上記の操作S713に切り替える。
の量子化パラメータは表示装置によって表示することができる。このとき、ユーザは表示
装置によりニューラルネットワークの演算における量子化パラメータを知ることができ、
ユーザはプロセッサが確定した量子化パラメータを適応的に修正することもできる。同様
に、上記のデータビット幅と目標反復間隔なども表示装置により表示することができる。
この場合、ユーザは、表示装置によりニューラルネットワークの演算における目標反復間
隔とデータビット幅などのパラメータを知ることができ、また、ユーザは、プロセッサが
確定した目標反復間隔とデータビット幅などのパラメータを適応的に修正することもでき
る。
する目標反復間隔は、全て、網羅的なものではなく、単に列挙された一部の状況に過ぎず
、当業者が本開示の技術案の精髄を理解するうえで、本開示の技術案に基づいて、他の変
形または変換を生じる可能性がある。例えば、データビット幅を確定する目標反復間隔内
で量子化パラメータの目標反復間隔を確定することは図6、図7、および図8Aに示す技
術案にも応用される。ただし、その実現された機能および達成された技術効果が本開示と
類似している限り、本開示の保護範囲に含まれるべきである。
または量子化パラメータを調整し、データビット幅または量子化パラメータが調整される
か否かの目標反復間隔を確定し、ニューラルネットワークの演算中にデータビット幅また
は量子化パラメータを適切な時点で調整し、これによって、適切な反復時間において適切
な量子化パラメータを使用するようにし、人工知能プロセッサチップによるニューラルネ
ットワーク演算の実行は定点計算の速度を達成することを実現して、人工知能プロセッサ
チップのピーク演算力を向上させると同時に演算に必要な浮動小数点演算の精度を満たす
。
合わせとして記載しているが、当業者であれば周知するように、本開示は、本開示にした
がって一部のステップが他の順で用いられたり、または同時に実施されたりすることがで
きるから、以上に記載の動作の順で制限されるものではない。次に、当業者であれば分か
るように、本明細書に記載された実施形態は全てオプション実施形態に該当し、係る動作
およびモジュールは必ずしも本開示に必須ではない。
ートにおける各ステップは、矢印の指示に従って順次表示されているが、これらのステッ
プは必ずしも矢印の順に逐次実行されるわけではない。ここで明示的に指定されている場
合を除き、これらのステップの実行には厳密な順序制限はなく、これらのステップは、別
の順序で実行してもよい。また、図2、図6、図7、図8Aから図8Vにおける少なくと
も一部のステップは、複数のサブステップまたは複数のサブ段階を含むことができ、これ
らのサブステップまたは段階は、必ずしも同じ時点で実行されるわけではなく、異なる時
点で実行されてもよく、これらのサブステップまたは段階の実行順序は、必ずしも順次実
行されるわけではなく、代わりに、他のステップまたは他のステップのサブステップまた
は段階の少なくとも一部と順番に、または交互に実行することができる。
装置のハードウェア構成のブロック図である。図9において、ニューラルネットワークの
量子化パラメータ確定装置10は、プロセッサ110とメモリ120を含むことができる
。図9のニューラルネットワークの量子化パラメータ確定装置10において、ただ本実施
形態に関する構成要素だけを示す。従って、当業者にとって、明らかなことに、ニューラ
ルネットワークの量子化パラメータ確定装置10は、図10中に示す構成要素と異なるよ
く見られる構成要素をさらに含んでもよい。例えば、固定小数点演算器である。
を生成したり、トレーニングしたり、ニューラルネットワークをトレーニングまたは学習
したり、浮動小数点型ニューラルネットワークを固定小数点型ニューラルネットワークに
量子化したり、ニューラルネットワークを再トレーニングしたりする機能など、様々な処
理機能を有する計算装置に対応することができる。例えば、ニューラルネットワークの量
子化パラメータ確定装置10は、パーソナルコンピュータ(PC)、サーバ機器、モバイ
ル機器等の様々な種類の機器として実現することができる。
の機能を制御する。例えば、プロセッサ110は、ニューラルネットワークの量子化パラ
メータ確定装置10上のメモリ120に記憶されたプログラムを実行することにより、ニ
ューラルネットワークの量子化パラメータ確定装置10の全ての機能を制御する。プロセ
ッサ110は、ニューラルネットワークの量子化パラメータ確定装置10が提供する中央
処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、アプリケーション処
理装置(AP)、人工知能処理装置チップ(IPU)等によって実現することができる。
ただし、本開示はこれに限定されるものではない。
理される各種のデータを記憶するためのハードウェアである。例えば、メモリ120は、
ニューラルネットワークの量子化パラメータ確定装置10において処理されたデータと処
理すべきデータとを記憶することができる。メモリ120は、プロセッサ110によって
処理されたまたは処理されるニューラルネットワークの演算中に関与する、トレーニング
されていない初期ニューラルネットワークのデータ、トレーニング中に生成されたニュー
ラルネットワークの中間データ、すべてのトレーニングを完了したニューラルネットワー
クのデータ、量子化されたニューラルネットワークのデータなどのデータセットを記憶し
てもよい。また、メモリ120は、ニューラルネットワークの量子化パラメータ確定装置
10によって駆動されるアプリケーション、ドライバ等を記憶しておくことができる。例
えば、メモリ120は、プロセッサ110によって実行されるニューラルネットワークの
トレーニングアルゴリズム、量子化アルゴリズム等に関する様々なプログラムを記憶する
ことができる。メモリ120はDRAMであってもよいが、本開示はこれに限定されない
。メモリ120は、揮発性メモリまたは非揮発性メモリの少なくとも1つを含むことがで
きる。不揮発性メモリは、読み取り専用メモリ(ROM)、プログラマブルROM(PR
OM)、電気的にプログラマブルROM(EPROM)、電気的に消去可能なプログラマ
ブルROM(EEPROM)、フラッシュメモリ、相転移RAM(PRAM)、磁性RA
M(MRAM)、抵抗RAM(RRAM:登録商標)、強誘電RAM(FRAM:登録商
標)等を含むことができる。揮発性メモリは、ダイナミックRAM(DRAM)、スタテ
ィックRAM(SRAM)、同期DRAM(SDRAM)、PRAM、MRAM、RRA
M、強誘電RAM(FeRAM)などを含む。一実施形態において、メモリ120は、ハ
ードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、高密度フラッ
シュメモリ(CF)、セキュアデジタル(SD)カード、マイクロセキュリティデジタル
(Micro-SD)カード、ミニセキュアデジタル(Mini-SD)カード、極限デ
ジタル(xD)カード、キャッシュ(caches)またはメモリスティックのうちの少
なくとも1つを含むことができる。
(学習)することによって、トレーニングされたニューラルネットワークを生成すること
ができる。このような状態では、ニューラルネットワークの処理精度を保証する意味で、
初期ニューラルネットワークのパラメータは、高精度のデータ表現フォーマット(32ビ
ット浮動小数点精度を持つデータ表現フォーマットなど)である。パラメータには、ニュ
ーラルネットワークから/へのさまざまなタイプの入出力データを含むことができ、例え
ば、ニューラルネットワークの入力/出力ニューロン、重み、オフセットなどである。固
定小数点演算と比較して、浮動小数点演算過程には、比較的大量の演算や比較的頻繁なメ
モリアクセスが必要である。具体的には、ニューラルネットワーク処理に必要な演算の大
部分が各種の畳み込み演算として知られている。そのため、スマートフォン、タブレット
、ウェアラブルデバイス、埋め込み式装置などのような比較的低い処理性能を持つモバイ
ルデバイスでは、ニューラルネットワークの高精度なデータ演算では、モバイルデバイス
のリソースを十分に活用しないようにする。その結果、ニューラルネットワーク演算を許
容精度損失の範囲内で駆動し、上記の設備での演算量を十分に減少するために、ニューラ
ルネットワークの演算過程にかかわる高精度なデータを量子化し、低精度な固定小数点に
変換することができる。
のデバイスの処理性能を考慮すると、ニューラルネットワークの量子化パラメータ確定装
置10は、トレーニングされたニューラルネットワークのパラメータを特定のビット数を
有する固定小数点型の量子化に変換し、ニューラルネットワークの量子化パラメータ確定
装置10は、ニューラルネットワークを配置した機器に対応する量子化パラメータを送信
することで、人工知能プロセッサーチップがトレーニング、微調整などの演算操作を実行
する時に固定小数点の演算操作にする。ニューラルネットワークを配置する装置は、ニュ
ーラルネットワークを用いて音声認識、画像認識等を行う自律的車両、ロボット、スマー
トフォン、タブレット装置、拡張現実(AR)装置、ユビキタスネットワーク(IoT)
装置等であってもよいが、これに限定されるものではない。
ータを取得する。このデータは、ニューロン、重み、オフセット、および勾配の少なくと
も1つのデータを含み、図2に示す手法を用いて、対応する量子化パラメータを確定し、
ニューラルネットワークの演算過程における目標データを量子化パラメータを用いて量子
化する。量子化後のデータをニューラルネットワーク演算操作の実行に使用する。この演
算操作はトレーニング、微調整、推理を含むがこれらに限定されない。
、しかも、プロセッサ110は、図6、図7および図8に示す目標反復間隔の方法の手順
を実行して、データビット幅の目標反復間隔または量子化パラメータの目標反復間隔を確
定することができる。
メータ確定装置では、そのメモリ120およびプロセッサ110が実現する具体的な機能
は、本明細書において前述した実施形態に照らして説明することができ、上述した実施形
態の技術的効果を達成することができ、ここでは説明しない。
。例えば、プロセッサ110は、マイクロプロセッサやプロセッサ、およびこの(マイク
ロ)プロセッサによって実行可能なコンピュータ可読プログラムコード(例えば、ソフト
ウェアやファームウェア)を記憶するコンピュータ可読媒体、論理ゲート、スイッチ、専
用集積回路(Application Specific Integrated Ci
rcuit、ASIC)、プログラム可能な論理コントローラ、および埋め込み式マイク
ロコントローラの形態を用いてもよい。
定装置を人工知能プロセッサチップに応用する模式図である。図10によって、以上に述
べたように、PC、サーバなどのニューラルネットワークの量子化パラメータ確定装置1
0では、プロセッサ110は量子化操作を実行し、ニューラルネットワークの演算過程に
関する浮動小数点データを固定小数点に量子化し、人工知能プロセッサチップ上の固定小
数点演算器は、量子化された固定小数点数を用いてトレーニング、微調整、または推理を
実行する。人工知能プロセッサチップは、ニューラルネットワークを駆動するための専用
ハードウェアである。人工知能プロセッサチップは相対的に低い電力または性能で実現さ
れるため、本技術方案を利用して低精度の固定小数点数を採用してニューラルネットワー
ク演算を実現し、高精度データと比べて、精度の低い固定小数点数を読み取る場合に必要
なメモリの帯域幅がより小さく、人工知能プロセッサチップのcachesをよりよく使
用して、アクセスボトルネックを避けることができる。また、人工知能プロセッサチップ
上でSIMD命令を実行する場合、1クロックでより多くの計算を実現し、ニューラルネ
ットワークの演算操作をより高速に行うことができる。
動小数点演算の比較から分かるように、浮動小数点演算の計算モードよりも複雑であり、
浮動小数点演算器を構成するためには、より多くの論理デバイスが必要である。このよう
に、体積的に言えば、浮動小数点演算器の体積は固定小数点演算器の体積より大きい。ま
た、浮動小数点演算器は、より多くの資源を消費して処理する必要があり、これにより、
固定小数点演算と浮動小数点演算との電力量の差が一般的に数量オーダーである。
数点演算器に変換することにより、人工知能プロセッサチップの消費電力を低減させるこ
とができる。これは、モバイルデバイスに対しては特に重要である。つまり、本技術案は
、浮動小数点演算コードを効率良く実行できない大量の組み込みシステムへの扉を開き、
ユビキタスネットワークの世界で広く応用することを可能にする。
ンソル処理ユニット(TPU)、神経エンジンなどに対応でき、これらはニューラルネッ
トワークを駆動するための専用チップであるが、本開示はこれに限らない。
タ確定装置10とは別の装置で実現することができ、ニューラルネットワークの量子化パ
ラメータ確定装置10は、人工知能プロセッサチップの機能モジュールの一部として実現
してもよい。ただし、本開示はこれに限定されるものではない。
術案に基づいて命令を生成し、生成された命令を人工知能プロセッサチップ(たとえばG
PU)に送信し、人工知能プロセッサチップにより命令操作を実行してニューラルネット
ワークの量子化パラメータの確定と量子化過程を実現する。もう1つの応用状況では、汎
用プロセッサは本技術案に基づいて対応する量子化パラメーターを直接確定し、汎用プロ
セッサは、量子化パラメータに基づいて対応する目標データを直接量子化し、人工知能プ
ロセッサチップは量子化されたデータを用いて固定小数点演算操作を行う。さらに、汎用
プロセッサ(例えばCPU)と人工知能プロセッサチップ(例えばGPU)はパイプライ
ン化操作を用いて、汎用プロセッサ(例えばCPU)の操作システムは当技術案に基づい
て指令を生成し、また、目標データをコピーすると同時に、人工知能プロセッサチップ(
たとえばGPU)がニューラルネットワークの演算操作を行うことで、ある時間の消費を
隠蔽することができる。ただし、本開示はこれに限定されるものではない。
を実行時に実現するコンピュータプログラムを記憶する可読記憶媒体を提供する。
に本開示の技術案を利用して量子化パラメーターを確定し、この量子化パラメーターは人
工知能プロセッサがニューラルネットワークの演算過程におけるデータを量子化を行い、
高精度のデータを低精度の固定小数点数に変換し、ニューラルネットワークの演算過程に
関わるデータのすべてのストレージスペースの大きさを減少することができる。例えば、
float32をfix8に変換すると、モデルパラメータを4分の1に減少することが
できる。データ記憶容量が小さくなるため、ニューラルネットワークを配置する時に更に
小さいスペースを使うことができ、人工知能プロセッサのチップ上のオンチップメモリは
もっと多くのデータを記憶することができ、人工知能プロセッサのチップのアクセスデー
タを減少し、計算性能を高める。
ーバを実現するほか、方法やステップを論理的にプログラムすることで論理ゲート、スイ
ッチ、専用集積回路、プログラマブル論理コントローラ、組込みマイクロコントローラな
どの形でクライアントとサーバが同様の機能を実現することを十分に可能にする。このた
め、クライアントとサーバはハードウェア部品として認識され、また、その中に含まれる
各種の機能を実現するための装置もハードウェア部品内の構成と見なすことができる。あ
るいは、様々な機能を実現するための装置は、方法を実現するソフトウェアモジュールと
してもハードウェア部品内の構成としてもよい。
定装置の機能ブロック図である。前記装置は以下を含む。
を確定する。ここでは、前記量子化すべきデータは前記ニューラルネットワークのニュー
ロン、重み、オフセット、および勾配の少なくとも1つのデータを含む。
ット幅によって対応する量子化パラメータを確定するために用いられる。ここで、前記量
子化パラメータは、人工知能プロセッサがニューラルネットワークの演算過程におけるデ
ータに対して、対応する量子化を行うためのものである。
定装置は、さらに以下を含む。
量子化するために用いられる。
定装置は、さらに、以下を含む。
めに用いられる。ここでは、前記目標データの特徴と前記量子化すべきデータの特徴とは
類似性を有する。
レーニング、ニューラルネットワーク推理、ニューラルネットワーク微調整のうちの少な
くとも1つの演算を含む。
ける最大値と最小値である。
大値絶対値となる。
値に基づいて前記絶対値の最大値を確定する。
ける最大値、最小値および前記データビット幅に基づいて量子化パラメータを確定する。
ける絶対値の最大値、前記データビット幅に基づいて量子化パラメータを確定する。
は、小数点位置パラメータまたは第1スケジューリング係数である。
スケジューリング係数に基づいて前記第1スケジューリング係数を確定する。ここで、第
1スケーリング係数を確定する際に使用される小数点位置パラメータは、既知の固定値で
あり、または、前記小数点位置パラメータと、対応する前記第2スケーリング係数とが乗
算された結果は、全体として第1スケーリング係数としてニューラルネットワーク演算に
おけるデータ量子化に応用される。
は、小数点位置パラメータと第2スケジューリング係数を含む。
前記統計結果、前記データビット幅に基づいて前記第2スケジューリング係数を確定する
。
は、オフセットをさらに含む。
計結果に基づいて前記オフセットを確定する。
リセット値である。
確定モジュールとを含む。
に用いられる。
に基づいて量子化誤差を確定するために用いられる。
ために用いられる。ここでは、前記閾値は第1閾値と第2閾値の少なくとも1つを含む。
記第1調整サブモジュールは、以下のためである。
られる。
前記第2調整サブモジュールは、以下のためである。
る。
前記第3調整サブモジュールは、以下のためである。
は不変を保つために用いられる。
ールと、
量子化誤差を確定するための第1量子化誤差確定サブモジュールとを含む。
ルと、第2量子化誤差確定サブモジュールとを含む。
化データを得るために用いられる。ここで、前記逆量子化データのデータフォーマットは
、対応する量子化前のデータのデータフォーマットと同じである。
化データに基づいて量子化誤差を確定するために用いられる。
は、前記量子化すべきデータである。
は、目標反復間隔内の重み更新反復過程に係る量子化すべきデータである。ここでは、前
記目標反復間隔は少なくとも1つの重み更新反復を含み、同じデータビット幅が同じ目標
反復間隔内の量子化過程で使用される。
1目標反復間隔確定ユニットをさらに含む。ここでは、前記第1目標反復間隔確定ユニッ
トは、第1変化傾向値確定モジュールと第1目標反復間隔モジュールを含む。
子化すべきデータの小数点位置パラメータの変化傾向値を確定するために用いられる。こ
こで、前記予測時点は、前記データビット幅を調整する必要があるか否かを判断するため
の時点であり、前記予測時点は、重み更新反復が完了した時点に対応する。
、対応する前記目標反復間隔を確定するために用いられる。
ュールと第2目標反復間隔モジュールを含む。
すべきデータの小数点位置パラメータの変化傾向値、データビット幅の変化傾向値を確定
するために用いられる。ここで、前記予測時点は、前記データビット幅を調整する必要が
あるか否かを判断するための時点であり、前記予測時点は、重み更新反復が完了した時点
に対応する。
ータビット幅の変化傾向値によって対応する前記目標反復間隔を確定するために用いられ
る。
トをさらに含む。
定するために用いられる。
トをさらに含み、ここでは、前記第2予測時点確定ユニットは、データ変動幅曲線に基づ
いて第2予測時点を確定するために用いられる。ここでは、前記データ変動幅曲線は、重
み更新反復過程におけるデータ変動幅の状況を統計することで得られる。
ジュールは、いずれも現在予測時点に対応する小数点位置パラメータのスライディング平
均値、前の予測時点に対応する小数点位置パラメータのスライディング平均値に基づいて
前記小数点位置パラメータの変化傾向値を確定する。
ジュールは、いずれも現在予測時点に対応する小数点位置パラメータ、前の予測時点に対
応する小数点位置パラメータのスライディング平均値に基づいて前記小数点位置パラメー
タの変化傾向値を確定する。
ジュールはいずれも以下を含む。
て前記現在予測時点に対応する小数点位置パラメータを確定するための現在予測時点に対
応する小数点位置パラメータ確定サブモジュールと、
ラメータのスライディング平均値を調整して、調整結果を取得するための調整結果確定サ
ブモジュールと、
時点に対応する小数点位置パラメータのスライディング平均値を確定するための第1スラ
イディング平均値確定サブモジュールを含む。
ジュールは、いずれも以下を含む。
点位置パラメータのスライディング平均値に基づいて現在予測時点に対応する小数点位置
パラメータのスライディング平均値の中間結果を確定するための中間結果確定サブモジュ
ールと、
記データビット幅の調整値に基づいて前記現在予測時点に対応する小数点位置パラメータ
のスライディング平均値を確定するための第2スライディング平均値確定サブモジュール
とを含む。
に基づいてデータビット幅の変化傾向値を確定する。
ルとデータビット幅確定モジュールをさらに含む。
、前記量子化誤差に対応する量子化前のデータは、前記予測時点に対応する重み更新反復
過程に係る量子化すべきデータである。
間隔内量子化過程に用いられるデータビット幅を確定するために用いられる。
成される。
程に用いられるデータビット幅を調整し、調整結果を現在目標反復間隔内の量子化過程に
用いられるデータビット幅とするために用いられる。
は目標反復間隔内の重み更新反復過程に係る量子化すべきデータである。ここでは、前記
目標反復間隔は、少なくとも1つの重み更新反復を含み、同じ前記量子化パラメータが同
じ目標反復間隔内の量子化過程で使用される。
2目標反復間隔確定ユニットをさらに含む。ここでは、前記第2目標反復間隔確定ユニッ
トは第3変化傾向値確定モジュールと第3目標反復間隔モジュールを含む。
子化すべきデータの小数点位置パラメータの変化傾向値を確定するために用いられる。こ
こで、前記予測時点は、前記量子化パラメータを調整する必要があるか否かを判断するた
めの時点であり、前記予測時点は、重み更新反復が完了した時点に対応する。
対応する前記目標反復間隔を確定するために用いられる。
ット幅に基づいて前記小数点位置パラメータを確定する。
とを特徴とする。
量子化すべきデータに対して前記量子化処理を実行するためのデータビット幅を取得する
ように構成される取得モジュールと、
て、前記1組の量子化すべきデータを前記データビット幅を持つ1組の量子化後のデータ
に変換するように構成される量子化モジュールと、
ット幅に関連する量子化誤差を確定するように構成される確定モジュールと、
を含む、ことを特徴とする。
づいて前記量子化誤差を確定するための誤差確定モジュールとを含む。
化データを得るために用いられ、前記1組の逆量子化データのデータフォーマットが前記
1組の量子化すべきデータのデータフォーマットと同じである量子化モジュールと、
前記1組の逆量子化データと前記1組の量子化すべきデータに基づいて、量子化誤差を
確定するための量子化誤差確定モジュールとを含む。
値と比較するように構成される比較モジュールと、
モジュールとを含む。
加するように構成される増加モジュールを含む。
後データビット幅を確定するように構成されるステップ長さ増加モジュールを含む。
づいて前記1組の量子化すべきデータに対して量子化処理を実行して、前記1組の量子化
すべきデータを、前記調整後データビット幅を持つ別の1組の量子化後のデータに変換す
るように構成される。
後のデータと比較し、前記調整後データビット幅に関連する別の量子化誤差を、前記別の
量子化誤差が前記第1プリセット閾値より小さくなるまで、確定するように構成される。
幅を減少するように構成される減少モジュールを含む。
後データビット幅を確定するように構成されるステップ長さ減少モジュールを含む。
づいて、前記1組の量子化すべきデータに対して量子化処理を実行して、前記1組の量子
化すべきデータを、前記調整後データビット幅を持つ別の1組の量子化後のデータに変換
するように構成される。
後のデータに基づいて、前記調整後データビット幅に関連する別の量子化誤差を、前記別
の量子化誤差が前記第2プリセット閾値より大きくなるまで、確定するように構成される
。
前記データビット幅を維持するように構成される維持モジュールを含む。
子化すべきデータに量子化処理を実行するための量子化パラメータを更新するように構成
される更新モジュールをさらに含む。
組の量子化すべきデータに量子化処理を実行するように構成される。
うに構成される。
の反復を含む目標反復間隔を確定し、前記目標反復間隔によって前記データビット幅を調
整するように構成される。
タ変動幅と正の相関がある小数点位置の変動幅を取得するように構成される小数点位置モ
ジュールを含む。
の反復間隔に対応する検証反復である前記一つ前の検証反復前の履歴反復に対応する小数
点位置とによって第1平均値を確定するように構成される第1平均値モジュールと、
れる、前記現在検証反復に対応する小数点位置と、前記現在検証反復前の履歴反復の小数
点位置とによって第2平均値を確定するように構成される第2平均値モジュールと、
値によって確定するように構成される第1誤差モジュールとを含む。
うに構成される第1間隔モジュールを含む。
データのデータ変動幅を確定するように構成されるデータ変動幅モジュールとをさらに含
む。
向を表すための第2誤差によって前記目標反復間隔を確定するように構成される反復間隔
モジュールをさらに含む。
差モジュールと、
ように構成される目標反復間隔モジュールとを含む。
の量子化データによって確定され、前記第2誤差は前記量子化誤差と正の相関がある。
整のために用いられる。
タ変動幅によって目標反復間隔を確定し、前記目標反復間隔によって前記量子化パラメー
タを調整するように構成される第1反復モジュールをさらに含む。
記目標反復間隔とし、前記第1プリセット反復間隔によって前記量子化パラメータを調整
するように構成される第2反復モジュールをさらに含む。
復間隔とし、前記第2プリセット反復間隔によって前記量子化パラメータを調整するよう
に構成される第3反復モジュールをさらに含む。
リセット反復間隔は前記第1プリセット反復間隔より大きい。
復が第2プリセット反復以上であると確定するように構成される収束モジュールをさらに
含む。
大きい場合、前記量子化すべきデータのデータ変動幅によって反復間隔を確定し、前記反
復間隔によって前記データビット幅を再確定することをさらに含む。
記憶され、前記プログラムが実行されると、以上のいずれか一項に記載の方法が実現され
る。
一項に記載のデータを処理するための装置を含む。
プを含む。
ス、インターフェースデバイス、制御デバイス、および以上に記載の人工知能チップを含
む。
インターフェイスデバイスに接続されている。
を実現するためのものであり
前記制御デバイスは、前記人工知能チップの状態を監視するためのものである。
ニットは、バスを介して前記人工知能チップに接続され、前記記憶ユニットはDDR S
DRAMである。
タストレージを制御する。
る量子化パラメータを確定することは、以下を含む。
ータを算出することを含む。
基づいて対応する量子化パラメータを算出することは、以下が含まれる。
の最大値と前記目標データに対応するデータビット幅に基づいて、前記目標データの小数
点位置を得ることを含み、前記目標データは任意種類の量子化すべきデータである。
基づいて対応する量子化パラメータを算出することは、以下が含まれる。
タに対応するデータビット幅に基づいて、前記目標データの量子化後データの最大値を得
て、前記目標データは任意種類の量子化すべきデータであることと、
いて、前記目標データのスケーリング係数を得ることとを含む。
基づいて対応する量子化パラメータを算出することは、以下が含まれる。
前記目標データにおける最小値および前記目標データに対応するデータビット幅に基づい
て、前記目標データの小数点位置を得ることを含み、前記目標データは任意種類の量子化
すべきデータである。
基づいて対応する量子化パラメータを算出することは、以下が含まれる。
応するデータビット幅に基づいて、前記目標データの量子化後データの最大値を得て、前
記目標データは任意種類の量子化すべきデータであることと、
子化後データの最大値に基づいて、前記目標データのスケーリング係数を得ることとを含
む。
基づいて対応する量子化パラメータを算出することは、以下が含まれる。
とを含み、前記目標データは任意種類の量子化すべきデータである。
子化誤差を確定し、前記目標データは任意種類の量子化すべきデータであることと、
整して、前記目標データに対応する調整ビット幅を得ることと、
タおよび前記調整ビット幅によって対応する調整量子化パラメータを算出し、これによっ
てニューラルネットワークは調整量子化パラメータによって量子化を行うこととを含む。
るデータビット幅を調整して、前記目標データに対応する調整ビット幅を得ることは、以
下が含まれる。
ット幅を増加して、前記目標データに対応する調整ビット幅を得ることを含む。
調整後量子化誤差を計算する。
値以下になるまで、前記調整後量子化誤差と第1誤差閾値によって前記調整ビット幅を増
加し続ける。
るデータビット幅を調整することは、以下を含む。
ット幅を減少することを含み、前記第2誤差閾値が前記第1誤差閾値よりも小さい。
算することと、
上になるまで、前記調整後量子化誤差と前記第2誤差閾値によって前記調整ビット幅を減
少し続けることとを含む。
レーニング段階において、前記方法はさらに以下を含む。
前記現在反復の前の反復であることと、
確定して、前記ニューラルネットワークが前記目標反復間隔に基づいて前記目標データの
量子化パラメータを更新し、前記目標反復間隔は少なくとも1回の反復を含み、前記目標
データは任意種類の量子化すべきデータであることとを含む。
前記目標反復間隔内の反復に対応するデータビット幅を確定して、前記ニューラルネット
ワークが前記目標データの前記目標反復間隔内の反復に対応するデータビット幅に基づい
て、量子化パラメータを確定することを含む。
ータを算出するように構成される第2量子化パラメータ確定サブモジュールを含む。
の最大値と前記目標データに対応するデータビット幅に基づいて、前記目標データの小数
点位置を得て、前記目標データは任意種類の量子化すべきデータであるように構成される
第1小数点位置計算ユニットを含む。
応するデータビット幅に基づいて、前記目標データの量子化後データの最大値を得て、前
記目標データは任意種類の量子化すべきデータであり、目標データにおける絶対値の最大
値と前記目標データ量子化後データの最大値に基づいて、前記目標データのスケーリング
係数を得るように構成される第1スケーリング係数計算ユニットを含む。
前記目標データにおける最小値および前記目標データに対応するデータビット幅に基づい
て、前記目標データの小数点位置を得ることを含み、前記目標データは、任意種類の量子
化すべきデータであるように構成される第2小数点位置計算ユニットを含む。
応するデータビット幅に基づいて、前記目標データの量子化後データの最大値を得て、前
記目標データは任意種類の量子化すべきデータであり、前記目標データにおける最大値、
前記目標データにおける最小値と前記目標データの量子化後データの最大値に基づいて、
前記目標データのスケーリング係数を得るように構成される第2スケーリング係数計算ユ
ニットを含む。
とを含み、前記目標データは任意種類の量子化すべきデータであるように構成されるオフ
セット計算ユニットを含む。
子化誤差を確定し、前記目標データは、任意種類の量子化すべきデータであるように量子
化誤差確定モジュールと、
整して、前記目標データに対応する調整ビット幅を得るように構成される調整ビット幅確
定モジュールと、
タおよび前記調整ビット幅によって計算して対応する調整量子化パラメータが得られ、こ
れによってニューラルネットワークは、調整量子化パラメータによって量子化されるよう
に構成される調整量子化パラメータ確定モジュールとを含む。
ット幅を増加して、前記目標データに対応する調整ビット幅を得るように構成される第1
調整ビット幅確定サブモジュールを含む。
るように構成される第1調整量子化誤差確定サブモジュールと、
値以下になるまで、前記調整後量子化誤差と第1誤差閾値によって前記調整ビット幅を増
加し続けるように構成される第1調整ビット幅サイクル確定サブモジュールとをさらに含
む。
ット幅を減少することを含み、前記第2誤差閾値が前記第1誤差閾値よりも小さいように
構成される第2調整ビット幅確定サブモジュールを含む。
算するように構成される第2調整量子化誤差確定サブモジュールと、
上になるまで、前記調整後量子化誤差と前記第2誤差閾値によって前記調整ビット幅を減
少し続けるように構成される第2調整ビット幅サイクル確定サブモジュールとをさらに含
む。
一実施形態において、前記ニューラルネットワーク演算の微調整段階および/またはト
レーニング段階において、前記装置はさらに以下を含む。
前記現在反復の前の反復であるように構成されるデータ変動幅確定モジュールと、
確定して、前記ニューラルネットワークが前記目標反復間隔に基づいて前記目標データの
量子化パラメータを更新し、前記目標反復間隔は少なくとも1回の反復を含み、前記目標
データは任意種類の量子化すべきデータであるように構成される目標反復間隔確定モジュ
ールとをさらに含む。
前記目標反復間隔内の反復に対応するデータビット幅を確定して、前記ニューラルネット
ワークが前記目標データの前記目標反復間隔内の反復に対応するデータビット幅に基づい
て、量子化パラメータを確定するように構成される第1目標反復間隔応用モジュールを含
む。
この方法は以下を含む。
この目標反復間隔に基づいて、ニューラルネットワーク演算における量子化パラメータを
調整することとを含み、ここでは、前記目標反復間隔は、少なくとも1回の反復を含み、
前記ニューラルネットワークの量子化パラメータは、前記ニューラルネットワークの演算
における量子化すべきデータに対する量子化動作を実現するためのものであることを特徴
とする。
、前記量子化すべきデータに対応する量子化データにおける小数点の位置である。前記方
法は、以下をさらに含む。
タに基づいて、前記目標反復間隔における反復に対応する小数点位置を確定して、前記ニ
ューラルネットワーク演算における小数点位置を調整することをさらに含む。
記量子化すべきデータに対応する量子化データにおける小数点の位置である。前記方法は
、
データビット幅を確定し、ここでは、目標反復間隔における反復に対応するデータビット
幅は一致することと、
いて、前記目標反復間隔における反復に対応する小数点位置を調整して、前記ニューラル
ネットワーク演算における小数点位置を調整することをさらに含み、
反復間隔における反復の小数点位置は一致している。
ケーリング係数は前記小数点位置と同期して更新される。
トは前記小数点位置と同期して更新される。
て量子化誤差を確定し、前記現在検証反復の量子化データは、前記現在検証反復の量子化
すべきデータを量子化することによって得られることと、
こととをさらに含む。
ことは、以下を含む。
ビット幅を大きくして、前記現在検証反復に対応する目標データビット幅を得るように構
成され、または、
ータビット幅を小さくして、前記現在検証反復の目標データビット幅を得ることを含む。
反復に対応するデータビット幅を大きくして、前記現在検証反復に対応する目標データビ
ット幅を得ることは、
長さに基づいて第1中間データビット幅を確定することと、
ける量子化すべきデータと前記現在検証反復の量子化データに基づいて量子化誤差を確定
することを戻して実行することとを含む。ここでは、前記現在検証反復の量子化データは
、前記第1中間データビット幅が前記現在検証反復の量子化すべきデータを量子化するこ
とで得られるものである。
反復に対応するデータビット幅を減少することは、
長さに基づいて第2中間データビット幅を確定することと、
ける量子化すべきデータと前記現在検証反復の量子化データに基づいて量子化誤差を確定
することを戻して実行することとを含む。ここでは、前記現在検証反復の量子化データは
、前記第2中間データビット幅が前記現在検証反復の量子化すべきデータを量子化するこ
とで得られるものである。
量子化すべきデータのデータ変動幅を表すために用いることができ、前記小数点位置の変
動幅は、前記量子化すべきデータのデータ変動幅と正の相関がある。
の反復間隔に対応する検証反復である前記一つ前の検証反復前の履歴反復に対応する小数
点位置とによって第1平均値を確定することと、
れる、前記現在検証反復に対応する小数点位置と、前記現在検証反復前の履歴反復の小数
点位置とによって第2平均値を確定することと、前記小数点位置の変動幅を表すための第
1誤差を、前記第1平均値および前記第2平均値によって確定することとを含む。
前の履歴反復の小数点位置とに基づいて第2平均値を確定することは、
は、前記現在検証反復の前の前記プリセット数の検証反復に基づいて確定されることと、
基づいて前記第2平均値を確定することとを含む。
前の履歴反復の小数点位置とに基づいて第2平均値を確定することは、
均値を確定することを含む。
を含み、ここでは、前記現在検証反復のデータビット幅調整値は、前記現在検証反復の目
標データビット幅と初期データビット幅に基づいて確定される。
基づいて、前記第2平均値を更新することは、
記現在検証反復のデータビット幅調整値に基づいて前記第2平均値を減少することと、
記現在検証反復のデータビット幅調整値に基づいて前記第2平均値を増加するように構成
される。
隔を確定することは、
とを含む。
、
データのデータ変動幅を確定することとを含む。
隔を確定することは、
を表すための第2誤差によって前記目標反復間隔を確定することをさらに含む。
復間隔を確定することは、
標誤差は前記目標反復間隔と負の相関がある。
在検証反復の量子化データによって確定され、前記第2誤差は前記量子化誤差と正の相関
がある。
に利用され、前記方法は、
タ変動幅によって目標反復間隔を確定し、前記目標反復間隔によって前記量子化パラメー
タを調整することをさらに含む。
記目標反復間隔とし、前記第1プリセット反復間隔によって前記量子化パラメータを調整
することをさらに含む。
復間隔とし、前記第2プリセット反復間隔によって前記量子化パラメータを調整すること
をさらに含む。
リセット反復間隔は前記第1プリセット反復間隔より大きい。
第2プリセット反復以上であると確定することをさらに含む。
大きい場合、前記量子化すべきデータのデータ変動幅によって反復間隔を確定し、前記反
復間隔によって前記データビット幅を再確定することをさらに含む。
は勾配データのうちの少なくとも1つである。
前記装置はメモリおよびプロセッサを含み、前記メモリにコンピュータプログラムが記憶
され、前記プロセッサは前記コンピュータプログラムを実行すると、以上に記載のいずれ
か一項の方法のステップが実施される。
され、前記コンピュータプログラムが実行されると、以上に記載のいずれか一項に記載の
方法のステップが実現される。
前記装置は、
この目標反復間隔に基づいて、ニューラルネットワーク演算における量子化パラメータを
調整し、ここでは、前記目標反復間隔は、少なくとも1回の反復を含み、前記ニューラル
ネットワークの量子化パラメータは、前記ニューラルネットワークの演算における量子化
すべきデータに対する量子化動作を実現するためのものであるように構成される反復間隔
確定モジュールとを含む。
前記量子化すべきデータに対応する量子化データにおける小数点の位置である。前記装置
は、
に基づいて、前記目標反復間隔における反復に対応する小数点位置を確定して、前記ニュ
ーラルネットワーク演算における小数点位置を調整するように構成される量子化パラメー
タ確定モジュールをさらに含む。
記量子化すべきデータに対応する量子化データにおける小数点の位置である。前記装置は
さらに、
データビット幅を確定し、ここでは、目標反復間隔に対応するデータビット幅は一致する
ように構成されるデータビット幅確定モジュールと、
いて、前記目標反復間隔における反復に対応する小数点位置を調整して、前記ニューラル
ネットワーク演算における小数点位置を調整するように構成される量子化パラメータ確定
モジュールとを含み、
反復間隔における反復の小数点位置は一致している。
スケーリング係数は、前記小数点位置と同期して更新される。
トは前記小数点位置と同期して更新される。
て量子化誤差を確定し、前記現在検証反復の量子化データは、前記現在検証反復の量子化
すべきデータを量子化することによって得られるように構成される量子化誤差確定ユニッ
トと、
ように構成されるデータビット幅確定ユニットとを含む。
前記現在検証反復に対応する目標データビット幅を確定するように構成され、具体的には
、
ビット幅を大きくして、前記現在検証反復に対応する目標データビット幅を得るように構
成され、または、
ータビット幅を小さくして、前記現在検証反復の目標データビット幅を得るように構成さ
れる。
セット閾値以上の場合、前記現在検証反復に対応するデータビット幅を大きくして、前記
現在検証反復に対応する目標データビット幅を得るように構成され、具体的には、
長さに基づいて第1中間データビット幅を確定し、
ける量子化すべきデータと前記現在検証反復の量子化データに基づいて量子化誤差を確定
することを戻して実行するように構成される。ここでは、前記現在検証反復の量子化デー
タは、前記第1中間データビット幅が前記現在検証反復の量子化すべきデータを量子化す
ることで得られるものである。
セット閾値以下であれば、前記現在検証反復に対応するデータビット幅を小さくて、前記
現在検証反復に対応する目標データビット幅を得るように構成され、具体的には、
前記量子化誤差が第2プリセット閾値以下の場合、第2プリセットビット幅のステップ
長さに基づいて第2中間データビット幅を確定することと、
ける量子化すべきデータと前記現在検証反復の量子化データに基づいて量子化誤差を確定
することを戻して実行することとを含む。ここでは、前記現在検証反復の量子化データは
、前記第2中間データビット幅が前記現在検証反復の量子化すべきデータを量子化するこ
とで得られるものである。
前記小数点位置の変動幅は、前記量子化すべきデータのデータ変動幅を表すために用いる
ことができ、前記小数点位置の変動幅は、前記量子化すべきデータのデータ変動幅と正の
相関がある。
の反復間隔に対応する検証反復である前記一つ前の検証反復前の履歴反復に対応する小数
点位置とによって第1平均値を確定するように構成される第1平均値ユニットと、
位置とに基づいて第2平均値を確定し、前記現在検証反復に対応する小数点位置と、前記
現在検証反復前の履歴反復の小数点位置とによって第2平均値を確定するように構成され
る第2平均値確定ユニットと、
値によって確定するように構成される第1誤差モジュールとを含む。
は、前記現在検証反復の前の前記プリセット数の検証反復に基づいて確定され、
基づいて前記第2平均値を確定するように構成される。
応する小数点位置および前記第1平均値に基づいて前記第2平均値を確定するように構成
される。
データビット幅調整値に基づいて、前記第2平均値を更新するように構成され、
タビット幅と初期データビット幅に基づいて確定される。
ータビット幅調整値に基づいて、前記第2平均値を更新するように構成され、具体的に、
記現在検証反復のデータビット幅調整値に基づいて前記第2平均値を減少し、
記現在検証反復のデータビット幅調整値に基づいて前記第2平均値を増加するように構成
される。
1誤差と負の相関がある前記目標反復間隔を確定するように構成される。
向を取得し、前記小数点位置の変動幅と前記データビット幅の変動傾向によって、前記量
子化すべきデータのデータ変動幅を確定するように構成される。
めの第1誤差およびデータビット幅の変動傾向を表すための第2誤差によって前記目標反
復間隔を確定するように構成される。
基づいて、前記目標反復間隔時を確定するように構成され、具体的には、
標誤差は前記目標反復間隔と負の相関があるように構成される。
の量子化データによって確定され、前記第2誤差は前記量子化誤差と正の相関がある。
を実現するために用いられ、前記反復間隔確定モジュールはさらに、
タ変動幅によって目標反復間隔を確定し、前記目標反復間隔によって前記量子化パラメー
タを調整するように構成される。
プリセット反復以下の場合、前記第1プリセット反復間隔を前記目標反復間隔とし、前記
第1プリセット反復間隔によって前記量子化パラメータを調整するように構成される。
復間隔とし、前記第2プリセット反復間隔によって前記量子化パラメータを調整するよう
に構成される。
現在反復が第2プリセット反復以上であると確定し、
復間隔は前記第1プリセット反復間隔より大きい。
セット反復以上であり、かつ第2誤差がプリセット誤差値より大きい場合、前記量子化す
べきデータのデータ変動幅によって反復間隔を確定し、前記反復間隔によって前記データ
ビット幅を再確定するように構成される。
施することもできることを理解されたい。例えば、上述した実施形態に記載のユニット/
モジュールの分割は、単に論理的機能分割に過ぎず、実際に実現される場合には別の分割
方式が可能である。例えば、複数のユニット、モジュール、またはコンポーネントが組み
合わされてもよく、または別のシステムに統合されてもよく、またはいくつかの特徴が無
視されてもよく、または実行されなくてもよい。
よいし、物理的に分離されていなくてもよい。ユニットまたはモジュールとして示される
構成要素は、物理的ユニットであってもよく、物理的ユニットでなくてもよく、すなわち
、1つの装置内に配置されてもよく、または複数の装置に分散されてもよい。本開示の実
施形態の態様は、実際の必要性に応じて、その中のユニットの一部または全部を選択して
実施することができる。
は、1つのユニット/モジュールに一体化されていてもよいし、各ユニット/モジュール
が個別に物理的に存在していてもよく、2つ以上のユニット/モジュールが一体化されて
いてもよい。上記一体化されたユニット/モジュールは、ハードウェアの形態で実現する
ことができ、ソフトウェアプログラムモジュールの形態で実現することもできる。
施することもできることを理解されたい。例えば、上述した実施形態に記載のユニット/
モジュールの分割は、単に論理的機能分割に過ぎず、実際に実現される場合には別の分割
方式が可能である。例えば、複数のユニット、モジュール、またはコンポーネントが組み
合わされてもよく、または別のシステムに統合されてもよく、またはいくつかの特徴が無
視されてもよく、または実行されなくてもよい。
よいし、物理的に分離されていなくてもよい。ユニットまたはモジュールとして示される
構成要素は、物理的ユニットであってもよく、物理的ユニットでなくてもよく、すなわち
、1つの装置内に配置されてもよく、または複数の装置に分散されてもよい。本開示の実
施形態の態様は、実際の必要性に応じて、その中のユニットの一部または全部を選択して
実施することができる。
は、1つのユニット/モジュールに一体化されていてもよいし、各ユニット/モジュール
が個別に物理的に存在していてもよく、2つ以上のユニット/モジュールが一体化されて
いてもよい。上記一体化されたユニット/モジュールはハードウェアの形態で実現するこ
とができ、ソフトウェアプログラムモジュールの形態で実現することもできる。
ハードウェアは、デジタル回路、アナログ回路などであってもよい。ハードウェア構造の
物理的実装は、トランジスタ、メモリスタなどを含むが、これらに限定されない。特に明
記しない限り、前記人工知能プロセッサは、任意の適切なハードウェアプロセッサであっ
てもよい。例えば、CPU、GPU、FPGA、DSPとASICなどである。特別な説
明がなければ、前記記憶ユニットは、任意の適切な磁気記憶媒体または磁気光学記憶媒体
であってもよいし、例えば、抵抗可変メモリRRAM(Resistive Rando
m Access Memory)、ダイナミックランダムアクセスメモリDRAM(D
ynamic Random Access Memory)、スタティックランダムア
クセスメモリSRAM(Static Random-Access Memory)、
増強動的ランダムアクセスメモリEDRAM(Enhanced Dynamic Ra
ndom Access Memory)、高帯域メモリHBM(High-Bandw
idth Memory)、ハイビッドメモリキューブHMC(Hybrid Memo
ry Cube)などである。
態で実装され、別個の製品として販売または使用される場合、1つのコンピュータ可読メ
モリに記憶されてもよい。このような理解に基づいて、本開示の技術の解決手段は、本質
的に、または、従来技術に寄与する部分または該技術の解決手段の全てまたは一部は、ソ
フトウェア製品の形態で具現化されてよく、該コンピュータソフトウェア製品は、メモリ
に記憶されており、コンピュータ装置(パーソナルコンピュータ、サーバ、またはネット
ワーク装置等であってよい)に、本開示の各実施形態に記載の方法の全部または一部のス
テップを実行させるためのいくつかのコマンドを含む。上記のメモリは、Uディスク、読
み取り専用メモリ(ROM、Read-Only Memory)、ランダムアクセスメ
モリ(RAM、Random Access Memory)、リムーバブルハードディ
スク、磁気ディスクまたは光ディスクなどの、プログラムコードを記憶可能な様々な媒体
を含む。
ットワークの量子化パラメータ確定装置を含む。
フェースデバイス、制御デバイス、および以上に記載の人工知能チップを含み、ここでは
、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および前記インターフ
ェイスデバイスにそれぞれ接続され、前記記憶デバイスは、データを記憶するためのもの
であり、前記インターフェイスデバイスは、前記人工知能チップと外部装置との間のデー
タ伝送を実現するためのものであり、前記制御デバイスは、前記人工知能チップの状態を
監視するためのものである。
を参照すると、前記PCBボードは、前記チップ389に加えて、他の構成部品を含んで
もよいが、この構成部品は、記憶デバイス390、インターフェースデバイス391と制
御デバイス392を含むが、これらに限定されない。
に利用される。前記記憶デバイスは複数組の記憶ユニット393を含んでもよい。各組の
前記記憶ユニットは前記人工知能チップとバスによって接続される。なお、各組の前記メ
モリユニットは、DDR SDRAM(英語:Double Data Rate SD
RAM、ダブルレート同期ダイナミックランダムアクセスメモリ)であってもよいことが
理解されるであろう。
。DDRは、クロックパルスの立ち上がりエッジおよび立ち下がりエッジでデータを読み
出すことを可能にする。DDRのスピードは、標準SDRAMの2倍である。一実施形態
では、前記記憶装置は、4組の前記記憶ユニットを含むことができる。前記メモリユニッ
トの各組は、複数のDDR4粒子(チップ)を含むことができる。一実施形態では、前記
人工知能チップは内部に4つの72ビットDDR4コントローラを含むことができ、前記
72ビットDDR4コントローラのうち64bitはデータを伝送するために用いられ、
8bitはECCチェックに用いられる。前記メモリユニットにDDR4-3200粒子
が使用される場合、データ伝送の理論帯域幅は25600MB/sに達することが理解さ
れるであろう。
期ダイナミックランダムアクセスメモリを含む。DDRは、1クロックサイクル内で2回
データを送信することができる。前記チップにはDDRを制御するコントローラが設けら
れ、前記メモリユニット毎のデータ伝送とデータ記憶の制御に用いられる。
ターフェースデバイスは、前記人工知能チップと外部装置(例えば、サーバまたはコンピ
ュータ)との間のデータ伝送を可能にするために使用される。例えば、一実施形態では、
前記インターフェースデバイスは標準PCIEインターフェースであってもよい。例えば
、処理すべきデータは、標準PCIEインターフェースを介してサーバによってチップに
伝送され、データ転送を可能にする。好ましくは、理論帯域幅は、PCIE 3.0X1
6インターフェース伝送を使用する場合、16000MB/sに達することができる。別
の実施形態では、前記インターフェースデバイスは、他のインターフェースであってもよ
く、本開示は、上記の他のインターフェースの具体的な表現形態を限定するものではなく
、前記インターフェースユニットは、中継機能を実現することができる。さらに、前記人
工知能チップの計算結果は、以前として前記インターフェースデバイスによって外部装置
(例えば、サーバ)に伝送される。
前記人工知能チップの状態を監視するためのものである。具体的には、前記人工知能チッ
プおよび前記制御デバイスは、SPIインターフェースを介して電気的に接続することが
できる。前記制御デバイスは、マイクロコントローラ(Micro Controlle
r Unit)を含むことができる。例えば、前記人工知能チップは、複数の処理チップ
、複数の処理コア、または複数の処理回路を含むことができ、複数の負荷を駆動すること
ができる。したがって、前記人工知能チップは、多負荷および軽負荷などの異なる動作状
態にあってもよい。前記制御装置によって前記人工知能チップにおける複数の処理チップ
、複数の処理コアまたは複数の処理回路の動作状態の調節を実現することができる。
機器は、データ処理装置、ロボット、コンピュータ、プリンタ、スキャナ、タブレットコ
ンピュータ、スマート端末、携帯電話、ドライブレコーダ、ナビゲータ、センサ、カメラ
ランズ、サーバ、クラウドサーバ、カメラ、ビデオカメラ、プロジェクタ、腕時計、ヘッ
ドホン、モバイル記憶装置、ウェアラブルデバイス、乗り物、家電製品、および/または
医療デバイスを含む。
、電子レンジ、冷蔵庫、炊飯器、加湿器、洗濯機、電灯、ガスレンジ、レンジフードを含
む。前記医療装置は、核磁気共鳴装置、Bモード超音波機器および/または心電計を含む
。
量子化すべきデータに対して前記量子化処理を実行するためのデータビット幅を取得する
ことと、
て、前記1組の量子化すべきデータを、前記データビット幅を持つ1組の量子化後のデー
タに変換することと、
ット幅に関連する量子化誤差を確定することと、
とを特徴とするデータビット幅を調整するための方法。
ータビット幅に関連する量子化誤差を確定することは、
づいて前記量子化誤差を確定することとを含むことを特徴とする項目A1に記載の方法。
タに基づいて前記量子化誤差を確定することは、
化データを得て、前記1組の逆量子化データのデータフォーマットが前記1組の量子化す
べきデータのデータフォーマットと同じであることと、
確定することとを含むことを特徴とする項目A2に記載の方法。
値と比較することと、
項目A1~A3のいずれか一項に記載の方法。
加することを含むことを特徴とする項目A4に記載の方法。
第1プリセットビット幅のステップ長さによって前記データビット幅を増加して、調整
後データビット幅を確定することを含むことを特徴とする項目A5に記載の方法。
処理を実行して、前記1組の量子化すべきデータを、前記調整後データビット幅を持つ別
の1組の量子化後のデータに変換することと、
後データビット幅に関連する別の量子化誤差を、前記別の量子化誤差が前記第1プリセッ
ト閾値以下になるまで、確定することをさらに含むことを特徴とする項目A6に記載の方
法。
幅を減少することを含む、ことを特徴とする項目A4に記載の方法。
第2プリセットビット幅のステップ長さによって前記データビット幅を減少し、調整後
データビット幅を確定することを含む、ことを特徴とする項目A9に記載の方法。
て量子化処理を実行し、前記1組の量子化すべきデータを、前記調整後データビット幅を
持つ別の1組の量子化後のデータに変換することと、
子化誤差が第2プリセット閾値より大きくなるまで、前記調整後データビット幅に関連す
る前記別の量子化誤差を確定することをさらに含む、ことを特徴とする項目A10に記載
の方法。
データビット幅を維持することを含む、ことを特徴とする項目A4に記載の方法。
1組の量子化すべきデータに対して量子化処理を実行するための量子化パラメータを更新
することと、
量子化処理を実行することとをさらに含む、ことを特徴とする項目A1~A13のいずれ
か一項に記載の方法。
1回の反復を含む前記目標反復間隔によって前記データビット幅を調整することとをさら
に含む、ことを特徴とする項目A1に記載の方法。
タのデータ変動幅と正の相関がある、小数点位置の変動幅を取得することとを含む、こと
を特徴とする項目A15に記載の方法。
う復間隔に対応する検証反復である前記一つ前の検証反復前の履歴反復に対応する小数点
位置とによって第1平均値を確定することと、
れる、前記現在検証反復に対応する小数点位置と、前記現在検証反復前の履歴反復の小数
点位置とによって第2平均値を確定することと、
値によって確定することとを含む、ことを特徴とする項目A16に記載の方法。
は、
とを含む、ことを特徴とする項目A15に記載の方法。
データのデータ変動幅を確定することとををさらに含む、ことを特徴とする項目A15に
記載の方法。
は、
を表すための第2誤差によって前記目標反復間隔を確定することとをさらに含む、ことを
特徴とする項目A19に記載の方法。
定することは、
こととを含む、ことを特徴とする項目A20に記載の方法。
の量子化データによって確定され、前記第2誤差は前記量子化誤差と正の相関がある、こ
とを特徴とする項目A20または21に記載の方法。
いられ、
タ変動幅によって目標反復間隔を確定し、前記目標反復間隔によって前記量子化パラメー
タを調整することをさらに含む、ことを特徴とする項目A15~22のいずれか一項に記
載の方法。
間隔を前記目標反復間隔とし、前記第1プリセット反復間隔によって前記量子化パラメー
タを調整することをさらに含む、ことを特徴とする項目A23に記載の方法。
記目標反復間隔とし、前記第2プリセット反復間隔によって前記量子化パラメータを調整
することをさらに含み、
反復間隔は前記第1プリセット反復間隔よりも大きい、ことを特徴とする項目A23また
は24に記載の方法。
在検証反復が第2プリセット反復以上であると確定することをさらに含む、ことを特徴と
する項目A25に記載の方法。
差値より大きい場合、前記量子化すべきデータのデータ変動幅によって反復間隔を確定し
、前記反復間隔によって前記データビット幅を再確定することをさらに含む、ことを特徴
とする項目A25に記載の方法。
量子化すべきデータに対して量子化処理を実行するためのデータビット幅を取得するよう
に構成される取得モジュールと、
て、前記1組の量子化すべきデータを前記データビット幅を持つ1組の量子化後のデータ
に変換するように構成される量子化モジュールと、
ット幅に関連する量子化誤差を確定するように構成される確定モジュールと、
を含む、ことを特徴とするデータビット幅の調整装置。
ルと、
によって前記量子化誤差を確定するように構成される誤差確定モジュールとを含む、こと
を特徴とする項目A28に記載の装置。
タフォーマットが前記1組の量子化すべきデータのデータフォーマットと同じである1組
の逆量子化データを取得するように構成される逆量子化モジュールと、
前記1組の逆量子化データおよび前記1組の量子化すべきデータによって量子化誤差を
確定するように構成される量子化誤差確定モジュールとを含む、ことを特徴とする項目A
29に記載の装置。
較するように構成される比較モジュールと、
モジュールとを含む、ことを特徴とする項目A28~30のいずれか一項に記載の装置。
加するように構成される増加モジュールを含む、ことを特徴とする項目A31に記載の装
置。
データビット幅を確定するように構成されるステップ長さ増加モジュールを含む、ことを
特徴とする項目A32に記載の装置。
組の量子化すべきデータに対して量子化処理を実行し、前記1組の量子化すべきデータを
、前記調整後データビット幅を持つ別の1組の量子化後のデータに変換するように構成さ
れ、
すべきデータのと比較し、別の量子化誤差が前記第1プリセット閾値以下になるまで、前
記調整後データビット幅に関連する前記別の量子化誤差を確定するように構成される、こ
とを特徴とする項目A33に記載の装置。
34に記載の装置。
減少するように構成される減少モジュールを含む、ことを特徴とする項目A31に記載の
装置。
データビット幅を確定するように構成されるステップ長さ減少モジュールを含む、ことを
特徴とする項目A36に記載の装置。
1組の量子化すべきデータに対して量子化処理を実行し、前記1組の量子化すべきデータ
を、前記調整後データビット幅を持つ別の1組の量子化後のデータに変換するように構成
され、
後のデータに基づいて、別の量子化誤差が前記第2プリセット閾値より大きくなるまで、
前記調整後データビット幅に関連する前記別の量子化誤差を確定するように構成される、
ことを特徴とする項目A37に記載の装置。
38に記載の装置。
前記データビット幅を維持するように構成される維持モジュールを含む、ことを特徴とす
る項目A31に記載の装置。
前記1組の量子化すべきデータに対して量子化処理を実行するための量子化パラメータを
更新するように構成される更新モジュールをさらに含み、
の量子化すべきデータに対して量子化処理を実行するように構成される、ことを特徴とす
る項目A28~40のいずれか一項に記載の装置。
と、
復間隔を確定し、前記目標反復間隔によって前記データビット幅を調整するように構成さ
れる間隔モジュールとをさらに含む、ことを特徴とする項目A28に記載の装置。
タのデータ変動幅と正の相関がある小数点位置の変動幅を取得するように構成される小数
点位置モジュールを含む、ことを特徴とする項目A42に記載の装置。
つ前の反復間隔に対応する検証反復である前記一つ前の検証反復前の履歴反復に対応する
小数点位置とによって第1平均値を確定するように構成される第1平均値モジュールと、
れる、前記現在検証反復に対応する小数点位置と、前記現在検証反復前の履歴反復の小数
点位置とによって第2平均値を確定するように構成される第2平均値モジュールと、
値によって確定するように構成される第1誤差モジュールとを含む、ことを特徴とする項
目A43に記載の装置。
うに構成される第1間隔モジュールを含む、ことを特徴とする項目A42に記載の装置。
データのデータ変動幅を確定するように構成されるデータ変動幅モジュールとを含む、こ
とを特徴とする項目A42に記載の装置。
向を表すための第2誤差によって前記目標反復間隔を確定するように構成される反復間隔
モジュールをさらに含む、ことを特徴とする項目A46に記載の装置。
差モジュールと、
ように構成される目標反復間隔モジュールとを含む、ことを特徴とする項目A47に記載
の装置。
の量子化データによって確定され、前記第2誤差は前記量子化誤差と正の相関がある、こ
とを特徴とする項目A47またはA48に記載の装置。
いられ、
タ変動幅によって目標反復間隔を確定し、前記目標反復間隔によって前記量子化パラメー
タを調整するように構成される第1反復モジュールをさらに含む、ことを特徴とする項目
A42~A49のいずれか一項に記載の装置。
間隔を前記目標反復間隔とし、前記第1プリセット反復間隔によって前記量子化パラメー
タを調整するように構成される第2反復モジュールをさらに含む、ことを特徴とする項目
A50に記載の装置。
復間隔とし、前記第2プリセット反復間隔によって前記量子化パラメータを調整するよう
に構成される第3反復モジュールをさらに含み、
反復間隔は前記第1プリセット反復間隔よりも大きい、ことを特徴とする項目A50また
は51に記載の装置。
在検証反復が第2プリセット反復以上であると確定するように構成される収束モジュール
をさらに含む、ことを特徴とする項目A52に記載の装置。
差値より大きい場合、前記量子化すべきデータのデータ変動幅によって反復間隔を確定し
、前記反復間隔によって前記データビット幅を再確定することをさらに含む、ことを特徴
とする項目A52に記載の装置。
記プログラムが実行されると、A1~27のいずれか一項に記載の方法が実現される、こ
とを特徴とするコンピュータ可読記憶媒体。
するための装置を含む、ことを特徴とする人工知能チップ。
電子装置。
記憶デバイス、インターフェースデバイス、制御デバイス、およびA56に記載の人工
知能チップを含み、
ェイスデバイスに接続され、
を実現するためのものであり、
特徴とするPCBボード。
組の記憶ユニットはバスを介して前記人工知能チップに接続され、前記記憶ユニットはD
DR SDRAMであり、
タストレージを制御し、
とする項目A58に記載のPCBボード。
505239.7)を提供した。具体的には、ニューラルネットワークの量子化方法およ
び装置ならびに関連製品を提供する。
置および関連製品に関する。
自然言語処理などの分野においてよく応用されている。しかし、人工知能アルゴリズムの
複雑性が高まるにつれ、処理すべきデータ量やデータ次元がだんだん増大しており、どの
ように演算効率と演算結果の精度のバランスをとるかが人工知能分野では解決すべき問題
である。
ラルネットワークにおける任意の量子化すべき層に対して、前記方法は、
し、前記量子化すべきデータは、ニューロン、重み、オフセット、および勾配のうちの少
なくとも1つを含むことと、
得ることで、前記ニューラルネットワークは前記量子化データに基づいて演算を実行する
こととを含む。
は、前記ニューラルネットワークにおける任意の量子化すべき層を量子化するためのもの
であり、前記装置は、
するために用いられ、前記量子化すべきデータはニューロン、重み、オフセット、および
勾配のうち少なくとも1つを含む量子化パラメータ確定モジュールと、
得ることで、前記ニューラルネットワークは前記量子化データに基づいて演算を実行する
ための量子化モジュールとを含む。
チップを提供する。
ス、インターフェースデバイス、制御デバイス、および以上に記載の人工知能チップを含
み、ここでは、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および前
記インターフェイスデバイスにそれぞれ接続され、前記記憶デバイスは、データを記憶す
るためのものであり、前記インターフェイスデバイスは、前記人工知能チップと外部装置
との間のデータ伝送を実現するためのものであり、前記制御デバイスは、前記人工知能チ
ップの状態を監視するためのものである。
層に対して、前記量子化すべき層における各量子化すべきデータに対応する量子化パラメ
ータを確定し、前記量子化すべきデータはニューロン、重み、オフセット、および勾配の
うち少なくとも1つを含む。量子化すべきデータを対応する量子化パラメータに基づいて
量子化し、量子化データを得ることで、前記ニューラルネットワークは前記量子化データ
に基づいて演算を実行する。各層の量子化すべきデータにさらに適する量子化パラメータ
を採用して各量子化すべき層に対して量子化を行い、各層の演算結果の精度を保証する前
提で、各層の演算効率を向上させることができる。ニューラルネットワーク全体の演算結
果の精度を保証することを前提として、ニューラルネットワーク全体の演算効率を向上さ
せることもできる。
よび態様が明らかになるであろう。
的な実施形態、特徴、および態様を示し、本開示の原理を説明するために使用される。
チャートである。
チャートである。
チャートである。
チャートである。
量子化パラメータがオフセットを含まない場合の、量子化前後のデータ対応の概略図であ
る。
チャートである。
量子化パラメータがオフセットを含む場合の、量子化前後のデータ対応の概略図である。
チャートである。
チャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
図である。
図である。
図である。
図である。
図である。
含む次の技術案(201910505239.7)を提供した。以下、本開示の実施形態
における技術案は、本開示の実施形態における図面を参照して明確かつ完全に説明される
。明らかに、記載された実施形態は、本開示の実施形態の一部であるが、すべての実施形
態ではない。本開示の実施形態に基づいて、創造的な作業なしに当業者によって得られる
他のすべての実施形態は、本開示の保護範囲に含まれる。
よび「第4」等の用語は、特定の順序を説明するのではなく、異なる対象を区別するため
のものであることを理解されたい。本開示の明細書および特許請求の範囲で使用される「
含む」および「含む」という用語は、記載された特徴、全体、ステップ、操作、要素およ
び/またはコンポーネントの存在を示すが、1つまたは複数の他の特徴、全体、ステップ
、操作、要素、コンポーネント、および/またはそれらのコンビネーションの存在または
追加を除外しない。
おり、本開示を限定することを意図するものではないことも理解されたい。本願の明細書
および特許請求の範囲に使用されるように、文脈で明白に他の意味が示されない限り、単
数形の「一」、「1つ」および「該」は複数形を含むことを意味する。本開示の明細書お
よび特許請求の範囲で使用される「および/または」という用語は、関連してリストされ
た1つまたは複数の項目の任意の組み合わせおよびすべての可能な組み合わせを指し、こ
れらの組み合わせを含むことをさらに理解されたい。
用される」ことを意味する。「例示的なもの」として本明細書に記載されたいかなる実施
形態も、必ずしも他の実施形態よりも優れているまたはより優れていると解釈すべきでは
ない。
形態に示されている。当業者であれば、特定の詳細なしに、本開示を同様に実施すること
ができることを理解するであろう。いくつかの例では、本開示の趣旨を強調するために、
当業者に周知の方法、手段、要素、および回路については詳細に説明していない。
ットまたは精度の高い固定小数点データフォーマットであり、ニューラルネットワークを
ロードするチップ内でニューラルネットワークを動作させる場合、浮動小数点データフォ
ーマットまたは精度の高い固定小数点データフォーマットの様々な演算対象データにより
、ニューラルネットワークの動作の演算量およびアクセスオーバーヘッドの両方を増大さ
せる。演算効率を向上させるために、ニューラルネットワークにおける演算対象データを
量子化することができ、量子化されたデータフォーマットは、通常、ビット幅が短く精度
が低い固定小数点データフォーマットである。より精度の低い量子化後データを用いてニ
ューラルネットワークの演算を実行することで、演算量とアクセス量を低減することがで
きる。量子化されたデータフォーマットは、ビット幅が短い固定小数点データフォーマッ
トであってもよい。浮動小数点データフォーマットの演算対象データを固定小数点データ
フォーマットの演算対象データに量子化してもよいし、精度の高い固定小点数フォーマッ
トの演算対象のデータを精度の低い固定小数点フォーマットの演算対象データに量子化し
てもよい。
解されるであろう。量子化精度は、ニューラルネットワーク演算結果の精度に影響を与え
ることができる。量子化精度が高いほど、演算結果の精度が高くなるが、演算量が大きく
なり、アクセスオーバーヘッドも大きくなる。ビット幅が短い量子化後データに比べて、
ビット幅が長い量子化後データの量子化精度が高く、ニューラルネットワークを実行する
ための演算時の精度も高い。しかし、ニューラルネットワークの演算に用いた場合、ビッ
ト幅の長さの量子化後のデータの演算量が大きくなり、アクセスオーバーヘッドも大きく
なり、演算効率が低い。同様に、同じ量子化すべきデータに対して、異なる量子化パラメ
ータを用いて得られた量子化後のデータは異なる量子化精度を有し、異なる量子化結果が
生じ、演算効率と演算結果の精度にも異なる影響を与える。ニューラルネットワークを量
子化し、演算効率と演算結果の精度との間でバランスがとれるように、演算対象データの
データ特徴により適する量子化後のデータビット幅と量子化パラメータを用いることがで
きる。
、勾配を含むことができ、ニューラルネットワークにおける演算すべきデータを量子化す
る従来の場合、通常、ニューラルネットワーク全体に対して同じ量子化パラメータが設定
される。例えば、ニューラルネットワークには4つの畳み込み層と2つの全接続層が含ま
れ、演算すべきデータがニューロン(通常は入力ニューロン)であり、量子化のための一
組の量子化パラメータAをニューラルネットワークのために設定し、量子化パラメータA
を用いて4つの畳み込み層および2つの全接続層のニューロンを量子化することができる
。神経ネットワークにおける各層のニューロンが異なるため、各層で用いられるアルゴリ
ズムも異なり、同じ量子化パラメータを用いて各層を量子化し、量子化パラメータは各層
のニューロンの特徴に適応できないため、ニューラルネットワークの全体的な量子化精度
が低く、演算結果の精度が低い。また、ニューラルネットワークに一組の量子化パラメー
タを設定する場合、演算結果の精度を考慮して量子化精度を向上させ、一組のビット幅が
長い量子化後ビット幅を設定すると、ニューラルネットワークの演算効率を低下させる。
このため、従来のニューラルネットワークの量子化方法では、量子化精度の向上と演算効
率の向上との間で有効なバランスをとることができない。
ャートである。このニューラルネットワーク量子化方法は、汎用プロセッサ(例えば、中
央プロセッサCPU、グラフィックスプロセッサGPU)、および専用プロセッサ(例え
ば、人工知能プロセッサ、科学計算プロセッサ、またはデジタル信号プロセッサなど)に
応用することができ、本開示は、ニューラルネットワーク量子化方法が応用されるプロセ
ッサのタイプを限定するものではない。
対し、前記ニューラルネットワーク量子化方法は以下のステップを含む。
子化パラメータを確定し、前記量子化すべきデータはニューロン、重み、オフセット、お
よび勾配のうち少なくとも1つを含む。
任意の層であってもよい。ニューラルネットワークにおける層の一部または全てを、必要
に応じて量子化される層として確定することができる。量子化すべき複数の層がニューラ
ルネットワークに含まれる場合、量子化すべき各層は連続的であっても不連続的であって
もよい。量子化すべき層の種類は、ニューラルネットワークによっては異なっていてもよ
く、例えば、量子化すべき層は、畳み込み層、全接続層などであってもよく、本開示は、
量子化すべき層の数およびタイプを限定するものではない。
ト、勾配のうちの少なくとも1つを含む。
オフセット、および勾配を含むことができる。必要に応じて、量子化すべき層のニューロ
ン、重み、オフセット、勾配のうちの少なくとも1つは、量子化すべきデータとすること
ができる。量子化すべき層中に複数種類の量子化すべきデータがある場合、各量子化すべ
きデータに対して本開示の量子化方法を採用して量子化を行った後、各量子化すべきデー
タに対応する量子化データを取得し、さらに各種の量子化データと量子化を必要としない
演算データを利用して量子化すべき層の演算を実行する。更に、必要に応じて、量子化す
べき層内における各種の演算データの全てまたは一部のデータを、量子化すべきデータと
して確定してもよく、本開示はこれに限定されるものではない。
クを、設定タスクの段階が完了するように前方演算する段階を含むことができる。ニュー
ラルネットワークの推理段階において、ニューロン、重み、オフセット、および勾配のう
ちの少なくとも1つは、量子化すべきデータとして、本開示の実施形態における方法に従
って量子化した後、量子化されたデータを利用して、量子化すべき層の演算を完了しても
よい。
ークをプリセット数の反復の順演算と逆演算を行い、パラメータの微調整を行って設定タ
スクの段階に適応する。ニューラルネットワーク演算の微調整段階において、ニューロン
、重み、オフセット、勾配のうちの少なくとも1つを、本開示の実施形態における方法に
従って量子化した後、量子化すべき層の順演算または逆演算を、量子化されたデータを使
用して完了することができる。
ークを反復トレーニングしてトレーニングされたニューラルネットワークを得る段階を含
み、トレーニングされたニューラルネットワークは、特定のタスクを実行することができ
る。ニューラルネットワークのトレーニング段階において、ニューロン、重み、オフセッ
ト、勾配のうちの少なくとも1つを、本開示の実施形態における方法に従って量子化した
後、量子化すべき層の順演算または逆演算を、量子化されたデータを使用して完了するこ
とができる。
いし、複数の量子化パラメータであってもよい。
ータを含むことができる。小数点位置は、量子化されたデータにおける小数点の位置を確
定するために用いることができる。この量子化パラメータは、スケーリング係数、オフセ
ットなどをさらに含むことができる。ニューラルネットワークに複数の量子化すべき層が
含まれる場合、各量子化すべき層は、それぞれ対応する量子化パラメータを有することが
できる。
ラメータに対応することができる。例えば、量子化すべき層1におけるニューロンは、量
子化パラメータ1に対応することができ、量子化すべき層1における重みは、量子化パラ
メータ2に対応することができる。量子化すべき層における各種の量子化すべきデータに
対応する量子化パラメータを確定する方法は、予め設定された量子化パラメータを検索し
て直接量子化パラメータを確定する方法、対応関係を検索して量子化パラメータを確定す
る方法、または量子化すべきデータから量子化パラメータを算出する方法を含むことがで
きる。例えば、
種の量子化すべきデータに対応する量子化パラメータを設定してもよい。設定された量子
化パラメータを、設定されたメモリスペースに記憶してもよい。設定されたメモリスペー
スは、チップ上やチップ外のメモリスペースであってもよい。例えば、設定された量子化
パラメータを層標識で区別して設定されたメモリスペースに記憶してもよい。各量子化す
べき層は、量子化時に、設定されたメモリスペースにおいて対応する量子化パラメータを
抽出してから量子化を行うことができる。経験値に基づいて、各種の量子化すべきデータ
に対応する量子化パラメータを設定することができる。また、必要に応じて設定された各
種の量子化データに対応する量子化パラメータを更新するようにしてもよく、例えば、前
の層の量子化パラメータに応じて後の層の量子化パラメータを更新するようにしてもよい
。
特徴に基づいて、データ特徴と量子化パラメータとの対応関係を検索すること、または層
特徴と量子化パラメータとの対応関係を検索することによって量子化パラメータを確定す
るようにしてもよい。例えば、量子化すべきデータのデータ分布が疎または密である場合
、それぞれ異なる量子化パラメータに対応させることができる。対応関係を検索すること
によって、量子化すべきデータのデータ分布に対応する量子化パラメータを確定すること
ができる。別の例として、量子化すべき層が畳み込み層または全接続層である場合、それ
ぞれ異なる量子化パラメータに対応することができ、量子化すべき層が畳み込み層である
場合、畳み込み層に対応する量子化パラメータを検索することができる。
ラメータ算出方法を用いて、各量子化すべき層に対応する量子化パラメータを算出するよ
うにしてもよい。例えば、量子化すべきデータの絶対値の最大値および予め設定されたデ
ータビット幅に基づいて、丸めアルゴリズムを用いて量子化パラメータ内の小数点位置を
算出することができる。
化し、量子化データを得ることで、前記ニューラルネットワークは前記量子化データに基
づいて演算を実行する。
ータを量子化し、量子化データを得ることができる。例えば、丸めアルゴリズムを量子化
アルゴリズムとして利用し、データビット幅と小数点位置に基づいて量子化すべきデータ
に丸め量子化を行って量子化データを得ることができる。ここでは、丸めアルゴリズムは
、切り上げ、切り捨て、ゼロへの丸めと四捨五入丸め等を含むことができる。本開示は、
量子化アルゴリズムの具体的な実施形態を限定するものではない。
各種の量子化すべきデータは、対応する量子化パラメータを用いてそれぞれ量子化するこ
とができる。各量子化すべきデータに対応する量子化パラメータは、各量子化すべきデー
タ自体の特徴により適合するので、各量子化すべき層の各種の量子化データの量子化精度
は、本層の演算要求により適合する。本層の演算結果の精度を保証する前提で、本層の演
算効率を向上させることができ、本層の演算効率と演算結果の精度のバランスをとること
ができる。ニューラルネットワーク全体に対して、各量子化すべき層の演算結果の精度と
演算効率のバランスを実現し、ニューラルネットワーク全体の演算結果の精度と演算効率
のバランスを実現する。
フラインで量子化したり、オンラインで量子化したりすることができる。ここで、オフラ
イン量子化は、量子化パラメータを用いて量子化すべきデータをオフライン処理すること
であってもよい。オンライン量子化は量子化パラメータを用いて量子化すべきデータをオ
ンライン処理することであってもよい。例えば、ニューラルネットワークが人工知能チッ
プ上で動作し、量子化データと量子化パラメータを人工知能チップ以外の演算装置に送信
してオフライン量子化を行うか、人工知能チップ以外の演算装置を用いて予め得られた量
子化すべきデータと量子化パラメータをオフライン量子化することができる。人工知能チ
ップがニューラルネットワークを実行する過程において、人工知能チップは、量子化すべ
きデータに対して量子化パラメータを用いてオンライン量子化を行うことができる。ニュ
ーラルネットワークに複数の量子化すべき層が含まれている場合、各量子化すべき層は、
それぞれオンライン量子化とオフライン量子化を行うことができる。本開示では、各量子
化すべき層に対する量子化過程は、オンラインまたはオフラインであることに限定されな
い。
し、前記量子化すべき層における各量子化すべきデータに対応する量子化パラメータを確
定し、前記量子化すべきデータは、ニューロン、重み、オフセット、および勾配のうち少
なくとも1つを含み、量子化すべきデータを対応する量子化パラメータに基づいて量子化
し、量子化データを得ることで、前記ニューラルネットワークは前記量子化データに基づ
いて演算を実行する。各層の量子化すべきデータにさらに適する量子化パラメータを採用
して各量子化すべき層に対して量子化を行い、各層の演算結果の精度を保証する前提で、
各層の演算効率を向上させることができる。ニューラルネットワーク全体の演算結果の精
度を保証することを前提として、ニューラルネットワーク全体の演算効率を向上させるこ
ともできる。
とオフセットのうちの少なくとも1つを含み、ここでは、前記小数点位置は、量子化後の
小数点の位置であり、前記スケーリング係数は、量子化後データの最大値と量子化すべき
データの絶対値の最大値との比であり、前記オフセットは量子化すべきデータの中間値で
ある。
式(1)を使用して、量子化すべきデータを量子化し、量子化データIxを取得できる。
Ix=round(Fx/2s) 式(1
)
ータであり、roundは四捨五入の丸め演算である。なお、他の丸め演算方法を用いて
もよく、例えば切り上げ、切り捨て、ゼロへの丸め等の丸め演算を用いて、式(1)中の
四捨五入の丸め演算を代替することができる。なお、データビット幅が一定の場合、小数
点位置の量子化で得られた量子化データにおいて、小数点後のビットが多いほど、量子化
データの量子化精度が大きい。
。この場合、次の式(2)を使用して、量子化すべきデータを量子化し、量子化データI
xを取得できる。
Ix=round(Fx/f) 式(2
)
べきデータであり、roundは四捨五入の丸め演算である。なお、他の丸め演算方法を用い
てもよく、例えば切り上げ、切り捨て、ゼロへの丸め等の丸め演算を用いて、式(2)中
の四捨五入の丸め演算を代替することができる。なお、データビット幅が一定の場合、異
なるスケーリング係数を用いて、量子化後データの数値範囲を調整することができる。
場合、次の式(3)を使用して、量子化すべきデータを量子化し、量子化データIxを取
得できる。
Ix=round(Fx-o) 式(3
)
ータであり、roundは四捨五入の丸め演算である。なお、他の丸め演算方法を用いて
もよく、例えば切り上げ、切り捨て、ゼロへの丸め等の丸め演算を用いて、式(3)中の
四捨五入の丸め演算を代替することができる。なお、データビット幅が一定の場合、異な
るオフセットを用いて、量子化後データの数値と量子化前データとのオフセットを調整す
ることができる。
ことができる。この場合、次の式(4)を使用して、量子化すべきデータを量子化し、量
子化データIxを取得できる。
Ix=round(Fx/2sxf) 式(4
)
であり、Fxは量子化すべきデータであり、roundは四捨五入の丸め演算である。な
お、他の丸め演算方法を用いてもよく、例えば切り上げ、切り捨て、ゼロへの丸め等の丸
め演算を用いて、式(4)中の四捨五入の丸め演算を代替することができる。
ができる。この場合、次の式(5)を使用して、量子化すべきデータを量子化し、量子化
データIxを取得できる。
Ix=round((Fx-o)/2s) 式(5
)
、Fxは量子化すべきデータであり、roundは四捨五入の丸め演算である。なお、他
の丸め演算方法を用いてもよく、例えば切り上げ、切り捨て、ゼロへの丸め等の丸め演算
を用いて、式(5)中の四捨五入の丸め演算を代替することができる。
フセットを含むことができる。この場合、次の式(6)を使用して、量子化すべきデータ
を量子化し、量子化データIxを取得できる。
Ix=round((Fx-o)/2sxf) 式(6
)
り、Ixは量子化データであり、Fxは量子化すべきデータであり、roundは四捨五
入の丸め演算である。なお、他の丸め演算方法を用いてもよく、例えば切り上げ、切り捨
て、ゼロへの丸め等の丸め演算を用いて、式(6)中の四捨五入の丸め演算を代替するこ
とができる。
うちの少なくとも1つを含む。異なる量子化パラメータの組み合わせを用いて量子化すべ
きデータを量子化して、異なる精度の量子化結果を得ることができる。必要に応じて、量
子化パラメータを柔軟に組み合わせてから需要に合わせて使用することができる。
ャートである。図2-2に示されるように、ニューラルネットワーク量子化方法のステッ
プS10は、以下を含む。
とによって、前記量子化すべき層における各種の量子化すべきデータに対応する量子化パ
ラメータを確定する。
対応する量子化パラメータは、保存されたプリセット値であってもよい。ニューラルネッ
トワークのために、量子化すべきデータと量子化パラメータとの対応関係を確立してもよ
く、この対応関係は、各量子化すべき層の各種の量子化すべきデータと量子化パラメータ
との対応関係を含み、かつ対応関係を各層において共用アクセスが可能なストレージスペ
ースに保存してもよい。ニューラルネットワークに複数の量子化すべきデータと量子化パ
ラメータとの対応関係を確立してもよく、各量子化すべき層はそのうちの一つの対応関係
にそれぞれ対応する。各層の対応関係を本層において単独で使用されるストレージスペー
スに保存してもよく、各層の対応関係を、各層において共用アクセス可能なストレージス
ペースに保存してもよい。
タと、それに対応する複数の量子化パラメータとの対応関係を含んでもよい。例えば、量
子化すべきデータと量子化パラメータの対応関係Aにおいて、量子化すべき層1のニュー
ロンと重みの二つの量子化すべきデータを含んでもよく、ニューロンは小数点位置1、ス
ケーリング係数1とオフセット1の三つの量子化パラメータに対応し、重みは、小数点位
置2とオフセット2の二つの量子化パラメータに対応する。本開示は、量子化すべきデー
タと量子化パラメータの対応関係の具体的なフォーマットを限定しない。
とによって、前記量子化すべき層における各種の量子化すべきデータに対応する量子化パ
ラメータを確定することができる。各量子化すべき層に対応する量子化パラメータを予め
設定し、対応関係によって記憶した後に、量子化すべき層が検索してから使用するために
提供する。本実施形態における量子化パラメータの取得方式は簡単で容易である。
ャートである。図2-3に示されるように、ニューラルネットワーク量子化方法のステッ
プS10は、以下を含む。
対応する量子化パラメータを算出する。
ット幅nと各量子化すべきデータによって各量子化すべきデータに対応する量子化パラメ
ータを算出することができる。量子化すべきデータ自体によって算出された量子化パラメ
ータは、量子化すべきデータ自体の特徴により符合する。
ータはニューロン、重み、オフセットのうちの少なくとも1つとするようにしてもよい。
トレーニングと微調整過程については、量子化すべきデータは勾配をさらに含んでもよい
。ニューラルネットワークの推理、トレーニングと微調整過程において、オンラインで取
得された各量子化すべきデータと、それに対応するデータビット幅に基づいて、各量子化
すべきデータに対応する量子化パラメータを計算する。
ータを算出することを含む。オンラインの量子化すべきデータに基づいて算出した量子化
パラメータは、ニューラルネットワーク量子化すべき層における各種の量子化すべきデー
タ自体の量子化需求により符合することができる。
ャートである。図2-4に示されるように、ニューラルネットワーク量子化方法のステッ
プS12は、以下を含む。
標データにおける絶対値の最大値と前記目標データに対応するデータビット幅に基づいて
、前記目標データの小数点位置を得ることを含み、前記目標データは任意種類の量子化す
べきデータである。
子化パラメータにオフセットが含まれていない場合、量子化パラメータは、小数点位置と
スケーリング係数のうちの少なくとも1つを含んでもよい。量子化パラメータにオフセッ
トが含まれていない場合、任意種類の量子化すべきデータを目標データとするようにして
もよい。目標データは、ニューロン、重み、オフセットと勾配のうちのいずれか1つであ
ってもよい。
て、最大値と最小値を確定し、最大値の絶対値と最小値の絶対値に基づいて目標データに
おける絶対値の最大値を得るようにしてもよい。目標データにおける各要素の絶対値を確
定し、各要素の絶対値に基づいて目標データにおける絶対値の最大値を得るようにしても
よい。
子化パラメータがオフセットを含まない場合の、量子化前後のデータ対応の概略図である
。図2-5に示すように、Z 1 は目標データにおける絶対値の最大値であり、目標データ
に対応するデータビット幅nは8であり、Aはデータビット幅nで目標データを量子化し
た後に表せる最大値であり、Aは2s(2n-1-1)であり、AにZ 1 が含まれ、且つ
Z1はA/2より大きくする必要があり、式(7)でそれについて制約するようにしても
よい:
2s(2n-1-1)>=Z1>2s-1(2n-1-1) 式(7)
位置を算出するようにしてもよい。例えば、以下の式(8)によって算出した量子化パラ
メータにオフセットが含まれていない場合に、目標データの小数点位置sを計算できる:
s=ceil(ln(Z1/(2n-1-1))) 式
(8)
り、sは小数点位置であり、nは目標データに対応するデータビット幅である。
データにおける絶対値の最大値と前記目標データに対応するデータビット幅に基づいて、
前記目標データの小数点位置を得る。目標データに基づいて、それに対応する小数点位置
が算出され、目標データ自体の特徴により符合し、目標データの量子化精度をより高くす
ることができる。
ャートである。図2-6に示されるように、ニューラルネットワーク量子化方法のステッ
プS12は、以下を含む。
タと前記目標データに対応するデータビット幅に基づいて、前記目標データの量子化後デ
ータの最大値を得て、前記目標データは任意種類の量子化すべきデータである。
データの最大値に基づいて、前記目標データのスケーリング係数を得る。
い。
スケーリング係数fを算出できる。
f=z1/A 式(9)
子化後のデータの最大値であり、式(10)によってAを計算してもよい:
A=(2^ceil(ln(Z1/(2n-1-1))))(2n-1-1) 式(10
)
タにおける絶対値の最大値と目標データに対応するデータビット幅によって、目標データ
に対応するスケーリング係数を算出できる。目標データに基づいて、それに対応するスケ
ーリング係数が算出され、目標データ自体の特徴により符合し、目標データの量子化精度
をより高くすることができる。
子化パラメータがオフセットを含む場合の、量子化前後のデータ対応の概略図である。図
2-7に示すように、A1とA2は、nで目標データを量子化した後に表せる最大値と最
小値であり、Zminは目標データにおけるすべての要素の最小値であり、Z max は目
標データにおけるすべての要素の最大値であり、Z2=(Z max ―Z min )/2の場
合、目標データをオフセットoで並行移動させた後に、量子化するようにしてもよい。
ャートである。図2-8に示されるように、ニューラルネットワーク量子化方法のステッ
プS12は、以下を含む。
データにおける最大値と前記目標データにおける最小値および前記目標データに対応する
データビット幅に基づいて、前記目標データの小数点位置を得ることを含み、前記目標デ
ータは、任意種類の量子化すべきデータである。
ラメータは、小数点位置とスケーリング係数のうちの少なくとも1つをさらに含んでもよ
い。図2-7に示すように、式(11)によって、量子化パラメータにオフセットが含ま
れる場合の目標データの小数点位置sを算出できる:
s=ceil(ln(Z2/(2n-1-1))) 式(
11)
するデータビット幅である。
ける最大値、最小値と目標データに対応するデータビット幅によって、目標データに対応
する小数点位置を算出できる。目標データに基づいて、それに対応する小数点位置が算出
され、目標データ自体の特徴により符合し、目標データの量子化精度をより高くすること
ができる。
ャートである。図2-9に示されるように、ニューラルネットワーク量子化方法のステッ
プS12は、以下を含む。
タと前記目標データに対応するデータビット幅に基づいて、前記目標データの量子化後デ
ータの最大値を得て、前記目標データは、任意種類の量子化すべきデータである。
値と前記目標データの量子化後データの最大値に基づいて、前記目標データのスケーリン
グ係数を得る。
ラメータは、小数点位置、スケーリング係数のうちの少なくとも1つをさらに含んでもよ
い。図2-7に示すように、式(12)によって、量子化パラメータにオフセットが含ま
れる場合の目標データのスケーリング係数fを算出できる。
f=z2/A 式(12)
ける最大値、最小値と目標データに対応するデータビット幅によって、目標データに対応
するスケーリング係数を算出できる。目標データに基づいて、それに対応するスケーリン
グ係数が算出され、目標データ自体の特徴により符合し、目標データの量子化精度をより
高くすることができる。
チャートである。図2-10に示されるように、ニューラルネットワーク量子化方法のス
テップS12は、以下を含む。
タのオフセットを得ることを含み、前記目標データは、任意種類の量子化すべきデータで
ある。
メータにオフセットが含まれる場合の目標データのオフセットoを算出できる:
o=(Z min +Z max )/2 式(13)
最大値、最小値と目標データに対応するデータビット幅に基づいて、目標データに対応す
るオフセットを算出できる。目標データに基づいて、それに対応するオフセットが算出さ
れ、目標データ自体の特徴により符合し、目標データの量子化精度をより高くすることが
できる。
チャートである。図2-11に示されるように、前記ニューラルネットワークの量子化方
法はさらに以下を含む。
、前記目標データの量子化誤差を確定し、前記目標データは、任意種類の量子化すべきデ
ータである。
ータの量子化誤差を確定することができる。設定された誤差計算方法、例えば標準偏差計
算方法、二乗平均2乗根誤差計算方法などの設定誤差計算方法を使用して、目標データの
量子化誤差を計算することができる。
た後に逆量子化データを得て、逆量子化データと目標データとの間の誤差に基づいて、目
標データの量子化誤差を得ることができる。
標データに対応する逆量子化データとの間の誤差diff bit を算出してもよい。
diffbit=ln(A*2-1*p/Σi|Fx|) 式(
21)
である。Aの値は量子化パラメータによって確定されることができ、量子化パラメータに
小数点位置sが含まれる場合、A=2s である。量子化パラメータに小数点位置sとスケ
ジューリング係数fが含まれる場合、A=2sxf。
るデータビット幅を調整して、前記目標データに対応する調整ビット幅を得る。
ために用いられてもよい。量子化誤差が誤差閾値より大きいか小さい場合、目標データに
対応するデータビット幅を調整して、目標データに対応する調整ビット幅を得ることがで
きる。データビット幅をより長いビット幅またはより短いビット幅に調整することで、量
子化の精度を向上させるか低減することができる。
値より大きい場合、量子化の精度が期待に応えられないことを意味し、データビット幅を
より長いビット幅に調整する必要がある。高い量子化精度によって、小さい誤差閾値を確
定することもでき、量子化誤差が誤差閾値よりも小さい場合、量子化精度が高いことを示
し、ニューラルネットワークの動作効率に影響を与える。データビット幅をより短いビッ
ト幅に適切に調整することができる。これによって、量子化精度を適切に低下させ、ニュ
ーラルネットワークの動作効率を向上させる。
を、量子化誤差と誤差閾値の差によって、可変調整ステップ長さに応じて調整できる。こ
の開示はこれを制限するものではない。
更新し、前記目標データおよび前記調整ビット幅によって計算して対応する調整量子化パ
ラメータが得られ、これによってニューラルネットワークは調整量子化パラメータによっ
て量子化される。
新することができる。例えば、更新前の目標データのデータビット幅が8ビットで、調整
ビット幅が12ビットである場合、更新後の目標データに対応するデータビット幅は12
ビットである。調整ビット幅と目標データによって目標データに対応する調整量子化パラ
メータを算出できる。目標データに対応する調整量子化パラメータによって目標データを
改めて量子化することができる。これによって、量子化精度がより高いかより低い量子化
データが得られ、量子化すべき層は、量子化精度と処理効率との間のバランスがとれる。
すべきデータには一定の相関関係があると見なすことができる。例えば、各層の量子化す
べきデータ間の平均値の差が設定された平均閾値よりも小さく、各層の量子化すべきデー
タの最大値の差も設定された差の閾値よりも小さい場合、量子化すべき層の後続の1つ以
上の層の量子化すべきデータを量子化するために、量子化すべきの層の調整量子化パラメ
ータを後続の1つ以上の層の調整量子化パラメータとして使用されてもよい。ニューラル
ネットワークのトレーニングおよび微調整過程では、量子化すべき層の現在反復で得られ
た調整量子化パラメータを使用して、後続の反復で量子化すべき層を量子化してもよい。
を使用する。
量子化すべき層でのみ調整量子化パラメータを使用して量子化すべきデータを再量子化し
、量子化すべき層の演算に再取得された量子化後のデータを使用することを含んでもよい
。また、量子化すべき層で、調整量子化パラメータを用いて量子化すべきデータを量子化
するかわりに、量子化すべき層の後続の1層または複数層で調整量子化パラメータを用い
て量子化すること、および/または後続の反復で量子化すべき層で調整量子化パラメータ
を使用して量子化することを含んでもよい。また、量子化すべき層で調整量子化パラメー
タを使用して、量子化を再実行することもでき、再取得された量子化データを、量子化す
べき層の演算に使用され、量子化すべき層の後続の1つまたは複数層で調整量子化パラメ
ータを使用して量子化すること、および/または、後続の反復で量子化すべき層で調整量
子化パラメータを使用して量子化することを含んでもよい。この開示はこれを制限するも
のではない。
ータの量子化誤差を確定し、目標データは、任意種類の量子化すべきデータである。前記
量子化誤差と誤差閾値に基づいて、目標データに対応するデータビット幅を調整して、前
記目標データに対応する調整ビット幅を得る。目標データに対応するデータビット幅を調
整ビット幅に更新し、目標データおよび調整ビット幅によって計算して対応する調整量子
化パラメータが得られ、これによってニューラルネットワークは調整量子化パラメータに
よって量子化される。目標データと量子化すべきデータの間の誤差によってデータビット
幅を調整し、調整後データビット幅に基づいて調整量子化パラメータを算出する。異なる
誤差閾値を設定することにより、異なる調整量子化パラメータを取得して、量子化精度の
向上や動作効率の向上などの、異なる量子化需要を実現できる。目標データおよび目標デ
ータの量子化データによって算出された調整量子化パラメータも、目標データ自体のデー
タ特性とより一致し、目標データ自体のニーズにより一致する量子化結果を達成し、量子
化精度と処理効率との間でよりよいバランスがとれる。
チャートである。図2-12に示されるように、ニューラルネットワーク量子化方法のス
テップS40は、以下を含む。
データに対応するデータビット幅を増加して、前記目標データに対応する調整ビット幅を
得る。
を第1誤差閾値と比較できる。量子化誤差が第1誤差閾値よりも大きい場合、量子化誤差
はすでに許容できないと見なすことができる。量子化精度を向上させるために、目標デー
タに対応するデータビット幅を増加することにより、目標データの量子化精度を向上させ
ることができる。
調整ビット幅を取得することができる。固定される調整ステップ長さサイズはNビットに
することができ、Nは正の整数である。データビット幅を調整するたびに、Nビットだけ
増加することができる。各増加後のデータビット幅=元のデータビット幅+Nビットであ
る。
ビット幅を得ることができる。例えば、量子化誤差と誤差閾値の差が第1閾値より大きい
場合、データビット幅は調整ステップ長さM1で調整でき、量子化誤差と誤差閾値の差が
第1閾値より小さい場合、調整ステップ長さM2でデータビット幅を調整でき、ここでは
、第1閾値は第2閾値よりも大きく、M1はM2よりも大きい。需要に応じて各可変調整
ステップ長さを確定できる。この開示は、データビット幅の調整ステップ長さ、および調
整ステップ長さが可変であるかどうかを制限しない。
調整された量子化パラメータを使用して目標データを再量子化することによって得られた
量子化データは、調整前に量子化パラメータを使用して得られた量子化データよりも高い
量子化精度を持っている。
チャートである。図2-13に示されるように、前記ニューラルネットワークの量子化方
法はさらに以下を含む。
調整後量子化誤差を計算する。
誤差が前記第1誤差閾値以下になるまで、前記調整後量子化誤差と第1誤差閾値によって
前記調整ビット幅を増加し続ける。
1回調整して調整ビット幅を取得し、調整ビット幅に応じて調整後の量子化パラメータを
算出し、調整後の量子化パラメータに応じて目標データを量子化して調整後の量子化デー
タを取得する。次に、調整後の量子化データと目標データによって、前記目標データの調
整後量子化誤差を計算する。調整後量子化誤差は、第1誤差閾値よりも大きい場合がある
。つまり、一回調整後のデータのビット幅によって調整の目的を満たさない場合がある。
調整後量子化誤差が依然として第1誤差閾値よりも大きい場合、調整後データビット幅を
調整し続けることができる。つまり、最終的に得られた調整ビット幅と目標データによっ
て得られた調整後量子化誤差が第1誤差閾値よりも小さくなるまで、目標データに対応す
るデータビット幅を複数回増加することができる。
テップ長さにすることができる。たとえば、最終データビット幅=元のデータビット幅+
A*Nビットである。ここで、Nは増加するごとの固定される調整ステップ長さであり、
Aはデータビット幅の増加回数である。最終データビット幅=元のデータビット幅+M1
+M2+...+Mmであり、ここでM1、M2...Mmは、増加するごとの可変調整
ステップ長さである。
るデータビット幅を大きくして、目標データに対応する調整ビット幅を得る。第1誤差閾
値を設定し、ステップ長さを調整することでデータビット幅を増加することで、調整後デ
ータビット幅は量子化需要を満たすことができる。1回の調整で調整需要を満たせない場
合は、データビット幅を複数回調整できる。第1誤差閾値と調整ステップ長さの設定によ
り、さまざまな量子化需要を満たすように、量子化需要に応じて量子化パラメータを柔軟
に調整でき、量子化精度を独自のデータ特性に応じて適応的に調整できる。
チャートである。図2-14に示されるように、ニューラルネットワーク量子化方法のス
テップS40は、以下を含む。
するデータビット幅を減少し、第2誤差閾値が第1誤差閾値よりも小さい。
差閾値を確定できる。量子化誤差は、第2誤差閾値と比較できる。量子化誤差が第2誤差
閾値よりも小さい場合、量子化誤差は予想を超えていると見なすことができるが、動作効
率が低すぎて許容できない。量子化精度を低下させてニューラルネットワークの動作効率
を向上させ、目標データに対応するデータビット幅を小さくすることで目標データの量子
化精度を低下させることができる。
ビット幅を得ることができる。固定される調整ステップ長さサイズはNビットにすること
ができ、Nは正の整数である。データビット幅を調整するたびに、Nビットを減少するこ
とができる。増加後のデータビット幅=元データビット幅-Nビットである。
ト幅を得ることができる。例えば、量子化誤差と誤差閾値の差が第1閾値より大きい場合
、調整ステップ長さM1でデータビット幅を調整でき、量子化誤差と誤差閾値の差が第1
閾値より小さい場合、調整ステップ長さM2でデータビット幅を調整でき、ここでは、第
1閾値は第2閾値よりも大きく、M1はM2よりも大きい。需要に応じて可変な調整ステ
ップ長さを確定できる。この開示は、データビット幅の調整ステップ長さ、および調整ス
テップ長さが可変であるかどうかを制限しない。
子化パラメータを使用して目標データを再量子化することによって得られた量子化データ
は、調整前の量子化パラメータを使用して得られた量子化データよりも量子化精度が低い
。
チャートである。図2-15に示されるように、前記ニューラルネットワークの量子化方
法はさらに以下を含む。
整後量子化誤差を計算する。
誤差が第2誤差閾値以上になるまで、前記調整後量子化誤差と前記第2誤差閾値によって
前記調整ビット幅を減少し続ける。
を1回調整して調整ビット幅を取得し、調整ビット幅に応じて調整後の量子化パラメータ
を算出し、調整後の量子化パラメータに応じて目標データを量子化して調整後の量子化デ
ータを取得する。次に、調整後の量子化データと目標データによって、前記目標データの
調整後量子化誤差を算出し、調整後量子化誤差は、依然として第2誤差閾値よりも小さい
ことがある。つまり、1回調整後のデータのビット幅によって調整の目的を満たさない場
合がある。調整後量子化誤差が依然として第2誤差閾値よりも小さい場合、調整後データ
ビット幅を調整し続けることができる。つまり、最終的に得られた調整ビット幅と目標デ
ータによって得られた調整後量子化誤差は、第2誤差閾値よりも大きくなるまで、目標デ
ータに対応するデータビット幅を複数回減少することができる。
テップ長さにすることができる。たとえば、最終データビット幅=元のデータビット幅-
A*Nビットである。ここで、Nは増加するごとの固定される調整ステップ長さであり、
Aはデータビット幅の増加回数である。最終データビット幅=元のデータビット幅-M1
-M2-...-Mmであり、ここでM1、M2...Mmは、減少するごとの可変調整
ステップ長さである。
るデータビット幅を小さくして、目標データに対応する調整ビット幅を得る。第2誤差閾
値を設定し、ステップ長さを調整することでデータビット幅を減少することで、調整後デ
ータビット幅は量子化需要を満たすことができる。1回の調整で調整需要を満たせない場
合は、データビット幅を複数回調整できる。第2誤差閾値と調整ステップ長さの設定によ
り、量子化需要に応じて量子化パラメータを柔軟で適応的に調整でき、異なる量子化需要
を満たし、量子化精度を調整可能にし、量子化精度とニューラルネットワークの動作効率
とのバランスがとれるようにする。
ト幅を増加し、前記量子化誤差が第2誤差閾値より小さい場合、前記目標データに対応す
るデータビット幅を減少して、前記目標データに対応する調整ビット幅を得る。
低すぎると示すために用いられ、データビット幅のビット数を増加することができ、第2
誤差閾値は、量子化の精度が高すぎると示すために用いられ、データビット幅のビット数
を減少することができる。第1誤差閾値が第2誤差閾値より大きいと、目標データの量子
化誤差を同時に二つの誤差閾値と比較することができ、量子化誤差が第1誤差閾値より大
きい場合、データビット幅のビット数を増加し、量子化誤差が第2誤差閾値より小さい場
合、データビット幅のビット数を減少する。量子化誤差が第1誤差閾値と第2誤差閾値の
間にある場合は、データビット幅を一定に保つことができる。
より、比較結果に応じてデータビット幅を増減することができ、第1誤差閾値と第2誤差
閾値とを利用してより柔軟にデータビット幅を調整することができる。データビット幅の
調整結果を、より量子化の需要に適合させるようにする。
チャートである。図2-16に示すように、前記ニューラルネットワーク演算の微調整段
階および/またはトレーニング段階において、前記方法はさらに以下を含む。
得し、前記履歴反復は、前記現在反復の前の反復である。
の反復を含む。ニューラルネットワーク中の各量子化すべき層は、一回の順演算と一回の
逆演算を行い、量子化すべき層の重みを更新した後、一回の反復を完了する。複数回の反
復において、量子化すべき層における目標データおよび/または目標データに対応する量
子化データのデータ変動幅は、異なる反復における目標データおよび/または量子化デー
タが同じ量子化パラメータを用いて量子化され得るかどうかを測定するために使用され得
る。現在反復および履歴反復における目標データのデータ変動幅が小さく、例えば設定さ
れた幅変動閾値より小さい場合、データ変動幅が小さい複数の反復において同じ量子化パ
ラメータを採用することができる。
パラメータを確定することができる。異なる反復において目標データを量子化する場合、
各反復において目標データに対応する量子化パラメータを抽出する必要がある。複数の反
復の目標データおよび/または目標データに対応する量子化データのデータ変動幅が小さ
い場合、データ変動幅が小さい複数の反復で採用された同じ量子化パラメータを一時記憶
することができ、各反復は量子化を行う際に一時記憶した量子化パラメータを利用して量
子化演算を行い、毎回の反復で量子化パラメータを抽出する必要がない。
なる反復において目標データを量子化する場合、量子化パラメータを各反復において別々
に計算する必要がある。複数の反復の目標データおよび/または目標データに対応する量
子化データのデータ変動幅が小さい場合、データ変動幅が小さい複数の反復に用いること
ができる量子化パラメータが同じであれば、各反復ごとに量子化パラメータを計算する代
わりに、そのうちの第1反復で計算された量子化パラメータを直接使用することができる
。
タ変動幅が小さい場合、または複数の反復の重みに対応する量子化データのデータ変動幅
が小さい場合、複数の反復において同じ量子化パラメータを用いて重みを量子化すること
ができることを理解されたい。
応する目標反復間隔を確定して、前記ニューラルネットワークが前記目標反復間隔に基づ
いて前記目標データの量子化パラメータを更新し、前記目標反復間隔は少なくとも1回の
反復を含み、前記目標データは任意種類の量子化すべきデータである。
くとも1つの反復が含まれ、目標反復間隔内の各反復において同じ量子化パラメータを使
用してもよく、即ち、目標反復間隔内の各反復は目標データの量子化パラメータを更新し
ない。ニューラルネットワークは、目標反復間隔に基づいて目標データの量子化パラメー
タを更新する。目標反復間隔内の反復は、予め設定された量子化パラメータを取得しない
か、または量子化パラメータを計算しない。すなわち目標反復間隔内の反復は、量子化パ
ラメータを更新しない。目標反復間隔外の反復は、予め設定された量子化パラメータを取
得するか、または量子化パラメータを計算する。すなわち目標反復間隔外の反復は量子化
パラメータを更新する。
ど、確定された目標反復間隔に含まれる反復回数が多くなることが理解されるであろう。
計算されたデータ変動幅に基づいて、予め設定されたデータ変動幅と反復間隔との対応関
係を検索し、計算されたデータ変動幅に対応する目標反復間隔を確定することができる。
必要に応じて、データ変動幅と反復間隔との対応関係を予め設定することができる。計算
されたデータ変動幅に基づいて、設定された計算方法を用いて目標反復間隔を計算しても
よい。本開示は、データ変動幅の計算方法および目標反復間隔の取得方法を限定しない。
グ段階において、現在反復および履歴反復における目標データのデータ変動幅を取得し、
前記目標データのデータ変動幅に基づいて目標データに対応する目標反復間隔を確定し、
これにより、前記ニューラルネットワークは前記目標反復間隔に基づいて前記目標データ
の量子化パラメータを更新する。複数の反復における目標データまたは目標データに対応
する量子化データのデータ変動幅に基づいて目標反復間隔を確定することができる。ニュ
ーラルネットワークは、目標反復間隔に基づいて量子化パラメータを更新するかどうかを
確定することができる。目標反復間隔に含まれる複数の反復のデータ変動幅が小さいため
、目標反復間隔内の反復は量子化パラメータを更新しなくても量子化精度を保証すること
ができる。目標反復間隔内の複数の反復は量子化パラメータを更新せず、量子化パラメー
タの抽出回数または計算回数を減少することができ、それによってニューラルネットワー
クの演算効率を向上させる。
チャートである。図2-17に示されるように、前記ニューラルネットワークの量子化方
法はさらに以下を含む。
て、前記目標データの前記目標反復間隔内の反復に対応するデータビット幅を確定して、
前記ニューラルネットワークが前記目標データの前記目標反復間隔内の反復に対応するデ
ータビット幅に基づいて、量子化パラメータを確定することを含む。
ていてもよいし、目標データに対応するデータビット幅に基づいて算出されてもよい。異
なる量子化すべき層における目標データに対応するデータビット幅、または同じ量子化す
べき層における目標データの異なる反復における対応するデータビット幅は、本開示の上
記実施形態における方法に従って適応的に調整することができる。
ある場合、目標データの現在反復における予め設定されたデータビット幅に基づいて、目
標反復間隔内の目標データの反復に対応するデータビット幅を確定することができる。目
標反復間隔内の各反復は、自身の事前設定値を使用しなくてもよい。
対応するデータビット幅に基づいて目標データの目標反復間隔内の反復に対応するデータ
ビット幅を確定することができる。データビット幅が適応的に調整可能である場合、デー
タビット幅は一回の調整または複数回の調整を行うことができる。目標データを現在反復
で適応的に調整した後のデータビット幅を、目標反復間隔内の各反復に対応するデータビ
ット幅とすることができる。目標反復間隔内の各反復は、もはやデータビット幅を適応的
に調整(更新)しない。目標データは、現在反復において、適応的に調整されたデータビ
ット幅を使用することができ、適応的に調整される前のデータビット幅を使用することが
でき、本開示はこれに限定されない。
ないため、本開示の前記方法に基づいてデータビット幅を適応的に調整することができ、
現在反復にさらに適合する目標データのデータビット幅を得ることができ、本開示の目標
反復間隔の計算方法を使用して、新たな目標反復間隔を計算して、使用することもできる
。したがって、目標反復間隔以外の反復の量子化精度を保証すると同時に、ニューラルネ
ットワークの実行効率を向上させる。
幅のそれぞれから対応する量子化パラメータを計算することができる。量子化パラメータ
は、小数点位置、スケーリング係数、およびオフセットのうちの少なくとも1つを含むこ
とができる。量子化パラメータは、目標反復間隔内の各反復において、同じデータビット
幅から別々に計算することができる。量子化パラメータが小数点位置、スケーリング係数
およびオフセットを含む場合、目標反復間隔内の各反復において、同じデータビット幅を
用いて、それぞれ対応する小数点位置、スケーリング係数、およびオフセットを計算する
ことができる。
定すると同時に、現在反復の量子化パラメータに基づいて、目標反復間隔内の各反復の対
応する量子化パラメータを確定することができる。目標反復間隔内の各反復の量子化パラ
メータは、再び同じデータビット幅から計算することなくも、ニューラルネットワークの
演算効率を向上させることができる。現在反復の全部の量子化パラメータまたは一部の量
子化パラメータに基づいて目標反復間隔内の各反復の対応する量子化パラメータを確定す
ることができる。現在反復の一部の量子化パラメータに基づいて、目標反復間隔内の各反
復の対応する量子化パラメータが確定されると、残りの部分の量子化パラメータは、目標
反復間隔内の各反復について計算される必要がある。
む。現在反復のデータビット幅と小数点位置に基づいて、目標反復間隔内の各反復のデー
タビット幅と小数点位置を確定することができる。目標反復間隔内の各反復のスケーリン
グ係数およびオフセットは、同じデータビット幅から計算される必要がある。また、現在
反復のデータビット幅、小数点位置、スケーリング係数およびオフセットに基づいて、目
標反復間隔内の各反復のデータビット幅、小数点位置、スケーリング係数およびオフセッ
トを確定することができ、すると、目標反復間隔内の各反復の各量子化パラメータを計算
する必要がない。
ータの目標反復間隔内における反復に対応するデータビット幅を確定し、それにより、ニ
ューラルネットワークは、目標データの目標反復間隔内における反復に対応し、データビ
ット幅に基づいて量子化パラメータを確定する。目標反復間隔内の各反復のデータビット
幅は、現在反復のデータビット幅に基づいて確定され、目標反復間隔内の各反復の目標デ
ータのデータ変化幅は設定の条件を満たすため、同じデータビット幅を利用して計算した
量子化パラメータは、目標反復間隔内の各反復の量子化精度を保証することができる。目
標反復間隔内の各反復は同じデータビット幅を使用し、ニューラルネットワークの演算効
率を向上させることもできる。ニューラルネットワークを量子化した後の演算結果の正確
率とニューラルネットワークの演算効率との間でバランスがとれる。
チャートである。図2-18に示されるように、前記ニューラルネットワークの量子化方
法はさらに以下を含む。
て、前記目標データの前記目標反復間隔内における反復に対応する小数点位置を確定する
。
同じ目標データの量子化結果に与える影響が大きい。目標データの現在反復に対応する小
数点位置に基づいて、目標反復間隔内の反復に対応する小数点位置を確定することができ
る。データビット幅が適応的に調整不可である場合、目標データの現在反復における予め
設定された小数点位置を、目標データの目標反復間隔内における各反復に対応する小数点
位置としてもよく、目標データの現在反復において予め設定されたデータビット幅から計
算された小数点位置を、目標データの目標反復間隔内における各反復に対応する小数点位
置としてもよい。データビット幅が適応的に調整可能である場合、目標データの現在反復
調整後の小数点位置を、目標データの目標反復間隔内の各反復に対応する小数点位置とし
てもよい。
記目標反復間隔内の反復に対応する小数点位置を確定すると同時に、目標データの現在反
復に対応するスケーリング係数に基づいて、前記目標データの前記目標反復間隔内の反復
に対応するスケーリング係数を確定すること、および/または目標データの現在反復に対
応するオフセットに基づいて、前記目標データの前記目標反復間隔内の反復に対応するオ
フセットを確定することができる。
記目標反復間隔内の反復に対応する小数点位置を確定すると同時に、目標データの現在反
復に対応するデータビット幅に基づいて、前記目標データの前記目標反復間隔内の反復に
対応するデータビット幅を確定することもでき、ここでは、目標データの現在反復に対応
するデータビット幅は、現在反復のプリセットのデータビット幅または適応的調整後デー
タビット幅であってもよい。
ータの目標反復間隔内の反復に対応する小数点位置を確定する。目標反復間隔内の各反復
の小数点位置は、現在反復の小数点位置に基づいて確定され、目標反復間隔内の各反復の
目標データのデータ変化幅は設定の条件を満たすため、同じ小数点位置を利用して、目標
反復間隔内の各反復の量子化精度を保証することができる。目標反復間隔内の各反復は同
じ小数点位置を使用し、ニューラルネットワークの演算効率を向上させることもできる。
ニューラルネットワークを量子化した後の演算結果の正確率とニューラルネットワークの
演算効率との間でバランスがとれる。
チャートである。図2-19に示されるように、ニューラルネットワーク量子化方法のス
テップS60は、以下を含む。
って確定される、前記現在反復に対応する履歴反復の小数点位置とに基づいて、目標デー
タに対応する各反復間隔の小数点位置のスライディング平均値を計算する。
ング平均値と、前の反復間隔に対応する反復の小数点位置の第2スライディング平均値に
基づいて、第1データ変動幅を得る。
に対応する目標反復間隔を確定して、前記ニューラルネットワークが前記目標反復間隔に
基づいて前記目標データの量子化パラメータを更新するようにする。
る履歴反復は、目標反復間隔を計算する履歴反復であってもよい。現在反復と対応する目
標反復間隔との対応関係は以下を含むことができる。
後の次の反復から改めて目標反復間隔を計算し始めるようにしてもよい。例えば、現在反
復は第100反復であり、目標反復間隔は3であり、目標反復間隔内の反復は、第100
反復、第101反復と第102反復を含み、第103反復において第103反復に対応す
る目標反復間隔を計算し、103反復を、新たに算出された目標反復間隔内の第1反復と
するようにしてもよい。この場合、現在反復が103反復の場合、履歴反復間隔に基づい
て確定される、前記現在反復に対応する履歴反復は100反復である。
から改めて目標反復間隔を計算し始めるようにしてもよい。例えば、現在反復は第100
反復であり、目標反復間隔は3であり、目標反復間隔内の反復は、第101反復、第10
2反復と第103反復を含み、第103反復において第103反復に対応する目標反復間
隔を計算し、104反復を、新たに算出された目標反復間隔内の第1反復とするようにし
てもよい。この場合、現在反復が103反復の場合、履歴反復間隔に基づいて確定される
、前記現在反復に対応する履歴反復は100反復である。
から改めて目標反復間隔を計算し始めるようにしてもよい。例えば、現在反復は第100
反復であり、目標反復間隔は3であり、目標反復間隔内の反復は、第101反復、第10
2反復と第103反復を含み、第104反復において第104反復に対応する目標反復間
隔を計算し、105反復を、新たに算出された目標反復間隔内の第1反復とするようにし
てもよい。この場合、現在反復が104反復の場合、履歴反復間隔に基づいて確定される
、前記現在反復に対応する履歴反復は100反復である。
、例えば、現在反復の後の第N反復から目標反復間隔をカウントし始めてもよく、Nは1
より大きく、本開示はこれに限定されない。
平均値は、目標データの現在反復における小数点位置の第1スライディング平均値と、目
標データの前の反復間隔に対応する反復における小数点位置の第2スライディング平均値
とを含む。式(24)によって、現在反復に対応する小数点位置の第1スライディング平
均値m(t)を計算できる。
m(t)←αxs(t)+(1-α)m(t-1)
式(24)
あり、m(t-1)は前の反復間隔によって確定される履歴反復の第2スライディング平
均値であり、s(t)は現在反復の小数点位置であり、αは第1パラメータである。第1
パラメータはハイパーパラメータであってもよい。
って確定される、前記現在反復に対応する履歴反復の小数点位置とに基づいて、目標デー
タに対応する各反復間隔の小数点位置のスライディング平均値を計算する。目標データの
現在反復における小数点位置の第1スライディング平均値と、前の反復間隔に対応する反
復の小数点位置の第2スライディング平均値に基づいて、第1データ変動幅を得る。第1
目標データのデータ変動幅に基づいて、前記目標データに対応する目標反復間隔を確定し
て、前記ニューラルネットワークが前記目標反復間隔に基づいて前記目標データの量子化
パラメータを更新するようにする。第1データ変動幅は小数点位置の変化傾向を測ること
ができるため、目標反復間隔は目標データの小数点位置の変化傾向とともに変化でき、算
出された各目標反復間隔の大きさは、目標データ小数点位置の変化によって変化できる。
量子化パラメータは目標反復間隔に応じて確定されるので、量子化パラメータに基づいて
量子化して得られた量子化データは、目標データの小数点位置の変動傾向にさらに適合す
ることができ、量子化の精度を保証するとともに、ニューラルネットワークの動作効率を
向上させる。
チャートである。図2-20に示されるように、ニューラルネットワーク量子化方法のス
テップS62は、以下を含む。
値の差を計算する。
diffupdate1=|m(t)-m(t-1)|=α|s(t)-m(t-1)
式(25)|
確定して、前記ニューラルネットワークが前記目標反復間隔に基づいて前記目標データの
量子化パラメータを更新するようにしてもよい。下式(26)で目標反復間隔を算出する
ことができる。
I=β/diffupdate1-γ 式(26)
第3パラメータはハイパーパラメータであってもよい。
データ変動幅が大きければ大きいほど、量子化データの数値範囲変化がひどく、量子化パ
ラメータを更新するとき、より短い目標反復間隔Iをあける必要がある。
の差を計算する。差の絶対値を第1データ変動幅と確定する。スライディング平均値の差
から、正確な第1データ変動幅が得られる。
チャートである。図2-21に示されるように、前記ニューラルネットワークの量子化方
法はさらに以下を含む。
子化データに基づいて、第2データ変動幅を得る。
づいて、前記目標データに対応する目標反復間隔を確定して、前記ニューラルネットワー
クが前記目標反復間隔に基づいて前記目標データの量子化パラメータを更新するようにす
る。
、第2データ変動幅を得るようにしてもよい。ステップS63では、現在反復における前
記目標データと前記目標データに対応する量子化データに基づいて、第2データ変動幅を
得るようにしてもよい。
対応する逆量子化データとの第2データ変動幅diffbit を算出するようにしてもよ
い。他の誤差の計算方法によって、目標データと逆量子化データとの第2データ変動幅d
iffbitを算出するようにしてもよい。この開示はこれを制限するものではない。
)式(23)
タである。なお、第2データ変動幅は量目標データに対応するデータビット幅の変化傾向
を測るために利用でき、第2データ変動幅が大きければ大きいほど、目標データは対応す
るデータビット幅を更新する必要がある可能性が高く、より短い反復をあけて更新する必
要があり、第2データ変動幅が大きければ大きいほど、必要な目標反復間隔が小さい。
子化データに基づいて、第2データ変動幅を得るようにしてもよい。前記目標データの第
1データ変動幅と前記第2データ変動幅に基づいて、前記目標データに対応する目標反復
間隔を確定して、前記ニューラルネットワークが前記目標反復間隔に基づいて前記目標デ
ータの量子化パラメータを更新するようにする。第2データ変動幅は、データビット幅の
変動需要を測るために利用でき、すると、第1データ変動幅と第2データ変動幅によって
算出された目標反復間隔は、小数点位置とデータビット幅の変動を同時に追跡することが
でき、目標反復間隔は目標データ自身のデータ量子化需要により符合することもできる。
チャートである。図2-22に示されるように、ニューラルネットワーク量子化方法のス
テップS63は、以下を含む。
子化データとの誤差を計算する。
diffupdate2=δ*diff2 bit
式(27)
もよい。
に異なる量子化データを得て、異なる第2データ変動幅を生じることができる。第2デー
タ変動幅は、データビット幅の変化傾向を測るために利用でき、第2データ変動幅が大き
ければ大きいほど、より短い目標反復間隔を必要としてより頻繁にデータビット幅を更新
し、即ちより小さい目標反復間隔が必要である。
チャートである。図2-23に示すように、前記ステップS72は以下を含む。
づいて、前記目標データに対応する目標反復間隔を確定する。
I=β/max(diffupdate1,diffupdate2)-γ
式(28)
第3パラメータはハイパーパラメータであってもよい。
ビット幅と小数点位置の変化傾向を同時に測ることができ、両者のうちの一つの変化傾向
が大きい場合、目標反復間隔に対応する変化を発生させることができる。目標反復間隔は
、データビット幅と小数点位置の変化を同時に追跡して対応する調整を行うことができる
。これにより、目標反復間隔によって更新される量子化パラメータは、目標データの変動
傾向により符合し、最終的に、量子化パラメータによって得られた量子化データは、量子
化需要により符合できる。
チャートである。図2-24に示されるように、ニューラルネットワーク量子化方法のス
テップS60は、以下を含む。
ける目標データのデータ変動幅を取得し、前記更新周期は少なくとも1つの反復を含む。
トレーニング開始または微調整開始の複数の反復において、目標データの変化幅は大きい
。トレーニング開始または微調整開始の複数の反復において目標反復間隔を計算すると、
算出された目標反復間隔はその使用上の意味を失う可能性がある。予め設定された更新周
期によって、更新周期以内の各反復において、目標反復間隔を計算せず、目標反復間隔に
よって複数の反復が同じデータビット幅または小数点位置を使用しないようにしてもよい
。
復および履歴反復における目標データのデータ変動幅を取得し、前記目標データのデータ
変動幅に基づいて目標データに対応する目標反復間隔を確定し、これにより、前記ニュー
ラルネットワークは前記目標反復間隔に基づいて前記目標データの量子化パラメータを更
新する。例えば、プリセット更新周期は100反復であると、第1反復から第100反復
までの反復において、目標反復間隔を計算しない。反復が101反復に進み、即ち現在反
復は101反復である場合、現在反復は更新周期以外にあり、このとき、第101反復お
よび第1反復から第100反復の反復における目標データのデータ変動幅によって、第1
01反復の目標データに対応する目標反復間隔を確定し、第101反復、または第101
間隔のプリセット反復数の反復において、算出された目標反復間隔を使用する。
期における複数の反復をカウントし始めてもよく、第N代から更新周期における複数の反
復をカウントし始めてもよく、本開示はこれに限定されない。
る。ニューラルネットワーク演算のトレーニング過程や微調整過程の初期に、目標データ
の変動幅が大きくなることによって、目標反復間隔の使用意義が少ない問題を回避するこ
とができ、目標反復間隔を使用する状況で、ニューラルネットワークの運行効率を向上さ
せることができる。
チャートである。図2-25に示されるように、前記ニューラルネットワークの量子化方
法はさらに以下を含む。
予め設定された周期の次の周期における前記現在反復に対応する反復、および現在反復に
対応する反復間隔に基づいて、周期間隔を確定する。
て、前記周期間隔内の反復における前記目標データのデータビット幅を確定する。または
前記目標データの現在反復における対応する小数点位置に基づいて、前記周期間隔内の反
復における前記目標データの小数点位置を確定する。
含んでもよい。各周期は、複数の反復を含むことができる。ニューラルネットワーク演算
のためのデータが一回完全に演算されることを1周期とする。トレーニング過程において
、反復の進行に伴い、ニューラルネットワークの重みの変化は安定になり、トレーニング
が安定した後、ニューロン、重み、オフセットおよび勾配などの量子化すべきデータはい
ずれも安定になる。目標データが安定化した後に、目標データのデータビット幅と量子化
パラメータも安定化する。同様に、微調整過程において、微調整が安定した後、目標デー
タのデータビット幅と量子化パラメータも安定する。
定化した周期に基づいて確定することができる。トレーニングが安定しているか、または
安定している周期の後の周期を微調整して、予め設定された周期として確定することがで
きる。例えばトレーニングが安定している周期がM番目の周期であれば、M番目の周期以
降の周期を予め設定された周期とすることができる。予め設定された周期内で、間隔ごと
に1つの目標反復間隔を計算することができる。計算された目標反復間隔に基づいてデー
タビット幅または量子化パラメータを一回調整して、データビット幅または量子化パラメ
ータの更新回数を減少させ、ニューラルネットワークの運行効率を向上させる。
、M番目の周期におけるP番目の反復から計算された目標反復間隔は、M+1番目の周期
におけるQ番目の反復までである。第M+1周期における第Q m+1 反復に基づいてそれ
に対応する目標反復間隔I m+1 を得る。第M+2周期において、第M+1周期における
第Q m+1 反復に対応する反復は、第Q m+2 反復である。第M+1周期における第Q m
+1 反復から、第M+2周期における第Q m+2 +I m+1 反復までは、周期間隔である
。周期間隔内の各反復において、第M+1周期における第Q m+1 反復によって確定され
るデータビット幅または小数点位置等の量子化パラメータを用いる。
調整が安定した後に、周期間隔に応じて、周期毎にデータビット幅やドット位置などの量
子化パラメータを更新する。周期間隔は、トレーニング安定または微調整安定後、データ
ビット幅または小数点位置の更新回数を減少することができ、量子化精度を保証すると同
時に、ニューラルネットワークの運行効率を向上させる。
合わせとして記載しているが、当業者であれば周知するように、本開示は、本開示にした
がって一部のステップが他の順で用いられたり、または同時に実施されたりすることがで
きるから、以上に記載の動作の順で制限されるものではない。次に、当業者であれば分か
るように、本明細書に記載された実施形態は全てオプション実施形態に該当し、係る動作
およびモジュールは必ずしも本開示に必須ではない。
各ステップは、矢印の指示に従って順次表示されているが、これらのステップは必ずしも
矢印の順に逐次実行されるわけではない。ここで明示的に指定されている場合を除き、こ
れらのステップの実行には厳密な順序制限はなく、これらのステップは別の順序で実行し
てもよい。また、図2-1から図2-6における少なくとも一部のステップは、複数のサ
ブステップまたは複数の段階を含むことができ、これらのサブステップまたは段階は、必
ずしも同じ時点で実行されるわけではなく、異なる時点で実行されてもよく、これらのサ
ブステップまたは段階の実行順序は、必ずしも順次実行されるわけではなく、代わりに、
他のステップまたは他のステップのサブステップまたは段階の少なくとも一部と順番に、
または交互に実行することができる。
である。図2-26に示すように、本開示は、ニューラルネットワーク量子化装置を提供
し、前記装置は前記ニューラルネットワークにおける任意層の量子化すべき層を量子化す
るために用いられ、前記装置は、
するために用いられ、前記量子化すべきデータはニューロン、重み、オフセット、および
勾配のうち少なくとも1つを含む量子化パラメータ確定モジュール10と、
得ることで、前記ニューラルネットワークは前記量子化データに基づいて演算を実行する
ための量子化モジュールと20を含む。
とオフセットのうちの少なくとも1つを含み、ここでは、
大値との比であり、
である。図2-27に示すように、前記量子化パラメータ確定モジュール10は、
化すべき層における各種の量子化すべきデータに対応する量子化パラメータを確定するよ
うに構成される第1量子化パラメータ確定サブモジュール11を含む。
ータを算出するように構成される第2量子化パラメータ確定サブモジュール12を含む。
の最大値と前記目標データに対応するデータビット幅に基づいて、前記目標データの小数
点位置を得て、前記目標データは任意種類の量子化すべきデータであるように構成される
第1小数点位置計算ユニット121を含む。
応するデータビット幅に基づいて、前記目標データの量子化後データの最大値を得て、前
記目標データは任意種類の量子化すべきデータであり、目標データにおける絶対値の最大
値と前記目標データ量子化後データの最大値に基づいて、前記目標データのスケーリング
係数を得るように構成される第1スケーリング係数計算ユニット122を含む。
前記目標データにおける最小値および前記目標データに対応するデータビット幅に基づい
て、前記目標データの小数点位置を得ることを含み、前記目標データは任意種類の量子化
すべきデータであるように構成される第2小数点位置計算ユニット123を含む。
応するデータビット幅に基づいて、前記目標データの量子化後データの最大値を得て、前
記目標データは任意種類の量子化すべきデータであり、前記目標データにおける最大値、
前記目標データにおける最小値と前記目標データの量子化後データの最大値に基づいて、
前記目標データのスケーリング係数を得る第2スケーリング係数計算ユニット124を含
む。
とを含み、前記目標データは任意種類の量子化すべきデータであるように構成されるオフ
セット計算ユニット125を含む。
である。図2-28に示すように、一つの可能な実施形態では、前記装置は、
子化誤差を確定し、前記目標データは任意種類の量子化すべきデータであるように量子化
誤差確定モジュール30と、
整して、前記目標データに対応する調整ビット幅を得るように構成される調整ビット幅確
定モジュール40と、
タおよび前記調整ビット幅によって計算して対応する調整量子化パラメータが得られ、こ
れによってニューラルネットワークは調整量子化パラメータによって量子化されるように
構成される調整量子化パラメータ確定モジュール50とをさらに含む。
ット幅を増加して、前記目標データに対応する調整ビット幅を得るように構成される第1
調整ビット幅確定サブモジュール41を含む。
算するように構成される第1調整量子化誤差確定サブモジュール42と、
値以下になるまで、前記調整後量子化誤差と第1誤差閾値によって前記調整ビット幅を増
加し続けるように構成される第1調整ビット幅サイクル確定サブモジュール43とを含む
。
ット幅を減少することを含み、前記第2誤差閾値が前記第1誤差閾値よりも小さいように
構成される第2調整ビット幅確定サブモジュール44を含む。
算するように構成される第2調整量子化誤差確定サブモジュール45と、
上になるまで、前記調整後量子化誤差と前記第2誤差閾値によって前記調整ビット幅を減
少し続けるように構成される第2調整ビット幅サイクル確定サブモジュール46とを含む
。
である。図2-29に示すように、一つの可能な実施形態では、前記ニューラルネットワ
ーク演算の微調整段階および/またはトレーニング段階において、前記装置は、
前記現在反復の前の反復であるように構成されるデータ変動幅確定モジュール60と、
確定して、前記ニューラルネットワークが前記目標反復間隔に基づいて前記目標データの
量子化パラメータを更新し、前記目標反復間隔は少なくとも1回の反復を含み、前記目標
データは任意種類の量子化すべきデータであるように構成される目標反復間隔確定モジュ
ール70とをさらに含む。
前記目標反復間隔内の反復に対応するデータビット幅を確定して、前記ニューラルネット
ワークが前記目標データの前記目標反復間隔内の反復に対応するデータビット幅に基づい
て、量子化パラメータを確定するように構成される第1目標反復間隔応用モジュール80
をさらに含む。
前記目標反復間隔内における反復に対応する小数点位置を確定するように構成される第2
目標反復間隔応用モジュール90をさらに含む。
現在反復に対応する履歴反復の小数点位置とに基づいて、目標データに対応する各反復間
隔の小数点位置のスライディング平均値を計算するように構成されるスライディング平均
値計算サブモジュール61と、
隔に対応する反復の小数点位置の第2スライディング平均値に基づいて、第1データ変動
幅を得るように構成される第1データ変動幅確定サブモジュール62とをさらに含む。
確定して、前記ニューラルネットワークが前記目標反復間隔に基づいて前記目標データの
量子化パラメータを更新するように構成される第1目標反復間隔確定サブモジュール71
を含む。
値の絶対値を第1データ変動幅と確定するように構成される第1データ変動幅確定ユニッ
ト621を含む。
、第2データ変動幅を得るように構成される第2データ変動幅確定サブモジュール63を
さらに含む。
タに対応する目標反復間隔を確定して、前記ニューラルネットワークが前記目標反復間隔
に基づいて前記目標データの量子化パラメータを更新するように構成される第2目標反復
間隔確定サブモジュール72を含む。
算し、前記誤差の2乗を前記第2データ変動幅と確定するように構成される第2データ変
動幅確定ユニット631を含む。
データ変動幅と前記第2データ変動幅中の最大値に基づいて、前記目標データに対応する
目標反復間隔を確定するように構成される。
タ変動幅を取得し、前記更新周期は少なくとも1つの反復を含むように構成される第3デ
ータ変動幅確定サブモジュール64を含む。
である。図2-30に示すように、一つの可能な実施形態では、前記装置は、
の周期における前記現在反復に対応する反復および現在反復に対応する反復間隔に基づい
て、周期間隔を確定するように構成される周期間隔確定モジュール100と、
内の反復における前記目標データのデータビット幅を確定するように構成される第1周期
間隔応用モジュール110と、または、
反復における前記目標データの小数点位置を確定するように構成される第2周期間隔応用
モジュール120とをさらに含む。
を使用するように構成される量子化パラメータ流用モジュール130をさらに含む。
施することもできることを理解されたい。例えば、上述した実施形態に記載のユニット/
モジュールの分割は、単に論理的機能分割に過ぎず、実際に実現される場合には別の分割
方式が可能である。例えば、複数のユニット、モジュール、またはコンポーネントが組み
合わされてもよく、または別のシステムに統合されてもよく、またはいくつかの特徴が無
視されてもよく、または実行されなくてもよい。
よいし、物理的に分離されていなくてもよい。ユニットまたはモジュールとして示される
構成要素は、物理的ユニットであってもよく、物理的ユニットでなくてもよく、すなわち
、1つの装置内に配置されてもよく、または複数の装置に分散されてもよい。本開示の実
施形態の態様は、実際の必要性に応じて、その中のユニットの一部または全部を選択して
実施することができる。
は、1つのユニット/モジュールに一体化されていてもよいし、各ユニット/モジュール
が個別に物理的に存在していてもよく、2つ以上のユニット/モジュールが一体化されて
いてもよい。上記一体化されたユニット/モジュールは、ハードウェアの形態で実現する
ことができ、ソフトウェアプログラムモジュールの形態で実現することもできる。
ハードウェアはデジタル回路、アナログ回路などであってもよい。ハードウェア構造の物
理的実装は、トランジスタ、メモリスタなどを含むが、これらに限定されない。特に明記
しない限り、前記人工知能プロセッサは、任意の適切なハードウェアプロセッサであって
もよい。例えば、CPU、GPU、FPGA、DSPとASIC等である。特に明記しな
い限り、前記記憶ユニットは、任意の適切な磁気記憶媒体または磁気光学記憶媒体であっ
てもよい。例えば、抵抗可変メモリRRAM(Resistive Random Ac
cess Memory)、ダイナミックランダムアクセスメモリDRAM(Dynam
ic Random Access Memory)、スタティックランダムアクセスメ
モリSRAM(Static Random-Access Memory)、増強動的
ランダムアクセスメモリEDRAM(Enhanced Dynamic Random
Access Memory)、高帯域メモリHBM(High-Bandwidth
Memory)、ハイビッドメモリキューブHMC(Hybrid Memory C
ube)などである。
態で実装され、別個の製品として販売または使用される場合、1つのコンピュータ可読メ
モリに記憶されてもよい。このような理解に基づいて、本開示の技術の解決手段は、本質
的に、または従来技術に寄与する部分、または該技術の解決手段の全てまたは一部は、ソ
フトウェア製品の形態で具現化されてよく、該コンピュータソフトウェア製品はメモリに
記憶されており、コンピュータ装置(パーソナルコンピュータ、サーバ、またはネットワ
ーク装置等であってよい)に、本開示の各実施形態に記載の方法の全部または一部のステ
ップを実行させるためのいくつかのコマンドを含む。上記のメモリは、Uディスク、読み
取り専用メモリ(ROM、Read-Only Memory)、ランダムアクセスメモ
リ(RAM、Random Access Memory)、リムーバブルハードディス
ク、磁気ディスク、または光ディスクなどの、プログラムコードを記憶可能な様々な媒体
を含む。
ータ同期装置を含む。
ス、インターフェースデバイス、制御デバイス、および以上に記載の人工知能チップを含
む。ここでは、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および前
記インターフェイスデバイスにそれぞれ接続され、前記記憶デバイスはデータを記憶する
ためのものであり、前記インターフェイスデバイスは、前記人工知能チップと外部装置と
の間のデータ伝送を実現するためのものであり、前記制御デバイスは前記人工知能チップ
の状態を監視するためのものである。
図2-31を参照すると、前記PCBボードは、前記チップ389に加えて他の構成部品
を含んでもよいが、この構成部品は、記憶デバイス390、インターフェースデバイス3
91と制御デバイス392を含むが、これらに限定されない。
憶に利用される。前記記憶デバイスは、複数組の記憶ユニット393を含んでもよい。各
組の前記記憶ユニットは、前記人工知能チップとバスによって接続される。なお、各組の
前記メモリユニットは、DDR SDRAM(英語:Double Data Rate
SDRAM、ダブルレート同期ダイナミックランダムアクセスメモリ)であってもよい
ことが理解されるであろう。
きる。DDRは、クロックパルスの立ち上がりエッジおよび立ち下がりエッジでデータを
読み出すことを可能にする。DDRのスピードは標準SDRAMの2倍である。一実施形
態では、前記記憶装置は、4組の前記記憶ユニットを含むことができる。前記メモリユニ
ットの各組は複数のDDR4粒子(チップ)を含むことができる。一実施形態では、前記
人工知能チップは、内部に4つの72ビットDDR4コントローラを含むことができ、前
記72ビットDDR4コントローラのうち64bitはデータを伝送するために用いられ
、8bitはECCチェックに用いられる。前記メモリユニットにDDR4-3200粒
子が使用される場合、データ伝送の理論帯域幅は25600MB/sに達することが理解
されるであろう。
同期ダイナミックランダムアクセスメモリを含む。DDRは、1クロックサイクル内で2
回データを送信することができる。前記チップにはDDRを制御するコントローラが設け
られ、前記メモリユニット毎のデータ伝送とデータ記憶の制御に用いられる。
ンターフェースデバイスは、前記人工知能チップと外部装置(例えば、サーバまたはコン
ピュータ)との間のデータ伝送を可能にするために使用される。例えば、一実施形態では
、前記インターフェースデバイスは、標準PCIEインターフェースであってもよい。例
えば、処理すべきデータは、標準PCIEインターフェースを介してサーバによってチッ
プに伝送され、データ転送を可能にする。好ましくは、理論帯域幅は、PCIE 3.0
X16インターフェース伝送を使用する場合、16000MB/sに達することができる
。別の実施形態では、前記インターフェースデバイスは、他のインターフェースであって
もよく、本開示は、上記の他のインターフェースの具体的な表現形態を限定するものでは
なく、前記インターフェースユニットは、中継機能を実現することができる。さらに、前
記人工知能チップの計算結果は、以前として前記インターフェースデバイスによって外部
装置(例えば、サーバ)に伝送される。
前記人工知能チップの状態を監視するためのものである。具体的には、前記人工知能チッ
プおよび前記制御デバイスは、SPIインターフェースを介して電気的に接続することが
できる。前記制御デバイスは、マイクロコントローラ(Micro Controlle
r Unit)を含むことができる。例えば、前記人工知能チップは、複数の処理チップ
、複数の処理コア、または複数の処理回路を含むことができ、複数の負荷を駆動すること
ができる。したがって、前記人工知能チップは、多負荷および軽負荷などの異なる動作状
態にあってもよい。前記制御装置によって前記人工知能チップにおける複数の処理チップ
、複数の処理コアまたは複数の処理回路の動作状態の調節を実現することができる。
機器は、データ処理装置、ロボット、コンピュータ、プリンタ、スキャナ、タブレットコ
ンピュータ、スマート端末、携帯電話、ドライブレコーダ、ナビゲータ、センサ、カメラ
ランズ、サーバ、クラウドサーバ、カメラ、ビデオカメラ、プロジェクタ、腕時計、ヘッ
ドホン、モバイル記憶装置、ウェアラブルデバイス、乗り物、家電製品、および/または
医療デバイスを含む。
、電子レンジ、冷蔵庫、炊飯器、加湿器、洗濯機、電灯、ガスレンジ、レンジフードを含
む。前記医療装置は、核磁気共鳴装置、Bモード超音波機器および/または心電計を含む
。
おける任意の量子化すべき層に対して、前記方法は、
し、前記量子化すべきデータは。ニューロン、重み、オフセット、および勾配のうちの少
なくとも1つを含むことと、
得ることで、前記ニューラルネットワークは前記量子化データに基づいて演算を実行する
こととを含むことを特徴とするニューラルネットワークの量子化方法。
なくとも1つを含み、
大値との比であり、
ータを確定することは、
化すべき層における各種の量子化すべきデータに対応する量子化パラメータを確定するこ
とを含む項目B1またはB2に記載の方法。
を確定することは、
ータを算出することを含む項目B1またはB2に記載の方法。
る量子化パラメータを算出することは、
の最大値と前記目標データに対応するデータビット幅に基づいて、前記目標データの小数
点位置を得ることを含み、前記目標データは任意種類の量子化すべきデータである項目B
4に記載の方法。
る量子化パラメータを算出することは、
タに対応するデータビット幅に基づいて、前記目標データの量子化後データの最大値を得
て、前記目標データは任意種類の量子化すべきデータであることと、
て、前記目標データのスケーリング係数を得ることとを含む項目B4に記載の方法。
量子化パラメータを算出することは、
前記目標データにおける最小値および前記目標データに対応するデータビット幅に基づい
て、前記目標データの小数点位置を得ることを含み、前記目標データは任意種類の量子化
すべきデータである項目B4に記載の方法。
量子化パラメータを算出することは、
対応するデータビット幅に基づいて、前記目標データの量子化後データの最大値を得て、
前記目標データは、任意種類の量子化すべきデータであることと、
子化後データの最大値に基づいて、前記目標データのスケーリング係数を得ることとを含
む項目B4に記載の方法。
量子化パラメータを算出することは、
とを含み、前記目標データは任意種類の量子化すべきデータである項目B4に記載の方法
。
、前記目標データの量子化誤差を確定し、前記目標データは任意種類の量子化すべきデー
タであることと、
整して、前記目標データに対応する調整ビット幅を得ることと、
タおよび前記調整ビット幅によって計算して対応する調整量子化パラメータが得られ、こ
れによってニューラルネットワークは調整量子化パラメータによって量子化されることと
をさらに含む項目B1~B9のいずれか一項に記載の方法。
ータビット幅を調整して、前記目標データに対応する調整ビット幅を得ることは、
ット幅を増加して、前記目標データに対応する調整ビット幅を得ることを含む項目B10
に記載の方法。
算することと、
値以下になるまで、前記調整後量子化誤差と第1誤差閾値によって前記調整ビット幅を増
加し続けることとをさらに含むことを特徴とする項目B11に記載の方法。
ト幅を調整することは、
減少することを含み、前記第2誤差閾値が前記第1誤差閾値よりも小さい項目B10また
はB11に記載の方法。
算することと、
上になるまで、前記調整後量子化誤差と前記第2誤差閾値によって前記調整ビット幅を減
少し続けることとをさらに含む項目B13前記の方法。
階において、前記方法は、
前記現在反復の前の反復であることと、
確定して、前記ニューラルネットワークが前記目標反復間隔に基づいて前記目標データの
量子化パラメータを更新し、前記目標反復間隔は少なくとも1回の反復を含み、前記目標
データは任意種類の量子化すべきデータであることとをさらに含む項目B1~B14のい
ずれか一項に記載の方法。
前記目標反復間隔内の反復に対応するデータビット幅を確定して、前記ニューラルネット
ワークが前記目標データの前記目標反復間隔内の反復に対応するデータビット幅に基づい
て、量子化パラメータを確定することをさらに含む項目B15に記載の方法。
前記目標反復間隔内における反復に対応する小数点位置を確定することをさらに含む項目
B15に記載の方法。
ることは、
現在反復に対応する履歴反復の小数点位置とに基づいて、目標データに対応する各反復間
隔の小数点位置のスライディング平均値を計算することと、
隔に対応する反復の小数点位置の第2スライディング平均値に基づいて、第1データ変動
幅を得ることとを含み、
タに対応する目標反復間隔を確定して、前記ニューラルネットワークが前記目標反復間隔
に基づいて前記目標データの量子化パラメータを更新することは、
確定して、前記ニューラルネットワークが前記目標反復間隔に基づいて前記目標データの
量子化パラメータを更新することを含む項目B15に記載の方法。
および一つ前の反復間隔における対応する反復の小数点位置の第2スライディング平均値
に基づいて第1データ変動幅を得ることは、
、
。
、第2データ変動幅を得ることをさらに含み、
タに対応する目標反復間隔を確定して、前記ニューラルネットワークが前記目標反復間隔
に基づいて前記目標データの量子化パラメータを更新することは、
タに対応する目標反復間隔を確定して、前記ニューラルネットワークが前記目標反復間隔
に基づいて前記目標データの量子化パラメータを更新することを含む項目B18に記載の
方法。
データに基づいて第2データ変動幅を得ることは、
算することと、
法。
て、前記目標データに対応する目標反復間隔を確定することは、
に対応する目標反復間隔を確定することを含む項目B20に記載の方法。
ることは、
タ変動幅を取得することを含み、前記更新周期は少なくとも1つの反復を含む項目B15
~B23のいずれか一項に記載の方法。
の周期における前記現在反復に対応する反復、および現在反復に対応する反復間隔に基づ
いて、周期間隔を確定することと、
復における前記目標データのデータビット幅を確定することと、または、
前記目標データの現在反復における対応する小数点位置に基づいて、前記周期間隔内の
反復における前記目標データの小数点位置を確定することとをさらに含む項目B15~B
23のいずれか一項に記載の方法。
を使用することをさらに含む項目B1~B24のいずれか一項に記載の方法。
トワークにおける任意層の量子化すべき層を量子化するために用いられ、前記装置は、
するために用いられ、前記量子化すべきデータは、ニューロン、重み、オフセット、およ
び勾配のうちの少なくとも1つを含む量子化パラメータ確定モジュールと、
得ることで、前記ニューラルネットワークは前記量子化データに基づいて演算を実行する
ための量子化モジュールとを含むニューラルネットワーク量子化装置。
少なくとも1つを含み、ここでは、
大値との比であり、
化すべき層における各種の量子化すべきデータに対応する量子化パラメータを確定するよ
うに構成される第1量子化パラメータ確定サブモジュールを含む項目B25またはB27
に記載の装置。
ータを算出するように構成される第2量子化パラメータ確定サブモジュールを含む項目B
26またはB27に記載の装置。
の最大値と前記目標データに対応するデータビット幅に基づいて、前記目標データの小数
点位置を得て、前記目標データは任意種類の量子化すべきデータであるように構成される
第1小数点位置計算ユニットを含む項目B29に記載の装置。
応するデータビット幅に基づいて、前記目標データの量子化後データの最大値を得て、前
記目標データは任意種類の量子化すべきデータであり、目標データにおける絶対値の最大
値と前記目標データ量子化後データの最大値に基づいて、前記目標データのスケーリング
係数を得るように構成される第1スケーリング係数計算ユニットを含む項目B29に記載
の装置。
前記目標データにおける最小値および前記目標データに対応するデータビット幅に基づい
て、前記目標データの小数点位置を得ることを含み、前記目標データは任意種類の量子化
すべきデータであるように構成される第2小数点位置計算ユニットを含む項目B29に記
載の装置。
応するデータビット幅に基づいて、前記目標データの量子化後データの最大値を得て、前
記目標データは任意種類の量子化すべきデータであり、前記目標データにおける最大値、
前記目標データにおける最小値と前記目標データの量子化後データの最大値に基づいて、
前記目標データのスケーリング係数を得るように構成される第2スケーリング係数計算ユ
ニットを含む項目B29に記載の装置。
とを含み、前記目標データは任意種類の量子化すべきデータであるように構成されるオフ
セット計算ユニットを含む項目B29に記載の装置。
子化誤差を確定し、前記目標データは任意種類の量子化すべきデータであるように量子化
誤差確定モジュールと、
整して、前記目標データに対応する調整ビット幅を得るように構成される調整ビット幅確
定モジュールと、
タおよび前記調整ビット幅によって計算して対応する調整量子化パラメータが得られ、こ
れによってニューラルネットワークは調整量子化パラメータによって量子化されるように
構成される調整量子化パラメータ確定モジュールとをさらに含む項目B26~B34のい
ずれか一項に記載の装置。
ット幅を増加して、前記目標データに対応する調整ビット幅を得るように構成される第1
調整ビット幅確定サブモジュールを含む項目B35に記載の装置。
算するように構成される第1調整量子化誤差確定サブモジュールと、
値以下になるまで、前記調整後量子化誤差と第1誤差閾値によって前記調整ビット幅を増
加し続けるように構成される第1調整ビット幅サイクル確定サブモジュールとをさらに含
む項目B36に記載の装置。
ット幅を減少することを含み、前記第2誤差閾値が前記第1誤差閾値よりも小さいように
構成される第2調整ビット幅確定サブモジュールを含む項目B35またはB36に記載の
装置。
算するように構成される第2調整量子化誤差確定サブモジュールと、
上になるまで、前記調整後量子化誤差と前記第2誤差閾値によって前記調整ビット幅を減
少し続けるように構成される第2調整ビット幅サイクル確定サブモジュールとをさらに含
む項目B38に記載の装置。
階において、前記装置は、
前記現在反復の前の反復であるように構成されるデータ変動幅確定モジュールと、
確定して、前記ニューラルネットワークが前記目標反復間隔に基づいて前記目標データの
量子化パラメータを更新し、前記目標反復間隔は少なくとも1回の反復を含み、前記目標
データは任意種類の量子化すべきデータであるように構成される目標反復間隔確定モジュ
ールとをさらに含む項目B26~B39のいずれか一項に記載の装置。
前記目標反復間隔内の反復に対応するデータビット幅を確定して、前記ニューラルネット
ワークが前記目標データの前記目標反復間隔内の反復に対応するデータビット幅に基づい
て、量子化パラメータを確定するように構成される第1目標反復間隔応用モジュールをさ
らに含む項目B40に記載の装置。
前記目標反復間隔内における反復に対応する小数点位置を確定するように構成される第2
目標反復間隔応用モジュールをさらに含む項目B40に記載の装置。
現在反復に対応する履歴反復の小数点位置とに基づいて、目標データに対応する各反復間
隔の小数点位置のスライディング平均値を計算するように構成されるスライディング平均
値計算サブモジュールと、
隔に対応する反復の小数点位置の第2スライディング平均値に基づいて、第1データ変動
幅を得るように構成される第1データ変動幅確定サブモジュールとをさらに含み、
確定して、前記ニューラルネットワークが前記目標反復間隔に基づいて前記目標データの
量子化パラメータを更新するように構成される第1目標反復間隔確定サブモジュールを含
む項目B40に記載の装置。
値の絶対値を第1データ変動幅と確定するように構成される第1データ変動幅確定ユニッ
トを含む項目B43に記載の装置。
、第2データ変動幅を得るように構成される第2データ変動幅確定サブモジュールを含み
、
タに対応する目標反復間隔を確定して、前記ニューラルネットワークが前記目標反復間隔
に基づいて前記目標データの量子化パラメータを更新するように構成される第2目標反復
間隔確定サブモジュールを含む項目B43に記載の装置。
算し、前記誤差の2乗を前記第2データ変動幅と確定するように構成される第2データ変
動幅確定ユニットを含む項目B45に記載の装置。
2データ変動幅中の最大値に基づいて、前記目標データに対応する目標反復間隔を確定す
るように構成される項目B45に記載の装置。
タ変動幅を取得し、前記更新周期は少なくとも1つの反復を含むように構成される第3デ
ータ変動幅確定サブモジュールを含む項目B40~B47のいずれか一項に記載の装置。
の周期における前記現在反復に対応する反復および現在反復に対応する反復間隔に基づい
て、周期間隔を確定するように構成される周期間隔確定モジュールと、
内の反復における前記目標データのデータビット幅を確定するように構成される第1周期
間隔応用モジュールと、または、
反復における前記目標データの小数点位置を確定するように構成される第2周期間隔応用
モジュールとをさらに含む項目B40~B48のいずれか一項に記載の装置。
を使用するように構成される量子化パラメータ流用モジュールをさらに含む項目B26~
B49のいずれか一項に記載の装置。
ラルネットワーク量子化装置を含む人工知能チップ。
イス、および項目B51に記載の人工知能チップを含み、
インターフェイスデバイスにそれぞれ接続され、
を実現するためのものであり、
ード。
は、バスを介して前記人工知能チップに接続され、前記記憶ユニットは、DDR SDR
AMであり、
のDDRコントローラを含み、
に記載のPCBボード。
なく、開示された実施形態に限定されるものではない。明された実施形態の範囲および精
神から逸脱することなく、多くの修正および変更が説当業者にとっては明らかであろう。
本明細書で使用される用語の選択は、様々な実施形態の原理、実際の応用、または市場に
おける技術の改良を最もよく説明すること、または本明細書で開示される様々な実施形態
を当業者が理解することができるようにすることを目的とする。
案(201910505239.7)を説明した。
8)を提供した。具体的には、量子化パラメータの調整方法および装置ならびに関連製品
を提供する。
よび装置ならびに関連製品に関する。
自然言語処理などの分野においてよく応用されている。しかし、人工知能アルゴリズムの
複雑性が高まるにつれ、処理すべきデータのデータ量やデータ次元が増大し、増大しつつ
あるデータ量などが演算装置のデータ処理効率、記憶装置のメモリ容量やアクセス効率な
どに大きな課題となっている。
ルネットワークの演算データを量子化し、すなわち、浮動小数点型の演算データを固定小
数点型の演算データに変換し、ニューラルネットワークの演算データの圧縮を実現する。
しかし、ニューラルネットワークの異なる演算データの間に大きな差異が存在する可能性
があり、従来の量子化方法は、ニューラルネットワーク全体に対して同じ量子化パラメー
タ(例えば小数点位置)を用いて量子化を行い、精度が低く、データ演算結果に影響を与
えることが多い。
置および関連製品を提供し、ニューラルネットワークの量子化精度を向上させ、演算結果
の正確性と信頼性を保証する。
、
この目標反復間隔に基づいて、ニューラルネットワーク演算における量子化パラメータを
調整することとを含み、ここでは、前記目標反復間隔は、少なくとも1回の反復を含み、
前記ニューラルネットワークの量子化パラメータは、前記ニューラルネットワークの演算
における量子化すべきデータに対する量子化動作を実現するためのものである。
装置はメモリおよびプロセッサを含み、前記メモリにコンピュータプログラムが記憶され
、前記プロセッサは前記コンピュータプログラムを実行すると、以上に記載のいずれか一
項の方法のステップが実施される。具体的に、プロセッサは上記計算机程序を実行すると
き、以下の操作が実現される。すなわち、
この目標反復間隔に基づいて、ニューラルネットワーク演算における量子化パラメータを
調整することとを含み、ここでは、前記目標反復間隔は、少なくとも1回の反復を含み、
前記ニューラルネットワークの量子化パラメータは、前記ニューラルネットワークの演算
における量子化すべきデータに対する量子化動作を実現するためのものである。
にコンピュータプログラムが記憶され、前記コンピュータプログラムが実行されると、以
上に記載のいずれか一項に記載の方法のステップが実現される。具体的に、上記計算机程
序が実行されると、以下の操作が実現される。すなわち、
この目標反復間隔に基づいて、ニューラルネットワーク演算における量子化パラメータを
調整することとを含み、ここでは、前記目標反復間隔は、少なくとも1回の反復を含み、
前記ニューラルネットワークの量子化パラメータは、前記ニューラルネットワークの演算
における量子化すべきデータに対する量子化動作を実現するためのものである。
、
この目標反復間隔に基づいて、ニューラルネットワーク演算における量子化パラメータを
調整し、ここでは、前記目標反復間隔は、少なくとも1回の反復を含み、前記ニューラル
ネットワークの量子化パラメータは、前記ニューラルネットワークの演算における量子化
すべきデータに対する量子化動作を実現するためのものであるように構成される反復間隔
確定モジュールとを含む。
、量子化すべきデータのデータ変動幅を取得し、かつこの量子化すべきデータのデータ変
動幅に基づいて目標反復間隔を確定することによって、この目標反復間隔に基づいてニュ
ーラルネットワークの量子化パラメータを調整することができ、このように量子化すべき
データのデータ分布特性に基づいて、異なる演算段階におけるニューラルネットワークの
量子化パラメータを確定することができる。従来技術と比較して、同じニューラルネット
ワークの各種の演算データに対して同じ量子化パラメータを採用し、本開示の方法および
装置は、ニューラルネットワークの量子化過程における精度を向上させることができ、さ
らに演算結果の正確性と信頼性を保証する。更に、目標反復間隔を確定することによって
も量子化効率を向上させることができる。
共に、本開示の例示的な実施形態、特徴、および態様を示し、本開示の原理を説明するた
めに使用される。
略図である。
間の対応関係の概略図である。
トである。
である。
のフローチャートである。
ートである。
る。
である。
ャートである。
ーチャートである。
ローチャートである。
トである。
チャートである。
化パラメータの調整のフローチャートである。
間隔の確定方法のフローチャートである。
反復間隔の確定方法のフローチャートである。
ローチャートである。
フローチャートである。
図を示す。
図である。
図である。
図である。
図である。
37.8)を提供した。以下、本開示の実施形態における技術案は、本開示の実施形態に
おける図面を参照して明確かつ完全に説明される。明らかに、記載された実施形態は、本
開示の実施形態の一部であるが、すべての実施形態ではない。本開示の実施形態に基づい
て、創造的な作業なしに当業者によって得られる他のすべての実施形態は、本開示の保護
範囲に含まれる。
特定の順序を説明するのではなく、異なる対象を区別するためのものであることを理解さ
れたい。本開示の明細書および特許請求の範囲で使用される「含む」および「含む」とい
う用語は、記載された特徴、全体、ステップ、操作、要素および/またはコンポーネント
の存在を示すが、1つまたは複数の他の特徴、全体、ステップ、操作、要素、コンポーネ
ント、および/またはそれらのコンビネーションの存在または追加を除外しない。
おり、本開示を限定することを意図するものではないことも理解されたい。本願の明細書
および特許請求の範囲に使用されるように、文脈で明白に他の意味が示されない限り、単
数形の「一」、「1つ」および「該」は、複数形を含むことを意味する。本開示の明細書
および特許請求の範囲で使用される「および/または」という用語は、関連してリストさ
れた1つまたは複数の項目の任意の組み合わせおよびすべての可能な組み合わせを指し、
これらの組み合わせを含むことをさらに理解されたい。
タ次元も絶えず増大しているが、従来のニューラルネットワークアルゴリズムは通常、浮
動小数点データフォーマットを採用してニューラルネットワーク演算を実行し、これは増
大しつつあるデータ量などが演算装置のデータ処理効率、記憶装置のメモリ容量やアクセ
ス効率などに大きな課題となっている。上記問題を解決するために、ニューラルネットワ
ーク演算過程に係る演算データを量子化することができ、すなわち、浮動小数点で表され
る演算データを固定小数点で表される演算データに変換し、それによって記憶装置の記憶
容量とアクセス効率を低下させ、かつ演算装置の演算効率を向上させる。しかし、従来の
量子化方法はニューラルネットワークの全トレーニング過程において同じデータビット幅
と量子化パラメータ(例えば小数点の位置)を採用して、ニューラルネットワークの異な
る演算データを量子化し、異なる演算データの間に差異があるため、または、トレーニン
グ過程の異なる段階の演算データに差異があるため、前記量子化方法を採用して量子化す
る時、精度が不足し、演算結果に影響を与えることが多い。
ータ調整装置に応用することができるニューラルネットワークの量子化パラメータ調整方
法を提供する。図3-1は、この量子化パラメータ調整装置100の構成ブロック図であ
り、ここで、この量子化パラメータ調整装置100のプロセッサ120は、汎用プロセッ
サであってもよく、この量子化パラメータ調整装置100のプロセッサ120は、人工知
能プロセッサであってもよく、この量子化パラメータ調整装置100のプロセッサは、汎
用プロセッサと人工知能プロセッサとを含んでもよく、ここでは特に限定されない。この
メモリ110は、ニューラルネットワークの演算過程における演算データを記憶するため
に使用されてもよい。この演算データは、ニューロンデータ、重みデータ、または勾配デ
ータのうちの1つ以上であってもよい。このメモリ110はまた、コンピュータプログラ
ムを記憶するために使用されてもよい。このコンピュータプログラムは上記プロセッサ1
20により実行されると、本開示の実施形態における量子化パラメータの調整方法を実現
することができる。この方法はニューラルネットワークのトレーニングまたは微調整過程
に応用することができ、且つニューラルネットワークのトレーニングまたは微調整過程の
異なる段階の演算データの分布特性に応じて、演算データの量子化パラメータを動的に調
整することによって、ニューラルネットワークの量子化過程の精度を向上させ、さらに演
算結果の正確性と信頼性を保証する。
サであってもよい。例えば、CPU、GPU、FPGA、DSPとASIC等である。特
に明記しない限り、前記メモリは、任意の適切な磁気記憶媒体または磁気光学記憶媒体で
あってもよい。例えば、抵抗可変メモリRRAM(Resistive Random
Access Memory)、ダイナミックランダムアクセスメモリDRAM(Dyn
amic Random Access Memory)、スタティックランダムアクセ
スメモリSRAM(Static Random-Access Memory)、増強
動的ランダムアクセスメモリEDRAM(Enhanced Dynamic Rand
om Access Memory)、高帯域メモリHBM(High-Bandwid
th Memory)、ハイビッドメモリキューブHMC(Hybrid Memory
Cube)などである。
子化過程および量子化過程に係る量子化パラメータについて説明する。
データフォーマットの演算データに変換することを意味する。ここで、この第1データフ
ォーマットの演算データは、浮動小数点表現の演算データであってもよく、この第2デー
タフォーマットの演算データは、固定小数点表現の演算データであってもよい。浮動小数
点表現の演算データは通常大きなメモリスペースを占有するため、浮動小数点表現の演算
データを固定小数点表現の演算データに変換することによって、メモリスペースを節約し
、演算データのアクセス効率および演算効率などを向上させることができる。
スケーリング係数を含むことができ、ここで、小数点位置とは、量子化された演算データ
における小数点の位置を指す。スケーリング係数とは、量子化データの最大値と量子化す
べきデータの絶対値の最大値との比であり、更に、量子化パラメータは、オフセットを含
んでいてもよい。オフセットは、非対称の量子化すべきデータにとっては、量子化すべき
データ内の複数の要素の中間値を指し、具体的には、オフセットは、量子化すべきデータ
内の複数の要素の中間点値とすることができる。量子化すべきデータが対称的な量子化す
べきデータである場合、量子化パラメータはオフセットを含まなくてもよい。このとき、
量子化すべきデータから固定小数点位置および/またはスケーリング係数などの量子化パ
ラメータを確定することができる。
づいて、小数点位置sを計算することができる。例えば、量子化すべきデータに対応する
小数点位置sは、以下の式(2)を用いて計算することができる。
s=ceil(ln(Z1/(2n-1-1))) 式(
2)
大値であり、sは小数点位置であり、nはデータビット幅である。
現の量子化すべきデータFx はFx≒Ix×2s と表すことができ、ここでは、Ix とは
、量子化後のnビットバイナリ表現値であり、sは小数点位置を表す。ここでは、この量
子化すべきデータに対応する量子化データは以下のとおりである。
Ix=round(Fx/2s) 式(3
)
ータであり、roundは四捨五入の丸め演算である。なお、他の丸め演算方法を用いて
もよく、例えば切り上げ、切り捨て、ゼロへの丸め等の丸め演算を用いて、式(3)中の
四捨五入の丸め演算を代替することができる。なお、データビット幅が一定の場合、小数
点位置の量子化で得られた量子化データにおいて、小数点後のビットが多いほど、量子化
データの量子化精度が大きい。
ってもよい。
Fx1=round(Fx/2s)x2s 式(4
)
ータであり、roundは四捨五入の丸め演算である。Fx1は、上記の量子化データI
xを逆量子化して得られたデータであり得る。この中間表現データFx1のデータ表現フ
ォーマットは上記の量子化すべきデータFxのデータ表現フォーマットと一致し、この中
間表現データFx1は、量子化誤差の計算に利用でき、詳細は以下のとおりである。ここ
で、逆量子化とは、量子化の逆過程をいう。
あるいは、スケーリング係数は、第1スケーリング係数を含むことができ、第1スケー
リング係数は、以下のように計算されることができる。
f1=Z1/A=Z1/2s(2n-1-1) 式(5)
ト幅nで量子化すべきデータを量子化した後のデータの量子化データが表現可能な最大値
であり、Aは2 s (2 n-1 -1)である。
子化すべきデータFxを量子化して、量子化データを得ることができる:
Ix=round(Fx/(2sxf1)) 式(6)
グ係数であり、Ixは量子化データであり、Fxは量子化すべきデータであり、roun
dは四捨五入の丸め演算である。なお、他の丸め演算方法を用いてもよく、例えば切り上
げ、切り捨て、ゼロへの丸め等の丸め演算を用いて、式(6)中の四捨五入の丸め演算を
代替することができる。
ってもよい。
Fx1=round(Fx/(2sxf1))x2sxf1 式(7
)
数であり、Fxは量子化すべきデータであり、roundは四捨五入の丸め演算である。
Fx1は、上記の量子化データIxを逆量子化して得られたデータであり得る。この中間
表現データFx1のデータ表現フォーマットは、上記の量子化すべきデータFxのデータ
表現フォーマットと一致し、この中間表現データFx1は、量子化誤差の計算に利用でき
、詳細は以下のとおりである。ここで、逆量子化とは、量子化の逆過程をいう。
第2スケーリング係数は下式で計算することができる:
f2=Z1/(2n-1-1) 式(8)
化し、量子化データを得ることができる。
Ix=round(Fx/f2) 式(9)
子化すべきデータであり、roundは四捨五入の丸め演算である。なお、他の丸め演算
方法を用いてもよく、例えば切り上げ、切り捨て、ゼロへの丸め等の丸め演算を用いて、
式(9)中の四捨五入の丸め演算を代替することができる。なお、データビット幅が一定
の場合、異なるスケーリング係数を用いて、量子化後データの数値範囲を調整することが
できる。
ってもよい。
Fx1=round(Fx/f2)xf2 式(1
0)
oundは四捨五入の丸め演算である。Fx1は、上記の量子化データIxを逆量子化し
て得られたデータであり得る。この中間表現データFx1のデータ表現フォーマットは、
上記の量子化すべきデータFxのデータ表現フォーマットと一致し、この中間表現データ
Fx1は、量子化誤差の計算に利用でき、詳細は以下のとおりである。ここで、逆量子化
とは、量子化の逆過程をいう。
確定されてもよい。即ち、第2スケーリング係数は下式で計算できる:
f2=2sf1 式(11
)
で算出された第1スケーリング係数である。
データの量子化を実現することもできる。この場合、プロセッサは非対称データを対称デ
ータに変換して、データの「オーバーフロー」を回避することができる。具体的には、量
子化パラメータはオフセットを含んでいてもよい。このオフセットは、量子化すべきデー
タの中点値であってもよく、原点に対する量子化すべきデータの中点値のオフセットを表
すために使用されてもよい。図3-3に示すように、プロセッサは、量子化すべきデータ
のデータ分布を統計して、量子化すべきデータにおけるすべての要素中の最小値Zmin
、量子化すべきデータにおける全ての要素中の最大値Z max を得てから、プロセッサは
この最小値Z min と最大値Z max によって上記オフセットを算出するようにしてもよ
い。具体的なオフセットの計算方式は以下のとおりである:
o=(Z max +Z min )/2 式(12)
最小値を表し、Z max は量子化すべきデータのすべての要素中の最大値を表す。
と最大値Z max によって量子化すべきデータにおける絶対値の最大値Z2を確定するよ
うにしてもよい。
Z2=(Z max -Z min )/2 式(13)
て、非対称量子化すべきデータを対称の量子化すべきデータに変換することができ、図3
-3に示す。プロセッサはさらに、この量子化すべきデータ中の絶対値の最大値Z2によ
って小数点位置sを確定することができ、ここでは、小数点位置は以下の式で計算できる
:
s=ceil(ln(Z2/(2n-1-1))) 式(14)
するデータビット幅である。
すべきデータを量子化して、量子化データを得ることができる:
Ix=round((Fx-o)/2s) 式(15)
、Fxは量子化すべきデータであり、roundは四捨五入の丸め演算である。なお、他
の丸め演算方法を用いてもよく、例えば切り上げ、切り捨て、ゼロへの丸め等の丸め演算
を用いて、式(15)中の四捨五入の丸め演算を代替することができる。
ってもよい。
Fx1=round((Fx-o)/2s)x2s+o 式(16)
り、Fxは量子化すべきデータであり、roundは四捨五入の丸め演算である。Fx1
は、上記の量子化データIxを逆量子化して得られたデータであり得る。この中間表現デ
ータFx1のデータ表現フォーマットは、上記の量子化すべきデータFxのデータ表現フ
ォーマットと一致し、この中間表現データFx1は、量子化誤差の計算に利用でき、詳細
は以下のとおりである。ここで、逆量子化とは、量子化の逆過程をいう。
2によって小数点位置sと第1スケーリング係数f1を確定することができ、ここでは、
小数点位置sの具体的な計算方式は上記の式(14)を参照できる。即ち、第1スケーリ
ング係数f1は、下式で計算できる:
f1=Z2/A=Z2/(2s(2n-1-1)) 式(17)
置sに基づいて、量子化すべきデータを量子化して、量子化データを得るようにしてもよ
い:
Ix=round((Fx-o)/(2sxf1)) 式(18)
数点位置であり、oはオフセットであり、Ixは量子化データであり、Fxは量子化すべ
きデータであり、roundは四捨五入の丸め演算である。なお、他の丸め演算方法を用
いてもよく、例えば切り上げ、切り捨て、ゼロへの丸め等の丸め演算を用いて、式(18
)中の四捨五入の丸め演算を代替することができる。
ってもよい。
Fx1=round((Fx-o)/(2sxf1))x2sxf1+o
式(19)
数点位置であり、oはオフセットであり、Fxは量子化すべきデータであり、round
は四捨五入の丸め演算である。Fx1は、上記の量子化データIxを逆量子化して得られ
たデータであり得る。この中間表現データFx1のデータ表現フォーマットは、上記の量
子化すべきデータFxのデータ表現フォーマットと一致し、この中間表現データFx1は
、量子化誤差の計算に利用でき、詳細は以下のとおりである。ここで、逆量子化とは、量
子化の逆過程をいう。
第2スケーリング係数は下式で計算することができる:
f2=Z2/(2n-1-1) 式(20)
化し、量子化データを得ることができる。
Ix=round(Fx/f2) 式(2
1)
子化すべきデータであり、roundは四捨五入の丸め演算である。なお、他の丸め演算
方法を用いてもよく、例えば切り上げ、切り捨て、ゼロへの丸め等の丸め演算を用いて、
式(21)中の四捨五入の丸め演算を代替することができる。なお、データビット幅が一
定の場合、異なるスケーリング係数を用いて、量子化後データの数値範囲を調整すること
ができる。
ってもよい。
Fx1=round(Fx/f2)xf2 式(22
)
oundは四捨五入の丸め演算である。Fx1は上記の量子化データIxを逆量子化して
得られたデータであり得る。この中間表現データFx1のデータ表現フォーマットは、上
記の量子化すべきデータFxのデータ表現フォーマットと一致し、この中間表現データF
x1は、量子化誤差の計算に利用でき、詳細は以下のとおりである。ここで、逆量子化と
は、量子化の逆過程をいう。
て確定されてもよい。即ち、第2スケーリング係数は下式で計算できる:
f2=2sxf1 式(23)
7)で算出された第1スケーリング係数である。
してもよく、この場合、小数点位置sおよび/またはスケーリング係数は、予め設定され
た値であってもよい。この場合、プロセッサはオフセットに基づいて量子化すべきデータ
を量子化して、量子化データを得る。
Ix=round(Fx-o) 式(24)
ータであり、roundは四捨五入の丸め演算である。なお、他の丸め演算方法を用いて
もよく、例えば切り上げ、切り捨て、ゼロへの丸め等の丸め演算を用いて、式(24)中
の四捨五入の丸め演算を代替することができる。なお、データビット幅が一定の場合、異
なるオフセットを用いて、量子化後データの数値と量子化前データとのオフセットを調整
することができる。
ってもよい。
Fx1=round(Fx-o)+o 式(25)
の丸め演算である。Fx1は、上記の量子化データIxを逆量子化して得られたデータで
あり得る。この中間表現データFx1のデータ表現フォーマットは、上記の量子化すべき
データF x のデータ表現フォーマットと一致し、この中間表現データFx1は、量子化誤
差の計算に利用でき、詳細は以下のとおりである。ここで、逆量子化とは、量子化の逆過
程をいう。
ータの量子化を実現するためにも使用することができる。任意選択可能に、この第1デー
タフォーマットの演算データは、固定小数点表現の演算データであってもよく、この第2
データフォーマットの演算データは、固定小数点表現の演算データであってもよい。また
、第2データフォーマットの演算データのデータ表現範囲は、第1データフォーマットの
データ表現範囲よりも小さく、第2データフォーマットの小数点ビット数は第1データフ
ォーマットの小数点ビット数より大きく、すなわち、第2データフォーマットの演算デー
タは第1データ形式の演算データよりも精度が高い。例えば、この第1データフォーマッ
トの演算データは、16ビットを占める固定小数点データであり、この第2データフォー
マットは、8ビットを占める固定小数点データであってもよい。本開示の実施形態では、
固定小数点表現の演算データによって量子化処理を行うことができ、それによって演算デ
ータが占めるメモリスペースをさらに減少させ、演算データのアクセス効率および演算効
率を向上させる。
ニングまたは微調整過程に応用することができ、それによってニューラルネットワークの
トレーニングまたは微調整過程において、ニューラルネットワークの演算過程における演
算データの量子化パラメータを動的に調整し、それによって前記ニューラルネットワーク
の量子化精度を向上させる。ここで、ニューラルネットワークは、ディープニューラルネ
ットワークや畳み込みニューラルネットワーク等であってもよく、特に限定されるもので
はない。
ネットワーク(そのニューラルネットワークの重みは乱数とすることができる)に対して
複数回の反復演算(iteration)を行って、ニューラルネットワークの重みがプ
リセット条件を満たすようにする過程である。ここでは、1回の反復演算には、一般的に
、1回の順方向演算、1回の逆方向演算、および1回の重み更新演算が含まれる。順方向
演算とは、ニューラルネットワークの入力データから順方向推理を行い、順方向演算の結
果を得る過程である。逆方向演算とは、順方向の演算結果と予め設定された参照値に基づ
いて損失値を確定し、その損失値に基づいて重み勾配値を確定したり、データ勾配値を入
力したりする過程である。重み更新演算とは、重み勾配値に基づいてニューラルネットワ
ークの重みを調整する過程である。具体的には、ニューラルネットワークのトレーニング
過程は以下のとおりである。プロセッサは、重みを乱数とするニューラルネットワークを
用いて入力データに対して順方向演算を行って、順方向演算結果を得ることができる。そ
の後、プロセッサは、この順方向演算結果と予め設定された参照値に基づいて損失値を確
定し、その損失値に基づいて重み勾配値および/または入力データ勾配値を確定する。最
後に、プロセッサは、重み勾配値に基づいてニューラルネットワークの勾配値を更新し、
新たな重み値を取得し、1回の反復演算を完了することができる。プロセッサは、ニュー
ラルネットワークの順方向演算の結果が予め設定された条件を満たすまで、複数の反復演
算を循環して実行する。たとえば、ニューラルネットワークの順方向演算結果が予め設定
された参照値に収束した場合、トレーニングを終了する。あるいは、ニューラルネットワ
ークの順方向演算結果と予め設定された参考値により確定された損失値が予め設定された
精度以下である場合、トレーニングを終了する。
るように、ニューラルネットワーク(このニューラルネットワークの重みは乱数ではなく
収束状態にある)に複数回の反復演算を実行する過程である。この微調整過程は、上記の
トレーニング過程とほぼ一致しており、収束状態にあるニューラルネットワークを再トレ
ーニングする過程であると考えられる。推理(Inference)とは、重みが予め設
定された条件を満たすニューラルネットワークを用いて順方向演算を行って、認識や分類
などの機能を実現する過程であり、例えば、ニューラルネットワークを用いて画像認識な
どを実行する。
程において、ニューラルネットワーク演算の異なる段階で異なる量子化パラメータを用い
てニューラルネットワークの演算データを量子化し、量子化したデータに基づいて反復演
算を行うことで、ニューラルネットワークの演算過程におけるデータストレージスペース
を減少させ、データアクセス効率および演算効率を向上させることができる。図3-4に
示すように、上記の方法は以下のステップを含むことができる。
ることができ、この量子化すべきデータのデータ変動幅は、ユーザが入力するものであっ
てもよい。
化すべきデータに基づいて、計算により、上記の量子化すべきデータのデータの変動幅を
得ることができ、ここでは、現在反復は、現在実行されている反復演算であり、履歴反復
は、現在反復の前に実行される反復演算である。たとえば、プロセッサは、現在反復の量
子化すべきデータにおける要素の最大値と要素の平均値、および各履歴反復の量子化すべ
きデータ内の要素の最大値と要素の平均値を取得し、各反復の要素の最大値と要素の平均
値に基づいて、量子化すべきデータのデータ変動幅を確定することができる。現在反復の
量子化すべきデータにおける要素の最大値が、プリセット数の履歴反復の量子化すべきデ
ータにおける要素の最大値に近く、かつ、現在反復の量子化すべきデータにおける要素の
平均値が、プリセット数の履歴反復の量子化すべきデータにおける要素の平均値に近い場
合、上述した量子化すべきデータのデータ変動幅が小さいと判定できる。そうでなければ
、量子化すべきデータのデータ変動幅が大きいと判定できる。また、この量子化すべきデ
ータのデータ変動幅は、量子化すべきデータのスライディング平均値や分散などで表すこ
とができるが、ここでは具体的には限定しない。
タの量子化パラメータを調整する必要があるか否かを判断するために利用することができ
る。例えば、量子化すべきデータのデータ変動幅が大きい場合、量子化の精度を保証する
ために、量子化パラメータをタイムリーに調整する必要があることを説明することができ
る。量子化すべきデータのデータ変動幅が小さい場合、現在検証反復とその後の一定数量
の反復は履歴反復の量子化パラメータを引き続き使用することができ、それによって頻繁
に量子化パラメータを調整することを避け、量子化効率を高めることができる。
きデータは、浮動小数点で表される演算データであってもよいし、固定小数点で表される
演算データであってもよい。任意選択可能に、各反復の量子化すべきデータは、ニューロ
ンデータ、重みデータ、または勾配データのうちの少なくとも1つであってもよい。また
、勾配データは、ニューロン勾配データおよび重み勾配データ等を含んでもよい。
定することで、この目標反復間隔に基づいて、ニューラルネットワーク演算における量子
化パラメータを調整し、ここでは、前記目標反復間隔は、少なくとも1回の反復を含み、
前記ニューラルネットワークの量子化パラメータは、前記ニューラルネットワークの演算
における量子化すべきデータに対する量子化動作を実現するためのものである。
リング係数を含むことができ、ここで、スケーリング係数は、第1スケーリング係数と第
2スケーリング係数を含むことができる。具体的な小数点位置の計算方法、スケール係数
の計算方法は上記の式(2)を参照でき、スケーリング係数の計算方法は上記の式(5)
または(8)を参照でき、ここでは説明しない。任意選択可能に、この量子化パラメータ
は、上述した式(12)を参照することができるオフセットを含むことができる。さらに
、プロセッサは、式(14)によって小数点位置を確定し、上記の式(17)または(2
0)によってスケーリング係数を確定するようにしてもよい。本開示の実施形態では、プ
ロセッサは、確定された目標反復間隔に基づいて、上記の小数点位置、スケーリング係数
、またはオフセットの少なくとも1つを更新して、このニューラルネットワーク演算にお
ける量子化パラメータを調整することができる。すなわち、このニューラルネットワーク
演算における量子化パラメータは、ニューラルネットワーク演算における量子化すべきデ
ータのデータ変動幅に応じて更新することができる。これにより、量子化の精度を保証で
きる。
し分析することで、量子化すべきデータのデータ変動曲線を得ることができることが理解
できる。図3-5に示すように、このデータの変動曲線800Lからもわかるように、ニ
ューラルネットワークのトレーニングまたは微調整の初期において、異なる反復の量子化
すべきデータのデータの変動は激しく、トレーニング或いは微調整の演算の進行に従って
、異なる反復の量子化すべきデータのデータ変動は徐々に緩やかになっている。そこで、
ニューラルネットのトレーニングや微調整の初期には、量子化パラメータを頻繁に調整す
ることができる。ニューラルネットワークのトレーニングまたは微調整の中期と後期にお
いて、複数回の反復またはトレーニング周期おきに、量子化パラメーターを調整すること
ができる。本開示の方法は、適切な反復間隔を確定することにより、量子化精度と量子化
効率のバランスをとるものである。
確定し、この目標反復間隔に基づいてニューラルネットワークの演算における量子化パラ
メータを調整することができる。任意選択可能に、この目標反復間隔は、量子化すべきデ
ータのデータ変動幅が小さくなるに伴って増加することができる。すなわち、この量子化
すべきデータのデータ変動幅が大きければ大きいほど、この目標反復間隔が小さく、量子
化パラメータの調整が頻繁であることを示す。この量子化すべきデータのデータ変動幅が
小さければ小さいほど、この目標反復間隔が大きく、量子化パラメータの調整が頻繁でな
いことを示す。もちろん、他の実施形態では、上記の目標反復間隔はハイパーパラメータ
であってもよく、例えば、この目標反復間隔は、ユーザがカスタマイズして設定してもよ
い。
子化すべきデータがそれぞれ異なる反復間隔を有することができる。これに応じて、プロ
セッサは、各種の量子化すべきデータに対応するデータの変動幅をそれぞれ取得すること
ができ、これによって、それぞれの量子化すべきデータのデータ変動幅に応じて、対応す
る種類の量子化すべきデータに対応する目標反復間隔を確定する。すなわち、各種の量子
化すべきデータの量子化過程は非同期に行うことができる。本開示の実施形態によれば、
異なる種類の量子化すべきデータの間に差があるので、異なる量子化すべきデータのデー
タ変動幅を用いて、対応する目標反復間隔を確定することができる。そして、対応する目
標反復間隔に基づいて対応する量子化パラメータを確定し、それによって、量子化すべき
データの量子化の精度を保証でき、さらにニューラルネットワークの演算結果の正確性を
保証できる。
復間隔を確定して、この目標反復間隔に応じて対応する量子化すべきデータに対応する量
子化パラメータを調整することもできる。例えば、プロセッサは、各種の量子化すべきデ
ータのデータ変動幅をそれぞれ取得し、最大の量子化すべきデータのデータ変動幅に基づ
いて目標反復間隔を確定し、この目標反復間隔に基づいて各種の量子化すべきデータの量
子化パラメータを確定することができる。更に、異なる種類の量子化すべきデータは、同
じ量子化パラメータを用いることもできる。
含むことができ、この量子化すべきデータは、各演算層に係るニューロンデータ、重みデ
ータ、または勾配データのうちの少なくとも1つであってもよい。このとき、プロセッサ
は、現在の演算層に係る量子化すべきデータを取得し、上記の方法により現在の演算層に
おける各種の量子化すべきデータのデータ変動幅および対応する目標反復間隔を確定する
ことができる。
べきデータのデータ変動幅を一度確定し、対応する量子化すべきデータのデータ変動幅に
基づいて、一回の目標反復間隔を確定することができる。つまり、プロセッサは、各反復
ごとに目標反復間隔を1回計算できる。具体的な目標反復間隔の計算方法については、以
下の説明を参照できる。更に、プロセッサは、プリセットされた条件に基づいて、各反復
から検証反復を選択し、各検証反復において量子化すべきデータのデータ変動幅を確定し
、検証反復に対応する目標反復間隔に基づいて量子化パラメータ等を更新し調整すること
ができる。このとき、この反復が選択された検証反復でない場合、プロセッサはこの反復
に対応する目標反復の間隔を無視できる。
復は、この目標反復間隔の開始反復であってもよいし、この目標反復間隔の終了反復であ
ってもよい。プロセッサは、各目標反復間隔の検証反復においてニューラルネットワーク
の量子化パラメータを調整して、目標反復間隔に応じてニューラルネットワーク演算の量
子化パラメータを調整することができる。ここで、検証反復は、現在の量子化パラメータ
が、量子化すべきデータの需要を満たしているかどうかを調べるための時点であってもよ
い。この調整前量子化パラメータは、調整後の量子化パラメータと同じであってもよいし
、調整後の量子化パラメータと異なっていてもよい。任意選択可能に、隣接する検証反復
間の間隔は、目標反復の間隔以上であってもよい。
在検証反復は、この目標反復間隔の開始反復であってもよい。例えば、現在検証反復は1
00回目の反復であり、プロセッサは、量子化すべきデータのデータ変動幅に基づいて、
目標反復間隔の反復間隔を3と確定すると、プロセッサは、この目標反復間隔に、100
回目の反復、101回目の反復、102回目の反復の3回の反復を含むことができる。プ
ロセッサはこの100回目の反復においてニューラルネットワーク演算における量子化パ
ラメータを調整することができる。ここでは、現在検証反復は、プロセッサが現在量子化
パラメータの更新調整を行っているときの対応する反復演算である。
く、この現在検証反復は、現在検証反復の一つ前の反復間隔の終了反復であってもよい。
例えば、現在検証反復は100回目の反復であり、プロセッサは、量子化すべきデータの
データ変動幅に基づいて、目標反復間隔の反復間隔を3と確定すると、プロセッサは、こ
の目標反復間隔に、101回目の反復、102回目の反復、103回目の反復の3回の反
復を含むことができる。プロセッサは、この100回目の反復と103回目の反復におい
てニューラルネットワーク演算における量子化パラメータを調整することができる。本開
示は、目標反復間隔の確定方式を具体的に限定しない。
算式から分かるように、量子化パラメータは、量子化すべきデータに関連していることが
多い。したがって、上述した動作S100では、量子化すべきデータのデータ変動幅は量
子化パラメータの変動幅によって間接的に確定されてもよい。この量子化すべきデータの
データ変動幅は、量子化パラメータの変動幅によって表される。具体的には、図3-6に
示すように、上記操作S100は以下を含んでもよい。
前記量子化すべきデータのデータ変動幅を表すために用いることができ、前記小数点位置
の変動幅は、前記量子化すべきデータのデータ変動幅と正の相関がある。
に反映することができる。この小数点位置の変動幅は、現在検証反復の小数点位置と少な
くとも1回の履歴反復の小数点位置に基づいて確定するものであってもよい。ここで、現
在検証反復の小数点位置および各回の履歴反復の小数点位置は、上述した式によって確定
することができる。ここで、現在検証反復の小数点位置および各回の履歴反復の小数点位
置は、上述した式によって確定することができる。
を計算し、その分散に基づいて小数点位置の変動幅を確定することもできる。また、プロ
セッサは、現在検証反復の小数点位置と履歴反復の小数点位置の平均値から、小数点位置
の変動幅を確定することができる。具体的には、図3-7に示すように、上記操作S11
0は、以下を含んでもよい。
証反復の前の履歴反復に対応する小数点位置とに基づいて、第1平均値を確定する。ここ
では、前の検証反復は、前記量子化パラメータを前回調整したときの対応する反復であり
、前の検証反復と前記現在検証反復の間の間隔は少なくとも1つの反復の間隔である。
とができ、各反復間隔は対応的に1つの検証反復があってもよく、隣接する2つの検証反
復には1つの反復間隔があってもよい。上記の動作S111における前の反復は、目標反
復間隔の一つ前の反復間隔に対応する検証反復であってもよい。
M1=a1xst-1+a2xst-2+a3xst-3+...+amxs1
式(26)
の検証反復に対応する小数点位置であり、st-2、st-3...s 1は、前の検証反
復の前の履歴反復に対応する小数点位置であり、M1は上記の第1平均値である。更に、
データの分布特性によれば、履歴反復とこの前の反復との距離が遠ければ遠いほど、この
前の反復に近い反復の小数点位置の分布および変動幅への影響が小さくなるので、上記の
計算重みはa1~amの順に減少させることができる。
反復は1回目の反復~99回目の反復であり得る場合、プロセッサはこの100回目の反
復の小数点位置(即ちst-1)を得ることができ、この100回目の反復の前の履歴反
復の小数点位置、即ちs 1 を得ることができ、ニューラルネットワークの1回目の反復に
対応する小数点位置……であり得て、st-3はニューラルネットワークの98回目の反
復に対応する小数点位置であり得て、s t-2 はニューラルネットワークの99回目の反
復に対応する小数点位置であり得る。さらに、プロセッサは上記の式で計算して第1平均
値を得ることができる。
とができる。たとえば、この第1平均値は次の式で計算できる。
M1=a1xst-1+a2xst-2+a3xst-3+...+amxs
1
1は、前の検証反復に対応する小数点位置であり、st-2、st-3...s1は、前
の検証反復の前のプリセット数量の反復間隔の検証反復に対応する小数点位置であり、M
1は上記の第1平均値である。
歴反復は1回目から99回目までの反復であり、この99回の反復は11反復間隔に分割
して属することができる。たとえば、1回目の反復から9回目の反復は1番目の反復間隔
に属し、10回目の反復から18回目の反復は2番目の反復間隔に属し……、90回目か
ら99回目は11反復間隔に属する。すると、プロセッサはこの100回目の反復の小数
点位置(即ちst-1)を得ることができ、かつこの100回目の反復の前の反復間隔に
おける検証反復の小数点位置を得ることができ、即ちs 1 はニューラルネットワークの1
番目の反復間隔の検証反復に対応する小数点位置であり得て(例えば、s1はニューラル
ネットワークの1回目の反復に対応する小数点位置)、……、st-3はニューラルネッ
トワークの10番目の反復間隔の検証反復に対応する小数点位置であり得て(例えば、s
t-3はニューラルネットワークの81回目の反復に対応する小数点位置であり得て)、
st-2はニューラルネットワークの11番目の反復間隔の検証反復に対応する小数点位
置であり得る(例えば、st-2は、ニューラルネットワークの90回目の反復に対応す
る小数点位置であり得る)。更に、プロセッサは、上式の計算により第1平均値M1を得
ることができる。
ものとする。実際の使用では、この反復間隔に含まれる反復の数が異なってもよい。任意
選択可能に、この反復間隔に含まれる反復の数は、反復の増加に従って増加し、即ち、ニ
ューラルネットワークのトレーニングまたは微調整の実行に従って、反復間隔はますます
大きくなってもよい。
、上記の第1平均値M1は、以下の式によって計算できる。
M1=αxst-1+(1-α)xM0 式(27)
検証反復に対応する小数点位置であり、M0はこの前の検証反復の前の検証反復に対応す
るスライディング平均値であり、このM0の具体的な計算方式は、上記のM1の計算方式
を参照でき、ここでは説明しない。
復の小数点位置とに基づいて第2平均値を確定する。ここで、現在検証反復に対応する小
数点位置は、現在検証反復の目標データビット幅および量子化すべきデータに基づいて確
定することができる。
M2=b1xst+b2xst-1+b3xst-2+...+bmxs1 式(2
8)
証反復に対応する小数点位置であり、st-1、st-2...s1 は現在検証反復の前
の履歴反復に対応する小数点位置であり、M2は上記の第2平均値である。更に、データ
の分布特性によれば、履歴反復とこの現在反復との距離が遠ければ遠いほど、この現在反
復に近い反復の小数点位置の分布および変動幅への影響が小さくなるので、上記計算重み
はb1~bmの順に減少させることができる。
の現在検証反復の前の履歴反復は1回目の反復から100回目の反復を指す。すると、プ
ロセッサはこの101回目の反復の小数点位置を得ることができ(即ちs t )、かつこの
101回目の反復の前の履歴反復の小数点位置を得ることができ、即ちs1は、ニューラ
ルネットワークの第1回目の反復に対応する小数点位置であり得て……、st-2は、ニ
ューラルネットワークの99回目の反復に対応する小数点位置であり得て、st-1は、
ニューラルネットワークの100回目の反復に対応する小数点位置であり得る。更に、プ
ロセッサは、上式の計算により第2平均値M2を得ることができる。
算出することができる。具体的には、図3-8に示すように、上記操作S112は、以下
を含んでもよい。
中間スライディング平均値は、前記現在検証反復の前の前記プリセット数の検証反復に基
づいて確定され、前記検証反復は、前記ニューラルネットワーク量子化過程におけるパラ
メータを調整する際に対応する反復である。
ディング平均値に基づいて前記第2平均値を確定する。
M2=b1xst+b2xst-1+b3xst-2+...+bmxs1
在検証反復に対応する小数点位置であり、st-1、st-2...s1は、現在検証反
復の前の検証反復に対応する小数点位置であり、M2は上記の第2平均値である。
での反復であり、この99回の反復は11反復間隔に分割して属することができる。たと
えば、1回目の反復から9回目の反復は1番目の反復間隔に属し、10回目の反復から1
8回目の反復は2番目の反復間隔に属し……、90回目から99回目は11番目の反復間
隔に属する。すると、プロセッサはこの100回目の反復の小数点位置(即ちst)を得
ることができ、かつこの100回目の反復の前の反復間隔における検証反復の小数点位置
を得ることができ、即ちs1はニューラルネットワークの1番目の反復間隔の検証反復に
対応する小数点位置であり得て(例えば、s1はニューラルネットワークの1回目の反復
に対応する小数点位置)、……、st-2はニューラルネットワークの10番目の反復間
隔の検証反復に対応する小数点位置であり得て(例えば、st-2はニューラルネットワ
ークの81回目の反復に対応する小数点位置であり得て)、st-1はニューラルネット
ワークの11番目の反復間隔の検証反復に対応する小数点位置であり得る(例えば、st
-1は、ニューラルネットワークの90回目の反復に対応する小数点位置であり得る)。
更に、プロセッサは、上式の計算により第2平均値M2を得ることができる。
ものとする。実際の使用では、この反復間隔に含まれる反復の数が異なってもよい。任意
選択可能に、この反復間隔に含まれる反復の数は、反復の増加に従って増加し、即ち、ニ
ューラルネットワークのトレーニングまたは微調整の実行に従って、反復間隔はますます
大きくなってもよい。
ッサは、前記現在検証反復に対応する小数点位置および第1平均値に基づいて、前記第2
平均値を確定することができ、すなわち、前記第2平均値は次の式を用いて計算すること
ができる。
M2=βxst+(1-β)xM1 式(29)
1平均値である。
記第1誤差は、前記現在検証反復および前記履歴反復の小数点位置の変動幅を表すために
用いられる。
することができる。具体的には、上記の第1誤差は、以下の式により算出することができ
る。
diffupdate1=|M2-M1|=β|s(t)-M1| 式(
30)
データと、現在検証反復に対応する目標データビット幅とに基づいて確定することができ
、具体的な小数点位置の計算方法については、上記の式(2)または式(14)を参照す
ることができる。ここで、上記現在検証反復に対応する目標データビット幅は、ハイパー
パラメータであってもよい。さらに任意選択可能に、この現在検証反復に対応する目標デ
ータビット幅は、ユーザがカスタマイズして入力することができる。任意選択可能に、ニ
ューラルネットワークのトレーニングまたは微調整における量子化すべきデータに対応す
るデータビット幅は一定であってもよい。すなわち、同一のニューラルネットワークの同
じ種類量子化すべきデータは、同じデータビット幅を用いて量子化される。例えば、この
ニューラルネットワークの各反復におけるニューロンデータは、いずれも8ビットのデー
タビット幅を用いて量子化する。
子化すべきデータに対応するデータビット幅は可変とし、これにより、データビット幅が
量子化すべきデータの量子化需要を満たせることを保証する。つまり、プロセッサは、量
子化すべきデータに応じて、この量子化すべきデータに対応するデータビット幅を適応的
に調整し、この量子化すべきデータに対応する目標データビット幅を得ることができる。
具体的には、プロセッサは、まず、現在検証反復に対応する目標データのビット幅を確定
することができ、その後、プロセッサは、この現在検証反復に対応する目標データビット
幅およびこの現在検証反復に対応する量子化すべきデータに基づいて、現在検証反復に対
応する小数点位置を確定することができる。
ータとに基づいて量子化誤差を確定する。ここで、前記現在検証反復の量子化データは、
前記現在検証反復の量子化すべきデータを量子化することによって得られる。
化して、前記量子化データを得ることができる。この現在検証反復の初期データビット幅
は、ハイパーパラメータであってもよく、この現在検証反復の初期データビット幅は、こ
の現在検証反復の1つ前の検証反復の量子化すべきデータに基づいて確定されてもよい。
化データとに基づいて、中間表現データを確定することができる。任意選択可能に、前記
中間表現データは、前記量子化すべきデータの表現フォーマットと一致する。例えば、プ
ロセッサは上述した量子化すべきデータを逆量子化して、量子化すべきデータの表現フォ
ーマットと一致する中間表現データを得ることができ、ここで、逆量子化とは、量子化の
逆過程を指す。例えば、この量子化すべきデータは式(3)を用いて得ることができ、プ
ロセッサはさらに式(4)によって量子化すべきデータを逆量子化して、対応する中間表
現データを得て、量子化すべきデータと中間表現データに基づいて量子化誤差を確定する
ことができる。
量子化誤差を算出すことができる。現在検証反復の量子化すべきデータがFx=[Z1,
Z2...,Zm]であり、この量子化すべきデータに対応する中間表現データがFx1
=[Z1 (n),Z2 (n)...,Zm (n)]であるとする。プロセッサは、量子化
すべきデータFxおよびそれに対応する中間表現データFx1に基づいて誤差項を確定し
、この誤差項に基づいて量子化誤差を確定することができる。
子化すべきデータFx における各要素の和に基づいて上記の誤差項を確定することができ
、この誤差項は、中間表現データFx1 における各要素の和と量子化すべきデータFx に
おける各要素の和の差値であってもよい。その後、プロセッサはこの誤差項に基づいて量
子化誤差を確定することができる。具体的な量子化誤差は、下式によって確定することが
できる:
diff bit =ln((Σi|Zi (n)|-Σi|Zi|)/Σi|Zi|+1)
式(31)
タFx1の要素である。
現データFx1 における対応する要素の差値を計算して、m個の差値を得て、このm個の
差値の和を誤差項とする。その後、プロセッサはこの誤差項に基づいて量子化誤差を確定
することができる。具体的な量子化誤差は、下式によって確定することができる:
diffbit=ln(Σi|Zi (n)-Zi|/Σi|Zi|+1)
式(32)
タFx1の要素である。
ける対応する要素との差値は2(s-1)にほぼ等しくてもよく、従って、上記量子化誤
差は、さらに下式によって確定されてもよい。
diffbit=ln(2s-1*m/Σi|Zi|) 式
(33)
位置であり、ziは量子化すべきデータにおける要素である。
マットと一致し、前記中間表現データと量子化すべきデータとに基づいて量子化誤差を確
定してもよい。例えば、量子化すべきデータはF x ≒I x ×2 s と表すことができる。す
ると、中間表現データIx1≒Fx/2sを確定することができ、この中間表現データI
x1は上記の量子化すべきデータと同じデータ表現フォーマットを有することができる。
このとき、プロセッサは、中間表現データIx1 と上記式(3)によって算出されたIx
=round(Fx/2s)によって量子化誤差を確定することができる。具体的な量子
化誤差確定方式は、上記の式(31)~式(33)を参照することができる。
ト幅を確定する。
ビット幅を適応的に調整して、この現在検証反復が調整された後の目標データビット幅を
確定することができる。この量子化誤差がプリセット条件を満たす場合、現在検証反復に
対応するデータビット幅を維持することができ、つまり、この現在検証反復の目標データ
ビット幅が初期データビット幅に等しくてもよい。量子化誤差がプリセット条件を満たさ
ない場合、プロセッサは、現在検証反復に対応する量子化すべきデータのビット幅を調整
して、現在検証反復に対応する目標データビット幅を得ることができる。プロセッサがこ
の目標データビット幅を用いて現在検証反復の量子化すべきデータを量子化する時、量子
化誤差は上記のプリセット条件を満たす。任意選択可能に、上記のプリセット条件は、ユ
ーザが設定したプリセット閾値であってもよい。
か否かを判断することができる。
検証反復に対応するデータビット幅を大きくして、現在検証反復の目標データビット幅を
得ることができる。量子化誤差が第1プリセット閾値よりも小さい場合、現在検証反復の
データビット幅を維持することができる。
ことができる。たとえば、現在検証反復の初期データビット幅がn1の場合、プロセッサ
は1回の調整で目標データビット幅n2=n1+tを確定することができ、ここでは、t
はデータビット幅の調整値である。ここで、この目標データビット幅n2を用いて、現在
検証反復の量子化すべきデータを量子化する場合、得られた量子化誤差は、前記第1プリ
セット閾値より小さくてもよい。
るまで何度も調整して目標データビット幅を得ることができ、この量子化誤差が第1プリ
セット閾値より小さい場合のデータビット幅を目標データビット幅とすることができる。
具体的には、前記量子化誤差が第1プリセット閾値以上の場合、第1プリセットビット幅
のステップ長さに基づいて第1中間データビット幅を確定する。その後、プロセッサはこ
の第1中間データビット幅に基づいて、現在検証反復の量子化すべきデータを量子化し、
量子化データを得て、前記量子化誤差が前記第1プリセット閾値より小さくなるまで、前
記現在検証反復における量子化すべきデータと前記現在検証反復における量子化データと
に基づいて量子化誤差を確定することができる。プロセッサは、この量子化誤差が第1プ
リセット閾値よりも小さい時に対応するデータビット幅をこの目標データビット幅とする
ことができる。
タビット幅n1を用いて現在検証反復の量子化すべきデータAを量子化し、量子化データ
B1を得て、この量子化すべきデータAと量子化データB1に基づいて量子化誤差C1を
算出する。量子化誤差C1が第1プリセット閾値以上である場合、プロセッサは第1中間
データビット幅n2=n1+t1を確定し、ここで、t1は第1プリセットビット幅のス
テップ長さである。その後、プロセッサは、第1中間データビット幅n2に基づいて現在
検証反復の量子化すべきデータを量子化して、現在検証反復の量子化データB2を得て、
この量子化すべきデータAと量子化データB2に基づいて量子化誤差C2を算出する。こ
の量子化誤差C2が第1プリセット閾値以上の場合、プロセッサは第1中間データビット
幅n2=n1+t1+t1を確定し、そのあと、この新しい第1中間データビット幅に基
づいて現在検証反復の量子化すべきデータAを量子化し、量子化誤差が第1プリセット閾
値より小さくなるまで、対応する量子化誤差を計算する。量子化誤差C1が第1プリセッ
ト閾値よりも小さい場合、この初期データビット幅n1を維持することができる。
、量子化誤差が第1プリセット閾値よりも大きくなるたびに、プロセッサは現在検証反復
に対応するデータビット幅を同じビット幅の値大きくすることができる。任意選択可能に
、上記の第1プリセットビット幅のステップ長さは可変値であってもよく、例えば、プロ
セッサは、量子化誤差と第1プリセット閾値の差値を計算することができ、この量子化誤
差と第1プリセット閾値の差値が小さければ小さいほど、第1プリセットビット幅のステ
ップ長さの値が小さい。
できる。
どうかを判定することができる。
記現在検証反復に対応するデータビット幅を小さくして、現在検証反復の目標データビッ
ト幅を得ることができる。量子化誤差が第2プリセット閾値よりも大きい時、現在検証反
復のデータビット幅をそのまま維持することができる。
ことができる。たとえば、現在検証反復の初期データビット幅がn1の場合、プロセッサ
は1回の調整で目標データビット幅n2=n1-tを確定することができ、ここでは、t
はデータビット幅の調整値である。ここで、この目標データビット幅n2を用いて、現在
検証反復の量子化すべきデータを量子化する場合、得られた量子化誤差は、前記第2プリ
セット閾値よりも大きくてもよい。
るまで何度も調整して目標データビット幅を得ることができ、この量子化誤差が第2プリ
セット閾値より大きい場合のデータビット幅を目標データビット幅とすることができる。
具体的には、前記量子化誤差が第1プリセット閾値以下の場合、第2プリセットビット幅
のステップ長さに基づいて第2中間データビット幅を確定する。その後、プロセッサはこ
の第2中間データビット幅に基づいて、現在検証反復の量子化すべきデータを量子化し、
量子化データを得て、前記量子化誤差が前記第2プリセット閾値より大きくなるまで、前
記現在検証反復における量子化すべきデータと前記現在検証反復における量子化データと
に基づいて量子化誤差を確定することができる。プロセッサは、この量子化誤差が第2プ
リセット閾値よりも大きい時に対応するデータビット幅をこの目標データビット幅とする
ことができる。
タビット幅n1を用いて現在検証反復の量子化すべきデータAを量子化し、量子化データ
B1を得て、この量子化すべきデータAと量子化データB1に基づいて量子化誤差C1を
算出する。量子化誤差C1が第2プリセット閾値以下である場合、プロセッサは第2中間
データビット幅n2=n1-t2を確定し、ここで、t2は第2プリセットビット幅のス
テップ長さである。その後、プロセッサは、この第2中間データビット幅n2に基づいて
現在検証反復の量子化すべきデータを量子化して、現在検証反復の量子化データB2を得
て、この量子化すべきデータAと量子化データB2に基づいて量子化誤差C2を算出する
。この量子化誤差C2が第2プリセット閾値以下の場合、プロセッサは第2中間データビ
ット幅n2=n1-t2-t2を確定し、そのあと、この新しい第2中間データビット幅
に基づいて現在検証反復の量子化すべきデータAを量子化し、量子化誤差が第2プリセッ
ト閾値より大きくなるまで、対応する量子化誤差を計算する。量子化誤差C1が第2プリ
セット閾値よりも大きければ、この初期データビット幅n1をそのまま維持することがで
きる。
、量子化誤差が第2プリセット閾値より小さくなるたびに、プロセッサは、現在検証反復
に対応するデータビット幅を同じビット幅の値小さくすることができる。任意選択可能に
、上記の第2プリセットビット幅のステップ長さは可変値であってもよく、例えば、プロ
セッサは量子化誤差と第2プリセット閾値の差値を計算することができ、この量子化誤差
と第2プリセット閾値の差値が小さければ小さいほど、第2プリセットビット幅のステッ
プ長さの値が小さい。
ト閾値より小さく、且つ量子化誤差が第2プリセット閾値より大きいと確定した場合、現
在検証反復のデータビット幅をそのまま維持することができ、ここでは、第1プリセット
閾値は第2プリセット閾値よりも大きい。つまり、現在検証反復の目標データビット幅が
初期データビット幅に等しくてもよい。ここでは、図3-12では、本開示の一実施形態
に係るデータビット幅の確定方式のみを例示するものであり、図3-12における各操作
の順序は、適応的に調整することができるが、ここでは具体的に限定しない。
対応的に小数点位置の変化が生じる。しかし、このときの小数点位置の変化は、量子化す
べきデータのデータ変動によるものではなく、上記の式(30)で確定される第1誤差で
算出された目標反復間隔が正確ではない可能性があるため、量子化の精度に影響を及ぼす
可能性がある。したがって、現在検証反復のデータビット幅が変化した場合には、第1誤
差が小数点位置の変動幅を正確に反映することを保証し、さらに目標反復間隔の正確性と
確実性を保証するために上記の第2平均値を適宜調整してもよい。具体的には、図3-1
3に示すように、上記の方法は以下を含んでもよい。
幅調整値を確定する。
に基づいて、現在検証反復のデータビット幅の調整値を確定することができる。ここで、
このデータビット幅の調整値=目標データビット幅-初期データビット幅である。もちろ
ん、プロセッサは、現在検証反復のデータビット幅の調整値を直接得ることができる。
て更新する。
えば、予め設定されたパラメーターがゼロに等しくてもよい)、つまり、現在検証反復の
データビット幅が増加する場合、プロセッサはそれに応じて第2平均値を減少することが
できる。データビット幅の調整値が予め設定されたパラメータよりも小さい場合(例えば
、この予め設定されたパラメータがゼロであってもよい)、つまり、現在検証反復のデー
タビット幅が減少する場合、プロセッサはそれに応じて第2平均値を増加させることがで
きる。データビット幅調整値が予め設定されたパラメーターに等しい場合、即ちデータビ
ット幅調整値が0に等しい場合、このとき、現在反復に対応する量子化すべきデータは変
更されず、更新後の第2平均値は更新前の第2平均値に等しくなり、この更新前の第2平
均値は、上記の式(29)の計算により求められる。任意選択可能に、データビット幅の
調整値が予め設定されたパラメータに等しい場合、すなわち、データビット幅の調整値が
0である場合、プロセッサは第2平均値を更新しなくてもよい。つまり、プロセッサは上
記の動作S117を行わなくてもよい。
する目標データビット幅n2=初期データビット幅n1+Δnの場合、ここでは、Δnは
データビット幅調整値を表す。このとき、更新後の第2平均値M2=β×(st-Δn)
+(1-β)×(M1-Δn)である。現在検証反復に対応する目標データビット幅n2
=初期データビット幅n1-Δnの場合、ここでは、Δnはデータビット幅調整値を表し
、このとき、更新後の第2平均値M2=β×(st-Δn)+(1-β)×(M1+Δn
)であり、ここでは、st とは、現在検証反復が目標データビット幅によって確定される
小数点位置であると指す。
する目標データビット幅n2=初期データビット幅n1+Δnの場合、ここでは、Δnは
データビット幅調整値を表す。このとき、更新後の第2平均値M2=β×st+(1-β
)×M1-Δnである。現在検証反復に対応する目標データビット幅n2=初期データビ
ット幅n1-Δnの場合、ここでは、Δnはデータビット幅調整値を表し、このとき、更
新後の第2平均値M2=β×st+(1-β)×M1+Δnであり、ここでは、st とは
、現在検証反復が目標データビット幅によって確定される小数点位置であると指す。
。
で、この目標反復間隔は、上記の小数点位置の変動幅と負の相関がある。すなわち、上記
の小数点位置の変動幅が大きいほど、その目標反復間隔は小さくなる。上記の小数点位置
の変動幅が小さいほど、この目標反復間隔は大きくなる。
示すように、上記ステップS210は、以下を含んでもよい。
確定することができる。ここでは、目標反復間隔は、前記第1誤差と負の相関がある。す
なわち、第1誤差が大きいほど、小数点位置の変化幅が大きく、さらに、量子化すべきデ
ータのデータ変動幅が大きいことを示し、このとき、目標反復間隔は小さくなる。
I=δ/diffupdate1-γ 式(31)
、δとγはハイパーパラメータであり得る。
が大きいほど、小数点位置の変動幅が大きいことを示し、さらに、量子化すべきデータの
データ変動幅が大きいほど、目標反復間隔を小さく設定する必要があることを示す。すな
わち、第1誤差が大きいほど、量子化パラメータの調整が頻繁に行われる。
基づいて目標反復間隔を確定する。量子化パラメータは目標反復間隔に応じて確定される
ので、量子化パラメータに基づいて量子化して得られた量子化データは、目標データの小
数点位置の変動傾向にさらに適合することができ、量子化の精度を保証するとともに、ニ
ューラルネットワークの動作効率を向上させる。
反復で、目標反復間隔に対応する量子化パラメータとデータビット幅等のパラメータを更
に確定することで、目標反復間隔に応じて量子化パラメータを更新することができる。こ
こで、量子化パラメータには、小数点位置および/またはスケーリング係数を含むことが
できる。更に、この量子化パラメータは、オフセットをさらに含むことができる。この量
子化パラメータの具体的な計算方法については、上記の説明を参照してもよい。上記の方
法はさらに以下を含んでもよい。
における量子化パラメータを調整する。
目標反復間隔を更新してもよく、さらに各検証反復で量子化パラメータを更新してもよい
。たとえば、ニューラルネット演算におけるデータビット幅は一定に保ち、この場合、プ
ロセッサは、各検証反復において、そのまま検証反復の量子化すべきデータに基づいて、
小数点位置などの量子化パラメータを調整することができる。このように、ニューラルネ
ットワーク演算におけるデータビット幅は可変であり、このとき、プロセッサは各検証反
復において、データビット幅を更新し、更新されたデータビット幅とこの検証反復の量子
化すべきデータに基づき、小数点位置などの量子化パラメータを調整することができる。
て、現在の量子化パラメータが、量子化すべきデータの量子化ニーズを満たすことを保証
する。ここでは、更新前の目標反復間隔は、更新後の目標反復間隔と同じであってもよい
し、異なってもよい。更新前のデータビット幅は、更新後のデータビット幅と同じであっ
てもよいし、異なっていてもよい。すなわち、異なる反復間隔のデータビット幅は同一で
あっても異なっていてもよい。更新前の量子化パラメータと更新後の量子化パラメータは
同じであってもよいし、異なってもよい。すなわち、異なる反復間隔の量子化パラメータ
は同一であっても異なっていてもよい。
反復間隔における量子化パラメータを確定して、ニューラルネットワークの演算における
量子化パラメータを調整することができる。
幅は変化せず、即ち、このニューラルネットワーク演算における各反復に対応するデータ
ビット幅はすべて同じであり、このとき、プロセッサは目標反復間隔における小数点位置
などの量子化パラメータを確定することで、目標反復間隔に応じてニューラルネットワー
ク演算における量子化パラメータの調整を行うという目的を実現することができる。ここ
で、この目標反復間隔における反復に対応する量子化パラメータは一致してもよい。すな
わち、目標反復間隔における各反復は同じ小数点位置を採用し、ただ各反復毎に小数点位
置などの量子化パラメータを更新し確定するだけである。これにより、反復ごとに量子化
パラメータを更新調整する必要がなくなり、量子化における計算量を減少し、量子化操作
の効率を向上させる。
ける反復の対応する小数点位置は一致に保つことができる。具体的には、プロセッサは、
現在検証反復の量子化すべきデータと、現在検証反復に対応する目標データのビット幅と
に基づいて、現在検証反復に対応する小数点位置を確定し、かつ現在検証反復に対応する
小数点位置を、この目標検証反復に対応する小数点位置として使用し、この目標反復間隔
における反復はいずれも現在検証反復に対応する小数点位置を引き続き使用することがで
きる。任意選択可能に、この現在検証反復に対応する目標データビット幅は、ハイパーパ
ラメータであってもよい。たとえば、この現在検証反復に対応する目標データビット幅は
、ユーザがカスタマイズして入力する。この現在の検証の反復に対応する小数点位置は、
上記の式(2)または式(14)によって計算することができる。
幅は変化することができ、即ち、異なる目標反復間隔に対応するデータビット幅は一致し
なくてもよいが、目標反復間隔における各反復のデータビット幅は不変である。ここで、
この目標反復間隔における反復に対応するデータのビット幅は、ハイパーパラメータであ
ってもよい。例えば、この目標反復間隔における反復に対応するデータのビット幅は、ユ
ーザがカスタマイズして入力することができる。一態様では、この目標反復間隔における
反復に対応するデータビット幅は、例えば、プロセッサ計算によって得られたものであっ
てもよい。例えば、プロセッサは、現在検証反復の量子化すべきデータに基づいて、現在
検証反復に対応する目標データビット幅を確定し、この現在検証反復に対応する目標デー
タビット幅を、目標反復間隔に対応するデータビット幅とする。
対応する小数点位置などの量子化パラメータも一定に保つことができる。すなわち、目標
反復間隔における各反復は同じ小数点位置を採用し、ただ各反復毎に小数点位置などの量
子化パラメータおよびデータビット幅を更新し確定するだけである。これにより、反復ご
とに量子化パラメータを更新調整する必要がなくなり、量子化における計算量を減少し、
量子化操作の効率を向上させる。
して、目標反復間隔における反復の対応する小数点位置は一致に保つことができる。具体
的には、プロセッサは、現在検証反復の量子化すべきデータと、現在検証反復に対応する
目標データのビット幅とに基づいて、現在検証反復に対応する小数点位置を確定し、かつ
現在検証反復に対応する小数点位置を、この目標検証反復に対応する小数点位置として使
用し、この目標反復間隔における反復はいずれも現在検証反復に対応する小数点位置を引
き続き使用することができる。任意選択可能に、この現在検証反復に対応する目標データ
ビット幅は、ハイパーパラメータであってもよい。たとえば、この現在検証反復に対応す
る目標データビット幅は、ユーザがカスタマイズして入力する。この現在の検証の反復に
対応する小数点位置は、上記の式(2)または式(14)によって計算することができる
。
よい。プロセッサは、現在検証反復の量子化すべきデータに基づいて、現在検証反復に対
応するスケーリング係数を確定し、この現在検証反復に対応するスケーリング係数を、目
標反復間隔における各回の反復のスケーリング係数とすることができる。ここでは、この
目標反復間隔における反復に対応するスケーリング係数が一致している。
ロセッサは、現在検証反復の量子化すべきデータに基づいて、現在検証反復に対応するオ
フセットを確定し、この現在検証反復に対応するオフセットを、目標反復間隔における各
反復のオフセットとすることができる。更に、プロセッサは、量子化すべきデータの全て
の要素における最小値と最大値を確定し、さらに小数点位置とスケジューリング係数等の
量子化パラメータを確定することができ、具体的に以上の説明を参照できる。この目標反
復間隔における反復に対応するオフセットは一致してもよい。
なわち、目標反復間隔に対応する検証反復は、目標反復間隔の開始反復であってもよい。
例えば、現在検証反復は100回目の反復であり、プロセッサは、量子化すべきデータの
データ変動幅に基づいて、目標反復間隔の反復間隔を3と確定すると、プロセッサは、こ
の目標反復間隔に、100回目の反復、101回目の反復、102回目の反復の3回の反
復を含むことができる。さらに、プロセッサは、100回目の反復に対応する量子化すべ
きデータと目標データビット幅に基づいて、この100回目の反復に対応する小数点位置
などの量子化パラメータを確定することができ、かつ、この100回目の反復に対応する
小数点位置などの量子化パラメータを用いて、100回目の反復、101回目の反復と1
02回目の反復に対して量子化を行うことができる。このように、101回目の反復と1
02回目の反復では、小数点位置などの量子化パラメータを計算する必要がなく、量子化
における計算量を減少し、量子化操作の効率を向上させる。
とができ、すなわち、この目標反復間隔に対応する検証反復は、この目標反復間隔の終了
反復であってもよい。たとえば、現在検証反復は100回目の反復であり、プロセッサは
、量子化すべきデータのデータの変動幅に基づいて、目標反復間隔の反復間隔を3に確定
する。この場合、プロセッサは、この目標反復間隔には101回目、102回目、103
回目の三回の反復が含まれると判断できる。さらに、プロセッサは、100回目の反復に
対応する量子化すべきデータと目標データビット幅に基づいて、この100回目の反復に
対応する小数点位置などの量子化パラメータを確定することができ、かつ、この100回
目の反復に対応する小数点位置などの量子化パラメータを用いて、101回目の反復、1
02回目の反復と103回目の反復に対して量子化を行うことができる。このように、1
02回目の反復と103回目の反復では、小数点位置などの量子化パラメータを計算する
必要がなく、量子化における計算量を減少し、量子化操作の効率を向上させる。
幅および量子化パラメータは、いずれも一致しており、すなわち、同じ目標反復間隔にお
ける各回の反復に対応するデータビット幅、小数点位置、スケーリング係数、およびオフ
セットはいずれも一定に保ち、これによって、ニューラルネットワークのトレーニングま
たは微調整の過程において、量子化すべきデータの量子化パラメータを頻繁に調整するこ
とを避け、量子化過程における計算量を減少し、量子化効率を高めることができる。しか
も、トレーニングまたは微調整の異なる段階でデータの変動幅に応じて量子化パラメータ
を動的に調整することで、量子化の精度を保証することができる。
ト幅は変化することができるが、目標反復間隔における各反復のデータビット幅は不変で
ある。このとき、目標反復間隔における反復に対応する小数点位置などの量子化パラメー
タが一致しなくてもよい。プロセッサはまた、現在検証反復に対応する目標データビット
幅に基づいて、目標反復間隔に対応するデータビット幅を確定することができ、ここでは
、目標反復間隔に対応するデータビット幅は一致する。その後、プロセッサは、この目標
反復間隔に対応するデータのビット幅と小数点位置の反復間隔に応じて、ニューラルネッ
トワークの演算における小数点位置などの量子化パラメータを調整することができる。図
3-15に示すように、上記操作装置S300は以下のステップをさらに含むことができ
る。
るデータビット幅を確定する。ここでは、この目標反復間隔における反復に対応するデー
タビット幅が一致している。すなわち、ニューラルネットワークの演算におけるデータビ
ット幅は、1つの目標反復間隔ごとに更新される。任意選択可能に、この目標反復間隔に
対応するデータビット幅は、現在検証反復の目標データビット幅であってもよい。この現
在検証反復の目標データのビット幅は、上記の操作S114およびS115を参照するこ
とができ、ここでは説明しない。
なわち、目標反復間隔に対応する検証反復は、目標反復間隔の開始反復であってもよい。
たとえば、現在検証反復は100回目の反復であり、プロセッサは、量子化すべきデータ
のデータの変動幅に基づいて、目標反復間隔の反復間隔を6に確定すると、プロセッサは
、この目標反復間隔には100回目の反復から105回目の反復の6回の反復が含まれる
と判断できる。この場合、プロセッサは100回目の反復の目標データビット幅を確定す
ることができ、101回目の反復から105回目の反復までは、この100回目の反復の
目標データビット幅を引き続き使用し、101回目の反復から105回目の反復まで、目
標データビット幅を計算する必要がなく、これにより、計算量を減少し、量子化効率およ
び演算効率を向上させる。その後、106回目の反復を現在検証反復とし、上記の目標反
復間隔の確定、およびデータビット幅の更新の操作を繰り返すことができる。
とができ、すなわち、この目標反復間隔に対応する検証反復は、この目標反復間隔の終了
反復であってもよい。たとえば、現在検証反復は100回目の反復であり、プロセッサは
、量子化すべきデータのデータの変動幅に基づいて、目標反復間隔の反復間隔を6に確定
する。この場合、プロセッサは、この目標反復間隔には101回目の反復から106回目
の反復の6回の反復が含まれると判断できる。この場合、プロセッサは100回目の反復
の目標データビット幅を確定することができ、101回目の反復から106回目の反復ま
では、この100回目の反復の目標データビット幅を引き続き使用し、101回目の反復
から106回目の反復まで、目標データビット幅を計算する必要がなく、これにより、計
算量を減少し、量子化効率および演算効率を向上させる。その後、106回目の反復を現
在検証反復とし、上記の目標反復間隔の確定、およびデータビット幅の更新の操作を繰り
返すことができる。
対応するデータビット幅に基づいて、前記目標反復間隔における反復に対応する小数点位
置を調整して、前記ニューラルネットワーク演算における小数点位置等の量子化パラメー
タを調整する。
反復間隔における反復の小数点位置は一致している。任意選択可能に、この小数点位置の
反復間隔は、ハイパーパラメータであってもよい。たとえば、この小数点位置反復間隔は
ユーザがカスタマイズして入力することができる。
数点位置の反復間隔が上記の目標反復間隔と同じである場合、プロセッサは、現在検証反
復でデータビット幅と小数点位置などの量子化パラメータを同期的に更新することができ
る。さらに任意選択可能に、目標反復間隔における反復に対応するスケーリング係数は一
致してもよい。更に、この目標反復間隔における反復に対応するオフセットは一致しても
よい。このとき、この目標反復間隔における反復に対応するデータビット幅と小数点位置
などの量子化パラメータはいずれも同じであり、これにより、計算量を減少し、量子化効
率と演算効率を向上させることができる。具体的な実現過程は上述した実施形態と基本的
に一致しており、上述した説明を参照することができ、ここではこれ以上説明しない。
復間隔に対応する検証反復においてデータビット幅と小数点位置などの量子化パラメータ
を更新し、その位置反復間隔で確定されたサブ検証反復において小数点位置などの量子化
パラメータを更新することができる。データビット幅が不変である場合、小数点位置など
の量子化パラメータは、量子化すべきデータに応じて微調整することができるので、量子
化の精度をさらに向上させるために、同じ目標反復間隔内で小数点位置等の量子化パラメ
ータを調整してもよい。
証反復を確定することができ、このサブ検証反復は、小数点位置を調整するために使用さ
れ、このサブ検証反復は、目標反復間隔における反復であってもよい。更に、プロセッサ
は、サブ検証反復の量子化すべきデータと目標反復間隔に対応するデータビット幅に基づ
いて、目標反復間隔における反復に対応する小数点位置を調整することができ、ここでは
、小数点位置の確定方式は、上記の式を参照してもよいが、ここではこれ以上記べない。
反復間隔に含まれる反復は100回目の反復から105回目の反復である。プロセッサが
取得した小数点位置反復間隔はIs1=3であると、現在検証反復から三回の反復ごとに
小数点位置を調整する。具体的には、プロセッサは、100回目の反復を上記のサブ検証
反復とし、この100回目の反復に対応する小数点位置s1を求め、100回目の反復、
101回目の反復、102回目の反復において共通小数点位置s1を共用して量子化を行
う。その後、プロセッサは、小数点位置の反復間隔Is1に応じて、103回目の反復を
上述したサブ検証反復とすることができ、また、プロセッサは、103回目の反復に対応
する量子化すべきデータと目標反復間隔に対応するデータビット幅nから、第2小数点位
置反復間隔に対応する小数点位置s2を確定することもできる。この場合、103回目の
反復から105回目の反復では、上記の小数点位置s2を共用して量子化を行うことがで
きる。本開示の実施形態では、上記の更新前の小数点位置s1と更新後の小数点位置s2
との値は、同じであってもよいし、異なっていてもよい。更に、プロセッサは、106回
目の反復で、改めて量子化すべきデータのデータ変動幅に応じて、次の目標反復間隔、お
よびこの次の目標反復間隔に対応するデータビット幅と小数点位置などの量子化パラメー
タを確定することができる。
反復間隔に含まれる反復は、101回目の反復から106回目の反復である。プロセッサ
が取得した小数点位置反復間隔はIs1=3であると、現在検証反復から三回の反復ごと
に小数点位置を調整する。具体的には、プロセッサは、現在検証反復の量子化すべきデー
タと現在検証反復に対応する目標データビット幅n1とに基づいて、第1小数点位置の反
復間隔に対応する小数点位置をs1として確定することができる。この場合、101回目
の反復、102回目の反復と103回目の反復では上記の小数点位置s1を共用して量子
化を行う。その後、プロセッサは、小数点位置の反復間隔Is1に応じて、104回目の
反復を上述したサブ検証反復とすることができ、また、プロセッサは、104回目の反復
に対応する量子化すべきデータと目標反復間隔に対応するデータビット幅n1から、第2
小数点位置反復間隔に対応する小数点位置s2を確定することもできる。この場合、10
4回目の反復から106回目の反復では、上記の小数点位置s2を共用して量子化を行う
ことができる。本開示の実施形態では、上記の更新前の小数点位置s1と更新後の小数点
位置s2との値は、同じであってもよいし、異なっていてもよい。更に、プロセッサは、
106回目の反復で、改めて量子化すべきデータのデータ変動幅に応じて、次の目標反復
間隔、およびこの次の目標反復間隔に対応するデータビット幅と小数点位置などの量子化
パラメータを確定することができる。
数点位置が1回更新される。任意選択可能に、この小数点位置の反復間隔は同じであって
もよいし、異なっていてもよい。たとえば、この目標反復間隔に含まれる少なくとも1つ
の小数点位置の反復間隔は、順に増加することができる。ここでは、単に本実施形態の実
施形態を例示し、本開示を限定するものではない。
もよい。さらに任意選択可能に、このスケーリング係数は、上述した小数点位置に同期し
て更新されてもよい。つまり、このスケーリング係数に対応する反復間隔は、上記の小数
点位置の反復間隔と同じであってもよい。つまり、プロセッサが小数点位置を更新確定す
るたびに、それに応じてスケーリング係数を更新確定する。
もよい。更に、このオフセットは、上述した小数点位置に同期して更新されてもよい。つ
まり、このオフセットに対応する反復間隔は、上記の小数点位置の反復間隔と同じであっ
てもよい。つまり、プロセッサが小数点位置を更新確定するたびに、それに応じてオフセ
ットを更新確定する。もちろん、このオフセットは上記の小数点位置またはデータビット
幅に非同期的に更新することもできるが、ここでは特に制限されない。更に、プロセッサ
は、量子化すべきデータの全ての要素における最小値と最大値を確定し、さらに小数点位
置とスケジューリング係数等の量子化パラメータを確定することができ、具体的に以上の
説明を参照できる。
ビット幅の変化とに基づいて、総合的に、量子化すべきデータのデータ変動幅を確定し、
この量子化すべきデータのデータ変動幅に基づいて、目標反復間隔を確定することができ
る。ここでは、この目標反復間隔は、データビット幅を更新確定するために使用できる。
つまり、プロセッサは、各目標反復間隔の検証反復において、データビット幅を更新確定
することができる。小数点位置は固定小数点データの精度を反映することができ、データ
ビット幅は点データのデータ表示範囲を反映することができるので、小数点位置の変動幅
と、量子化すべきデータのデータビット幅の変化とを統合することによって、量子化され
たデータは精度とデータ表示範囲の満足の両立が可能である。任意選択可能に、小数点位
置の変化幅は、上述した第1誤差を用いて表すことができ、ビット幅の変化は、上記の量
子化誤差に基づいて確定することができる。具体的には、図3-16に示すように、上記
操作S600は以下を含んでもよい。
この小数点位置の変動幅は、量子化すべきデータのデータ変動幅を表すことができる。具
体的には、上記の第1誤差の算出方法については上記の操作S110の説明を参照できる
。
に基づいて確定することができる。具体的には、図3-16に示すように、上記操作S5
00は、以下を含んでもよい。
ける量子化すべきデータとに基づいて量子化誤差を確定する。ここでは、前記現在検証反
復の量子化すべきデータは、初期データビット幅に基づいて、前記現在検証反復の量子化
すべきデータを量子化することで得られる。ここでは、具体的な量子化誤差の算出方法に
ついては、上記の操作S114の説明を参照でき、ここでは説明しない。
量子化誤差と正の相関を有する。
diffupdate2=θ*diff bit 2 式(
44)
子化誤差であり、θはハイパーパラメータである。
標誤差に基づいて目標反復間隔を確定する。任意選択可能に、目標誤差は第1誤差と第2
誤差を加重平均して算出することができる。例えば、目標誤差=K*第1誤差+(1-K
)*第2誤差であり、ここでは、Kはハイパーパラメータである。その後、プロセッサは
、この目標誤差に基づいて目標反復間隔を確定し、目標反復間隔は、この目標誤差と負の
相関を有する。つまり、目標の誤差が大きいほど、目標反復間隔は小さい。
いて確定されてもよく、このとき、第1誤差または第2誤差の重みは0である。具体的に
は、図3-17に示すように、上記操作S600は、以下を含んでもよい。
date2の大きさを比較してもよく、第1誤差diffupdate1が第2誤差di
ffupdate2より大きい場合、この目標誤差は第1誤差diffupdate1 に
等しい。第1誤差diffupdate1が第2誤差より小さい場合、この目標誤差は第
2誤差diffupdate2 に等しい。第1誤差diffupdate1が第2誤差に
等しい場合、この目標誤差は第1誤差diffupdate1または第2誤差diffu
pdate2であってもよい。即ち、目標誤差diffupdateは、下式で確定する
ことができる。
diffupdate=max(diffupdate1,diffupdate
2) 式(45)
差であり、diffupdate2は第2誤差である。
標誤差は前記目標反復間隔と負の相関がある。具体的には、目標反復間隔は以下の方式で
確定することができ、
I=β/diffupdate-γ 式(4
6)
δとγはハイパーパラメータであってもよい。
ビット幅が可変であり、第2誤差によりデータビット幅の変化傾向を評価することができ
る。この状況で、図3-17に示すように、プロセッサは、目標反復間隔を確定した後、
操作S630を実行し、目標反復間隔における反復に対応するデータビット幅を確定する
ことができ、ここでは、この目標反復間隔における反復に対応するデータビット幅は一致
している。具体的に、プロセッサは、現在検証反復の量子化すべきデータに基づいて、目
標反復間隔に対応するデータビット幅を確定する。すなわち、ニューラルネットワークの
演算におけるデータビット幅は、1つの目標反復間隔ごとに更新される。任意選択可能に
、この目標反復間隔に対応するデータビット幅は、現在検証反復の目標データビット幅で
あってもよい。この現在検証反復の目標データのビット幅は、上記の操作S114および
S115を参照することができ、ここでは説明しない。
なわち、目標反復間隔に対応する検証反復は、目標反復間隔の開始反復であってもよい。
たとえば、現在検証反復は100回目の反復であり、プロセッサは、量子化すべきデータ
のデータの変動幅に基づいて、目標反復間隔の反復間隔を6に確定すると、プロセッサは
、この目標反復間隔には100回目の反復から105回目の反復の6回の反復が含まれる
と判断できる。この場合、プロセッサは100回目の反復の目標データビット幅を確定す
ることができ、101回目の反復から105回目の反復までは、この100回目の反復の
目標データビット幅を引き続き使用し、101回目の反復から105回目の反復まで、目
標データビット幅を計算する必要がなく、これにより、計算量を減少し、量子化効率およ
び演算効率を向上させる。その後、106回目の反復を現在検証反復とし、上記の目標反
復間隔の確定、およびデータビット幅の更新の操作を繰り返すことができる。
とができ、すなわち、この目標反復間隔に対応する検証反復は、この目標反復間隔の終了
反復であってもよい。たとえば、現在検証反復は100回目の反復であり、プロセッサは
、量子化すべきデータのデータの変動幅に基づいて、目標反復間隔の反復間隔を6に確定
する。この場合、プロセッサは、この目標反復間隔には101回目の反復から106回目
の反復の6回の反復が含まれると判断できる。この場合、プロセッサは100回目の反復
の目標データビット幅を確定することができ、101回目の反復から106回目の反復ま
では、この100回目の反復の目標データビット幅を引き続き使用し、101回目の反復
から106回目の反復まで、目標データビット幅を計算する必要がなく、これにより、計
算量を減少し、量子化効率および演算効率を向上させる。その後、106回目の反復を現
在検証反復とし、上記の目標反復間隔の確定、およびデータビット幅の更新の操作を繰り
返すことができる。
確定して、目標反復間隔に基づいてニューラルネットワークの演算における量子化パラメ
ータを調整することができる。即ち、このニューラルネットワーク演算における小数点位
置等の量子化パラメータはデータビット幅と同期して更新することができる。
もよい。具体的には、プロセッサは、現在検証反復の量子化すべきデータと、現在検証反
復に対応する目標データのビット幅とに基づいて、現在検証反復に対応する小数点位置を
確定し、かつ現在検証反復に対応する小数点位置を、この目標検証反復に対応する小数点
位置として使用し、ここでは、この目標反復間隔における反復に対応する小数点位置を引
き続き使用することができる。すなわち、目標反復間隔における各反復は、いずれも現在
検証反復の小数点位置などの量子化パラメータを引き続き使用する。これにより、反復ご
とに量子化パラメータを更新調整することを避けて、量子化における計算量を減少し、量
子化操作の効率を向上させる。
よい。プロセッサは、現在検証反復の量子化すべきデータに基づいて、現在検証反復に対
応するスケーリング係数を確定し、この現在検証反復に対応するスケーリング係数を、目
標反復間隔における各回の反復のスケーリング係数とすることができる。ここでは、この
目標反復間隔における反復に対応するスケーリング係数が一致している。
ロセッサは、現在検証反復の量子化すべきデータに基づいて、現在検証反復に対応するオ
フセットを確定し、この現在検証反復に対応するオフセットを、目標反復間隔における各
反復のオフセットとすることができる。更に、プロセッサは、量子化すべきデータの全て
の要素における最小値と最大値を確定し、さらに小数点位置とスケジューリング係数等の
量子化パラメータを確定することができ、具体的に以上の説明を参照できる。この目標反
復間隔における反復に対応するオフセットは一致してもよい。
なわち、目標反復間隔に対応する検証反復は、目標反復間隔の開始反復であってもよい。
例えば、現在検証反復は100回目の反復であり、プロセッサは、量子化すべきデータの
データ変動幅に基づいて、目標反復間隔の反復間隔を3と確定すると、プロセッサは、こ
の目標反復間隔に、100回目の反復、101回目の反復、102回目の反復の3回の反
復を含むことができる。さらに、プロセッサは、100回目の反復に対応する量子化すべ
きデータと目標データビット幅に基づいて、この100回目の反復に対応する小数点位置
などの量子化パラメータを確定することができ、かつ、この100回目の反復に対応する
小数点位置などの量子化パラメータを用いて、100回目の反復、101回目の反復と1
02回目の反復に対して量子化を行うことができる。このように、101回目の反復と1
02回目の反復では、小数点位置などの量子化パラメータを計算する必要がなく、量子化
における計算量を減少し、量子化操作の効率を向上させる。
とができ、すなわち、この目標反復間隔に対応する検証反復は、この目標反復間隔の終了
反復であってもよい。たとえば、現在検証反復は100回目の反復であり、プロセッサは
、量子化すべきデータのデータの変動幅に基づいて、目標反復間隔の反復間隔を3に確定
する。この場合、プロセッサは、この目標反復間隔には101回目、102回目、103
回目の三回の反復が含まれると判断できる。さらに、プロセッサは、100回目の反復に
対応する量子化すべきデータと目標データビット幅に基づいて、この100回目の反復に
対応する小数点位置などの量子化パラメータを確定することができ、かつ、この100回
目の反復に対応する小数点位置などの量子化パラメータを用いて、101回目の反復、1
02回目の反復と103回目の反復に対して量子化を行うことができる。このように、1
02回目の反復と103回目の反復では、小数点位置などの量子化パラメータを計算する
必要がなく、量子化における計算量を減少し、量子化操作の効率を向上させる。
幅および量子化パラメータは、いずれも一致しており、すなわち、同じ目標反復間隔にお
ける各回の反復に対応するデータビット幅、小数点位置、スケーリング係数、およびオフ
セットはいずれも一定に保ち、これによって、ニューラルネットワークのトレーニングま
たは微調整の過程において、量子化すべきデータの量子化パラメータを頻繁に調整するこ
とを避け、量子化過程における計算量を減少し、量子化効率を高めることができる。しか
も、トレーニングまたは微調整の異なる段階でデータの変動幅に応じて量子化パラメータ
を動的に調整することで、量子化の精度を保証することができる。
置反復間隔に基づいて目標反復間隔における量子化パラメータを確定して、ニューラルネ
ットワークの演算における量子化パラメータを調整することができる。即ち、このニュー
ラルネットワーク演算における小数点位置等の量子化パラメータは、データビット幅と非
同期的に更新してもよく、プロセッサは、目標反復間隔の検証反復においてデータビット
幅と小数点位置等の量子化パラメータを更新してもよく、プロセッサは、さらに小数点位
置反復間隔によって単独で目標反復間隔における反復に対応する小数点位置を更新しても
よい。
標反復間隔に対応するデータビット幅を確定することができ、ここでは、目標反復間隔に
対応するデータビット幅は一致する。その後、プロセッサは、この目標反復間隔に対応す
るデータのビット幅と小数点位置の反復間隔に応じて、ニューラルネットワークの演算に
おける小数点位置などの量子化パラメータを調整することができる。すなわち、図3-1
7に示すように、目標反復間隔に対応するデータビット幅を確定した後、プロセッサは、
操作S640を実行してもよい。取得された小数点位置の反復間隔と前記目標反復間隔に
対応するデータビット幅に基づいて、前記目標反復間隔における反復に対応する小数点位
置を調整して、前記ニューラルネットワーク演算における小数点位置を調整する。ここで
、小数点位置の反復間隔には少なくとも1回の反復が含まれ、前記小数点位置の反復間隔
における反復の小数点位置は一致している。任意選択可能に、この小数点位置の反復間隔
は、ハイパーパラメータであってもよい。たとえば、この小数点位置反復間隔は、ユーザ
がカスタマイズして入力することができる。
数点位置の反復間隔が上記の目標反復間隔と同じである場合、プロセッサは、現在検証反
復でデータビット幅と小数点位置などの量子化パラメータを同期的に更新することができ
る。さらに任意選択可能に、目標反復間隔における反復に対応するスケーリング係数は一
致してもよい。更に、この目標反復間隔における反復に対応するオフセットは、一致して
もよい。このとき、この目標反復間隔における反復に対応するデータビット幅と小数点位
置などの量子化パラメータはいずれも同じであり、これにより、計算量を減少し、量子化
効率と演算効率を向上させることができる。具体的な実現過程は上述した実施形態と基本
的に一致しており、上述した説明を参照することができ、ここではこれ以上説明しない。
復間隔に対応する検証反復においてデータビット幅と小数点位置などの量子化パラメータ
を更新し、その位置反復間隔で確定されたサブ検証反復において小数点位置などの量子化
パラメータを更新することができる。データビット幅が不変である場合、小数点位置など
の量子化パラメータは、量子化すべきデータに応じて微調整することができるので、量子
化の精度をさらに向上させるために、同じ目標反復間隔内で小数点位置等の量子化パラメ
ータを調整してもよい。
証反復を確定することができ、このサブ検証反復は、小数点位置を調整するために使用さ
れ、このサブ検証反復は、目標反復間隔における反復であってもよい。更に、プロセッサ
は、サブ検証反復の量子化すべきデータと目標反復間隔に対応するデータビット幅に基づ
いて、目標反復間隔における反復に対応する小数点位置を調整することができ、ここでは
、小数点位置の確定方式は、上記の式(2)または(14)を参照してもよいが、ここで
はこれ以上記べない。
反復間隔に含まれる反復は100回目の反復から105回目の反復である。プロセッサが
取得した小数点位置反復間隔はIs1=3であると、現在検証反復から三回の反復ごとに
小数点位置を調整する。具体的には、プロセッサは、100回目の反復を上記のサブ検証
反復とし、この100回目の反復に対応する小数点位置s1を求め、100回目の反復、
101回目の反復、102回目の反復において共通小数点位置s1を共用して量子化を行
う。その後、プロセッサは、小数点位置の反復間隔Is1に応じて、103回目の反復を
上述したサブ検証反復とすることができ、また、プロセッサは、103回目の反復に対応
する量子化すべきデータと目標反復間隔に対応するデータビット幅nから、第2小数点位
置反復間隔に対応する小数点位置s2を確定することもできる。この場合、103回目の
反復から105回目の反復では、上記の小数点位置s2を共用して量子化を行うことがで
きる。本開示の実施形態では、上記の更新前の小数点位置s1と更新後の小数点位置s2
との値は、同じであってもよいし、異なっていてもよい。更に、プロセッサは、106回
目の反復で、改めて量子化すべきデータのデータ変動幅に応じて、次の目標反復間隔、お
よびこの次の目標反復間隔に対応するデータビット幅と小数点位置などの量子化パラメー
タを確定することができる。
反復間隔に含まれる反復は101回目の反復から106回目の反復である。プロセッサが
取得した小数点位置反復間隔はIs1=3であると、現在検証反復から三回の反復ごとに
小数点位置を調整する。具体的には、プロセッサは、現在検証反復の量子化すべきデータ
と現在検証反復に対応する目標データビット幅n1とに基づいて、第1小数点位置の反復
間隔に対応する小数点位置をs1として確定することができる。この場合、101回目の
反復、102回目の反復と103回目の反復では、上記の小数点位置s1を共用して量子
化を行う。その後、プロセッサは、小数点位置の反復間隔Is1に応じて、104回目の
反復を上述したサブ検証反復とすることができ、また、プロセッサは、104回目の反復
に対応する量子化すべきデータと目標反復間隔に対応するデータビット幅n1から、第2
小数点位置反復間隔に対応する小数点位置s2を確定することもできる。この場合、10
4回目の反復から106回目の反復では、上記の小数点位置s2を共用して量子化を行う
ことができる。本開示の実施形態では、上記の更新前の小数点位置s1と更新後の小数点
位置s2との値は、同じであってもよいし、異なっていてもよい。更に、プロセッサは、
106回目の反復で、改めて量子化すべきデータのデータ変動幅に応じて、次の目標反復
間隔、およびこの次の目標反復間隔に対応するデータビット幅と小数点位置などの量子化
パラメータを確定することができる。
数点位置が1回更新される。任意選択可能に、この小数点位置の反復間隔は同じであって
もよいし、異なっていてもよい。たとえば、この目標反復間隔に含まれる少なくとも1つ
の小数点位置の反復間隔は、順に増加することができる。ここでは、単に本実施形態の実
施形態を例示し、本開示を限定するものではない。
もよい。さらに任意選択可能に、このスケーリング係数は、上述した小数点位置に同期し
て更新されてもよい。つまり、このスケーリング係数に対応する反復間隔は、上記の小数
点位置の反復間隔と同じであってもよい。つまり、プロセッサが小数点位置を更新確定す
るたびに、それに応じてスケーリング係数を更新確定する。
もよい。更に、このオフセットは、上述した小数点位置に同期して更新されてもよい。つ
まり、このオフセットに対応する反復間隔は、上記の小数点位置の反復間隔と同じであっ
てもよい。つまり、プロセッサが小数点位置を更新確定するたびに、それに応じてオフセ
ットを更新確定する。もちろん、このオフセットは上記の小数点位置またはデータビット
幅に非同期的に更新することもできるが、ここでは特に制限されない。更に、プロセッサ
は、量子化すべきデータの全ての要素における最小値と最大値を確定し、さらに小数点位
置とスケジューリング係数等の量子化パラメータを確定することができ、具体的に以上の
説明を参照できる。
量子化パラメータの間では非同期であってもよい。すなわち、小数点位置の反復間隔、ス
ケーリング係数の反復間隔、およびオフセットの反復間隔のうちの1つ、または3つ全部
が異なる。ここでは、小数点位置の反復間隔とスケーリング係数の反復間隔は、目標反復
間隔以下である。オフセットの反復間隔は、目標反復間隔より小さくてもよい。オフセッ
トは、量子化すべきデータの分布にのみ関係するため、任意の実施形態では、このオフセ
ットは、目標反復間隔と完全に非同期であってもよい。すなわち、オフセットの反復間隔
は、目標反復間隔よりも大きくてもよい。
または微調整の過程で使用されてもよい。これにより、ニューラルネットワークの微調整
またはトレーニング過程に関与する演算データの量子化パラメータに対する調整を実現し
て、ニューラルネットワークの演算過程に関与する演算データの量子化の精度と効率を高
める。この演算データは、ニューロンデータ、重みデータ、または勾配データのうちの少
なくとも1つであってもよい。図3-5に示すように、量子化すべきデータのデータ変動
曲線から分かるように、トレーニングまたは微調整の初期段階では、各反復の量子化すべ
きデータ間の差が大きく、量子化すべきデータのデータ変動幅が激しい。このとき、目標
反復間隔の値を小さくすることで、目標反復間隔における量子化パラメータをタイムリー
に更新し、量子化の精度を保証することができる。トレーニングまたは微調整の中期段階
において、量子化すべきデータのデータ変動幅は次第に緩やかになり、この場合、目標反
復間隔の値を大きくすることで、量子化パラメータの頻繁な更新を回避し、量子化効率お
よび演算効率を向上させることができる。トレーニングまたは微調整の後期段階で、この
時、ニューラルネットワークのトレーニングまたは微調整は安定になり(即ち、ニューラ
ルネットワークの順方向演算結果が予め設定された参考値に近い時、このニューラルネッ
トワークのトレーニングや微調整は安定になる)、この場合も目標反復間隔の値を大きく
し続けて、量子化効率や演算効率をさらに向上させることができる。上記のデータの変動
傾向に基づいて、ニューラルネットワークのトレーニングまたは微調整の異なる段階で異
なる方式を採用して目標反復間隔を確定することができ、これにより、量子化の精度を保
証した上で、量子化効率と演算効率を高めることができる。
調整に使用される場合に、この方法は、以下を含むことができる。
定する。
能に、この第1プリセット反復はハイパーパラメータであってもよく、この第1プリセッ
ト反復は量子化すべきデータのデータ変動曲線に基づいて確定されてもよく、この第1プ
リセット反復はユーザがカスタマイズして設定してもよい。任意選択可能に、この第1プ
リセット反復は、1つのトレーニング周期(epoch)に含まれる反復総数より小さく
てもよく、ここでは、一つのトレーニング周期とは、データセットにおけるすべての量子
化すべきデータが一回の順方向演算と一回の逆方向演算を完了することを指す。
し、第1プリセット反復間隔を前記目標反復間隔とし、前記第1プリセット反復間隔に基
づいて量子化パラメータを調整することができる。
の第1プリセット反復と第1プリセット反復間隔との対応関係に基づいて、第1プリセッ
ト反復間隔を確定することができる。任意選択可能に、この第1プリセット反復間隔はハ
イパーパラメータであってもよく、この第1プリセット反復間隔はユーザがカスタマイズ
して入力するものであってもよい。このとき、プロセッサは直接、ユーザが入力した第1
プリセット反復と第1プリセット反復間隔を読み取り、この第1プリセット反復間隔に基
づいてニューラルネットワーク演算における量子化パラメータを更新することができる。
本開示の実施形態では、プロセッサは、量子化すべきデータのデータ変動幅に基づいて、
目標反復間隔を確定することを必要としない。
反復間隔が5であると、現在反復が100回目の反復以下の場合、第1プリセット反復間
隔に基づいて量子化パラメータを更新することができる。即ち、プロセッサは、ニューラ
ルネットワークのトレーニングまたは微調整の1回目の反復から100回目の反復におい
て、5回目の反復ごとに一回量子化パラメータを更新することを確定できる。具体的には
、プロセッサは、1回目の反復に対応するデータビット幅n1および小数点位置s1など
の量子化パラメータを確定し、このデータビット幅n1および小数点位置s1などの量子
化パラメータを用いて、1回目の反復から5回目の反復までの量子化すべきデータを量子
化することができる。すなわち、1回目の反復から5回目の反復までは同じ量子化パラメ
ータを用いることができる。その後、プロセッサは、6回目の反復に対応するデータビッ
ト幅n2および小数点位置s2等の量子化パラメータを確定し、このデータビット幅n2
および小数点位置s2等の量子化パラメータを用いて、6回目の反復から10回目の反復
までの量子化すべきデータを量子化することができる。すなわち、6回目から10回目ま
では同じ量子化パラメータを用いることができる。同様に、プロセッサは、上記のように
100回目の反復が完了するまで量子化することができる。ここで、各反復間隔における
データビット幅および小数点位置などの量子化パラメータの確定方法については上記の説
明を参照でき、ここでは説明しない。
ット反復間隔が1であると、現在反復が100回目の反復以下の場合、第1プリセット反
復間隔に基づいて量子化パラメータを更新することができる。即ち、プロセッサは、ニュ
ーラルネットワークのトレーニングまたは微調整の1回目の反復から100回目の反復に
おいて、各反復ごとに量子化パラメータを更新することを確定できる。具体的には、プロ
セッサは、1回目の反復に対応するデータビット幅n1および小数点位置s1などの量子
化パラメータを確定し、このデータビット幅n1および小数点位置s1などの量子化パラ
メータを用いて、1回目の反復の量子化すべきデータを量子化することができる。その後
、プロセッサは、2回目の反復に対応するデータビット幅n2および小数点位置s2等の
量子化パラメータを確定し、このデータビット幅n2および小数点位置s2等の量子化パ
ラメータを用いて2回目の反復の量子化すべきデータを量子化することができ、……。同
様に、プロセッサは、100回目の反復のデータビット幅n100および小数点位置s1
00等の量子化パラメータを確定し、このデータビット幅n100と小数点位置s100
等の量子化パラメータを用いて、100回目の反復の量子化すべきデータを量子化するこ
とができる。ここで、各反復間隔におけるデータビット幅および小数点位置などの量子化
パラメータの確定方法については、上記の説明を参照でき、ここでは説明しない。
たが、他の代替的な実施形態では、各目標反復間隔において、プロセッサはまた、小数点
位置の変動幅に基づいて小数点位置の反復間隔を確定し、この小数点位置の反復間隔に基
づいて小数点位置等の量子化パラメータを更新することができる。
ワークのトレーニングまたは微調整が中期段階にあると示すことができ、このとき、履歴
反復の量子化すべきデータのデータ変動幅を得て、この量子化すべきデータのデータ変動
幅に基づいて目標反復間隔を確定し、この目標反復間隔は上記の第1プリセット反復間隔
より大きくてもよく、これによって、量子化パラメータの更新回数を減少し、量子化効率
および演算効率を向上させる。具体的には、前記現在反復が第1プリセット反復よりも大
きい場合、プロセッサは操作S713を実行し、前記量子化すべきデータのデータ変動幅
に基づいて目標反復間隔を確定し、前記目標反復間隔に基づいて量子化パラメータを調整
することができる。
1プリセット反復間隔が1であると、現在反復が100回目の反復以下の場合、第1プリ
セット反復間隔に基づいて量子化パラメータを更新することができる。即ち、プロセッサ
は、ニューラルネットワークのトレーニングまたは微調整の1回目の反復から100回目
の反復において、各反復ごとに量子化パラメータを更新し、具体的な実施形態は上記の説
明を参照できる。現在反復が100回目の反復より大きい場合、プロセッサは、現在反復
の量子化すべきデータとその前の履歴反復の量子化すべきデータに基づいて、量子化すべ
きデータのデータ変動幅を確定し、この量子化すべきデータのデータ変動幅に基づいて目
標反復間隔を確定することができる。具体的には、現在反復が100回目の反復より大き
い場合、プロセッサは、適応的に現在反復に対応するデータビット幅を調整し、現在反復
に対応する目標データビット幅を取得し、この現在反復に対応する目標データビット幅を
目標反復間隔のデータビット幅とすることができ、ここで、目標反復間隔における反復に
対応するデータのビット幅が一致している。同時に、プロセッサは、現在反復に対応する
目標データビット幅と量子化すべきデータに基づき、現在反復に対応する小数点位置を確
定し、かつ現在反復に対応する小数点位置に基づいて第1誤差を確定する。プロセッサは
さらに、現在反復に対応する量子化すべきデータに基づいて、量子化の誤差を確定し、量
子化誤差に基づいて第2誤差を確定することができる。その後、プロセッサは、第1誤差
と第2誤差に基づいて目標反復間隔を確定し、この目標反復間隔は、上記の第1プリセッ
ト反復間隔よりも大きくてもよい。更に、プロセッサは、目標反復間隔における小数点位
置またはスケジューリング係数等の量子化パラメータを確定でき、具体的な確定方式は、
上文における説明を参照できる。
データの変動幅に基づいて、目標反復間隔の反復間隔を3に確定すると、プロセッサは、
この目標反復間隔には100回目、101回目、102回目の三回の反復が含まれると判
断できる。プロセッサはまた、100回目の反復の量子化すべきデータに基づいて量子化
誤差を確定し、量子化誤差に基づいて第2誤差と100回目の反復に対応する目標データ
ビット幅を確定し、この目標データビット幅を目標反復間隔に対応するデータビット幅と
することもできる。ここでは、100回目の反復、101回目の反復と102回目の反復
に対応するデータビット幅は、いずれもこの100回目の反復に対応する目標データビッ
ト幅である。プロセッサはまた、この100回目の反復の量子化すべきデータとこの10
0回目の反復に対応する目標データビット幅に基づいてこの100回目の反復に対応する
小数点位置とスケジューリング係数等の量子化パラメータを確定することができる。その
後、この100回目の反復に対応する量子化パラメータを用いて100回目の反復、10
1回目の反復と102回目の反復を量子化する。
行することができ、即ちプロセッサはさらに、現在反復が第2プリセット反復より大きい
かどうかを確定することができる。ここでは、前記第2プリセット反復は前記第1プリセ
ット反復より大きく、前記第2プリセット反復間隔は前記第1プリセット反復間隔より大
きい。任意選択可能に、上記第2プリセット反復はハイパーパラメータであってもよく、
第2プリセット反復は少なくとも1つのトレーニング周期の反復総数より大きくてもよい
。任意選択可能に、第2プリセット反復は、量子化すべきデータのデータ変動曲線によっ
て確定できる。任意選択可能に、第2プリセット反復はユーザがカスタマイズして入力す
るものであってもよい。
第2プリセット反復間隔を前記目標反復間隔とし、前記第2プリセット反復間隔に基づい
て前記ニューラルネットワーク量子化過程におけるパラメータを調整することができる。
現在反復が第1プリセット反復より大きく、かつ、現在反復が第2プリセット反復より小
さい場合、プロセッサは上述した操作S713を実行し、前記量子化すべきデータのデー
タ変化幅に基づいて目標反復間隔を確定し、前記目標反復間隔に基づいて量子化パラメー
タを調整することができる。
2プリセット反復と第2プリセット反復間隔との対応関係によって、第2プリセット反復
間隔を確定し、この第2プリセット反復間隔は、第1プリセット反復間隔よりも大きい。
任意選択可能に、前記ニューラルネットワークの収束度がプリセット条件を満たす場合、
前記現在反復が第2プリセット反復以上であると確定する。例えば、現在反復の順方向演
算結果がプリセット参考値に近い場合、このニューラルネットワークの収束度がプリセッ
ト条件を満たすと確定し、このとき、現在反復が第2プリセット反復以上であると確定で
きる。または、現在反復に対応する損失値がプリセット閾値以下である場合、このニュー
ラルネットワークの収束度がプリセット条件を満たすことを確定することができる。
、この第2プリセット反復間隔は、少なくとも一つのトレーニング周期の反復総数以上で
あってもよい。任意選択可能に、この第2プリセット反復間隔はユーザがカスタマイズし
て設定してもよい。プロセッサは直接、ユーザが入力した第2プリセット反復と第2プリ
セット反復間隔を読み取り、この第2プリセット反復間隔に基づいてニューラルネットワ
ーク演算における量子化パラメータを更新することができる。例えば、この第2プリセッ
ト反復間隔は、1つのトレーニング周期の反復総数に等しくてもよく、即ち各トレーニン
グ周期(epoch)ごとに一回量子化パラメータを更新する。
ごとに現在データビット幅が調整される必要があるかどうかを確定することができる。現
在データビット幅を調整する必要があれば、プロセッサは上記の操作S714から操作S
713に切り替えてデータビット幅を改めて確定して、データビット幅が量子化すべきデ
ータの需要を満たすことができる。
必要があるかどうかを判断することができる。プロセッサはさらに、上記操作S715を
実行し、第2誤差がプリセット誤差値より大きいかどうかを確定し、前記現在反復が第2
プリセット反復以上でありかつ前記第2誤差がプリセット誤差値より大きい場合、操作S
713に切り替えて実行し、前記量子化すべきデータのデータ変動幅に基づいて反復間隔
を確定して、前記反復間隔に基づいて前記データビット幅を改めて確定する。現在反復が
第2プリセット反復以上であり、且つ第2誤差がプリセット誤差値以下である場合、引き
続き操作S714を実行し、第2プリセット反復間隔を前記目標反復間隔とし、前記第2
プリセット反復間隔に基づいて前記ニューラルネットワーク量子化過程におけるパラメー
タを調整する。ここでは、予め設定された誤差値は、量子化誤差に対応する予め設定され
た閾値に基づいて確定されてもよい。第2誤差が予め設定された誤差値よりも大きい場合
は、データビット幅をさらに調整する必要があることが示され、プロセッサは、前記反復
間隔に基づいてデータビット幅を改めて確定するために、前記量子化すべきデータのデー
タ変動幅に基づいて反復間隔を確定することができる。
反復が第2プリセット反復以上の場合、プロセッサは第2プリセット反復間隔に応じて量
子化パラメータを更新することができ、即ち各トレーニング周期(epoch)ごとに一
回量子化パラメータを更新する。このとき、各トレーニング周期の開始反復は1つ検証反
復として、各トレーニング周期の開始反復において、プロセッサはこの検証反復の量子化
すべきデータに基づいて量子化誤差を確定し、量子化誤差に基づいて第2誤差を確定し、
下式によって第2誤差がプリセット誤差値より大きいかどうかを確定する。
あり、θはハイパーパラメータであり、Tはプリセット誤差値である。任意選択可能に、
このプリセット誤差値は、第1プリセット閾値をハイパーパラメータで除算するものであ
ってもよい。当然ながら、このプリセット誤差値はハイパーパラメータであってもよい。
例えば、このプリセット誤差値は下式で算出できる:T=th/10、ここでは、thは
第1プリセット閾値であり、ハイパーパラメータの値は10とする。
幅がプリセット要求を満たせない可能性があると示し、このとき、第2プリセット反復間
隔を用いて量子化パラメータを更新することなく、プロセッサは量子化すべきデータのデ
ータ変動幅に基づいて目標反復間隔を確定して、データビット幅がプリセット要求を満た
すことを保証する。即ち、第2誤差diffupdate2がプリセット誤差値Tより大
きい場合、プロセッサは上記の操作S714から上記の操作S713に切り替える。
ビット幅を調整する必要があるか否かを判定することができる。例えば、第2プリセット
反復間隔は、1つのトレーニング周期の反復総数である。現在反復が第2プリセット反復
以上の場合、プロセッサは第2プリセット反復間隔に応じて量子化パラメータを更新する
ことができ、即ち各トレーニング周期(epoch)ごとに一回量子化パラメータを更新
する。ここでは、各トレーニング周期の開始反復は1つの検証反復とする。各トレーニン
グ周期の開始反復において、プロセッサはこの検証反復の量子化すべきデータに基づいて
量子化誤差を確定し、この量子化誤差が第1プリセット閾値以上の場合、データビット幅
がプリセット要求を満たせない可能性があると示し、即ちプロセッサは上記の操作S71
4から上記の操作S713に切り替える。
の量子化パラメータは表示装置によって表示することができる。このとき、ユーザは表示
装置によりニューラルネットワークの演算における量子化パラメータを知ることができ、
ユーザはプロセッサが確定した量子化パラメータを適応的に修正することもできる。同様
に、上記のデータビット幅と目標反復間隔なども表示装置により表示することができる。
この場合、ユーザは、表示装置によりニューラルネットワークの演算における目標反復間
隔とデータビット幅などのパラメータを知ることができ、また、ユーザは、プロセッサが
確定した目標反復間隔とデータビット幅などのパラメータを適応的に修正することもでき
る。
み合わせとして記載しているが、当業者であれば周知するように、本開示は、本開示にし
たがって一部のステップが他の順で用いられたり、または同時に実施されたりすることが
できるから、以上に記載の動作の順で制限されるものではない。次に、当業者であれば分
かるように、本明細書に記載された実施形態は全てオプション実施形態に該当し、係る動
作およびモジュールは必ずしも本開示に必須ではない。
200を提供し、この量子化パラメータ調整装置200は、一プロセッサに設置されても
よい。例えば、この量子化パラメータ調整装置200は通用プロセッサに設けられてもよ
く、また、この量子化パラメータ調整装置は人工知能プロセッサに設けられてもよい。図
3-20に示すように、上記装置は、
と、
この目標反復間隔に基づいて、ニューラルネットワーク演算における量子化パラメータを
調整し、ここでは、前記目標反復間隔は、少なくとも1回の反復を含み、前記ニューラル
ネットワークの量子化パラメータは、前記ニューラルネットワークの演算における量子化
すべきデータに対する量子化動作を実現するためのものであるように構成される反復間隔
確定モジュール220とを含む。
量子化すべきデータに対応する量子化データにおける小数点の位置である。図3-21に
示すように、上記装置は、
に基づいて、前記目標反復間隔における反復に対応する小数点位置を確定して、前記ニュ
ーラルネットワーク演算における小数点位置を調整するように構成される量子化パラメー
タ確定モジュール230をさらに含む。
量子化すべきデータに対応する量子化データにおける小数点の位置である。図3-23、
図3-24に示すように、前記装置は、
データビット幅を確定し、ここでは、目標反復間隔に対応するデータビット幅は一致する
ように構成されるデータビット幅確定モジュール240と、
いて、前記目標反復間隔における反復に対応する小数点位置を調整して、前記ニューラル
ネットワーク演算における小数点位置を調整するように構成される量子化パラメータ確定
モジュール230とをさらに含み、
反復間隔における反復の小数点位置は一致している。
リング係数は前記小数点位置と同期して更新される。
前記小数点位置と同期して更新される。
て量子化誤差を確定し、前記現在検証反復の量子化データは、前記現在検証反復の量子化
すべきデータを量子化することによって得られるように構成される量子化誤差確定ユニッ
ト241と、
ように構成されるデータビット幅確定ユニット242とを含む。
て前記現在検証反復に対応する目標データビット幅を確定するように構成され、具体的に
は、
ビット幅を大きくして、前記現在検証反復に対応する目標データビット幅を得るように構
成され、または、
前記量子化誤差が第2プリセット閾値以下である場合、前記現在検証反復に対応するデ
ータビット幅を小さくして、前記現在検証反復の目標データビット幅を得るように構成さ
れる。
リセット閾値以上の場合、前記現在検証反復に対応するデータビット幅を大きくして、前
記現在検証反復に対応する目標データビット幅を得るように構成され、具体的には、
長さに基づいて第1中間データビット幅を確定し、
ける量子化すべきデータと前記現在検証反復の量子化データに基づいて、量子化誤差を確
定することを戻して実行するように構成される。ここでは、前記現在検証反復の量子化デ
ータは前記第1中間データビット幅が前記現在検証反復の量子化すべきデータを量子化す
ることで得られるものである。
リセット閾値以下であれば、前記現在検証反復に対応するデータビット幅を小さくて、前
記現在検証反復に対応する目標データビット幅を得るように構成され、具体的には、
前記量子化誤差が第2プリセット閾値以下の場合、第2プリセットビット幅のステップ
長さに基づいて第2中間データビット幅を確定し、
ける量子化すべきデータと前記現在検証反復の量子化データに基づいて、量子化誤差を確
定することを戻して実行し、ここでは、前記現在検証反復の量子化データは前記第2中間
データビット幅が前記現在検証反復の量子化すべきデータを量子化することで得られるよ
うに構成される。
こで、前記小数点位置の変動幅は、前記量子化すべきデータのデータ変動幅を表すために
用いることができ、前記小数点位置の変動幅は、前記量子化すべきデータのデータ変動幅
と正の相関がある。
211は、
の反復間隔に対応する検証反復である前記一つ前の検証反復前の履歴反復に対応する小数
点位置とによって第1平均値を確定するように構成される第1平均値ユニット2110と
、
位置とに基づいて第2平均値を確定し、前記現在検証反復に対応する小数点位置と、前記
現在検証反復前の履歴反復の小数点位置とによって第2平均値を確定するように構成され
る第2平均値モジュール2111と、
値によって確定するように構成される第1誤差モジュール2112とを含む。
は、前記現在検証反復の前の前記プリセット数の検証反復に基づいて確定され、
基づいて前記第2平均値を確定するように構成される。
に対応する小数点位置および前記第1平均値に基づいて前記第2平均値を確定するように
構成される。
復のデータビット幅調整値に基づいて、前記第2平均値を更新するように構成され、
タビット幅と初期データビット幅に基づいて確定される。
復のデータビット幅調整値に基づいて、前記第2平均値を更新するように構成され、具体
的に、
前記現在検証反復のデータビット幅調整値に基づいて前記第2平均値を減少し、
記現在検証反復のデータビット幅調整値に基づいて前記第2平均値を増加するように構成
される。
うに構成される第1間隔モジュールを含む、ことを特徴とする。
変動傾向を取得し、前記小数点位置の変動幅と前記データビット幅の変化傾向によって、
前記量子化すべきデータのデータ変動幅を確定するように構成される。
幅を表すための第1誤差およびデータビット幅の変動傾向を表すための第2誤差によって
前記目標反復間隔を確定するように構成される。
差に基づいて、前記目標反復間隔時を確定するように構成され、具体的には、
るように構成される。
化誤差は、前記現在検証反復における量子化すべきデータと前記現在検証反復の量子化デ
ータによって確定され、前記第2誤差は、前記量子化誤差と正の相関がある。
実現するために用いられ、前記反復間隔確定モジュール220はさらに、
タ変動幅によって目標反復間隔を確定し、前記目標反復間隔によって前記量子化パラメー
タを調整するように構成される。
1プリセット反復以下の場合、前記第1プリセット反復間隔を前記目標反復間隔とし、前
記第1プリセット反復間隔によって前記量子化パラメータを調整するように構成される。
復間隔とし、前記第2プリセット反復間隔によって前記量子化パラメータを調整し、
現在反復が第2プリセット反復以上であると確定し、
反復間隔は前記第1プリセット反復間隔よりも大きいように構成される。
リセット反復以上であり、かつ第2誤差がプリセット誤差値より大きい場合、前記量子化
すべきデータのデータ変動幅によって反復間隔を確定し、前記反復間隔によって前記デー
タビット幅を再確定するように構成される。
における各操作の実現過程とほぼ一致し、具体的には以上の記載を参照することができ、
ここでは、再び説明しない。なお、上述した装置の実施形態は概略的なものに過ぎず、本
開示の装置は他の方法で実施することもできることを理解されたい。例えば、上述した実
施形態に記載のユニット/モジュールの分割は、単に論理的機能分割に過ぎず、実際に実
現される場合には別の分割方式が可能である。例えば、複数のユニット、モジュール、ま
たはコンポーネントが組み合わされてもよく、または別のシステムに統合されてもよく、
またはいくつかの特徴が無視されてもよく、または実行されなくてもよい。上記一体化さ
れたユニット/モジュールは、ハードウェアの形態で実現することができ、ソフトウェア
プログラムモジュールの形態で実現することもできる。前記一体化されたユニット/モジ
ュールがハードウェアの形態で実装される場合、このハードウェアはデジタル回路、アナ
ログ回路などであってもよい。ハードウェア構造の物理的実装は、トランジスタ、メモリ
スタなどを含むが、これらに限定されない。
態で実装され、別個の製品として販売または使用される場合、1つのコンピュータ可読メ
モリに記憶されてもよい。このような理解に基づいて、本開示の技術の解決手段は、本質
的に、または、従来技術に寄与する部分、または該技術の解決手段の全てまたは一部は、
ソフトウェア製品の形態で具現化されてよく、該コンピュータソフトウェア製品はメモリ
に記憶されており、コンピュータ装置(パーソナルコンピュータ、サーバ、またはネット
ワーク装置等であってよい)に、本開示の各実施形態に記載の方法の全部または一部のス
テップを実行させるためのいくつかのコマンドを含む。上記のメモリは、Uディスク、読
み取り専用メモリ(ROM、Read-Only Memory)、ランダムアクセスメ
モリ(RAM、Random Access Memory)、リムーバブルハードディ
スク、磁気ディスク、または光ディスクなどの、プログラムコードを記憶可能な様々な媒
体を含む。
され、前記コンピュータプログラムが実行されると、以上に記載のいずれか一項に記載の
方法のステップが実現される。具体的に、このコンピュータプログラムがプロセッサまた
は装置によって実行されると、以下の方法が実現される:
この目標反復間隔に基づいて、ニューラルネットワーク演算における量子化パラメータを
調整することとを含み、ここでは、前記目標反復間隔は、少なくとも1回の反復を含み、
前記ニューラルネットワークの量子化パラメータは、前記ニューラルネットワークの演算
における量子化すべきデータに対する量子化動作を実現するためのものである。
致することが理解されるべきであり、詳細については、上述の説明を参照されたいが、こ
こでは説明を省略する。
では詳述されない部分は、他の実施形態の関連説明を参照することができる。上記実施形
態の各技術的特徴は、記載を簡潔にするために任意の組み合わせが可能であり、上記実施
形態における各技術的特徴の全ての可能な組み合わせについては記載されていないが、こ
れらの技術的特徴の組み合わせに矛盾がない限り、本明細書に記載された範囲とみなすべ
きである。
開示される。
ス、インターフェースデバイス、制御デバイス、および以上に記載の人工知能チップを含
む。ここでは、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および前
記インターフェイスデバイスにそれぞれ接続され、前記記憶デバイスはデータを記憶する
ためのものであり、前記インターフェイスデバイスは前記人工知能チップと外部装置との
間のデータ伝送を実現するためのものであり、前記制御デバイスは、前記人工知能チップ
の状態を監視するためのものである。
図3-25を参照すると、前記PCBボードは、前記チップ389に加えて他の構成部品
を含んでもよいが、この構成部品は、記憶デバイス390、インターフェースデバイス3
91と制御デバイス392を含むが、これらに限定されない。
憶に利用される。前記記憶デバイスは、複数組の記憶ユニット393を含んでもよい。各
組の前記記憶ユニットは前記人工知能チップとバスによって接続される。なお、各組の前
記記憶ユニットは、DDR SDRAM(英語:Double DataRate SD
RAM、ダブルレート同期ダイナミックランダムアクセスメモリ)であってもよいことが
理解されるであろう。
きる。DDRは、クロックパルスの立ち上がりエッジおよび立ち下がりエッジでデータを
読み出すことを可能にする。DDRのスピードは、標準SDRAMの2倍である。一実施
形態では、前記記憶装置は、4組の前記記憶ユニットを含むことができる。前記記憶ユニ
ットの各組は、複数のDDR4粒子(チップ)を含むことができる。一実施形態では、前
記人工知能チップは、内部に4つの72ビットDDR4コントローラを含むことができ、
前記72ビットDDR4コントローラのうち64bitはデータを伝送するために用いら
れ、8bitはECCチェックに用いられる。前記記憶ユニットにDDR4-3200粒
子が使用される場合、データ伝送の理論帯域幅は25600MB/sに達することが理解
されるであろう。
期ダイナミックランダムアクセスメモリを含む。DDRは、1クロックサイクル内で2回
データを送信することができる。前記チップにはDDRを制御するコントローラが設けら
れ、前記記憶ユニット毎のデータ伝送とデータ記憶の制御に用いられる。
ンターフェースデバイスは、前記人工知能チップと外部装置(例えば、サーバまたはコン
ピュータ)との間のデータ伝送を可能にするために使用される。例えば、一実施形態では
、前記インターフェースデバイスは、標準PCIEインターフェースであってもよい。例
えば、処理すべきデータは、標準PCIEインターフェースを介してサーバによってチッ
プに伝送され、データ転送を可能にする。好ましくは、理論帯域幅は、PCIE 3.0
X16インターフェース伝送を使用する場合、16000MB/sに達することができる
。別の実施形態では、前記インターフェースデバイスは、他のインターフェースであって
もよく、本開示は、上記の他のインターフェースの具体的な表現形態を限定するものでは
なく、前記インターフェースユニットは、中継機能を実現することができる。さらに、前
記人工知能チップの計算結果は、以前として前記インターフェースデバイスによって外部
装置(例えば、サーバ)に伝送される。
前記人工知能チップの状態を監視するためのものである。具体的には、前記人工知能チッ
プおよび前記制御デバイスは、SPIインターフェースを介して電気的に接続することが
できる。前記制御デバイスは、マイクロコントローラ(Micro Controlle
r Unit)を含むことができる。例えば、前記人工知能チップは、複数の処理チップ
、複数の処理コア、または複数の処理回路を含むことができ、複数の負荷を駆動すること
ができる。したがって、前記人工知能チップは、多負荷および軽負荷などの異なる動作状
態にあってもよい。前記制御装置によって前記人工知能チップにおける複数の処理チップ
、複数の処理コアまたは複数の処理回路の動作状態の調節を実現することができる。
機器は、データ処理装置、ロボット、コンピュータ、プリンタ、スキャナ、タブレットコ
ンピュータ、スマート端末、携帯電話、ドライブレコーダ、ナビゲータ、センサ、カメラ
ランズ、サーバ、クラウドサーバ、カメラ、ビデオカメラ、プロジェクタ、腕時計、ヘッ
ドホン、モバイル記憶装置、ウェアラブルデバイス、乗り物、家電製品、および/または
医療デバイスを含む。
、電子レンジ、冷蔵庫、炊飯器、加湿器、洗濯機、電灯、ガスレンジ、レンジフードを含
む。前記医療装置は、核磁気共鳴装置、Bモード超音波機器および/または心電計を含む
。
この目標反復間隔に基づいて、ニューラルネットワーク演算における量子化パラメータを
調整することとを含み、ここでは、前記目標反復間隔は、少なくとも1回の反復を含み、
前記ニューラルネットワークの量子化パラメータは、前記ニューラルネットワークの演算
における量子化すべきデータに対する量子化動作を実現するためのものであるニューラル
ネットワークの量子化パラメータの調整方法。
データに対応する量子化データにおける小数点の位置であり、前記方法は、
に基づいて、前記目標反復間隔における反復に対応する小数点位置を確定して、前記ニュ
ーラルネットワーク演算における小数点位置を調整することをさらに含み、
1に記載の方法。
データに対応する量子化データにおける小数点の位置であり、前記方法はさらに、
データビット幅を確定し、ここでは、目標反復間隔における反復に対応するデータビット
幅は一致することと、
いて、前記目標反復間隔における反復に対応する小数点位置を調整して、前記ニューラル
ネットワーク演算における小数点位置を調整することとを含み、
の反復間隔における反復の小数点位置は一致している項目C1に記載の方法。
に記載の方法。
は前記小数点位置と同期して更新される項目C1~C4のいずれか一項に記載の方法。
位置と同期して更新される項目C1~C5のいずれか一項に記載の方法。
て量子化誤差を確定し、前記現在検証反復の量子化データは、前記現在検証反復の量子化
すべきデータを量子化することによって得られることと、
こととをさらに含む項目C1~C6のいずれか一項に記載の方法。
定することは、
ビット幅を大きくして、前記現在検証反復に対応する目標データビット幅を得ることと、
または、
前記量子化誤差が第2プリセット閾値以下である場合、前記現在検証反復に対応するデ
ータビット幅を小さくして、前記現在検証反復の目標データビット幅を得ることとを含む
項目C1~C7のいずれか一項に記載の方法。
データビット幅を大きくして、前記現在検証反復に対応する目標データビット幅を得るこ
とは、
長さに基づいて第1中間データビット幅を確定し、
ける量子化すべきデータと前記現在検証反復の量子化データに基づいて、量子化誤差を確
定することを戻して実行することを含み、ここでは、前記現在検証反復の量子化データは
前記第1中間データビット幅が前記現在検証反復の量子化すべきデータを量子化すること
で得られるものである項目C8に記載の方法。
るデータビット幅を減少することは、
長さに基づいて第2中間データビット幅を確定することと、
ける量子化すべきデータと前記現在検証反復の量子化データに基づいて、量子化誤差を確
定することを戻して実行することとを含み、ここでは、前記現在検証反復の量子化データ
は前記第2中間データビット幅が前記現在検証反復の量子化すべきデータを量子化するこ
とで得られるものである項目C8に記載の方法。
量子化すべきデータのデータ変動幅を表すために用いることができ、前記小数点位置の変
動幅は、前記量子化すべきデータのデータ変動幅と正の相関がある項目C1~C10のい
ずれか一項に記載の方法。
の反復間隔に対応する検証反復である前記一つ前の検証反復前の履歴反復に対応する小数
点位置とによって第1平均値を確定することと、
れる、前記現在検証反復に対応する小数点位置と、前記現在検証反復前の履歴反復の小数
点位置とによって第2平均値を確定することと、
値によって確定することとを含む、項目C1~C11のいずれか一項に記載の方法。
って確定される、前記現在検証反復に対応する小数点位置と、前記現在検証反復前の履歴
反復の小数点位置とによって第2平均値を確定することは、
は、前記現在検証反復の前の前記プリセット数の検証反復に基づいて確定され、
基づいて前記第2平均値を確定することを含む項目C12に記載の方法。
小数点位置とによって第2平均値を確定することは、
均値を確定することを含む項目C12に記載の方法。
新することを含み、ここでは、前記現在検証反復のデータビット幅調整値は、前記現在検
証反復の目標データビット幅と初期データビット幅に基づいて確定される項目C12に記
載の方法。
記第2平均値を更新することは、
前記現在検証反復のデータビット幅調整値に基づいて前記第2平均値を減少し、
前記現在検証反復のデータビット幅調整値に基づいて前記第2平均値を増加することを含
む項目C15に記載の方法。
は、
とを含む、ことを特徴とする項目C12に記載の方法。
データのデータ変動幅を確定することをさらに含む、ことを特徴とするC11~C17の
いずれか一項に記載の方法。
は、
を表すための第2誤差によって前記目標反復間隔を確定することとをさらに含む、ことを
特徴とするC18に記載の方法。
ることは、
こととを含む、ことを特徴とするC19に記載の方法。
の量子化データによって確定され、前記第2誤差は前記量子化誤差と正の相関がある、こ
とを特徴とするC19またはC20に記載の方法。
いられ、
タ変動幅によって目標反復間隔を確定し、前記目標反復間隔によって前記量子化パラメー
タを調整することをさらに含む、ことを特徴とするC1~C21のいずれか一項に記載の
方法。
記目標反復間隔とし、前記第1プリセット反復間隔によって前記量子化パラメータを調整
することをさらに含む、ことを特徴とする項目C22に記載の方法。
復間隔とし、前記第2プリセット反復間隔によって前記量子化パラメータを調整すること
をさらに含み、
プリセット反復間隔は前記第1プリセット反復間隔よりも大きい項目C22またはC23
に記載の方法。
復が第2プリセット反復以上であると確定することをさらに含む、項目C24に記載の方
法。
大きい場合、前記量子化すべきデータのデータ変動幅によって反復間隔を確定し、前記反
復間隔によって前記データビット幅を再確定することをさらに含む、ことを特徴とするC
24に記載の方法。
うちの少なくとも1つである項目C1~C26のいずれか一項に記載の方法。
モリおよびプロセッサを含み、前記メモリにコンピュータプログラムが記憶され、前記プ
ロセッサは前記コンピュータプログラムを実行すると、項目C1~C27のいずれか一項
に記載の方法のステップが実施されるニューラルネットワークの量子化パラメータ調整装
置。
ュータプログラムが記憶され、前記コンピュータプログラムが実行されると、項目C1~
C27のいずれか一項に記載の方法のステップが実現されるコンピュータ可読記憶媒体。
この目標反復間隔に基づいて、ニューラルネットワーク演算における量子化パラメータを
調整し、ここでは、前記目標反復間隔は、少なくとも1回の反復を含み、前記ニューラル
ネットワークの量子化パラメータは、前記ニューラルネットワークの演算における量子化
すべきデータに対する量子化動作を実現するためのものであるように構成される反復間隔
確定モジュールとを含むニューラルネットワークの量子化パラメータ調整装置。
きデータに対応する量子化データにおける小数点の位置であり、前記装置は、
に基づいて、前記目標反復間隔における反復に対応する小数点位置を確定して、前記ニュ
ーラルネットワーク演算における小数点位置を調整するように構成される量子化パラメー
タ確定モジュールをさらに含み、
30に記載の装置。
きデータに対応する量子化データにおける小数点の位置であり、前記装置は、
データビット幅を確定し、ここでは、目標反復間隔に対応するデータビット幅は一致する
ように構成されるデータビット幅確定モジュールと、
いて、前記目標反復間隔における反復に対応する小数点位置を調整して、前記ニューラル
ネットワーク演算における小数点位置を調整するように構成される量子化パラメータ確定
モジュールとを含み、
反復間隔における反復の小数点位置は一致している項目C30に記載の装置。
の装置。
数は前記小数点位置と同期して更新される項目C31~C33のいずれか一項に記載の装
置。
点位置と同期して更新される項目C31~C33のいずれか一項に記載の装置。
タと前記現在検証反復の量子化データとに基づいて量子化誤差を確定し、前記現在検証反
復の量子化データは、前記現在検証反復の量子化すべきデータを量子化することによって
得られるように構成される量子化誤差確定ユニットと、
ように構成されるデータビット幅確定ユニットとを含む項目C31~C33のいずれか一
項に記載の装置。
反復に対応する目標データビット幅を確定するように構成され、具体的には、
ビット幅を大きくして、前記現在検証反復に対応する目標データビット幅を得るように構
成され、または、
ータビット幅を小さくして、前記現在検証反復の目標データビット幅を得るように構成さ
れる項目C36に記載の装置。
上の場合、前記現在検証反復に対応するデータビット幅を大きくして、前記現在検証反復
に対応する目標データビット幅を得るように構成され、具体的には、
長さに基づいて第1中間データビット幅を確定し、
ける量子化すべきデータと前記現在検証反復の量子化データに基づいて量子化誤差を確定
することを戻して実行するように構成され、ここでは、前記現在検証反復の量子化データ
は前記第1中間データビット幅が前記現在検証反復の量子化すべきデータを量子化するこ
とで得られるものである項目C37に記載の装置。
下であれば、前記現在検証反復に対応するデータビット幅を小さくて、前記現在検証反復
に対応する目標データビット幅を得るように構成され、具体的には、
長さに基づいて第2中間データビット幅を確定し、
ける量子化すべきデータと前記現在検証反復の量子化データに基づいて、量子化誤差を確
定することを戻して実行するように構成され、ここでは、前記現在検証反復の量子化デー
タは前記第2中間データビット幅が前記現在検証反復の量子化すべきデータを量子化する
ことで得られるものである項目C37に記載の装置。
取得モジュールを含み、ここで、前記小数点位置の変動幅は、前記量子化すべきデータの
データ変動幅を表すために用いることができ、前記小数点位置の変動幅は、前記量子化す
べきデータのデータ変動幅と正の相関がある項目C30~C39のいずれか一項に記載の
装置。
の反復間隔に対応する検証反復である前記一つ前の検証反復前の履歴反復に対応する小数
点位置とによって第1平均値を確定するように構成される第1平均値ユニットと、
位置とに基づいて第2平均値を確定し、前記現在検証反復に対応する小数点位置は、前記
現在検証反復に対応する目標データビット幅と量子化すべきデータによって確定されるよ
うに構成される第2平均値モジュールと、
値によって確定するように構成される第1誤差モジュールとを含む項目C40に記載の方
法。
は、前記現在検証反復の前の前記プリセット数の検証反復に基づいて確定され、
基づいて前記第2平均値を確定するように構成される項目C41に記載の装置。
位置および前記第1平均値に基づいて前記第2平均値を確定するように構成される項目C
41に記載の装置。
幅調整値に基づいて、前記第2平均値を更新するように構成され、
タビット幅と初期データビット幅に基づいて確定される項目C41に記載の装置。
調整値に基づいて、前記第2平均値を更新するように構成され、具体的に、
前記現在検証反復のデータビット幅調整値に基づいて前記第2平均値を減少し、
前記現在検証反復のデータビット幅調整値に基づいて前記第2平均値を増加するように構
成される項目C44に記載の装置。
ある前記目標反復間隔を確定するように構成される項目C41に記載の装置。
ュールは、用前記データビット幅の変動傾向を取得し、前記小数点位置の変動幅と前記デ
ータビット幅の変化傾向によって、前記量子化すべきデータのデータ変動幅を確定するよ
うに構成される項目C40に記載の装置。
およびデータビット幅の変動傾向を表すための第2誤差によって前記目標反復間隔を確定
するように構成される項目C47に記載の装置。
記目標反復間隔を確定するように構成され、具体的には、
ように構成されるC48に記載の装置。
の量子化データによって確定され、前記第2誤差は前記量子化誤差と正の相関がある、項
目C48またはC49に記載の装置。
ために用いられ、前記反復間隔確定モジュールはさらに、
タ変動幅によって目標反復間隔を確定し、前記目標反復間隔によって前記量子化パラメー
タを調整するように構成される項目C30~C50のいずれか一項に記載の装置。
復以下の場合、前記第1プリセット反復間隔を前記目標反復間隔とし、前記第1プリセッ
ト反復間隔によって前記量子化パラメータを調整するように構成される項目C51に記載
の装置。
復間隔とし、前記第2プリセット反復間隔によって前記量子化パラメータを調整するよう
に構成され、
現在反復が第2プリセット反復以上であると確定し、
反復間隔は前記第1プリセット反復間隔よりも大きい項目C51または項目C52に記載
の装置。
上であり、かつ第2誤差がプリセット誤差値より大きい場合、前記量子化すべきデータの
データ変動幅によって反復間隔を確定し、前記反復間隔によって前記データビット幅を再
確定するように構成される項目C53に記載の装置。
なく、開示された実施形態に限定されるものではない。説明された実施形態の範囲および
精神から逸脱することなく、多くの修正および変更が当業者にとっては明らかであろう。
本明細書で使用される用語の選択は、様々な実施形態の原理、実際の応用、または市場に
おける技術の改良を最もよく説明すること、または本明細書で開示される様々な実施形態
を当業者が理解することができるようにすることを目的とする。
8)を提供した。
Claims (18)
- ニューラルネットワークの量子化パラメータの調整方法であって、
量子化すべきデータのデータ変動幅を取得することと、
前記量子化すべきデータのデータ変動幅に基づいて、目標反復間隔を確定することにより、前記目標反復間隔に基づいてニューラルネットワーク演算の量子化パラメータを調整することと、を含み、
前記目標反復間隔は少なくとも1回の反復を含み、前記ニューラルネットワークの量子化パラメータは、前記ニューラルネットワークの演算における量子化すべきデータに対する量子化動作を実現するためのものである、ことを特徴とするニューラルネットワークの量子化パラメータの調整方法。 - 前記量子化パラメータは小数点位置を含み、前記小数点位置は、前記量子化すべきデータに対応する量子化データにおける小数点の位置であり、
前記ニューラルネットワークの量子化パラメータの調整方法は、
現在検証反復に対応する目標データビット幅および前記現在検証反復の量子化すべきデータに基づいて、前記目標反復間隔における反復に対応する小数点位置を確定して、前記ニューラルネットワーク演算における小数点位置を調整することをさらに含み、
前記目標反復間隔における反復に対応する小数点位置は一致している、ことを特徴とする請求項1に記載のニューラルネットワークの量子化パラメータの調整方法。 - 前記量子化パラメータは小数点位置を含み、前記小数点位置は、前記量子化すべきデータに対応する量子化データにおける小数点の位置であり、
前記ニューラルネットワークの量子化パラメータの調整方法は、
現在検証反復に対応する目標データビット幅に基づいて、前記目標反復間隔に対応するデータビット幅を確定することと、
取得された小数点位置の反復間隔と前記目標反復間隔に対応するデータビット幅に基づいて、前記目標反復間隔における反復に対応する小数点位置を調整し、前記ニューラルネットワーク演算における小数点位置を調整することとを含み、
前記目標反復間隔における反復に対応するデータビット幅は一致しており、
前記小数点位置の反復間隔には少なくとも一回の反復が含まれ、前記小数点位置の反復間隔における反復の小数点位置は一致しており、前記小数点位置の反復間隔は前記目標反復間隔以下である、ことを特徴とする請求項1に記載のニューラルネットワークの量子化パラメータの調整方法。 - 前記量子化パラメータはスケーリング係数をさらに含み、前記スケーリング係数は前記小数点位置と同期して更新され、および/または、
前記量子化パラメータはオフセットをさらに含み、前記オフセットは前記小数点位置と同期して更新される、ことを特徴とする請求項2~3のいずれか一項に記載のニューラルネットワークの量子化パラメータの調整方法。 - 前記ニューラルネットワークの量子化パラメータの調整方法は、
前記現在検証反復の量子化すべきデータと、前記現在検証反復の量子化すべきデータを量子化することによって得られる前記現在検証反復の量子化データとに基づいて量子化誤差を確定することと、
前記量子化誤差に基づき、前記現在検証反復に対応する目標データビット幅を確定することとをさらに含む、ことを特徴とする請求項2~3のいずれか一項に記載のニューラルネットワークの量子化パラメータの調整方法。 - 前記量子化誤差に基づき、前記現在検証反復に対応する目標データビット幅を確定することは、
前記量子化誤差が第1プリセット閾値以上である場合、前記現在検証反復に対応するデータビット幅を大きくして、前記現在検証反復に対応する目標データビット幅を取得すること、または、
前記量子化誤差が第2プリセット閾値以下である場合、前記現在検証反復に対応するデータビット幅を小さくして、前記現在検証反復に対応する目標データビット幅を取得することを含む、ことを特徴とする請求項5に記載のニューラルネットワークの量子化パラメータの調整方法。 - 前記量子化誤差が第1プリセット閾値以上である場合、前記現在検証反復に対応するデータビット幅を大きくして、前記現在検証反復に対応する目標データビット幅を取得することは、
前記量子化誤差が第1プリセット閾値以上である場合、第1プリセットビット幅のステップ長さに基づいて第1中間データビット幅を確定することと、
前記量子化誤差が前記第1プリセット閾値より小さくなるまで、前記現在検証反復における量子化すべきデータと前記現在検証反復の量子化データに基づいて量子化誤差を確定することを戻して実行することとを含み、
前記現在検証反復の量子化データは、前記第1中間データビット幅に基づいて前記現在検証反復の量子化すべきデータを量子化することで得られるものであり、
前記量子化誤差が第2プリセット閾値以下である場合、前記現在検証反復に対応するデータビット幅を小さくすることは、
前記量子化誤差が第2プリセット閾値以下である場合、第2プリセットビット幅のステップ長さに基づいて第2中間データビット幅を確定することと、
前記量子化誤差が前記第2プリセット閾値より大きくなるまで、前記現在検証反復における量子化すべきデータと前記現在検証反復の量子化データに基づいて量子化誤差を確定することを戻して実行することとを含み、
前記現在検証反復の量子化データは、前記第2中間データビット幅に基づいて前記現在検証反復の量子化すべきデータを量子化することで得られるものである、ことを特徴とする請求項6に記載のニューラルネットワークの量子化パラメータの調整方法。 - 前記量子化すべきデータのデータ変動幅を取得することは、
小数点位置の変動幅を取得することを含み、前記小数点位置の変動幅は、前記量子化すべきデータのデータ変動幅を表すために用いられ、前記小数点位置の変動幅は、前記量子化すべきデータのデータ変動幅と正の相関がある、ことを特徴とする請求項2~7のいずれか一項に記載のニューラルネットワークの量子化パラメータの調整方法。 - 前記小数点位置の変動幅を取得することは、
前記現在検証反復前の1つの前の検証反復に対応する小数点位置、および前記1つの前の検証反復前の履歴反復に対応する小数点位置に基づいて、第1平均値を確定することと、
前記現在検証反復に対応する小数点位置、および前記現在検証反復の前の履歴反復の小数点位置に基づいて、第2平均値を確定することと、
前記第1平均値および前記第2平均値に基づいて、前記小数点位置の変動幅を表すための第1誤差を確定することとを含み、
前記1つの前の検証反復は前記目標反復間隔の前の1つ前の反復間隔に対応する検証反復であり、
前記現在検証反復に対応する小数点位置は、前記現在検証反復に対応する目標データビット幅および量子化すべきデータによって確定される、ことを特徴とする請求項8に記載のニューラルネットワークの量子化パラメータの調整方法。 - 前記現在検証反復に対応する小数点位置、および前記現在検証反復の前の履歴反復の小数点位置に基づいて、第2平均値を確定することは、
プリセット数の中間スライディング平均値を取得することと、
前記現在検証反復の小数点位置および前記プリセット数の中間スライディング平均値に基づいて、第2平均値を確定することとを含み、
前記中間スライディング平均値のそれぞれは、前記現在検証反復の前の前記プリセット数の検証反復に基づいて確定され、または、
前記現在検証反復に対応する小数点位置、および前記現在検証反復の前の履歴反復の小数点位置に基づいて、第2平均値を確定することは、
前記現在検証反復に対応する小数点位置および前記第1平均値に基づいて、前記第2平均値を確定することを含む、ことを特徴とする請求項9に記載のニューラルネットワークの量子化パラメータの調整方法。 - 前記ニューラルネットワークの量子化パラメータの調整方法は、
取得された前記現在検証反復のデータビット幅調整値に基づいて、前記第2平均値を更新することをさらに含み、
前記現在検証反復のデータビット幅調整値は、前記現在検証反復の目標データビット幅と初期データビット幅に基づいて確定される、ことを特徴とする請求項9に記載のニューラルネットワークの量子化パラメータの調整方法。 - 取得された前記現在検証反復のデータビット幅調整値に基づいて、前記第2平均値を更新することは、
前記現在検証反復のデータビット幅調整値がプリセットパラメータより大きい場合、前記現在検証反復のデータビット幅調整値に基づいて前記第2平均値を減少することと、
前記現在検証反復のデータビット幅調整値がプリセットパラメータよりも小さい場合、
前記現在検証反復のデータビット幅調整値に基づいて前記第2平均値を増加することとを含む、ことを特徴とする請求項11に記載のニューラルネットワークの量子化パラメータの調整方法。 - 前記量子化すべきデータのデータ変動幅に基づいて目標反復間隔を確定することは、
前記第1誤差によって前記目標反復間隔を確定することを含み、前記目標反復間隔は前記第1誤差と負の相関がある、ことを特徴とする請求項9に記載のニューラルネットワークの量子化パラメータの調整方法。 - 量子化すべきデータのデータ変動幅を取得することは、
データビット幅の変化傾向を取得することと、
前記小数点位置の変動幅および前記データビット幅の変化傾向に基づいて、前記量子化すべきデータのデータ変動幅を確定することとをさらに含む、ことを特徴とする請求項8~13のいずれか一項に記載のニューラルネットワークの量子化パラメータの調整方法。 - 前記量子化すべきデータのデータ変動幅に基づいて目標反復間隔を確定することは、
取得した、小数点位置の変動幅を表すための第1誤差およびデータビット幅の変化傾向を表すための第2誤差に基づいて、前記目標反復間隔を確定することをさらに含み、前記第2誤差は量子化誤差によって確定され、
取得した前記第2誤差および前記第1誤差に基づいて前記目標反復間隔を確定することは、
前記第1誤差と前記第2誤差のうちの最大値を目標誤差とすることと、
前記目標誤差に基づいて前記目標反復間隔を確定することとを含み、前記目標誤差は前記目標反復間隔と負の相関がある、ことを特徴とする請求項14に記載のニューラルネットワークの量子化パラメータの調整方法。 - 前記ニューラルネットワークの量子化パラメータの調整方法は、ニューラルネットワークのトレニングまたは微調整に利用され、
現在反復が第1プリセット反復よりも大きい場合、前記量子化すべきデータのデータ変動幅によって目標反復間隔を確定し、前記目標反復間隔によって前記量子化パラメータを調整することと、
前記現在反復が前記第1プリセット反復以下である場合、第1プリセット反復間隔を前記目標反復間隔とし、前記第1プリセット反復間隔によって前記量子化パラメータを調整することと、
前記現在反復が第2プリセット反復以上である場合、第2プリセット反復間隔を前記目標反復間隔とし、前記第2プリセット反復間隔によって前記量子化パラメータを調整することと、
前記現在反復が第2プリセット反復以上であり、かつ第2誤差がプリセット誤差値より大きい場合、前記量子化すべきデータのデータ変動幅によって反復間隔を確定し、前記反復間隔によって前記データビット幅を再確定することとをさらに含み、
前記第2プリセット反復は前記第1プリセット反復よりも大きく、前記第2プリセット反復間隔は前記第1プリセット反復間隔よりも大きい、ことを特徴とする請求項3に記載のニューラルネットワークの量子化パラメータの調整方法。 - メモリおよびプロセッサを備え、前記メモリはコンピュータプログラムを格納し、前記プロセッサが前記コンピュータプログラムを実行すると、請求項1から16のいずれか一項に記載のニューラルネットワークの量子化パラメータの調整方法のステップが実施される、ことを特徴とするニューラルネットワークの量子化パラメータの調整装置。
- コンピュータプログラムを格納するコンピュータ可読記憶媒体であって、プロセッサによって、前記コンピュータプログラムが実行されると、請求項1から16のいずれか一項に記載のニューラルネットワークの量子化パラメータの調整方法のステップが実施される、ことを特徴とするコンピュータ可読記憶媒体。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910505239 | 2019-06-12 | ||
CN201910505239.7 | 2019-06-12 | ||
CN201910515355 | 2019-06-14 | ||
CN201910515355.7 | 2019-06-14 | ||
CN201910528537 | 2019-06-18 | ||
CN201910528537.8 | 2019-06-18 | ||
CN201910570125.0 | 2019-06-27 | ||
CN201910570125 | 2019-06-27 | ||
JP2020573207A JP2021530769A (ja) | 2019-06-12 | 2019-09-19 | ニューラルネットワークにおける量子化パラメータの確定方法および関連製品 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020573207A Division JP2021530769A (ja) | 2019-06-12 | 2019-09-19 | ニューラルネットワークにおける量子化パラメータの確定方法および関連製品 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2021177369A JP2021177369A (ja) | 2021-11-11 |
JP2021177369A5 JP2021177369A5 (ja) | 2022-02-07 |
JP7166704B2 true JP7166704B2 (ja) | 2022-11-08 |
Family
ID=69185300
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020573207A Pending JP2021530769A (ja) | 2019-06-12 | 2019-09-19 | ニューラルネットワークにおける量子化パラメータの確定方法および関連製品 |
JP2020219684A Active JP7167405B2 (ja) | 2019-06-12 | 2020-12-28 | ニューラルネットワークにおける量子化パラメータの確定方法および関連製品 |
JP2020219685A Active JP7166704B2 (ja) | 2019-06-12 | 2020-12-28 | ニューラルネットワークにおける量子化パラメータの確定方法および関連製品 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020573207A Pending JP2021530769A (ja) | 2019-06-12 | 2019-09-19 | ニューラルネットワークにおける量子化パラメータの確定方法および関連製品 |
JP2020219684A Active JP7167405B2 (ja) | 2019-06-12 | 2020-12-28 | ニューラルネットワークにおける量子化パラメータの確定方法および関連製品 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11675676B2 (ja) |
EP (4) | EP3770823A4 (ja) |
JP (3) | JP2021530769A (ja) |
KR (3) | KR102656332B1 (ja) |
CN (14) | CN112085184B (ja) |
WO (2) | WO2020248423A1 (ja) |
Families Citing this family (32)
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 |
US11507370B2 (en) | 2018-02-13 | 2022-11-22 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Method and device for dynamically adjusting decimal point positions in neural network computations |
CN116991226A (zh) | 2018-02-14 | 2023-11-03 | 上海寒武纪信息科技有限公司 | 处理器的控制装置、方法及设备 |
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 |
US11507823B2 (en) * | 2019-01-22 | 2022-11-22 | Black Sesame Technologies Inc. | Adaptive quantization and mixed precision in a network |
US11966818B2 (en) | 2019-02-21 | 2024-04-23 | Hewlett Packard Enterprise Development Lp | System and method for self-healing in decentralized model building for machine learning using blockchain |
US11676028B2 (en) | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
CN112085184B (zh) | 2019-06-12 | 2024-03-29 | 上海寒武纪信息科技有限公司 | 量化参数调整方法、装置及相关产品 |
CN110490309B (zh) * | 2019-08-14 | 2022-06-07 | 中科寒武纪科技股份有限公司 | 一种用于神经网络的算子融合方法及其相关产品 |
EP4020321A4 (en) | 2019-08-23 | 2024-01-17 | Anhui Cambricon Information Technology Co., Ltd. | DATA PROCESSING METHOD, APPARATUS, COMPUTER APPARATUS AND STORAGE MEDIUM |
CN112487182B (zh) * | 2019-09-12 | 2024-04-12 | 华为技术有限公司 | 文本处理模型的训练方法、文本处理方法及装置 |
WO2021056180A1 (en) * | 2019-09-24 | 2021-04-01 | Baidu.Com Times Technology (Beijing) Co., Ltd. | Cursor-based adaptive quantization for deep neural networks |
JP7354736B2 (ja) * | 2019-09-30 | 2023-10-03 | 富士通株式会社 | 情報処理装置、情報処理方法、情報処理プログラム |
US11775611B2 (en) * | 2019-11-01 | 2023-10-03 | Samsung Electronics Co., Ltd. | Piecewise quantization for neural networks |
JP2021111081A (ja) * | 2020-01-09 | 2021-08-02 | 富士通株式会社 | 情報処理装置、ニューラルネットワークの演算プログラム及びニューラルネットワークの演算方法 |
US20210241183A1 (en) * | 2020-01-31 | 2021-08-05 | Hewlett Packard Enterprise Development Lp | Adaptively synchronizing learning of multiple learning models |
CN113741619B (zh) * | 2020-05-27 | 2024-03-12 | 安徽寒武纪信息科技有限公司 | 时钟控制装置及相关产品 |
KR20220033713A (ko) * | 2020-09-10 | 2022-03-17 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그 동작 방법 |
CN112686001B (zh) * | 2021-01-05 | 2021-12-03 | 中科三清科技有限公司 | 气象数据的变换方法、传输方法、服务器及数据传输系统 |
JP7512914B2 (ja) | 2021-01-26 | 2024-07-09 | 株式会社デンソー | ニューラルネットワーク量子化方法、装置及びプログラム |
KR102507461B1 (ko) * | 2021-02-16 | 2023-03-07 | 고려대학교 산학협력단 | 레이어-단위 양자화 신경망을 위한 인-메모리 가속기 및 이의 동작 방법 |
CN112990457B (zh) * | 2021-03-26 | 2024-05-03 | 开放智能机器(上海)有限公司 | 离线量化调优方法、装置、设备、介质及程序产品 |
CN113220606B (zh) * | 2021-05-07 | 2021-11-26 | 珠海市芯动力科技有限公司 | 神经网络权值存储方法、读取方法及相关设备 |
JP2023069780A (ja) * | 2021-11-08 | 2023-05-18 | 富士通株式会社 | 演算プログラム、演算方法及び計算機 |
KR20230102665A (ko) * | 2021-12-30 | 2023-07-07 | 한국전자기술연구원 | 딥러닝 네트워크 양자화 처리 방법 및 시스템 |
WO2023177272A1 (ko) * | 2022-03-18 | 2023-09-21 | 인텔렉추얼디스커버리 주식회사 | 신경망 기반 특징 텐서 압축 방법 및 장치 |
CN114611697B (zh) * | 2022-05-11 | 2022-09-09 | 上海登临科技有限公司 | 神经网络量化及部署方法、系统、电子设备及存储介质 |
KR20240102632A (ko) * | 2022-12-26 | 2024-07-03 | 삼성전자주식회사 | 신경망 모델 양자화 장치 및 방법 |
WO2024158174A1 (ko) * | 2023-01-25 | 2024-08-02 | 삼성전자주식회사 | 모델의 연산과 관련된 오퍼레이터의 양자화를 위한 전자 장치 및 방법 |
WO2024185924A1 (ko) * | 2023-03-07 | 2024-09-12 | 주식회사 사피온코리아 | 외부환경의 변화를 고려한 딥러닝 신경망 모델의 양자화 방법 및 장치 |
CN117787358B (zh) * | 2024-01-16 | 2024-07-30 | 之江实验室 | 一种基于阻变存储器的模型量化方法、装置以及设备 |
CN117910421B (zh) * | 2024-03-15 | 2024-07-16 | 南京美辰微电子有限公司 | 一种基于神经网络的动态近似电路计算部署方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012117955A1 (ja) | 2011-02-28 | 2012-09-07 | 株式会社メガチップス | 画像符号化装置 |
JP2014099679A (ja) | 2012-11-13 | 2014-05-29 | Nippon Telegr & Teleph Corp <Ntt> | 分散型無線通信基地局システム、信号処理装置、無線装置、及び分散型無線通信基地局システムの動作方法 |
CN109146057A (zh) | 2018-06-26 | 2019-01-04 | 杭州雄迈集成电路技术有限公司 | 一种基于查表计算的高精度的神经网络工程化方法 |
JP2019032833A (ja) | 2017-08-04 | 2019-02-28 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 固定小数点量子化ニューラルネットワークのための方法及び装置 |
WO2019050771A1 (en) | 2017-09-05 | 2019-03-14 | Panasonic Intellectual Property Corporation Of America | EXECUTION METHOD, EXECUTION DEVICE, LEARNING METHOD, LEARNING DEVICE, AND PROGRAM FOR DEEP NEURAL NETWORK |
JP2019074951A (ja) | 2017-10-17 | 2019-05-16 | 富士通株式会社 | 演算処理回路、演算処理回路を含む演算処理装置、演算処理装置を含む情報処理装置、および方法 |
Family Cites Families (256)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2604712B2 (ja) * | 1985-10-18 | 1997-04-30 | ソニー株式会社 | テレビジヨン信号の高能率符号化/復号装置 |
JPS63111768A (ja) * | 1986-10-30 | 1988-05-17 | Nec Corp | 画像デ−タ量子化装置 |
JPH0375860A (ja) | 1989-08-18 | 1991-03-29 | Hitachi Ltd | パーソナライズド端末 |
US5052043A (en) | 1990-05-07 | 1991-09-24 | Eastman Kodak Company | Neural network with back propagation controlled through an output confidence measure |
DE69224227T2 (de) * | 1991-04-18 | 1998-07-09 | Ampex | Verfahren und Anordnung zur Bestimmung eines Quantisierungsfaktors für Prozesse mit Datenkomprimierung und -dekomprimierung |
US6144977A (en) | 1995-07-10 | 2000-11-07 | Motorola, Inc. | Circuit and method of converting a floating point number to a programmable fixed point number |
GB9602701D0 (en) | 1996-02-09 | 1996-04-10 | Canon Kk | Image manipulation |
JPH09224246A (ja) * | 1996-02-15 | 1997-08-26 | Sony Corp | 画像圧縮符号化および画像圧縮復号化装置 |
JPH10233691A (ja) * | 1998-03-30 | 1998-09-02 | Nec Corp | 符号化方式および復号方式 |
JPH11306268A (ja) | 1998-04-17 | 1999-11-05 | Sunao Shibata | 半導体演算装置 |
US7242414B1 (en) | 1999-07-30 | 2007-07-10 | Mips Technologies, Inc. | Processor having a compare extension of an instruction set architecture |
JP2000293371A (ja) | 1999-04-09 | 2000-10-20 | Hitachi Ltd | マイクロプログラム制御方法及び装置 |
US6671796B1 (en) | 2000-02-25 | 2003-12-30 | Sun Microsystems, Inc. | Converting an arbitrary fixed point value to a floating point value |
US6931639B1 (en) | 2000-08-24 | 2005-08-16 | International Business Machines Corporation | Method for implementing a variable-partitioned queue for simultaneous multithreaded processors |
ATE354688T1 (de) | 2000-09-07 | 2007-03-15 | Nippon Steel Corp | Sechswertiges chrom-freies oberflächenbehandlungsmittel für auf sn- oder al- basis beschichtetes stahlblech, und oberflächenbehandltes stahlblech |
US7062445B2 (en) * | 2001-01-26 | 2006-06-13 | Microsoft Corporation | Quantization loop with heuristic approach |
US20020138714A1 (en) | 2001-03-22 | 2002-09-26 | Sun Microsystems, Inc. | Scoreboard for scheduling of instructions in a microprocessor that provides out of order execution |
CN1270273C (zh) | 2001-04-19 | 2006-08-16 | 艾利森电话股份有限公司 | 自适应存储器分配 |
US20030167460A1 (en) | 2002-02-26 | 2003-09-04 | Desai Vipul Anil | Processor instruction set simulation power estimation method |
JP4148356B2 (ja) * | 2002-11-18 | 2008-09-10 | 学校法人東海大学 | 量子化ステップパラメータ決定装置と量子化ステップパラメータ決定方法と量子化ステップパラメータ決定プログラム、ならびに非線形量子化方法と非線形量子化装置と非線形量子化プログラム |
US7236995B2 (en) | 2002-12-27 | 2007-06-26 | Arm Limited | Data processing apparatus and method for converting a number between fixed-point and floating-point representations |
DE10316381A1 (de) | 2003-04-10 | 2004-10-28 | Bayer Technology Services Gmbh | Verfahren zum Training von neuronalen Netzen |
JP3889738B2 (ja) * | 2003-09-26 | 2007-03-07 | 三洋電機株式会社 | 逆量子化装置、オーディオ復号化装置、画像復号化装置、逆量子化方法および逆量子化プログラム |
JP4202244B2 (ja) | 2003-12-22 | 2008-12-24 | Necエレクトロニクス株式会社 | Vliw型dsp,及びその動作方法 |
US20060161375A1 (en) | 2004-12-30 | 2006-07-20 | Allen Duberstein | Optimizing processing speed based on measured temperatures |
KR100762591B1 (ko) * | 2005-09-29 | 2007-10-01 | 엘지전자 주식회사 | 비디오 코덱의 양자화 파라미터 결정방법 |
US7721128B2 (en) | 2005-11-29 | 2010-05-18 | International Business Machines Corporation | Implementation of thermal throttling logic |
WO2007116551A1 (ja) * | 2006-03-30 | 2007-10-18 | Kabushiki Kaisha Toshiba | 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法 |
CN1851668A (zh) | 2006-06-01 | 2006-10-25 | 北京天碁科技有限公司 | 片上系统芯片、片上系统芯片的跟踪调试系统及方法 |
JP5224666B2 (ja) * | 2006-09-08 | 2013-07-03 | 株式会社東芝 | オーディオ符号化装置 |
DE102006059156B4 (de) | 2006-12-14 | 2008-11-06 | Advanced Micro Devices, Inc., Sunnyvale | Verfahren zum Testen eines integrierten Schaltkreischips mit zumindest zwei Schaltungskernen sowie integrierter Schaltkreischip und Testsystem |
US20110060587A1 (en) | 2007-03-07 | 2011-03-10 | Phillips Michael S | Command and control utilizing ancillary information in a mobile voice-to-speech application |
US8560591B2 (en) | 2007-04-25 | 2013-10-15 | International Business Machines Corporation | Detection of potential need to use a larger data format in performing floating point operations |
US8190664B2 (en) | 2007-04-26 | 2012-05-29 | International Business Machines Corporation | Employing a mask field of an instruction to encode a sign of a result of the instruction |
US8051117B2 (en) | 2007-04-26 | 2011-11-01 | International Business Machines Corporation | Shift significand of decimal floating point data |
US8051118B2 (en) | 2007-04-26 | 2011-11-01 | International Business Machines Corporation | Composition of decimal floating point data |
JP5184824B2 (ja) | 2007-06-15 | 2013-04-17 | キヤノン株式会社 | 演算処理装置及び方法 |
JP2009110353A (ja) | 2007-10-31 | 2009-05-21 | Hitachi Ltd | マイクロコントローラ及び制御システム |
US7904287B2 (en) | 2007-11-13 | 2011-03-08 | International Business Machines Corporation | Method and system for real-time prediction of power usage for a change to another performance state |
JP4998794B2 (ja) | 2007-11-29 | 2012-08-15 | Nkワークス株式会社 | 画像補正方法と画像補正装置 |
KR101518237B1 (ko) * | 2008-09-01 | 2015-05-15 | 삼성전자주식회사 | 영상의 역양자화 방법 및 장치, 복호화 방법 및 장치 |
US20100073068A1 (en) | 2008-09-22 | 2010-03-25 | Hanwoo Cho | Functional block level thermal control |
CN101754490B (zh) * | 2008-12-17 | 2012-11-07 | 电信科学技术研究院 | 一种数据传输的方法、系统和装置 |
KR101596954B1 (ko) | 2009-01-29 | 2016-02-24 | 엘지디스플레이 주식회사 | 데이터 압축과 복원 방법 및 장치와 이를 이용한 액정표시장치 |
JP2010233691A (ja) | 2009-03-30 | 2010-10-21 | Kyoraku Sangyo Kk | 遊技機、周辺基板、認証方法、プログラム |
CN101572829B (zh) | 2009-06-10 | 2011-02-02 | 中国联合网络通信集团有限公司 | Iptv视频质量监测方法、装置和系统 |
EP2336882A1 (en) | 2009-12-18 | 2011-06-22 | Telefonaktiebolaget L M Ericsson (PUBL) | Technique for run-time provision of executable code using off-device services |
CN102985673B (zh) | 2010-04-21 | 2015-06-17 | 丰田自动车株式会社 | 内燃机的控制装置 |
JP2011253374A (ja) | 2010-06-02 | 2011-12-15 | Sony Corp | 情報処理装置、および情報処理方法、並びにプログラム |
US8452463B2 (en) | 2010-06-04 | 2013-05-28 | Apple Inc. | Adjusting the thermal behavior of a computing system using indirect information about ambient temperature |
US8694572B2 (en) | 2010-07-06 | 2014-04-08 | Silminds, Llc, Egypt | Decimal floating-point fused multiply-add unit |
CN102622207B (zh) * | 2011-01-30 | 2015-07-22 | 中兴通讯股份有限公司 | 定点化处理方法及装置 |
US8924455B1 (en) | 2011-02-25 | 2014-12-30 | Xilinx, Inc. | Multiplication of matrices using systolic arrays |
CN102761509B (zh) | 2011-04-27 | 2016-01-06 | 联芯科技有限公司 | Ofdm系统的接收系统及降低接收系统内存的方法 |
JP5876142B2 (ja) | 2011-05-12 | 2016-03-02 | アップル インコーポレイテッド | 存在センサ |
CN102789413B (zh) | 2011-05-23 | 2016-02-17 | 同济大学 | 一种并行程序的调试系统及方法 |
US8594982B2 (en) | 2011-06-09 | 2013-11-26 | Pulsar Informatics, Inc. | Systems and methods for distributed calculation of fatigue-risk prediction and optimization |
CN102291773B (zh) * | 2011-07-18 | 2014-12-10 | 电信科学技术研究院 | 一种数据压缩方法和设备 |
CN102404673B (zh) | 2011-11-24 | 2013-12-18 | 苏州上声电子有限公司 | 数字化扬声器系统通道均衡与声场控制方法和装置 |
CN103152673B (zh) | 2011-12-07 | 2015-07-08 | 中国科学院声学研究所 | 基于四元码动态失配整形的数字扬声器驱动方法和装置 |
US8856602B2 (en) | 2011-12-20 | 2014-10-07 | International Business Machines Corporation | Multi-core processor with internal voting-based built in self test (BIST) |
JP6056162B2 (ja) | 2012-03-12 | 2017-01-11 | 三菱マテリアル株式会社 | パワーモジュールの製造方法 |
CN102684701B (zh) | 2012-04-27 | 2014-07-09 | 苏州上声电子有限公司 | 基于编码转换的数字扬声器驱动方法和装置 |
DE102012009502A1 (de) | 2012-05-14 | 2013-11-14 | Kisters Ag | Verfahren zum Trainieren eines künstlichen neuronalen Netzes |
US9417891B2 (en) | 2012-06-11 | 2016-08-16 | Vmware, Inc. | Unified storage/VDI provisioning methodology |
US9224089B2 (en) * | 2012-08-07 | 2015-12-29 | Qualcomm Incorporated | Method and apparatus for adaptive bit-allocation in neural systems |
US9063731B2 (en) | 2012-08-27 | 2015-06-23 | Samsung Electronics Co., Ltd. | Ultra low power apparatus and method to wake up a main processor |
CN102903089B (zh) | 2012-09-07 | 2014-12-17 | 山东大学 | 一种Linux环境下生成遥感图像快视图的方法 |
US9412366B2 (en) | 2012-09-18 | 2016-08-09 | Adobe Systems Incorporated | Natural language image spatial and tonal localization |
CN102981854A (zh) | 2012-11-16 | 2013-03-20 | 天津市天祥世联网络科技有限公司 | 基于浮点数运算内联函数库的神经网络优化方法 |
TW201431941A (zh) | 2012-11-22 | 2014-08-16 | Univ Keio | 丙烯酸系共聚物、光學膜、偏光板及液晶顯示裝置 |
US9851977B2 (en) | 2012-12-06 | 2017-12-26 | Kalray | Apparatus and method for combining thread warps with compatible execution masks for simultaneous execution and increased lane utilization |
US9720732B1 (en) | 2013-02-11 | 2017-08-01 | Amazon Technologies, Inc. | Parameter selection for optimization of task execution based on execution history for prior tasks |
JP2014170295A (ja) | 2013-03-01 | 2014-09-18 | Honda Motor Co Ltd | 物体認識システム及び物体認識方法 |
US12047340B2 (en) | 2013-04-29 | 2024-07-23 | Dell Products L.P. | System for managing an instructure with security |
US20150063461A1 (en) * | 2013-08-27 | 2015-03-05 | Magnum Semiconductor, Inc. | Methods and apparatuses for adjusting macroblock quantization parameters to improve visual quality for lossy video encoding |
JP6184891B2 (ja) | 2014-03-12 | 2017-08-23 | 東芝メモリ株式会社 | 情報処理装置、半導体チップ、情報処理方法およびプログラム |
CN105100810B (zh) * | 2014-05-16 | 2018-02-13 | 中国科学院声学研究所 | 一种成像声纳实时处理系统中的图像压缩解压方法及系统 |
US9507405B2 (en) | 2014-06-18 | 2016-11-29 | Oracle International Corporation | System and method for managing power in a chip multiprocessor using a proportional feedback mechanism |
US10318882B2 (en) * | 2014-09-11 | 2019-06-11 | Amazon Technologies, Inc. | Optimized training of linear machine learning models |
US9575537B2 (en) | 2014-07-25 | 2017-02-21 | Intel Corporation | Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states |
US10282100B2 (en) | 2014-08-19 | 2019-05-07 | Samsung Electronics Co., Ltd. | Data management scheme in virtualized hyperscale environments |
GB2524126B (en) | 2014-08-28 | 2016-07-27 | Imagination Tech Ltd | Combining paths |
US9916130B2 (en) | 2014-11-03 | 2018-03-13 | Arm Limited | Apparatus and method for vector processing |
FR3030077B1 (fr) | 2014-12-10 | 2016-12-02 | Arnault Ioualalen | Procede d'ajustement de la precision d'un programme d'ordinateur manipulant au moins un nombre a virgule. |
EP3035204B1 (en) | 2014-12-19 | 2018-08-15 | Intel Corporation | Storage device and method for performing convolution operations |
US20170061279A1 (en) | 2015-01-14 | 2017-03-02 | Intel Corporation | Updating an artificial neural network using flexible fixed point representation |
EP3089080A1 (en) | 2015-04-27 | 2016-11-02 | Universität Zürich | Networks and hierarchical routing fabrics with heterogeneous memory structures for scalable event-driven computing systems |
US10373050B2 (en) * | 2015-05-08 | 2019-08-06 | Qualcomm Incorporated | Fixed point neural network based on floating point neural network quantization |
US20160328645A1 (en) | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Reduced computational complexity for fixed point neural network |
US10262259B2 (en) * | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
US10083395B2 (en) | 2015-05-21 | 2018-09-25 | Google Llc | Batch processing in a neural network processor |
CN104899641B (zh) | 2015-05-25 | 2018-07-13 | 杭州朗和科技有限公司 | 深度神经网络学习方法、处理器和深度神经网络学习系统 |
EP3308349A2 (en) | 2015-06-10 | 2018-04-18 | Mobileye Vision Technologies Ltd. | Image processor and methods for processing an image |
CN104978303B (zh) | 2015-06-19 | 2019-06-04 | 上海兆芯集成电路有限公司 | 单芯片整合的传感器集线器和多传感器管理方法 |
CN106469291A (zh) | 2015-08-19 | 2017-03-01 | 中兴通讯股份有限公司 | 图像处理方法及终端 |
WO2017031630A1 (zh) * | 2015-08-21 | 2017-03-02 | 中国科学院自动化研究所 | 基于参数量化的深度卷积神经网络的加速与压缩方法 |
US10031765B2 (en) | 2015-09-24 | 2018-07-24 | Intel Corporation | Instruction and logic for programmable fabric hierarchy and cache |
US10812831B2 (en) | 2015-09-30 | 2020-10-20 | Piksel, Inc. | Video stream delivery via adaptive quality enhancement using error correction models |
US11061672B2 (en) | 2015-10-02 | 2021-07-13 | Via Alliance Semiconductor Co., Ltd. | Chained split execution of fused compound arithmetic operations |
CN106570559A (zh) | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 一种基于神经网络的数据处理方法和装置 |
CN105488565A (zh) * | 2015-11-17 | 2016-04-13 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
JP2019505149A (ja) | 2015-11-17 | 2019-02-21 | バヤニ, エマンBAYANI, Eman | デジタル画像撮影装置システム及び方法 |
CN106814639A (zh) | 2015-11-27 | 2017-06-09 | 富泰华工业(深圳)有限公司 | 语音控制系统及方法 |
CN105893419A (zh) | 2015-11-30 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 一种多媒体照片生成方法、装置、设备及手机 |
US10699186B2 (en) | 2015-12-02 | 2020-06-30 | Google Llc | Determining orders of execution of a neural network |
CN110135581B (zh) | 2016-01-20 | 2020-11-06 | 中科寒武纪科技股份有限公司 | 用于执行人工神经网络反向运算的装置和方法 |
CN106991477B (zh) * | 2016-01-20 | 2020-08-14 | 中科寒武纪科技股份有限公司 | 一种人工神经网络压缩编码装置和方法 |
CN106997236B (zh) | 2016-01-25 | 2018-07-13 | 亮风台(上海)信息科技有限公司 | 基于多模态输入进行交互的方法和设备 |
US10733532B2 (en) | 2016-01-27 | 2020-08-04 | Bonsai AI, Inc. | Multiple user interfaces of an artificial intelligence system to accommodate different types of users solving different types of problems with artificial intelligence |
US10497089B2 (en) | 2016-01-29 | 2019-12-03 | Fotonation Limited | Convolutional neural network |
JP2017156511A (ja) | 2016-03-01 | 2017-09-07 | ソニー株式会社 | 情報処理装置、情報処理方法、およびプログラム |
US10103714B2 (en) | 2016-03-01 | 2018-10-16 | Qualcomm Incorporated | Adjust voltage for thermal mitigation |
US10019779B2 (en) | 2016-03-08 | 2018-07-10 | Amazon Technologies, Inc. | Browsing interface for item counterparts having different scales and lengths |
WO2017168427A1 (en) * | 2016-03-31 | 2017-10-05 | Clear Px Technologies Ltd | Temperature controlling device and system having static cooling capacity |
US10552119B2 (en) | 2016-04-29 | 2020-02-04 | Intel Corporation | Dynamic management of numerical representation in a distributed matrix processor architecture |
CN109934331B (zh) | 2016-04-29 | 2020-06-19 | 中科寒武纪科技股份有限公司 | 用于执行人工神经网络正向运算的装置和方法 |
US11055063B2 (en) | 2016-05-02 | 2021-07-06 | Marvell Asia Pte, Ltd. | Systems and methods for deep learning processor |
US10187568B1 (en) | 2016-05-02 | 2019-01-22 | Bao Tran | Video smart phone |
GB201607713D0 (en) * | 2016-05-03 | 2016-06-15 | Imagination Tech Ltd | Convolutional neural network |
CN105978611B (zh) | 2016-05-12 | 2019-09-17 | 京信通信系统(中国)有限公司 | 一种频域信号压缩方法及装置 |
AU2016203619A1 (en) | 2016-05-31 | 2017-12-14 | Canon Kabushiki Kaisha | Layer-based operations scheduling to optimise memory for CNN applications |
EP3252949B1 (en) | 2016-06-01 | 2020-03-18 | Intel IP Corporation | Methods and devices for predistortion of signals |
US20170357910A1 (en) | 2016-06-10 | 2017-12-14 | Apple Inc. | System for iteratively training an artificial intelligence using cloud-based metrics |
CN107545889B (zh) | 2016-06-23 | 2020-10-23 | 华为终端有限公司 | 适用于模式识别的模型的优化方法、装置及终端设备 |
CN106156310A (zh) | 2016-06-30 | 2016-11-23 | 努比亚技术有限公司 | 一种图片处理装置和方法 |
US20180005111A1 (en) * | 2016-06-30 | 2018-01-04 | International Business Machines Corporation | Generalized Sigmoids and Activation Function Learning |
US10372588B2 (en) | 2016-07-08 | 2019-08-06 | International Business Machines Corporation | Providing debug information on production containers using debug containers |
US11222263B2 (en) | 2016-07-28 | 2022-01-11 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
DE102016214786A1 (de) | 2016-08-09 | 2018-02-15 | Fujitsu Limited | Anwendungsprofiling-Jobmanagement-System, -Programm und -Verfahren |
US20180046903A1 (en) | 2016-08-12 | 2018-02-15 | DeePhi Technology Co., Ltd. | Deep processing unit (dpu) for implementing an artificial neural network (ann) |
CN107657316B (zh) | 2016-08-12 | 2020-04-07 | 北京深鉴智能科技有限公司 | 通用处理器与神经网络处理器的协同系统设计 |
CN106354568A (zh) | 2016-08-23 | 2017-01-25 | 京信通信技术(广州)有限公司 | 一种不同进程间的通信方法及通信装置 |
CN107797913A (zh) | 2016-09-07 | 2018-03-13 | 大陆汽车电子(连云港)有限公司 | 一种实时系统的软件分析系统与方法 |
US20180075347A1 (en) * | 2016-09-15 | 2018-03-15 | Microsoft Technology Licensing, Llc | Efficient training of neural networks |
US11907760B2 (en) | 2016-09-23 | 2024-02-20 | Apple Inc. | Systems and methods of memory allocation for neural networks |
CN106650922B (zh) | 2016-09-29 | 2019-05-03 | 清华大学 | 硬件神经网络转换方法、计算装置、软硬件协作系统 |
US20180096243A1 (en) | 2016-09-30 | 2018-04-05 | General Electric Company | Deep learning for data driven feature representation and anomaly detection |
US10726330B2 (en) | 2016-10-11 | 2020-07-28 | The Research Foundation For The State University Of New York | System, method, and accelerator to process convolutional neural network layers |
US11321609B2 (en) * | 2016-10-19 | 2022-05-03 | Samsung Electronics Co., Ltd | Method and apparatus for neural network quantization |
CN106485316B (zh) | 2016-10-31 | 2019-04-02 | 北京百度网讯科技有限公司 | 神经网络模型压缩方法以及装置 |
CN106502626A (zh) | 2016-11-03 | 2017-03-15 | 北京百度网讯科技有限公司 | 数据处理方法和装置 |
US10216479B2 (en) | 2016-12-06 | 2019-02-26 | Arm Limited | Apparatus and method for performing arithmetic operations to accumulate floating-point numbers |
CN106815551B (zh) * | 2016-12-08 | 2019-09-10 | 新疆农业大学 | 一种森林资源管理的变异函数参数拟合的优化方法 |
CN110050267B (zh) | 2016-12-09 | 2023-05-26 | 北京地平线信息技术有限公司 | 用于数据管理的系统和方法 |
CN106600070A (zh) * | 2016-12-20 | 2017-04-26 | 郭建峰 | 基于ipso‑bp神经网络的短期股价预测算法 |
US10997492B2 (en) | 2017-01-20 | 2021-05-04 | Nvidia Corporation | Automated methods for conversions to a lower precision data format |
CN108345939B (zh) | 2017-01-25 | 2022-05-24 | 微软技术许可有限责任公司 | 基于定点运算的神经网络 |
JP7004503B2 (ja) * | 2017-01-27 | 2022-01-21 | ラピスセミコンダクタ株式会社 | 自動利得制御回路(agc)、逆拡散回路及び受信データの再生方法 |
CN106951587A (zh) | 2017-02-15 | 2017-07-14 | 芯启源(南京)半导体科技有限公司 | Fpga调试系统及方法 |
CN106951962B (zh) | 2017-03-22 | 2020-09-01 | 南京地平线机器人技术有限公司 | 用于神经网络的复合运算单元、方法和电子设备 |
US10332302B2 (en) | 2017-04-17 | 2019-06-25 | Intel Corporation | Scatter gather engine |
US10402932B2 (en) | 2017-04-17 | 2019-09-03 | Intel Corporation | Power-based and target-based graphics quality adjustment |
KR102258414B1 (ko) * | 2017-04-19 | 2021-05-28 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 처리 장치 및 처리 방법 |
CN108734287A (zh) * | 2017-04-21 | 2018-11-02 | 展讯通信(上海)有限公司 | 深度神经网络模型的压缩方法及装置、终端、存储介质 |
CN107025629B (zh) | 2017-04-27 | 2021-03-26 | 维沃移动通信有限公司 | 一种图像处理方法及移动终端 |
KR102034661B1 (ko) * | 2017-04-28 | 2019-10-21 | 서울대학교산학협력단 | 뉴럴네트워크를 위한 데이터 양자화 방법 및 장치 |
US11842280B2 (en) | 2017-05-05 | 2023-12-12 | Nvidia Corporation | Loss-scaling for deep neural network training with reduced precision |
US10019668B1 (en) | 2017-05-19 | 2018-07-10 | Google Llc | Scheduling neural network processing |
KR102526650B1 (ko) * | 2017-05-25 | 2023-04-27 | 삼성전자주식회사 | 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치 |
CN115841137A (zh) * | 2017-06-06 | 2023-03-24 | 格兰菲智能科技有限公司 | 一种用于对待量化数据进行定点化处理的方法及计算装置 |
CN107239826A (zh) * | 2017-06-06 | 2017-10-10 | 上海兆芯集成电路有限公司 | 在卷积神经网络中的计算方法及装置 |
TWI675335B (zh) | 2017-06-09 | 2019-10-21 | 宏達國際電子股份有限公司 | 訓練任務優化系統、訓練任務優化方法及其非暫態電腦可讀媒體 |
CN107197297B (zh) | 2017-06-14 | 2019-12-10 | 中国科学院信息工程研究所 | 一种检测基于dct系数隐写的视频隐写分析方法 |
US10944902B2 (en) | 2017-06-20 | 2021-03-09 | Adobe Inc. | Digital image generation using capture support data |
US9916531B1 (en) | 2017-06-22 | 2018-03-13 | Intel Corporation | Accumulator constrained quantization of convolutional neural networks |
WO2019005088A1 (en) | 2017-06-30 | 2019-01-03 | Intel Corporation | HETEROGENEOUS MULTIPLIER |
CN107451654B (zh) | 2017-07-05 | 2021-05-18 | 深圳市自行科技有限公司 | 卷积神经网络的加速运算方法、服务器及存储介质 |
CN109214509B (zh) | 2017-07-05 | 2021-07-06 | 中国科学院沈阳自动化研究所 | 一种用于深度神经网络高速实时量化结构和运算实现方法 |
US10427306B1 (en) | 2017-07-06 | 2019-10-01 | X Development Llc | Multimodal object identification |
CN107729990B (zh) | 2017-07-20 | 2021-06-08 | 上海寒武纪信息科技有限公司 | 支持离散数据表示的用于执行正向运算的装置及方法 |
CN107451658B (zh) | 2017-07-24 | 2020-12-15 | 杭州菲数科技有限公司 | 浮点运算定点化方法及系统 |
CN107480770B (zh) * | 2017-07-27 | 2020-07-28 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107679618B (zh) * | 2017-07-28 | 2021-06-11 | 赛灵思电子科技(北京)有限公司 | 一种静态策略定点化训练方法及装置 |
CN107688849B (zh) | 2017-07-28 | 2021-04-13 | 赛灵思电子科技(北京)有限公司 | 一种动态策略定点化训练方法及装置 |
US11481218B2 (en) | 2017-08-02 | 2022-10-25 | Intel Corporation | System and method enabling one-hot neural networks on a machine learning compute platform |
CN109388779A (zh) * | 2017-08-03 | 2019-02-26 | 珠海全志科技股份有限公司 | 一种神经网络权重量化方法和神经网络权重量化装置 |
WO2019031858A1 (en) | 2017-08-08 | 2019-02-14 | Samsung Electronics Co., Ltd. | METHOD AND APPARATUS FOR DETERMINING MEMORY NEEDS IN A NETWORK |
US20190050710A1 (en) * | 2017-08-14 | 2019-02-14 | Midea Group Co., Ltd. | Adaptive bit-width reduction for neural networks |
CN107644254A (zh) | 2017-09-09 | 2018-01-30 | 复旦大学 | 一种卷积神经网络权重参数量化训练方法及系统 |
KR20190034985A (ko) * | 2017-09-25 | 2019-04-03 | 삼성전자주식회사 | 인공 신경망의 양자화 방법 및 장치 |
US11450319B2 (en) | 2017-09-29 | 2022-09-20 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Image processing apparatus and method |
US10223114B1 (en) | 2017-09-29 | 2019-03-05 | Intel Corporation | Fixed point to floating point conversion |
CN107679490B (zh) * | 2017-09-29 | 2019-06-28 | 百度在线网络技术(北京)有限公司 | 用于检测图像质量的方法和装置 |
US10224954B1 (en) | 2017-09-29 | 2019-03-05 | Intel Corporation | Floating point to fixed point conversion |
US11437032B2 (en) | 2017-09-29 | 2022-09-06 | Shanghai Cambricon Information Technology Co., Ltd | Image processing apparatus and method |
US11532307B2 (en) | 2017-09-29 | 2022-12-20 | Shanghai Cambricon Information Technology Co., Ltd | Image processing apparatus and method |
KR102564456B1 (ko) * | 2017-10-19 | 2023-08-07 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터를 양자화하는 장치 및 방법 |
US10410121B2 (en) | 2017-10-25 | 2019-09-10 | SparkCognition, Inc. | Adjusting automated neural network generation based on evaluation of candidate neural networks |
US20210061028A1 (en) | 2017-10-26 | 2021-03-04 | Applied Mechatronic Products | Apparatus and method for vehicular monitoring, analysis, and control |
KR20190054454A (ko) | 2017-11-13 | 2019-05-22 | 삼성전자주식회사 | 인공 신경망의 양자화 방법 및 장치 |
US10783634B2 (en) | 2017-11-22 | 2020-09-22 | General Electric Company | Systems and methods to deliver point of care alerts for radiological findings |
US10803379B2 (en) | 2017-12-12 | 2020-10-13 | Amazon Technologies, Inc. | Multi-memory on-chip computational network |
CN108053028B (zh) | 2017-12-21 | 2021-09-14 | 深圳励飞科技有限公司 | 数据定点化处理方法、装置、电子设备及计算机存储介质 |
CN108229681A (zh) * | 2017-12-28 | 2018-06-29 | 郑州云海信息技术有限公司 | 一种神经网络模型压缩方法、系统、装置及可读存储介质 |
US11636327B2 (en) | 2017-12-29 | 2023-04-25 | Intel Corporation | Machine learning sparse computation mechanism for arbitrary neural networks, arithmetic compute microarchitecture, and sparsity for training mechanism |
US11373088B2 (en) | 2017-12-30 | 2022-06-28 | Intel Corporation | Machine learning accelerator mechanism |
CN108229663A (zh) * | 2018-01-29 | 2018-06-29 | 百度在线网络技术(北京)有限公司 | 用于生成卷积神经网络的方法和装置 |
CN108288089A (zh) * | 2018-01-29 | 2018-07-17 | 百度在线网络技术(北京)有限公司 | 用于生成卷积神经网络的方法和装置 |
US20190251429A1 (en) | 2018-02-12 | 2019-08-15 | Kneron, Inc. | Convolution operation device and method of scaling convolution input for convolution neural network |
US11630666B2 (en) | 2018-02-13 | 2023-04-18 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11507370B2 (en) | 2018-02-13 | 2022-11-22 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Method and device for dynamically adjusting decimal point positions in neural network computations |
US11106598B2 (en) | 2018-02-13 | 2021-08-31 | Shanghai Cambricon Information Technology Co., Ltd. | Computing device and method |
CN116991226A (zh) | 2018-02-14 | 2023-11-03 | 上海寒武纪信息科技有限公司 | 处理器的控制装置、方法及设备 |
JP7056225B2 (ja) | 2018-02-26 | 2022-04-19 | 富士通株式会社 | 演算処理装置、情報処理装置、情報処理方法、およびプログラム |
US10628275B2 (en) | 2018-03-07 | 2020-04-21 | Nxp B.V. | Runtime software-based self-test with mutual inter-core checking |
US11475306B2 (en) | 2018-03-22 | 2022-10-18 | Amazon Technologies, Inc. | Processing for multiple input data sets |
CN108631727B (zh) * | 2018-03-26 | 2019-08-09 | 河北工业大学 | 一种基于卷积神经网络的太阳能电池板缺陷识别方法 |
CN108491928B (zh) * | 2018-03-29 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 模型参数发送方法、装置、服务器及存储介质 |
CN108509627B (zh) * | 2018-04-08 | 2021-08-31 | 腾讯科技(深圳)有限公司 | 数据离散化模型训练方法和装置、数据离散方法 |
CN108510067B (zh) | 2018-04-11 | 2021-11-09 | 西安电子科技大学 | 基于工程化实现的卷积神经网络量化方法 |
US11562213B2 (en) | 2018-04-17 | 2023-01-24 | Intel Corporation | Methods and arrangements to manage memory in cascaded neural networks |
CN108596328B (zh) * | 2018-04-26 | 2021-02-02 | 北京市商汤科技开发有限公司 | 一种定点化方法及装置、计算机设备 |
US10691413B2 (en) | 2018-05-04 | 2020-06-23 | Microsoft Technology Licensing, Llc | Block floating point computations using reduced bit-width vectors |
EP3624020A4 (en) | 2018-05-18 | 2021-05-05 | Shanghai Cambricon Information Technology Co., Ltd | CALCULATION PROCEDURES AND RELATED PRODUCTS |
CN108717570A (zh) | 2018-05-23 | 2018-10-30 | 电子科技大学 | 一种脉冲神经网络参数量化方法 |
CN115268082A (zh) | 2018-05-31 | 2022-11-01 | 中强光电股份有限公司 | 头戴式显示装置 |
US10360304B1 (en) | 2018-06-04 | 2019-07-23 | Imageous, Inc. | Natural language processing interface-enabled building conditions control system |
CN109062540B (zh) | 2018-06-06 | 2022-11-25 | 北京理工大学 | 一种基于cordic算法的可重构浮点运算装置 |
CN109063820A (zh) | 2018-06-07 | 2018-12-21 | 中国科学技术大学 | 利用时频联合长时循环神经网络的数据处理方法 |
CN108830331A (zh) * | 2018-06-22 | 2018-11-16 | 西安交通大学 | 一种基于全卷积网络的探地雷达目标检测方法 |
CN109102064B (zh) * | 2018-06-26 | 2020-11-13 | 杭州雄迈集成电路技术股份有限公司 | 一种高精度的神经网络量化压缩方法 |
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 |
CN110728364A (zh) | 2018-07-17 | 2020-01-24 | 上海寒武纪信息科技有限公司 | 一种运算装置和运算方法 |
CN109002889B (zh) * | 2018-07-03 | 2021-12-17 | 华南理工大学 | 自适应迭代式卷积神经网络模型压缩方法 |
CN109214504B (zh) * | 2018-08-24 | 2020-09-04 | 北京邮电大学深圳研究院 | 一种基于fpga的yolo网络前向推理加速器设计方法 |
EP3757896B1 (en) | 2018-08-28 | 2023-01-11 | Cambricon Technologies Corporation Limited | Method and device for pre-processing data in a neural network |
EP3859488A4 (en) | 2018-09-28 | 2022-06-29 | Shanghai Cambricon Information Technology Co., Ltd | Signal processing device, signal processing method and related product |
CN109472353B (zh) | 2018-11-22 | 2020-11-03 | 浪潮集团有限公司 | 一种卷积神经网络量化电路及量化方法 |
CN109598331A (zh) * | 2018-12-04 | 2019-04-09 | 北京芯盾时代科技有限公司 | 一种欺诈识别模型训练方法、欺诈识别方法及装置 |
CN109685202B (zh) | 2018-12-17 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、存储介质和电子装置 |
CN109754074A (zh) * | 2018-12-29 | 2019-05-14 | 北京中科寒武纪科技有限公司 | 一种神经网络量化方法、装置以及相关产品 |
GB2580171B (en) * | 2018-12-21 | 2021-02-17 | Imagination Tech Ltd | Methods and systems for selecting quantisation parameters for deep neural networks using back-propagation |
CN111385462A (zh) | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 信号处理装置、信号处理方法及相关产品 |
CN109740754B (zh) * | 2018-12-29 | 2020-04-14 | 中科寒武纪科技股份有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
CN109740739B (zh) * | 2018-12-29 | 2020-04-24 | 中科寒武纪科技股份有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
CN109800865B (zh) * | 2019-01-24 | 2021-03-23 | 北京市商汤科技开发有限公司 | 神经网络生成及图像处理方法和装置、平台、电子设备 |
US20190164057A1 (en) * | 2019-01-30 | 2019-05-30 | Intel Corporation | Mapping and quantification of influence of neural network features for explainable artificial intelligence |
CN109859135B (zh) * | 2019-01-31 | 2021-05-07 | 北京邮电大学 | 一种应用于关联成像的图像增强处理方法 |
CN109800877B (zh) | 2019-02-20 | 2022-12-30 | 腾讯科技(深圳)有限公司 | 神经网络的参数调整方法、装置及设备 |
CN109902745A (zh) | 2019-03-01 | 2019-06-18 | 成都康乔电子有限责任公司 | 一种基于cnn的低精度训练与8位整型量化推理方法 |
CN110020616B (zh) | 2019-03-26 | 2021-05-11 | 深兰科技(上海)有限公司 | 一种目标识别方法及设备 |
CN110008952B (zh) | 2019-03-26 | 2021-06-15 | 深兰科技(上海)有限公司 | 一种目标识别方法及设备 |
CN110059733A (zh) | 2019-04-01 | 2019-07-26 | 苏州科达科技股份有限公司 | 卷积神经网络的优化及快速目标检测方法、装置 |
CN109993296B (zh) | 2019-04-01 | 2020-12-29 | 安徽寒武纪信息科技有限公司 | 量化实现方法及相关产品 |
CN111831543B (zh) | 2019-04-18 | 2024-07-16 | 中科寒武纪科技股份有限公司 | 一种数据处理方法及相关产品 |
US11934940B2 (en) | 2019-04-18 | 2024-03-19 | Cambricon Technologies Corporation Limited | AI processor simulation |
US20200364552A1 (en) * | 2019-05-13 | 2020-11-19 | Baidu Usa Llc | Quantization method of improving the model inference accuracy |
US11531893B2 (en) * | 2019-06-03 | 2022-12-20 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network parameter quantization |
US11676028B2 (en) * | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
CN112085184B (zh) | 2019-06-12 | 2024-03-29 | 上海寒武纪信息科技有限公司 | 量化参数调整方法、装置及相关产品 |
EP4020321A4 (en) | 2019-08-23 | 2024-01-17 | Anhui Cambricon Information Technology Co., Ltd. | DATA PROCESSING METHOD, APPARATUS, COMPUTER APPARATUS AND STORAGE MEDIUM |
WO2021036908A1 (zh) | 2019-08-23 | 2021-03-04 | 安徽寒武纪信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
WO2021036890A1 (zh) | 2019-08-23 | 2021-03-04 | 安徽寒武纪信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
JP7146953B2 (ja) | 2019-08-27 | 2022-10-04 | 安徽寒武紀信息科技有限公司 | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 |
CN110780845B (zh) | 2019-10-17 | 2021-11-30 | 浙江大学 | 一种用于量化卷积神经网络的可配置近似乘法器及其实现方法 |
-
2019
- 2019-09-19 CN CN201910887861.9A patent/CN112085184B/zh active Active
- 2019-09-19 JP JP2020573207A patent/JP2021530769A/ja active Pending
- 2019-09-19 CN CN201910886577.XA patent/CN112085181B/zh active Active
- 2019-09-19 CN CN201910889339.4A patent/CN112085188B/zh active Active
- 2019-09-19 CN CN201910888626.3A patent/CN112085186B/zh active Active
- 2019-09-19 KR KR1020207038085A patent/KR102656332B1/ko active IP Right Grant
- 2019-09-19 KR KR1020207038081A patent/KR20210018352A/ko active Search and Examination
- 2019-09-19 CN CN201910960314.9A patent/CN112085192B/zh active Active
- 2019-09-19 CN CN201910959851.1A patent/CN112085191B/zh active Active
- 2019-09-19 KR KR1020207038084A patent/KR102609719B1/ko active IP Right Grant
- 2019-09-19 CN CN201910960385.9A patent/CN112085193B/zh active Active
- 2019-09-19 EP EP19786896.1A patent/EP3770823A4/en active Pending
- 2019-09-19 WO PCT/CN2019/106754 patent/WO2020248423A1/zh unknown
- 2019-09-19 CN CN201910959831.4A patent/CN112085190B/zh active Active
- 2019-09-19 EP EP19218382.0A patent/EP3772023A1/en active Pending
- 2019-09-19 EP EP19932304.9A patent/EP3998554A4/en active Pending
- 2019-09-19 WO PCT/CN2019/106801 patent/WO2020248424A1/zh unknown
- 2019-09-19 EP EP19218379.6A patent/EP3772022A1/en active Pending
- 2019-09-19 US US16/622,541 patent/US11675676B2/en active Active
- 2019-09-19 CN CN201980005061.8A patent/CN112400176A/zh active Pending
- 2019-09-19 CN CN201910888150.3A patent/CN112085185B/zh active Active
- 2019-09-19 CN CN201910959360.7A patent/CN112085189B/zh active Active
- 2019-09-19 CN CN201910887544.7A patent/CN112085183B/zh active Active
-
2020
- 2020-05-13 CN CN202010402271.5A patent/CN111652368B/zh active Active
- 2020-05-13 CN CN202010401876.2A patent/CN111652367B/zh active Active
- 2020-12-28 JP JP2020219684A patent/JP7167405B2/ja active Active
- 2020-12-28 JP JP2020219685A patent/JP7166704B2/ja active Active
-
2021
- 2021-12-10 US US17/547,972 patent/US12093148B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012117955A1 (ja) | 2011-02-28 | 2012-09-07 | 株式会社メガチップス | 画像符号化装置 |
JP2014099679A (ja) | 2012-11-13 | 2014-05-29 | Nippon Telegr & Teleph Corp <Ntt> | 分散型無線通信基地局システム、信号処理装置、無線装置、及び分散型無線通信基地局システムの動作方法 |
JP2019032833A (ja) | 2017-08-04 | 2019-02-28 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 固定小数点量子化ニューラルネットワークのための方法及び装置 |
WO2019050771A1 (en) | 2017-09-05 | 2019-03-14 | Panasonic Intellectual Property Corporation Of America | EXECUTION METHOD, EXECUTION DEVICE, LEARNING METHOD, LEARNING DEVICE, AND PROGRAM FOR DEEP NEURAL NETWORK |
JP2019074951A (ja) | 2017-10-17 | 2019-05-16 | 富士通株式会社 | 演算処理回路、演算処理回路を含む演算処理装置、演算処理装置を含む情報処理装置、および方法 |
CN109146057A (zh) | 2018-06-26 | 2019-01-04 | 杭州雄迈集成电路技术有限公司 | 一种基于查表计算的高精度的神经网络工程化方法 |
Non-Patent Citations (2)
Title |
---|
Dongsoo Lee and Byeongwook Kim,Retraining-Based Iterative Weight Quantization for Deep Neural Networks,arXiv,arXiv:1805.11233v1,2018年,<URL: https://arxiv.org/abs/1805.11233> |
St_Hakky,【Deep Learning】Batch sizeをどうやって決めるかについてまとめる,St_Hakky's blog,2017年11月16日,インターネット<URL: https://www.st-hakky-blog.com/entry/2017/11/16/161805>,[2022年9月14日検索] |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7166704B2 (ja) | ニューラルネットワークにおける量子化パラメータの確定方法および関連製品 | |
JP2021177369A5 (ja) | ||
JP2021179966A5 (ja) | ||
JPWO2020248424A5 (ja) | ||
US11676029B2 (en) | Neural network quantization parameter determination method and related products | |
JP7146955B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
JP7146952B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
JP7146954B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
WO2021022903A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
JP2022501676A (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
CA3151974A1 (en) | Automated real time mortgage servicing and whole loan valuation | |
US20220222041A1 (en) | Method and apparatus for processing data, and related product |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201228 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220124 |
|
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: 20220425 |
|
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: 20220927 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20221005 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20221005 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221021 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7166704 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |