JP2021179966A - ニューラルネットワークにおける量子化パラメータの確定方法および関連製品 - Google Patents

ニューラルネットワークにおける量子化パラメータの確定方法および関連製品 Download PDF

Info

Publication number
JP2021179966A
JP2021179966A JP2020219684A JP2020219684A JP2021179966A JP 2021179966 A JP2021179966 A JP 2021179966A JP 2020219684 A JP2020219684 A JP 2020219684A JP 2020219684 A JP2020219684 A JP 2020219684A JP 2021179966 A JP2021179966 A JP 2021179966A
Authority
JP
Japan
Prior art keywords
data
iteration
quantization
bit width
quantized
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020219684A
Other languages
English (en)
Other versions
JP2021179966A5 (ja
JP7167405B2 (ja
Inventor
シャオリ リォウ
Shaoli Lio
シァオフ モン
Xiaofu Meng
シシャン ジャン
Xishan Zhang
ジァミン グオ
Jiaming Guo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Publication of JP2021179966A publication Critical patent/JP2021179966A/ja
Publication of JP2021179966A5 publication Critical patent/JP2021179966A5/ja
Application granted granted Critical
Publication of JP7167405B2 publication Critical patent/JP7167405B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1476Error detection or correction of the data by redundancy in operation in neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Neurology (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Analysis (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】ニューラルネットワークにおける量子化パラメータの確定方法および関連製品を提供する。【解決手段】ニューラルネットワークの量子化パラメータの確定方法であって、各タイプの量子化予定のデータの統計結果を取得することと、各タイプの量子化予定のデータの統計結果とデータビット幅によって、対応する量子化パラメータを確定することと、を含む。量子化予定のデータには、ニューラルネットワークのニューロン、重み、勾配およびオフセットの少なくとも1つが含まれる。量子化パラメータは、人工知能プロセッサがニューラルネットワーク演算プロセスにおけるデータを量子化するために使用され、小数点位置パラメータである。【選択図】図2

Description

本開示の実施形態は、ニューラルネットワークにおける量子化パラメータの確定方法お
よび関連製品に関する。
ニューラルネットワーク(neural network、NN)は、生物学的ニュー
ラルネットワークの構造と機能を模倣する数学モデルまたは計算モデルである。サンプル
データでのトレーニングを通じて、ニューラルネットワークはネットワークの重みとしき
い値を継続的に修正して、誤差関数を負の勾配方向に沿って低下させ、期待される出力に
近似させる。これは広く使用されている識別および分類モデルであり、主に関数近似、モ
デルの識別および分類、データ圧縮、および時系列予測に使用される。
実際の応用では、ニューラルネットワークにおけるデータは通常32ビットであり、既
存のニューラルネットワークにおけるデータはより多くのビットを占有することで、精度
は保証されるが、より多くのストレージスペースと高い処理能力が必要になるため、コス
トが増加される。
上記の技術的問題を解決するために、本開示は、データビット幅の調整方法および関連
製品を提案する。
上記の目的を達成するために、本開示は、データビット幅の調整方法を提供し、当該方
法は、
量子化予定のデータが量子化処理の後の量子化後のデータのビット幅を示す、量子化予
定のデータに対して量子化処理を実行するためのデータビット幅を取得することと、
データビット幅に基づいて1グループの量子化予定のデータに対して量子化処理を実行
し、1グループの量子化予定のデータを、上記のデータビット幅を持つ1グループの量子
化後のデータに変換することと、
1グループの量子化予定のデータを1グループの量子化後のデータと比較し、上記のデ
ータビット幅に関連する量子化誤差を確定することと、
確定された量子化誤差に基づいて上記のデータビット幅を調整することとを含む、こと
を特徴とする。
上記の目的を達成するために、本開示は、データビット幅の調整装置を提供し、当該装
置はメモリおよびプロセッサを備え、メモリは、プロセッサで実行できるコンピュータプ
ログラムを格納し、プロセッサはコンピュータプログラムを実行すると、前述の方法のス
テップが実施される。
前述の目的を達成するために、本開示は、コンピュータプログラムが格納されるコンピ
ュータ可読記憶媒体を提供し、コンピュータプログラムは、プロセッサによって実行され
ると、前述の方法のステップ長さが実施される。
上記の目的を達成するために、本開示は、データビット幅の調整装置を提供し、当該装
置は、
量子化予定のデータが量子化処理の後の量子化後のデータのビット幅を示す、量子化予
定のデータに対して量子化処理を実行するためのデータビット幅を取得するように構成さ
れる取得ユニットと、
データビット幅に基づいて1グループの量子化予定のデータに対して量子化処理を実行
し、1グループの量子化予定のデータを上記のデータビット幅を持つ1グループの量子化
後のデータに変換するように構成される量子化ユニットと、
1グループの量子化予定のデータを1グループの量子化後のデータと比較し、上記のデ
ータビット幅に関連する量子化誤差を確定するように構成される確定ユニットと、
確定された量子化誤差に基づいて上記のデータビット幅を調整するように構成される調
整ユニットとを備える。
ニューラルネットワーク演算のプロセスでは、量子化において本開示の技術案を使用し
データビット幅を確定する。当該データビット幅は、人工知能プロセッサがニューラルネ
ットワーク演算のプロセスにおけるデータを量子化し、高精度のデータを低精度の固定小
数点数に変換するためであり、これにより、ニューラルネットワーク演算プロセスに関連
するデータストレージ占めるスペースサイズを減少できる。例:float32をfix
8に変換すると、モデルパラメータを4分の1に減らすことができる。データストレージ
スペースが小さくなるため、ニューラルネットワークの配置に使用されるスペースが小さ
くなり、人工知能プロセッサのチップのオンチップメモリがより多くのデータを格納でき
るようになり、人工知能プロセッサのチップによるデータアクセスが減少され、コンピュ
ーティングパフォーマンスが向上される。
本開示の実施形態の技術案をより明確に説明するために、以下に、実施形態の添付の図
面を簡単に紹介する。明らかに、以下の説明の添付の図面は、本開示のいくつかの実施形
態のみを関連し、本開示を限定するものではない。
ニューラルネットワーク構造の概略図。 本開示によって提案されたニューラルネットワークの量子化パラメータの確定方法のフローチャート。 対称的な固定小数点数での表示の概略図。 オフセットが導入された固定小数点数での表示の概略図。 トレーニングプロセスにおけるニューラルネットワークの重みデータの変動範囲の第1のグラフ。 トレーニングプロセスにおけるニューラルネットワークの重みデータの変動範囲の第2のグラフ。 目標反復間隔を確定する方法の第1のフローチャート。 目標反復間隔を確定する方法の第2のフローチャート。 目標反復間隔の確定方法の第3のフローチャート。 本開示の一実施形態におけるデータビット幅の調整方法を示すフローチャート。 本開示の別の一実施形態におけるデータビット幅の調整方法を示すフローチャート。 本開示のまた別の一実施形態におけるデータビット幅の調整方法を示すフローチャート。 本開示のさらに別の一実施形態におけるデータビット幅の調整方法を示すフローチャート。 本開示の一実施形態によるニューラルネットワークの量子化方法を示すフローチャート。 本開示の一実施形態によるニューラルネットワークの量子化方法を示すフローチャート。 本開示の一実施形態によるニューラルネットワークの量子化方法を示すフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法を示すフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法を示すフローチャート。 本開示の一実施形態の量子化パラメータの調整方法を示すフローチャート。 本開示の一実施形態の演算プロセスにおいて量子化予定のデータの変化傾向図。 本開示の一実施形態のパラメータ調整方法における目標反復間隔の確定方法を示すフローチャート。 本開示の一実施形態における小数点位置の変動範囲の確定方法を示すフローチャート。 本開示の一実施形態における第2の平均値の確定方法を示すフローチャート。 本開示の別の一実施形態における第2の平均値の確定方法を示すフローチャート。 本開示の別の一実施形態による量子化パラメータの調整方法を示すフローチャート。 本開示の一実施形態による量子化パラメータの調整方法における量子化パラメータの調整のフローチャート。 本開示の別の一実施形態のパラメータ調整方法における目標反復間隔の確定方法を示すフローチャート。 本開示の別の一実施形態のパラメータ調整方法における目標反復間隔の確定方法を示すフローチャート。 本開示のまた別の一実施形態による量子化パラメータの調整方法を示すフローチャート。 本開示のさらに別の一実施形態による量子化パラメータの調整方法を示すフローチャート。 本開示によって提案されたニューラルネットワークの量子化パラメータの確定装置のハードウェア構成のブロック図。 本開示で提案されたニューラルネットワークの量子化パラメータ確定装置が人工知能プロセッサのチップへの適用の概略図。 本開示で提案されるニューラルネットワークの量子化パラメータの確定装置の機能的ブロック図。 本開示の実施形態によるボードカードの構造ブロック図。 ニューラルネットワークの量子化の問題を解決するために、図2−1から図2−31を含む次の技術案(201910505239.7)を提案しました。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワーク量子化法において、量子化パラメータがオフセットを含まない場合の、量子化前後のデータ対応の概略図。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワーク量子化法において、量子化パラメータがオフセットを含む場合の、量子化前後のデータ対応の概略図。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化方法のフローチャート。 本開示の実施形態によるニューラルネットワークの量子化装置の概略図。 本開示の実施形態によるニューラルネットワークの量子化装置の概略図。 本開示の実施形態によるニューラルネットワークの量子化装置の概略図。 本開示の実施形態によるニューラルネットワークの量子化装置の概略図。 本開示の実施形態によるニューラルネットワークの量子化装置の概略図。 本開示の実施形態によるボードカードのブロック図。 量子化パラメータ調整の問題を解決するために、図3−1から図3−25を含む以下の技術案(201910528537.8)を提案しました。 本開示の一実施形態による、量子化パラメータの調整方法の適用環境の概略図。 本開示の一実施形態による、量子化予定のデータと量子化後のデータとの間の対応関係の概略図。 本開示の実施形態による量子化予定のデータの変換の概略図。 本開示の一実施形態による、量子化パラメータの調整方法のフローチャート。 本開示の一実施形態の演算プロセスにおける量子化予定のデータの変化傾向図。 本開示の一実施形態のパラメータ調整法における目標反復間隔の確定方法のフローチャート。 本開示の一実施形態における小数点位置の変動範囲の確定方法のフローチャート。 本開示の一実施形態における第2の平均値の確定方法のフローチャート。 本開示の一実施形態におけるデータビット幅の調整方法のフローチャート。 本開示の別の一実施形態におけるデータビット幅の調整方法のフローチャートである。 本開示のまた別の一実施形態におけるデータビット幅の調整方法のフローチャート。 本開示のさらに別の一実施形態におけるデータビット幅の調整方法のフローチャート。 本開示の別の一実施形態における第2の平均値の確定方法のフローチャート。 本開示の別の一実施形態による、量子化パラメータの調整方法のフローチャート。 本開示の一実施形態による、量子化パラメータの調整方法における量子化パラメータの調整のフローチャート。 本開示の別の一実施形態による、パラメータ調整方法における目標反復間隔の確定方法のフローチャート。 本開示のまた別の一実施形態による、パラメータ調整方法における目標反復間隔の確定方法のフローチャート。 本開示のまた別の一実施形態による、量子化パラメータの調整方法のフローチャート。 本開示のさらに別の一実施形態による、量子化パラメータの調整方法のフローチャート。 本開示の一実施形態による、量子化パラメータ調整装置の構造ブロック図を示す。 本開示の一実施形態による、量子化パラメータ調整装置の構造ブロック図。 本開示の一実施形態による、量子化パラメータ調整装置の構造ブロック図。 本開示の一実施形態による、量子化パラメータ調整装置の構造ブロック図。 本開示の一実施形態による、量子化パラメータ調整装置の構造ブロック図。 本開示の実施形態によるボードカードの構造ブロック図。
本開示の実施形態における技術案は、本開示の実施形態における添付の図面を参照して
明確かつ完全に説明される。明らかに、記載された実施形態は、本開示の実施形態の一部
であるが、すべての実施形態ではない。本開示の実施形態に基づいて、創造的な作業なし
に当業者によって得られる他のすべての実施形態は、本開示の保護範囲に含まれる。
本開示のアイテムや明細書および添付の図面における「第1」、「第2」、「第3」お
よび「第4」等の用語は、特定の順序を説明するのではなく、異なる対象を区別するため
であることを理解されたい。本開示の明細書およびアイテムで使用される「含む」および
「含む」という用語は、記載された特徴、全体、ステップ、操作、要素および/またはコ
ンポーネントの存在を示すが、1つまたは複数の他の特徴、全体、ステップ、操作、要素
、コンポーネント、および/またはそれらのコレクションの存在または追加を除外しない
本開示の明細書で使用される用語は、特定の実施形態を説明することのみを目的として
おり、開示を限定することを意図するものではないことも理解されたい。本開示の明細書
およびアイテムで使用されているように、文脈が他の状況を明確に示さない限り、単数形
「一」、「一つ」および「当該」は複数形を含むことを意図している。本開示の明細書お
よびアイテムで使用される「および/または」という用語は、関連してリストされた1つ
または複数の項目の任意の組み合わせおよびすべての可能な組み合わせを指し、これらの
組み合わせを含むことをさらに理解されたい。
この明細書およびアイテムで使用されているように、「もし」という用語は、文脈に応
じて、「…時」または「…すると」または「確定に応じて」または「検出に応じて」と解
釈することができる。同様に、「確定される場合」または「記述された条件またはイベン
ト]が検出される場合」という句は、文脈に応じて、「[確定されると」または「確定に
応じて」または「[記述された条件またはイベント]が検出されると」または「[記述さ
れた条件またはイベント]の検出に応じて」を意味すると解釈できる。
専門用語の定義:
浮動小数点数:IEEE浮動小数点規格では、V=(−1)^sign*mantis
sa*^Eの形で一つの数を表す。ここ、signは符号ビットで、0は正の数、1は負
の数、Eは浮動小数点数に重みを付ける指数を表し、重みは2のE乗(負の冪乗の場合も
ある)であり、mantissaは2進数の小数であり、その範囲は、1〜2−εまたは
0−εである。コンピュータでの浮動小数点数の表現は、3つのフィールドに分割される
。それらのフィールドはそれぞれコード化される:
(1)単一の符号ビットsで、符号sを直接エンコードする。
(2)kビット指数フィールドで指数をエンコードする。
(3)nビットの小数フィールドmantissaで仮数をエンコードする。ただし、
エンコードの結果は、指数部がすべて0であるかどうかによって異なる。
固定小数点数:共有指数(exponent)、符号ビット(sign)、および仮数
(mantissa)の3つの部分で構成される。ここ、共有指数とは、指数が量子化す
る必要のある実数の集合内で共有されることを意味する。符号ビットは、固定小数点数が
正または負であることを示する。仮数は、固定小数点数の有効桁数、つまり精度を確定す
る。8ビットの固定小数点数を例にとると、その数値計算方法は次のとおりである:
value=(−1)signX(mantissa)X2(ecponent−1
27)
2進数の小数:任意の10進数を式Σj*10で表すことができる。たとえば、10
進数の12.34は式1で表されると、12.34=1*10+2*10+3*10
−1+4*10−2となる。小数点の左側は10の正の冪乗としてカウントされ、小数点
の右側は10の負の冪乗としてカウントされる。同様に、2進数の小数もこのように表す
ことができる。小数点の左側は2の正の冪乗であり、小数点の右側は2の負の冪乗として
カウントされる。10進数の小数5.75は、2進数の小数の101.11で表すことが
できと、5.75=1*2+0*2+1*2+1*2−1+1*2−2となる。
オーバーフロー:固定小数点演算ユニットでは、数値表現には特定の範囲がある。演算
プロセスにおいて、数値のサイズが固定小数点数で表すことができる範囲を超える場合、
「オーバーフロー」と呼ばれる。
KLダイバージェンス(Kullback-LeiblerDivergence):
相対エントロピー(relative entropy)、情報ダイバージェンス(in
formationDivergence)、情報利得(information ga
in)とも呼ばれる。KLダイバージェンスは、2つの確率分布PとQの間の差の非対称
性の測度である。KLダイバージェンスは、Qベースのコーディングを使用してPからの
サンプルをエンコードするために平均的に必要な追加ビット数の測度である。通常、Pは
データの真の分布を表し、QはPの理論分布、モデル分布、または近似分布を表す。
データビット幅:データを表すためであるビット数。
量子化:過去に32ビットまたは64ビットで表していた高精度の数値を、メモリスペ
ースを節約する固定小数点数に変換するプロセスであり、高精度の数値を固定小数点数に
変換するプロセスでは、精度がある程度低下する。
以下は、添付の図面を参照して、本開示の実施形態によって提供される、ニューラルネ
ットワークの量子化パラメータの確定方法および関連製品の特定の実施形態を詳細に説明
する。
ニューラルネットワーク(NN)は、生物学的ニューラルネットワークの構造と機能を
模倣する数学モデルである。ニューラルネットワークは、多数のニューロンによって接続
され計算を行う。したがって、ニューラルネットワークは、相互に接続された多数のノー
ド(または「ニューロン」と呼ばれる)で構成される計算モデルである。各ノードは、活
性化関数(activation function)と呼ばれる特定の出力関数を表す
。2つのニューロン間の各接続は、当該接続を通過する信号の重み付き値を表し、重みと
呼ばれ、これはニューラルネットワークの記憶に相当する。ニューラルネットワークの出
力は、ニューロン間の接続方法、重み、活性化関数によって異なる。ニューラルネットワ
ークにおいて、ニューロンはニューラルネットワークの基本単位である。特定の数の入力
とオフセットを取得し、信号(値)が到着すると、重みと乗算される。接続とは、ニュー
ロンを別の層または同じ層内の別のニューロンに接続することであり、接続にはそれに関
連付けられた重みが伴う。さらに、オフセットはニューロンへの追加入力であり、常に1
であり、独自の接続重みを持つ。これにより、すべての入力が空(すべて0)の場合でも
、ニューロンを活性化することができる。
応用では、非線形関数がニューラルネットワーク内のニューロンに適用されない場合、
ニューラルネットワークは単なる線形関数であり、単一のニューロンよりも強力ではない
。ニューラルネットワークの出力が0から1の間にする場合、たとえば猫と犬の識別の場
合、0に近い出力は猫と見なされ、1に近い出力は犬と見なされる。この目標を達成する
ために、sigmoid活性化関数などの活性化関数がニューラルネットワークに導入さ
れる。この活性化関数に関しては、その戻り値が0から1の間の数値であることを知って
おく必要のみがある。したがって、活性化関数はニューラルネットワークに非線形性を導
入するためであり、ニューラルネットワークの演算結果をより狭い範囲に絞る。実際、活
性化関数がどのように表現されるかは重要ではない。重要なことは、いくつかの重みによ
って一つの非線形関数をパラメータ化することであり、これらの重みを変更することで非
線形関数を変更することができる。
図1に示すように、これはニューラルネットワーク構造の概略図である。図1に示すニ
ューラルネットワークには、入力層、隠れ層、出力層の3つの層があり、図1に示す隠れ
層には5つの層がある。ここで、ニューラルネットワークの左端の層は入力層と呼ばれ、
入力層のニューロンは入力ニューロンと呼ばれる。入力層はニューラルネットワークの第
一層であり、必要な入力信号(値)を受け入れて次の層に伝送する。通常、入力層は入力
信号(値)に対して操作を行わなく、関連する重みとオフセットもない。図1に示すニュ
ーラルネットワークには、4つの入力信号x1、x2、x3、x4がある。
隠れ層には、入力データにさまざまな変換を適用するためのニューロン(ノード)が含
まれている。図1に示すニューラルネットワークには、5つの隠れ層がある。第1隠れ層
には4つのニューロン(ノード)があり、第2層には5つのニューロンがあり、第3層に
は6つのニューロンがあり、第4層には4つのニューロンがあり、第5層には3つのニュ
ーロンがある。最後に、隠れ層はニューロンの演算値を出力層に伝送する。図1に示すニ
ューラルネットワークは、5つの隠れ層の各ニューロンを完全に接続する。つまり、各隠
れ層の各ニューロンは、次の層の各ニューロンに接続される。すべてのニューラルネット
ワークの隠れ層が完全に接続されているわけではないことに注意されたい。
図1ニューラルネットワークの右端の層は出力層と呼ばれ、出力層のニューロンは出力
ニューロンと呼ばれる。出力層は、最後の隠れ層からの出力を受け取る。図1に示すニュ
ーラルネットワークでは、出力層には3つのニューロンと3つの出力信号y1、y2、お
よびy3がある。
実際の応用では、初期のニューラルネットワークをトレーニングするために、事前に多
数のサンプルデータ(入力と出力を含む)が提供され、トレーニングが完了した後、トレ
ーニングされたニューラルネットワークが取得される。当該ニューラルネットワークは、
将来の実際の環境での入力に対して正しい出力を提供できる。
ニューラルネットワークのトレーニングについて説明する前に、損失関数を定義する必
要がある。損失関数は、特定のタスクを実行する際のニューラルネットワークを評価する
パフォーマンス関数である。いくつかの実施形態では、損失関数は、以下のように得るこ
とができる:特定のニューラルネットワークをトレーニングする過程において、各サンプ
ルデータをニューラルネットワークに沿って伝送し、出力値を得る。次にこの出力値と期
待値との除算を行い、その差が二乗される。このように計算された損失関数は、予測値と
真の値の間の差別である。ニューラルネットワークをトレーニングする目的は、この差別
または損失関数の値を減らすことである。いくつかの実施形態では、損失関数は次のよう
に表すことができる。
Figure 2021179966
ニューラルネットワークのトレーニングの開始時に、重みをランダムに初期化する必要
がある。明らかに、初期化されたニューラルネットワークは良い結果を提供しない。トレ
ーニングプロセスでは、悪いニューラルネットワークから始めたと仮定し、トレーニング
を通じて、高精度のネットワークを取得できる。
ニューラルネットワークのトレーニングプロセスは2つの段階に分かれている。第1段
階は、入力層から隠れ層、最後に出力層への信号の順方向処理である。第2段階は、出力
層から隠れ層、最後に入力層への逆方向伝播勾配であり、勾配に従って、ニューラルネッ
トワークの各層の重みとオフセットが順番に調整される。
順方向処理の過程で、入力値はニューラルネットワークの入力層に入力され、いわゆる
予測値の出力はニューラルネットワークの出力層から取得される。入力値がニューラルネ
ットワークの入力層に提供されるとき、何の操作もしない。隠れ層では、第2隠れ層が第
1隠れ層から予測中間結果値を取得し、計算操作および活性化操作を実行してから、取得
した中間予測結果値を次の隠れ層に伝送する。後続の層で同じ操作を実行し、最後にニュ
ーラルネットワークの出力層で出力値を取得する。
順方向処理後、予測値と呼ばれる出力値が得られる。誤差を計算するために、予測値が
実際の出力値と比較され、対応する誤差値が取得される。逆方向伝播は微分学のチェーン
ルールを使用する。チェーンルールでは、ニューラルネットワークの最後の層に対応する
誤差値の導関数が最初に計算される。これらの導関数を勾配と呼び、次にこれらの勾配を
使用して、ニューラルネットワークの最後から第2層の勾配を計算する。ニューラルネッ
トワークの各重みに対応する勾配が得られるまで、このプロセスを繰り返す。最後に、ニ
ューラルネットワークの各重みから対応する勾配を差し引き、重みが1回更新され、誤差
値を減らす目的を達成する。
ニューラルネットワークの場合、微調整とは、トレーニングされたニューラルネットワ
ークをロードすることである。微調整プロセスは、トレーニングプロセスと同じ、2つの
段階に分かれている。第1段階は信号の順方向処理で、第2段階は逆方向の伝搬勾配であ
り、トレーニングされたニューラルネットワークの重みが更新される。トレーニングと微
調整の違いは、トレーニングは初期化されたニューラルネットワークをランダムに処理し
、ニューラルネットワークを最初からトレーニングすることであるが、微調整はそうでは
ないことである。
ニューラルネットワークのトレーニングまたは微調整のプロセスでは、ニューラルネッ
トワークに対して信号の順方向処理および対応する誤差の逆方向伝播プロセスを実行する
たびに、ニューラルネットワークの重みが勾配を使用して1回更新される。これは1回の
反復(iteration)と呼ばれる。精度が期待に応えるニューラルネットワークを
取得するには、トレーニングプロセス中に非常に大きなサンプルデータ集合が必要である
。この場合、サンプルデータ集合を一度にコンピュータに入力することはできない。した
がって、この問題を解決するには、サンプルデータ集合を複数のブロックに分割し、各ブ
ロックをコンピュータに伝送必要がある。データ集合の各ブロックが順方向処理された後
、それに応じてニューラルネットワークの重みが更新される。一つの完全なサンプルデー
タ集合がニューラルネットワークによって順方向処理を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ビットよりも大き
い固定小数点数を使用する必要があり、低ビット幅で表される定点数を使用してトレーニ
ング実行するプロセスは非常に複雑である。浮動小数点演算ユニットを固定小数点演算ユ
ニットに置き換えて、固定小数点演算の高速性を実現し、人工知能プロセッサのチップの
ピーク計算能力を向上させ、同時に演算に必要な浮動小数点演算の精度を満たす方法は、
この明細書で解決される技術的な問題である。
上記の技術的問題の説明に基づくと、ニューラルネットワークの特徴の1つは、入力ノ
イズに対する耐性が高いことである。画像内のオブジェクトを識別することを検討する場
合、ニューラルネットワークは主なノイズを無視して重要な類似点に焦点を合わせること
ができる。この機能は、ニューラルネットワークが低精度の計算をノイズ源として、情報
が少ない数値形式でも正確な予測結果を生成できることを意味する。低精度のトレーニン
グや微調整を行うには、データのオーバーフローを改善できるだけでなく、目標区間範囲
内の0に近いデータをより適切に表現できるユニバーサルなデータ表現を見つける必要が
ある。したがって、このデータ表現は、適応性が必要であり、トレーニングまたは微調整
プロセスとともに調整できる。
上記の説明に基づいて、図2に示されるように、本開示で提案されたニューラルネット
ワークの量子化パラメータの確定方法のフローチャートである。図2に示す技術案によっ
て確定された量子化パラメータは、量子化予定のデータを表すために使用され、量子化さ
れた固定小数点数を確認する。量子化された固定小数点数は、ニューラルネットワークの
トレーニング、微調整、または推論に使用される。この方法には次のものが含まれる。
ステップ201):量子化予定のデータを統計し、各タイプの量子化予定のデータの統
計結果を確定する。ここで、量子化予定のデータには、ニューラルネットワークのニュー
ロン、重み、勾配、およびオフセットの少なくとも1つが含まれる。
前述のように、ニューラルネットワークのトレーニングまたは微調整のプロセスでは、
ニューラルネットワークの各層には、ニューロン、重み、勾配、オフセットの4種類のデ
ータが含まれる。推論プロセスでは、ニューラルネットワークの各層に、ニューロン、重
み、オフセットの3種類のデータが含まれる。これらのデータは高精度のデータフォーマ
ットで表現されている。本明細書では、例として高精度のデータとして浮動小数点数を使
用している。例としての浮動小数点数は、網羅的なリストではなく、例の一部のリストに
すぎないことは明らかである。当業者は、技術案の本質を理解していれば、本開示の技術
案に基づいて他の技術案を生み出すことができる。たとえば、高精度のデータは、範囲が
広く、最小精度が低く、データビット幅が大きい固定小数点数にすることができる。この
技術案を使用して、データビット幅が小さい固定小数点数に変換できる。ただし、達成さ
れる機能および技術的効果が本開示のものと類似している限り、それらは本開示の保護範
囲に含まれるべきである。
ニューラルネットワークの構造の種類に関係なく、ニューラルネットワークのトレーニ
ングまたは微調整の過程で、量子化予定のデータには、ニューラルネットワークのニュー
ロン、重み、勾配、およびオフセットの少なくとも1つが含まれる。推論プロセスでは、
量子化予定のデータこれには、ニューラルネットワークのニューロン、重み、およびオフ
セットのデータが少なくとも1つ含まれている。たとえば、量子化予定のデータを重みと
すると、量子化予定のデータは、ニューラルネットワーク内の特定の層のすべての重み、
またはニューラルネットワーク内の特定の層の重みの一部にすることができる。層が畳み
込み層の場合、量子化予定のデータは、チャンネル単位での畳み込み層のすべての重みま
たは重みの一部である可能性があり、チャネルは畳み込み層のチャネルのすべてまたは一
部である。畳み込み層のみがチャネルの概念を持ち、畳み込み層では、重みサブ層のみが
チャネルの方法で量子化されることを強調する必要がある。
以下では、量子化予定のデータがニューロンとニューラルネットワーク内のターゲット
層の重みであることを例として取り上げ、技術案について詳しく説明する。このステップ
では、ターゲット層の各層のニューロンと重みを個別にカウントして、各タイプの量子化
予定のデータの最大値と最小値を取得する。また、各タイプの量子化予定のデータの絶対
最大値も取得できる。ここで、ニューラルネットワークで量子化する必要のある層として
のターゲット層は、1つの層または複数の層にすることができる。1つの層を単位として
、各タイプの量子化予定のデータの最大絶対値は、各タイプの量子化予定のデータの最大
値と最小値によって確認できる。また、まず各タイプの量子化予定のデータの絶対値を取
得し、絶対値を取得した後の結果をトラバースして、各タイプの量子化予定のデータの最
大絶対値を取得することもできる。
実際の応用では、各タイプの量子化予定のデータの絶対最大値が、各タイプの量子化予
定のデータの最大値と最小値に従って取得される理由は、量子化中に、通常の状況では、
ターゲット層の各層の量子化予定のデータに対応する最大値と最小値が格納され、量子化
予定のデータの絶対値を計算するために多くのリソースを消費する必要はない。絶対最大
値は、格納された量子化予定のデータに対応する最大値と最小値に基づいて直接取得でき
る。
ステップ202):各タイプの量子化予定のデータの統計結果とデータビット幅を使用
して、対応する量子化パラメータを確定する。ここで、量子化パラメータは、人工知能プ
ロセッサがニューラルネットワーク演算プロセスにおけるデータを対応して量子化するた
めである。
このステップでは、量子化パラメータを次の6つのケースに分けることができる。第1
ケース:量子化パラメータは小数点位置パラメータsである。この場合、次の式(1)を
使用して、量子化予定のデータを量子化し、量子化データIを取得できる。
=round(F/2) (
1)
ここ、sは小数点位置パラメータ、Iはデータxの量子化後のnビットのバイナリ表
現の値、Fはデータxの量子化前の浮動小数点値、roundは四捨五入の丸め演算で
ある。このroundの丸め演算に限定されるものではなく、他の丸め演算方法も使用で
きることに注意されたい。たとえば、切り上げ、切り下げ、ゼロへの丸めなどの丸め演算
で式(1)の丸め演算を置き換えてもよい。このとき、nビットの固定小数点数で浮動小
数点数を表せる最大値Aは2(2n−1−1)であり、nビットの固定小数点数で量子
化予定のデータの数値フィールドにおいて表せる最大値は2(2n−1−1)であり、
nビットの固定小数点数で量子化予定のデータの数値フィールドにおいて表せる最小値は
−2(2n−1−1)である。式(1)からわかるように、第1ケースに対応する量子
化パラメータを使用して、量子化予定のデータを量子化すると、量子化間隔は2であり
、量子化間隔はCで表される。
Zは量子化予定のデータの数値フィールド内のすべての浮動小数点数の最大絶対値であ
るとすると、AはZを含める必要があり、かつZはA/2より大きい必要があるため、次
の式(2)の制約がある。
(2n−1−1)>=Z>2s−1(2n−1−1)
式(2)
よって、ln(Z/(2n−1−1))−1>s>=ln(Z/(2n−1−1))で
あり、s=ceil(ln(Z/(2n−1−1)))およびA=(2^ceil(ln
(Z/(2n−1−1))))(2n−1−1)が得られる。
Figure 2021179966
第2のケース:量子化パラメータが第1のスケーリング係数fである。この場合、次
の式(4)を使用して、量子化予定のデータを量子化し、量子化データIを取得できる

=round(F/f) 式
(4)
ここ、fは第1のスケーリング係数、Iはデータxの量子化後のnビットのバイナ
リ表現の値、Fはデータ量子化前の浮動小数点値、roundは四捨五入の丸めによっ
て実行される丸め演算である。このroundの丸め演算に限定されるものではなく、他
の丸め演算方法も使用できることに注意されたい。たとえば、切り上げ、切り下げ、ゼロ
への丸めなどの丸め演算で式(4)の丸め演算を置き換えてもよい。式(4)からわかる
ように、第2のケースに対応する量子化パラメータを使用して量子化予定のデータを量子
化すると、量子化間隔はfであり、量子化間隔はCで表される
第1のスケーリング係数fには、次のような状況がある。小数点位置パラメータsが
固定の既知の値であり、変更されなくなった場合、2=TとしかつTを固定値とすると
、nビットの固定小数点数で表せる浮動小数点数の最大値Aは、(2n−1−1)xTで
ある。この場合、最大値Aはデータビット幅nに依存する。このとき、量子化予定のデー
タの数値領域にあるすべての数値の最大絶対値をZとする。nビットの固定小数点数で表
せる量子化予定のデータの数値フィールドの最大値がであることを示すことができ、nビ
ットの固定小数点数で表せる量子化予定のデータの数値フィールドの最小値がであること
を示すことができる。エンジニアリング応用では、全体として第1のスケーリング係数と
して別のケースがある。現時点では、独立した小数点位置パラメータは存在しないと見な
すことができる。第2のスケーリング係数はどこにあるか。このとき、量子化予定のデー
タの数値領域にあるすべての数値の最大絶対値をZとする。nビットの固定小数点数で表
せる量子化予定のデータの数値フィールドの最大値がであることを示すことができ、nビ
ットの固定小数点数で表せる量子化予定のデータの数値フィールドの最小値がであること
を示すことができる。
Figure 2021179966
第3のケース:量子化パラメータは、小数点位置パラメータsと第2のスケーリング係
数である。この場合、次の式(6)を使用して、量子化予定のデータを量子化し、量子化
データIを取得できる。
=round(F/(2xf)) 式(6
ここ、sは小数点位置パラメータ、fは第2のスケーリング係数で、f=Z/(2
(2n−1−1))であり、Iはデータxの量子化後のnビットのバイナリ表現の値
、Fはデータx量子化前の浮動小数点値、roundは四捨五入の丸め演算である。このr
oundの丸め演算に限定されるものではなく、他の丸め演算方法も使用できることに注
意されたい。たとえば、切り上げ、切り下げ、ゼロへの丸めなどの丸め演算で式(6)の
丸め演算を置き換えてもよい。量子化予定のデータの数値フィールドで、nビットの固定
小数点数で表せる最大値Aは2(2n−1−1)である。式(6)からわかるように、
第3のケースに対応する量子化パラメータを使用して量子化予定のデータを量子化すると
、量子化間隔は2xfであり、量子化間隔はCで表される。
量子化予定のデータの数値領域におけるすべての数値の最大絶対値をZとする。このと
き、式(2)に従って、次の式が得られる。
1>=Z/(2(2n−1−1))>1/2、即ち1>=Z/A>1/2、1>=f
>1/2
=Z/(2(2n−1−1))=Z/Aの場合、式(2)によれば、Zは損失な
く正確に表現できる。f=1の場合、式(6)および式(1)は、s=ceil(ln
(Z/(2n−1−1)))である。nビットの固定小数点数で表せる、量子化予定のデ
ータの数値フィールドの最大値が(2n−1−1)x2xfであり、nビットの固定
小数点数で表せる、量子化予定のデータの数値フィールドの最小値が−(2n−1−1)
x2xfである。
Figure 2021179966
図3に示すように、対称固定小数点数の概略図を表している。図3に示す量子化予定の
データの数値フィールドは、対称中心として「0」で分布されている。Zは、量子化予定
のデータの数値フィールド内のすべての浮動小数点数の最大絶対値である。図3は、Aは
nビットの固定小数点数で表すことができる浮動小数点数の最大値である。浮動小数点数
Aから固定小数点数2n−1−1への変換はである。オーバーフローを回避するには、A
はZを含める必要がある。実際には、ニューラルネットワーク運用の過程での浮動小数点
データは一定の間隔で正規分布する傾向があるが、対称中心が「0」の分布を必ずしも満
たすとは限らない。このとき、固定小数点数で表すとオーバーフローが発生しやすくなる
。この状況を改善するために、図4に示すように、オフセットが量子化パラメータに導入
される。図4では、量子化予定のデータの数値フィールドは、「0」を中心として対称的
に分布していない。Zminは、量子化予定のデータの数値フィールドのすべての浮動小
数点数の最小値であり、Zmaxは量子化予定のデータの数値フィールドのすべての浮動
小数点数の最大値である。PはZmin〜Zmaxの間の中心点であり、全体として量子
化予定のデータの数値フィールドをシフトして、変換後に量子化予定のデータの数値フィ
ールドが対称中心として「0」で分散されるようにし、変換後に量子化予定のデータの数
値フィールドは最大絶対値はである。図4からわかるように、オフセットはポイント「0
」からポイント「P」までの水平距離であり、この距離はオフセットと呼ばれている。こ
こ、0=(Zmax+Zmin)/2で、Z=(Zmax−Zmin)/2である。
上記のオフセットOの説明に基づいて、第4のケースの量子化パラメータのケースが表
れる。第4のケース:量子化パラメータには、小数点位置パラメータとオフセットが含ま
れる。この場合、次の式(8)を使用して、量子化予定のデータを量子化し、量子化デー
タIを取得できる。
=round((F−O)/2
式(8)
ここ、sは小数点位置パラメータ、Oはオフセット、0=(Zmax+Zmin)/2
はデータxの量子化後のnビットのバイナリ表現の値、Fはデータ量子化前の浮動小数
点値、roundは四捨五入の丸め演算である。このroundの丸め演算に限定される
ものではなく、他の丸め演算方法も使用できることに注意されたい。たとえば、切り上げ
、切り下げ、ゼロへの丸めなどの丸め演算で式(8)の丸め演算を置き換えてもよい。こ
のとき、nビットの固定小数点数で浮動小数点数を表せる最大値Aは2(2n−1−1
)であり、nビットの固定小数点数で量子化予定のデータの数値フィールドにおいて表せ
る最大値は2(2n−1−1)であり、nビットの固定小数点数で量子化予定のデータ
の数値フィールドにおいて表せる最小値は−2(2n−1−1)+Oである。式(8)
から分かる、第4のケースに対応する量子化パラメータを使用して量子化予定のデータを
量子化すると、量子化間隔は2であり、量子化間隔はCで表される。
量子化予定のデータの数値フィールド内のすべての浮動小数点数の最大絶対値をZとす
ると、AはZを含め、かつZはA/2より大きいる必要があり、式(2)に従ってln(
Z/(2n−1−1))−1>s>=ln(Z/(2n−1−1))を取得してからs=
ceil(ln(Z/(2n−1−1)))及びA=(2^ceil(ln(Z/(2
−1−1))))(2n−1−1)を取得する。
Figure 2021179966
上記のオフセットOの説明に基づいて、第5の量子化パラメータのケースが表れる。第
5ケース:量子化パラメータには、第1のスケーリング係数fとオフセットOが含まれ
る。この場合、次の式(10)を使用して、量子化予定のデータを量子化し、量子化デー
タIを取得できる。
=round((F−O)/f) 式
(10)
ここで、fは第1のスケーリング係数、Oはオフセット、Iはデータxの量子化後
のnビットのバイナリ表現の値、Fはデータ量子化前の浮動小数点値、roundは四
捨五入の丸め演算である。このroundの丸め演算に限定されるものではなく、他の丸
め演算方法も使用できることに注意されたい。たとえば、切り上げ、切り下げ、ゼロへの
丸めなどの丸め演算で式(10)の丸め演算を置き換えてもよい。このとき、小数点位置
パラメータsが既知の固定値であり、変化しなくなり、2=Tとすると、Tを固定値と
するという状況がある。次に、nビットの固定小数点数で表せる浮動小数点数の最大値A
は(2n−1−1)xTである。この場合、最大値Aはデータビット幅nに依存する。こ
のとき、量子化予定のデータの数値領域の全数値の最大絶対値をZとして設定すると、f
=Z/(2n−1−1)となり、Z=(2n−1−1)xfとなる。nビットの固定
小数点数で表せる量子化予定のデータの数値フィールドの最大値が2n−1−1)xf
である、nビットの固定小数点数で表せる量子化予定のデータの数値フィールドの最小値
が−2n−1−1)xfである。エンジニアリング応用では、2xfは全体として
第1のスケーリング係数として別のケースがある。現時点では、独立した小数点位置パラ
メータは存在しないと見なすことができる。fは第2のスケーリング係数である。この
とき、量子化予定のデータの数値領域にあるすべての数値の最大絶対値をZとすると、f
=Z/(2n−1−1)でZ=(2n−1−1)xfとなる。nビットの固定小数点
数で表せる量子化予定のデータの数値フィールドの最大値が(2n−1−1)xf+O
であるが、nビットの固定小数点数で表せる量子化予定のデータの数値フィールドの最小
値が−(2n−1−1)xf+Oである。
式(10)からわかるように、第5ケースに対応する量子化パラメータを使用して量子
化予定のデータを量子化すると、量子化間隔はfであり、量子化間隔はCである。
Figure 2021179966
上記のオフセットOの説明に基づいて、第6の量子化パラメータのケースが表れる。第
6ケース:量子化パラメータには、小数点位置パラメータ、第2のスケーリング係数f
、およびオフセットOが含まれる。この場合、次の式(12)を使用して、量子化予定の
データを量子化し、量子化データIを取得できる。
=round((F−O)/(2xf)) 式(1
2)
ここ、sは小数点位置パラメータで、オフセットO、fは第2のスケーリング係数で
、f=Z/(2(2n−1−1))かつZ=(Zmax−Zmin)/2であり、I
はデータxの量子化後のnビットのバイナリ表現の値、Fはデータ量子化前の浮動小
数点値、roundは四捨五入の丸め演算である。このroundの丸め演算に限定され
るものではなく、他の丸め演算方法も使用できることに注意されたい。たとえば、切り上
げ、切り下げ、ゼロへの丸めなどの丸め演算で式(12)の丸め演算を置き換えてもよい
。nビットの固定小数点数で表せる量子化予定のデータの数値フィールドでの最大値Aは
(2n−1−1)である。式(12)からわかるように、第6ケースに対応する量子
化パラメータを使用して量子化予定のデータを量子化すると、量子化間隔は2xf
あり、量子化間隔はCで表される。
量子化予定のデータの数値領域におけるすべての数値の最大絶対値をZとする。このと
き、式(2)に従って、次の式が得られる。
1>=Z/(2(2n−1−1))>1/2、即ち1>=Z/A>1/2、1>=f
>1/2
=Z/(2(2n−1−1))=Z/Aの場合、式(2)によれば、Zは損失な
く正確に表現できる。f=1の場合、s=ceil(ln(Z/(2n−1−1)))
である。nビットの固定小数点数で表せる量子化予定のデータの数値フィールドの最大値
が(2n−1−1)x2xf+Oであるが、nビットの固定小数点数で表せる量子化
予定のデータの数値フィールドの最小値が−(2n−1−1)x2xf+Oである。
Figure 2021179966
6つの量子化パラメータの確定プロセスに関する上記の詳細な説明は、説明の一例にす
ぎない。量子化パラメータのタイプは、異なる実施形態における上記の説明とは異なる場
合がある。式(1)〜式(13)からわかるように、小数点位置パラメータとスケーリン
グ係数はすべてデータビット幅に関連している。データビット幅が異なると、小数点位置
パラメータとスケーリング係数が異なるため、量子化の精度に影響する。トレーニングま
たは微調整の過程で、特定の反復範囲内で、同じデータ幅の量子化を使用しても、ニュー
ラルネットワーク演算の全体的な精度にはほとんど影響しない。特定の回数の反復の後、
同じデータビット幅の量子化はトレーニングまたは微調整の精度要件を満たすことができ
ない。これには、トレーニングまたは微調整プロセスとともにデータビット幅nを調整す
る必要がある。簡単に、データビット幅nを手動で設定できる。異なる反復時間の範囲で
、事前に設定された対応するデータビット幅nを呼び出する。ただし、前述のように、低
ビット幅で表される固定小数点数を使用してトレーニングを実装するプロセスは非常に複
雑である。データビット幅を事前に設定するこの人為的な調整方法は、基本的に実際の応
用の要件を満たしていない。
この技術案では、データビット幅nは量子化誤差に従って調整される。より詳細には、
量子化誤差をしきい値と比較し、比較結果を取得する。ここで、しきい値は第1のしきい
値と第2のしきい値を含み、第1のしきい値が第2のしきい値よりも大きい。比較結果の
3つの場合がある。第1の場合は、量子化誤差が第1のしきい値以上である。この場合、
データビット幅が増やす。第2のケースは、量子化誤差が第2のしきい値以下である場合
である。この場合、データビット幅を減らす。第3のケースは、量子化誤差が第1のしき
い値と第2のしきい値の間にある場合である。この場合、データビット幅は変更されない
。実際の応用では、第1のしきい値と第2のしきい値は、経験値または可変ハイパーパラ
メータである可能性がある。従来のハイパーパラメータ最適化方法は、第1のしきい値と
第2のしきい値に適しており、ハイパーパラメータ最適化スキームはここでは繰り返され
ない。
データビット幅は、固定ビット長に従って調整できること、または量子化誤差と誤差し
きい値の差に従って調整できることを強調する必要がある。データビット幅は、可変調整
ステップ長さによって、最後に次のように調整できる。ニューラルネットワークの運用プ
ロセスの実際のニーズに応じて、データビット幅を長くまたは短く調整できる。たとえば
、現在の畳み込み層のデータビット幅nは16であり、データビット幅nは量子化誤差d
iffbitに応じて12に調整される。つまり、実際の応用では、データビット幅nを
16ではなく12にして、ニューラルネットワークの運用プロセスの精度要件を満たすた
め、精度の許容範囲内で固定小数点の動作速度を大幅に向上させることができる。これに
より、人工知能プロセッサのチップのリソース使用率が向上する。
量子化誤差diffbitの場合、量子化誤差は、量子化後のデータおよび量子化前の
対応するデータによって確定される。実際の応用では、3つの量子化誤差確定方法があり
、それらはすべてこの技術案に適用できる。第1の方法:量子化間隔、量子化後のデータ
の数、および量子化前の対応するデータに従って、式(14)に従って量子化誤差を確定
する。
diffbit=ln(C*2−1*m/Σ|F|) 式(14
ここで、Cは量子化中の対応する量子化間隔、mは量子化後に取得された量子化データ
の数、Fは量子化予定のデータに対応する浮動小数点値、iは量子化予定のデータ集合
内のデータの添え字である。
Figure 2021179966
量子化誤差diffbitを取得するための上記の方法は単なる例であり、網羅的なリ
ストではないことを強調すべきである。当業者は、本開示の技術案に基づいて、本開示の
技術案の本質を理解し得る。他の変形または変換を生成する。量子化後のデータおよび量
子化前の対応するデータに基づく量子化誤差の確定をサポートする変形式。ただし、達成
される機能および技術的効果が本開示のものと類似している限り、それらは本開示に属す
るべきである。保護の範囲。
データビット幅については、図5aは、トレーニングプロセス中のニューラルネットワ
ークの重みデータの変動範囲のグラフの1つである。図5bは、トレーニングプロセス中
のニューラルネットワークの重みデータの変動範囲の第2のグラフである。図5aおよび
5bでは、横軸は反復回数を表し、縦軸は対数を取った後の重みの最大値を表す。図5a
に示される重みデータ変動振幅曲線は、ニューラルネットワークの任意の畳み込み層の同
じエポック(epoch)における異なる反復に対応する重みデータの変動を示している
。図5bでは、conv0層は重みデータ変動範囲曲線Aに対応し、conv1層は重み
データ変動範囲曲線Bに対応し、conv2層は重みデータ変動範囲曲線Cに対応し、c
onv3層は重みデータ変動範囲曲線D、conv4に対応する。この層は、重みデータ
の変動範囲曲線eに対応する。図5aと図5bからわかるように、同じエポックで、初期
トレーニング段階では、各反復の重み変動範囲が比較的大きい。トレーニングの中期およ
び後期では、各反復での重みの変化はそれほど大きくならない。この場合、トレーニング
の中期以降の段階では、各反復の前後で重みデータがほとんど変化しないため、各反復に
対応する層の重みデータは、特定の反復間隔内で類似性がある。ニューラルネットワーク
トレーニングプロセスでは前の反復で各層に含まれるデータを量子化する場合、前の反復
で対応する層の量子化で使用されたデータビット幅を使用できる。ただし、トレーニング
の開始時には、各反復の前後で重みデータが比較的大きく変化するため、量子化に必要な
浮動小数点演算の精度を満たすために、初期トレーニング段階の各反復で、前の反復で使
用した対応する層量子化を使用する。データビット幅は、カレント反復の対応する層の重
みデータを量子化するか、現在の層のプリセットデータビット幅nに基づいて現在の層の
重みデータを量子化して、量子化された固定小数点数を取得する。量子化された重みデー
タと量子化前の対応する重みデータに従って量子化誤差diffbitを確定する。量子
化誤差diffbitとしきい値の比較結果、前の反復で対応する層の量子化に使用され
たデータビット幅n、または現在の層のプリセット値データビット幅nが調整され、調整
後のデータビット幅がカレント反復の対応する層の重みデータの量子化に適用される。さ
らに、トレーニングまたは微調整のプロセスでは、ニューラルネットワークの各層間の重
みデータは互いに独立しており、類似性はない。重みデータには類似性がないため、各層
間のニューロンデータも互いに独立しており、類似性はない。したがって、ニューラルネ
ットワークのトレーニングまたは微調整プロセスでは、ニューラルネットワークの各反復
における各層のデータビット幅は、対応するニューラルネットワーク層にのみ適用できる
重みデータを例にとると、ニューラルネットワークのトレーニングや微調整の過程で、
ニューロンデータと勾配データに対応するデータビット幅も同じであり、ここでは繰り返
さない。
ニューラルネットワーク推論のプロセスでは、ニューラルネットワークの各層間の重み
データは互いに独立しており、類似性はない。重みデータには類似性がないため、各層間
のニューロンデータも互いに独立しており、類似性はない。したがって、ニューラルネッ
トワークの推論プロセスでは、ニューラルネットワークの各層のデータビット幅が対応す
る層に適用される。実際の応用では、推論プロセスで毎回入力されるニューロンデータは
異なるか異なる可能性があり、ニューラルネットワークの各層間の重みデータは互いに独
立しているため、ニューラルネットワークの各隠れ層層の入力ニューロンデータは類似し
ていない。量子化する場合、上位層の入力ニューロンデータで使用されるデータビット幅
は、現在の層の入力ニューロンデータには適していない。これに基づいて、量子化に必要
な浮動小数点演算の精度を満たすために、推論では、現在の層の入力ニューロンデータは
、前の層の入力ニューロンデータの量子化で使用されるデータビット幅によって、または
現在の層に基づいて量子化される。プリセットデータのビット幅nは、現在の層の入力ニ
ューロンデータを量子化して、量子化された固定小数点数を取得する。量子化前の入力ニ
ューロンデータとそれに対応する量子化された入力ニューロンデータに従って量子化誤差
diffbitを確定し、量子化誤差diffbitとしきい値の比較結果によって、上
位層の入力ニューロンデータを量子化するときに使用されるデータビット幅はnまたは現
在の層のプリセットデータビット幅nが調整され、調整後のデータビット幅が現在の層の
入力ニューロンデータの量子化に適用される。重みデータに対応するデータビット幅も同
じであり、ここでは繰り返さない。
量子化パラメータについては、図5aからからわかるように、同じ周期(エポック)の
初期トレーニング段階で、各反復の重みが比較的大きく変化する。トレーニングの中期お
よび後期では、各反復の前後の重みデータはあまり変化しないため、各反復の対応する層
の重みデータは特定の反復間隔内で類似性があり、カレント反復の各層が量子化される。
前の反復の対応する層の対応するデータの量子化パラメータは、前の反復のデータに使用
できる。量子化パラメータは、トレーニングの中間および後の段階で反復なしで再確認さ
れ、量子化パラメータは、最初のトレーニング段階の各反復の各層でのみ確認される。ニ
ューラルネットワーク演算に必要な浮動小数点操作の精度を満たし、量子化の効率を大幅
に向上させる。さらに、トレーニングまたは微調整のプロセスでは、ニューラルネットワ
ークの各層間の重みデータは互いに独立しており、類似性はない。重みデータには類似性
がないため、各層間のニューロンデータも互いに独立しており、類似性はない。したがっ
て、ニューラルネットワークのトレーニングまたは微調整プロセスでは、ニューラルネッ
トワークの各反復における各層の量子化パラメータが、対応する層で量子化される対応す
るデータに適用される。
重みデータを例にとると、ニューラルネットワークのトレーニングまたは微調整プロセ
スでは、ニューロンデータと勾配データに対応する量子化パラメータも同じであり、ここ
では繰り返さないことにする。
ニューラルネットワーク推論のプロセスでは、ニューラルネットワークの各層間の重み
データは互いに独立しており、類似性はない。重みデータには類似性がないため、各層間
のニューロンデータも互いに独立しており、類似性はない。したがって、ニューラルネッ
トワーク推論プロセスでは、ニューラルネットワークの各層の量子化パラメータが、対応
する層で量子化予定のデータに適用される。たとえば、ニューラルネットワークの現在の
層は畳み込み層である。畳み込み層で量子化予定のデータによると、現在の畳み込み層で
量子化予定のデータの量子化パラメータは、図2に示す技術案に従って取得される。量子
化パラメータは、現在の畳み込み層は、他の層が畳み込み層であっても、ニューラルネッ
トワークの他の層に適用することはできない。
要約すると、データビット幅と量子化パラメータの拡張戦略は、データ間の類似性に基
づいて確定される。データが類似している場合は、データビット幅と量子化パラメータを
使用できる。類似性を得るには、データビット幅または量子化パラメータを調整する必要
がある。データ間の類似性の測度は、通常KLダイバージェンスによって測定され、次の
式(17)によっても測定できる。
Absmax(A)≒absmax(B)かつmean(A)≒mean(B) 式(1
7)
いくつかの実施形態では、データAおよびデータBが式(17)を満たす場合、データ
AおよびデータBは類似していると確定される。
上記の量子化誤差の確認、データビット幅、データビット幅、および量子化パラメータ
の拡張戦略の調整方法は単なる例であり、以下のように網羅的ではないことに注意された
い。量子化誤差を確認する方法、データビット幅を調整する方法、データビット幅を拡張
する戦略、および量子化パラメータはすべて、ニューラルネットワークの微調整プロセス
に適している。また、データ間の類似性の測定に関しては、上記のKLダイバージェンス
と式(17)の類似性測定方法は単なる例であり、以下のような網羅的ではない。ヒスト
グラムマッチング法、マトリックス分解法、特徴点に基づく画像類似度計算法、近接測定
標準法など。当業者が本開示の技術案の本質を理解している状況下では、本開示の技術案
に基づいて他の変形または変形を生じ得るが、達成された機能および技術的効果が本開示
のものと類似している限り、すべてがこの開示の保護範囲に含まれるべきである。
要約すると、トレーニングの中期および後期段階では、各反復の前後の重みデータはあ
まり変化しないため、各反復の対応する層の重みデータは、特定の反復間隔内で類似して
いる。このテクノロジーを作成するためにこのソリューションは、合理的なアプリケーシ
ョンを実現するための人工知能プロセッサのチップリソースの要件を満たすためのトレー
ニングまたは微調整での適用性が高くなる。反復間隔内で各反復の対応する層がなるよう
に、反復間隔を確定するための戦略が必要である。データビット幅nは変更されないまま
であり、反復間隔を超えると、データビット幅nが変更されるため、反復ごとにデータビ
ット幅nを調整するかどうかを確定する必要はない。同様に、量子化パラメータは同じで
あり、人工知能プロセッサのチップのピーク計算能力を向上させると同時に、量子化に必
要な浮動小数点演算の精度を満たする。
図6に示すように、これは目標反復間隔を確定する方法のフローチャートの1つである
。図6に示す技術案では、目標反復間隔は少なくとも1つの重み更新反復を含み、同じデ
ータビット幅が同じ目標反復間隔内の量子化プロセスで使用される。目標反復間隔を確定
するステップには、次のものが含まれる。
ステップ601):予測時点で、重み反復プロセス中に量子化予定のデータの対応する
小数点位置パラメータの変化傾向値を確定する;ここで、予測時点は、データビット幅を
調整する必要があるかどうかを確定するための時点である。調整が行われる時点、予測時
点は、重み更新の反復が完了する時点に対応する。
このステップでは、式(18)に従って、小数点位置パラメータの変化傾向値は、現在
の予測時点に対応する重みに基づいている。反復プロセス中の小数点位置パラメータのス
ライディング平均値、および前の予測時点に対応する値重み反復プロセスの小数点位置パ
ラメータのスライディング平均値が確定されるか、現在の予測時点に対応する重み反復プ
ロセスの小数点位置パラメータと、最後の予測時点に対応する重み反復プロセスの小数点
位置によって確定される。パラメータのスライディング平均値が確定される。式18の式
は次のとおりである。
diffupdate1=|M(t)−M(t−1)|=α|s(t)−M(t−1)
| 式(18)
式18で、M(t)はトレーニングの反復とともに増やす小数点位置パラメータsのス
ライディング平均値である。その中には、M(t)は式(19)に従って得られる、トレ
ーニングの反復が増やすときのt番目の予測時点に対応する小数点位置パラメータのスラ
イディング平均値がある。s(t)はt番目の予測時点に対応する小数点位置パラメータ
sである。αはハイパーパラメータであり、M(t−1)はt−1番目の予測時点に対応
する小数点位置パラメータsのスライディング平均値である。小数点位置パラメータsの
変化は、量子化する現在のデータの最大値Zmaxの変化にも偽装して反映されるため、
小数点位置パラメータの変化傾向を測定する。diffupdate1値が大きいほど、
値の範囲が大幅に変化し、更新頻度が短くなる。つまり、目標反復間隔が短くなる。
(t)←αxs(t−1)+(1−α)M(t−1) 式(1
9)
ステップ602):小数点位置パラメータの変化傾向値に従って、対応する目標反復間
隔を確定する。
この技術案では、目標反復間隔は式(20)に従って確定される。目標反復間隔の場合
、同じ目標反復間隔内の量子化プロセスで同じデータビット幅が使用され、異なる目標反
復間隔内の量子化プロセスで使用されるデータビット幅は同じでも異なっていてもよい。
I=β/diffupdate1−γ 式(20
式(20)で、Iは目標反復間隔である。diffupdate1は小数点位置パラメ
ータの変化傾向値である。β、γは経験値であり、可変ハイパーパラメータにすることも
できる。従来のハイパーパラメータ最適化方法はすべて、β、γに適しており、ハイパー
パラメータの最適化スキームはここでは繰り返されない。
この技術案の場合、予測時点には最初の予測時点が含まれ、最初の予測時点は目標反復
間隔によって確定される。具体的には、トレーニングまたは微調整プロセスのt番目の予
測時点で、カレント反復の対応する層の重みデータが、前の反復の対応する層の量子化で
使用されるデータビット幅を使用して量子化され、量子化された固定小数点数が取得され
る。量子化前の重みデータとそれに対応する量子化前の重みデータに基づいて量子化誤差
diffbitを求めます。量子化誤差diffbitはそれぞれ第1しきい値および第
2しきい値と比較され、その比較結果は、前の反復で対応する層の量子化に使用されたデ
ータビット幅を調整するかどうかを確定するためである。仮定:t番目の最初の予測時点
は100回目の反復に対応し、99回目の反復で使用されるデータビット幅はn1である
。100回目の反復では、データビット幅n1に従って量子化誤差diffbitを確認
し、量子化誤差diffbitを第1しきい値、第2しきい値と比較して比較結果を求め
ます。比較結果により、データビット幅n1を変更する必要がないことが確認された場合
は、式(20)を使用して、目標反復間隔が8反復であることを確認する。現在の目標反
復間隔内で、1番目の反復として100回目の反復を使用する場合は、100回目の反復
から107回目の反復まで第2の反復は現在の目標反復間隔である。100回目の反復が
前の目標反復間隔の最後の反復である場合、101回目から108回目の反復が現在の目
標反復間隔として使用される。現在の目標反復間隔で量子化する場合、各反復は、前の目
標反復間隔で使用されたデータビット幅n1を引き続き使用する。この場合、異なる目標
反復間隔間の量子化で使用されるデータビット幅は同じにすることができる。100回目
の反復から107回目の反復が現在の目標反復間隔として使用される場合、次の目標反復
間隔内の108回目の反復は、t+1の最初の予測時点と見なされる。108回の反復が
現在の目標反復間隔として使用され、現在の目標反復間隔内の108回目の反復がt+1
の最初の予測時点として使用される。t+1番目の予測時点で、データビット幅n1に従
って量子化誤差diffbitを確認し、量子化誤差diffbitを第1しきい値、第
2しきい値と比較して比較結果を求めます。比較結果から、データビット幅n1をn2に
変更する必要があると判断し、式(20)を使用して、目標反復間隔が55反復であるこ
とを確認する。次に、108回目の反復から163回目の反復、または109回目の反復
から163回目の反復が目標反復間隔として使用され、各反復は、目標反復間隔内で量子
化するときにデータビット幅n2を使用する。この場合、量子化で使用されるデータビッ
ト幅は、異なる目標反復間隔間で異なる可能性がある。
この技術案に関しては、最初の予測時点が1番目の反復であるか、目標反復間隔内の最
後の反復であるかに関係なく、式(18)を適用して、小数小数点位置パラメータの変化
傾向値を取得できる。現在の時点での最初の予測時点が現在の目標反復間隔の1番目の反
復である場合、式(18)では、M(t)は現在の目標反復間隔の1番目の反復に対応す
る時点に対応する小数点位置パラメータsが、トレーニング反復とともに増やすスライデ
ィング平均値である。s(t)は現在の目標反復間隔の1番目の反復の時点に対応する小
数点位置パラメータsであり、M(t−1)は前の目標反復間隔の1番目の反復の時点に
対応する小数点位置パラメータsが、トレーニングの反復とともに増やすスライディング
平均値である。現在の時点での最初の予測時点が現在の目標反復間隔の最後の反復である
場合、式(18)は、M(t)はトレーニング反復としての現在の目標反復間隔の最後の
反復に対応する時点に対応する小数点位置パラメータsが、増加したスライディング平均
値であり、s(t)は現在の目標反復間隔の最後の反復の時点に対応する小数点位置パラ
メータsであり、M(t−1)は前の目標反復間隔の最後の反復の時点に対応する小数点
位置パラメータsが、トレーニングの反復とともに増やすスライディング平均値である。
この技術案の場合、第1の予測時点を含むことに基づいて、予測時点はまた、第2の予
測時点を含み得る。第2の予測時点は、データ変動範囲曲線に従って確定される。ニュー
ラルネットワークトレーニングプロセスにおけるビッグデータのデータ変動範囲に基づい
て、図5aに示されるようなデータ変動範囲曲線が得られる。
重みデータを例にとると、図5aに示すデータ変動範囲曲線からからわかるように、ト
レーニングの開始からT回目の反復の反復間隔まで、重みが更新されるたびにデータ変動
範囲が非常に大きい。現在の予測時点で、量子化するとき、カレント反復は最初に前の反
復のデータビット幅n1を使用して量子化し、得られた量子化結果と量子化前の対応する
データが対応する量子化誤差を確定する。量子化誤差はそれぞれ第1のしきい値である。
第2のしきい値を比較し、比較結果に応じてデータビット幅n1を調整し、データビット
幅n2を取得する。データビット幅n2を使用して、カレント反復に含まれる量子化され
る重みデータを量子化する。次に、式(20)に従って目標反復間隔を確定し、最初の予
測時点を確定し、最初の予測時点で、データビット幅を調整するかどうかと調整方法を確
定し、式(20)に従って次の目標反復間隔を確定する。次の最初の予測時点を取得する
。トレーニングの開始からT回目の反復までの間隔のため、各反復の前後で変化する重み
データが非常に大きく、各反復の対応する層の重みデータに類似性がない。精度の問題に
対応するために、量子化してください。カレント反復の各層のデータが前の反復の対応す
る層の対応する量子化パラメータを引き続き使用できない場合、データビット幅は最初の
T反復に対して調整できる。このとき、量子化は前のT反復の各反復に対して使用される
。のデータビット幅が異なり、目標反復間隔は1反復である。人工知能プロセッサのチッ
プのリソースの利用を最適化するために、前のT反復の目標反復間隔は、図5aに示すデ
ータ変動範囲曲線によって明らかにされた法則に従って、つまり前のデータ変動範囲曲線
に従って事前に事前設定できる。T反復の目標反復間隔は直接事前設定されており、前の
T反復の各反復に対応する重みの更新が第2の予測時点として完了したことを式(20)
で確認する必要はない。これにより、人工知能プロセッサのチップのリソースがより合理
的になる。図5aに示すデータ変動範囲曲線は、T回目の反復以降あまり変化していない
。トレーニングの中期および後期段階では、量子化パラメータは反復なしで再確認される
。T回目の反復またはT+1回目の反復では、現在の時刻を使用する。反復は、量子化前
のデータと量子化後のデータに対応して、量子化誤差を確定する。量子化誤差に応じて、
データビット幅の調整が必要かどうか、調整方法を確定し、式(20)に従って目標反復
間隔を確定する。確認された目標反復間隔が55反復である場合、データビット幅を調整
するかどうかを確定するための最初の予測時点として、T回目の反復またはT+1回目の
反復後の55回の反復に対応する時点が必要である。同じ周期(エポック)のすべての代
数演算が完了するまで、次の最初の予測時点を確定するために、式(20)に従って次の
目標反復間隔を調整および確定する方法。これに基づいて、各エポックの後に、データビ
ット幅または量子化パラメータに適応調整が行われ、最後に、量子化後のデータを使用し
て、精度が期待に応えるニューラルネットワークが取得される。
特に、図5aに示す重みデータの変動範囲のグラフからTの値が130と確定されたと
する(この値は図5aに対応していない。説明の便宜上、Tの値は130とのみ仮定する
。)の場合、トレーニングプロセスの130回目の反復は、第2の予測時点と見なされ、
現在の最初の予測時点は、トレーニングプロセスの100回目の反復である。100回目
の反復では、式(20)目標反復間隔を35回の反復として確定する。目標反復間隔で、
130回目の反復までトレーニングし、第2の予測時点に到達する。この時点で、データ
ビット幅を調整する必要があるかどうか、および130回目の反復に対応する時点でどの
ように調整するかを確定する必要がある。式(20)は、目標反復間隔を確定する。この
場合に確定された目標反復間隔が42反復であると仮定する。130回目の反復から17
2回目の反復までを目標反復間隔として、目標反復間隔が35回の場合に確定される最初
の予測時点に対応する135回目の反復は、42回の目標反復間隔内にある。135回目
の反復では、式(20)に従って、データビット幅を調整するかどうかとその調整方法を
判断できる。また、135回目の反復で評価予測を行わず、172回目の反復に直接進ん
で、データビット幅を調整する必要があるかどうかとその調整方法を評価することもでき
る。つまり、135回目の反復で評価と予測を実行するかどうかは、この技術案に適して
いる。
要約すると、第2の予測時点は、データ変動曲線に従って事前に事前設定されている。
トレーニングまたは微調整の初期段階では、目標反復間隔を確定するために人工知能プロ
セッサのチップのリソースを費やす必要はない。プリセット第2の予測時間この時点で、
データビット幅は量子化誤差に応じて直接調整され、調整後のデータビット幅は、カレン
ト反復に含まれる量子化予定のデータを量子化するためである。トレーニングまたは微調
整の中期および後期段階では、式(20)に従って目標反復間隔を取得して、対応する最
初の予測時点を確定し、各最初の予測時点で、データビット幅を調整するかどうかと調整
方法を確定する。このように、ニューラルネットワーク演算に必要な浮動小数点操作の精
度を満たしながら、人工知能プロセッサのチップのリソースが合理的に使用され、量子化
の効率が大幅に向上する。
実際には、データビット幅のより正確な目標反復間隔を得るために、小数点位置パラメ
ータの変化傾向値だけでなく、小数点位置パラメータの変化傾向値とデータビット幅の変
化傾向値も同時に考慮することができる。図7に示すように、これは、目標反復間隔を確
定する方法の第2のフローチャートである。目標反復間隔を確定するステップには、次の
ものが含まれる。
ステップ701):予測時点で、重み反復プロセス中における量子化予定のデータの対
応する小数点位置パラメータの変化傾向値およびデータビット幅の変化傾向値を確定する
;ここで、予測時点は、データビット幅を調整する必要があるかどうかを判断するための
時点である。予測時点は、重み更新の反復が完了する時点に対応する。
小数点位置パラメータの変化傾向値に基づいてデータビット幅の目標反復間隔を確定す
るための図6に示される技術案の内容は、図7に示される技術案に適用可能であり、ここ
では繰り返されないことを強調すべきである。
このステップでは、式(21)に従って、データビット幅の変化傾向値が対応する量子
化誤差を使用して確定される。
diffupdate2=δ*diff bit 式(2
1)
式(21)で、δはハイパーパラメータ、diffbitは量子化誤差、diffup
date2はデータビット幅の変化傾向値である。diffupdate2は量子化に使
用されるデータビット幅nの変化傾向を測定するには使われ、diffupdate2
が大きいほど、固定小数点ビット幅を更新する必要があり、更新頻度を短くする必要があ
る。
図7に含まれる小数点位置パラメータの変化傾向値は、式(18)に従って取得でき、
式(18)のM(t)は式(19)に従って取得できる。diffupdate1は小数
点位置パラメータの変化sは、量子化予定のデータの最大値Zmaxの変化にも偽装して
反映されるため、小数点位置パラメータの変化傾向を測定する。diffupdate1
値が大きいほど、値の範囲が大幅に変化し、更新頻度が短くなる。つまり、目標反復間隔
が短くなる。
ステップ702):小数点位置パラメータの変化傾向値とデータビット幅の変化傾向値
に従って、対応する目標反復間隔を確定する。
この技術案では、目標反復間隔は式(22)に従って確定される。目標反復間隔の場合
、同じ目標反復間隔内の量子化プロセスで同じデータビット幅が使用され、異なる目標反
復間隔内の量子化プロセスで使用されるデータビット幅は同じでも異なっていてもよい。
I=β/max(diffupdate1,diffupdate2)−γ
式(22)
式(22)で、Iは目標反復間隔である。β、γはハイパーパラメータである。dif
update1は小数点位置パラメータの変化傾向値である。diffupdate2
はデータビット幅の変化傾向値である。diffupdate2経験値であり、可変ハイ
パーパラメータにすることもできる。従来のハイパーパラメータ最適化方法はすべて、β
、γに適しており、ハイパーパラメータの最適化スキームはここでは繰り返されない。
この技術案では、diffupdate1を使用して小数点位置パラメータの変化を測
定するが、データビット幅nの変化による小数点位置パラメータの変化は無視してくださ
い。これは、diffupdate2のデータビット幅nの変更をすでに反映しているた
めである。diffupdate1でこの無視された操作を行わないと、式(22)に従
って確定された目標反復間隔Iが不正確になり、最初の予測時点が多すぎます。トレーニ
ングまたは微調整中に、データビット幅を頻繁に実行するのは簡単である。n更新するか
どうか、および操作を更新する方法。その結果、人工知能プロセッサのチップリソースが
合理的に使用されない。
上記の説明に基づいて、diffupdate1はM(t)に従って確定される。t−
1番目の予測時点に対応するデータビット幅をn1とすると、対応する小数点位置パラメ
ータsはであり、トレーニングの反復とともに増やす小数点位置パラメータのスライデ
ィング平均値はmである。データビット幅n1を使用して、量子化予定のデータを量子
化し、量子化された固定小数点数を取得する。量子化前のデータと対応する量子化データ
に基づいて量子化誤差diffbitを求めます。量子化誤差diffbitとしきい値
の比較結果に応じて、データビット幅n1をn2に調整し、データビット幅を|n−n
|調整し、t番目の予測時点での量子化に使用するデータビット幅はnである。デー
タビット幅の変更による小数点位置パラメータの変更を無視するために、M(t)を確定
するとき以下の2つの最適化方法のいずれかを選択してことができる。第1の方法:デー
タビット幅が|n−n|ビット増やすと、s(t−1)はs−|n−n|とな
り、M(t−1)はm−|n−n|となる。s(t−1)、M(t−1)を式(1
9)に代入されてM(t)を取得される。つまり、t番目の予測時点に対応する小数点位
置パラメータがトレーニングに従う。スライディング平均値を反復増加させる。データビ
ット幅が|n−n|ビットだけ減少した場合、s(t−1)はs+|n−n
となり、M(t−1)はm+|n−n|となる。値は式(19)に代入されて得ら
れる。これは、トレーニングの反復が増やすにつれて、t番目の予測時点に対応する小数
点位置パラメータのスライディング平均値である。第2の方法:データビット幅が|n
−n|で増やすか減少するかに関係なく、s(t−1)はsとなり、M(t−1)
となる。s(t−1)、M(t−1)を式(19)に代入してM(t)を取得する。
データビット幅が|n−n|ビット増やすと、M(t)と|n−n|が減算され
、データビット幅が|n−n|ビット減少すると、M(t)と|n−n|が加算
され、その結果は、トレーニングの反復が増やすにつれて、t番目の予測時点に対応する
小数点位置パラメータのスライディング平均値として使用される。これら2つの方法は同
等であり、どちらもデータビット幅の変更による小数点位置パラメータの変更を無視し、
より正確な目標反復間隔を取得できるため、人工知能プロセッサのチップのリソース使用
率が向上する。
実際の応用では、データビット幅nと小数点位置パラメータsは量子化精度に大きな影
響を与え、第2のスケーリング係数fと量子化パラメータのオフセットOは量子化精度
にほとんど影響を与えない。第1のスケーリング係数fは、前述のように、第2のケー
スに属する場合、2xf全体として第1のスケーリング係数fと見なされる。小数
点位置パラメータsは量子化精度に大きな影響を与えるため、この場合は第1のスケーリ
ング係数fは、量子化に大きな影響を与える。したがって、この技術案では、データビ
ット幅nが変化し、小数点位置パラメータが可変であるかどうかに関係なく、小数点位置
パラメータの目標反復間隔を確定することも非常に意味がある。図6に示す技術案このア
イデアは、小数点位置パラメータの目標反復間隔を確定するために適用できる。したがっ
て、小数点位置パラメータの目標反復間隔を確定する方法を図8Aに示する。
ステップ801):予測時点で、重み反復プロセスにおける量子化予定のデータの対応
する小数点位置パラメータの変化傾向値を確定する;ここで、予測時点は、データビット
幅を調整する必要があるかどうかを判断するための時点である。予測時点は、重み更新の
反復が完了する時点に対応する。
ステップ802):小数点位置パラメータの変化傾向値に従って、対応する目標反復間
隔を確定する。
小数点位置パラメータの変化傾向値に基づいて量子化パラメータの目標反復間隔を確定
するための図6に示される技術案の内容は、図8Aに示される技術案に適用可能であり、
ここでは繰り返されないことを強調すべきである。図8Aに示される技術案の場合、量子
化パラメータは、好ましくは、小数小数点位置パラメータである。
データビット幅を確定するための上記の目標反復間隔および量子化パラメータの目標反
復間隔は単なる例であり、網羅的ではないことに留意されたい。当業者は、本開示の技術
案の本質を理解している。次に、本開示の技術案に基づいて、他の変形または変換を生成
することができる。例えば、データビット幅を確定するための目標反復間隔内の量子化パ
ラメータを確定するための目標反復間隔は、図6、7および8Aにも適用可能である。示
されている技術案。ただし、達成される機能および技術的効果が本開示のものと類似して
いる限り、それらは本開示の保護範囲に含まれるべきである。
技術案は、量子化パラメータを確定し、量子化誤差に応じてデータビット幅または量子
化パラメータを調整し、データビット幅または量子化パラメータを調整するための目標反
復間隔を確定して、ニューラルネットワーク演算プロセスの適切な時点を達成するためで
ある。データビット幅または量子化パラメータは、適切な量子化パラメータが適切な反復
時点で使用されるように調整され、人工知能プロセッサのチップを実現して、固定点動作
速度に到達するためのニューラルネットワーク動作を実行し、人工知能プロセッサのチッ
プのピーク計算能力を向上させる。同時に、操作に必要な浮動小数点操作の精度が満たさ
れる。
前述の方法の実施形態について、簡単な説明のために、それらはすべて一連の作用の組
み合わせとして表されるが、当技術分野の当業者は、本開示が記載された一連の作用によ
って限定されないことを理解すべきであることに留意されたい。この開示によれば、特定
のステップは、他の順序でまたは同時に実行することができるからである。第二に、当技
術分野の当業者はまた、本明細書に記載の実施形態が任意の実施形態であり、関与する作
用およびモジュールが必ずしも本開示によって必要とされないことを認識すべきである。
ここでの量子化パラメータは、プリセット量子化パラメータ(すなわち、オフライン量
子化パラメータ)であり得るか、または量子化予定のデータの処理に従って得られる量子
化パラメータ(すなわち、オンライン量子化パラメータ)であり得ることが理解されよう
。ニューラルネットワークの推論、トレーニング、および微調整の過程で、目標データを
オフラインまたはオンラインで量子化できる。それらの中で、オフライン量子化は、量子
化パラメータを使用して、量子化予定のデータに対してオフライン処理を実行することで
あり得る。オンライン量子化は、量子化パラメータを使用して量子化予定のデータのオン
ライン処理である。たとえば、ニューラルネットワークは人工知能チップ上で実行され、
量子化および量子化されるパラメータのデータは、オフライン量子化のために人工知能チ
ップの外部のコンピューティング装置に送信できる。または、人工知能チップ以外のコン
ピューティング装置を使用して、事前に量子化予定のデータを計算できる。そしてオフラ
イン量子化のための量子化パラメータ。ニューラルネットワークを実行する人工知能チッ
プのプロセスでは、人工知能チップは、量子化パラメータを使用して、量子化後のデータ
のオンライン量子化を実行できる。ニューラルネットワークに量子化する複数の層が含ま
れている場合、量子化する各層をオンラインとオフラインでそれぞれ量子化できる。この
開示は、量子化される各層の量子化プロセスがオンラインであるかオフラインであるかを
制限するものではない。
本開示の一実施形態によれば、データビット幅の調整方法が提供される。以下、図8B
〜8Vを参照して説明する。図8Bは、本開示の一実施形態におけるデータビット幅の調
整方法800Bのフローチャートを示す。この方法には次のものが含まれる。
S114で、カレント検査反復の量子化予定のデータおよびカレント検査反復の量子化
データに従って量子化誤差を確定し、ここ、カレント検査反復の量子化データは、カレン
ト検査反復の量子化予定のデータを量子化することによって取得される。
任意選択で、前述のプロセッサは、初期データビット幅を使用して、量子化予定のデー
タを量子化して、前述の量子化データを取得することができる。カレント検査反復の初期
データビット幅はハイパーパラメータであり得、カレント検査反復の初期データビット幅
はまた、カレント検査反復の前の一つ前の検査反復の量子化データに基づいて確定され得
る。
具体的には、プロセッサは、カレント検査の反復で量子化予定のデータおよびカレント
検査の反復で量子化データに従って、中間表現データを確定することができる。オプショ
ンで、中間表現データは、量子化予定のデータの前述の表現形式と一致する。例えば、プ
ロセッサは、前述の量子化データに対して逆量子化を実行して、量子化予定のデータの表
現形式と一致する中間表現データを取得することができる。ここで、逆量子化は、量子化
の逆プロセスを指す。たとえば、量子化データは式23を使用して取得でき、プロセッサ
は式24に従って量子化データに対して逆量子化を実行して、対応する中間表現データを
取得し、量子化予定のデータと中間表現データに従って量子化誤差を確定することもでき
る。
=round(F/2) 式(23)
x1=round(F/2)x2 式(24)
さらに、プロセッサは、量子化予定のデータおよび対応する中間表現データに従って、
量子化誤差を計算することができる。現在の検査反復で量子化予定のデータがF=[Z
,Z...,Z]であるとすると、量子化予定のデータに対応する中間表現データ
はFx1=[Z (n),Z (n)...,Z (n)]である。プロセッサは、量子
化予定のデータFおよびそれに対応する中間表現データFx1に従って誤差項を確定し
、誤差項に従って量子化誤差を確定することができる。
必要に応じて、プロセッサは、中間表現データFx1の要素の合計および量子化予定の
データFの要素の合計に従って、上記の誤差項を確定することができる。誤差項は、中
間表現データFx1の要素の合計および量子化後のデータFの各要素の合計の差。その
後、プロセッサは誤差項に従って量子化誤差を確定できる。特定の量子化誤差は、次の式
に従って確定できる。
diffbit=ln((Σ|Z (n)|−Σ|Z|)/Σ|Z|+1)
式(25)
ここ、zは量子化予定のデータの要素であり、Z (n)はデータFx1を表す中央
の要素である。
オプションで、プロセッサは、量子化予定のデータの各要素と中間表現データFx1
対応する要素との間の差をそれぞれ計算し、m個の差の値を取得し、m個の差の値の合計
を誤差項として使用することができる。その後、プロセッサは誤差項に従って量子化誤差
を確定できる。特定の量子化誤差は、次の式に従って確定できる。
diffbit=ln(Σ|Z (n)−Z|/Σ|Z|+1) 式(26)
ここ、zは量子化予定のデータの要素であり、Z (n)はデータFx1を表す中央
の要素である。
オプションで、量子化予定のデータの各要素と中間表現データFx1の対応する要素と
の差は、ほぼ2s−1に等しい場合がある。したがって、量子化誤差は、次の式に従って
確定することもできる。
diffbit=ln(2s−1*m/Σ|Z|) 式(27)
ここ、mは目標データに対応する中間表現データFx1の数、sは小数点位置、z
量子化予定のデータの要素である。
オプションで、中間表現データは、前述の量子化データのデータ表現形式と一致させる
こともでき、量子化誤差は、中間表現データおよび量子化データに基づいて確定される。
たとえば、量子化予定のデータは次のように表すことができる。F≒Ix2、次に
中間表現データIx1≒F/2を確定でき、中間表現データIx1は前述の量子化デ
ータと同じデータ表現形式を持つことができる。このとき、プロセッサは、上記の式(2
3)で計算された中間表現データIx1およびI=round(F/2)に従って
、量子化誤差を確定できる。特定の量子化誤差の確定方法は、上記の式(25)から式(
27)を参照することができる。
S115で、量子化誤差に従って、カレント検査反復に対応する目標データビット幅を
確定する。
具体的には、プロセッサは、量子化誤差に従ってカレント検査反復に対応するデータビ
ット幅を適応的に調整し、カレント検査反復によって調整された目標データビット幅を確
定することができる。量子化誤差がプリセット条件を満たす場合、カレント検査反復に対
応するデータビット幅を変更しないでおくことができる。つまり、カレント検査反復の目
標データビット幅を初期データビット幅と等しくすることができる。量子化誤差がプリセ
ット条件を満たさない場合、プロセッサは、カレント検査反復で量子化予定のデータに対
応するデータビット幅を調整して、カレント検査反復に対応する目標データビット幅を取
得できる。プロセッサが目標データのビット幅を使用して、カレント検査反復で量子化予
定のデータを量子化する場合、量子化誤差は前述のプリセット条件を満たす。オプション
で、前述のプリセット条件は、ユーザーが設定したプリセットしきい値にすることができ
る。
任意選択で、図8Cは、本開示の別の実施形態におけるデータビット幅の調整方法80
0Cのフローチャートを示す。図8Cに示されるように、前述の操作S115は、以下を
含み得る。
S1150で、プロセッサは、前述の量子化誤差が第1のプリセットしきい値以上であ
るかどうかを判断できる。
量子化誤差が第1のプリセットしきい値以上である場合、動作S1151を実行して、
カレント検査反復に対応するデータビット幅を増加させて、カレント検査反復の目標デー
タビット幅を取得することができる。量子化誤差が第1のプリセットしきい値よりも小さ
い場合、カレント検査反復のデータビット幅を変更せずに維持できる。
さらに任意選択で、プロセッサは、1回の調整後に前述の目標データビット幅を取得す
ることができる。たとえば、カレント検査反復の初期データビット幅はn1であり、プロ
セッサは1回の調整後に目標データビット幅n2=n1+tを確定できる。ここで、tは
データビット幅の調整値である。ここで、目標データビット幅n2を使用して、カレント
検査反復で量子化予定のデータを量子化する場合、取得される量子化誤差は、第1のプリ
セットしきい値よりも小さい可能性がある。
さらに任意選択で、プロセッサは、量子化誤差が第1のプリセットしきい値未満になる
まで複数の調整を通じて目標データビット幅を取得し、量子化誤差が第1のプリセットし
きい値未満の場合のデータビット幅を目標データビット幅として使用することができる。
具体的には、量子化誤差が第1のプリセットしきい値以上の場合、第1の中間データビッ
ト幅は第1のプリセットビット幅のステップ長さに従って確定され、プロセッサは第1の
中間データビット幅によって現在のチェックをチェックできる。量子化される反復データ
は、量子化データを取得するために量子化され、量子化誤差は、量子化誤差が第1のプリ
セットしきい値より小さくなるまで、カレント検査反復で量子化予定のデータおよびカレ
ント検査反復の量子化後のデータによって確定される。プロセッサは、量子化誤差が第1
のプリセットしきい値よりも小さい場合に対応するデータビット幅を目標データビット幅
として使用することができる。
たとえば、カレント検査反復の初期データビット幅はn1であり、プロセッサは初期デ
ータビット幅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のプリセットしきい値との間の差を計算し得る。差が小さいほど、第1の
プリセットビット幅のステップ長さの値は小さくなる。
任意選択で、図8Dは、本開示の別の実施形態におけるデータビット幅の調整方法80
0Dのフローチャートを示す。図8Dに示されるように、前述の操作S115はさらに以
下を含み得る。
S1152で、プロセッサは、前述の量子化誤差が第2のプリセットしきい値以下であ
るかどうかを判断できる。
量子化誤差が第2のプリセットしきい値以下である場合、操作S1153を実行して、
カレント検査反復に対応するデータビット幅を減らして、カレント検査反復の目標データ
ビット幅を取得することができる。量子化誤差が第2のプリセットしきい値よりも大きい
場合、カレント検査反復のデータビット幅を変更せずに維持できる。
さらに任意選択で、プロセッサは、1回の調整後に前述の目標データビット幅を取得す
ることができる。たとえば、カレント検査反復の初期データビット幅はn1であり、プロ
セッサは1回の調整後に目標データビット幅n2=n1−tを確定できる。ここで、tは
データビット幅の調整値である。ここで、目標データビット幅n2を使用して、カレント
検査反復で量子化予定のデータを量子化する場合、取得される量子化誤差は、第2のプリ
セットしきい値よりも大きくなる可能性がある。
さらに任意選択で、プロセッサは、量子化誤差が第2のプリセットしきい値より大きく
なるまで複数の調整を通じて目標データビット幅を取得し、量子化誤差が第2のプリセッ
トしきい値よりも大きい場合のデータビット幅を目標データビット幅として使用すること
ができる。具体的には、量子化誤差が第1のプリセットしきい値以下の場合、第2の中間
データビット幅は第2のプリセットビット幅のステップ長さによって確定され、プロセッ
サは第2の中間データビット幅によって現在のチェックをチェックできる。量子化する反
復データを量子化して量子化予定のデータを取得し、カレント検査反復で量子化予定のデ
ータとカレント検査反復の量子化データに従って、量子化誤差が第2のプリセットしきい
値より大きくなるまで量子化誤差を確定する。プロセッサは、量子化誤差が第2のプリセ
ットしきい値よりも大きい場合、対応するデータビット幅を目標データビット幅として使
用できる。
たとえば、カレント検査反復の初期データビット幅はn1であり、プロセッサは初期デ
ータビット幅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
のプリセットビット幅のステップ長さの値は小さくなる。
任意選択で、図8Eは、本開示のさらに別の実施形態におけるデータビット幅の調整方
法800Eのフローチャートを示す。図8Eに示されるように、プロセッサが、量子化誤
差が第1のプリセットしきい値よりも小さく、量子化誤差が第2のプリセットしきい値よ
りも大きいと確定した場合、カレント検査反復のデータビット幅は、第1のプリセットし
きい値がより大きい場合、不変に保つことができる。第2のプリセットしきい値。つまり
、カレント検査反復の目標データビット幅は、初期データビット幅と等しくすることがで
きる。ここで、図8Eは、例として、本開示の実施形態のデータビット幅確定方法を示す
だけであり、図8Eの各動作のシーケンスは、ここで特に限定されないが、適応的に調整
することができる。
図8Fは、本開示の一実施形態によるニューラルネットワーク量子化法800Fのフロ
ーチャートを示す。図8Fに示されるように、ニューラルネットワークの量子化方法は、
以下を含む。
ステップS10:量子化予定の層の各タイプの量子化予定のデータに対応する量子化パ
ラメータを確定する。ここで、量子化予定のデータには、ニューロン、重み、オフセット
、および勾配の少なくとも1つが含まれる。
ステップS20:量子化予定のデータが対応する量子化パラメータを量子化して、量子
化データを取得し、それにより、ニューラルネットワークは、量子化データに従って演算
を実行する。
ステップS30:目標データおよび目標データに対応する量子化データに従って、目標
データの量子化誤差を確定する。ここで、目標データは、任意タイプの量子化予定のデー
タである。
目標データの量子化誤差は、目標データに対応する量子化データと目標データとの間の
誤差によって確定することができる。標準偏差計算法、二乗平均平方根誤差計算法などの
設定誤差計算法を使用して、目標データの量子化誤差を計算できる。
量子化パラメータに従って目標データに対応する量子化データを逆量子化して逆量子化
データを取得し、逆量子化データと目標データ間の誤差に従って目標データの量子化誤差
を確定することも可能である。
Figure 2021179966
Figure 2021179966
Figure 2021179966
Figure 2021179966
Figure 2021179966
Figure 2021179966
Figure 2021179966
量子化間隔に関連する方法を計算することができ、例えば、目標データと目標データに
対応する逆量子化データとの間の誤差diffbitは、式(35)によって計算するこ
とができる。
diffbit=ln(A*2−1*p/Σ|F|) 式(35)
ここ、pは目標データの要素数、sは目標データの小数点位置である。Aの値は、量子
化パラメータに従って確定できる。量子化パラメータに小数点位置sが含まれる場合、A
=2、量子化パラメータに小数点位置sとスケーリング係数fが含まれる場合、A=2
xfである。
Figure 2021179966
Figure 2021179966
Figure 2021179966
ステップS40:量子化誤差および誤差しきい値に従って、目標データに対応するデー
タビット幅を調整して、目標データに対応する調整ビット幅を取得する。
誤差しきい値は経験値に基づいて確定でき、誤差しきい値は量子化誤差の期待値を示す
ために使用できる。量子化誤差が誤差しきい値より大きいか小さい場合、ターゲット番号
に対応するデータビット幅を調整して、目標データに対応する調整ビット幅を取得するこ
とができる。データビット幅をより長いビット幅またはより短いビット幅に調整して、量
子化精度を増減させることができる。
誤差しきい値は、最大許容誤差に応じて確定できる。量子化誤差が誤差しきい値よりも
大きい場合、量子化精度が期待に応えられないことを意味し、データビット幅をより長い
ビット幅に調整する必要がある。量子化精度が高いほど、誤差しきい値を小さくすること
もできる。量子化誤差が誤差しきい値よりも小さい場合は、量子化精度が高くなり、ニュ
ーラルネットワークの運用効率に影響が出ます。データビット幅を適切に調整して短くす
ることができる。のビット幅は、量子化精度を適切に低下させ、ニューラルネットワーク
の運用効率を向上させるためのものである。
データビット幅は、固定ビット長に応じて調整できる。または、データビット幅は、量
子化誤差と誤差しきい値の差に応じて、可変調整ステップ長さによって調整できる。この
開示はこれを制限するものではない。
ステップS50では、目標データに対応するデータビット幅が調整ビット幅に更新され
、対応する調整量子化パラメータが目標データおよび調整ビット幅に従って計算して得ら
れ、ニューラルネットワークは調整量子化パラメータに従ってが量子化される。
調整ビット幅を確定した後、目標データに対応するデータビット幅を調整ビット幅に更
新することができる。たとえば、更新前の目標データのデータビット幅が8ビットで、調
整後のビット幅が12ビットの場合、更新後の目標データに対応するデータビット幅は1
2ビットである。目標データに対応する調整済み量子化パラメータは、調整ビット幅と目
標データに基づいて計算できる。目標データは、目標データに対応する調整された量子化
パラメータに従って再量子化され、より高いまたはより低い量子化精度で量子化後のデー
タを取得できるため、量子化予定の層は、量子化精度と処理効率のバランスを実現する。
ニューラルネットワークの推論、トレーニング、微調整の過程で、層間で量子化予定の
データには一定の相関関係があると見なすことができる。たとえば、各層で量子化予定の
データの平均値の差が設定された平均しきい値よりも小さく、各層で量子化予定のデータ
の最大値の差も設定された差のしきい値よりも小さい場合、量子化予定の層の調整された
量子化パラメータは、量子化予定の層の1つ以上の後続の層で量子化予定のデータを量子
化するために、1つ以上の後続の層の調整された量子化パラメータとして使用され得る。
ニューラルネットワークのトレーニングおよび微調整プロセスでは、量子化予定の層のカ
レント反復で取得された調整済み量子化パラメータを使用して、後続の反復で量子化予定
の層を量子化することもできる。
可能な実装方法では、この方法はさらに以下を含む。
量子化予定の層の量子化パラメータは、量子化予定の層の後の1つまたは複数の層で使
用される。
ニューラルネットワークは、調整された量子化パラメータに従って量子化を実行する。
これには、量子化予定の層でのみ調整された量子化パラメータを使用して量子化予定のデ
ータを再量子化し、量子化予定の層の操作で再取得された量子化後のデータを使用するこ
とが含まれる。また、調整された量子化パラメータを使用して、量子化予定の層で量子化
予定のデータを再量子化しないこと、および調整された量子化パラメータを使用して、量
子化予定の層の1つまたは複数の後続の層で量子化すること、および/または後続の反復
で量子化予定の層でそれを使用することも含まれる。量子化の量子化パラメータを調整す
る。また、調整された量子化パラメータを使用して、量子化予定の層で再量子化すること
、および取得された量子化データを量子化予定の層の操作で使用すること、および調整さ
れた量子化パラメータを使用して、量子化予定の層に続く1つまたは複数の層で量子化す
ること、および/または、後続の反復での量子化のために量子化予定の層で調整された量
子化パラメータを使用する。この開示はこれを制限するものではない。
この実施形態では、目標データの量子化誤差は、目標データおよび目標データに対応す
る量子化データによって確定され、目標データは、量子化予定の任意の種類のデータであ
り、量子化誤差および誤差しきい値は、目標データに対応するデータビット幅に調整され
る。目標データに対応する調整ビット幅を取得する。目標データに対応するデータビット
幅を調整ビット幅に更新し、目標データと調整ビット幅に従って対応する調整量子化パラ
メータを計算し、ニューラルネットワークが調整量子化パラメータに従って量子化を実行
するようにする。目標データと量子化データ間の誤差に応じてデータビット幅を調整し、
調整済みデータビット幅に応じて調整済み量子化パラメータを計算する。さまざまな誤差
しきい値を設定することにより、さまざまな調整済み量子化パラメータを取得して、量子
化精度の向上や操作効率の向上など、さまざまな量子化要件を実現できる。目標データお
よび目標データの量子化データに従って計算された調整済み量子化パラメータも、目標デ
ータ自体のデータ特性とより一致し、目標データ自体のニーズにより一致する量子化結果
を達成し、より優れた量子化精度と処理効率を実現できる。残高。
図8Gは、本開示の一実施形態によるニューラルネットワーク量子化法800Gのフロ
ーチャートを示す。図8Gに示されるように、ニューラルネットワークの量子化方法のス
テップS40は、以下を含む。
ステップS41:量子化誤差が第1の誤差しきい値よりも大きい場合、目標データに対
応するデータビット幅を増やして、目標データに対応する調整ビット幅を取得する。
第1の誤差しきい値は、受け入れることができる最大量子化誤差によって確定すること
ができる。量子化誤差は、第1の誤差しきい値と比較できる。量子化誤差が第1の誤差し
きい値よりも大きい場合、量子化誤差はすでに許容できないと見なすことができる。量子
化精度を向上させるために、目標データに対応するデータビット幅を増やすことにより、
目標データの量子化精度を向上させることができる。
調整ビット幅を取得するために、固定調整ステップ長さによって、目標データに対応す
るデータビット幅を増やすことができる。固定調整ステップ長さサイズはNビットにする
ことができ、Nは正の整数である。データビット幅を調整するたびに、Nビットを増やす
ことができる。各増加後のデータビット幅=元のデータビット幅+Nビット。
可変調整ステップ長さに応じて、目標データに対応するデータビット幅を大きくして、
調整ビット幅を得ることができる。例えば、量子化誤差と誤差しきい値の差が第1しきい
値より大きい場合、データビット幅は調整ステップ長さM1に従って調整でき、量子化誤
差と誤差しきい値の差が第1しきい値より小さい場合、データは以下に従って調整するこ
とができる。ステップ長さM2は、データビット幅を調整する。第1のしきい値は第2の
しきい値よりも大きく、M1はM2よりも大きくなる。可変調整ステップ長さは、要件に
応じて確定できる。この開示は、データビット幅の調整ステップ長さ、および調整ステッ
プ長さが可変であるかどうかを制限しない。
調整ビット幅に従って目標データを計算して、調整された量子化パラメータを取得でき
る。調整された量子化パラメータを使用して目標データを再量子化することによって得ら
れる量子化データは、調整前に量子化パラメータを使用して得られる量子化データよりも
高い量子化精度を持っている。
図8Hは、本開示の一実施形態による、ニューラルネットワーク量子化法800Hのフ
ローチャートを示す。図8Hに示されるように、ニューラルネットワークの量子化方法は
さらに以下を含む。
ステップS42:調整ビット幅と目標データに従って、目標データの調整済み量子化誤
差を計算する。
ステップS43:調整ビット幅と目標データに従って計算された調整済み量子誤差が第
1の誤差しきい値以下になるまで、調整済の量子化誤差と第1の誤差しきい値に従って調
整ビット幅を増やし続ける。
量子化誤差に応じて目標データに対応するデータビット幅を増やす場合は、ビット幅を
1回調整して調整ビット幅を取得し、調整ビット幅に応じて調整量子化パラメータを計算
し、調整済み量子化パラメータに応じて目標データを量子化して調整済み量子化データを
取得する。次に、調整済み量子化データと目標データに従って、目標データの調整済み量
子化誤差を計算する。調整済み量子化誤差は、第1の誤差しきい値よりも大きい場合があ
る。つまり、調整済みデータのビット幅が調整目的を満たさない場合がある。調整済の量
子化誤差が第1の誤差しきい値よりも大きい場合は、調整後のデータビット幅を調整し続
けることができる。つまり、最終的な調整ビット幅と目標データが取得されるまで、目標
データに対応するデータビット幅を複数回増やする。の調整済み量子化誤差は、第1の誤
差しきい値よりも小さくなっている。
複数回増やす調整ステップ長さは、固定調整ステップ長さまたは可変調整ステップ長さ
にすることができる。たとえば、最終データビット幅=元のデータビット幅+A*Nビッ
ト。ここで、Nは各増加の固定調整ステップ長さであり、Aはデータビット幅が増加した
回数である。最終データビット幅=元データビット幅+M1+M2+...+Mm、ここ
でM1、M2...Mmは、毎回増やす可変調整ステップ長さである。
この実施形態では、量子化誤差が第1の誤差しきい値よりも大きい場合、目標データに
対応するデータビット幅を大きくして、目標データに対応する調整ビット幅を得る。第1
の誤差しきい値を設定し、ステップ長さを調整することでデータビット幅を増やすことが
できるため、調整後のデータビット幅は量子化要件を満たすことができる。1つの調整で
調整要件を満たせない場合は、データビット幅を複数回調整できる。第1の誤差しきい値
と調整ステップ長さの設定により、さまざまな量子化要件を満たすために量子化要件に応
じて量子化パラメータを柔軟に調整できるため、量子化精度を独自のデータ特性に応じて
適応的に調整できる。
図8Iは、本開示の一実施形態によるニューラルネットワーク量子化法800Iのフロ
ーチャートを示す。図8Iに示されるように、ニューラルネットワーク量子化法のステッ
プS40は、以下を含む。
ステップS44:量子化誤差が第2の誤差しきい値よりも小さい場合、目標データに対
応するデータビット幅を減らし、第2の誤差しきい値が第1の誤差しきい値よりも小さい
第2の誤差しきい値は、許容可能な量子化誤差とニューラルネットワークの予想される
動作効率に従って確定できる。量子化誤差は、第2の誤差しきい値と比較できる。量子化
誤差が第2の誤差しきい値よりも小さい場合、量子化誤差は予想を超えていると見なすこ
とができるが、動作効率が低すぎて許容できない。量子化精度を下げてニューラルネット
ワークの運用効率を向上させ、目標データに対応するデータビット幅を小さくすることで
目標データの量子化精度を下げることができる。
調整ビット幅を取得するために、固定調整ステップ長さによって、目標データに対応す
るデータビット幅を減らすことができる。固定調整ステップ長さサイズはNビットにする
ことができ、Nは正の整数である。データビット幅を調整するたびに、Nビットを減らす
ことができる。増加したデータビット幅=元のデータビット幅−Nビット。
可変調整ステップ長さに応じて、目標データに対応するデータビット幅を縮小して、調
整ビット幅を得ることができる。例えば、量子化誤差と誤差しきい値の差が第1しきい値
より大きい場合、データビット幅は調整ステップ長さM1に従って調整でき、量子化誤差
と誤差しきい値の差が第1しきい値より小さい場合、データは以下に従って調整すること
ができる。ステップ長さM2は、データビット幅を調整する。第1のしきい値は第2のし
きい値よりも大きく、M1はM2よりも大きくなる。可変調整ステップ長さは、要件に応
じて確定できる。この開示は、データビット幅の調整ステップ長さ、および調整ステップ
長さが可変であるかどうかを制限しない。
調整ビット幅に応じて目標データを計算し、調整された量子化パラメータを取得できる
。調整された量子化パラメータで目標データを再量子化した後に得られた量子化データは
、調整前の量子化パラメータを使用して得られた量子化データよりも量子化精度が高くな
る。
図8Jは、本開示の一実施形態による、ニューラルネットワーク量子化法800Jのフ
ローチャートを示す。図8Jに示されるように、ニューラルネットワークの量子化方法は
さらに以下を含む。
ステップS45:調整ビット幅と目標データに従って、目標データの調整済み量子化誤
差を計算する。
ステップS46:調整ビット幅と目標データに従って計算された調整済の量子誤差が第
2の誤差しきい値以上になるまで、調整済の量子化誤差と第2の誤差しきい値に従って調
整ビット幅を減らし続ける。
量子化誤差に応じて目標データに対応するデータビット幅を増やす場合は、ビット幅を
1回調整して調整ビット幅を取得し、調整ビット幅に応じて調整量子化パラメータを計算
し、調整済み量子化パラメータに応じて目標データを量子化して調整済み量子化データを
取得する。次に、調整済み量子化データと目標データに従って、目標データの調整済み量
子化誤差を計算する。調整済み量子化誤差は、第2の誤差しきい値よりも小さい場合があ
る。つまり、調整済みデータのビット幅が調整目的を満たさない場合がある。調整済の量
子化誤差がまだ第2の誤差しきい値よりも小さい場合は、調整後のデータビット幅を調整
し続けることができる。つまり、最終的な調整ビット幅と目標データが取得されるまで、
目標データに対応するデータビット幅を複数回減らする。の調整済み量子化誤差は、第2
の誤差しきい値よりも大きくなっている。
複数回短縮される調整ステップ長さは、固定調整ステップ長さまたは可変調整ステップ
長さであり得る。たとえば、最終データビット幅=元のデータビット幅−A*Nビット。
ここで、Nは各増加の固定調整ステップ長さであり、Aはデータビット幅が増加した回数
である。最終データビット幅=元のデータビット幅−M1−M2−...−Mm、ここで
M1、M2...Mmは、毎回減少する可変調整ステップ長さである。
この実施形態では、量子化誤差が第2の誤差しきい値よりも小さい場合、目標データに
対応するデータビット幅を縮小して、目標データに対応する調整ビット幅を得る。調整後
のデータビット幅が量子化要件を満たすことができるように、第2の誤差しきい値を設定
し、ステップ長さを調整することにより、データビット幅を減らすことができる。1つの
調整で調整要件を満たせない場合は、データビット幅を複数回調整できる。第2の誤差し
きい値と調整ステップ長さの設定により、量子化要件に応じて量子化パラメータを柔軟か
つ適応的に調整し、さまざまな量子化要件を満たすことができるため、量子化精度を調整
でき、量子化精度とニューラルネットワークの運用効率のバランスが取れる。
可能な実装方法では、この方法はさらに以下を含む。
量子化誤差が第1の誤差しきい値より大きい場合、目標データに対応するデータビット
幅が増加し、量子化誤差が第2の誤差しきい値よりも小さい場合、目標データに対応する
データビット幅が減少して、目標データに対応する調整ビット幅。
2つの誤差しきい値を同時に設定することもできる。第1の誤差しきい値は、量子化精
度が低すぎることを示すために使用され、データビット幅のビット数が増える可能性があ
る。第2の誤差しきい値は、量子化精度が高すぎることを示すために使用され、データビ
ット幅を減らす可能性がある。桁。第1の誤差しきい値が第2の誤差しきい値よりも大き
い目標データの量子化誤差を2つの誤差しきい値と同時に比較できる。量子化誤差が第1
の誤差しきい値よりも大きい場合、データビット幅のビット数が増やす。量子化誤差が第
2の誤差しきい値よりも小さい場合誤差しきい値を使用する場合は、データビット幅のビ
ット数を減らしてください。量子化誤差が第1の誤差しきい値と第2の誤差しきい値の間
にある場合、データビット幅は変更されないままになる。
この実施形態では、量子化誤差を第1の誤差しきい値および第2の誤差しきい値と同時
に比較することにより、比較結果に応じてデータビット幅を増減することができ、第1の
誤差しきい値および第2の誤差しきい値を使用してより柔軟な調整を行うことができる。
データビット幅。これにより、データビット幅の調整結果が量子化要件にさらに一致する
ようになる。
ニューラルネットワークのトレーニングは、ニューラルネットワークの複数の反復を参
照することを明確にする必要がある(ニューラルネットワークの重みはランダムな数にす
ることができる)。これにより、ニューラルネットワークの重みはプリセット条件を満た
すことができる。処理する。ここで、反復演算には、一般に、順方向演算、逆方向演算、
および重み更新演算が含まれる。順方向演算とは、ニューラルネットワークの入力データ
に基づいて順方向演算の結果を得るための順方向推論のプロセスを指する。逆方向演算は
、順方向演算の結果とプリセットされた基準値に基づいて損失値を確定し、損失値に応じ
て重み勾配値および/または入力データ勾配値を確定するプロセスである。重み更新演算
とは、重み勾配値に従ってニューラルネットワークの重みを調整するプロセスを指する。
具体的には、ニューラルネットワークのトレーニングプロセスは次のとおりである。プロ
セッサは、ランダム数の重みを持つニューラルネットワークを使用して、入力データに対
して順方向演算を実行し、順方向演算の結果を取得できる。次に、プロセッサは、順方向
演算の結果とプリセット参照値に従って損失値を確定し、損失値に従って重み勾配値およ
び/または入力データ勾配値を確定する。最後に、プロセッサは、重み勾配値に従ってニ
ューラルネットワークの勾配値を更新し、新しい重みを取得して、反復演算を完了するこ
とができる。プロセッサは、ニューラルネットワークの順方向演算の結果がプリセット条
件を満たすまで、ループ内で複数の反復を実行する。たとえば、ニューラルネットワーク
の順方向演算結果がプリセット基準値に収束すると、トレーニングは終了する。または、
ニューラルネットワークの順方向演算結果とプリセット基準値によって確定される損失値
がプリセット精度以下になると、トレーニングは終了する。
微調整とは、ニューラルネットワークの精度がプリセット要件を満たすことができるよ
うに、ニューラルネットワークで複数の反復演算を実行するプロセスを指する(ニューラ
ルネットワークの重みはすでに収束状態にあり、ランダムな数値ではない)。この微調整
プロセスは、基本的に上記のトレーニングプロセスと同じであり、収束状態でニューラル
ネットワークを再トレーニングするプロセスと見なすことができる。推論とは、重みがプ
リセット条件を満たすニューラルネットワークを使用して、画像認識などのニューラルネ
ットワークの使用など、認識や分類などの機能を実現するための順方向演算を実行するプ
ロセスを指する。
本開示の実施形態において、上記のニューラルネットワークのトレーニングまたは微調
整プロセスにおいて、異なる量子化パラメータを使用して、ニューラルネットワーク動作
の異なる段階におけるニューラルネットワークの動作データを量子化することができ、そ
れにより、反復動作が、量子化予定のデータによって実行される。ニューラルネットワー
クの運用プロセスにおけるデータストレージスペースを減少し、データアクセスと運用の
効率を向上させることができる。図8Kに示されるように、本開示の一実施形態による、
量子化パラメータの調整方法800Kのフローチャートが示される。上記の方法は、以下
を含み得る。
S100で、量子化予定のデータのデータ変動範囲を取得する。
任意選択で、プロセッサは、量子化予定のデータのデータ変動範囲を直接読み取ること
ができ、量子化予定のデータのデータ変動範囲は、ユーザによって入力され得る。
オプションで、プロセッサは、カレント反復で量子化予定のデータおよび履歴反復で量
子化予定のデータによって、量子化予定のデータのデータ変動範囲を計算することもでき
る。ここで、カレント反復は、現在実行されている反復演算を指し、履歴反復は、カレン
ト反復の前に実行される反復演算。たとえば、プロセッサは、量子化予定のデータの要素
の最大値とカレント反復の要素の平均値、および量子化予定のデータの要素の最大値と、
各履歴反復で量子化予定のデータの要素の平均値を、各反復の要素の値に従って取得でき
る。要素の最大値と平均値によって、量子化予定のデータの変動範囲が決まる。カレント
反復で量子化予定のデータの要素の最大値が、プリセット履歴反復数で量子化予定のデー
タの要素の最大値に近く、カレント反復で量子化予定のデータの要素の平均値が、プリセ
ット履歴反復数である場合量子化予定のデータの要素の平均値が比較的近い場合、量子化
予定のデータのデータ変動範囲が小さいと判断できる。そうでなければ、量子化予定のデ
ータのデータ変動範囲が比較的大きいと判断することができる。別の例として、量子化予
定のデータのデータ変動範囲は、量子化予定のデータのスライディング平均値または分散
によって表すことができ、これはここでは特に限定されない。
本開示の実施形態では、量子化予定のデータのデータ変動範囲を使用して、量子化予定
のデータの量子化パラメータを調整する必要があるかどうかを確定することができる。た
とえば、量子化予定のデータのデータ変動範囲が大きい場合、量子化の精度を確保するた
めに、量子化パラメータを時間内に調整する必要があることを示している可能性がある。
量子化予定のデータのデータ変動範囲が小さい場合は、履歴反復の量子化パラメータをカ
レント検査反復とその後の一定数の反復に使用できるため、量子化パラメータの頻繁な調
整を回避し、量子化効率を向上させることができる。
ここで、各反復は、量子化される少なくとも1つのデータを含み、量子化予定のデータ
は、浮動点によって表される算術データまたは固定点によって表される算術データであり
得る。任意選択で、各反復で量子化予定のデータは、ニューロンデータ、重みデータ、ま
たは勾配データのうちの少なくとも1つであり得、勾配データはまた、ニューロン勾配デ
ータ、重み勾配データなどを含み得る。
S200で、量子化予定のデータのデータ変動範囲によって目標反復間隔を確定し、目
標反復間隔に従ってニューラルネットワーク演算の量子化パラメータを調整し、ここ、目
標反復間隔に少なくとも1回の反復が含まれる。量子化パラメータは、ニューラルネット
ワーク演算で量子化予定のデータに量子化操作を実装するためである。ここで、量子化パ
ラメータはデータ幅を含み得る。したがって、目標反復間隔は、量子化予定のデータのデ
ータ変動範囲によって確定され得、目標反復間隔によってニューラルネットワーク操作に
おけるデータ幅を調整し、目標反復間隔は、少なくとも1回の反復を含む。
任意選択で、量子化パラメータは、前述の小数小数点位置および/またはスケーリング
係数を含み得、ここで、スケーリング係数は、第1のスケーリング係数および第2のスケ
ーリング係数を含み得る。特定の小数点位置の計算方法とスケーリング係数の計算方法は
、上記の式を参照できるが、ここでは繰り返しない。任意選択で、量子化パラメータはオ
フセットも含み得、オフセットの計算方法は、上記の他の式に従って小数点位置を確定し
得る;さらに、プロセッサはまた、上記の他の式に従って小数点位置を確定し得る。スケ
ーリング係数を確定する。本開示のこの実施形態では、プロセッサは、確定された目標反
復間隔によって、上記の小数小数点位置、スケーリング係数、またはオフセットのうちの
少なくとも1つを更新して、ニューラルネットワーク動作における量子化パラメータを調
整することができる。つまり、ニューラルネットワーク運用で量子化予定のデータのデー
タ変動範囲によって、ニューラルネットワーク運用での量子化パラメータを更新できるた
め、量子化精度を保証することができる。
量子化予定のデータのデータ変化曲線は、ニューラルネットワークのトレーニングまた
は微調整プロセス中に計算データの変化傾向について統計および分析を実行することによ
って取得できることは理解できる。図8Lに示すように、データ変化曲線800Lによる
と、ニューラルネットワークのトレーニングまたは微調整の初期段階では、量子化される
さまざまな反復のデータが大幅に変化することがわかる。トレーニングまたは微調整操作
が進むにつれて、量子化予定のデータのさまざまな反復がデータの変化は徐々にフラット
になる傾向がある。したがって、ニューラルネットワークのトレーニングまたは微調整の
初期段階では、量子化パラメータをより頻繁に調整できる。ニューラルネットワークのト
レーニングまたは微調整の中間および後期段階では、量子化パラメータを複数の反復また
はトレーニングサイクルの間隔で調整できる。本開示の方法は、適切な反復間隔を確定す
ることにより、量子化精度と量子化効率との間のバランスを達成することである。
具体的には、プロセッサは、量子化予定のデータのデータ変動範囲によって目標反復間
隔を確定して、目標反復間隔によってニューラルネットワーク操作における量子化パラメ
ータを調整することができる。オプションで、量子化予定のデータのデータ変動範囲が減
少するにつれて、目標反復間隔が増やす場合がある。つまり、量子化予定のデータのデー
タ変動範囲が大きいほど、目標反復間隔が短くなり、量子化パラメータの調整頻度が高く
なる。量子化予定のデータのデータ変動範囲が小さいほど、目標反復間隔が大きくなり、
量子化パラメータの調整の頻度が低くなることを示している。もちろん、他の実施形態で
は、上記の目標反復間隔もハイパーパラメータであり得る。例えば、目標反復間隔は、ユ
ーザによって設定され得る。
任意選択で、前述の重みデータ、ニューロンデータ、勾配データ、および量子化される
他のデータは、異なる反復間隔を有することができる。これに対応して、プロセッサは、
量子化される様々なデータに対応するデータ変動振幅を取得し、各タイプの量子化予定の
データのデータ変動振幅に従って、量子化される対応するデータに対応する目標反復間隔
を確定することができる。言い換えれば、量子化される様々なデータの量子化プロセスを
非同期的に実行することができる。本開示の実施形態では、量子化される異なるタイプの
データ間の差異のために、量子化される異なるデータのデータ変動範囲を使用して、対応
する目標反復間隔を確定することができ、対応する目標反復間隔は、対応する目標反復間
隔によって確定することができる。これにより、量子化パラメータは、量子化予定のデー
タの量子化精度を保証し、それによってニューラルネットワークの演算結果の正確さを保
証することができる。
もちろん、他の実施形態では、同じ目標反復間隔を、量子化される異なるタイプのデー
タについて確定して、目標反復間隔によって量子化される対応するデータに対応する量子
化パラメータを調整することができる。例えば、プロセッサは、量子化される様々なデー
タのデータ変動範囲を取得し、量子化予定のデータの最大データ変動範囲によって目標反
復間隔を確定し、目標反復間隔によって量子化される様々なデータの量子化パラメータを
確定し得る。さらに、量子化されるさまざまなタイプのデータでも、同じ量子化パラメー
タを使用できる。
さらに任意選択で、前述のニューラルネットワークは、少なくとも1つの操作層を含み
得、そして量子化されるべきデータは、各操作層に含まれるニューロンデータ、重みデー
タ、または勾配データのうちの少なくとも1つであり得る。このとき、プロセッサは、現
在の算術層に関連して量子化予定のデータを取得し、上記の方法に従って、現在の算術層
で量子化される様々なデータのデータ変動範囲および対応する目標反復間隔を確定するこ
とができる。
任意選択で、プロセッサは、各反復演算プロセスで1回量子化予定のデータのデータ変
動範囲を確定し、量子化される対応するデータのデータ変動範囲によって目標反復間隔を
確定することができる。言い換えると、プロセッサは、各反復で1回目標反復間隔を計算
できる。特定の目標反復間隔の計算については、以下の説明を参照してください。さらに
、プロセッサは、プリセット条件に従って各反復から検査反復を選択し、各検査反復で量
子化予定のデータの変動範囲を確定し、検査反復に対応する目標反復間隔によって量子化
パラメータなどを更新および調整することができる。このとき、反復が選択された検査反
復でない場合、プロセッサは反復に対応する目標反復間隔を無視する場合がある。
オプションで、各目標反復間隔は検証反復に対応することができ、検証反復は、目標反
復間隔の1番目の反復または目標反復間隔の終了反復であり得る。プロセッサは、各目標
反復間隔の検査反復でニューラルネットワークの量子化パラメータを調整して、目標反復
間隔によってニューラルネットワーク演算の量子化パラメータを調整することができる。
ここで、検証の反復は、現在の量子化パラメータが量子化予定のデータの要件を満たして
いるかどうかを検証するための時点である可能性がある。調整前の量子化パラメータは、
調整後の量子化パラメータと同じでも、調整後の量子化パラメータとは異なる場合もある
。オプションで、隣接する検査反復の間隔は、ターゲットの反復の間隔以上にすることが
できる。
たとえば、目標反復間隔は、カレント検査反復からの反復数を計算する場合があり、カ
レント検査反復は、目標反復間隔の開始反復である場合がある。たとえば、カレント検査
反復が100回目の反復である場合、プロセッサは、量子化予定のデータのデータ変動範
囲によって、目標反復間隔が3であると判断し、プロセッサは、目標反復間隔に3回の反
復が含まれ、それぞれが100回目の反復であると判断できる。2回目の反復、101回
目の反復、102回目の反復。プロセッサは、100回目の反復でニューラルネットワー
ク演算の量子化パラメータを調整できる。ここで、カレント検査の反復は、プロセッサが
現在量子化パラメータの更新と調整を実行しているときの対応する反復演算である。
オプションで、目標反復間隔は、カレント検査反復の次の反復から計算することもでき
、カレント検査反復は、カレント検査反復の前の一つ前の反復間隔の終了反復であっても
よい。たとえば、カレント検査反復が100回目の反復である場合、プロセッサは、量子
化予定のデータのデータ変動範囲によって、目標反復間隔が3であると判断し、プロセッ
サは、目標反復間隔に3回の反復(101回目反復、第102反復、および第103反復
。)が含まれていると判断できる。プロセッサは、100回目の反復と103回目の反復
で、ニューラルネットワーク演算の量子化パラメータを調整できる。この開示は、目標反
復間隔の確定方法を特に制限するものではない。
一実施形態では、小数小数点位置、スケーリング係数、およびオフセットの上記の計算
式から、量子化パラメータは、量子化予定のデータに関連することが多いことが分かる。
したがって、上記の操作S100において、量子化予定のデータのデータ変動範囲はまた
、これは、量子化パラメータの変動範囲によって間接的に確定され、量子化予定のデータ
のデータ変動範囲は、量子化パラメータの変動範囲によって表すことができる。具体的に
は、図8Mに示すように、本開示の一実施形態のパラメータ調整法における目標反復間隔
の確定方法800Mのフローチャートが示されている。前述の操作S100は、以下を含
み得る。
S110で、小数点位置の変動範囲を取得する。ここで、小数点位置の変動範囲を使用
して、量子化予定のデータのデータ変動範囲を表すことができ、小数点位置の変動範囲は
、量子化予定のデータのデータ変動範囲と正の相関がある。
オプションで、小数点位置の変動範囲は、量子化予定のデータの変動範囲を間接的に反
映できる。小数点位置の変動範囲は、カレント検査反復の小数点位置および少なくとも1
つの履歴反復の小数点位置によって確定され得る。ここで、カレント検査反復の小数点位
置および各履歴反復の小数点位置は、上記の式によって確定することができる。
たとえば、プロセッサは、カレント検査反復の小数点位置と履歴反復の小数点位置の分
散を計算し、分散に基づいて小数点位置の変動範囲を確定することもできる。別の例とし
て、プロセッサは、カレント検査反復の小数小数点位置の平均値および履歴反復の小数小
数点位置の平均値に従って、小数小数点位置の変動範囲を確定することができる。具体的
には、図8Nに示すように、図8Nは、本開示の一実施形態における小数点位置の変動範
囲の確定方法800Nのフローチャートを示す。前述の操作S110は、以下を含み得る
S111で、カレント検査反復前の一つ前の検査反復に対応する小数点位置と、一つ前
の検査反復前の履歴反復に対応する小数点位置によって、第1の平均値を確定する。ここ
で、前の検査反復は、量子化パラメータが最後に調整された時間に対応する反復であり、
前の検査反復とカレント検査反復との間に少なくとも1つの反復間隔がある。
オプションで、少なくとも1つの履歴反復が少なくとも1つの反復間隔に属し、各反復
間隔が1つの検査反復に対応し、2つの隣接する検査反復が1つの反復間隔を持つ場合が
ある。前述の操作S111における前の検査反復は、目標反復間隔前の一つ前の反復間隔
に対応する検査反復であり得る。
オプションで、第1の平均値は次の式に従って計算できる。
M1=a1xst−1+a2xst−2+a3xst−3+...+amxs
(38)
ここで、a1〜amは各反復の小数小数点位置に対応する計算された重みを指し、s
−1は前の検査反復に対応する小数小数点位置を指する。st−2、st−3...s
は、最後の検査反復前の履歴反復に対応する小数点位置を指し、M1は上記の第1の平均
値を指する。また、データの分布特性によれば、履歴反復が前回の検査反復から遠いほど
、前回の検査反復付近の反復小数小数点位置の分布や変動範囲への影響が小さいため、上
記の計算重みはa1として計算できる。a1〜amの順序は順番に減少する。
さらに、第1の平均値は、各反復間隔に対応する検査反復の小数点位置によって計算で
きる。たとえば、第1の平均値は次の式に従って計算できる。
M1=a1xst−1+a2xst−2+a3xst−3+...+amxs
ここで、a1〜amは、各検査反復の小数点位置に対応する計算された重みを参照し、
t−1は、前の検査反復に対応する小数点位置を参照する。st−2、st−3...
は、最後の検査反復前のプリセット反復間隔数の検査反復に対応する小数点位置を指
し、M1は上記の第1の平均値を指する。
たとえば、最後の検査反復はニューラルネットワーク演算の100回目の反復であり、
履歴反復は1回目の反復から99回目の反復までであり、99回の履歴反復は11回の反
復間隔に分割できる。たとえば、1回目から9回目までは第1反復間隔、10回目から1
8回目は第2反復間隔、...、90回目から99回目は第11反復間隔である。次に、
プロセッサは100回目の反復の小数点位置(つまりst−1)を取得し、100回目の
反復の前の反復間隔で検査反復の小数点位置を取得できる。つまり、sはニューラルネ
ットワークを参照できる。検査反復の1番目の反復間隔に対応する小数点位置(たとえば
、sはニューラルネットワークの1番目の反復に対応する小数点位置を指してもよい)
、...、st−3はニューラルネットワークの10番目の反復間隔の検査反復に対応す
る小数点位置を参照してもよく(たとえば、st−3はニューラルネットワークの81番
目の反復に対応する小数点位置を指してもよい)、st−2はニューラルネットワークの
11番目の反復を参照できるインターバルテストの反復に対応する小数点位置(たとえば
、st−2は、ニューラルネットワークの90番目の反復に対応する小数点位置を指して
もよい)。さらに、プロセッサは、上記の式に従って第1の平均値M1を計算することが
できる。
本開示の実施形態では、例示の便宜のために、反復間隔が同じ数の反復を含むと想定さ
れる。実際の使用では、反復間隔に含まれる反復回数は異なる場合がある。オプションで
、反復間隔に含まれる反復数は、反復が増やすにつれて増やす。つまり、ニューラルネッ
トワークのトレーニングまたは微調整が進むにつれて、反復間隔はますます大きくなる可
能性がある。
さらに、計算をさらに簡素化し、データが占めるストレージスペースを減少するために
、上記の第1平均値M1は、次の式を使用して計算できる。
M1=αxst−1+(1−α)xM0 式(39)
ここ、αは前回の検査反復に対応する小数小数点位置の計算重み、st−1は前回の検
査反復に対応する小数小数点位置、M0は前回の検査反復前の検査反復に対応するスライ
ディングを表す。平均値については、M0の具体的な計算方法は、上記のM1の計算方法
を参照できるが、ここでは繰り返しない。
S112で、カレント検査反復に対応する小数点位置と、カレント検査反復前の履歴反
復の小数点位置によって、第2の平均値を確定する。ここで、カレント検査反復に対応す
る小数小数点位置は、カレント検査反復の目標データビット幅および量子化予定のデータ
によって確定することができる。
オプションで、第2の平均値M2は、次の式に従って計算できる。
M2=b1xs+b2xst−1+b3xst−2+...+bmxs 式(4
0)
ここで、b1〜bmは各反復の小数小数点位置に対応する計算された重みを指し、s
はカレント検査反復に対応する小数小数点位置を指する。st−1、st−2...s
これは、カレント検査反復前の履歴反復に対応する小数点位置を指し、M2は上記の第2
の平均値を指する。さらに、データの分布特性によれば、履歴反復がカレント検査反復か
ら離れるほど、カレント検査反復に近い反復小数小数点位置の分布および変動範囲への影
響が小さくなるため、上記の計算の重みはb1〜bmに基づくことができる。順序が減少
する。
たとえば、カレント検査の反復はニューラルネットワーク演算の101回目の反復であ
り、カレント検査の反復前の履歴の反復は1回目の反復から100回目の反復を指する。
次に、プロセッサは101番目の反復の小数点位置(つまりs)を取得し、101番目
の反復の前の履歴反復の小数点位置を取得できる。つまり、sは、ニューラルネットワ
ークの1番目の反復の対応する小数点位置を指してもよく、...、st−2は、ニュー
ラルネットワークの99回目の反復に対応する小数点位置を指してもよく、st−1は、
ニューラルネットワークの100回目の反復に対応する小数点位置を指してもよい。さら
に、プロセッサは、上記の式に従って第2の平均値M2を計算することができる。
S1121で、中間スライディング平均値のプリセット数を取得する。中間スライディ
ング平均値のそれぞれは、カレント検査反復の前のプリセット数の検査反復に従って確定
され、検査反復はニューラルネットワークの量子化を調整することである。プロセスのパ
ラメータは、対応する反復である。
S1122で、カレント検査反復の小数点位置とプリセット数の中間スライディング平
均値に従って、第2の平均値を確定する。
たとえば、第2の平均値は、次の式に従って計算できる。
M2=b1xs+b2xst−1+b3xst−2+...+bmxs
ここで、b1〜bmは各反復の小数小数点位置に対応する計算された重みを指し、s
はカレント検査反復に対応する小数小数点位置を指する。st−1、st−2...s
これは、カレント検査反復の前の検査反復に対応する小数点位置を指し、M2は上記の第
2の平均値を指する。
たとえば、カレント検査の反復は100回目の反復であり、履歴の反復は1回目の反復
から99回目の反復までであり、99回の履歴の反復は11回の反復間隔に分割できる。
たとえば、1回目から9回目までは第1反復間隔、10回目から18回目は第2反復間隔
、...、90回目から99回目は第11反復間隔である。次に、プロセッサは100回
目の反復の小数点位置(つまりs)を取得し、100回目の反復の前の反復間隔で検査
反復の小数点位置を取得できる。つまり、sはニューラルネットワークの最初の小数点
位置を指してもよい。反復に対応する反復間隔検証小数点位置(たとえば、sはニュー
ラルネットワークの1番目の反復に対応する小数点位置を指してもよい)、...、s
−2はニューラルネットワークの10番目の反復間隔の検査反復に対応する小数小数点位
置を指してもよく(たとえば、st−2はニューラルネットワークの81回目の反復に対
応する小数小数点位置を指してもよい)、st−1はニューラルネットワークの11回目
の反復間隔の検査反復を参照できる。対応する小数点位置(たとえば、st−1は、ニュ
ーラルネットワークの90回目の反復に対応する小数点位置を指してもよい)。さらに、
プロセッサは、上記の式に従って第2の平均値M2を計算することができる。
本開示の実施形態では、例示の便宜のために、反復間隔が同じ数の反復を含むと想定さ
れる。実際の使用では、反復間隔に含まれる反復回数は異なる場合がある。オプションで
、反復間隔に含まれる反復数は、反復が増やすにつれて増やす。つまり、ニューラルネッ
トワークのトレーニングまたは微調整が進むにつれて、反復間隔はますます大きくなる可
能性がある。
さらに、計算を簡素化し、データが占めるストレージスペースを減少するために、プロ
セッサは、カレント検査反復に対応する小数点位置によって第2の平均値を確定し、第1
の平均値、すなわち、第2の平均値は以下のようになり得る。式は次のように計算される

M2=βxs+(1−β)xM1 式(41)
ここで、βはカレント検査反復に対応する小数点位置の計算された重みを指し、M1は
上記の第1の平均値を指する。
S113で、第1の平均値と第2の平均値に従って第1の誤差を確定する。第1の誤差
は、カレント検査反復と履歴反復の小数点位置の変動範囲を表すためである。
任意選択で、第1の誤差は、第2の平均値と前述の第1の平均値との間の差の絶対値に
等しくてもよい。具体的には、上記の第1の誤差は、次の式に従って計算できる。
diffupdate1=|M2−M1|=β|s(t)−M1| 式(4
2)
任意選択で、カレント検査反復の上記の小数小数点位置は、カレント検査反復で量子化
予定のデータおよびカレント検査反復に対応する目標データビット幅によって確定され得
る。特定の小数小数点位置計算方法は、上記の式を参照され得る。ここで、カレント検査
反復に対応する目標データビット幅はハイパーパラメータである可能性がある。さらに任
意選択で、カレント検査反復に対応する目標データビット幅は、ユーザー定義の入力であ
り得る。オプションで、ニューラルネットワークのトレーニングまたは微調整のプロセス
で量子化予定のデータに対応するデータビット幅は一定である場合がある。つまり、同じ
ニューラルネットワークで量子化される同じタイプのデータは、たとえばニューラルネッ
トワークの場合、同じデータビット幅で量子化される。ネットワークの各反復におけるニ
ューロンデータは、8ビットのデータ幅で量子化される。
オプションで、ニューラルネットワークトレーニングまたは微調整プロセスで量子化予
定のデータに対応するデータビット幅は、データビット幅が量子化予定のデータの量子化
要件を満たすことができるように可変である。すなわち、プロセッサは、量子化予定のデ
ータによって、量子化予定のデータに対応するデータビット幅を適応的に調整し、量子化
予定のデータに対応する目標データビット幅を取得することができる。具体的には、プロ
セッサは、最初にカレント検査反復に対応する目標データビット幅を確定し、次にプロセ
ッサは、カレント検査反復に対応する目標データビット幅に対応するカレント検査反復お
よびカレント検査反復に対応する量子化データを確定し得る。
本開示の実施形態では、カレント検査反復のデータビット幅が変化すると、それに応じ
て小数点位置が変化する。ただし、この時点での小数点位置の変化は、量子化予定のデー
タのデータ変化によるものではなく、上記式(42)で求めた第1の誤差で算出した目標
反復間隔が不正確になり、量子化の精度に影響を与える可能性がある。したがって、カレ
ント検査反復のデータビット幅が変化した場合、それに応じて上記の第2の平均値を調整
して、第1の誤差が小数点位置の変動範囲を正確に反映できるようにし、それによって目
標反復間隔の精度と信頼性を確保できる。具体的には、図8Pに示されるように、本開示
の別の実施形態における第2の平均値の確定方法800Pのフローチャートが示される。
上記の方法には、次のものも含まれる。
S116で、目標データビット幅によって、カレント検査反復のデータビット幅調整値
を確定する。
具体的には、プロセッサは、カレント検査反復の目標データビット幅および初期データ
ビット幅によって、カレント検査反復のデータビット幅調整値を確定することができる。
ここで、データビット幅調整値=目標データビット幅−初期データビット幅。もちろん、
プロセッサは、カレント検査反復のデータビット幅調整値を直接取得することもできる。
S117で、カレント検査反復のデータビット幅調整値に従って、上記の第2の平均値
を更新する。
具体的には、データビット幅調整値がプリセットパラメータより大きい場合(たとえば
、プリセットパラメータがゼロに等しい場合)、つまり、カレント検査反復のデータビッ
ト幅が増やすと、プロセッサはそれに応じて第2の平均値を減らすことができる。データ
ビット幅調整値がプリセットパラメータよりも小さい場合(たとえば、プリセットパラメ
ータがゼロに等しい場合)、つまり、カレント検査反復のデータビット幅を減らすと、プ
ロセッサはそれに応じて第2の平均値を増やすことができる。データビット幅調整値がプ
リセットパラメータと等しい場合、つまりデータビット幅調整値が0の場合、この時点で
カレント反復に対応する量子化データは変更されておらず、更新された第2の平均値は更
新前の第2の平均値と等しくなる。更新前の第2の平均値は、上記の式(41)に従って
計算される。オプションで、データビット幅調整値がプリセットパラメータに等しい場合
、つまりデータビット幅調整値が0に等しい場合、プロセッサは第2の平均値を更新しな
い場合がある。つまり、プロセッサは上記の操作S117を実行しない場合がある。
たとえば、更新前の第2の平均値M2=β×s+(1−β)×M1;現在の検査反復
に対応する目標データビット幅n2=初期データビット幅n1+Δnの場合、ここでΔn
はデータビットを表す。幅調整値。このとき、更新された第2の平均値M2=β×(s
−Δn)+(1−β)×(M1−Δn)。カレント検査反復に対応する目標データビット
幅n2=初期データビット幅n1−Δn(ここで、Δnはデータビット幅調整値を表す)
の場合、この時点で、更新された第2の平均値M2=β×(s−Δn)+(1−β)×
(M1+Δn)。ここで、sは、目標データのビット幅に応じてカレント検査反復によ
って確定される小数点位置を指する。
別の例として、更新前の第2の平均値M2=β×s+(1−β)×M1;カレント検
査反復に対応する目標データビット幅n2=初期データビット幅n1+Δnの場合、ここ
でΔnはデータを表すビット幅調整値。このとき、更新された第2の平均値M2=β×s
+(1−β)×M1−Δn。別の例として、カレント検査反復に対応する目標データビ
ット幅n2=初期データビット幅n1−Δn(ここで、Δnはデータビット幅調整値を表
す)の場合、この時点で、更新された第2の平均値M2=β×s+(1−β)×M1+
Δn、ここでsは、カレント検査反復で目標データビット幅によって確定された小数点
位置を指する。
さらに、前述の操作S200は、以下を含み得る。
目標反復間隔は、小数点位置の変動範囲によって確定され、ここで、目標反復間隔は、
上記の小数点位置の変動範囲と負の相関がある。つまり、前述の小数点位置の変動範囲が
大きいほど、目標反復間隔は短くなる。上記の小数点位置の変動範囲が小さいほど、目標
反復間隔は大きくなる。
上記のように、上記の第1の誤差は、小数小数点位置の変動の範囲を表すことができ、
上記の操作には、以下が含まれ得る。
プロセッサは、第1の誤差によって目標反復間隔を確定することができ、ここで、目標
反復間隔は、第1の誤差と負の相関がある。つまり、第1の誤差が大きいほど、小数点位
置の変動範囲が大きくなり、量子化予定のデータのデータ変動範囲が大きくなることを示
する。このとき、目標反復間隔は小さくなる。
具体的には、プロセッサは、次の式に従って目標反復間隔Iを計算できる。
I=δ/diffupdate1−γ 式(43)
ここで、Iは目標反復間隔、diffupdate1は上記の第1の誤差を表し、δと
γはハイパーパラメータにすることができる。
第1の誤差を使用して小数点位置の変動範囲を測定できることは理解できる。第1の誤
差が大きいほど、小数点位置の変動範囲が大きくなる。これは、量子化予定のデータの変
動範囲が大きく、目標反復間隔を設定する必要があることを示している。小さいである。
つまり、第1の誤差が大きいほど、量子化パラメータの調整が頻繁に行われる。
この実施形態では、小数小数点位置の変動範囲(第1の誤差)が計算され、小数小数点
位置の変動範囲によって目標反復間隔が確定される。量子化パラメータは目標反復間隔に
よって確定されるため、量子化パラメータに基づく量子化によって得られる量子化データ
は、目標データの小数小数点位置の変化傾向により一致し、量子化精度を確保しながらニ
ューラルネットワークの運用効率を向上させることができる。
オプションで、プロセッサは、カレント検査反復での目標反復間隔を確定した後、カレ
ント検査反復での目標反復間隔に対応する量子化パラメータおよびデータビット幅をさら
に確定して、目標反復間隔によって量子化パラメータを更新することができる。ここで、
量子化パラメータは、小数小数点位置および/またはスケーリング係数を含み得る。さら
に、量子化パラメータはまた、オフセットを含み得る。量子化パラメータの具体的な計算
方法については、上記を参照してください。図8Qに示されるように、本開示の別の実施
形態による量子化パラメータの調整方法800Qのフローチャートが示される。上記の方
法は、以下をさらに含み得る。
S300で、プロセッサは、目標反復間隔によって、ニューラルネットワーク演算の量
子化パラメータを調整する。
具体的には、プロセッサは、目標反復間隔によって検査反復を確定し、各検査反復で目
標反復間隔を更新し得、また、各検査反復で量子化パラメータを更新し得る。たとえば、
ニューラルネットワーク演算のデータビット幅は変更されない。このとき、プロセッサは
、各検査反復で量子化予定のデータに応じて、小数点位置などの量子化パラメータを直接
調整できる。別の例として、ニューラルネットワーク演算のデータビット幅は可変である
。このとき、プロセッサは各検査反復でデータビット幅を更新し、更新されたデータビッ
ト幅と検査反復で量子化予定のデータによって小数点位置を調整できる。およびその他の
量子化パラメータ。
本開示のこの実施形態では、プロセッサは、各検査反復で量子化パラメータを更新して
、現在の量子化パラメータが、量子化予定のデータの量子化要件を確実に満たすようにす
る。ここで、更新前の目標反復間隔と更新後の目標反復間隔は同じでも異なっていてもか
まいません。更新前のデータビット幅と更新後のデータビット幅は同じでも異なっていて
もかまいません。つまり、異なる反復間隔のデータビット幅は同じでも異なっていてもか
まいません。更新前の量子化パラメータと更新後の量子化パラメータは同じでも異なって
いてもよい。つまり、異なる反復間隔の量子化パラメータは同じでも異なっていてもよい
任意選択で、前述の操作S300において、プロセッサは、ニューラルネットワーク演
算における量子化パラメータを調整するために、検証反復において、目標反復間隔におけ
る量子化パラメータを確定することができる。
ある場合には、ニューラルネットワーク演算の各反復に対応するデータビット幅は変化
しない。つまり、ニューラルネットワーク演算の各反復に対応するデータビット幅は同じ
である。この時点で、プロセッサは次のことを確定できる。目標反復間隔内の小数点位置
などの量子化パラメータは、目標反復間隔によってニューラルネットワーク演算の量子化
パラメータを調整するという目的を達成できる。ここで、目標反復間隔の反復に対応する
量子化パラメータは一致している可能性がある。つまり、目標反復間隔の各反復は同じ小
数点位置を使用し、確定された小数点位置などの量子化パラメータのみが各検査反復で更
新されるため、各反復での量子化パラメータの更新と調整を回避できるため、減少できる
。量子化プロセスでの計算量により、量子化操作の効率が向上する。
オプションで、データビット幅が変更されていない上記の場合、目標反復間隔の反復に
対応する小数点位置を一定に保つことができる。具体的には、プロセッサは、カレント検
査反復で量子化予定のデータおよびカレント検査反復に対応する目標データビット幅によ
って、カレント検査反復に対応する小数小数点位置を確定し、カレント検査反復に対応す
る小数小数点位置を目標反復間隔として使用することができる。対応する小数点位置につ
いては、カレント検査反復に対応する小数点位置が、目標反復間隔の反復に使用される。
オプションで、カレント検査反復に対応する目標データビット幅をハイパーパラメータに
することができる。たとえば、カレント検査反復に対応する目標データのビット幅は、ユ
ーザーがカスタマイズする。上記の式を参照することにより、カレント検査反復に対応す
る小数点位置を計算することができる。
ある場合には、ニューラルネットワーク演算の各反復に対応するデータビット幅が変化
する可能性がある。つまり、異なる目標反復間隔に対応するデータビット幅に一致性がな
い可能性があるが、目標反復間隔の各反復のデータビット幅は残る。絶え間ない。ここで
、目標反復間隔の反復に対応するデータビット幅は、ハイパーパラメータであり得る。例
えば、目標反復間隔の反復に対応するデータビット幅は、ユーザ定義の入力であり得る。
ある場合には、目標反復間隔の反復に対応するデータビット幅もプロセッサによって計算
され得る。例えば、プロセッサは、カレント検査反復で量子化予定のデータによって、カ
レント検査反復に対応する目標データビット幅を確定し得る。およびカレント検査反復に
対応する目標データビット幅を、目標反復間隔に対応するデータビット幅として使用する
このとき、量子化プロセスでの計算量を単純化するために、目標反復間隔内の対応する
小数点位置などの量子化パラメータも変更しないでおくことができる。つまり、目標反復
間隔の各反復は同じ小数点位置を使用し、各反復での量子化パラメータの更新と調整を回
避するために、確定された小数点位置やデータビット幅などの量子化パラメータのみが各
検査反復で更新される。これにより、量子化プロセスでの計算量が減少され、量子化操作
の効率が向上する。
オプションで、目標反復間隔に対応するデータビット幅が変更されない状況を考慮して
、目標反復間隔内の反復に対応する小数点位置を一定に保つことができる。具体的には、
プロセッサは、カレント検査反復で量子化予定のデータおよびカレント検査反復に対応す
る目標データビット幅によって、カレント検査反復に対応する小数小数点位置を確定し、
カレント検査反復に対応する小数小数点位置を目標反復間隔として使用することができる
。対応する小数点位置については、カレント検査反復に対応する小数点位置が、目標反復
間隔の反復に使用される。オプションで、カレント検査反復に対応する目標データビット
幅をハイパーパラメータにすることができる。たとえば、カレント検査反復に対応する目
標データのビット幅は、ユーザーがカスタマイズする。上記の式を参照することにより、
カレント検査反復に対応する小数点位置を計算することができる。
オプションで、目標反復間隔の反復に対応するスケーリング係数は一致している場合が
ある。プロセッサは、現在の検査反復の量子化予定のデータによって、現在の検査反復に
対応するスケーリング係数を確定し、現在の検査反復に対応するスケーリング係数を、目
標反復間隔の各反復のスケーリング係数として使用することができる。ここで、目標反復
間隔の反復に対応するスケーリング係数は一致している。
オプションで、目標反復間隔の反復に対応するオフセットは一致している。プロセッサ
は、カレント検査反復の量子化データに従ってカレント検査反復に対応するオフセットを
確定し、カレント検査反復に対応するオフセットを、目標反復間隔における各反復のオフ
セットとして使用することができる。さらに、プロセッサは、量子化予定のデータのすべ
ての要素の中から最小値と最大値を確定し、小数点位置やスケーリング係数などの量子化
パラメータをさらに確定する場合がある。詳細については、上記の説明を参照してくださ
い。目標反復間隔の反復に対応するオフセットは一致している。
たとえば、目標反復間隔は、カレント検査反復から反復の数量を計算できる。つまり、
目標反復間隔に対応する検査反復は、目標反復間隔の1番目の反復である場合がある。た
とえば、カレント検査反復が100回目の反復である場合、プロセッサは、量子化予定の
データのデータ変動範囲によって、目標反復間隔が3であると判断し、プロセッサは、目
標反復間隔に3回の反復が含まれ、それぞれが100回目の反復であると判断できる。2
回目の反復、101回目の反復、102回目の反復。さらに、プロセッサは、量子化予定
のデータに応じて100回目の反復に対応する小数小数点位置や100回目の反復に対応
する目標データビット幅などの量子化パラメータを確定でき、100回目の反復に対応す
る小数小数点位置などの量子化パラメータ対を使用できる。100回目の反復、101回
目の反復、および102回目の反復が量子化される。このように、プロセッサは、101
回目の反復や102回目の反復で小数点位置などの量子化パラメータを計算する必要がな
いため、量子化プロセスでの計算量が減り、量子化操作の効率が向上する。
オプションで、目標反復間隔は、カレント検査反復の次の反復から計算することもでき
る。つまり、目標反復間隔に対応する検査反復は、目標反復間隔の終了反復でもある。た
とえば、カレント検査反復は100回目の反復であり、プロセッサは、量子化予定のデー
タのデータ変動範囲によって、目標反復間隔の反復間隔が3であると判断する。次に、プ
ロセッサは、目標反復間隔に3つの反復が含まれていると判断する場合がある。これらは
、それぞれ101回目の反復、102回目の反復、および103回目の反復である。さら
に、プロセッサは、量子化予定のデータに応じて100回目の反復に対応する小数小数点
位置や100回目の反復に対応する目標データビット幅などの量子化パラメータを確定で
き、100回目の反復に対応する小数小数点位置などの量子化パラメータ対を使用できる
。101回目の反復、102回目の反復、および103回目の反復が量子化される。この
ように、プロセッサは、102回目の反復や103回目の反復で小数点位置などの量子化
パラメータを計算する必要がないため、量子化プロセスでの計算量が減り、量子化操作の
効率が向上する。
本開示の実施形態において、同じ目標反復間隔における各反復に対応するデータビット
幅および量子化パラメータは同じである、すなわち、同じ目標反復間隔における各反復に
対応するデータビット幅、小数小数点位置、スケーリング係数、およびオフセットはすべ
てである。ニューラルネットワークのトレーニングまたは微調整プロセス中に、量子化予
定のデータの量子化パラメータの頻繁な調整を回避でき、量子化プロセスでの計算量を減
らすことができるため、量子化効率が向上する。さらに、データ変更の範囲に応じてトレ
ーニングまたは微調整のさまざまな段階で量子化パラメータを動的に調整することにより
、量子化の精度を保証できる。
別のケースでは、ニューラルネットワーク演算の各反復に対応するデータビット幅は変
更される可能性があるが、目標反復間隔の各反復のデータビット幅は変更されない。この
とき、目標反復間隔での反復に対応する小数点位置などの量子化パラメータも不整合であ
る可能性がある。プロセッサはまた、カレント検査反復に対応する目標データビット幅に
よって、目標反復間隔に対応するデータビット幅を確定することができ、ここで、目標反
復間隔の反復に対応するデータビット幅は一致している。その後、プロセッサは、データ
ビット幅および目標反復間隔に対応する小数点位置反復間隔によって、ニューラルネット
ワーク演算プロセスの小数点位置などの量子化パラメータを調整できる。任意選択で、図
8Rに示されるように、本開示の実施形態による、量子化パラメータの調整方法における
量子化パラメータの調整方法800Rのフローチャートが示される。上記の動作S300
は、以下をさらに含み得る。
S310で、カレント検査反復の量子化データに従って、目標反復間隔に対応するデー
タビット幅を確定する。ここで、目標反復間隔における反復に対応するデータビット幅は
一致している。言い換えると、ニューラルネットワーク演算中のデータビット幅は、1つ
おきの目標反復間隔で更新される。オプションで、目標反復間隔に対応するデータビット
幅は、カレント検査反復の目標データビット幅である場合がある。カレント検査反復の目
標データビット幅については、上記の操作S114およびS115を参照してください。
これらは、ここでは繰り返されない。
たとえば、目標反復間隔は、カレント検査反復から反復の数量を計算できる。つまり、
目標反復間隔に対応する検査反復は、目標反復間隔の1番目の反復である場合がある。た
とえば、カレント検査の反復は100回目の反復であり、プロセッサは、量子化予定のデ
ータのデータ変動範囲によって、目標反復間隔が6であると判断し、プロセッサは、目標
反復間隔にそれぞれ100回目の反復〜105回目の反復である6回の反復が含まれると
判断できる。。この時点で、プロセッサは100回目の反復の目標データビット幅を確定
でき、100回目の反復の目標データビット幅は101回目から105回目の反復まで使
用され、101回目から105回目の反復の必要はない。目標データのビット幅を計算す
ることにより、計算量を減らし、量子化効率と計算効率を向上させる。その後、106回
目の反復をカレント検査反復として使用でき、目標反復間隔の確定とデータビット幅の更
新という上記の操作が繰り返される。
オプションで、目標反復間隔は、カレント検査反復の次の反復から計算することもでき
る。つまり、目標反復間隔に対応する検査反復は、目標反復間隔の終了反復でもある。た
とえば、カレント検査反復は100回目の反復であり、プロセッサは、量子化予定のデー
タのデータ変動範囲によって、目標反復間隔の反復間隔が6であると判断する。次に、プ
ロセッサは、目標反復間隔に6つの反復が含まれていると判断する場合がある。これらは
、それぞれ101番目の反復から106番目の反復である。このとき、プロセッサは10
0回目の反復の目標データビット幅を確定でき、100回目の反復の目標データビット幅
は101回目から106回目の反復まで使用され、101回目から106回目の反復まで
のターゲットを計算する必要はない。データビット幅は計算量を減らし、量子化効率と計
算効率を向上させる。その後、106回目の反復をカレント検査反復として使用でき、目
標反復間隔の確定とデータビット幅の更新という上記の操作が繰り返される。
S320で、プロセッサは、取得した小数点位置の反復間隔と目標反復間隔に対応する
データビット幅に応じて、目標反復間隔における反復に対応する小数点位置を調整し、ニ
ューラルネットワーク演算の小数点位置などの量子化パラメータを調整する。
ここで、小数点位置反復間隔には少なくとも1つの反復が含まれ、小数点位置反復間隔
内の反復小数点位置は一致している。オプションで、小数点位置の反復間隔はハイパーパ
ラメータにすることができる。たとえば、小数点位置の反復間隔はユーザー定義の入力に
することができる。
オプションで、小数点位置の反復間隔は、目標反復間隔以下である。小数点位置の反復
間隔が上記の目標反復間隔と同じである場合、プロセッサは、データビット幅やカレント
検査反復での小数点位置などの量子化パラメータを同期的に更新できる。さらに任意選択
で、目標反復間隔の反復に対応するスケーリング係数は一致していてもよい。さらに、目
標反復間隔の反復に対応するオフセットは一致している。このとき、目標反復間隔の反復
に対応するデータビット幅や小数点位置などの量子化パラメータがすべて同じであるため
、計算量を減少し、量子化効率と計算効率を向上させることができる。特定の実装プロセ
スは、基本的に前述の実施形態と同じであり、上記の説明を参照することができるが、こ
こでは繰り返さない。
小数点位置の反復間隔が上記の目標反復間隔よりも小さい場合、プロセッサは、目標反
復間隔に対応する検査反復でデータビット幅と小数点位置およびその他の量子化パラメー
タを更新し、小数点位置反復間隔によって確定されるサブ検査反復で更新できる。小数点
位置などの量子化パラメータ。データビット幅を変更しない場合は、量子化予定のデータ
に応じて小数点位置などの量子化パラメータを微調整できるため、同じ目標反復間隔内で
小数点位置などの量子化パラメータを調整して、量子化精度をさらに向上させることがで
きる。
具体的には、プロセッサは、カレント検査反復および小数小数点位置反復間隔によって
副検査反復を確定することができ、副検査反復は、小数小数点位置を調整するために使用
され、副検査反復は、目標反復間隔における反復であり得る。さらに、プロセッサは、サ
ブ検査反復で量子化予定のデータおよび目標反復間隔に対応するデータビット幅によって
、目標反復間隔での反復に対応する小数点位置を調整することができる。小数小数点位置
を確定する方法は、上記の式を参照することができる。
たとえば、カレント検査の反復は100回目の反復であり、目標反復間隔は6であり、
目標反復間隔には100回目の反復から105番目の反復までの反復が含まれる。プロセ
ッサによって取得される小数点位置の反復間隔はIs1=3であり、小数点位置は、カレ
ント検査の反復から3回の反復で1回調整できる。具体的には、プロセッサは、前述のサ
ブ検査反復として100回目の反復を使用し、100回目の反復に対応する小数小数点位
置s1を計算することができる。小数小数点位置s1は、100回目の反復、101回目
の反復、および102回目の反復の間で共有される。s1が量子化される。その後、プロ
セッサは、小数点位置反復間隔Is1に従って、前述のサブ検査反復として103番目の
反復を使用でき、プロセッサは、103番目の反復に対応する量子化データおよび目標反
復間隔に対応するデータビット幅nに従って103番目の反復を確定することもできる。
2つの小数点位置の反復間隔に対応する小数点位置s2は、前述の小数点位置s2を10
3回目の反復から105回目の反復まで共有することによって量子化できる。本開示の実
施形態において、更新前の前述の小数小数点位置s1および更新後の小数小数点位置s2
の値は、同じであっても異なっていてもよい。さらに、プロセッサは、次の目標反復間隔
、および次の目標反復間隔に対応するデータビット幅および小数小数点位置などの量子化
パラメータを、106回目の反復で再び量子化予定のデータのデータ変動範囲によって確
定することができる。
別の例では、カレント検査反復は100回目の反復であり、目標反復間隔は6であり、
目標反復間隔には、101回目の反復から106回目の反復までの反復が含まれる。プロ
セッサによって取得される小数点位置の反復間隔はIs1=3であり、小数点位置は、カ
レント検査の反復から3回の反復で1回調整できる。具体的には、プロセッサは、カレン
ト検査反復で量子化予定のデータおよびカレント検査反復に対応する目標データビット幅
n1に従って、第1の小数点位置反復間隔に対応する小数小数点位置がs1であると確定
し得る。100回目の反復、10100回目の反復、102回目の反復と103回目の反
復は、量子化のために前述の小数点位置s1を共有する。その後、プロセッサは、小数点
位置反復間隔Is1に従って、前述のサブ検査反復として104番目の反復を使用でき、
プロセッサは、104番目の反復に対応する量子化データおよび目標反復間隔に対応する
データビット幅n1に従って、4番目の反復を確定することもできる。上記の小数小数点
位置s2を104回目の反復から106回目の反復まで共有することにより、2つの小数
点位置の反復間隔に対応する小数点位置s2を量子化することができる。本開示の実施形
態において、更新前の前述の小数点位置s1および更新後の小数点位置s2の値は、同じ
であっても異なっていてもよい。さらに、プロセッサは、106回の反復で再び量子化予
定のデータのデータ変動範囲によって、次の目標反復間隔、および次の目標反復間隔に対
応するデータビット幅および小数点位置などの量子化パラメータを確定し得る。
オプションで、小数点位置の反復間隔は1に等しくてもかまいません。つまり、小数点
位置は反復ごとに1回更新される。オプションで、小数点位置の反復間隔は同じでも異な
っていてもかまいません。たとえば、目標反復間隔に含まれる少なくとも1つの小数点位
置反復間隔は、順次増やす場合がある。ここでは、一例のみを使用して、この実施形態の
実施方法を説明し、開示を限定するために使用しない。
オプションで、目標反復間隔の反復に対応するスケーリング係数も一致していない場合
がある。さらに任意選択で、スケーリング係数は、前述の小数点位置と同期して更新され
得る、すなわち、スケーリング係数に対応する反復間隔は、前述の小数点位置反復間隔に
等しくあり得る。つまり、プロセッサが確定された小数点位置を更新するたびに、それに
応じて確定されたスケーリング係数を更新する。
オプションで、目標反復間隔の反復に対応するオフセットも不整合になる場合がある。
さらに、オフセットは、前述の小数点位置と同期して更新することができる。つまり、オ
フセットに対応する反復間隔は、前述の小数点位置の反復間隔に等しくすることができる
。つまり、プロセッサが確定された小数点位置を更新するたびに、それに応じて確定され
たオフセットを更新する。もちろん、オフセットは前述の位置位置またはデータビット幅
と非同期に更新することもできるが、ここでは特に制限されていない。さらに、プロセッ
サは、量子化予定のデータのすべての要素の中から最小値と最大値を確定し、小数点位置
やスケーリング係数などの量子化パラメータをさらに確定する場合がある。詳細について
は、上記の説明を参照してください。
別の実施形態では、プロセッサは、小数点位置の変動範囲および量子化予定のデータの
データビット幅によって、量子化予定のデータのデータ変動範囲を包括的に確定し、量子
化予定のデータのデータ変動範囲によって、目標反復間隔を確定することができる。目標
反復間隔を使用して、確定されたデータビット幅を更新できる。つまり、プロセッサは、
目標反復間隔の検証反復ごとに、確定されたデータビット幅を更新できる。小数点位置は
固定点データの精度を反映でき、データビット幅は固定点データのデータ表現範囲を反映
できるため、小数点位置の変動範囲と量子化目標データのデータビット幅変化を統合する
ことで、量子化予定のデータの精度を考慮できるようになる。データ表現範囲を満たすこ
ともできる。任意選択で、小数点位置の変動範囲は、前述の第1の誤差によって表すこと
ができ、データビット幅の変化は、前述の量子化誤差によって確定することができる。具
体的には、図8Sに示すように、本開示の別の実施形態によるパラメータ調整法における
目標反復間隔の確定方法800Sのフローチャートが示されている。上記の方法は、以下
を含み得る。
S400で、第1の誤差を取得する。第1の誤差は小数点位置の変動範囲を表すことが
でき、小数点位置の変動範囲は量子化予定のデータのデータ変動範囲を表すことができる
。具体的には、第1の誤差の計算方法は上記の操作S110を参照できる。ここでは説明
を反復ない。
S500で、第2の誤差を取得する。ここで、第2の誤差は、データビット幅の変化を
表すためである。
任意選択で、前述の第2の誤差は、量子化誤差によって確定され得、第2の誤差は、前
述の量子化誤差と正の相関がある。具体的には、図8Tに示すように、本開示の別の実施
形態によるパラメータ調整法における目標反復間隔の確定方法800Tのフローチャート
が示され、上記の動作S500は、以下を含み得る。
S510で、カレント検査反復の量子化予定のデータとカレント検査反復の量子化デー
タに従って量子化誤差を確定する。カレント検査反復の量子化データは、初期データビッ
ト幅によってカレント検査反復の量子化データを比較する。データは量子化される。具体
的な量子化誤差の確定方法については、上記の操作S114の説明を参照してください。
ここでは繰り返さないことにする。
S520で、量子化誤差に従って第2の誤差を確定する。ここで、第2の誤差は量子化
誤差と正の相関がある。
具体的には、第2の誤差は次の式に従って計算できる。
diffupdate2=θ*diff bit 式(4
4)
ここで、diffupdate2は上記の第2の誤差を表し、diffbitは上記の
量子化誤差を表し、θはハイパーパラメータにすることができる。
図8Sに戻ると、S600において、目標反復間隔は、第2の誤差および第1の誤差に
よって確定される。
具体的には、プロセッサは、第1の誤差および第2の誤差によって目標誤差を計算し、
目標誤差に従って目標反復間隔を確定することができる。オプションで、第1の誤差と第
2の誤差に対して加重平均計算を実行することにより、目標誤差を取得できる。たとえば
、target error=K*first error+(1−K)*second
error、ここで、Kはハイパーパラメータである。その後、プロセッサは、目標誤
差に従って目標反復間隔を確定することができ、目標反復間隔は、目標誤差と負の相関が
ある。つまり、目標誤差が大きいほど、目標反復間隔は短くなる。
オプションで、第1の誤差と第2の誤差の最大値に従って目標誤差を確定することもで
き、第1の誤差または第2の誤差の重みは0である。具体的には、図8Tに示されるよう
に、前述の動作S600は、以下を含み得る。
S610で、第1の誤差と第2の誤差うちの最大値を目標誤差とする。
具体的には、プロセッサは、第1の誤差diffupdate1と第2の誤差diff
update2の大きさを比較し、第1の誤差diffupdate1が第2の誤差di
ffupdate2より大きい場合、目標誤差は第1の誤差diffupdate1と等
しくなる。第1の誤差diffupdate1が第2の誤差よりも小さい場合、目標誤差
は第2の誤差diffupdate2と等しくなる。第1の誤差diffupdate1
が第2の誤差と等しい場合、目標誤差は第1の誤差diffupdate1または第2の
誤差diffupdate2である可能性がある。つまり、目標誤差diffupdat
は、次の式に従って確定できる。
diffupdate=max(diffupdate1, diffupdate2
) 式(45)
ここで、diffupdateは目標誤差を参照し、diffupdate1は第1の
誤差を参照し、diffupdate2は第2の誤差を参照する。
S620で、目標誤差に従って目標反復間隔を確定する。ここで、目標誤差は目標反復
間隔と負の相関がある。具体的には、目標反復間隔は次のように確定できる。
目標反復間隔は、次の式に従って計算できる。
I=β/diffupdate1−γ 式(46)
ここで、Iは目標反復間隔を表し、diffupdateは上記の目標誤差を表し、δ
とγはハイパーパラメータにすることができる。
任意選択で、前述の実施形態では、データビット幅は、ニューラルネットワーク演算に
おいて可変であり、データビット幅の変化傾向は、第2の誤差によって測定することがで
きる。この場合、図8Tに示すように、目標反復間隔を確定した後、プロセッサは、動作
S630を実行して、目標反復間隔の反復に対応するデータビット幅を確定することがで
きる。ここで、データビット幅は、目標反復間隔の反復に対応する。一致性がある。具体
的には、プロセッサは、カレント検査反復で量子化予定のデータによって、目標反復間隔
に対応するデータビット幅を確定することができる。言い換えると、ニューラルネットワ
ーク演算中のデータビット幅は、1つおきの目標反復間隔で更新される。オプションで、
目標反復間隔に対応するデータビット幅は、カレント検査反復の目標データビット幅であ
る場合がある。カレント検査反復の目標データビット幅については、上記の操作S114
およびS115を参照してください。これらは、ここでは繰り返されない。
たとえば、目標反復間隔は、カレント検査反復から反復の数量を計算できる。つまり、
目標反復間隔に対応する検査反復は、目標反復間隔の1番目の反復である場合がある。た
とえば、カレント検査の反復は100回目の反復であり、プロセッサは、量子化予定のデ
ータのデータ変動範囲によって、目標反復間隔が6であると判断し、プロセッサは、目標
反復間隔にそれぞれ100回目の反復〜105回目の反復である6回の反復が含まれると
判断できる。この時点で、プロセッサは100回目の反復の目標データビット幅を確定で
き、100回目の反復の目標データビット幅は101回目から105回目の反復まで使用
され、101回目から105回目の反復の必要はない。目標データのビット幅を計算する
ことにより、計算量を減らし、量子化効率と計算効率を向上させる。その後、106回目
の反復をカレント検査反復として使用でき、目標反復間隔の確定とデータビット幅の更新
という上記の操作が繰り返される。
オプションで、目標反復間隔は、カレント検査反復の次の反復から計算することもでき
る。つまり、目標反復間隔に対応する検査反復は、目標反復間隔の終了反復でもある。た
とえば、カレント検査反復は100回目の反復であり、プロセッサは、量子化予定のデー
タのデータ変動範囲によって、目標反復間隔の反復間隔が6であると判断する。次に、プ
ロセッサは、目標反復間隔に6つの反復が含まれていると判断する場合がある。これらは
、それぞれ101番目の反復から106番目の反復である。このとき、プロセッサは10
0回目の反復の目標データビット幅を確定でき、100回目の反復の目標データビット幅
は101回目から106回目の反復まで使用され、101回目から106回目の反復まで
のターゲットを計算する必要はない。データビット幅は計算量を減らし、量子化効率と計
算効率を向上させる。その後、106回目の反復をカレント検査反復として使用でき、目
標反復間隔の確定とデータビット幅の更新という上記の操作が繰り返される。
さらに、プロセッサは、検査反復時に目標反復間隔の量子化パラメータを確定して、目
標反復間隔によってニューラルネットワーク動作の量子化パラメータを調整することもで
きる。つまり、ニューラルネットワーク演算の小数点位置などの量子化パラメータをデー
タビット幅と同期して更新することができる。
ある場合には、目標反復間隔の反復に対応する量子化パラメータが一致している可能性
がある。任意選択で、プロセッサは、カレント検査反復で量子化予定のデータおよびカレ
ント検査反復に対応する目標データビット幅によってカレント検査反復に対応する小数点
位置を確定し、カレント検査反復に対応する小数点位置を標的反復として使用することが
できる。間隔に対応する小数点位置。目標反復間隔の反復に対応する小数点位置は同じで
ある。つまり、目標反復間隔の各反復は、カレント検査反復の小数点位置などの量子化パ
ラメータを使用し、各反復での量子化パラメータの更新と調整を回避することで、量子化
プロセスでの計算量を減らし、量子化を改善する。運用効率。
オプションで、目標反復間隔の反復に対応するスケーリング係数は一致している場合が
ある。プロセッサは、現在の検査反復の量子化予定のデータによって、現在の検査反復に
対応するスケーリング係数を確定し、現在の検査反復に対応するスケーリング係数を、目
標反復間隔の各反復のスケーリング係数として使用することができる。ここで、目標反復
間隔の反復に対応するスケーリング係数は一致している。
オプションで、目標反復間隔の反復に対応するオフセットは一致している。プロセッサ
は、カレント検査反復の量子化データに従ってカレント検査反復に対応するオフセットを
確定し、カレント検査反復に対応するオフセットを、目標反復間隔における各反復のオフ
セットとして使用することができる。さらに、プロセッサは、量子化予定のデータのすべ
ての要素の中から最小値と最大値を確定し、小数点位置やスケーリング係数などの量子化
パラメータをさらに確定する場合がある。詳細については、上記の説明を参照してくださ
い。目標反復間隔の反復に対応するオフセットは一致している。
たとえば、目標反復間隔は、カレント検査反復から反復の数量を計算できる。つまり、
目標反復間隔に対応する検査反復は、目標反復間隔の1番目の反復である場合がある。た
とえば、カレント検査反復が100回目の反復である場合、プロセッサは、量子化予定の
データのデータ変動範囲によって、目標反復間隔が3であると判断し、プロセッサは、目
標反復間隔に3回の反復が含まれ、それぞれが100回目の反復であると判断できる。2
回目の反復、101回目の反復、102回目の反復。さらに、プロセッサは、量子化予定
のデータに応じて100回目の反復に対応する小数点位置や100回目の反復に対応する
目標データビット幅などの量子化パラメータを確定でき、100回目の反復に対応する小
数点位置などの量子化パラメータ対を使用できる。100回目の反復、101回目の反復
、および102回目の反復が量子化される。このように、プロセッサは、101回目の反
復や102回目の反復で小数点位置などの量子化パラメータを計算する必要がないため、
量子化プロセスでの計算量が減り、量子化操作の効率が向上する。
オプションで、目標反復間隔は、カレント検査反復の次の反復から計算することもでき
る。つまり、目標反復間隔に対応する検査反復は、目標反復間隔の終了反復でもある。た
とえば、カレント検査反復は100回目の反復であり、プロセッサは、量子化予定のデー
タのデータ変動範囲によって、目標反復間隔の反復間隔が3であると判断する。次に、プ
ロセッサは、目標反復間隔に3つの反復が含まれていると判断する場合がある。これらは
、それぞれ101回目の反復、102回目の反復、および103回目の反復である。さら
に、プロセッサは、量子化予定のデータに応じて100回目の反復に対応する小数点位置
や100回目の反復に対応する目標データビット幅などの量子化パラメータを確定でき、
100回目の反復に対応する小数点位置などの量子化パラメータ対を使用できる。101
回目の反復、102回目の反復、および103回目の反復が量子化される。このように、
プロセッサは、102回目の反復や103回目の反復で小数点位置などの量子化パラメー
タを計算する必要がないため、量子化プロセスでの計算量が減り、量子化操作の効率が向
上する。
本開示の実施形態において、同じ目標反復間隔における各反復に対応するデータビット
幅および量子化パラメータは同じである、すなわち、同じ目標反復間隔における各反復に
対応するデータビット幅、小数点位置、スケーリング係数、およびオフセットはすべてで
ある。ニューラルネットワークのトレーニングまたは微調整プロセス中に、量子化予定の
データの量子化パラメータの頻繁な調整を回避でき、量子化プロセスでの計算量を減らす
ことができるため、量子化効率が向上する。さらに、データ変更の範囲に応じてトレーニ
ングまたは微調整のさまざまな段階で量子化パラメータを動的に調整することにより、量
子化の精度を保証できる。
別の場合において、プロセッサはまた、ニューラルネットワーク操作における量子化パ
ラメータを調整するために、小数点位置などの量子化パラメータに対応する小数点位置反
復間隔によって、目標反復間隔における量子化パラメータを確定し得る。つまり、ニュー
ラルネットワーク演算の小数点位置などの量子化パラメータは、データビット幅と非同期
に更新できる。プロセッサは、目標反復間隔の検査反復で、データビット幅や小数点位置
などの量子化パラメータを更新できる。また、プロセッサは、小数点位置によって反復す
ることもできる。間隔は、目標反復間隔の反復に対応する小数点位置を個別に更新する。
具体的には、プロセッサは、カレント検査反復に対応する目標データビット幅によって
、目標反復間隔に対応するデータビット幅を確定することもでき、ここで、目標反復間隔
の反復に対応するデータビット幅は一致している。その後、プロセッサは、データビット
幅および目標反復間隔に対応する小数点位置反復間隔によって、ニューラルネットワーク
演算プロセスの小数点位置などの量子化パラメータを調整できる。すなわち、図8Tに示
すように、目標反復間隔に対応するデータビット幅を確定した後、プロセッサは、動作S
640を実行して、取得した小数点位置反復間隔および目標反復間隔に対応するデータビ
ット幅によって目標を調整することもできる。反復間隔で対応する小数点位置を反復して
、ニューラルネットワーク演算での小数点位置を調整する。ここで、小数点位置反復間隔
には少なくとも1つの反復が含まれ、小数点位置反復間隔内の反復小数点位置は一致して
いる。オプションで、小数点位置の反復間隔はハイパーパラメータにすることができる。
たとえば、小数点位置の反復間隔はユーザー定義の入力にすることができる。
オプションで、小数点位置の反復間隔は、目標反復間隔以下である。小数点位置の反復
間隔が上記の目標反復間隔と同じである場合、プロセッサは、データビット幅やカレント
検査反復での小数点位置などの量子化パラメータを同期的に更新できる。さらに任意選択
で、目標反復間隔の反復に対応するスケーリング係数は一致していてもよい。さらに、目
標反復間隔の反復に対応するオフセットは一致している。このとき、目標反復間隔の反復
に対応するデータビット幅や小数点位置などの量子化パラメータがすべて同じであるため
、計算量を減少し、量子化効率と計算効率を向上させることができる。特定の実装プロセ
スは、基本的に前述の実施形態と同じであり、上記の説明を参照することができるが、こ
こでは繰り返さない。
小数点位置の反復間隔が上記の目標反復間隔よりも小さい場合、プロセッサは、目標反
復間隔に対応する検査反復でデータビット幅と小数点位置およびその他の量子化パラメー
タを更新し、小数点位置反復間隔によって確定されるサブ検査反復で更新できる。小数点
位置などの量子化パラメータ。データビット幅を変更しない場合は、量子化予定のデータ
に応じて小数点位置などの量子化パラメータを微調整できるため、同じ目標反復間隔内で
小数点位置などの量子化パラメータを調整して、量子化精度をさらに向上させることがで
きる。
具体的には、プロセッサは、カレント検査反復および小数点位置反復間隔によって副検
査反復を確定することができ、副検査反復は、小数点位置を調整するために使用され、副
検査反復は、目標反復間隔における反復であり得る。さらに、プロセッサは、サブ検査反
復で量子化予定のデータおよび目標反復間隔に対応するデータビット幅によって、目標反
復間隔での反復に対応する小数点位置を調整することができる。小数点位置を確定する方
法は、上記の式を参照することができる。
たとえば、カレント検査の反復は100回目の反復であり、目標反復間隔は6であり、
目標反復間隔には100回目の反復から105番目の反復までの反復が含まれる。プロセ
ッサによって取得される小数点位置の反復間隔はIs1=3であり、小数点位置は、カレ
ント検査の反復から3回の反復で1回調整できる。具体的には、プロセッサは、前述のサ
ブ検査反復として100回目の反復を使用し、100回目の反復に対応する小数点位置s
1を計算することができる。小数点位置s1は、100回目の反復、101回目の反復、
および102回目の反復の間で共有される。s1が量子化される。その後、プロセッサは
、小数点位置反復間隔Is1に従って、前述のサブ検査反復として103番目の反復を使
用でき、プロセッサは、103番目の反復に対応する量子化データおよび目標反復間隔に
対応するデータビット幅nに従って103番目の反復を確定することもできる。2つの小
数点位置の反復間隔に対応する小数点位置s2は、前述の小数点位置s2を103回目の
反復から105回目の反復まで共有することによって量子化できる。本開示の実施形態に
おいて、更新前の前述の小数点位置s1および更新後の小数点位置s2の値は、同じであ
っても異なっていてもよい。さらに、プロセッサは、次の目標反復間隔、および次の目標
反復間隔に対応するデータビット幅および小数点位置などの量子化パラメータを、106
回目の反復で再び量子化予定のデータのデータ変動範囲によって確定することができる。
別の例では、カレント検査反復は100回目の反復であり、目標反復間隔は6であり、
目標反復間隔には、101回目の反復から106回目の反復までの反復が含まれる。プロ
セッサによって取得される小数点位置の反復間隔はIs1=3であり、小数点位置は、カ
レント検査の反復から3回の反復で1回調整できる。具体的には、プロセッサは、カレン
ト検査反復で量子化予定のデータおよびカレント検査反復に対応する目標データビット幅
n1に従って、第1の小数点位置反復間隔に対応する小数点位置がs1であると確定し得
る。100回目の反復、102回目の反復と103回目の反復は、量子化のために前述の
小数点位置s1を共有する。その後、プロセッサは、小数点位置反復間隔Is1に従って
、前述のサブ検査反復として104番目の反復を使用でき、プロセッサは、104番目の
反復に対応する量子化データおよび目標反復間隔に対応するデータビット幅n1に従って
、4番目の反復を確定することもできる。上記の小数点位置s2を104回目の反復から
106回目の反復まで共有することにより、2つの小数点位置の反復間隔に対応する小数
点位置s2を量子化することができる。本開示の実施形態において、更新前の前述の小数
点位置s1および更新後の小数点位置s2の値は、同じであっても異なっていてもよい。
さらに、プロセッサは、次の目標反復間隔、および次の目標反復間隔に対応するデータビ
ット幅および小数点位置などの量子化パラメータを、106回目の反復で再び量子化予定
のデータのデータ変動範囲によって確定することができる。
オプションで、小数点位置の反復間隔は1に等しくてもかまいません。つまり、小数点
位置は反復ごとに1回更新される。オプションで、小数点位置の反復間隔は同じでも異な
っていてもかまいません。たとえば、目標反復間隔に含まれる少なくとも1つの小数点位
置反復間隔は、順次増やす場合がある。ここでは、一例のみを使用して、この実施形態の
実施方法を説明し、開示を限定するために使用しない。
オプションで、目標反復間隔の反復に対応するスケーリング係数も一致しいない場合が
ある。さらに任意選択で、スケーリング係数は、前述の小数点位置と同期して更新するこ
とができ、すなわち、スケーリング係数に対応する反復間隔は、前述の小数点位置反復間
隔に等しくすることができる。つまり、プロセッサが確定された小数点位置を更新するた
びに、それに応じて確定されたスケーリング係数を更新する。
オプションで、目標反復間隔の反復に対応するオフセットも不整合になる場合がある。
さらに、オフセットは、前述の小数点位置と同期して更新することができる。つまり、オ
フセットに対応する反復間隔は、前述の小数点位置の反復間隔に等しくすることができる
。つまり、プロセッサが確定された小数点位置を更新するたびに、それに応じて確定され
たオフセットを更新する。もちろん、オフセットは前述の位置位置またはデータビット幅
と非同期に更新することもできるが、ここでは特に制限されていない。さらに、プロセッ
サは、量子化予定のデータのすべての要素の中から最小値と最大値を確定し、小数点位置
やスケーリング係数などの量子化パラメータをさらに確定する場合がある。詳細について
は、上記の説明を参照してください。
他の任意選択の実施形態では、小数点位置、スケーリング係数、およびオフセットの3
つの量子化パラメータも非同期であり得る、すなわち、小数点位置反復間隔、スケーリン
グ係数反復間隔、およびオフセット反復間隔のうちの1つ、または3つすべてが異なる。
ここで、小数点位置の反復間隔とスケーリング係数の反復間隔は、両方とも目標反復間隔
以下である。オフセット反復間隔は、目標反復間隔よりも小さくすることができる。オフ
セットは、量子化予定のデータの分布にのみ関連するため、代替の実施形態では、オフセ
ットは、目標反復間隔と完全に非同期にすることもでき、すなわち、オフセット反復間隔
は、目標反復間隔よりも大きくすることもできる。
任意の実施形態において、上記の方法は、ニューラルネットワークのトレーニングまた
は微調整プロセスにおいて使用され得、ニューラルネットワークの微調整またはトレーニ
ングプロセスに含まれる操作データの量子化パラメータの調整を実現し、ニューラルネッ
トワークの演算プロセスを改善する。に含まれる算術データの量子化精度と効率。動作デ
ータは、ニューロンデータ、重みデータ、または勾配データのうちの少なくとも1つであ
り得る。図8Lに示すように、量子化予定のデータのデータ変化曲線によれば、トレーニ
ングや微調整の初期段階では、各反復で量子化予定のデータの差が比較的大きく、量子化
予定のデータのデータ変動範囲が比較的厳しいことがわかる。目標反復間隔の値を小さく
することができ、目標反復間隔の量子化パラメータを時間内に更新して、量子化の精度を
確保することができる。トレーニングや微調整の中間段階では、量子化予定のデータのデ
ータ変動範囲が徐々にフラットになる傾向があるが、このとき、目標反復間隔の値を大き
くして、量子化パラメータの頻繁な更新を回避し、量子化効率と計算効率を向上させるこ
とができる。トレーニングまたは微調整の後の段階では、ニューラルネットワークのトレ
ーニングまたは微調整は安定する傾向がある(つまり、ニューラルネットワークの正の演
算結果がプリセット参照値に近づくと、ニューラルネットワークのトレーニングまたは微
調整は安定する傾向がある)、このとき、目標反復間隔の値を増やし続けて、量子化効率
と計算効率をさらに向上させることができる。上記のデータ変化の傾向に基づいて、さま
ざまな方法を使用して、ニューラルネットワークのトレーニングまたは微調整のさまざま
な段階で目標反復間隔を確定し、量子化の精度を確保することに基づいて量子化効率と計
算効率を向上させることができる。
具体的には、図8Uに示すように、本開示の別の実施形態による量子化パラメータの調
整方法800Uのフローチャートが示されている。この方法がニューラルネットワークの
トレーニングまたは微調整プロセスで使用される場合、この方法には以下も含まれる場合
がある。
S710で、プロセッサは、カレント反復が第1のプリセット反復より大きいかどうか
を判断する。
ここで、カレント反復は、プロセッサによって現在実行されている反復演算を指する。
オプションで、第1のプリセット反復はハイパーパラメータであり得、第1のプリセット
反復は、量子化予定のデータのデータ変動曲線に従って確定され得、そして第1のプリセ
ット反復はまた、ユーザー定義設定であり得る。オプションで、第1のプリセット反復は
、1つのトレーニング周期(エポック)に含まれる反復の総数より少なくてもかまいませ
ん。1つのトレーニング周期は、データ集合内で量子化されるすべてのデータが1つの順
方向演算と1つの逆方向演算を完了することを意味する。
カレント反復が第1のプリセット反復以下である場合、プロセッサは操作S711を実
行して、第1のプリセット反復間隔を目標反復間隔として設定し、第1のプリセット反復
間隔によって量子化パラメータを調整することができる。
オプションで、プロセッサは、ユーザーによって入力された第1のプリセット反復間隔
を読み取り、第1のプリセット反復間隔と第1のプリセット反復間隔との間の対応に従っ
て、第1のプリセット反復間隔を確定することができる。オプションで、第1のプリセッ
ト反復間隔をハイパーパラメータにすることができ、第1のプリセット反復間隔をユーザ
ーが設定することもできる。このとき、プロセッサは、ユーザーが入力した第1のプリセ
ット反復と第1のプリセット反復間隔を直接読み取り、第1のプリセット反復間隔によっ
てニューラルネットワーク演算の量子化パラメータを更新できる。本開示の実施形態では
、プロセッサは、量子化予定のデータのデータ変動範囲によって、目標反復間隔を確定す
る必要はない。
たとえば、ユーザーが入力した第1のプリセット反復が100回目の反復で、第1のプ
リセット反復間隔が5の場合、カレント反復が100回目の反復以下の場合、量子化パラ
メータは第1のプリセット反復間隔によって更新できる。つまり、プロセッサは、1番目
の反復から100回目の反復までのニューラルネットワークのトレーニングまたは微調整
中に、量子化パラメータが5回の反復ごとに更新されることを確定できる。具体的には、
プロセッサは、1番目の反復に対応するデータビット幅n1および小数点位置s1などの
量子化パラメータを確定し、データビット幅n1および小数点位置s1を使用して、第1
の反復から第5の反復までのデータを分析し得る。量子化予定のデータは量子化される。
つまり、1番目の反復から5番目の反復まで同じ量子化パラメータを使用できる。その後
、プロセッサは、6回目の反復に対応するデータビット幅n2や小数点位置s2などの量
子化パラメータを確定し、6回目の反復から10回目の反復までの待機時間にデータビッ
ト幅n2や小数点位置s2などの量子化パラメータを使用できる。量子化後のデータは量
子化される。つまり、6番目の反復から10番目の反復まで同じ量子化パラメータを使用
できる。同様に、プロセッサは、100回目の反復が完了するまで、上記の量子化方法に
従うことができる。各反復間隔でのデータビット幅や小数点位置などの量子化パラメータ
を確定する方法は、上記の説明を参照することができ、ここでは繰り返さない。
別の例として、ユーザーが入力した第1のプリセット反復が100回目の反復であり、
第1のプリセット反復間隔が1の場合、カレント反復が100回目の反復以下の場合、量
子化パラメータは第1のプリセット反復間隔によって更新できる。つまり、プロセッサは
、ニューラルネットワークのトレーニングまたは微調整の1番目の反復から100回目の
反復までの各反復で量子化パラメータが更新されることを確定できる。具体的には、プロ
セッサは、1番目の反復に対応するデータビット幅n1および小数点位置s1などの量子
化パラメータを確定し、データビット幅n1および小数点位置s1を使用して、1番目の
反復で量子化予定のデータを量子化することができる。その後、プロセッサは、2回目の
反復に対応するデータビット幅n2や小数点位置s2などの量子化パラメータを確定し、
データビット幅n2と小数点位置s2を使用して、2回目の反復で量子化予定のデータを
量子化して、……。同様に、プロセッサは、データビット幅n100や100回目の反復
の小数点位置s100などの量子化パラメータを確定し、データビット幅n100と小数
点位置s100を使用して、100回目の反復で量子化予定のデータを量子化できる。各
反復間隔でのデータビット幅や小数点位置などの量子化パラメータを確定する方法は、上
記の説明を参照することができ、ここでは繰り返さない。
上記は、データビット幅と量子化パラメータの同期更新の一例にすぎない。他のオプシ
ョンの実施形態では、各目標反復間隔において、プロセッサは、小数点位置の変動範囲に
よって、小数点位置の反復間隔を確定することもできる。および小数点位置の反復間隔に
よって、小数点位置などの量子化パラメータを更新する。
オプションで、カレント反復が第1のプリセット反復よりも大きい場合、ニューラルネ
ットワークのトレーニングまたは微調整が中期段階にあることを示すことができる。この
時点で、履歴反復で量子化予定のデータのデータ変動範囲を取得し、量子化予定のデータ
のデータを取得できる。変動の範囲によって目標反復間隔が決まり、目標反復間隔は上記
の第1のプリセット反復間隔よりも大きくなる可能性があるため、量子化パラメータの更
新回数が減り、量子化効率と計算効率が向上する。具体的には、カレント反復が第1のプ
リセット反復よりも大きい場合、プロセッサは操作S713を実行して、量子化予定のデ
ータのデータ変動範囲によって目標反復間隔を確定し、目標反復間隔によって量子化パラ
メータを調整することができる。
上記の例を続けると、ユーザーが入力した第1のプリセット反復は100回目の反復で
あり、第1のプリセット反復間隔は1である。カレント反復が100回目の反復以下の場
合、第1のプリセット反復間隔によって量子化を更新できる。パラメータ。つまり、プロ
セッサは、ニューラルネットワークのトレーニングまたは微調整の1番目の反復から10
0回目の反復までの各反復で量子化パラメータが更新されることを確定でき、特定の実装
は上記の説明を参照できる。カレント反復が100回目の反復より大きい場合、プロセッ
サは、カレント反復で量子化予定のデータと前の履歴反復で量子化予定のデータ、および
量子化予定のデータのデータ変動範囲によって、量子化予定のデータのデータ変動範囲を
確定できる。目標反復間隔を確定する。具体的には、カレント反復が100回目の反復よ
り大きい場合、プロセッサは、カレント反復に対応するデータビット幅を適応的に調整し
、カレント反復に対応する目標データビット幅を取得し、カレント反復に対応する目標デ
ータビット幅を変更できる。目標反復間隔のデータビット幅として、目標反復間隔の反復
に対応するデータビット幅は一致している。同時に、プロセッサは、カレント反復に対応
する目標データビット幅および量子化予定のデータによってカレント反復に対応する小数
点位置を確定し、カレント反復に対応する小数点位置に従って第1の誤差を確定し得る。
プロセッサはまた、カレント反復に対応して量子化予定のデータによって量子化誤差を確
定し、量子化誤差に従って第2の誤差を確定することができる。その後、プロセッサは、
第1の誤差および第2の誤差によって目標反復間隔を確定することができ、目標反復間隔
は、前述の第1のプリセット反復間隔よりも大きくてもよい。さらに、プロセッサは、目
標反復間隔における小数点位置またはスケーリング係数などの量子化パラメータを確定す
ることができ、特定の確定方法は、上記の説明を参照することができる。
たとえば、カレント反復が100回目の反復である場合、プロセッサは、量子化予定の
データのデータ変動範囲によって、目標反復間隔が3であると判断し、プロセッサは、目
標反復間隔に3回の反復が含まれ、それぞれが100回目の反復、101回目の反復、お
よび反復102回目の反復であると判断できる。反プロセッサはまた、100回目の反復
で量子化予定のデータによって量子化誤差を確定し、量子化誤差に従って100回目の反
復に対応する第2の誤差および目標データビット幅を確定し、目標反復間隔に対応するデ
ータとして目標データビット幅を使用し得る。ビット幅。100回目の反復、101回目
の反復、および102回目の反復に対応するデータビット幅はすべて、100回目の反復
に対応する目標データビット幅である。プロセッサはまた、100回目の反復で量子化予
定のデータおよび100回目の反復に対応する目標データビット幅によって、100回目
の反復に対応する小数点位置およびスケーリング係数などの量子化パラメータを確定し得
る。その後、100回目の反復に対応する量子化パラメータを使用して、100回目の反
復、101回目の反復、および102回目の反復を量子化する。
さらに、図8Vに示されるように、本開示のさらに別の実施形態による、量子化パラメ
ータの調整方法800Vのフローチャートが示され、上記の方法は、以下をさらに含み得
る。
カレント反復が第1のプリセット反復よりも大きい場合、プロセッサはさらに操作S7
12を実行することができる。すなわち、プロセッサは、カレント反復が第2のプリセッ
ト反復よりも大きいかどうかをさらに確定することができる。ここで、第2のプリセット
反復は第1のプリセット反復よりも大きく、第2のプリセット反復間隔は第1のプリセッ
ト反復間隔よりも大きくなる。オプションで、前述の第2のプリセット反復はハイパーパ
ラメータであり、第2のプリセット反復は少なくとも1つのトレーニング周期の反復の総
数より大きくてもよい。オプションで、第2のプリセット反復は、量子化予定のデータの
データ変動曲線に従って確定できる。オプションで、第2のプリセット反復もユーザーが
カスタマイズできる。
カレント反復が第2のプリセット反復以上である場合、プロセッサは操作S714を実
行し、第2のプリセット反復間隔を目標反復間隔として使用し、第2のプリセット反復間
隔によって第2のプリセット反復間隔を調整することができる。ニューラルネットワーク
の量子化プロセスのパラメータ。カレント反復が第1のプリセット反復よりも大きく、カ
レント反復が第2のプリセット反復よりも小さい場合、プロセッサは上記の操作S713
を実行し、量子化予定のデータのデータ変動範囲によって目標反復間隔を確定し、そして
目標反復間隔は、量子化パラメータを調整する。
オプションで、プロセッサは、ユーザーが設定した第2のプリセット反復を読み取り、
第2のプリセット反復と第2のプリセット反復間隔(第2のプリセット反復)の間の対応
関係に従って、第2のプリセット反復間隔を確定できる。間隔は、最初にプリセット反復
間隔よりも大きくなっている。オプションで、ニューラルネットワークの収束度がプリセ
ット条件を満たす場合、カレント反復が第2のプリセット反復以上であると判断される。
例えば、カレント反復の順方向演算結果がプリセット基準値に近づくと、ニューラルネッ
トワークの収束度がプリセット条件を満たしていると判断できる。このとき、カレント反
復が2回目のプリセット反復以上であると判断できる。または、カレント反復に対応する
損失値がプリセットしきい値以下の場合、ニューラルネットワークの収束度がプリセット
条件を満たすと判断できる。
任意選択で、前述の第2のプリセット反復間隔はハイパーパラメータであり得、第2の
プリセット反復間隔は、少なくとも1つのトレーニング周期の反復の総数以上であり得る
。オプションで、第2のプリセット反復間隔はユーザーがカスタマイズできる。プロセッ
サは、ユーザーが入力した第2のプリセット反復と第2のプリセット反復間隔を直接読み
取り、第2のプリセット反復間隔によってニューラルネットワーク演算の量子化パラメー
タを更新できる。たとえば、第2のプリセット反復間隔は、1つのトレーニング周期の反
復の総数に等しくなる場合がある。つまり、量子化パラメータは、トレーニング周期(エ
ポック)ごとに1回更新される。
さらに、上記の方法には以下も含まれる。
カレント反復が第2のプリセット反復以上である場合、プロセッサは、各検査反復で現
在のデータビット幅を調整する必要があるかどうかを判断することもできる。現在のデー
タビット幅を調整する必要がある場合、プロセッサは上記の操作S714から操作S71
3に切り替えてデータビット幅を再確定し、データビット幅が量子化予定のデータの要件
を満たすことができるようにすることができる。
具体的には、プロセッサは、前述の第2の誤差によってデータビット幅を調整する必要
があるかどうかを確定することができる。プロセッサはまた、前述の操作S715を実行
して、第2の誤差がプリセット誤差値より大きいかどうかを確定し得、カレント反復が第
2のプリセット反復以上であり、第2の誤差がプリセット誤差値より大きい場合、スイッ
チして操作を実行する。S713:量子化予定のデータのデータ変動範囲によって反復間
隔を確定し、反復間隔によってデータビット幅を再確定する。カレント反復が第2のプリ
セット反復以上であり、第2の誤差がプリセット誤差値以下の場合、操作S714の実行
を続行し、第2のプリセット反復間隔を目標反復間隔として使用する。プリセット反復間
隔は、ニューラルネットワークの量子化プロセスのパラメータを調整する。ここで、プリ
セット誤差値は、量子化誤差に対応するプリセットしきい値に従って確定される場合があ
る.第2の誤差がプリセット誤差値よりも大きい場合は、データビット幅をさらに調整す
る必要がある可能性がある。プロセッサは、量子化予定のデータに基づいている場合があ
る。のデータ変動範囲が反復間隔を確定し、反復間隔によってデータビット幅を再確定す
る。
たとえば、2番目にプリセット反復間隔は、1つのトレーニング周期の反復の総数であ
る。カレント反復が第2のプリセット反復以上の場合、プロセッサは第2のプリセット反
復間隔によって量子化パラメータを更新できる。つまり、トレーニング周期(エポック)
ごとに1回量子化パラメータを更新する。このとき、各トレーニング周期の1番目の反復
は検査反復と見なされる。各トレーニング周期の1番目の反復で、プロセッサは検査反復
で量子化予定のデータによって量子化誤差を確定し、量子化誤差に従って第2の誤差を確
定できる。そして、次の式に従って、第2の誤差がプリセット誤差値より大きいかどうか
を判別する。
diffupdate2=θ*diff bit>T
ここで、diffupdate2は第2の誤差を表し、diffbitは量子化誤差を
表し、θはハイパーパラメータを表し、Tはプリセット誤差値を表す。オプションで、プ
リセット誤差値は、第1のプリセットしきい値をハイパーパラメータで割った値に等しく
なる。もちろん、プリセット誤差値もハイパーパラメータである可能性がある。たとえば
、プリセット誤差値は次の式に従って計算できる。T=th/10、ここでthは第1の
プリセットしきい値を表し、ハイパーパラメータの値は10である。
第2の誤差diffupdate2がプリセット誤差値Tより大きい場合は、データビ
ット幅がプリセット要件を満たしていない可能性があることを意味する。この時点で、第
2のプリセット反復間隔は量子化パラメータの更新に使用できなくなり、プロセッサは量
子化予定のデータを追跡する可能性がある。変動範囲によって、データビット幅がプリセ
ット要件を確実に満たすように、目標反復間隔が決まる。つまり、第2の誤差diff
pdate2がプリセット誤差値Tより大きい場合、プロセッサは前述の操作S714か
ら前述の操作S713に切り替わる。
もちろん、他の実施形態では、プロセッサは、前述の量子化誤差に従ってデータビット
幅を調整する必要があるかどうかを確定することができる。たとえば、2番目にプリセッ
ト反復間隔は、1つのトレーニング周期の反復の総数である。カレント反復が第2のプリ
セット反復以上の場合、プロセッサは第2のプリセット反復間隔によって量子化パラメー
タを更新できる。つまり、トレーニング周期(エポック)ごとに1回量子化パラメータを
更新する。ここで、各トレーニングサイクルの1番目の反復が検査反復として使用される
。各トレーニングサイクルの1番目の反復で、プロセッサは検査反復で量子化予定のデー
タによって量子化誤差を確定できる。量子化誤差が第1のプリセットしきい値以上の場合
、データビット幅がプリセットしきい値を満たさない可能性がある。プロセッサが上記の
動作S714から上記の動作S713に切り替わると想定される。
オプションの実施形態では、小数点位置、スケーリング係数、およびオフセットなどの
前述の量子化パラメータを表示装置に表示することができる。このとき、ユーザーはディ
スプレイ装置を介してニューラルネットワーク演算プロセスの量子化パラメータを学習で
き、プロセッサーによって確定された量子化パラメータを適応的に変更することもできる
。同様に、前述のデータビット幅と目標反復間隔も表示装置で表示できる。このとき、ユ
ーザーはディスプレイ装置を介してニューラルネットワーク演算プロセスの目標反復間隔
やデータビット幅などのパラメータを学習でき、プロセッサーによって確定された目標反
復間隔やデータビット幅を適応的に変更することもできる。
データビット幅を確定するための上記の目標反復間隔および量子化パラメータの目標反
復間隔は単なる例であり、網羅的ではないことに留意されたい。当業者は、本開示の技術
案の本質を理解している。次に、本開示の技術案に基づいて、他の変形または変換を生成
することができる。例えば、データビット幅を確定するための目標反復間隔内の量子化パ
ラメータを確定するための目標反復間隔は、図6、7および8Aにも適用可能である。示
されている技術案。ただし、達成される機能および技術的効果が本開示のものと類似して
いる限り、それらは本開示の保護範囲に含まれるべきである。
技術案は、量子化パラメータを確定し、量子化誤差に応じてデータビット幅または量子
化パラメータを調整し、データビット幅または量子化パラメータを調整するための目標反
復間隔を確定して、ニューラルネットワーク演算プロセスの適切な時点を達成するためで
ある。データビット幅または量子化パラメータは、適切な量子化パラメータが適切な反復
時点で使用されるように調整され、人工知能プロセッサのチップを実現してニューラルネ
ットワーク動作を実行し、固定点動作速度を達成し、人工知能プロセッサのチップのピー
ク計算能力を向上させる同時に、操作に必要な浮動小数点操作の精度が満たされる。
前述の方法の実施形態について、簡単な説明のために、それらはすべて一連の作用の組
み合わせとして表されるが、当技術分野の当業者は、本開示が記載された一連の作用によ
って限定されないことを理解すべきであることに留意されたい。この開示によれば、特定
のステップは、他の順序でまたは同時に実行することができるからである。第二に、当技
術分野の当業者はまた、本明細書に記載の実施形態が任意の実施形態であり、関連するア
クションおよびモジュールが本開示によって必ずしも必要とされないことを認識すべきで
ある。
さらに、図2、6、7、および8A〜8Vのフローチャートのステップは、矢印で示す
ように順番に表示されているが、これらのステップは、必ずしも矢印で示す順序で実行さ
れるとは限らないことに留意されたい。この記事で特に明記されていない限り、これらの
ステップの実行は順序に厳密に制限されておらず、これらのステップは他の順序で実行で
きる。さらに、図2、6、7、および8Aから8Vのステップの少なくとも一部は、複数
のサブステップまたは複数のステージを含み得る。これらのサブステップまたはステージ
は、必ずしも同時に実行されるとは限らないが、同時に完了することができる。異なる時
間に実行される場合、これらのサブステップまたはステージの実行順序は、必ずしも連続
して実行されるとは限らないが、他のステップまたは他のステップのサブステップまたは
ステージの少なくとも一部と交互にまたは交互に実行され得る。
図9に示されるように、本開示のために提案されたニューラルネットワークの量子化パ
ラメータの確定装置のハードウェア構成のブロック図。図9において、ニューラルネット
ワークの量子化パラメータの確定装置10は、プロセッサ110およびメモリ120を含
み得る。図9のニューラルネットワークの量子化パラメータ確定装置10には、本実施形
態に関連する構成要素のみが示されている。したがって、当業者にとって、ニューラルネ
ットワークの量子化パラメータ確定装置10はまた、図10に示されるものとは異なる共
通の構成要素を含み得ることは明らかである。例:固定小数点演算。
ニューラルネットワークの量子化パラメータ確定装置10は、例えば、ニューラルネッ
トワークの生成、ニューラルネットワークのトレーニングまたは学習、浮動点ニューラル
ネットワークの固定点ニューラルネットワークへの量子化、または再トレーニングのため
の様々な処理機能を有する計算装置に対応し得る。ニューラルネットワークの機能。例え
ば、ニューラルネットワークの量子化パラメータ確定装置10は、パーソナルコンピュー
タ(PC)、サーバ機器、モバイル機器などの様々なタイプの機器として実装することが
できる。
プロセッサ110は、ニューラルネットワークの量子化パラメータ確定装置10のすべ
ての機能を制御する。例えば、プロセッサ110は、ニューラルネットワークの量子化パ
ラメータ確定装置10上のメモリ120に格納されたプログラムを実行することによって
、ニューラルネットワークの量子化パラメータ確定装置10のすべての機能を制御する。
プロセッサ110は、ニューラルネットワークの量子化パラメータを確定するために装置
10に設けられた中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)
、アプリケーションプロセッサ(AP)、人工知能プロセッサのチップ(IPU)などに
よって実装され得る。しかしながら、この開示はこれに限定されない。
メモリ120は、ニューラルネットワークの量子化パラメータ確定装置10で処理され
た様々なデータを格納するためのハードウェアである。例えば、メモリ120は、ニュー
ラルネットワークの量子化パラメータを確定するために、処理されたデータおよび処理さ
れるべきデータを装置10に格納することができる。メモリ120は、プロセッサ110
が処理した、または処理されるニューラルネットワーク演算プロセスに関与するデータ集
合、例えば、トレーニングされていない初期ニューラルネットワークのデータ、トレーニ
ングプロセス中に生成されたニューラルネットワークの中間データ、およびすべてのトレ
ーニングが完了することを格納することができる。ニューラルネットワークにおけるデー
タ、量子化されたニューラルネットワークにおけるデータなど。さらに、メモリ120は
、ニューラルネットワークの量子化パラメータ確定装置10によって駆動されるアプリケ
ーション、ドライバプログラムなどを格納することができる。例えば、メモリ120は、
プロセッサ110によって実行されるニューラルネットワークのトレーニングアルゴリズ
ム、量子化アルゴリズムなどに関連する様々なプログラムを格納することができる。メモ
リー120は、DRAMであり得るが、本開示は、それに限定されない。メモリ120は
、揮発性メモリまたは非揮発性メモリのうちの少なくとも1つを含み得る。不揮発性メモ
リには、読み取り専用メモリ(ROM)、プログラム可能なROM(PROM)、電気的
にプログラム可能なROM(EPROM)、電気的に消去可能なプログラム可能なROM
(EEPROM)、フラッシュメモリ、位相変化RAM(PRAM)、磁気が含まれる。
RAM(MRAM)、抵抗RAM(RRAM)、強誘電体RAM(FRAM)など。揮発
性メモリには、動的RAM(DRAM)、静的RAM(SRAM)、同期DRAM(SD
RAM)、PRAM、MRAM、RRAM、強誘電体RAM(FeRAM)などが含まれ
る。一実施形態では、メモリ120は、ハードディスクドライブ(HDD)、ソリッドス
テートドライブ(SSD)、高密度フラッシュメモリ(CF)、セキュアデジタル(SD
)カード、マイクロセキュアデジタル(Micro−SD)カード、ミニセキュアデジタ
ル(ミニ−SD)カード、xDカード、キャッシュ、またはメモリスティックの少なくと
も1つ。
プロセッサ110は、所与の初期ニューラルネットワークを反復トレーニング(学習)
することによって、トレーニングされたニューラルネットワークを生成することができる
。この状態では、ニューラルネットワークの処理精度を確保するという意味で、初期ニュ
ーラルネットワークのパラメータは、32ビット浮動小数点精度のデータ表現形式などの
高精度のデータ表現形式である。パラメータには、ニューラルネットワークとの間のさま
ざまなタイプのデータ入力/出力を含めることができる。たとえば、ニューラルネットワ
ークの入力/出力ニューロン、重み、オフセットなどである。固定小数点演算と比較して
、浮動小数点操作は比較的大量の操作と比較的頻繁なメモリアクセスを必要とする。具体
的には、ニューラルネットワーク処理に必要な操作のほとんどは、さまざまな畳み込み操
作として知られている。したがって、処理性能が比較的低いモバイル装置(スマートフォ
ン、タブレット、ウェアラブル装置など、組み込み装置など)では、ニューラルネットワ
ークの高精度のデータ操作により、モバイル装置のリソースが十分に活用されない。その
結果、ニューラルネットワークの動作を許容精度損失範囲内で駆動し、上記機器の動作量
を十分に低減するために、ニューラルネットワークの動作に伴う高精度のデータを量子化
して低精度定点数に変換することができる。
ニューラルネットワークが展開されているモバイル装置、組み込み装置などの装置の処
理性能を考慮して、ニューラルネットワークの量子化パラメータ確定装置10は、トレー
ニングされたニューラルネットワークのパラメータを特定のビット数の固定点量子化に変
換し、ニューラルネットワークを実行する。ネットワーク量子化パラメータ確定装置10
は、対応する量子化パラメータをニューラルネットワークを展開する装置に送信するので
、人工知能プロセッサのチップがトレーニング、微調整および他の操作操作を実行すると
き、それは固定小数点数操作である。ニューラルネットワークを展開する装置は、ニュー
ラルネットワークを使用して音声認識、画像認識などを実行する自律車両、ロボット、ス
マートフォン、タブレット装置、拡張現実(AR)装置、モノインターネット(IoT)
装置などであり得るが、本開示はそうではない。これに限定される。
プロセッサ110は、メモリ120からニューラルネットワーク動作プロセスのデータ
を取得する。データには、ニューロン、重み、オフセット、および勾配の少なくとも1つ
が含まれる。図2に示す技術案を使用して、対応する量子化パラメータを確定し、量子化
パラメータを使用して、ニューラルネットワーク演算プロセスで目標データを量子化する
。量子化後のデータに対してニューラルネットワーク演算を実行する。この操作には、ト
レーニング、微調整、および推論が含まれるが、これらに限定されない。
プロセッサ110は、量子化誤差に従ってデータビット幅nを調整し、プロセッサ11
0は、図6、7および8に示される目標反復間隔法のプログラムを実行して、データビッ
ト幅の目標反復間隔または量子化パラメータを確定することができる。目標反復間隔。
要約すると、本明細書の方法は、ニューラルネットワーク量子化パラメータ確定装置を
提供する。メモリ120およびプロセッサ110によって実施される特定の機能は、本明
細書の前述の実施形態と比較して説明することができ、前述の実施形態を達成することが
できる。これの技術的効果はここでは繰り返されない。
この実施形態では、プロセッサ110は、任意の適切な方法で実施することができる。
例えば、プロセッサ110は、(マイクロ)プロセッサ、論理ゲート、スイッチ、特別な
目的によって実行可能なコンピュータ可読プログラムコード(例えば、ソフトウェアまた
はファームウェア)を格納するマイクロプロセッサまたはプロセッサおよびコンピュータ
可読媒体の形態をとることができる。集積回路(アプリケーション固有の集積回路、AS
IC)、プログラム可能なロジックコントローラ、組み込みマイクロコントローラなどの
形式。
図10に示されるように、それは、本開示で提案されるニューラルネットワーク量子化
パラメータ確定装置の人工知能プロセッサのチップへの適用の概略図である。図10に示
すように、PC、サーバ等のニューラルネットワークの量子化パラメータ確定装置10に
おいて、プロセッサ110は、量子化動作を実行して、ニューラルネットワーク動作に関
与する浮動小数点データを固定小数点数に量子化し、人工知能処理を行う。チップ上の固
定小数点演算ユニットは、量子化によって得られた固定小数点数を使用して、トレーニン
グ、微調整、または推論を実行する。人工知能プロセッサのチップは、ニューラルネット
ワークを駆動するためである専用ハードウェアである。人工知能プロセッサのチップは比
較的低電力または低性能で実装されているため、技術案では低精度の固定小数点数を使用
してニューラルネットワーク演算を実装する。高精度のデータと比較して、低精度の固定
小数点数を読み取る必要がある。メモリ帯域幅は小さく、人工知能プロセッサのチップの
キャッシュをより適切に使用してメモリのボトルネックを回避できる。同時に、人工知能
プロセッサのチップ上でSIMD命令を実行すると、1クロックサイクルでより多くの計
算を実現して、ニューラルネットワーク演算の実行を高速化できる。
さらに、同じ長さの固定小数点演算と高精度のデータ演算、特に固定小数点演算と浮動
小数点演算の比較に直面すると、浮動小数点演算の計算モデルはより複雑になり、浮動小
数点演算を形成するためにより多くの論理装置が必要になる。端末。このように、体積に
関しては、浮動小数点演算の体積は固定小数点演算の体積よりも大きくなる。さらに、浮
動小数点演算ユニットは処理するためにより多くのリソースを消費する必要があり、固定
小数点演算と浮動小数点演算の間の電力消費ギャップは通常数桁である。
要約すると、この技術案は、人工知能プロセッサのチップ上の浮動小数点演算ユニット
を固定小数点演算ユニットに置き換えることができるため、人工知能プロセッサのチップ
の消費電力が低くなる。これは、モバイル装置にとって特に重要である。言い換えれば、
この技術案は、浮動小数点計算コードを効率的に実行できない多数の組み込みシステムへ
の扉を開き、モノのインターネットの世界が広く使用されることを可能にする。
この技術案において、人工知能プロセッサのチップは、例えば、ニューラルネットワー
クを駆動するための専用チップである神経処理ユニット(NPU)、テンソル処理ユニッ
ト(TPU)、神経エンジンなどに対応し得るが、本開示は、に限定されない。この。
この技術案では、人工知能プロセッサのチップは、ニューラルネットワークの量子化パ
ラメータ確定装置10から独立した別個の装置に実装することができ、ニューラルネット
ワークの量子化パラメータ確定装置10は、人工知能プロセッサのチップの機能モジュー
ルの一部として使用することもできる。成し遂げる。しかし、この開示はこれに限定され
ない。
この技術案では、汎用プロセッサ(CPUなど)のオペレーティングシステムがこの技
術案に基づいて命令を生成し、生成された命令を人工知能プロセッサのチップ(GPUな
ど)に送信し、人工知能プロセッサのチップが命令操作を実行する。ニューラルネットワ
ークの量子化パラメータの確定と量子化プロセスを実現する。別の応用では、汎用プロセ
ッサが技術案に基づいて対応する量子化パラメータを直接確定し、汎用プロセッサが量子
化パラメータに従って対応する目標データを直接量子化し、人工知能プロセッサのチップ
が量子化後のデータを使用して固定小数点演算を実行する。さらに、汎用プロセッサ(C
PUなど)と人工知能プロセッサのチップ(GPUなど)がパイプライン化されている。
汎用プロセッサ(CPUなど)のオペレーティングシステムは、この技術案に基づいて命
令を生成し、同時に目標データをコピーする。人工インテリジェンスプロセッサのチップ
(GPUなど)はニューラルネットワーク演算を実行するため、時間の消費を隠すことが
できる。しかし、この開示はこれに限定されない。
この実施形態において、本開示の実施形態はまた、コンピュータプログラムが格納され
る読み取り可能な記憶媒体を提供し、コンピュータプログラムが実行されるとき、上記の
ニューラルネットワークの量子化パラメータの確定方法が実現される。
以上のことから、ニューラルネットワーク運用の過程において、本開示の技術案は、量
子化中の量子化パラメータを確定するために使用され、量子化パラメータは、ニューラル
ネットワーク運用プロセスにおけるデータを量子化し、高精度のデータを低精度データに
変換するために人工知能プロセッサによって使用されることが分かる。正確な固定小数点
数により、ニューラルネットワーク演算のプロセスに関係するデータストレージのすべて
のスペースサイズを減少できる。例:float32をfix8に変換すると、モデルパ
ラメータを4分の1に減らすことができる。データストレージスペースが小さくなると、
ニューラルネットワークの展開に使用されるスペースが小さくなり、人工知能プロセッサ
のチップ上のオンチップメモリがより多くのデータを格納できるようになり、人工知能プ
ロセッサのチップのデータへのアクセスが減少され、コンピューティングパフォーマンス
が向上される。
当業者はまた、純粋にコンピュータ可読なプログラムコード方式でクライアントおよび
サーバーを実現することに加えて、クライアントおよびサーバーがロジックゲート、スイ
ッチ、アプリケーション固有の集積回路、およびプログラム可能なロジックを使用するよ
うにメソッドステップをプログラムすることが完全に可能であることを知っている。コン
トローラと組み込みマイクロメータは同じ機能を実現できる。したがって、このようなク
ライアントやサーバーは一種のハードウェアコンポーネントと見なすことができ、さまざ
まな機能を実装するためにそれらに含まれる装置もハードウェアコンポーネント内の構造
と見なすことができる。あるいは、さまざまな機能を実現するための装置は、方法を実現
するためのソフトウェアモジュールとハードウェアコンポーネント内の構造の両方と見な
すことができる。
図11に示されるように、本開示のために提案されたニューラルネットワークの量子化
パラメータの確定装置の機能的ブロック図。この方法には次のものが含まれる。
統計単位aは、量子化予定のデータをカウントし、各タイプの量子化予定のデータの統
計結果を確定するためである。ここで、量子化予定のデータには、ニューラルネットワー
クのニューロン、重み、勾配、およびオフセットの少なくとも1つが含まれる。
量子化パラメータ確定ユニットbは、各タイプの量子化予定のデータの統計結果および
データビット幅を使用することによって対応する量子化パラメータを確定するためである
;ここで、量子化パラメータは、ニューラルネットワーク演算プロセスにおいてデータを
量子化するために人工知能プロセッサによって使用される。
この実施形態では、任意選択で、ニューラルネットワークの量子化パラメータ確定装置
は、さらに以下を含む。
最初の量子化ユニットは、対応する量子化パラメータを使用して、量子化予定のデータ
を量子化するように構成される。
この実施形態では、任意選択で、ニューラルネットワークの量子化パラメータ確定装置
は、さらに以下を含む。
第2の量子化ユニットは、対応する量子化パラメータを使用することによって目標デー
タを量子化するように構成される;ここで、目標データの特性および量子化予定のデータ
の特性は類似性を有する。
この実施形態では、ニューラルネットワーク演算プロセスは、ニューラルネットワーク
トレーニング、ニューラルネットワーク推論、およびニューラルネットワーク微調整の少
なくとも1つの操作を含む。
この実施形態では、統計単位によって得られる統計結果は、各タイプの量子化予定のデ
ータの最大値および最小値である。
この実施形態では、統計単位によって得られる統計結果は、各タイプの量子化予定のデ
ータの最大絶対値である。
この実施形態では、統計単位は、各タイプの量子化予定のデータの最大値および最小値
に従って最大絶対値を確定する。
この実施形態では、量子化パラメータ確定ユニットは、最大値、各タイプの量子化予定
のデータの最小値、およびデータビット幅によって、量子化パラメータを確定する。
この実施形態では、量子化パラメータ確定ユニットは、各タイプの量子化予定のデータ
の最大絶対値およびデータビット幅によって、量子化パラメータを確定する。
この実施形態では、量子化パラメータ確定ユニットによって確定される量子化パラメー
タは、小数点位置パラメータまたは第1のスケーリング係数である。
この実施形態では、量子化パラメータ確定ユニットは、小数点位置パラメータおよび第
2のスケーリング係数に従って第1のスケーリング係数を確定する。ここで、第1のスケ
ーリング係数を確定するときに使用される小数点位置パラメータは、既知の固定値、また
は小数点位置パラメータと対応する第2のスケーリング係数を全体として乗算した結果は
、ニューラルネットワーク演算プロセスでのデータ量子化の第1のスケーリング係数とし
て使用される。
この実施形態では、量子化パラメータ確定ユニットによって確定される量子化パラメー
タは、小数点位置パラメータおよび第2のスケーリング係数を含む。
この実施形態では、量子化パラメータ確定ユニットは、小数点位置パラメータ、統計結
果、およびデータビット幅によって、第2のスケーリング係数を確定する。
この実施形態では、量子化パラメータ確定ユニットによって確定される量子化パラメー
タは、オフセットをさらに含む。
この実施形態では、量子化パラメータ確定ユニットは、各タイプの量子化予定のデータ
の統計結果によってオフセットを確定する。
この実施形態では、量子化パラメータ確定ユニットによって使用されるデータビット幅
は、プリセット値である。
この実施形態では、量子化パラメータ確定ユニットは、調整モジュールおよび量子化誤
差確定モジュールを含む。
調整モジュールは、対応する量子化誤差に従ってデータビット幅を調整するように構成
される。
量子化誤差確定モジュールは、量子化後のデータおよび量子化前の対応するデータに従
って量子化誤差を確定するように構成される。
この実施形態では、調整モジュールは、特に以下のように構成される。
量子化誤差はしきい値と比較され、データビット幅は比較結果によって調整され、しき
い値は第1のしきい値および第2のしきい値のうちの少なくとも1つを含む。
この実施形態では、調整モジュールは、第1の調整サブモジュールを含み、第1の調整
サブモジュールは、以下のためである。
量子化誤差が第1のしきい値以上の場合、データビット幅が増やす。
この実施形態では、調整モジュールは、第2の調整サブモジュールを含み、第2の調整
サブモジュールは、以下のためである。
量子化誤差が第2のしきい値以下の場合、データビット幅は減少する。
この実施形態では、調整モジュールは、第3の調整サブモジュールを含み、第3の調整
サブモジュールは、以下のためである。
量子化誤差が第1のしきい値と第2のしきい値の間にある場合、データビット幅は変更
されない。
この実施形態では、量子化誤差確定モジュールは、以下を含む。
データビット幅によって量子化間隔を確定するように構成される量子化間隔確定サブモ
ジュール。
第1の量子化誤差確定サブモジュールは、量子化間隔、量子化後のデータの数、および
量子化前の対応するデータに従って量子化誤差を確定するように構成される。
この実施形態では、量子化誤差確定モジュールは、以下を含む。
逆量子化データ確定サブモジュールは、量子化予定のデータを逆量子化して逆量子化デ
ータを取得するためである。逆量子化データのデータフォーマットは、量子化前の対応す
るデータのデータフォーマットと同じである。
第2の量子化誤差確定サブモジュールは、量子化予定のデータおよび対応する逆量子化
データによって量子化誤差を確定するためである。
この実施形態では、量子化誤差確定モジュールによって使用される量子化前のデータは
、量子化予定のデータである。
この実施形態では、量子化誤差確定モジュールによって使用される量子化前のデータは
、目標反復間隔内の重み更新反復プロセスに関与する量子化予定のデータであり、ここで
、目標反復間隔は、少なくとも1つの重みを含む。値は更新された反復であり、同じデー
タビット幅が同じ目標反復間隔内の量子化プロセスで使用される。
この実施形態では、ニューラルネットワークの量子化パラメータ確定装置は、第1の目
標反復間隔確定ユニットをさらに含み、第1の目標反復間隔確定ユニットは、以下を含む
第1の変化傾向値確定モジュールは、予測時点での重み更新反復プロセスに関与する量
子化予定のデータの小数点位置パラメータの変化傾向値を確定するためである。予測時点
は、次のことを確定するためである。データビット幅を調整する必要がある時点。予測時
点は、重み更新の反復が完了する時点に対応する。
第1の目標反復間隔モジュールは、小数点位置パラメータの変化傾向値に従って、対応
する目標反復間隔を確定するように構成される。
この実施形態では、第1の目標反復間隔確定ユニットは、以下を含む。
第2の変化傾向値確定モジュールは、量子化予定のデータの小数点位置パラメータの変
化傾向値と、予測時点での重み更新反復プロセスに含まれるデータビット幅の変化傾向値
を確定するためである。判定時点は、データのビット幅を調整する必要があるかどうかを
判断する時点であり、予測時点は、重み更新の反復が完了する時点に対応する。
第2の目標反復間隔モジュールは、小数点位置パラメータの変化傾向値とデータビット
幅の変化傾向値に従って、対応する目標反復間隔を確定するように構成される。
この実施形態では、第1の目標反復間隔確定ユニットは、第1の所定の時点確定ユニッ
トをさらに含む。
第1の予測時点確定ユニットは、目標反復間隔によって第1の予測時点を確定するよう
に構成される。
この実施形態では、第1の目標反復間隔確定ユニットは、第2の所定の時点確定ユニッ
トをさらに含み、第2の所定の時点確定ユニットは、データ変動範囲曲線に従って第2の
所定の時点を確定するように構成される。時点を判断する。ここで、データ変動範囲曲線
は、重み更新反復プロセス中にデータ変動範囲を統計的に計算することによって取得され
る。
この実施形態では、第1の変化傾向値確定モジュールおよび第2の変化傾向値確定モジ
ュールは、現在の予測時点に対応する小数点位置パラメータのスライド平均値、および前
の予測時点に対応する値に基づく。小数点位置パラメータのスライド平均値は、小数点位
置パラメータの変化傾向値を確定する。
この実施形態では、第1の変化傾向値確定モジュールおよび第2の変化傾向値確定モジ
ュールは、現在の予測時点に対応する小数点位置パラメータおよび前の予測時点に対応す
る小数点位置パラメータの値に基づく。スライド平均は、小数点位置パラメータの変化傾
向値を確定する。
この実施形態では、第1の変化傾向値確定モジュールおよび第2の変化傾向値確定モジ
ュールは、両方とも以下を含む。
現在の予測時点に対応する小数点位置パラメータ確定サブモジュールを使用して、最後
の予測時点に対応する小数点位置パラメータおよびデータビット幅の調整値に従って、現
在の予測時点に対応する小数点位置パラメータを確定する。
調整結果確定サブモジュールは、データビット幅の調整値に従って、最後の予測された
時点に対応する小数点位置パラメータのスライド平均値を調整して、調整結果を取得する
ように構成される。
第1のスライディング平均値確定サブモジュールは、現在の予測時点に対応する小数点
位置パラメータおよび調整結果によって、現在の予測時点に対応する小数点位置パラメー
タのスライディング平均値を確定するように構成される。
この実施形態では、第1の変化傾向値確定モジュールおよび第2の変化傾向値確定モジ
ュールは、両方とも以下を含む。
中間結果確定サブモジュールは、最後の予測時点に対応する小数点位置パラメータおよ
び最後の予測時点に対応する小数点位置パラメータのスライディング平均値に従って、現
在の予測時点に対応する小数点位置パラメータのスライディング平均値を確定するためで
ある。価値の中間結果;
第2のスライディング平均値確定サブモジュールは、現在の予測時点に対応する小数点
位置パラメータのスライディング平均値とデータビット幅の調整値の中間結果によって、
現在の予測時点に対応する小数点位置を確定するためである。パラメータのスライディン
グ平均値。
この実施形態では、第2の変化傾向値確定モジュールは、対応する量子化誤差に従って
、データビット幅の変化傾向値を確定する。
この実施形態では、第1の目標反復間隔確定ユニットは、さらに以下を含む。
対応する量子化誤差を確定するように構成される量子化誤差確定モジュール。ここで、
量子化誤差に対応する量子化前のデータは、所定の時点に対応する重み更新反復プロセス
に関与する量子化予定のデータである。
データビット幅確定モジュールは、対応する量子化誤差に従って、目標反復間隔内の量
子化プロセスで使用されるデータビット幅を確定するためである。
この実施形態では、データビット幅確定モジュールは、特に以下のように構成される。
量子化誤差をしきい値と比較し、最後の目標反復間隔で量子化処理に使用したデータビ
ット幅を比較結果に応じて調整し、調整結果を現在の目標反復間隔で量子化処理に使用し
たデータビット幅として使用する。
この実施形態では、量子化誤差確定モジュールによって使用される量子化前のデータは
、目標反復間隔内の重み更新反復に関与する量子化予定のデータであり、ここで、目標反
復間隔は、少なくとも1つの重みを含む。反復が更新され、同じ目標反復間隔内の量子化
プロセスで同じ量子化パラメータが使用される。
この実施形態では、ニューラルネットワークの量子化パラメータ確定装置は、第2の目
標反復間隔確定ユニットをさらに含み、第2の目標反復間隔確定ユニットは、以下を含む
第3の変化傾向値確定モジュールは、予測時点での重み更新反復プロセスに関係する量
子化予定のデータの小数点位置パラメータの変化傾向値を確定するためである。ここで、
予測時点は、量子化パラメータを調整する必要がある時点。予測時点は、重み更新の反復
が完了する時点に対応する。
第3の目標反復間隔モジュールは、小数点位置パラメータの変化傾向値に従って、対応
する目標反復間隔を確定するように構成される。
この実施形態では、量子化パラメータ確定ユニットは、統計結果およびデータビット幅
によって小数点位置パラメータを確定する。
一実施形態では、データビット幅の調整装置が提供され、これは、以下を含むことを特
徴とする。
量子化予定のデータに対して量子化処理を実行するためのデータビット幅を取得するよ
うに構成される取得モジュール。データビット幅は、量子化予定のデータの量子化処理の
後の量子化後のデータのビット幅を示す。
量子化モジュールは、データビット幅に基づいて1グループの量子化予定のデータに対
して量子化処理を実行して、1グループの量子化予定のデータを1グループの量子化後の
データに変換するように構成され、1グループの量子化後のデータは上記のデータビット
幅を持つ。
1グループの量子化予定のデータを1グループの量子化後のデータと比較し、データビ
ット幅に関連する量子化誤差を確定するように構成される確定モジュール。
調整は、確定された量子化誤差に基づいてデータビット幅を調整する。
この実施形態では、比較モジュールは以下を含む。
データビット幅によって量子化間隔を確定するように構成される間隔確定モジュール。
誤差確定モジュールは、量子化間隔、1グループの量子化後のデータ、および1グルー
プの量子化予定のデータによって量子化誤差を確定するように構成される。
この実施形態では、誤差確定モジュールは以下を含む。
量子化モジュールは、量子化間隔によって1グループの量子化後のデータに対して逆量
子化を実行して、1グループの逆量子化データを取得するように構成され、1グループの
逆量子化データフォーマットは、1グループの量子化予定のデータと同じである。同じデ
ータフォーマットである;および
量子化誤差確定モジュールは、1グループの逆量子化データおよび1グループの量子化
予定のデータによって量子化誤差を確定するように構成される。
この実施形態では、調整モジュールは以下を含む。
量子化誤差をプリセットしきい値と比較するように構成される比較モジュール。プリセ
ットしきい値には、第1のしきい値と第2のしきい値の少なくとも1つが含まれる。
ビット幅調整モジュールは、比較結果に応じてデータビット幅を調整するように構成さ
れる。
この実施形態では、ビット幅調整モジュールは以下を含む。
増加モジュールは、量子化誤差が第1のしきい値以上であるとの確定に応答してデータ
ビット幅を増やすように構成される。
この実施形態では、追加モジュールは以下を含む。
ステップ長さ増加モジュールは、調整後のデータビット幅を確定するために、第1のプ
リセットビット幅のステップ長さによってデータビット幅を増やすように構成される。
この実施形態では、量子化モジュールは、1グループの量子化予定のデータを別の1グ
ループの量子化後のデータに変換するために、調整後のデータビット幅に基づいて1グル
ープの量子化予定のデータに対して量子化処理を実行するようにさらに構成される。別の
1グループの量子化後のデータは、調整後のデータビット幅を持つ。
確定モジュールはさらに、1グループの量子化予定のデータを別の1グループの量子化
予定のデータのと比較し、別の量子化誤差が以下になるまで、調整後のデータビット幅に
関連する別の量子化誤差を確定するように構成される。第1のプリセットしきい値。
この実施形態では、装置は反復呼び出される。
この実施形態では、調整モジュールは以下を含む。
減少モジュールは、量子化誤差が第2のしきい値以下であると判断した場合にデータビ
ット幅を縮小するように構成される。
この実施形態では、減少モジュールは以下を含む。
ステップ長さ減少モジュールは、調整後のデータビット幅を確定するために、第2のプ
リセットビット幅のステップ長さによってデータビット幅を減少するためである。
この実施形態では、量子化モジュールは、1グループの量子化予定のデータを別の1グ
ループの量子化後のデータに変換するために、調整後のデータビット幅に基づいて1グル
ープの量子化予定のデータに対して量子化処理を実行するようにさらに構成される。デー
タ、別の1グループの量子化後のデータは、調整後のデータビット幅を持つ。
確定モジュールはさらに、別の量子化誤差がより大きくなるまで、量子化予定のデータ
の1つのセットおよび別の1グループの量子化後のデータに基づいて、調整後のデータビ
ット幅に関連する別の量子化誤差を確定するように構成される。第2のプリセットしきい
値。
この実施形態では、装置は反復呼び出される。
この実施形態では、調整モジュールは以下を含む。
維持モジュールは、量子化誤差が第1のしきい値と第2のしきい値との間にあるとの確
定に応答してデータビット幅を維持するように構成される。
この実施形態では、それはさらに以下を含む。
更新モジュールは、1グループの量子化予定のデータおよび調整後のデータビット幅に
基づいて、1グループの量子化予定のデータに対して量子化処理を実行するための量子化
パラメータを更新するように構成される。
量子化モジュールは、更新された量子化パラメータに基づいて1グループの量子化予定
のデータに対して量子化処理を実行するようにさらに構成される。
この実施形態では、範囲モジュールを使用して、量子化予定のデータのデータ変動振幅
を取得する。
間隔モジュールは、量子化予定のデータのデータ変動範囲によって目標反復間隔を確定
し、目標反復間隔によってデータビット幅を調整するように構成され、目標反復間隔には
少なくとも1回の反復が含まれる。
この実施形態では、範囲モジュールは以下を含む。
小数点位置モジュールは、小数点位置の変動範囲を取得するために使用され、小数点位
置の変動範囲は、量子化予定のデータのデータ変動範囲を表すために使用され、小数点位
置の変動範囲は、量子化予定のデータのデータ変動と同じである。振幅は正の相関がある
この実施形態では、小数点位置モジュールは以下を含む。
第1の平均値モジュールは、カレント検査反復の前の一つ前の検査反復に対応する小数
点位置と、一つ前の検査反復の前の履歴反復に対応する小数点位置に従って第1の平均値
を確定するためである。検査の反復は、目標反復間隔前の一つ前の反復間隔に対応してい
るか。
第2の平均モジュールは、カレント検査反復に対応する小数点位置と、カレント検査反
復前の履歴反復の小数点位置によって第2の平均値を確定するためである。ここで、カレ
ント検査反復に対応する小数点位置は、カレント検査反復に基づいている。検査の反復に
対応する目標データのビット幅と量子化予定のデータが確定される。
第1の誤差モジュールは、第1の平均値および第2の平均値に従って第1の誤差を確定
するように構成され、第1の誤差は、小数点位置の変動範囲を表すためである。
この実施形態では、間隔モジュールは以下を含む。
第1の間隔モジュールは、第1の誤差によって目標反復間隔を確定するように構成され
ており、目標反復間隔は第1の誤差と負の相関がある。
この実施形態では、範囲モジュールはさらに以下を含む。
データビット幅の変化傾向を取得するための傾向モジュール。
データ変動範囲モジュールは、小数点位置の変動範囲とデータビット幅の変化傾向によ
って、量子化予定のデータのデータ変動範囲を確定するためである。
この実施形態では、間隔モジュールはさらに以下を含む。
反復間隔モジュールは、取得した第1の誤差と第2の誤差によって目標反復間隔を確定
するためである。第1の誤差は小数点位置の変動範囲を表すために使用され、第2の誤差
はデータビット幅を表すためである。変化の傾向。
この実施形態では、反復間隔モジュールは以下を含む。
第1の誤差と第2の誤差うちの最大値を目標誤差とするように構成される目標誤差モジ
ュール。
目標反復間隔モジュールは、目標誤差に従って目標反復間隔を確定するように構成され
る。ここで、目標誤差は目標反復間隔に負の相関がある。
この実施形態では、第2の誤差は、量子化誤差によって確定される。
量子化誤差は、カレント検査反復で量子化予定のデータとカレント検査反復の量子化後
のデータによって確定され、第2の誤差は量子化誤差と正の相関がある。
この実施形態では、装置は、ニューラルネットワークのトレーニングまたは微調整に使
用され、装置はさらに以下を含む。
第1の反復モジュールは、カレント反復が第1のプリセット反復よりも大きい場合に量
子化予定のデータのデータ変動範囲によって目標反復間隔を確定し、目標反復間隔によっ
て量子化パラメータを調整するように構成される。
この実施形態では、装置はさらに以下を含む。
第2の反復モジュールは、カレント反復が第1のプリセット反復間隔以下の場合に、第
1のプリセット反復間隔を目標反復間隔として使用し、第1のプリセット反復間隔によっ
て調整するように構成される。量子化パラメータ。
この実施形態では、装置はさらに以下を含む。
第3の反復モジュールは、カレント反復が第2のプリセット反復以上の場合、第2のプ
リセット反復間隔を目標反復間隔として使用し、第2のプリセット反復間隔によって第2
のプリセット反復間隔を調整するように構成される。量子化パラメータ。
ここで、第2のプリセット反復は第1のプリセット反復よりも大きく、第2のプリセッ
ト反復間隔は第1のプリセット反復間隔よりも大きくなる。
この実施形態では、装置はさらに以下を含む。
コンバージェンスモジュールは、ニューラルネットワークのコンバージェンス度がプリ
セット条件を満たす場合に、現在の検証イテレーションが第2のプリセットイテレーショ
ン以上であると判断するように構成される。
この実施形態では、装置はさらに以下を含む。
カレント反復が第2のプリセット反復以上であり、第2の誤差がプリセット誤差値より
大きい場合、反復間隔は、量子化予定のデータのデータ変動範囲によって確定され、反復
間隔によって反復間隔が再確定される。データビット幅。
一実施形態では、コンピュータプログラムがその上に格納されることを特徴とするコン
ピュータ可読記憶媒体が提供され、プログラムが実行されると、上記のいずれか1つによ
る方法が実現される。
一実施形態では、チップが上記のいずれか1つに従ってデータを処理するための装置を
含むことを特徴とする人工知能チップが提供される。
一実施形態では、電子装置が上記の人工知能チップを含むことを特徴とする電子装置が
提供される。
一実施形態では、ボードカードは、以下を含むことを特徴とするボードカードが提供さ
れる:記憶装置、インターフェース装置、制御装置、および上記による人工知能チップ。
ここで、人工知能チップは、記憶装置、制御装置、およびインターフェイス装置に接続
されている。
記憶装置は、データを格納するためである。
インターフェイス装置は、人工知能チップと外部装置間のデータ伝送を実装するためで
ある。
制御装置は、人工知能チップの状態を監視するためである。
一実施形態では、記憶装置は、以下を含む。記憶ユニットの複数のグループ、記憶ユニ
ットの各グループは、バスを介して人工知能チップに接続され、記憶ユニットは、DRD
SDRADである。
チップには、各記憶ユニットのデータ伝送とデータストレージを制御するためのDDR
コントローラが含まれる。
インターフェイス装置は、標準のPCIEインターフェイスである。
一実施形態では、量子化予定の層において各タイプの量子化予定のデータに対応する量
子化パラメータを確定することは、以下を含む。
対応する量子化パラメータは、各タイプの量子化予定のデータと対応するデータビット
幅によって計算される。
一実施形態では、各タイプの量子化予定のデータおよび対応するデータビット幅に応じ
た対応する量子化パラメータの計算には、以下が含まれる。
量子化パラメータにオフセットが含まれていない場合、目標データの最大絶対値と目標
データに対応するデータビット幅に応じて目標データの小数点位置が求められ、目標デー
タは任意の種類である。量子化予定のデータ。
一実施形態では、各タイプの量子化予定のデータおよび対応するデータビット幅に応じ
た対応する量子化パラメータの計算には、以下が含まれる。
量子化パラメータにオフセットが含まれていない場合は、目標データと目標データに対
応するデータビット幅に応じて、目標データの量子化後の最大値を取得する。目標データ
は、任意の一種の量子化予定のデータである。
目標データの最大絶対値と目標データの量子化データの最大値に従って、目標データの
スケーリング係数が取得される。
一実施形態では、各タイプの量子化予定のデータおよび対応するデータビット幅に応じ
た対応する量子化パラメータの計算には、以下が含まれる。
量子化パラメータにオフセットが含まれる場合、目標データの最大値、目標データの最
小値、および目標データに対応するデータビット幅によって、目標データの小数点位置が
取得される。目標データは、任意の一種の量子化予定のデータである。
一実施形態では、各タイプの量子化予定のデータおよび対応するデータビット幅に応じ
た対応する量子化パラメータの計算には、以下が含まれる。
量子化パラメータにオフセットが含まれている場合は、目標データと目標データに対応
するデータビット幅に応じて、目標データの量子化後の最大値を取得する。目標データは
、任意の一種の量子化予定のデータである。
目標データのスケーリング係数は、目標データの最大値、目標データの最小値、および
目標データの量子化後の最大値に従って取得される。
一実施形態では、各タイプの量子化予定のデータおよび対応するデータビット幅に応じ
た対応する量子化パラメータの計算には、以下が含まれる。
目標データの最大値と最小値に応じて、目標データのオフセットが取得され、目標デー
タは任意の一種の量子化予定のデータである。
一実施形態では、この方法はさらに以下を含む。
目標データおよび目標データに対応する量子化データに従って、目標データの量子化誤
差を確定する。ここで、目標データは、量子化予定の任意の種類のデータである。
量子化誤差および誤差しきい値に従って目標データに対応するデータビット幅を調整し
、目標データに対応する調整ビット幅を取得する。
目標データに対応するデータビット幅が調整ビット幅に更新され、目標データと調整ビ
ット幅に応じて対応する調整量子化パラメータが計算されるため、ニューラルネットワー
クは調整量子化パラメータに従って処理を実行する。量子化。
一実施形態では、量子化誤差および誤差しきい値に従って目標データに対応するデータ
ビット幅を調整して、目標データに対応する調整ビット幅を得るには、以下が含まれる。
量子化誤差が第1の誤差しきい値より大きい場合、目標データに対応するデータビット
幅を増やして、目標データに対応する調整ビット幅を取得する。
一実施形態では、調整ビット幅および目標データに従って、目標データの調整済の量子
化誤差を計算する。
調整ビット幅と目標データに従って計算された調整済の量子誤差が第1の誤差しきい値
以下になるまで、調整済の量子化誤差と第1の誤差しきい値に従って調整ビット幅を増や
し続ける。
一実施形態では、量子化誤差および誤差しきい値に従って目標データに対応するデータ
ビット幅を調整することは、以下を含む。
量子化誤差が第2の誤差しきい値よりも小さい場合、目標データに対応するデータビッ
ト幅が減少し、第2の誤差しきい値が1番目の誤差しきい値よりも小さくなる。
一実施形態では、この方法はさらに以下を含む。
調整ビット幅と目標データに従って、目標データの調整済み量子化誤差を計算する。
調整ビット幅と目標データに従って計算された調整済の量子誤差が第2の誤差しきい値
以上になるまで、調整済の量子化誤差と第2の誤差しきい値に従って調整ビット幅を減ら
し続ける。
一実施形態では、ニューラルネットワーク操作の微調整段階および/またはトレーニン
グ段階において、この方法はさらに以下を含む。
カレント反復および履歴反復における目標データのデータ変動範囲を取得する。ここで
、履歴反復はカレント反復の前の反復である。
目標データのデータ変動範囲によって、目標データに対応する目標反復間隔を確定する
。これにより、ニューラルネットワークは、目標反復間隔によって目標データの量子化パ
ラメータを更新し、目標反復間隔には少なくとも1つが含まれる。反復になるが、目標デ
ータは任意の一種の量子化予定のデータである。
一実施形態では、この方法はさらに以下を含む。
カレント反復における目標データのデータビット幅によって、目標反復間隔における目
標データの反復に対応するデータビット幅が確定されるため、ニューラルネットワークは
ターゲット内の目標データに基づいている。反復間隔内の反復に対応するデータビット幅
によって、量子化パラメータが決まる。
一実施形態では、量子化パラメータ確定モジュールは、以下を含む。
第2の量子化パラメータ確定サブモジュールは、各タイプの量子化予定のデータおよび
対応するデータビット幅によって、対応する量子化パラメータを計算するように構成され
る。
一実施形態では、第2の量子化パラメータ確定サブモジュールは、以下を含む。
第1小数点位置計算単位は、量子化パラメータにオフセットが含まれていない場合に、
目標データの最大絶対値と目標データに対応するデータビット幅に応じて目標データの小
数点位置を取得するためである。目標データは、任意の一種の量子化予定のデータである
一実施形態では、第2の量子化パラメータ確定サブモジュールは、以下を含む。
第1のスケーリング係数計算ユニットは、量子化パラメータがオフセット、目標データ
を含まない場合に、目標データおよび目標データに対応するデータビット幅によって、目
標データの量子化後の最大値を取得するように構成される。任意の一種の量子化予定のデ
ータであり、目標データの最大絶対値と目標データの量子化後の最大値に応じて、目標デ
ータのスケーリング係数が取得される。
一実施形態では、第2の量子化パラメータ確定サブモジュールは、以下を含む。
第2小数点位置計算ユニットは、量子化パラメータにオフセットが含まれる場合、目標
データの最大値、目標データの最小値、および目標データに対応するデータビット幅に応
じて取得するように構成される。目標データの小数点位置、目標データは、任意の一種の
量子化予定のデータである。
一実施形態では、第2の量子化パラメータ確定サブモジュールは、以下を含む。
第2のスケーリング係数計算ユニットは、量子化パラメータがオフセットを含み、目標
データがである場合に、目標データおよび目標データに対応するデータビット幅によって
、目標データの量子化データの最大値を取得するように構成される。目標データは、任意
の一種の量子化予定のデータである。目標データの最大値、目標データの最小値、および
目標データの量子化後の最大値に従って、目標データのスケーリング係数が取得される。
一実施形態では、第2の量子化パラメータ確定サブモジュールは、以下を含む。
オフセット計算ユニットは、目標データの最大値と最小値に応じて目標データのオフセ
ットを取得するように構成されており、目標データは、任意の一種の量子化予定のデータ
である。
一実施形態では、装置はさらに以下を含む。
目標データおよび目標データに対応する量子化データに従って目標データの量子化誤差
を確定するように構成される量子化誤差確定モジュール。ここで、目標データは、量子化
予定の任意の種類のデータである。
量子化誤差および誤差しきい値に従って目標データに対応するデータビット幅を調整し
て、目標データに対応する調整ビット幅を取得するように構成される調整ビット幅確定モ
ジュール。
調整量子化パラメータ確定モジュールは、目標データに対応するデータビット幅を調整
ビット幅に更新し、目標データと調整ビット幅に従って対応する調整量子化パラメータを
計算するように構成される。ネットワークは、調整された量子化パラメータに従って量子
化を実行する。
一実施形態では、調整ビット幅確定モジュールは、以下を含む。
第1調整ビット幅確定サブモジュールは、量子化誤差が第1誤差しきい値より大きい場
合に目標データに対応するデータビット幅を増加させて、目標データに対応する調整ビッ
ト幅を取得するように構成される。
一実施形態では、調整ビット幅確定モジュールは、さらに以下を含む。
第1の調整済み量子化誤差確定サブモジュールは、調整ビット幅と目標データに従って
目標データの調整済み量子化誤差を計算するように構成される。
第1の調整ビット幅循環確定サブモジュールは、調整ビット幅および目標データに従っ
て調整ビット幅が計算されるまで、調整済の量子化誤差および第1の誤差しきい値に従っ
て調整ビット幅を増加し続けるように構成される。の量子化誤差は、第1の誤差しきい値
以下である。
一実施形態では、調整ビット幅確定モジュールは、以下を含む。
第2の調整ビット幅確定サブモジュールは、量子化誤差が第2の誤差しきい値未満であ
り、第2の誤差しきい値が第1の誤差しきい値未満である場合に、目標データに対応する
データビット幅を減少させるように構成される。
一実施形態では、調整ビット幅確定モジュールは、さらに以下を含む。
第2の調整済み量子化誤差確定サブモジュールは、調整ビット幅と目標データに従って
目標データの調整済み量子化誤差を計算するように構成される。
第2の調整ビット幅循環確定サブモジュールは、調整ビット幅および目標データに従っ
て調整ビット幅が計算されるまで、調整済の量子化誤差および第2の誤差しきい値に従っ
て調整ビット幅を減少し続けるように構成される。の量子化誤差は、第2の誤差しきい値
以上である。
一実施形態では、ニューラルネットワーク動作の微調整段階および/またはトレーニン
グ段階において、装置はさらに以下を含む。
カレント反復および履歴反復における目標データのデータ変動範囲を取得するように構
成されるデータ変動範囲確定モジュール。履歴反復は、カレント反復の前の反復である。
目標反復間隔確定モジュールは、目標データのデータ変動範囲によって目標データに対
応する目標反復間隔を確定するように構成されるため、ニューラルネットワークは目標反
復間隔によって目標データの量子化パラメータを更新する。目標反復間隔には少なくとも
1つの反復が含まれ、目標データは量子化予定の任意のタイプのデータである。
一実施形態では、装置はさらに以下を含む。
第1の目標反復間隔適用モジュールは、カレント反復での目標データのデータビット幅
によって、目標反復間隔での目標データの反復に対応するデータビット幅を確定するよう
に構成される。ネットワークは、目標反復間隔内の目標データの反復に対応するデータビ
ット幅によって、量子化パラメータを確定する。
一実施形態では、ニューラルネットワークの量子化パラメータの調整方法が提供され、
この方法は以下を含む。
量子化予定のデータのデータ変動範囲を取得する。
量子化予定のデータのデータ変動範囲によって目標反復間隔を確定し、目標反復間隔に
少なくとも1回の反復を含むニューラルネットワーク操作の量子化パラメータと、ニュー
ラルネットワークを調整する。量子化パラメータは、ニューラルネットワーク演算で量子
化予定のデータに量子化操作を実装するためである。
一実施形態では、量子化パラメータは、小数点位置を含み、小数点位置は、量子化予定
のデータに対応する量子化データ内の小数点位置であり、この方法は、以下をさらに含む
カレント検査反復に対応する目標データビット幅と、カレント検査反復で量子化予定の
データによって、目標反復間隔の反復に対応する小数点位置を確定し、ニューラルネット
ワーク演算の小数点位置を調整する。
ここで、目標反復間隔の反復に対応する小数点位置は一致している。
一実施形態では、量子化パラメータは、小数点位置を含み、小数点位置は、量子化予定
のデータに対応する量子化データ内の小数点位置であり、この方法は、以下をさらに含む
カレント検査反復に対応する目標データビット幅によって、目標反復間隔に対応するデ
ータビット幅を確定する。ここで、目標反復間隔の反復に対応するデータビット幅は一致
している。
取得した小数点位置反復間隔および目標反復間隔に対応するデータビット幅によって、
目標反復間隔の反復に対応する小数点位置を調整して、ニューラルネットワーク演算の小
数点位置を調整する。
ここで、小数点位置反復間隔には少なくとも1つの反復が含まれ、小数点位置反復間隔
内の反復小数点位置は一致している。
一実施形態では、小数点位置反復間隔は、目標反復間隔以下である。
一実施形態では、量子化パラメータは、スケーリング係数をさらに含み、スケーリング
係数は、小数点位置と同期して更新される。
一実施形態では、量子化パラメータはさらにオフセットを含み、オフセットは小数点位
置と同期して更新される。
一実施形態では、この方法はさらに以下を含む。
カレント検査反復の量子化データおよびカレント検査反復の量子化データに従って量子
化誤差を確定する。ここで、カレント検査反復の量子化データは、カレント検査反復の量
子化データを量子化することによって得られる。
量子化誤差に応じて、カレント検査反復に対応する目標データビット幅が確定される。
一実施形態では、量子化誤差に従ってカレント検査反復に対応する目標データビット幅
を確定することは、以下を含む。
量子化誤差が第1のプリセットしきい値以上の場合は、カレント検査反復に対応するデ
ータビット幅を増やして、カレント検査反復に対応する目標データビット幅を取得する。
または、
量子化誤差が第2のプリセットしきい値以下の場合、カレント検査反復に対応するデー
タビット幅が縮小され、カレント検査反復に対応する目標データビット幅が取得される。
一実施形態では、量子化誤差が第1のプリセットしきい値以上である場合、カレント検
査反復に対応するデータビット幅を増加させて、カレント検査反復に対応する目標データ
ビット幅を取得することは、以下を含む。
量子化誤差が第1のプリセットしきい値以上の場合、第1のプリセットビット幅のステ
ップ長さによって第1の中間データビット幅を確定する。
戻り実行は、量子化誤差が第1のプリセットしきい値より小さくなるまで、カレント検
査反復で量子化予定のデータおよびカレント検査反復の量子化データに従って量子化誤差
を確定する。ここで、カレント検査反復の量子化データはこれは、第1の中間データのビ
ット幅に従って、カレント検査反復の量子化データを量子化することによって取得される
一実施形態では、量子化誤差が第2のプリセットしきい値以下である場合、カレント検
査反復に対応するデータビット幅を減らすことは、以下を含む。
量子化誤差が第2のプリセットしきい値以下の場合、第2のプリセットビット幅のステ
ップ長さによって第2の中間データビット幅を確定する。
実行に戻り、カレント検査反復で量子化予定のデータとカレント検査反復の量子化デー
タに従って、量子化誤差が第2のプリセットしきい値より大きくなるまで、量子化誤差を
確定する。ここで、カレント検査反復の量子化データこれは、第2の中間データのビット
幅に従って、カレント検査反復の量子化データを量子化することによって取得される。
一実施形態では、量子化予定のデータのデータ変動範囲を取得することは、以下を含む
小数点位置の変動範囲を取得する。ここで、小数点位置の変動範囲を使用して、量子化
予定のデータのデータ変動範囲を表すことができ、小数点位置の変動範囲は、量子化予定
のデータのデータ変動範囲と正の相関がある。
一実施形態では、小数点位置の変動範囲取得することは、以下が含まれる。
カレント検査反復前の一つ前の検査反復に対応する小数点位置と、一つ前の検査反復前
の履歴反復に対応する小数点位置によって第1の平均値を確定する。ここで、前の検査反
復は目標反復間隔である。前の反復間隔に対応する検査反復。
カレント検査反復に対応する小数点位置とカレント検査反復前の履歴反復の小数点位置
によって第2の平均値を確定する。ここで、カレント検査反復に対応する小数点位置は、
カレント検査反復に対応する目標データに基づいている。量子化するビット幅とデータが
確定される。
第1の誤差は、第1の平均値および第2の平均値に従って確定され、第1の誤差は、小
数点位置の変動範囲を表すためである。
一実施形態では、カレント検査反復に対応する小数点位置およびカレント検査反復前の
履歴反復の小数点位置に従って第2の平均値を確定することは、以下を含む。
中間スライディング平均値のプリセット数を取得する。ここで、中間スライディング平
均値のそれぞれは、カレント検査反復の前の検査反復のプリセット数に従って確定される
第2の平均値は、カレント検査反復の小数点位置と、プリセット中間スライド平均値の
数に従って確定される。
一実施形態では、カレント検査反復に対応する小数点位置およびカレント検査反復前の
履歴反復の小数点位置に従って第2の平均値を確定することは、以下を含む。
第2の平均値は、カレント検査反復に対応する小数点位置と第1の平均値に従って確定
される。
一実施形態では、この方法はさらに以下を含む。
第2の平均値は、カレント検査反復の取得データビット幅調整値に従って更新される。
カレント検査反復のデータビット幅調整値は、カレント検査反復の目標データビット幅と
初期データビットに基づいて確認される。
一実施形態では、カレント検査反復の取得されたデータビット幅調整値に従って第2の
平均値を更新することは、以下を含む。
カレント検査反復のデータビット幅調整値がプリセットパラメータよりも大きい場合、
第2の平均値は、カレント検査反復のデータビット幅調整値に従って減少する。
カレント検査反復のデータビット幅調整値がプリセットパラメータよりも小さい場合、
第2の平均値は、カレント検査反復のデータビット幅調整値に従って増やす。
一実施形態では、量子化予定のデータのデータ変動範囲によって目標反復間隔を確定す
ることは、以下を含む。
目標反復間隔は第1の誤差によって確定され、目標反復間隔は第1の誤差と負の相関が
ある。
一実施形態では、量子化予定のデータのデータ変動範囲を取得することは、さらに以下
を含む。
データビット幅の変化傾向を取得する。
小数点位置の変動範囲とデータビット幅の変化傾向によって、量子化予定のデータのデ
ータ変動範囲を確定する。
一実施形態では、量子化予定のデータのデータ変動範囲によって目標反復間隔を確定す
ることは、さらに以下を含む。
取得した第1誤差と第2誤差に応じて、目標反復間隔を確定する。ここで、第1誤差は
小数点位置の変動範囲を表すために使用され、第2誤差はデータビット幅の変化傾向を表
すためである。
一実施形態では、取得された第2の誤差および第1の誤差によって目標反復間隔を確定
することは、以下を含む。
第1の誤差と第2の誤差の最大値を目標誤差とする。
目標反復間隔は、目標誤差によって確定される。ここで、目標誤差は、目標反復間隔と
負の相関がある。
一実施形態では、第2の誤差は、量子化誤差によって確定される。
量子化誤差は、カレント検査反復で量子化予定のデータとカレント検査反復の量子化後
のデータによって確定され、第2の誤差は量子化誤差と正の相関がある。
一実施形態では、この方法は、ニューラルネットワークをトレーニングまたは微調整す
るために使用され、この方法は、以下をさらに含む。
カレント反復が第1のプリセット反復よりも大きい場合、目標反復間隔は、量子化予定
のデータのデータ変動範囲によって確定され、量子化パラメータは、目標反復間隔によっ
て調整される。
一実施形態では、この方法はさらに以下を含む。
カレント反復が第1のプリセット反復以下の場合、第1のプリセット反復間隔が目標反
復間隔として採用され、量子化パラメータは第1のプリセット反復間隔によって調整され
る。
一実施形態では、この方法はさらに以下を含む。
カレント反復が第2のプリセット反復以上の場合、第2のプリセット反復間隔を目標反
復間隔として使用し、第2のプリセット反復間隔によって量子化パラメータを調整する。
ここで、第2のプリセット反復は第1のプリセット反復よりも大きく、第2のプリセッ
ト反復間隔は第1のプリセット反復間隔よりも大きくなる。
一実施形態では、この方法はさらに以下を含む。
ニューラルネットワークの収束度がプリセット条件を満たす場合、カレント検査反復が
第2のプリセット反復以上であると判断される。
一実施形態では、この方法はさらに以下を含む。
カレント反復が第2のプリセット反復以上であり、第2の誤差がプリセット誤差値より
大きい場合、反復間隔は、量子化予定のデータのデータ変動範囲によって確定され、反復
間隔によって反復間隔が再確定される。データビット幅。
一実施形態では、量子化予定のデータは、ニューロンデータ、重みデータ、または勾配
データのうちの少なくとも1つである。
一実施形態では、メモリおよびプロセッサを含み、メモリがコンピュータプログラムを
格納し、プロセッサがコンピュータプログラムを実行するときの実装が上記のとおりであ
ることを特徴とするニューラルネットワークの量子化パラメータ調整装置が提供される。
メソッドの任意のステップ。
一実施形態では、コンピュータプログラムは、コンピュータ可読記憶媒体に格納され、
コンピュータプログラムが実行されると、上記のいずれかに記載された方法のステップが
実行される。
一実施形態では、ニューラルネットワークの量子化パラメータ調整装置が提供され、そ
の装置は以下を含むことを特徴とする。
取得モジュールは、量子化予定のデータのデータ変動範囲を取得するためである。
反復間隔確定モジュールは、量子化予定のデータのデータ変動範囲によって目標反復間
隔を確定するように構成され、目標反復間隔によってニューラルネットワーク操作におけ
る量子化パラメータを調整し、ここで、目標反復間隔は、少なくとも1回の反復では、ニ
ューラルネットワークの量子化パラメータを使用して、ニューラルネットワーク演算で量
子化予定のデータの量子化操作を実装する。
一実施形態では、量子化パラメータは小数点位置を含み、小数点位置は、量子化予定の
データに対応する量子化データ内の小数点位置であり、装置はさらに以下を含む。
量子化パラメータ確定モジュールは、カレント検査反復に対応する目標データビット幅
およびカレント検査反復で量子化予定のデータによって、目標反復間隔の反復に対応する
小数点位置を確定するように構成され、ニューラルネットワーク動作を調整する。
ここで、目標反復間隔の反復に対応する小数点位置は一致している。
一実施形態では、量子化パラメータは小数点位置を含み、小数点位置は、量子化予定の
データに対応する量子化データ内の小数点位置であり、装置はさらに以下を含む。
カレント検査反復に対応する目標データビット幅によって、目標反復間隔に対応するデ
ータビット幅を確定するように構成されるデータビット幅確定モジュール。ここで、目標
反復間隔の反復に対応するデータビット幅は一致している。
量子化パラメータ確定モジュールは、取得した小数点位置反復間隔によって目標反復間
隔の反復に対応する小数点位置を調整し、目標反復間隔に対応するデータビット幅を調整
してニューラルネットワーク動作の小数点位置を調整するように構成される。
ここで、小数点位置反復間隔には少なくとも1つの反復が含まれ、小数点位置反復間隔
内の反復小数点位置は一致している。
一実施形態では、小数点位置反復間隔は、目標反復間隔以下である。
一実施形態では、量子化パラメータは、スケーリング係数をさらに含み、スケーリング
係数は、小数点位置と同期して更新される。
一実施形態では、量子化パラメータはさらにオフセットを含み、オフセットは小数点位
置と同期して更新される。
一実施形態では、データビット幅確定モジュールは、以下を含む。
量子化誤差確定ユニットは、カレント検査反復の量子化データおよびカレント検査反復
の量子化データに従って量子化誤差を確定するように構成され、カレント検査反復の量子
化データは、カレント検査反復の量子化データを比較する。データは量子化に取得される
データビット幅確定ユニットは、量子化誤差に従って、カレント検査反復に対応する目
標データビット幅を確定するように構成される。
一実施形態では、データビット幅確定ユニットは、量子化誤差に従って、カレント検査
反復に対応する目標データビット幅を確定するように構成される。
量子化誤差が第1のプリセットしきい値以上の場合は、カレント検査反復に対応するデ
ータビット幅を増やして、カレント検査反復に対応する目標データビット幅を取得する。
または、
量子化誤差が第2のプリセットしきい値以下の場合、カレント検査反復に対応するデー
タビット幅が縮小され、カレント検査反復に対応する目標データビット幅が取得される。
一実施形態では、データビット幅確定ユニットは、量子化誤差が第1のプリセットしき
い値以上である場合、カレント検査反復に対応するデータを取得するために、カレント検
査反復に対応するデータビット幅を増やすように構成される。目標データのビット幅は、
特に次の目的で使用される。
量子化誤差が第1のプリセットしきい値以上の場合、第1のプリセットビット幅のステ
ップ長さによって第1の中間データビット幅を確定する。
戻り実行は、量子化誤差が第1のプリセットしきい値より小さくなるまで、カレント検
査反復で量子化予定のデータおよびカレント検査反復の量子化データに従って量子化誤差
を確定する。ここで、カレント検査反復の量子化データはこれは、第1の中間データのビ
ット幅に従って、カレント検査反復の量子化データを量子化することによって取得される
一実施形態では、データビット幅確定ユニットは、量子化誤差が第2のプリセットしき
い値以下である場合、カレント検査反復に対応するデータビット幅を減少させて、対応す
るカレント検査反復を取得するように構成される。の目標データビット幅が特に次の目的
で使用される場合:
量子化誤差が第2のプリセットしきい値以下の場合、第2のプリセットビット幅のステ
ップ長さによって第2の中間データビット幅を確定する。
実行に戻り、カレント検査反復で量子化予定のデータとカレント検査反復の量子化デー
タに従って、量子化誤差が第2のプリセットしきい値より大きくなるまで、量子化誤差を
確定する。ここで、カレント検査反復の量子化データこれは、第2の中間データのビット
幅に従って、カレント検査反復の量子化データを量子化することによって取得される。
一実施形態では、取得モジュールは以下を含む。
最初の取得モジュールは、小数点位置の変動範囲を取得するためである。小数点位置の
変動範囲は、量子化予定のデータのデータ変化の範囲を表すために使用でき、小数点位置
の変動範囲は、量子化予定のデータに対応する。データの変化には正の相関関係がある。
一実施形態では、第1の取得モジュールは、以下を含む。
第1の平均値確定ユニットは、カレント検査反復前の一つ前の検査反復に対応する小数
点位置および前の検査反復前の履歴反復に対応する小数点位置に従って第1の平均値を確
定するように構成される。検査反復は、目標反復間隔前の一つ前の反復間隔に対応する検
査反復である。
第2の平均値確定ユニットは、カレント検査反復に対応する小数点位置およびカレント
検査反復前の履歴反復の小数点位置に従って第2の平均値を確定するように構成される;
ここで、カレント検査反復に対応する小数点位置は、カレント検査反復に対応する目標デ
ータビット幅と量子化予定のデータが確定される。
第1の誤差確定ユニットは、第1の平均値および第2の平均値に従って第1の誤差を確
定するように構成され、第1の誤差は、小数点位置の変動範囲を表すためである。
一実施形態では、第2の平均値確定ユニットは、具体的に以下のように構成される。
中間スライディング平均値のプリセット数を取得する。ここで、中間スライディング平
均値のそれぞれは、カレント検査反復の前の検査反復のプリセット数に従って確定される
第2の平均値は、カレント検査反復の小数点位置と、プリセット中間スライド平均値の
数に従って確定される。
一実施形態では、第2の平均値確定ユニットは、カレント検査反復に対応する小数点位
置および第1の平均値に従って第2の平均値を確定するように特に構成される。
一実施形態では、第2の平均値確定ユニットは、カレント検査反復の取得されたデータ
ビット幅調整値に従って第2の平均値を更新するように構成される。
ここで、カレント検査反復のデータビット幅調整値は、カレント検査反復の目標データ
ビット幅および初期データビット幅によって確定される。
一実施形態では、第2の平均値確定ユニットは、特に以下のために、カレント検査反復
の取得されたデータビット幅調整値に従って第2の平均値を更新するように構成される。
カレント検査反復のデータビット幅調整値がプリセットパラメータよりも大きい場合、
第2の平均値は、カレント検査反復のデータビット幅調整値に従って減少する。
カレント検査反復のデータビット幅調整値がプリセットパラメータよりも小さい場合、
第2の平均値は、カレント検査反復のデータビット幅調整値に従って増やす。
一実施形態では、反復間隔確定モジュールは、第1の誤差によって目標反復間隔を確定
するように構成され、目標反復間隔は、第1の誤差と負の相関がある。
一実施形態では、取得モジュールはさらに以下を含む。
第2の取得モジュールは、データビット幅の変化傾向を取得するように構成される。小
数点位置の変動範囲とデータビット幅の変化傾向によって、量子化予定のデータのデータ
変動範囲を確定する。
一実施形態では、反復間隔確定モジュールは、取得された第1の誤差および第2の誤差
によって目標反復間隔を確定するようにさらに構成される;ここで、第1の誤差は、小数
点位置の変化の範囲を表すためである。第2の誤差は、データビット幅の変化傾向を特徴
づけるためである。
一実施形態では、ルート反復間隔確定モジュールは、特に以下について、取得された第
1の誤差および第2の誤差によって、目標反復間隔を確定するように構成される。
第1の誤差と第2の誤差の最大値を目標誤差とする。
目標反復間隔は、目標誤差によって確定される。ここで、目標誤差は、目標反復間隔と
負の相関がある。
一実施形態では、第2の誤差は、量子化誤差によって確定される。
量子化誤差は、カレント検査反復で量子化予定のデータとカレント検査反復の量子化後
のデータによって確定され、第2の誤差は量子化誤差と正の相関がある。
一実施形態では、装置は、ニューラルネットワークのトレーニングまたは微調整を実施
するために使用され、反復間隔確定モジュールは、以下の目的にも使用される。
カレント反復が第1のプリセット反復よりも大きい場合、目標反復間隔は、量子化予定
のデータのデータ変動範囲によって確定され、量子化パラメータは、目標反復間隔によっ
て調整される。
一実施形態では、反復間隔確定モジュールは、次のようにさらに構成される:カレント
反復が第1のプリセット反復以下である場合、第1のプリセット反復間隔を目標反復間隔
として使用し、それに従ってそれを設定する。第1のプリセット反復間隔で量子化パラメ
ータを調整する。
一実施形態では、反復間隔確定モジュールは、以下のようにさらに構成される。
カレント反復が第2のプリセット反復以上の場合、第2のプリセット反復間隔を目標反
復間隔として使用し、第2のプリセット反復間隔によって量子化パラメータを調整する。
ここで、ニューラルネットワークの収束の程度がプリセット条件を満たす場合、カレン
ト検査反復が第2のプリセット反復以上であると判断される。
第2のプリセット反復は第1のプリセット反復よりも大きく、第2のプリセット反復間
隔は第1のプリセット反復間隔よりも大きくなっている。
一実施形態では、反復間隔確定モジュールは、カレント反復が第2のプリセット反復以
上であり、第2の誤差がプリセット誤差値よりも大きい場合、次に、量子化予定のデータ
のデータに従って、以下のようにさらに構成される。変動範囲は、反復間隔を確定して、
反復間隔によってデータビット幅を再確定する。
前述の装置の実施形態は例示にすぎず、本開示の装置は他の方法でも実施できることを
理解されたい。例えば、上記の実施形態におけるユニット/モジュールの分割は、論理的
機能分割にすぎず、実際の実施において他の分割方法があり得る。たとえば、複数のユニ
ット、モジュール、またはコンポーネントを組み合わせたり、別のシステムに統合したり
、一部の機能を省略したり、実装しなかったりする場合がある。
個別のコンポーネントとして説明されているユニットまたはモジュールは、物理的に分
離されている場合とされていない場合がある。ユニットまたはモジュールとして記述され
るコンポーネントは、物理ユニットである場合と物理ユニットではない場合がある。つま
り、1つの装置に配置されている場合と、複数の装置に分散されている場合がある。本開
示の実施形態の解決策は、実際の必要性に従ってユニットのいくつかまたはすべてを選択
することによって実施することができる。
さらに、特に明記しない限り、本開示の様々な実施形態における機能ユニット/モジュ
ールは、1つのユニット/モジュールに統合され得るか、または各ユニット/モジュール
が物理的に単独で存在し得るか、または2つ以上のユニット/モジュールが存在し得る。
モジュールは一緒に統合されている。上記の統合ユニット/モジュールは、ハードウェア
またはソフトウェアプログラムモジュールの形式で実装できる。
前述の装置の実施形態は例示にすぎず、本開示の装置は他の方法でも実施できることを
理解されたい。例えば、上記の実施形態におけるユニット/モジュールの分割は、論理的
機能分割にすぎず、実際の実施において他の分割方法があり得る。たとえば、複数のユニ
ット、モジュール、またはコンポーネントを組み合わせたり、別のシステムに統合したり
、一部の機能を省略したり、実装しなかったりする場合がある。
個別のコンポーネントとして説明されているユニットまたはモジュールは、物理的に分
離されている場合とされていない場合がある。ユニットまたはモジュールとして記述され
るコンポーネントは、物理ユニットである場合と物理ユニットではない場合がある。つま
り、1つの装置に配置されている場合と、複数の装置に分散されている場合がある。本開
示における実施形態の解決策は、実際の必要性に従ってユニットのいくつかまたはすべて
を選択することによって実施することができる。
さらに、特に明記しない限り、本開示の様々な実施形態における機能ユニット/モジュ
ールは、1つのユニット/モジュールに統合され得るか、または各ユニット/モジュール
が物理的に単独で存在し得るか、または2つ以上のユニット/モジュールが存在し得る。
モジュールは一緒に統合されている。上記の統合ユニット/モジュールは、ハードウェア
またはソフトウェアプログラムモジュールの形式で実装できる。
統合ユニット/モジュールがハードウェアの形で実装されている場合、ハードウェアは
デジタル回路、アナログ回路などである可能性がある。ハードウェア構造の物理的な実現
には、トランジスタ、メモリスタなどが含まれるが、これらに限定されない。特に指定の
ない限り、人工知能プロセッサは、CPU、GPU、FPGA、DSP、ASICなどの
適切なハードウェアプロセッサである。特に指定のない限り、記憶ユニットは、抵抗性ラ
ンダムアクセスメモリ(RRAM)、ダイナミックランダムアクセスメモリ(DRAM)
などの適切な磁気ストレージメディアまたは磁気光学ストレージメディアのいずれかであ
る。SRAM(静的ランダムアクセスメモリ)、拡張動的ランダムアクセスメモリ(ED
RAM)、高帯域幅メモリ(HBM)、ハイブリッドメモリキューブ(HMC)など。待
つ。
統合されたユニット/モジュールがソフトウェアプログラムモジュールの形式で実装さ
れ、独立した製品として販売または使用される場合、コンピュータで読み取り可能なメモ
リに格納できる。この理解に基づいて、本開示の技術案は、本質的に、または既存の技術
に寄与する部分、または技術案の全部または一部をソフトウェア製品の形で具体化するこ
とができ、コンピュータソフトウェア製品はメモリに格納され、これは、コンピュータ装
置(パーソナルコンピュータ、サーバ、またはネットワーク装置などであり得る)に、本
開示の様々な実施形態に記載された方法のステップの全部または一部を実行させるための
いくつかの命令を含む。前述のメモリには、Uディスク、読み取り専用メモリ(ROM、
読み取り専用メモリ)、ランダムアクセスメモリ(RAM、ランダムアクセスメモリ)、
モバイルハードディスク、磁気ディスク、または光ディスク、およびプログラムコードを
格納できるその他のメディアが含まれる。
この技術案において、本開示はまた、上記のニューラルネットワーク量子化パラメータ
確定装置を含む人工知能チップを開示する。
技術案において、本開示はまた、記憶装置、インターフェース装置、制御装置、および
前述の人工知能チップを含むボードカードを開示し、ここで、人工知能チップおよび記憶
装置、制御装置、およびインターフェイス装置はそれぞれ接続されている。記憶装置はデ
ータの格納に使用される。インターフェイス装置は人工知能チップと外部装置間のデータ
伝送を実装するためである。制御装置はスマートチップの状態が監視される。
図12は、本開示の実施形態によるボードカードのブロック図を示す。図12を参照す
ると、チップ389に加えて、ボードカードはまた、他の支持構成要素を含み得る。支持
構成要素は、記憶装置390、インターフェース装置391および制御装置392を含む
が、これらに限定されない。
記憶装置390は、データを記憶するためのバスを介して人工知能チップに接続されて
いる。記憶装置は、記憶ユニット393の複数のグループを含み得る。記憶ユニットと人
工知能チップの各グループは、バスを介して接続されている。記憶ユニットの各グループ
はDDRSDRAM(英語:Double Data Rate SDRAM、ダブルレ
ート同期動的ランダムアクセスメモリ)である可能性があることが理解できる。
DDRは、クロック周波数を上げることなく、SDRAMの速度を2倍にすることがで
きる。DDRを使用すると、クロックパルスの立ち上がりエッジと立ち下がりエッジでデ
ータを読み取ることができる。DDRの速度は標準のSDRAMの2倍である。一実施形
態では、貯蔵装置は、貯蔵ユニットの4つのグループを含み得る。記憶ユニットの各グル
ープには、複数のDDR4粒子(チップ)を含めることができる。一実施形態では、人工
知能チップは、4つの72ビットDDR4コントローラを含み得る。72ビットDDR4
コントローラでは、64ビットがデータ伝送に使用され、8ビットがECC検証に使用さ
れる。記憶ユニットの各グループでDDR4−3200粒子を使用すると、データ伝送の
理論上の帯域幅が25600MB/秒に達する可能性があることが理解できる。
一実施形態では、記憶ユニットの各グループは、並列に配置された複数のダブルレート
同期動的ランダムアクセスメモリを含む。DDRは、1クロックサイクルで2回データを
送信できる。各記憶ユニットのデータ伝送とデータストレージを制御するために、DDR
を制御するためのコントローラがチップに提供されている。
インターフェース装置は、人工知能チップに電気的に接続されている。インターフェイ
ス装置は、人工知能チップと外部装置(サーバーやコンピュータなど)との間のデータ伝
送を実装するためである。例えば、一実施形態では、インターフェース装置は、標準のP
CIEインターフェースであり得る。たとえば、処理されるデータは、データ伝送を実現
するために、標準のPCIEインターフェイスを介してサーバーからチップに伝送される
。送信にPCIE3.0X16インターフェイスを使用する場合、理論上の帯域幅は16
000MB/sに達することが好ましい。別の実施形態において、インターフェース装置
はまた、他のインターフェースであり得る。本開示は、インターフェースユニットがスイ
ッチング機能を実現できる限り、上記の他のインターフェースの特定の症状を限定しない
。さらに、人工知能チップの計算結果は、インターフェース装置によって外部装置(サー
バーなど)に送信される。
制御装置は人工知能チップに電気的に接続されている。制御装置は、人工知能チップの
状態を監視するためである。具体的には、人工知能チップと制御装置は、SPIインター
フェースを介して電気的に接続され得る。制御装置は、シングルチップマイクロコンピュ
ータ(マイクロコントローラユニット、MCU)を含み得る。たとえば、人工知能チップ
は、複数の処理チップ、複数の処理コア、または複数の処理回路を含み得、複数の負荷を
駆動することができる。したがって、人工知能チップは、複数の負荷や軽負荷など、さま
ざまな動作状態になる可能性がある。制御装置は、人工知能チップ内の複数の処理チップ
、複数の処理、および/または複数の処理回路の動作状態の調整を実現することができる
可能な実施方法において、前述の人工知能チップを含む電子装置が開示される。電子機
器には、データ処理装置、ロボット、コンピュータ、プリンター、スキャナー、タブレッ
ト、スマート端末、携帯電話、ドライビングレコーダー、ナビゲーター、センサー、カメ
ラ、サーバー、クラウドサーバー、カメラ、カメラ、プロジェクター、時計、ヘッドセッ
トが含まれる、モバイルストレージ、ウェアラブル装置、車両、家電製品、および/また
は医療機器。
輸送手段には飛行機、船および/または車両が含まれ、家庭用電化製品にはテレビ、エ
アコン、電子レンジオーブン、冷蔵庫、炊飯器、加湿器、洗濯機、電灯、ガスストーブ、
レンジフードが含まれる。医療機器には核磁気共鳴が含まれる。B−超音波および/また
は心電計。
上記は、次の条項に従ってよりよく理解できる。
A1、データビット幅を調整する方法。この方法には次のものが含まれる。
量子化予定のデータに対して量子化処理を実行するためのデータビット幅を取得する。
ここで、データビット幅は、量子化予定のデータの量子化処理の後の量子化後のデータの
ビット幅を示す。
データビット幅に基づいて、1グループの量子化予定のデータに対して量子化処理を実
行して、1グループの量子化予定のデータを1グループの量子化後のデータに変換し、1
グループの量子化後のデータはデータビット幅を有する。
1グループの量子化予定のデータを1グループの量子化後のデータと比較して、データ
ビット幅に関連する量子化誤差を確定する。
データビット幅は、確定された量子化誤差に基づいて調整される。
A2、1グループの量子化予定のデータを1グループの量子化後のデータと比較し、デ
ータビット幅に関連する量子化誤差を確定する、条項A1に記載の方法は、以下を含む。
データビット幅に応じて量子化間隔を確定する。
量子化誤差は、量子化間隔、1グループの量子化後のデータ、および1グループの量子
化予定のデータによって確定される。
A3、量子化間隔、1グループの量子化後のデータ、および1グループの量子化予定の
データによって量子化誤差を確定する、条項A2に記載の方法は、以下を含む。
量子化間隔によって1グループの量子化後のデータに対して逆量子化を実行して、1グ
ループの逆量子化データを取得する。ここで、1グループの逆量子化データフォーマット
は、1グループの量子化予定のデータのデータフォーマットと同じである。と同様。
1グループの逆量子化データと1グループの量子化予定のデータによって、量子化誤差
を確定する。
A4、確定された量子化誤差に基づいてデータビット幅を調整する、条項A1からA3
のいずれか1つに記載の方法には、以下が含まれる。
量子化誤差をプリセットしきい値と比較する。プリセットしきい値には、第1のしきい
値と第2のしきい値の少なくとも1つが含まれる。
データビット幅は、比較結果に応じて調整される。
A5、比較の結果によってデータビット幅を調整することを特徴とする、条項A4によ
る方法は、以下を含む。
量子化誤差が第1のしきい値以上であると判断した場合、データビット幅が増やす。
A6、データビット幅を増やすことを含む、条項A5に記載の方法:
データビット幅は、調整後のデータビット幅を確定するために、第1のプリセットビッ
ト幅のステップ長さによって増やす。
A7、以下をさらに含むことを特徴とする、条項A6による方法。
調整後のデータビット幅に基づいて、1グループの量子化予定のデータに対して量子化
処理を実行し、1グループの量子化予定のデータを別の1グループの量子化後のデータに
変換し、別の1グループの量子化後のデータは調整後のデータビット幅;および
1グループの量子化予定のデータを別の1グループの量子化予定のデータと比較し、別
の量子化誤差が第1のプリセットしきい値より小さくなるまで、調整後のデータビット幅
に関連する別の量子化誤差を確定する。
A8、メソッドが反復的に実行されることを特徴とする、条項A7に基づくメソッド。
A9、比較の結果によってデータビット幅を調整することを特徴とする、条項A4によ
る方法は、以下を含む。
量子化誤差が第2のしきい値以下であると判断した場合、データビット幅を減らす。
A10、データビット幅を縮小することを含む、条項A9に記載の方法:
データビット幅は、調整後のデータビット幅を確定するために、第2のプリセットビッ
ト幅のステップ長さによって減少する。
A11、A10項に基づく方法であり、以下をさらに含むことを特徴とする。
調整後のデータビット幅に基づいて、1グループの量子化予定のデータに対して量子化
処理を実行し、1グループの量子化予定のデータを別の1グループの量子化後のデータに
変換し、別の1グループの量子化後のデータは調整後のデータビット幅;および
1グループの量子化予定のデータと別の1グループの量子化後のデータに基づいて、別
の量子化誤差が第2のプリセットしきい値より大きくなるまで、調整後のデータビット幅
に関連する別の量子化誤差を確定する。
A12、メソッドが反復的に実行されることを特徴とする、条項A11に基づくメソッ
ド。
A13、比較の結果によってデータビット幅を調整することを特徴とする、条項A4に
よる方法は、以下を含む。
量子化誤差が第1のしきい値と第2のしきい値との間にあると判断したことに応じて、
データビット幅が維持される。
A14、条項A1からA13のいずれか1つに基づく方法であり、さらに以下を含むこ
とを特徴とする。
1グループの量子化予定のデータと調整後のデータビット幅に基づいて、1グループの
量子化予定のデータに対して量子化処理を実行するための量子化パラメータを更新する。
更新された量子化パラメータに基づいて、1グループの量子化予定のデータに対して量子
化処理を実行する。
A15、条項A1に基づく方法は、以下をさらに含むことを特徴とする。
量子化予定のデータのデータ変動範囲を取得する。
量子化予定のデータのデータ変動範囲によって、目標反復間隔を確定し、目標反復間隔
によってデータビット幅を調整し、目標反復間隔には少なくとも1回の反復が含まれる。
A16、量子化予定のデータのデータ変動範囲を取得することは、以下を含む、条項A
15に記載の方法。
小数点位置の変動範囲を取得する。ここで、小数点位置の変動範囲は、量子化予定のデ
ータのデータ変動範囲を表すために使用され、小数点位置の変動範囲は、量子化予定のデ
ータのデータ変動範囲と正の相関がある。
A17、取得小数点位置の変化の範囲が以下を含むことを特徴とする、条項A16によ
る方法。
カレント検査反復前の一つ前の検査反復に対応する小数点位置と、一つ前の検査反復前
の履歴反復に対応する小数点位置によって第1の平均値を確定する。ここで、前の検査反
復は目標反復間隔の前である。前の反復間隔に対応する検査反復。
カレント検査反復に対応する小数点位置とカレント検査反復前の履歴反復の小数点位置
によって第2の平均値を確定する。ここで、カレント検査反復に対応する小数点位置は、
カレント検査反復に対応する目標データビット幅に基づいている。幅と量子化予定のデー
タを確定する。
第1の誤差は、第1の平均値および第2の平均値に従って確定され、第1の誤差は、小
数点位置の変動範囲を表すためである。
A18、量子化予定のデータのデータ変動範囲によって目標反復間隔を確定する、条項
A15に記載の方法は、以下を含む。
目標反復間隔は第1の誤差によって確定され、目標反復間隔は第1の誤差と負の相関が
ある。
A19、量子化予定のデータのデータ変動範囲を取得することは、以下をさらに含む、
条項A15に記載の方法。
データビット幅の変化傾向を取得する。
小数点位置の変動範囲とデータビット幅の変化傾向によって、量子化予定のデータのデ
ータ変動範囲を確定する。
A20、量子化予定のデータのデータ変動範囲によって目標反復間隔を確定し、さらに
以下を含むことを特徴とする、条項A19に記載の方法。
目標反復間隔は、取得した第1の誤差と第2の誤差によって確定される。第1の誤差は
小数点位置の変動範囲を表すために使用され、第2の誤差はデータビット幅の変化傾向を
表すためである。
A21、取得された第1の誤差および第2の誤差によって目標反復間隔を確定する、条
項A20に記載の方法は、以下を含む。
第1の誤差と第2の誤差の最大値を目標誤差とする。
目標反復間隔は、目標誤差によって確定される。ここで、目標誤差は、目標反復間隔と
負の相関がある。
A22、第2の誤差が量子化誤差によって確定される、条項A20またはA21に記載
の方法。
量子化誤差は、カレント検査反復で量子化予定のデータとカレント検査反復の量子化後
のデータによって確定され、第2の誤差は量子化誤差と正の相関がある。
A23、ニューラルネットワークのトレーニングまたは微調整に使用されることを特徴
とする、A15項からA22項のいずれか1つに記載の方法であり、この方法はさらに以
下を含む。
カレント反復が第1のプリセット反復よりも大きい場合、目標反復間隔は、量子化予定
のデータのデータ変動範囲によって確定され、量子化パラメータは、目標反復間隔によっ
て調整される。
A24、方法がさらに以下を含むことを特徴とする、条項A23による方法。
カレント反復が第1のプリセット反復以下の場合、第1のプリセット反復間隔が目標反
復間隔として採用され、量子化パラメータは第1のプリセット反復間隔によって調整され
る。
A25、条項A23またはA24に記載の方法であって、以下をさらに含む方法。
カレント反復が第2のプリセット反復以上の場合、第2のプリセット反復間隔を目標反
復間隔として使用し、第2のプリセット反復間隔によって量子化パラメータを調整する。
ここで、第2のプリセット反復は第1のプリセット反復よりも大きく、第2のプリセッ
ト反復間隔は第1のプリセット反復間隔よりも大きくなる。
A26、方法がさらに以下を含むことを特徴とする、条項A25による方法。
ニューラルネットワークの収束度がプリセット条件を満たす場合、カレント検査反復が
第2のプリセット反復以上であると判断される。
A27、方法がさらに以下を含むことを特徴とする、条項A25による方法。
カレント反復が第2のプリセット反復以上であり、第2の誤差がプリセット誤差値より
大きい場合、反復間隔は、量子化予定のデータのデータ変動範囲によって確定され、反復
間隔によって反復間隔が再確定される。データビット幅。
A28、データビット幅の調整装置で、次のものが含まれる。
量子化予定のデータに対して量子化処理を実行するためのデータビット幅を取得するよ
うに構成される取得モジュール。データビット幅は、量子化予定のデータの量子化処理の
後の量子化後のデータのビット幅を示す。
量子化モジュールは、データビット幅に基づいて1グループの量子化予定のデータに対
して量子化処理を実行して、1グループの量子化予定のデータを1グループの量子化後の
データに変換するように構成され、1グループの量子化予定のデータはデータを有するビ
ット幅。
1グループの量子化予定のデータを1グループの量子化後のデータと比較し、データビ
ット幅に関連する量子化誤差を確定するように構成される確定モジュール。
調整は、確定された量子化誤差に基づいてデータビット幅を調整する。
A29、比較モジュールが以下を含むことを特徴とする、条項A28による装置。
データビット幅によって量子化間隔を確定するように構成される間隔確定モジュール。
誤差確定モジュールは、量子化間隔、1グループの量子化後のデータ、および1グルー
プの量子化予定のデータによって量子化誤差を確定するように構成される。
A30、誤差確定モジュールが以下を含む、条項A29に記載の装置。
量子化モジュールは、量子化間隔によって1グループの量子化後のデータに対して逆量
子化を実行して、1グループの逆量子化データを取得するように構成され、1グループの
逆量子化データフォーマットは、1グループの量子化予定のデータと同じである。同じデ
ータフォーマットである;および
量子化誤差確定モジュールは、1グループの逆量子化データおよび1グループの量子化
予定のデータによって量子化誤差を確定するように構成される。
A31、調整モジュールが以下を含む、条項A28からA30のいずれか1つに記載の
装置。
量子化誤差をプリセットしきい値と比較するように構成される比較モジュール。プリセ
ットしきい値には、第1のしきい値と第2のしきい値の少なくとも1つが含まれる。
ビット幅調整モジュールは、比較結果に応じてデータビット幅を調整するように構成さ
れる。
A32、ビット幅調整モジュールが以下を含む、条項A31に記載の装置。
増加モジュールは、量子化誤差が第1のしきい値以上であるとの確定に応答してデータ
ビット幅を増やすように構成される。
A33、追加モジュールが以下を含むことを特徴とする、A32項に基づく装置。
ステップ長さ増加モジュールは、調整後のデータビット幅を確定するために、第1のプ
リセットビット幅のステップ長さによってデータビット幅を増やすように構成される。
A34、A33項に基づく装置で、次の特徴がある。
量子化モジュールはさらに、調整後のデータビット幅に基づいて1グループの量子化予
定のデータに対して量子化処理を実行するように構成され、1グループの量子化予定のデ
ータを別の1グループの量子化後のデータに変換する。1グループの量子化後のデータは
、調整後のデータビット幅を持つ。
確定モジュールはさらに、1グループの量子化予定のデータを別の1グループの量子化
予定のデータのと比較し、別の量子化誤差が以下になるまで、調整後のデータビット幅に
関連する別の量子化誤差を確定するように構成される。第1のプリセットしきい値。
A35、装置が反復呼び出される、条項A34に記載の装置。
A36、調整モジュールが以下を含む、条項A31に記載の装置。
減少モジュールは、量子化誤差が第2のしきい値以下であると判断した場合にデータビ
ット幅を縮小するように構成される。
A37、減少モジュールが以下を含む、条項A36に記載の装置。
ステップ長さ減少モジュールは、調整後のデータビット幅を確定するために、第2のプ
リセットビット幅のステップ長さによってデータビット幅を減少するためである。
A38、A37項に基づく装置で、次の特徴がある。
量子化モジュールはさらに、調整後のデータビット幅に基づいて1グループの量子化予
定のデータに対して量子化処理を実行するように構成され、1グループの量子化予定のデ
ータを別の1グループの量子化後のデータに変換する。1グループの量子化後のデータは
、調整後のデータビット幅を持つ。
確定モジュールはさらに、別の量子化誤差がより大きくなるまで、量子化予定のデータ
の1つのセットおよび別の1グループの量子化後のデータに基づいて、調整後のデータビ
ット幅に関連する別の量子化誤差を確定するように構成される。第2のプリセットしきい
値。
A39、装置が反復呼び出される、条項A38に記載の装置。
A40、調整モジュールが以下を含む、条項A31に記載の装置。
維持モジュールは、量子化誤差が第1のしきい値と第2のしきい値との間にあるとの確
定に応答してデータビット幅を維持するように構成される。
A41、条項A28からA40のいずれか1つに基づく装置で、さらに以下を備えてい
る。
1グループの量子化予定のデータおよび調整後のデータビット幅に基づいて、1グルー
プの量子化予定のデータに対して量子化処理を実行するための量子化パラメータを更新す
るように構成される更新モジュール。
量子化モジュールは、更新された量子化パラメータに基づいて1グループの量子化予定
のデータに対して量子化処理を実行するようにさらに構成される。
A42、条項A28に準拠した装置で、さらに以下を備えていることを特徴とする。
範囲モジュールは、量子化予定のデータのデータ変動範囲を取得するためである。
間隔モジュールは、量子化予定のデータのデータ変動範囲によって目標反復間隔を確定
し、目標反復間隔によってデータビット幅を調整するように構成され、目標反復間隔には
少なくとも1回の反復が含まれる。
A43、範囲モジュールが以下を含む、条項A42に記載の装置。
小数点位置モジュールは、小数点位置の変動範囲を取得するために使用され、小数点位
置の変動範囲は、量子化予定のデータのデータ変動範囲を表すために使用され、小数点位
置の変動範囲は、量子化予定のデータのデータ変動と同じである。振幅は正の相関がある
A44、小数点位置モジュールが含む、条項A43に記載の装置。
第1の平均値モジュールは、カレント検査反復の前の一つ前の検査反復に対応する小数
点位置と、一つ前の検査反復の前の履歴反復に対応する小数点位置に従って第1の平均値
を確定するためである。検査の反復は、目標反復間隔前の一つ前の反復間隔に対応してい
るか。
第2の平均モジュールは、カレント検査反復に対応する小数点位置と、カレント検査反
復前の履歴反復の小数点位置によって第2の平均値を確定するためである。ここで、カレ
ント検査反復に対応する小数点位置は、カレント検査反復に基づいている。検査の反復に
対応する目標データのビット幅と量子化予定のデータが確定される。
第1の誤差モジュールは、第1の平均値および第2の平均値に従って第1の誤差を確定
するように構成され、第1の誤差は、小数点位置の変動範囲を表すためである。
A45、間隔モジュールが以下を含む、条項A42に記載の装置。
第1の間隔モジュールは、第1の誤差によって目標反復間隔を確定するように構成され
ており、目標反復間隔は第1の誤差と負の相関がある。
A46、範囲モジュールがさらに以下を含む、条項A42に記載の装置。
データビット幅の変化傾向を取得するための傾向モジュール。
データ変動範囲モジュールは、小数点位置の変動範囲とデータビット幅の変化傾向によ
って、量子化予定のデータのデータ変動範囲を確定するためである。
A47、間隔モジュールがさらに以下を含む、条項A46に記載の装置。
反復間隔モジュールは、取得した第1の誤差と第2の誤差によって目標反復間隔を確定
するためである。第1の誤差は小数点位置の変動範囲を表すために使用され、第2の誤差
はデータビット幅を表すためである。変化の傾向。
A48、反復間隔モジュールが含む、条項A47に記載の装置。
第1の誤差と第2の誤差うちの最大値を目標誤差とするように構成される目標誤差モジ
ュール。
目標反復間隔モジュールは、目標誤差に従って目標反復間隔を確定するように構成され
る。ここで、目標誤差は目標反復間隔に負の相関がある。
A49、第2の誤差が量子化誤差によって確定される、条項A47またはA48による
装置。
量子化誤差は、カレント検査反復で量子化予定のデータとカレント検査反復の量子化後
のデータによって確定され、第2の誤差は量子化誤差と正の相関がある。
A50、条項A42からA49のいずれか1つに記載の装置であって、ニューラルネッ
トワークをトレーニングまたは微調整するために使用され、さらに以下を含む装置。
第1の反復モジュールは、カレント反復が第1のプリセット反復よりも大きい場合に量
子化予定のデータのデータ変動範囲によって目標反復間隔を確定し、目標反復間隔によっ
て量子化パラメータを調整するように構成される。
A51、条項A50に記載の装置であって、装置がさらに以下を含む、装置。
第2の反復モジュールは、カレント反復が第1のプリセット反復間隔以下の場合に、第
1のプリセット反復間隔を目標反復間隔として使用し、第1のプリセット反復間隔によっ
て調整するように構成される。量子化パラメータ。
A52、条項A50またはA51に記載の装置であって、装置がさらに以下を含む、装
置。
第3の反復モジュールは、カレント反復が第2のプリセット反復以上の場合、第2のプ
リセット反復間隔を目標反復間隔として使用し、第2のプリセット反復間隔によって第2
のプリセット反復間隔を調整するように構成される。
ここで、第2のプリセット反復は第1のプリセット反復よりも大きく、第2のプリセッ
ト反復間隔は第1のプリセット反復間隔よりも大きくなる。
A53、装置がさらに以下を含む、条項A52に記載の装置。
コンバージェンスモジュールは、ニューラルネットワークのコンバージェンス度がプリ
セット条件を満たす場合に、現在の検証イテレーションが第2のプリセットイテレーショ
ン以上であると判断するように構成される。
A54、装置がさらに以下を含むことを特徴とするA52項による装置。
カレント反復が第2のプリセット反復以上であり、第2の誤差がプリセット誤差値より
大きい場合、反復間隔は、量子化予定のデータのデータ変動範囲によって確定され、反復
間隔によって反復間隔が再確定される。
A55、コンピュータプログラムがその上に格納されることを特徴とするコンピュータ
可読記憶媒体。これは、実行されると、条項A1〜A27のいずれか1つに従って方法を
実施する。
A56、チップがA28項からA54項のいずれかに従ってデータを処理するための装
置を含むことを特徴とする人工知能チップ。
A57、第56条に基づく人工知能チップを含むことを特徴とする電子機器。
A58、その特徴を有するボードカードは、以下を含む。ボードカードは、記憶装置、
インターフェース装置、制御装置、および第56項による人工知能チップを含む。
ここで、人工知能チップは、記憶装置、制御装置、およびインターフェイス装置に接続
されている。
記憶装置は、データを格納するためである。
インターフェイス装置は、人工知能チップと外部装置間のデータ伝送を実装するためで
ある。
制御装置は、人工知能チップの状態を監視するためである。
A59、A58項に基づくボードカードは、次の特徴を備えている。
記憶装置には次のものが含まれる。記憶ユニットの複数のグループ、記憶ユニットの各
グループはバスを介して人工知能チップに接続され、記憶ユニットはDDRSDRAMで
ある。
チップには各記憶ユニットのデータ伝送とデータストレージを制御するためのDDRコ
ントローラが含まれる。
インターフェイス装置は、標準のPCIEインターフェイスである。
ニューラルネットワークの量子化の問題を解決するために、次の技術案を提案しました
(201910505239.7)。具体的には、ニューラルネットワークの量子化方法
と装置および関連製品が提供される。
この開示は、人工知能技術の分野、特にニューラルネットワークの量子化方法および装
置、ならびに関連製品に関する。
人工知能技術の継続的な発展に伴い、その応用分野はますます広範になり、画像認識、
音声認識、自然言語処理の分野で広く適用されている。しかし、人工知能アルゴリズムの
複雑さが増やすにつれて、処理する必要のあるデータの量とデータの次元は絶えず増加し
ている。計算効率と計算結果の精度のバランスをとる方法は、人工知能の分野で緊急の問
題である。
これを考慮して、本開示は、ニューラルネットワーク量子化技術案を提案する。
本開示の一態様によれば、ニューラルネットワーク量子化法が提供される。ニューラル
ネットワークにおいて量子化予定の任意の層について、この方法は以下を含む。
量子化予定の層で各タイプの量子化予定のデータに対応する量子化パラメータを確定す
る。ここで、量子化予定のデータは、ニューロン、重み、オフセット、および勾配のうち
の少なくとも1つを含む。
量子化予定のデータは、対応する量子化パラメータに従って量子化されて量子化後のデ
ータを取得するため、ニューラルネットワークは量子化後のデータに従って操作を実行す
る。
本開示の別の態様によれば、ニューラルネットワークの量子化装置が提供され、装置は
、ニューラルネットワークにおいて量子化予定の任意の層を量子化するために使用され、
装置は、以下を含む。
量子化予定の層で各タイプの量子化予定のデータに対応する量子化パラメータを確定す
るように構成される量子化パラメータ確定モジュール。ここで、量子化予定のデータは、
ニューロン、重み、オフセット、および勾配のうちの少なくとも1つを含む。
量子化モジュールは、対応する量子化パラメータに従って量子化予定のデータを量子化
するために使用され、量子化後のデータを取得し、ニューラルネットワークが量子化後の
データに従って操作を実行するようにする。
本開示の別の態様によれば、人工知能チップが提供され、そのチップは、上記のニュー
ラルネットワークの量子化装置を含む。
本開示の別の態様によれば、上記のような人工知能チップを含む電子装置が提供される
本開示の別の態様によれば、ボードカードが提供され、ボードカードは、記憶装置、イ
ンターフェース装置および制御装置、ならびに上記の人工知能チップと、人工知能チップ
および記憶装置とを備える。制御装置とインターフェース装置は別々に接続されている;
記憶装置はデータを記憶するためである;インターフェース装置は人工知能チップと外部
装置との間のデータ伝送を実現するためである;制御装置、人工知能チップの状態を監視
するためである。
本開示のこの実施形態では、ニューラルネットワークで量子化予定の任意の層について
、量子化予定の層で各タイプの量子化予定のデータに対応する量子化パラメータが確定さ
れ、量子化予定のデータはニューロンおよび重みを含む。オフセットと勾配の少なくとも
1つ。対応する量子化パラメータに従って量子化予定のデータを量子化し、量子化予定の
データを取得する。これにより、ニューラルネットワークは量子化予定のデータによって
操作を実行できる。各層で量子化予定のデータとより一致する量子化パラメータを使用し
て、量子化する各層を量子化する。これにより、各層の計算結果の精度を確保しながら、
各層の計算効率を向上させることができる。ニューラルネットワークの全体的な計算結果
の精度を確保することを前提として、ニューラルネットワークの全体的な計算効率を向上
させることも可能である。
添付の図面を参照する例示的な実施形態の以下の詳細な説明によれば、本開示の他の特
徴および態様が明らかになるであろう。
本明細書に含まれ、本明細書とともに本明細書の一部を構成する図面は、本開示の例示
的な実施形態、特徴、および態様を示し、本開示の原理を説明するためである。
図2−1は、本開示の一実施形態によるニューラルネットワークの量子化方法のフロー
チャートを示している。
図2−2は、本開示の一実施形態によるニューラルネットワークの量子化方法のフロー
チャートを示している。
図2−3は、本開示の一実施形態によるニューラルネットワークの量子化方法のフロー
チャートを示している。
図2−4は、本開示の一実施形態によるニューラルネットワークの量子化方法を示すフ
ローチャートである。
図2−5は、本開示の一実施形態によるニューラルネットワーク量子化法の量子化パラ
メータがオフセットを含まない場合の、量子化前後のデータ対応の概略図を示す。
図2−6は、本開示の一実施形態によるニューラルネットワークの量子化方法を示すフ
ローチャートである。
図2−7は、本開示の一実施形態によるニューラルネットワーク量子化法における量子
化パラメータがオフセットを含む場合の、量子化前後のデータ対応の概略図を示す。
図2−8は、本開示の一実施形態によるニューラルネットワークの量子化方法を示すフ
ローチャートである。
図2−9は、本開示の一実施形態によるニューラルネットワークの量子化方法を示すフ
ローチャートである。
図2−10は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−11は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−12は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−13は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−14は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−15は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−16は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−17は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−18は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−19は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−20は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−21は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−22は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−23は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−24は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−25は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。
図2−26は、本開示の一実施形態によるニューラルネットワークの量子化装置の概略
図を示す。
図2−27は、本開示の一実施形態によるニューラルネットワークの量子化装置の概略
図を示す。
図2−28は、本開示の一実施形態によるニューラルネットワークの量子化装置の概略
図を示す。
図2−29は、本開示の一実施形態によるニューラルネットワークの量子化装置の概略
図を示す。
図2−30は、本開示の一実施形態によるニューラルネットワークの量子化装置の概略
図を示す。
図2−31は、本開示の一実施形態によるボードカードのブロック図を示している。
ニューラルネットワークの量子化の問題を解決するために、次の技術案を提案しました
(201910505239.7)。本開示の実施形態における技術案は、本開示の実施
形態における添付の図面を参照して明確かつ完全に説明される。明らかに、記載された実
施形態は、本開示の実施形態の一部であるが、すべての実施形態ではない。本開示の実施
形態に基づいて、創造的な作業なしに当業者によって得られた他のすべての実施形態は、
本開示の保護範囲に含まれる。
本開示の特許請求の範囲、明細書および図面における「第1」、「第2」、「第3」お
よび「第4」という用語は、特定の順序を説明するのではなく、異なる対象を区別するた
めであることを理解されたい。本開示の明細書および特許請求の範囲で使用される「含む
」および「含む」という用語は、記載された特徴、全体、ステップ、操作、要素および/
または構成要素の存在を示すが、1つまたは複数の他の特徴、全体を除外しない。ステッ
プ、操作、要素、コンポーネント、および/またはそれらのコレクションの存在または追
加。
この開示明細書で使用される用語は、特定の実施形態を説明することのみを目的として
おり、開示を限定することを意図するものではないことも理解されたい。本開示および特
許請求の範囲で使用されるように、文脈が他の状況を明確に示さない限り、単数形「一」
、「1つ」および「当該」は、複数形を含むことを意図している。本開示の明細書および
特許請求の範囲で使用される「および/または」という用語は、関連してリストされた1
つまたは複数の項目の任意の組み合わせおよびすべての可能な組み合わせを指し、これら
の組み合わせを含むことをさらに理解されたい。
ここでの「例示的」という専用の単語は、「例、実施形態、または例示として役立つ」
ことを意味する。本明細書で「例示的」として記載される任意の実施形態は、他の実施形
態よりも優れているまたはより優れていると解釈される必要はない。
さらに、本開示をよりよく説明するために、以下の特定の実施形態において、多数の特
定の詳細が与えられる。当業者は、この開示が特定の特定の詳細なしに実施することもで
きることを理解すべきである。場合によっては、本開示の要点を強調するために、当業者
に周知の方法、手段、要素、および回路は詳細に説明されていない。
ニューラルネットワークで計算されるデータは、通常、浮動小数点データフォーマット
または高精度の固定点データフォーマットである。ニューラルネットワークを搭載したチ
ップ上でニューラルネットワークを実行する場合、浮動小数点データフォーマットまたは
高精度の固定小数点データフォーマットはさまざまに計算される。ニューラルネットワー
ク演算のデータ、計算負荷、およびメモリアクセスのオーバーヘッドは比較的大きいであ
る。計算効率を向上させるために、ニューラルネットワークで計算されるデータを量子化
することができる。量子化後のデータフォーマットは、通常、ビット幅が短く精度が低い
固定小数点データフォーマットである。ニューラルネットワーク演算を実行するために低
精度の量子化予定のデータを使用すると、計算とメモリアクセスの量を減らすことができ
る。量子化後のデータフォーマットは、ビット幅が短い固定小数点データフォーマットに
することができる。浮動小数点データフォーマットで計算されるデータは、固定点データ
フォーマットで計算されるデータに量子化でき、固定点形式でより高い精度で計算される
データは、固定点形式でより低い精度で計算されるデータに量子化される。
量子化精度とは、量子化後のデータと事前に量子化後のデータとの間の誤差の大きさを
指すことが理解できる。量子化の精度は、ニューラルネットワークの操作結果の精度に影
響を与える可能性がある。精度が高いほど、計算結果の精度は高くなるが、計算量が多く
なり、メモリアクセスのオーバーヘッドが大きくなる。ビット幅が短い量子化予定のデー
タと比較して、ビット幅が長い量子化予定のデータは量子化精度が高く、ニューラルネッ
トワーク演算の実行にも使用すると精度が高くなる。ただし、ニューラルネットワーク演
算に使用する場合、ビット幅が長い量子化では、データ計算量が多くなり、メモリアクセ
スのオーバーヘッドが大きくなり、計算効率が低下する。同様に、同じデータを量子化す
る場合、異なる量子化パラメータを使用して得られた量子化データは、異なる量子化精度
を持ち、異なる量子化結果を生成し、計算効率と計算結果の精度にも異なる影響を及ぼす
る。ニューラルネットワークは、計算効率と計算結果の精度のバランスをとるために量子
化され、計算されるデータのデータ特性により一致する量子化後のデータビット幅と量子
化パラメータを使用できる。
ニューラルネットワークで計算されるデータには、重み、ニューロン、オフセット、勾
配が含まれる場合がある。ニューラルネットワークで計算されるデータの従来の量子化で
は、通常、ニューラルネットワーク全体に同じ量子化パラメータが設定される。たとえば
、ニューラルネットワークには4つの畳み込み層と2つの完全に接続された層があり、計
算されるデータはニューロン(通常は入力ニューロン)である。ニューラルネットワーク
の量子化用に量子化パラメータAのセットを設定し、量子化パラメータAを使用できる。
4つの畳み込み層と2つの完全に接続された層のニューロンを量子化する。ニューラルネ
ットワークの各層のニューロンが異なるため、各層で使用されるアルゴリズムも異なる。
同じ量子化パラメータを使用して各層を量子化する。量子化パラメータは各層のニューロ
ンの特性に適応できず、ニューラルネットワークの全体的な量子化精度が低く、計算結果
の精度が低い。さらに、ニューラルネットワークの量子化パラメータのセットを設定する
場合、計算結果の精度を考慮して量子化の精度を向上させると、ビット幅が長い量子化ビ
ット幅のセットを設定すると、ニューラルネットワークの計算効率が低下する。したがっ
て、従来のニューラルネットワーク量子化法では、量子化精度の向上と計算効率の向上の
効果的なバランスをとることができない。
図2−1は、本開示の一実施形態によるニューラルネットワークの量子化方法のフロー
チャートを示している。ニューラルネットワークの量子化方法は、汎用プロセッサ(中央
処理ユニットCPU、グラフィックス処理ユニットGPUなど)および特殊用途プロセッ
サ(人工知能プロセッサ、科学計算プロセッサ、デジタル信号プロセッサなど)に適用で
きる。ニューラルネットワーク量子化法によって適用されるプロセッサのタイプは制限さ
れない。
図2−1に示すように、ニューラルネットワークで量子化予定の層の場合、ニューラル
ネットワークの量子化方法には次のものが含まれる。
ステップS10:量子化予定の層で各タイプの量子化予定のデータに対応する量子化パ
ラメータを確定する。量子化予定のデータには、ニューロン、重み、オフセット、および
勾配の少なくとも1つが含まれる。
ニューラルネットワークで量子化予定の層は、ニューラルネットワークの任意の層にす
ることができる。ニューラルネットワークの一部またはすべての層は、要件に応じて量子
化する層として確定できる。ニューラルネットワークに量子化される複数の層が含まれる
場合、量子化される各層は連続的または非連続的であり得る。ニューラルネットワークに
応じて、量子化予定の層のタイプも異なり得る。例えば、量子化予定の層は、畳み込み層
、完全に接続された層などであり得る。本開示は、量子化層の数およびタイプを制限しな
い。
可能な実装方法では、量子化予定のデータには、ニューロン、重み、オフセット、およ
び勾配の少なくとも1つが含まれる。
量子化予定の層の操作を実行するためである操作データには、ニューロン、重み、オフ
セット、および勾配が含まれ得る。量子化予定の層のニューロン、重み、オフセット、お
よび勾配のうちの少なくとも1つは、要件に従って量子化予定のデータとして使用され得
る。量子化する層に量子化予定のデータの種類が複数ある場合、本開示の量子化法を、量
子化予定のデータの種類ごとに使用して、量子化予定のデータの種類ごとに対応する量子
化データを取得し、様々な量子化予定のデータを使用することができる。量子化する必要
のない算術データは、量子化する層の算術を実行する。さらに、要件に応じて、量子化予
定の層の様々な動作データの全部または一部を、量子化予定のデータとして確定すること
ができ、これは、本開示に限定されない。
ニューラルネットワーク演算の推論段階は、トレーニングされたニューラルネットワー
クが設定されたタスクを完了するために順方向演算に供される段階を含み得る。ニューラ
ルネットワークの推論段階では、ニューロン、重み、オフセット、および勾配のうちの少
なくとも1つを、量子化予定のデータとして使用することができる。本開示の実施形態の
方法に従って量子化を行った後、量子化予定のデータを使用して、量子化する層を完成さ
せる。操作。
ニューラルネットワーク演算の微調整段階には、トレーニングされたニューラルネット
ワークでプリセット反復回数の順方向演算と逆方向演算を実行すること、および設定され
たタスクの段階に適応するようにパラメータを微調整することが含まれる。ニューラルネ
ットワーク演算の微調整段階において、ニューロン、重み、オフセット、および勾配のう
ちの少なくとも1つを、本開示の実施形態の方法に従って量子化することができ、次いで
、量子化予定のデータを使用して、量子化予定の層の順方向を完成させる。操作または逆
操作。
ニューラルネットワーク演算のトレーニングフェーズには、次のものが含まれる。トレ
ーニングされたニューラルネットワークを取得するための初期化されたニューラルネット
ワークの反復トレーニング。トレーニングされたニューラルネットワークは特定のタスク
を実行できる。ニューラルネットワークのトレーニング段階において、ニューロン、重み
、オフセット、および勾配のうちの少なくとも1つを、本開示の実施形態の方法に従って
量子化することができ、次いで、量子化後のデータを使用して、量子化予定の層の順方向
演算を完了する。または逆の操作。
量子化予定の層に対応する量子化パラメータは、1つの量子化パラメータまたは複数の
量子化パラメータであり得る。
量子化パラメータは、小数点位置など、量子化予定のデータを量子化するためであるパ
ラメータを含み得る。小数点位置は、量子化後のデータ内の小数点位置を確定するために
使用できる。量子化パラメータには、スケーリング係数、オフセットなどを含めることも
できる。ニューラルネットワークが量子化される複数の層を含む場合、量子化される各層
は、対応する量子化パラメータを有し得、量子化される各層に対応する量子化パラメータ
は、異なるかまたは同じであり得るが、これは本開示に限定されない。
量子化予定の層で量子化される異なるデータは、異なる量子化パラメータに対応するこ
とができる。例えば、量子化予定の層1のニューロンは、量子化パラメータ1に対応し得
、そして量子化予定の層1の重みは、量子化パラメータ2に対応し得る。量子化する層に
おいて量子化予定のデータの種類ごとに対応する量子化パラメータを確定する方法は、プ
リセット量子化パラメータを検索して量子化パラメータを直接確定する方法、対応関係を
検索して量子化パラメータを確定する方法、または量子化予定のデータに基づく計算を含
み得る。パラメータを量子化する方法。
量子化する層で量子化予定のデータの種類ごとに対応する量子化パラメータを、ニュー
ラルネットワークで量子化する層に設定することができる。設定された量子化パラメータ
は、設定されたストレージスペースに格納できる。設定されたストレージスペースは、オ
ンチップまたはオフチップのストレージスペースにすることができる。たとえば、設定さ
れた量子化パラメータは、レイヤ識別子によって区別され、設定されたストレージスペー
スに格納される。量子化する各層を量子化する場合、設定した記憶域に対応する量子化パ
ラメータを抽出した後、量子化を行うことができる。量子化予定のデータの種類ごとに対
応する量子化パラメータは、経験値に応じて設定できる。量子化予定のデータの種類ごと
に設定した量子化パラメータも要件に応じて更新できる。たとえば、次の層の量子化パラ
メータを前の層の量子化パラメータに従って更新できる。
量子化パラメータは、データ特性と量子化パラメータの対応を検索するか、量子化する
各層で量子化予定のデータのデータ特性または量子化する層の層特性に応じて層特性と量
子化パラメータの対応を検索することで確定できる。たとえば、量子化予定のデータのデ
ータ分布がまばらで密である場合、それぞれ異なる量子化パラメータに対応する可能性が
ある。量子化予定のデータのデータ分布に対応する量子化パラメータは、対応関係を検索
することによって確定することができる。別の例として、量子化予定の層が畳み込み層ま
たは完全に接続された層である場合、それは異なる量子化パラメータに対応することがで
き、量子化予定の層が畳み込み層である場合、畳み込み層に対応する量子化パラメータを
検索することができる。
設定された量子化パラメータ計算方法を用いて、量子化される各層で量子化予定のデー
タによって、量子化される各層に対応する量子化パラメータを計算することも可能である
。たとえば、丸めアルゴリズムを使用して、量子化予定のデータの最大絶対値とプリセッ
トされたデータビット幅によって、量子化パラメータの小数点位置を計算できる。
ステップS20:対応する量子化パラメータに従って量子化予定のデータを量子化して
、量子化後のデータを取得し、それにより、ニューラルネットワークは、量子化後のデー
タに従って操作を実行する。
設定された量子化アルゴリズムを使用して、量子化パラメータに従って量子化予定のデ
ータを量子化し、量子化後のデータを取得することができる。たとえば、丸めアルゴリズ
ムを量子化アルゴリズムとして使用でき、量子化後のデータをデータのビット幅と小数点
位置によって丸めて量子化して、量子化後のデータを取得できる。それらの中で、丸めア
ルゴリズムは、切り上げ、切り下げ、ゼロへの丸め、および5への丸めを含み得る。この
開示は、量子化アルゴリズムの特定の実装を制限するものではない。
ニューラルネットワークに量子化する層が複数ある場合、量子化する各層で各タイプの
量子化予定のデータは、対応する量子化パラメータを使用して量子化できる。量子化予定
のデータに対応する量子化パラメータは、量子化予定のデータの特性により適しているた
め、量子化される各層の各タイプの量子化予定のデータの量子化精度は、層の計算要件に
より一致する。この層の計算結果の精度を確保することを前提として、この層の計算効率
を向上させ、この層の計算効率と計算結果の精度とのバランスをとることができる。ニュ
ーラルネットワーク全体で、量子化する各層の計算結果の精度と計算効率のバランスを実
現し、ニューラルネットワークの計算結果の精度と計算効率のバランスも実現する。
ニューラルネットワークの推論、トレーニング、および微調整の過程で、目標データを
オフラインまたはオンラインで量子化できる。ここで、オフライン量子化は、量子化パラ
メータを使用して、量子化予定のデータに対してオフライン処理を実行することである。
オンライン量子化は、量子化パラメータを使用して量子化予定のデータのオンライン処理
である。たとえば、ニューラルネットワークが人工知能チップ上で実行されている場合、
量子化予定のデータと量子化パラメータを人工知能チップの外部のコンピューティング装
置に送信してオフラインで量子化したり、人工知能チップ以外のコンピューティング装置
を使用して事前に量子化予定のデータを分析したりできる。そしてオフライン量子化のた
めの量子化パラメータ。ニューラルネットワークを実行する人工知能チップのプロセスで
は、人工知能チップは、量子化パラメータを使用して、量子化後のデータのオンライン量
子化を実行できる。ニューラルネットワークに量子化する複数の層が含まれている場合、
量子化する各層をオンラインとオフラインでそれぞれ量子化できる。この開示は、量子化
される各層の量子化プロセスがオンラインであるかオフラインであるかを制限するもので
はない。
この実施形態では、ニューラルネットワークで量子化予定の任意の層について、量子化
予定の層で各タイプの量子化予定のデータに対応する量子化パラメータが確定され、量子
化予定のデータは、ニューロン、重み、オフセットと勾配の少なくとも1つ。量子化予定
のデータは、対応する量子化パラメータに従って量子化され、量子化後のデータを取得す
る。これにより、ニューラルネットワークは量子化後のデータに従って操作を実行する。
各層で量子化予定のデータとより一致する量子化パラメータを使用して、量子化する各層
を量子化する。これにより、各層の計算結果の精度を確保しながら、各層の計算効率を向
上させることができる。ニューラルネットワークの全体的な計算結果の精度を確保するこ
とを前提として、ニューラルネットワークの全体的な計算効率を向上させることも可能で
ある。
可能な実装方法では、量子化パラメータは、小数点位置、スケーリング係数、およびオ
フセットのうちの少なくとも1つを含み、小数点位置は、量子化後の小数点位置であり、
スケーリング係数は、量子化後のデータである。量子化予定のデータの最大値と最大絶対
値の比率、およびオフセットは、量子化予定のデータの中間値である。
可能な実装では、量子化パラメータは小数点位置を含み得る。次の式(1)を使用して
、量子化予定のデータを量子化し、量子化後のデータIを取得できる。
=round(F/2) 式(1)
ここ、sは小数点位置、Iは量子化予定のデータ、Fは量子化予定のデータ、ro
undは丸めによる丸め演算である。式(1)の丸め演算の代わりに、切り上げ、切り下
げ、ゼロへの丸めなどの丸め演算を使用できるなど、他の丸め演算も使用できることは理
解できる。一定のデータビット幅の場合、小数点位置による量子化により得られた量子化
データにおいて、小数点以下の桁数が多いほど、量子化予定のデータの量子化精度が高く
なることが理解できる。
可能な実装では、量子化パラメータはスケーリング係数を含み得る。次の式(2)を使
用して、量子化予定のデータを量子化し、量子化後のデータIを取得できる。
=round(F/f) 式(2)
ここで、fはスケーリング係数、Iは量子化後のデータ、Fは量子化予定のデータ
、roundは丸めによって実行される丸め演算である。式(2)の切り上げの代わりに
、切り上げ、切り下げ、ゼロへの切り上げなどの他の丸め演算も使用できることは理解で
きる。データビット幅が一定の場合、さまざまなスケーリング係数を使用して、量子化後
のデータの数値範囲を調整できることは理解できる。
可能な実装では、量子化パラメータはオフセットを含み得る。次の式(3)を使用して
、量子化予定のデータを量子化し、量子化後のデータIを取得できる。
=round(F−o) 式(3)
ここで、oはオフセット、Iは量子化後のデータ、Fは量子化予定のデータ、ro
undは丸めによって実行される丸め演算である。他の丸め演算も使用できることは理解
できる。たとえば、式(3)の丸め演算の代わりに、切り上げ、切り下げ、ゼロへの丸め
などの丸め演算が使用される。データビット幅が一定の場合、異なるオフセットを使用し
て、量子化後のデータの値と量子化前のデータとの間のオフセットを調整できることは理
解できる。
可能な実装では、量子化パラメータは、小数点位置およびスケーリング係数を含み得る
。次の式(4)を使用して、量子化予定のデータを量子化し、量子化後のデータIを取
得できる。
=round(F/2xf) 式(4)
ここで、sは小数点位置、fはスケーリング係数、Iは量子化後のデータ、Fは量
子化予定のデータ、roundは丸めによって実行される丸め演算である。式(4)の丸
め演算の代わりに、切り上げ、切り下げ、ゼロへの丸めなどの丸め演算を使用するなど、
他の丸め計算方法も使用できることは理解できる。
可能な実装では、量子化パラメータは、小数点位置およびオフセットを含み得る。次の
式(5)を使用して、量子化予定のデータを量子化し、量子化予定のデータIを取得で
きる。
=round((F−o)/2) 式(5)
ここで、sは小数点位置、oはオフセット、Iは量子化後のデータ、Fは量子化予
定のデータ、roundは丸めによって実行される丸め演算である。式(5)の丸め演算
の代わりに、切り上げ、切り下げ、ゼロへの丸めなどの丸め演算を使用するなど、他の丸
め計算方法も使用できることは理解できる。
可能な実装方法では、量子化パラメータは、小数点位置、スケーリング係数、およびオ
フセットを含み得る。次の式(6)を使用して、量子化予定のデータを量子化し、量子化
後のデータIを取得できる。
=round((F−o)/2xf) 式(6)
ここで、sは小数点位置、fはスケーリング係数、oはオフセット、Iは量子化後の
データ、Fは量子化予定のデータ、roundは丸めによって実行される丸め演算であ
る。式(6)の丸め演算の代わりに、切り上げ、切り下げ、ゼロへの丸めなどの丸め演算
を使用するなど、他の丸め計算方法も使用できることは理解できる。
この実施形態では、量子化パラメータは、小数点位置、スケーリング係数、およびオフ
セットのうちの少なくとも1つを含む。量子化パラメータのさまざまな組み合わせを使用
して、量子化予定のデータを量子化すると、さまざまな精度の量子化結果を生成できる。
量子化パラメータは、要件に応じて柔軟に組み合わせて、必要に応じて使用できる。
図2−2は、本開示の一実施形態によるニューラルネットワークの量子化方法のフロー
チャートを示している。図2−2に示すように、ニューラルネットワークの量子化方法の
ステップS10には次のものが含まれる。
ステップS11:量子化予定のデータと量子化パラメータの間の対応関係を検索するこ
とにより、量子化予定の層で各タイプの量子化予定のデータに対応する量子化パラメータ
を確定する。
可能な実装方法では、量子化される各層で各タイプの量子化予定のデータに対応する量
子化パラメータは、格納されたプリセット値であり得る。ニューラルネットワークでは、
量子化予定のデータと量子化パラメータの対応関係を確立できる。対応関係には、各タイ
プの量子化予定のデータと量子化する各層の量子化パラメータの対応関係を含めることが
でき、共有アクセスのために各層に対応関係を格納できる。収納スペース。量子化予定の
データとニューラルネットワークの量子化パラメータとの間に複数の対応を確立すること
も可能であり、量子化される各層は対応の1つに対応する。各層の対応関係は、この層専
用のストレージスペースに格納することも、各層の対応関係を、各層が共有およびアクセ
スできるストレージスペースに格納することもできる。
量子化予定のデータと量子化パラメータとの間の対応は、量子化される複数のデータと
それに対応する複数の量子化パラメータとの間の対応を含み得る。例えば、量子化予定の
データと量子化パラメータとの間の対応関係Aは、量子化される2つのデータ、すなわち
、量子化予定の層1のニューロンおよび重み、ならびにニューロンの対応する小数点位置
1、スケーリング係数1、およびオフセット1の3つの量子化パラメータを含み得る。重
みは、小数点位置2とオフセット2の2つの量子化パラメータに対応する。この開示は、
量子化後のデータと量子化パラメータとの間の対応関係の特定のフォーマットを制限する
ものではない。
この実施形態では、量子化予定の層において各タイプの量子化予定のデータに対応する
量子化パラメータは、量子化予定のデータと量子化パラメータとの間の対応を検索するこ
とによって確定することができる。対応する量子化パラメータは、量子化する層ごとに事
前設定でき、対応する量子化パラメータは、量子化する層を検索した後に使用するために
、対応関係を介して格納できる。この実施形態における量子化パラメータを取得する方法
は、単純で便利である。
図2−3は、本開示の一実施形態によるニューラルネットワークの量子化方法のフロー
チャートを示している。図2−3に示すように、ニューラルネットワークの量子化方法の
ステップS10には次のものが含まれる。
ステップS12:各タイプの量子化予定のデータと対応するデータビット幅によって、
対応する量子化パラメータを計算する。
対応するデータビット幅nは、量子化予定のデータごとに事前設定できる。各タイプの
量子化予定のデータに対応する量子化パラメータは、データビット幅nおよび各タイプの
量子化予定のデータによって計算することができる。量子化予定のデータによって計算さ
れる量子化パラメータは、量子化予定のデータの特性とより一致している。
ニューラルネットワークの推論、トレーニング、および微調整の過程で、量子化予定の
データは、ニューロン、重み、およびオフセットの少なくとも1つである可能性がある。
トレーニングおよび微調整プロセスの場合、量子化予定のデータに勾配を含めることもで
きる。ニューラルネットワークの推論、トレーニング、および微調整のプロセスでは、量
子化予定のデータおよびオンラインで取得される対応するデータビット幅によって、量子
化予定のデータに対応する量子化パラメータを計算できる。
この実施形態では、対応する量子化パラメータは、各タイプの量子化予定のデータおよ
び対応するデータビット幅によって計算される。量子化されるオンラインデータに基づい
て計算された量子化パラメータは、量子化層となるニューラルネットワークで量子化され
るさまざまなデータの量子化要件をより適切に満たすことができる。
図2−4は、本開示の一実施形態によるニューラルネットワークの量子化方法を示すフ
ローチャートである。図2−4に示すように、ニューラルネットワークの量子化方法のス
テップS12には次のものが含まれる。
ステップS121:量子化パラメータにオフセットが含まれていない場合、目標データ
の最大絶対値と目標データに対応するデータビット幅によって目標データの小数点位置が
取得され、目標データは任意である量子化予定のデータの一種。
可能な実装では、量子化パラメータは複数のパラメータを含み得る。量子化パラメータ
がオフセットを含まない場合、量子化パラメータは、小数点位置およびスケーリング係数
のうちの少なくとも1つを含み得る。量子化パラメータにオフセットが含まれていない場
合、量子化予定の任意のデータを目標データとして使用できる。目標データは、ニューロ
ン、重み、オフセット、および勾配のいずれかである。
目標データには、複数の要素で構成されるデータが含まれる場合がある。目標データの
各要素で最大値と最小値を求めることができ、最大値の絶対値と最小値の絶対値から目標
データの絶対最大値を求めることができる。また、目標データの各要素の絶対値を求め、
各要素の絶対値に応じて目標データの最大絶対値を求めることも可能である。
図2−5は、本開示の一実施形態によるニューラルネットワーク量子化法の量子化パラ
メータがオフセットを含まない場合の、量子化前後のデータ対応の概略図を示す。図2−
5に示すように、Z1は目標データの絶対最大値、目標データに対応するデータビット幅
nは8、Aはデータビット幅nで目標データを量子化した後に表現できる最大値、Aは2
(2n−1−1)である。AにはZ1を含める必要があり、Z1はA/2より大きいた
め、式(7)で制限できる。
(2n−1−1)>=Z>2s−1(2n−1−1) 式(
7)
目標データの小数点位置は、目標データの最大絶対値とデータビット幅に基づいて計算
できる。たとえば、次の式(8)を使用して、量子化パラメータにオフセットが含まれて
いない場合に、目標データの小数点位置sを計算できる。
s=ceil(ln(Z/(2n−1−1))) 式(8
ここで、ceilは切り上げられ、Z1は目標データの最大絶対値、sは小数点位置、
nは目標データに対応するデータビット幅である。
この実施形態では、量子化パラメータがオフセットを含まない場合、目標データの最大
絶対値および目標データに対応するデータビット幅によって、目標データの小数点位置が
取得される。対応する小数点位置は、目標データに基づいて計算される。目標データは、
目標データ自体の特性により一致している可能性があるため、目標データの量子化精度が
高くなる。
図2−6は、本開示の一実施形態によるニューラルネットワークの量子化方法を示すフ
ローチャートである。図2−6に示すように、ニューラルネットワークの量子化方法のス
テップS12には次のものが含まれる。
ステップS122:量子化パラメータにオフセットが含まれていない場合、目標データ
と目標データに対応するデータビット幅によって、目標データの量子化後のデータの最大
値を取得する。当該目標データは任意の一種の量子化予定のデータである
ステップS123:目標データの最大絶対値と目標データの量子化データの最大値に従
って、目標データのスケーリング係数を取得する。
目標データの最大絶対値については、前述の実施形態の関連する説明を参照されたい。
式(9)は、量子化パラメータにオフセットが含まれていない場合に、目標データのス
ケーリング係数fを計算するために使用できる。
f=z/A 式(9)
ここ、Aは、量子化パラメータにオフセットが含まれていない場合の量子化後の目標デ
ータの最大値であり、式(10)を使用してAを計算できる。
A=(2^ceil(ln(Z/(2n−1−1))))(2n−1−1) 式(
10)
この実施形態では、量子化パラメータがオフセットを含まない場合、目標データの最大
絶対値および目標データに対応するデータビット幅によって、目標データに対応するスケ
ーリング係数を計算することができる。目標データに対応するスケーリング係数が計算さ
れる。これは、目標データ自体の特性とより一致する可能性があるため、目標データの量
子化精度が高くなる。
図2−7は、本開示の一実施形態によるニューラルネットワーク量子化法における量子
化パラメータがオフセットを含む場合の、量子化前後のデータ対応の概略図を示す。図2
−7に示すように、A1とA2は、目標データをnで量子化した後に表現できる最大値と
最小値、Zminは目標データ内のすべての要素の最小値、Zmaxは目標データ内のす
べての要素の最大値である。Z=(Zmax―Zmin)/2の場合、目標データはオ
フセットoに従って変換され、量子化される。
図2−8は、本開示の一実施形態によるニューラルネットワークの量子化方法を示すフ
ローチャートである。図2−8に示すように、ニューラルネットワークの量子化方法のス
テップS12には次のものが含まれる。
ステップS124:量子化パラメータがオフセットを含む場合、目標データの最大値、
目標データの最小値、および目標データに対応するデータビット幅によって、目標データ
の小数点位置を取得する。前記目標データは、任意の一種の量子化予定のデータである。
可能な実装方法では、量子化パラメータがオフセットを含む場合、量子化パラメータは
、小数点位置およびスケーリング係数のうちの少なくとも1つをさらに含み得る。図2−
7に示すように、量子化パラメータにオフセットが含まれている場合の目標データの小数
点位置sは、式(11)に従って計算できる。
s=ceil(ln(Z/(2n−1−1))) 式(11
ここで、ceilは切り上げられ、sは小数点位置、nは目標データに対応するデータ
ビット幅である。
この実施形態では、量子化パラメータがオフセットを含む場合、目標データに対応する
最大値、最小値、および目標データに対応するデータビット幅によって、目標データに対
応する小数点位置を計算することができる。対応する小数点位置は、目標データに基づい
て計算される。目標データは、目標データ自体の特性により一致している可能性があるた
め、目標データの量子化精度が高くなる。
図2−9は、本開示の一実施形態によるニューラルネットワークの量子化方法を示すフ
ローチャートである。図2−9に示すように、ニューラルネットワークの量子化方法のス
テップS12には次のものが含まれる。
ステップS125で、量子化パラメータにオフセットが含まれる場合、目標データおよ
び目標データに対応するデータビット幅によって、目標データの量子化後の最大値を取得
し、目標データは、任意の一種の量子化予定のデータである。
ステップS126dで、目標データの最大値、目標データの最小値、および目標データ
の量子化後の最大値に従って、目標データのスケーリング係数を取得する。
可能な実装方法では、量子化パラメータがオフセットを含む場合、量子化パラメータは
、小数点位置およびスケーリング係数のうちの少なくとも1つをさらに含み得る。図2−
7に示すように、量子化パラメータにオフセットが含まれている場合の目標データのスケ
ーリング係数fは、式(12)に従って計算できる。
f=z/A 式(12)
この実施形態では、量子化パラメータがオフセットを含む場合、目標データに対応する
スケーリング係数は、目標データの最大値、最小値、および目標データに対応するデータ
ビット幅によって計算することができる。目標データに対応するスケーリング係数が計算
される。これは、目標データ自体の特性とより一致する可能性があるため、目標データの
量子化精度が高くなる。
図2−10は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−10に示すように、ニューラルネットワークの量子化方法
のステップS12には次のものが含まれる。
ステップS127:目標データの最大値と最小値に従って目標データのオフセットを取
得する。目標データは、任意の一種の量子化予定のデータである。
可能な実装方法では、図2−7に示すように、量子化パラメータにオフセットが含まれ
ている場合の目標データのオフセットoは、式(13)を使用して計算できる。
o=(Zmin+Zmax)/2 式(13)
この実施形態では、量子化パラメータがオフセットを含む場合、目標データに対応する
オフセットは、目標データの最大値、最小値、および目標データに対応するデータビット
幅によって計算することができる。目標データに対応するオフセットが計算される。これ
は、目標データ自体の特性とより一致する可能性があるため、目標データの量子化精度が
高くなる。
図2−11は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−11に示すように、ニューラルネットワークの量子化方法
にはさらに次のものが含まれる。
ステップS30:目標データおよび目標データに対応する量子化データに従って、目標
データの量子化誤差を確定する。ここで、目標データは、量子化予定の任意の種類のデー
タである。
目標データの量子化誤差は、目標データに対応する量子化データと目標データとの間の
誤差によって確定することができる。標準偏差計算法、二乗平均平方根誤差計算法などの
設定誤差計算法を使用して、目標データの量子化誤差を計算できる。
量子化パラメータに従って目標データに対応する量子化データを逆量子化して逆量子化
データを取得し、逆量子化データと目標データ間の誤差に従って目標データの量子化誤差
を確定することも可能である。
Figure 2021179966
Figure 2021179966
Figure 2021179966
Figure 2021179966
Figure 2021179966
Figure 2021179966
Figure 2021179966
量子化間隔に関連する方法を計算することができ、例えば、目標データと目標データに
対応する逆量子化データとの間の誤差は、式(21)によって計算することができる。
diffbit=ln(A*2−1*p/Σ|F|) 式(21)
ここ、pは目標データの要素数、sは目標データの小数点位置である。Aの値は、量子
化パラメータに従って確定できる。量子化パラメータに小数点位置sが含まれる場合、A
=2、量子化パラメータに小数点位置sとスケーリング係数fが含まれる場合、A=2
xfである。
Figure 2021179966
Figure 2021179966
ステップS40:量子化誤差および誤差しきい値に従って、目標データに対応するデー
タビット幅を調整して、目標データに対応する調整ビット幅を取得する。
誤差しきい値は経験値に基づいて確定でき、誤差しきい値は量子化誤差の期待値を示す
ために使用できる。量子化誤差が誤差しきい値より大きいか小さい場合、ターゲット番号
に対応するデータビット幅を調整して、目標データに対応する調整ビット幅を取得するこ
とができる。データビット幅をより長いビット幅またはより短いビット幅に調整して、量
子化精度を増減させることができる。
誤差しきい値は、最大許容誤差に応じて確定できる。量子化誤差が誤差しきい値よりも
大きい場合は、量子化精度が期待に応えられないことを示し、データビット幅をより長い
ビット幅に調整する必要がある。量子化精度が高いほど、誤差しきい値を小さくすること
もできる。量子化誤差が誤差しきい値よりも小さい場合は、量子化精度が高くなり、ニュ
ーラルネットワークの運用効率に影響が出ます。データビット幅を適切に調整して短くす
ることができる。のビット幅は、量子化精度を適切に低下させ、ニューラルネットワーク
の運用効率を向上させるためのものである。
データビット幅は、固定ビット長に応じて調整できる。または、データビット幅は、量
子化誤差と誤差しきい値の差に応じて、可変調整ステップ長さによって調整できる。この
開示はこれを制限するものではない。
ステップS50では、目標データに対応するデータビット幅が調整ビット幅に更新され
、対応する調整量子化パラメータが目標データおよび調整ビット幅に従って計算されるの
で、ニューラルネットワークは調整に従って調整することができる。量子化パラメータが
量子化される。
調整ビット幅を確定した後、目標データに対応するデータビット幅を調整ビット幅に更
新することができる。たとえば、更新前の目標データのデータビット幅が8ビットで、調
整後のビット幅が12ビットの場合、更新後の目標データに対応するデータビット幅は1
2ビットである。目標データに対応する調整済み量子化パラメータは、調整ビット幅と目
標データに基づいて計算できる。目標データは、目標データに対応する調整された量子化
パラメータに従って再量子化され、より高いまたはより低い量子化精度で量子化後のデー
タを取得できるため、量子化予定の層は、量子化精度と処理効率のバランスを実現する。
ニューラルネットワークの推論、トレーニング、微調整の過程で、層間で量子化予定の
データには一定の相関関係があると見なすことができる。たとえば、各層で量子化予定の
データの平均値の差が設定された平均しきい値よりも小さく、各層で量子化予定のデータ
の最大値の差も設定された差のしきい値よりも小さい場合、量子化予定の層の調整された
量子化パラメータは、量子化予定の層の1つ以上の後続の層で量子化予定のデータを量子
化するために、1つ以上の後続の層の調整された量子化パラメータとして使用され得る。
ニューラルネットワークのトレーニングおよび微調整プロセスでは、量子化予定の層のカ
レント反復で取得された調整済み量子化パラメータを使用して、後続の反復で量子化予定
の層を量子化することもできる。
可能な実装方法では、この方法はさらに以下を含む。
量子化予定の層の量子化パラメータは、量子化予定の層の後の1つまたは複数の層で使
用される。
ニューラルネットワークは、調整された量子化パラメータに従って量子化を実行する。
これには、量子化予定の層でのみ調整された量子化パラメータを使用して量子化予定のデ
ータを再量子化し、量子化予定の層の操作で再取得された量子化後のデータを使用するこ
とが含まれる。また、調整された量子化パラメータを使用して、量子化予定の層で量子化
予定のデータを再量子化しないこと、および調整された量子化パラメータを使用して、量
子化予定の層の1つまたは複数の後続の層で量子化すること、および/または後続の反復
で量子化予定の層でそれを使用することも含まれる。量子化の量子化パラメータを調整す
る。また、調整された量子化パラメータを使用して、量子化予定の層で再量子化すること
、および取得された量子化データを量子化予定の層の操作で使用すること、および調整さ
れた量子化パラメータを使用して、量子化予定の層に続く1つまたは複数の層で量子化す
ること、および/または、後続の反復での量子化のために量子化予定の層で調整された量
子化パラメータを使用する。この開示はこれを制限するものではない。
この実施形態では、目標データの量子化誤差は、目標データおよび目標データに対応す
る量子化データによって確定され、目標データは、量子化予定の任意の種類のデータであ
り、量子化誤差および誤差しきい値は、目標データに対応するデータビット幅に調整され
る。目標データに対応する調整ビット幅を取得する。目標データに対応するデータビット
幅を調整ビット幅に更新し、目標データと調整ビット幅に従って対応する調整量子化パラ
メータを計算し、ニューラルネットワークが調整量子化パラメータに従って量子化を実行
するようにする。目標データと量子化データ間の誤差に応じてデータビット幅を調整し、
調整済みデータビット幅に応じて調整済み量子化パラメータを計算する。さまざまな誤差
しきい値を設定することにより、さまざまな調整済み量子化パラメータを取得して、量子
化精度の向上や操作効率の向上など、さまざまな量子化要件を実現できる。目標データお
よび目標データの量子化データに従って計算された調整済み量子化パラメータも、目標デ
ータ自体のデータ特性とより一致し、目標データ自体のニーズにより一致する量子化結果
を達成し、より優れた量子化精度と処理効率を実現できる。残高。
図2−12は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−12に示すように、ニューラルネットワークの量子化方法
のステップS40には次のものが含まれる。
ステップS41:量子化誤差が第1の誤差しきい値よりも大きい場合、目標データに対
応するデータビット幅を増やして、目標データに対応する調整ビット幅を取得する。
第1の誤差しきい値は、受け入れることができる最大量子化誤差によって確定すること
ができる。量子化誤差は、第1の誤差しきい値と比較できる。量子化誤差が第1の誤差し
きい値よりも大きい場合、量子化誤差はすでに許容できないと見なすことができる。量子
化精度を向上させるために、目標データに対応するデータビット幅を増やすことにより、
目標データの量子化精度を向上させることができる。
調整ビット幅を取得するために、固定調整ステップ長さによって、目標データに対応す
るデータビット幅を増やすことができる。固定調整ステップ長さサイズはNビットにする
ことができ、Nは正の整数である。データビット幅を調整するたびに、Nビットを増やす
ことができる。各増加後のデータビット幅=元のデータビット幅+Nビット。
可変調整ステップ長さに応じて、目標データに対応するデータビット幅を大きくして、
調整ビット幅を得ることができる。例えば、量子化誤差と誤差しきい値の差が第1しきい
値より大きい場合、データビット幅は調整ステップ長さM1に従って調整でき、量子化誤
差と誤差しきい値の差が第1しきい値より小さい場合、データは以下に従って調整するこ
とができる。ステップ長さM2は、データビット幅を調整する。第1のしきい値は第2の
しきい値よりも大きく、M1はM2よりも大きくなる。可変調整ステップ長さは、要件に
応じて確定できる。この開示は、データビット幅の調整ステップ長さ、および調整ステッ
プ長さが可変であるかどうかを制限しない。
調整された量子化パラメータは、調整ビット幅に従って目標データを計算することによ
って取得できる。調整された量子化パラメータを使用して目標データを再量子化すること
によって得られる量子化データは、調整前に量子化パラメータを使用して得られる量子化
データよりも高い量子化精度を持っている。
図2−13は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−13に示すように、ニューラルネットワークの量子化方法
にはさらに次のものが含まれる。
ステップS42:調整ビット幅と目標データに従って、目標データの調整済み量子化誤
差を計算する。
ステップS43:調整ビット幅と目標データに従って計算された調整済の量子誤差が第
1の誤差しきい値以下になるまで、調整済の量子化誤差と第1の誤差しきい値に従って調
整ビット幅を増やし続ける。誤差しきい値。
量子化誤差に応じて目標データに対応するデータビット幅を増やす場合は、ビット幅を
1回調整して調整ビット幅を取得し、調整ビット幅に応じて調整量子化パラメータを計算
し、調整済み量子化パラメータに応じて目標データを量子化して調整済み量子化データを
取得する。次に、調整済み量子化データと目標データに従って、目標データの調整済み量
子化誤差を計算する。調整済み量子化誤差は、第1の誤差しきい値よりも大きい場合があ
る。つまり、調整済みデータのビット幅が調整目的を満たさない場合がある。調整済の量
子化誤差がまだ第1の誤差しきい値よりも大きい場合は、調整後のデータビット幅を調整
し続けることができる。つまり、最終的な調整ビット幅と目標データが取得されるまで、
目標データに対応するデータビット幅を複数回増やする。の調整済み量子化誤差は、第1
の誤差しきい値よりも小さくなっている。
複数回増やす調整ステップ長さは、固定調整ステップ長さまたは可変調整ステップ長さ
にすることができる。たとえば、最終データビット幅=元のデータビット幅+A*Nビッ
ト。ここで、Nは各増加の固定調整ステップ長さであり、Aはデータビット幅が増加した
回数である。最終データビット幅=元データビット幅+M1+M2+...+Mm、ここ
でM1、M2...Mmは、毎回増やす可変調整ステップ長さである。
この実施形態では、量子化誤差が第1の誤差しきい値よりも大きい場合、目標データに
対応するデータビット幅を大きくして、目標データに対応する調整ビット幅を得る。第1
の誤差しきい値を設定し、ステップ長さを調整することでデータビット幅を増やすことが
できるため、調整後のデータビット幅は量子化要件を満たすことができる。1つの調整で
調整要件を満たせない場合は、データビット幅を複数回調整できる。第1誤差しきい値と
調整ステップ長さの設定により、量子化要件に応じて量子化パラメータを柔軟に調整し、
さまざまな量子化要件に対応できるため、独自のデータ特性に応じて量子化精度を適応的
に調整できる。
図2−14は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−14に示すように、ニューラルネットワークの量子化方法
のステップS40には次のものが含まれる。
ステップS44:量子化誤差が第2の誤差しきい値よりも小さい場合、目標データに対
応するデータビット幅を減らし、第2の誤差しきい値が第1の誤差しきい値よりも小さい
第2の誤差しきい値は、許容可能な量子化誤差とニューラルネットワークの予想される
動作効率に従って確定できる。量子化誤差は、第2の誤差しきい値と比較できる。量子化
誤差が第2の誤差しきい値よりも小さい場合、量子化誤差は予想を超えていると見なすこ
とができるが、動作効率が低すぎて許容できない。量子化精度を下げてニューラルネット
ワークの運用効率を向上させ、目標データに対応するデータビット幅を小さくすることで
目標データの量子化精度を下げることができる。
調整ビット幅を取得するために、固定調整ステップ長さによって、目標データに対応す
るデータビット幅を減らすことができる。固定調整ステップ長さサイズはNビットにする
ことができ、Nは正の整数である。データビット幅を調整するたびに、Nビットを減らす
ことができる。増加したデータビット幅=元のデータビット幅−Nビット。
可変調整ステップ長さに応じて、目標データに対応するデータビット幅を縮小して、調
整ビット幅を得ることができる。例えば、量子化誤差と誤差しきい値の差が第1しきい値
より大きい場合、データビット幅は調整ステップ長さM1に従って調整でき、量子化誤差
と誤差しきい値の差が第1しきい値より小さい場合、データは以下に従って調整すること
ができる。ステップ長さM2は、データビット幅を調整する。第1のしきい値は第2のし
きい値よりも大きく、M1はM2よりも大きくなる。可変調整ステップ長さは、要件に応
じて確定できる。この開示は、データビット幅の調整ステップ長さ、および調整ステップ
長さが可変であるかどうかを制限しない。
調整ビット幅に応じて目標データを計算し、調整された量子化パラメータを取得できる
。調整された量子化パラメータで目標データを再量子化した後に得られた量子化データは
、調整前の量子化パラメータを使用して得られた量子化データよりも量子化精度が高くな
る。低。
図2−15は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−15に示すように、ニューラルネットワークの量子化方法
にはさらに次のものが含まれる。
ステップS45:調整ビット幅と目標データに従って、目標データの調整済み量子化誤
差を計算する。
ステップS46:調整ビット幅と目標データに従って計算して得た調整済み量子化誤差
が第2の誤差しきい値以上になるまで、調整済の量子化誤差と第2の誤差しきい値に従っ
て調整ビット幅を減らし続ける。
量子化誤差に応じて目標データに対応するデータビット幅を増やす場合は、ビット幅を
1回調整して調整ビット幅を取得し、調整ビット幅に応じて調整量子化パラメータを計算
し、調整済み量子化パラメータに応じて目標データを量子化して調整済み量子化データを
取得する。次に、調整済み量子化データと目標データに従って、目標データの調整済み量
子化誤差を計算する。調整済み量子化誤差は、第2の誤差しきい値よりも小さい場合があ
る。つまり、調整済みデータのビット幅が調整目的を満たさない場合がある。調整済の量
子化誤差がまだ第2の誤差しきい値よりも小さい場合は、調整後のデータビット幅を調整
し続けることができる。つまり、最終的な調整ビット幅と目標データが取得されるまで、
目標データに対応するデータビット幅を複数回減らする。の調整済み量子化誤差は、第2
の誤差しきい値よりも大きくなっている。
複数回短縮される調整ステップ長さは、固定調整ステップ長さまたは可変調整ステップ
長さであり得る。たとえば、最終データビット幅=元のデータビット幅−A*Nビット。
ここで、Nは各増加の固定調整ステップ長さであり、Aはデータビット幅が増加した回数
である。最終データビット幅=元のデータビット幅−M1−M2−...−Mm、ここで
M1、M2...Mmは、毎回減少する可変調整ステップ長さである。
この実施形態では、量子化誤差が第2の誤差しきい値よりも小さい場合、目標データに
対応するデータビット幅を縮小して、目標データに対応する調整ビット幅を得る。第2の
誤差しきい値を設定し、ステップ長さを調整することでデータビット幅を減らすことがで
きるため、調整後のデータビット幅は量子化要件を満たすことができる。1つの調整で調
整要件を満たせない場合は、データビット幅を複数回調整できる。第2の誤差しきい値と
調整ステップ長さの設定により、量子化要件に応じて量子化パラメータを柔軟かつ適応的
に調整し、さまざまな量子化要件を満たすことができるため、量子化精度を調整でき、量
子化精度とニューラルネットワークの運用効率のバランスが取れる。
可能な実装方法では、この方法はさらに以下を含む。
量子化誤差が第1の誤差しきい値より大きい場合、目標データに対応するデータビット
幅が増加し、量子化誤差が第2の誤差しきい値よりも小さい場合、目標データに対応する
データビット幅が減少して、目標データに対応する調整ビット幅。
2つの誤差しきい値を同時に設定することもできる。第1の誤差しきい値は、量子化精
度が低すぎることを示すために使用され、データビット幅のビット数が増える可能性があ
る。第2の誤差しきい値は、量子化精度が高すぎることを示すために使用され、データビ
ット幅を減らす可能性がある。桁。第1の誤差しきい値が第2の誤差しきい値よりも大き
い目標データの量子化誤差を2つの誤差しきい値と同時に比較できる。量子化誤差が第1
の誤差しきい値よりも大きい場合、データビット幅のビット数が増やす。量子化誤差が2
番目よりも小さい場合誤差しきい値を使用する場合は、データビット幅のビット数を減ら
してください。量子化誤差が第1の誤差しきい値と第2の誤差しきい値の間にある場合、
データビット幅は変更されないままになる。
この実施形態では、量子化誤差を第1の誤差しきい値および第2の誤差しきい値と同時
に比較することにより、比較結果に応じてデータビット幅を増減することができ、第1の
誤差しきい値および第2の誤差しきい値を使用してより柔軟な調整を行うことができる。
データビット幅。これにより、データビット幅の調整結果が量子化要件にさらに一致する
ようになる。
図2−16は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−16に示すように、ニューラルネットワーク演算の微調整
フェーズおよび/またはトレーニングフェーズでは、この方法にはさらに次のものが含ま
れる。
ステップS60:カレント反復および履歴反復における目標データのデータ変動範囲を
取得する。履歴反復は、カレント反復の前の反復である。
ニューラルネットワーク演算の微調整フェーズおよび/またはトレーニングフェーズに
は、複数の反復が含まれる。ニューラルネットワークで量子化される各層は、1回の順方
向演算と1回の逆方向演算を実行し、量子化された層の重みを更新した後、1回の反復が
完了する。複数の反復では、量子化予定の層の目標データおよび/または目標データに対
応する量子化データを使用して、異なる反復の目標データおよび/または量子化予定のデ
ータが同じ量子化パラメータを使用できるかどうかを測定できる。量子化。カレント反復
および履歴反復における目標データのデータ変動範囲が小さい場合、たとえば、設定され
た範囲変更しきい値よりも小さい場合、同じ量子化パラメータを、より小さなデータ変動
範囲で複数の反復で使用できる。
目標データに対応する量子化パラメータは、事前に格納された量子化パラメータを抽出
することで確定できる。異なる反復で目標データを量子化する場合、各反復で目標データ
に対応する量子化パラメータを抽出する必要がある。複数の反復の目標データおよび/ま
たは目標データに対応する量子化データのデータ変動範囲が小さい場合、データ変動が小
さい複数の反復で使用されたものと同じ量子化パラメータを一時的に格納でき、各反復が
進行中である。量子化中に、一時的に格納された量子化パラメータを、各反復で量子化パ
ラメータを抽出する代わりに、量子化操作に使用できる。
量子化パラメータは、目標データとデータビット幅によって計算することもできる。目
標データが異なる反復で量子化される場合、量子化パラメータは各反復で個別に計算する
必要がある。複数の反復の目標データおよび/または目標データに対応する量子化データ
のデータ変動が小さい場合、同じ量子化パラメータをデータの変動が小さい複数の反復で
使用でき、各反復を直接使用できる。1番目の反復で計算された量子化パラメータは、各
反復で計算されない。
目標データが重みの場合、各反復間の重みは常に更新されることは理解できる。複数の
反復の重みのデータ変化が小さい場合、または複数の反復の重みが量子化予定のデータに
対応する場合データ変更の範囲は小さく、同じ量子化パラメータを使用して、複数の反復
で重みを量子化できる。
ステップS70:目標データのデータ変動範囲によって目標データに対応する目標反復
間隔を確定し、ニューラルネットワークが目標反復間隔によって目標データの量子化パラ
メータを更新するようにする。目標反復間隔は、少なくとも1回の反復を含め、目標デー
タは任意の一種の量子化予定のデータである。
目標反復間隔は、目標データのデータ変動範囲によって確定できる。目標反復間隔には
、少なくとも1つの反復が含まれる。同じ量子化パラメータを、目標反復間隔内の各反復
で使用できる。つまり、目標データは、目標反復間隔内の各反復で更新されない。量子化
パラメータ。ニューラルネットワークは、目標反復間隔内の反復を含む、目標反復間隔に
よって目標データの量子化パラメータを更新し、プリセット量子化パラメータを取得した
り、量子化パラメータを計算したりしない。つまり、目標反復間隔内の反復は、量子化パ
ラメータを更新しない。目標反復間隔外の反復では、プリセット量子化パラメータが取得
または計算される。つまり、量子化パラメータは、目標反復間隔外の反復で更新される。
目標データのデータ変動範囲または複数の反復間の目標データの量子化データが小さい
ほど、確定された目標反復間隔に含まれる反復が多くなることが理解できる。計算された
データ変動範囲によって、プリセットデータ変動範囲と反復間隔との対応関係を検索し、
計算されたデータ変動範囲に対応する目標反復間隔を確定することができる。データ変動
範囲と反復間隔の間の対応関係は、要件に応じて事前設定できる。計算されたデータ変動
範囲によって設定された計算方法を使用して、目標反復間隔を計算することもできる。本
開示は、データ変動範囲の計算方法および目標反復間隔の取得方法を制限するものではな
い。
この実施形態では、ニューラルネットワーク動作の微調整段階および/またはトレーニ
ング段階において、カレント反復および履歴反復における目標データのデータ変動範囲が
得られ、目標データに対応する標的反復が、目標データのデータ変動範囲によって確定さ
れる。間隔。これにより、ニューラルネットワークは目標反復間隔によって目標データの
量子化パラメータを更新する。目標反復間隔は、複数反復の目標データまたは目標データ
に対応する量子化データのデータ変動範囲によって確定することができる。ニューラルネ
ットワークは、目標反復間隔によって量子化パラメータを更新するかどうかを確定できる
。目標反復間隔に含まれる複数の反復のデータ変動範囲が小さいため、量子化の精度を確
保するために、目標反復間隔内の反復で量子化パラメータが更新されない。ただし、量子
化パラメータは、目標反復間隔内の複数の反復に対して更新されないため、量子化パラメ
ータの抽出または計算の数が減り、ニューラルネットワークの計算効率が向上する。
図2−17は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−17に示すように、ニューラルネットワークの量子化方法
にはさらに次のものが含まれる。
ステップS80:カレント反復における目標データのデータビット幅によって、目標デ
ータの目標反復間隔における反復に対応するデータビット幅を確定し、ニューラルネット
ワークが目標データの目標反復間隔内の反復に対応するデータビット幅によって、量子化
パラメータを決める。
本開示の前述の実施形態に記載されるように、目標データの量子化パラメータは、目標
データに対応するデータビット幅によって事前設定または計算することができる。量子化
される異なる層の目標データに対応するデータビット幅、または異なる反復で量子化され
る同じ層の目標データに対応するデータビット幅は、本開示の上記実施形態の方法に従っ
て適応的に調整することができる。
目標データのデータビット幅が適応的に調整できず、プリセットデータビット幅である
場合、目標反復間隔での目標データの反復に対応するデータビットは、カレント反復での
目標データのプリセットデータビット幅によって確定できる。幅。目標反復間隔内の各反
復は、独自のプリセット値を使用しない場合がある。
目標データのデータビット幅を適応的に調整できる場合、目標反復間隔内の目標データ
の反復に対応するデータビット幅は、カレント反復における目標データに対応するデータ
ビット幅によって確定することができる。データビット幅を適応的に調整できる場合、デ
ータビット幅は1回調整することも、複数回調整することもできる。カレント反復での適
応調整後の目標データのデータビット幅は、目標反復間隔内の各反復に対応するデータビ
ット幅と見なすことができ、データビット幅は、目標反復間隔内の各反復に対して適応調
整されなくなる(更新)。カレント反復における目標データは、適応調整後のデータビッ
ト幅、または適応調整前のデータビット幅を使用することができ、これは、本開示におい
て限定されない。
目標反復間隔以外の反復では、目標データのデータ変動範囲が設定条件を満たさないた
め、本開示の上記の方法に従ってデータビット幅を適応的に調整して、カレント反復の目
標データにより一致するデータビット幅を得ることができる。本開示における目標反復間
隔の計算方法を使用して、新しい目標反復間隔を計算および使用することも可能であり、
それにより、目標反復間隔外の反復の量子化精度を保証し、ニューラルネットワークの動
作効率を改善する。
目標反復間隔内の各反復のデータビット幅は同じであり、各反復は、同じデータビット
幅によって対応する量子化パラメータを計算できる。量子化パラメータは、小数点位置、
スケーリング係数、およびオフセットのうちの少なくとも1つを含み得る。量子化パラメ
ータは、目標反復間隔内の各反復で同じデータビット幅によって個別に計算できる。量子
化パラメータに小数点位置、スケーリング係数、およびオフセットが含まれる場合、目標
反復間隔内の各反復は、同じデータビット幅を使用して、対応する小数点位置、スケーリ
ング係数、およびオフセットを計算できる。
カレント反復のデータビット幅によって、目標反復間隔内の各反復のデータビット幅を
確定する一方で、目標反復間隔内の各反復の対応する量子化パラメータは、カレント反復
の量子化パラメータに従って確定することができる。目標反復間隔内の各反復の量子化パ
ラメータは、同じデータビット幅に基づいて再度計算されることはない。これにより、ニ
ューラルネットワークの計算効率をさらに向上させることができる。目標反復間隔内の各
反復の対応する量子化パラメータは、カレント反復の量子化パラメータのすべてまたは一
部に従って確定できる。カレント反復の部分量子化パラメータに従って、目標反復間隔内
の各反復の対応する量子化パラメータを確定する場合、残りの量子化パラメータは、目標
反復間隔内の各反復に対して計算する必要がある。
たとえば、量子化パラメータには、小数点位置、スケーリング係数、およびオフセット
が含まれる。目標反復間隔内の各反復のデータビット幅と小数点位置は、カレント反復の
データビット幅と小数点位置によって確定できる。目標反復間隔内の各反復のスケーリン
グ係数とオフセットは、同じデータビット幅に基づいて計算する必要がある。また、カレ
ント反復のデータビット幅、小数点位置、スケーリング係数、およびオフセットに従って
、目標反復間隔内の各反復のデータビット幅、小数点位置、スケーリング係数、およびオ
フセットを確定することもできる。各量子化パラメータを計算する必要はない。
この実施形態では、カレント反復における目標データに対応するデータビット幅によっ
て、目標反復間隔における目標データの反復に対応するデータビット幅が確定され、その
結果、ニューラルネットワークは、目標反復間隔における目標データの反復に対応する。
データビット幅が量子化パラメータを確定する。目標反復間隔内の各反復のデータビット
幅は、カレント反復のデータビット幅によって確定される。目標反復間隔内の各反復の目
標データのデータ変動範囲は設定された条件を満たすため、同じデータビット幅を使用し
て計算される。量子化パラメータは、目標反復間隔内の各反復の量子化精度を保証できる
。目標反復間隔内の各反復は同じデータビット幅を使用する。これにより、ニューラルネ
ットワークの計算効率も向上する。量子化後のニューラルネットワークの計算結果の精度
とニューラルネットワークの計算効率のバランスが取れている。
図2−18は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−18に示すように、ニューラルネットワークの量子化方法
にはさらに次のものが含まれる。
ステップS90:カレント反復に対応する目標データの小数点位置によって、目標反復
間隔での目標データの反復に対応する小数点位置を確定する。
量子化パラメータでは、スケーリング係数とオフセットに比べて、異なる小数点位置が
同じ目標データの量子化結果に大きな影響を与える。目標反復間隔内の反復に対応する小
数点位置は、カレント反復の目標データに対応する小数点位置によって確定できる。デー
タビット幅を適応的に調整できない場合は、カレント反復のプリセット小数点位置の目標
データを、目標反復間隔の目標データの各反復に対応する小数点位置として設定するか、
プリセット小数点位置によってカレント反復の目標データを設定できる。データビット幅
から計算された小数点位置は、目標反復間隔内の目標データの各反復に対応する小数点位
置として使用される。データビット幅を適応的に調整できる場合、カレント反復における
目標データの調整された小数点位置を、目標反復間隔における目標データの各反復に対応
する小数点位置として使用できる。
カレント反復に対応する目標データの小数点位置によって、目標反復間隔内の反復に対
応する目標データの小数点位置を確定する一方で、目標データは、カレント反復に対応す
るスケーリング係数に従って確定することもできる。目標反復間隔内の目標データの反復
に対応するスケーリング係数、および/または目標反復間隔内の目標データの反復に対応
するオフセットは、カレント反復の目標データに対応するオフセットに従って確定される
。シフト。
カレント反復に対応する目標データの小数点位置によって、目標反復間隔内の反復に対
応する目標データの小数点位置を確定する一方で、カレント反復の目標データに対応する
データビット幅も確定することができる。目標反復間隔内の目標データの反復に対応する
データビット幅を確定する。ここで、カレント反復の目標データに対応するデータビット
幅は、カレント反復でプリセットされたデータビット幅または適応調整後のデータである
可能性がある。ビット幅。
この実施形態では、カレント反復に対応する目標データの小数点位置に従って、目標反
復間隔内の反復に対応する目標データの小数点位置が確定される。目標反復間隔内の各反
復の小数点位置は、カレント反復の小数点位置に応じて確定される。目標反復間隔内の各
反復の目標データのデータ変動範囲は設定された条件を満たすため、同じ小数点位置を使
用して目標反復を確保できる。間隔内の各反復の量子化精度。目標反復間隔内の各反復で
同じ小数点位置を使用すると、ニューラルネットワークの計算効率も向上する。量子化後
のニューラルネットワークの計算結果の精度とニューラルネットワークの計算効率のバラ
ンスが取れている。
図2−19は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−19に示すように、ニューラルネットワークの量子化方法
のステップS60には次のものが含まれる。
ステップS61:目標データのカレント反復における小数点位置、および履歴反復間隔
によって確定されたカレント反復に対応する履歴反復の小数点位置によって、各反復間隔
に対応する目標データの小数点位置のスライディング平均値を計算する。
ステップS62:目標データのカレント反復における小数点位置の第1のスライディン
グ平均値と、1つ前の反復間隔における対応する反復に対応する小数点位置の第2のスラ
イディング平均値に従って、第1のデータ変動範囲を取得する。
ステップS70には以下が含まれる。
ステップS71:第1のデータ変動範囲によって目標データに対応する目標反復間隔を
確定し、ニューラルネットワークが目標反復間隔によって目標データの量子化パラメータ
を更新するようにする。
可能な実装方法では、履歴反復間隔によって確定されたカレント反復に対応する履歴反
復は、目標反復間隔を計算するための履歴反復であり得る。カレント反復と対応する目標
反復間隔の間の対応には、次のものが含まれる。
目標反復間隔はカレント反復からカウントでき、目標反復間隔は、カレント反復に対応
する目標反復間隔が終了した後の次の反復で再計算できる。たとえば、カレント反復は1
00反復、目標反復間隔は3、目標反復間隔内の反復には、第100反復、第101反復
、および第102反復が含まれる。第103反復は、第103反復に対応する目標反復間
隔を計算できる。および103を新しい計算として使用して、目標反復間隔内で1番目の
反復を取得する。このとき、カレント反復が第103反復の場合、履歴反復間隔によって
確定されたカレント反復に対応する履歴反復は100反復である。
目標反復間隔は、カレント反復の次の反復からカウントでき、目標反復間隔は、目標反
復間隔内の最後の反復から再計算できる。たとえば、カレント反復は100反復、目標反
復間隔は3、目標反復間隔内の反復には、第101反復、第102反復、および第103
反復が含まれる。第103反復は、第103反復に対応する目標反復間隔を計算できる。
および104を新しい計算として使用して、目標反復間隔内で1番目の反復を取得する。
このとき、カレント反復が第103反復の場合、履歴反復間隔によって確定されたカレン
ト反復に対応する履歴反復は100反復である。
目標反復間隔は、カレント反復の次の反復からカウントでき、目標反復間隔は、目標反
復間隔の終了後の次の反復で再計算できる。たとえば、カレント反復は100反復、目標
反復間隔は3、目標反復間隔内の反復には、第101反復、第102反復、および第10
3反復が含まれる。第104反復に対応する目標反復間隔は、第104反復で計算できる
。および105を新しい計算として使用して、目標反復間隔内の1番目の反復を取得する
。このとき、カレント反復が第104反復の場合、履歴反復間隔によって確定されたカレ
ント反復に対応する履歴反復は100反復である。
カレント反復と目標反復間隔との間の他の対応は、要件に従って確定することができる
。例えば、目標反復間隔は、カレント反復後のN番目の反復から数えることができ、Nは
1より大きいが、これは本開示に限定されない。
計算された目標データは、カレント反復の小数点位置での目標データの第1のスライデ
ィング平均値、および前の反復間隔の小数点位置での目標データを含む、各反復間隔の小
数点位置のスライディング平均値に対応することは理解できる。位置の第2のスライディ
ング平均値。式(24)を使用して、カレント反復の対応する小数点位置の第1のスライ
ディング平均値m(t)を計算できる。
(t)←αxs(t)+(1−α)m(t−1) 式(2
4)
ここで、tはカレント反復、t−1は前の反復間隔によって確定された履歴反復、m
t−1)は、前の反復間隔によって確定された履歴反復の第2のスライディング平均値s
(t)はカレント反復の小数点位置であり、αは最初のパラメータである。最初のパラメ
ータはハイパーパラメータである可能性がある。
この実施形態では、カレント反復における目標データの小数点位置、および履歴反復間
隔によって確定されたカレント反復に対応する履歴反復の小数点位置に従って、各反復間
隔に対応する目標データの小数点位置のスライディング平均値が計算される。カレント反
復の小数点位置での目標データの第1のスライディング平均値、および前の反復間隔の反
復に対応する小数点位置の第2のスライディング平均値に従って、第1のデータ変動範囲
が取得される。第1のデータ変動範囲によって、目標データに対応する目標反復間隔が確
定され、その結果、ニューラルネットワークは、目標反復間隔によって、目標データの量
子化パラメータを更新する。第1のデータ変動範囲を使用して小数点位置の変化傾向を測
定できるため、目標反復間隔は目標データ小数点位置の変化傾向に従うことができ、計算
された目標反復間隔は目標データ小数点位置に基づくことができる。変化傾向は変化する
。量子化パラメータは目標反復間隔によって確定されるため、量子化パラメータに基づく
量子化によって得られる量子化データは、目標データの小数点位置の変化傾向により一致
し、量子化精度を確保しながらニューラルネットワークの運用効率を向上させることがで
きる。
図2−20は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−20に示すように、ニューラルネットワークの量子化方法
のステップS62には次のものが含まれる。
ステップS621:第1のスライディング平均値と第2のスライディング平均値の差を
計算する。
ステップS622:第1のデータ変動範囲として差の絶対値を確定する。
第1のデータ変動範囲diffupdate1は、式(25)を使用して計算できる。
diffupdate1=|m(t)−m(t−1)|=α|s(t)−m(t
−1) 式(25)
I=β/diffupdate1−γ 式(26)
ここで、βは第2パラメータであり、γは第3パラメータである。第2パラメータと第
3パラメータはハイパーパラメータの場合がある。
第1のデータ変動範囲を使用して、小数点位置の変化傾向を測定できることは理解でき
る。第1のデータ変動範囲が大きいほど、量子化予定のデータの数値範囲の変化が大きく
なる。量子化パラメータを更新する場合は、より短い目標反復間隔が必要である。私。
この実施形態では、第1のスライディング平均値と第2のスライディング平均値との間
の差が計算され、差値の絶対値が第1のデータ変動範囲として確定される。スライディン
グ平均値の差に応じて、正確な第1のデータ変動範囲を取得できる。
図2−21は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−21に示すように、ニューラルネットワークの量子化方法
にはさらに次のものが含まれる。
ステップS63:カレント反復において目標データと目標データに対応する量子化デー
タに従って、第2のデータ変動範囲を取得する。
ステップS70には以下が含まれる。
ステップS72で、目標データの第1のデータ変動範囲と第2のデータ変動範囲によっ
て、目標データに対応する目標反復間隔を確定し、ニューラルネットワークが目標反復間
隔によって目標データの量子化パラメータを更新するようにする。
第2のデータ変動範囲は、カレント反復における目標データと目標データに対応する量
子化データに従って取得できる。カレント反復における目標データおよび目標データに対
応する逆量子化データによって、第2のデータ変動範囲を取得することも可能である。
同様に、目標データとカレント反復の目標データに対応する逆量子化データとの間の第
2のデータ変動振幅diffbitは、式(23)に従って計算できる。他の誤差計算方
法を使用して、目標データと逆量子化データの間の第2のデータ変動範囲diffbit
を計算することもできる。この開示はこれを制限するものではない。
diffbit=ln((Σ|Z (n)|−Σ|Z|)/Σ|Z|+1)
式(23)
ここで、zは目標データであり、Z (n)は目標データに対応する逆量子化データ
である。第2のデータ変動範囲を使用して、目標データに対応するデータビット幅の変化
傾向を測定できることは理解できる.第2のデータ変動範囲が大きいほど、目標データが
対応するデータビット幅を更新する必要があり、必要な間隔が短くなる。第2のデータが
更新される場合、第2のデータの変更が大きいほど、必要な目標反復間隔は短くなる。
この実施形態では、第2のデータ変動範囲は、カレント反復における目標データおよび
目標データに対応する量子化後のデータに従って得られる。目標データの第1のデータ変
動範囲と第2のデータ変動範囲によって、目標データに対応する目標反復間隔を確定する
。これにより、ニューラルネットワークは、目標反復間隔によって目標データの量子化を
更新する。パラメータ。第2のデータ変動範囲は、データビット幅の変更要求を測定する
ために使用でき、1番目のデータ変動範囲と第2のデータ変動範囲によって計算された目
標反復間隔は、小数点位置とデータビット幅の変更を同時に追跡でき、ターゲット反復を
追跡できる。間隔は、目標データ自体のデータ量子化要件にさらに一致させることもでき
る。
図2−22は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−22に示すように、ニューラルネットワークの量子化方法
のステップS63には次のものが含まれる。
ステップS631:目標データとカレント反復の目標データに対応する量子化データと
の間の誤差を計算する。
ステップS632:誤差の2乗を第2のデータ変動範囲として確定する。
第2のデータ変動範囲diffupdate2は、式(27)を使用して計算できる。
diffupdate2=δ*diff bit 式(2
7)
ここで、δは第4パラメータであり、第4パラメータはハイパーパラメータである可能
性がある。
異なるデータビット幅を使用することにより、異なる量子化予定のデータを取得し、異
なる第2のデータ変動範囲を生成することにより、異なる量子化パラメータを取得できる
ことは理解できる。第2のデータ変動範囲は、データビット幅の変化傾向を測定するため
に使用できる.第2のデータ変動範囲が大きいほど、データビット幅をより頻繁に更新す
るために必要な目標反復間隔は短くなる。つまり、目標反復間隔を小さくする必要がある
図2−23は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−23に示すように、ステップS72には次のものが含まれ
る。
ステップS721:第1のデータ変動範囲と第2のデータ変動範囲うちの最大値に従っ
て、目標データに対応する目標反復間隔を確定する。
目標反復間隔は、式(28)に従って計算できる。
I=β/max(diffupdate1,diffupdate2)−γ 式(
28)
ここで、βは第2パラメータであり、γは第3パラメータである。第2パラメータと第
3パラメータはハイパーパラメータの場合がある。
第1のデータ変動範囲と第2のデータ変動範囲を使用して得られる目標反復間隔は、デ
ータビット幅と小数点位置の変化傾向を同時に測定できることは理解できる。2つのうち
の一方の変化傾向が大きい場合、次に、それに応じて目標反復間隔を変更できる。目標反
復間隔は、データビット幅と小数点位置の変化を同時に追跡し、対応する調整を行うこと
ができる。目標反復間隔によって更新される量子化パラメータは、目標データの変化傾向
により一致する可能性があり、最終的に、量子化パラメータに従って取得される量子化予
定のデータは、量子化要件により一致する可能性がある。
図2−24は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−24に示すように、ニューラルネットワークの量子化方法
のステップS60には次のものが含まれる。
ステップS64:カレント反復が更新周期外の場合、カレント反復および履歴反復にお
ける目標データのデータ変動範囲を取得する。ここで、更新周期には少なくとも1つの反
復が含まれる。
ニューラルネットワーク演算のトレーニングプロセスおよび/または微調整プロセスで
は、トレーニングまたは微調整の開始時に、目標データが複数の反復で大きく変化する。
トレーニングまたは微調整の開始時に目標反復間隔が複数の反復で計算される場合、計算
された目標反復間隔はその有用性を失う可能性がある。プリセット更新周期に従って、更
新周期内の各反復について、目標反復間隔は計算されず、目標反復間隔は適用されないた
め、複数の反復が同じデータビット幅または小数点位置を使用する。
反復が更新周期を超えて進行する場合、つまりカレント反復が更新周期外の場合、カレ
ント反復および履歴反復における目標データのデータ変動範囲を取得し、目標データのデ
ータ変動範囲によって目標データに対応する目標データを確定する。ニューラルネットワ
ークが目標反復間隔によって目標データの量子化パラメータを更新するように、目標反復
間隔。たとえば、プリセット更新周期が100反復の場合、目標反復間隔は第1反復から
第100反復まで計算されない。反復が第101反復に進む場合、つまりカレント反復が
第101反復の場合、カレント反復は更新サイクルの範囲外である。このとき、第101
反復および第1反復から第100反復の目標データのデータ変動範囲を使用して、第10
1反復の目標データに対応する目標反復間隔、および計算された目標反復間隔は、第10
1反復、または第101間隔でプリセット反復回数で使用される。
更新サイクルは、プリセット反復番号からカウントすることができ、例えば、更新サイ
クルの複数の反復を第1反復からカウントすることができ、または更新サイクルの複数の
反復を第N反復からカウントすることができるが、これは本開示に限定されない。
この実施形態では、目標反復間隔が計算され、反復が更新周期を超えて進行するときに
使用される。ニューラルネットワーク運用のトレーニングプロセスや微調整プロセスの初
期段階で目標データが大きく変動するため、目標反復間隔があまり重要ではないという問
題を回避できる。目標反復間隔を使用すると、ニューラルネットワークのパフォーマンス
をさらに向上させることができる。運用効率。
図2−25は、本開示の一実施形態によるニューラルネットワークの量子化方法を示す
フローチャートである。図2−25に示すように、ニューラルネットワークの量子化方法
にはさらに次のものが含まれる。
ステップS100は、カレント反復がプリセット周期内にあるとき、カレント反復、プ
リセット周期の次の周期のカレント反復に対応する反復、およびカレント反復に対応する
反復間隔によって周期間隔を確定する。
ステップS110:カレント反復において目標データに対応するデータビット幅によっ
て、周期間隔内の反復の目標データのデータビット幅を確定する。またはカレント反復に
おいて目標データに対応する小数点位置によって、周期間隔内の反復における目標データ
の小数点位置を確定する。
ニューラルネットワーク演算のトレーニングプロセスまたは微調整プロセスには、複数
のサイクルを含めることができる。各サイクルには、複数の反復を含めることができる。
ニューラルネットワークの計算に使用されるデータは、1サイクルに1回完全に計算され
る。トレーニングプロセスでは、反復が進むにつれて、ニューラルネットワークの重みが
変化傾向がある。トレーニングが安定すると、量子化後のデータを待機するニューロン、
重み、オフセット、および勾配が安定する傾向がある。目標データが安定した後、目標デ
ータのデータビット幅と量子化パラメータも安定する。同様に、微調整プロセスでは、微
調整が安定した後、目標データのデータビット幅と量子化パラメータも安定する傾向があ
る。
したがって、プリセット周期は、安定したトレーニングまたは安定した微調整の周期に
応じて確定できる。トレーニングが安定した周期または微調整が安定した周期の後の周期
を、プリセット周期として確定することができる。たとえば、安定したトレーニング周期
はM番目の周期であり、M番目の周期の後の周期をプリセット周期として使用できる。プ
リセット周期では、間隔ごとに目標反復間隔を計算でき、計算した目標反復間隔によって
データビット幅または量子化パラメータを1回調整することで、データビット幅または量
子化パラメータの更新時間を短縮し、ニューラルネットワークのパフォーマンスを向上さ
せることができる。運用効率。
たとえば、プリセット周期はM番目の周期の後の周期である。M+1番目のサイクルで
は、M番目のサイクルのP番目の反復に従って計算された目標反復間隔は、M+1番目の
サイクルのQ番目の反復で終了する。M+1番目のサイクルのQm+1番目の反復に従っ
て、対応する目標反復間隔Im+1が計算される。M+2番目のサイクルでは、M+1番
目のサイクルのQm+1番目の反復に対応する反復は、QM+第2の反復である。M+1
番目のサイクルのQm+1番目の反復から、M+2番目のサイクルのQm+2+Im+1
番目の反復まで、これは周期的な間隔である。周期間隔内の各反復では、M+1周期のQ
m+1反復によって確定されるデータビット幅や小数点位置などの量子化パラメータが使
用される。
この実施形態では、周期間隔を設定することができる。ニューラルネットワーク動作の
トレーニングまたは微調整が安定した後、データビット幅または小数点位置などの量子化
パラメータは、周期間隔に従って周期ごとに更新される。周期間隔は、トレーニングが安
定した後、または微調整が安定した後のデータビット幅または小数点位置の更新時間を短
縮し、量子化の精度を確保しながら、ニューラルネットワークの運用効率を向上させるこ
とができる。
前述の方法の実施形態について、簡単な説明のために、それらはすべて一連の作用の組
み合わせとして表されるが、当技術分野の当業者は、本開示が記載された一連の作用によ
って限定されないことを理解すべきであることに留意されたい。この開示によれば、特定
のステップは、他の順序でまたは同時に実行することができるからである。第二に、当技
術分野の当業者はまた、本明細書に記載の実施形態が任意の実施形態であり、関連するア
クションおよびモジュールが本開示によって必ずしも必要とされないことを認識すべきで
ある。
なお、図2−1〜2−6のフローチャートのステップは、矢印のように順番に表示され
ているが、必ずしも矢印の順序で実行されているとは限らない。この記事で特に明記され
ていない限り、これらのステップの実行は順序に厳密に制限されておらず、これらのステ
ップは他の順序で実行できる。さらに、図2−1から2−6のステップの少なくとも一部
には、複数のサブステップまたは複数のステージを含めることができる。これらのサブス
テップまたはステージは、必ずしも同時に実行されるとは限らないが、異なる時間に実行
できる。これらのサブステップまたはステージの実行順序は、必ずしも順番に実行される
とは限らないが、他のステップまたは他のステップのサブステップまたはステージの少な
くとも一部と交互にまたは交互に実行され得る。
図2−26は、本開示の一実施形態によるニューラルネットワークの量子化装置の概略
図を示す。図2−26に示すように、本開示は、ニューラルネットワークの量子化装置を
提供し、装置は、ニューラルネットワークで量子化予定の任意の層を量子化するために使
用され、装置は、以下を含む。
量子化パラメータ確定モジュール10は、量子化予定の層において各タイプの量子化予
定のデータに対応する量子化パラメータを確定するように構成される。ここで、量子化予
定のデータは、ニューロン、重み、オフセット、および勾配のうちの少なくとも1つを含
む。
量子化モジュール20は、対応する量子化パラメータに従って量子化予定のデータを量
子化して量子化予定のデータを取得するように構成され、その結果、ニューラルネットワ
ークは、量子化予定のデータによって動作を実行する。
可能な実装方法では、量子化パラメータには、小数点位置、スケーリング係数、および
オフセットの少なくとも1つが含まれる。
小数点位置は、量子化後の小数点位置である。
スケーリング係数は、量子化後のデータの最大値と量子化予定のデータの最大絶対値の
比率である。
オフセットは、量子化予定のデータの中間値である。
図2−27は、本開示の一実施形態によるニューラルネットワークの量子化装置の概略
図を示す。図2−27に示すように、量子化パラメータ確定モジュール10には次のもの
が含まれる。
第1の量子化パラメータ確定サブモジュール11は、量子化予定のデータと量子化パラ
メータとの間の対応関係を検索することによって、量子化予定の層において各タイプの量
子化予定のデータに対応する量子化パラメータを確定するように構成される。
可能な実施方法において、量子化パラメータ確定モジュール10は、以下を含む。
第2の量子化パラメータ確定サブモジュール12は、各タイプの量子化予定のデータお
よび対応するデータビット幅によって、対応する量子化パラメータを計算するように構成
される。
可能な実施方法において、第2の量子化パラメータ確定サブモジュール12は、以下を
含む。
第1の小数点位置計算ユニット121は、量子化パラメータがオフセットを含まない場
合に、目標データの最大絶対値および目標データに対応するデータビット幅によって、目
標データの小数点位置を取得するように構成される。目標データは、任意の一種の量子化
予定のデータである。
可能な実施方法において、第2の量子化パラメータ確定サブモジュール12は、以下を
含む。
第1のスケーリング係数計算ユニット122は、量子化パラメータがオフセットを含ま
ない場合の目標データおよび目標データに対応するデータビット幅、およびターゲットに
従って、目標データの量子化後の最大値を取得するように構成される。データは、任意の
一種の量子化予定のデータである。目標データのスケーリング係数は、目標データの最大
絶対値と目標データの量子化データの最大値に従って取得される。
可能な実施方法において、第2の量子化パラメータ確定サブモジュール12は、以下を
含む。
第2の小数点位置計算ユニット123は、量子化パラメータがオフセットを含む場合、
目標データの最大値、目標データの最小値、および目標データに対応するデータビット幅
によって、次のように構成される。目標データの小数点位置が取得され、目標データは任
意の一種の量子化予定のデータである。
可能な実施方法において、第2の量子化パラメータ確定サブモジュール12は、以下を
含む。
第2のスケーリング係数計算ユニット124は、量子化パラメータがオフセットを含む
場合、目標データおよび目標データに対応するデータビット幅、ならびに目標データに従
って、目標データの量子化後の最大値を取得するように構成される。量子化予定のデータ
は任意である。目標データの最大値、目標データの最小値、および目標データの量子化後
の最大値に応じて、目標データのスケーリング係数が取得される。
可能な実施方法において、第2の量子化パラメータ確定サブモジュール12は、以下を
含む。
オフセット計算ユニット125は、目標データの最大値および最小値に従って目標デー
タのオフセットを取得するように構成され、目標データは、量子化予定の任意の種類のデ
ータである。
図2−28は、本開示の一実施形態によるニューラルネットワークの量子化装置の概略
図を示す。図2−28に示すように、可能な実装方法では、装置にはさらに次のものが含
まれる。
量子化誤差確定モジュール30は、目標データおよび目標データに対応する量子化デー
タに従って目標データの量子化誤差を確定するように構成され、目標データは、量子化予
定の任意の種類のデータである。
調整ビット幅確定モジュール40は、量子化誤差および誤差しきい値に従って、目標デ
ータに対応するデータビット幅を調整して、目標データに対応する調整ビット幅を取得す
るように構成される。
調整量子化パラメータ確定モジュール50は、目標データに対応するデータビット幅を
調整ビット幅に更新し、目標データおよび調整ビット幅に従って対応する調整量子化パラ
メータを計算するように構成される。ニューラルネットワークは、調整された量子化パラ
メータに従って量子化を実行する。
可能な実施方法において、調整ビット幅確定モジュール40は、以下を含む。
第1の調整ビット幅確定サブモジュール41は、量子化誤差が第1の誤差しきい値より
大きい場合に目標データに対応するデータビット幅を増加させて、目標データに対応する
調整ビット幅を取得するように構成される。
可能な実施方法において、調整ビット幅確定モジュール40はさらに以下を含む。
第1の調整量子化誤差確定サブモジュール42は、調整ビット幅および目標データに従
って目標データの調整済の量子化誤差を計算するように構成される。
第1の調整ビット幅循環確定サブモジュール43は、調整ビット幅および目標データに
従って計算される調整まで、調整済の量子化誤差および第1の誤差しきい値に従って調整
ビット幅を増加し続けるように構成される。後続の量子化誤差は、第1の誤差しきい値以
下である。
可能な実施方法において、調整ビット幅確定モジュール40は、以下を含む。
第2の調整ビット幅確定サブモジュール44は、量子化誤差が第2の誤差しきい値未満
であり、第2の誤差しきい値が第1の誤差しきい値未満である場合に、目標データに対応
するデータビット幅を減少させるように構成される。
可能な実施方法において、調整ビット幅確定モジュール40はさらに以下を含む。
第2の調整量子化誤差確定サブモジュール45は、調整ビット幅および目標データに従
って目標データの調整済の量子化誤差を計算するように構成される。
第2の調整ビット幅周期的確定サブモジュール46は、調整が調整ビット幅および目標
データに従って計算されるまで、調整済の量子化誤差および第2の誤差しきい値に従って
調整ビット幅を減少し続けるように構成される。後続の量子化誤差は、第2の誤差しきい
値以上である。
図2−29は、本開示の一実施形態によるニューラルネットワークの量子化装置の概略
図を示す。図2−29に示すように、可能な実装方法では、ニューラルネットワーク演算
の微調整フェーズおよび/またはトレーニングフェーズで、装置にはさらに次のものが含
まれる。
データ変動範囲確定モジュール60は、カレント反復および履歴反復における目標デー
タのデータ変動範囲を取得するように構成される。ここで、履歴反復は、カレント反復の
前の反復である。
目標反復間隔確定モジュール70は、目標データのデータ変動範囲によって目標データ
に対応する目標反復間隔を確定するように構成され、その結果、ニューラルネットワーク
は、目標反復間隔によって目標データの量子化パラメータを更新する。目標反復間隔には
少なくとも1つの反復が含まれ、目標データは量子化予定の任意のタイプのデータである
可能な実装方法では、装置はさらに以下を含む。
第1の目標反復間隔適用モジュール80は、カレント反復における目標データのデータ
ビット幅によって、目標反復間隔における目標データの反復に対応するデータビット幅を
確定するように構成される。ニューラルネットワークは、目標反復間隔内の目標データの
反復に対応するデータビット幅によって量子化パラメータを確定する。
可能な実装方法では、装置はさらに以下を含む。
第2の目標反復間隔適用モジュール90は、カレント反復に対応する目標データの小数
点位置に従って、目標反復間隔における目標データの反復に対応する小数点位置を確定す
るように構成される。
可能な実施方法において、データ変動範囲確定モジュール60は、以下を含む。
スライディング平均値計算サブモジュール61は、カレント反復における目標データの
小数点位置および履歴反復間隔によって確定されたカレント反復に対応する履歴反復の小
数点位置に従って、各反復間隔に対応する目標データの小数点位置を計算するためである
。のスライディング平均値
第1のデータ変動範囲確定サブモジュール62は、カレント反復の小数点位置での目標
データの第1のスライド平均値および1つ前の反復間隔の反復に対応する小数点位置の第
2のスライド平均値によって、第1のデータ変動範囲を取得するように構成される。
目標反復間隔確定モジュール70は、以下を含む。
第1の目標反復間隔確定サブモジュール71は、第1のデータ変動範囲によって目標デ
ータに対応する目標反復間隔を確定するように構成され、その結果、ニューラルネットワ
ークは、目標反復間隔によって目標データ間隔を更新する。量子化パラメータ。
可能な実装方法では、サブモジュール62を確定する第1のデータ変動範囲は、以下を
含む。
第1のデータ変動範囲確定ユニット621は、第1のスライディング平均値と第2のス
ライディング平均値との間の差を計算するように構成される;第1のデータ変動範囲とし
て差の絶対値を確定する。
可能な実施方法において、データ変動範囲確定モジュール60はさらに以下を含む。
第2のデータ変動範囲確定サブモジュール63は、目標データおよびカレント反復にお
ける目標データに対応する量子化データに従って第2のデータ変動範囲を取得するように
構成される。
目標反復間隔確定モジュール70は、以下を含む。
第2の目標反復間隔確定サブモジュール72は、目標データの第1のデータ変動範囲お
よび第2のデータ変動範囲によって目標データに対応する目標反復間隔を確定するように
構成されるので、ニューラルネットワークはに基づく。目標反復間隔は、目標データの量
子化パラメータを更新する。
可能な実施方法において、第2のデータ変動範囲確定モジュール63は、以下を含む。
第2のデータ変動範囲確定ユニット631は、目標データとカレント反復における目標
データに対応する量子化データとの間の誤差を計算するように構成され、誤差の二乗を第
2のデータ変動範囲として確定する。
可能な実施方法において、第2の目標反復間隔確定サブモジュール72は、第1のデー
タ変動範囲および第2のデータ変動範囲の最大値に従って目標データの対応する値を確定
するように構成される。目標反復間隔。
可能な実施方法において、データ変動範囲確定モジュール60は、以下を含む。
第3のデータ変動範囲確定サブモジュール64は、カレント反復が更新周期外であり、
更新周期が少なくとも1回の反復を含む場合に、カレント反復および履歴反復における目
標データのデータ変動範囲を取得するように構成される。
図2−30は、本開示の一実施形態によるニューラルネットワークの量子化装置の概略
図を示す。図2−30に示すように、可能な実装方法では、装置にはさらに次のものが含
まれる。
周期間隔確定モジュール100は、カレント反復、プリセットサイクルの次のサイクル
におけるカレント反復に対応する反復、およびカレント反復に対応する反復間隔によって
、カレント反復がプリセットサイクル内にあるときを確定するように構成される。定期的
な間隔。
第1の周期間隔適用モジュール110は、カレント反復における目標データに対応する
データビット幅によって、周期間隔内の反復における目標データのデータビット幅を確定
するように構成される。
第2の周期間隔適用モジュール120は、カレント反復に対応する目標データの小数点
位置に従って、周期間隔内の反復における目標データの小数点位置を確定するように構成
される。
可能な実装方法では、装置はさらに以下を含む。
量子化パラメータ継承モジュール130は、量子化予定の層の後に1つまたは複数の層
で量子化予定の層の量子化パラメータを採用するように構成される。
前述の装置の実施形態は例示にすぎず、本開示の装置は他の方法でも実施できることを
理解されたい。例えば、上記の実施形態におけるユニット/モジュールの分割は、論理的
機能分割にすぎず、実際の実施において他の分割方法があり得る。たとえば、複数のユニ
ット、モジュール、またはコンポーネントを組み合わせたり、別のシステムに統合したり
、一部の機能を省略したり、実装しなかったりする場合がある。
個別のコンポーネントとして説明されているユニットまたはモジュールは、物理的に分
離されている場合とされていない場合がある。ユニットまたはモジュールとして記述され
るコンポーネントは、物理ユニットである場合と物理ユニットではない場合がある。つま
り、1つの装置に配置されている場合と、複数の装置に分散されている場合がある。本開
示における実施形態の解決策は、実際の必要性に従ってユニットのいくつかまたはすべて
を選択することによって実施することができる。
さらに、特に明記しない限り、本開示の様々な実施形態における機能ユニット/モジュ
ールは、1つのユニット/モジュールに統合され得るか、または各ユニット/モジュール
が物理的に単独で存在し得るか、または2つ以上のユニット/モジュールが存在し得る。
モジュールは一緒に統合されている。上記の統合ユニット/モジュールは、ハードウェア
またはソフトウェアプログラムモジュールの形式で実装できる。
統合ユニット/モジュールがハードウェアの形で実装されている場合、ハードウェアは
デジタル回路、アナログ回路などである可能性がある。ハードウェア構造の物理的な実現
には、トランジスタ、メモリスタなどが含まれるが、これらに限定されない。特に指定の
ない限り、人工知能プロセッサは、CPU、GPU、FPGA、DSP、ASICなどの
適切なハードウェアプロセッサである。特に指定のない限り、記憶ユニットは、RRAM
(Resistive Random AccessMemory)、Dynamic
Random AccessMemory(DRAM)などの適切な磁気ストレージメデ
ィアまたは磁気光学ストレージメディアのいずれかである。SRAM(静的ランダムアク
セスメモリ)、拡張動的ランダムアクセスメモリ(EDRAM)、高帯域幅メモリ(HB
M)、ハイブリッドメモリキューブ(HMC)など。待つ。
統合されたユニット/モジュールがソフトウェアプログラムモジュールの形式で実装さ
れ、独立した製品として販売または使用される場合、コンピュータで読み取り可能なメモ
リに格納できる。この理解に基づいて、本開示の技術案は、本質的に、または既存の技術
に寄与する部分、または技術案の全部または一部をソフトウェア製品の形で具体化するこ
とができ、コンピュータソフトウェア製品はメモリに格納され、これは、コンピュータ装
置(パーソナルコンピュータ、サーバ、またはネットワーク装置などであり得る)に、本
開示の様々な実施形態に記載された方法のステップの全部または一部を実行させるための
いくつかの命令を含む。前述のメモリには、Uディスク、読み取り専用メモリ(ROM、
読み取り専用メモリ)、ランダムアクセスメモリ(RAM、ランダムアクセスメモリ)、
モバイルハードディスク、磁気ディスク、または光ディスク、およびプログラムコードを
格納できるその他のメディアが含まれる。
可能な実施において、本開示はまた、前述のデータ同期装置を含む人工知能チップを開
示する。
可能な実施方法において、本開示はまた、記憶装置、インターフェース装置、制御装置
、および前述の人工知能チップを含むボードカードを開示する。ここで、人工知能チップ
および記憶装置は、制御装置とインターフェース装置はそれぞれ接続されており、記憶装
置はデータを格納するために使用され、インターフェース装置は人工知能チップと外部装
置との間のデータ伝送を実現するために使用され、制御装置は人工知能チップの状態を監
視する。
図2−31は、本開示の一実施形態によるボードカードの構造ブロック図を示す。図2
−31を参照すると、ボードカードは、上記のチップ389に加えて他の支持構成要素を
含み得る。支持構成要素は、記憶装置390、インターフェース装置391および制御装
置392を含むが、これらに限定されない。
記憶装置390は、データを記憶するためのバスを介して人工知能チップに接続されて
いる。記憶装置は、記憶ユニット393の複数のグループを含み得る。記憶ユニットと人
工知能チップの各グループは、バスを介して接続されている。記憶ユニットの各グループ
はDDRSDRAM(英語:Double Data Rate SDRAM、ダブルレ
ート同期動的ランダムアクセスメモリ)である可能性があることが理解できる。
DDRは、クロック周波数を上げることなく、SDRAMの速度を2倍にすることがで
きる。DDRを使用すると、クロックパルスの立ち上がりエッジと立ち下がりエッジでデ
ータを読み取ることができる。DDRの速度は標準のSDRAMの2倍である。一実施形
態では、貯蔵装置は、貯蔵ユニットの4つのグループを含み得る。記憶ユニットの各グル
ープには、複数のDDR4粒子(チップ)を含めることができる。一実施形態では、人工
知能チップは、4つの72ビットDDR4コントローラを含み得る。72ビットDDR4
コントローラでは、64ビットがデータ伝送に使用され、8ビットがECC検証に使用さ
れる。記憶ユニットの各グループでDDR4−3200粒子を使用すると、データ伝送の
理論上の帯域幅が25600MB/秒に達する可能性があることが理解できる。
一実施形態では、記憶ユニットの各グループは、並列に配置された複数のダブルレート
同期動的ランダムアクセスメモリを含む。DDRは、1クロックサイクルで2回データを
送信できる。各記憶ユニットのデータ伝送とデータストレージを制御するために、DDR
を制御するためのコントローラがチップに提供されている。
インターフェース装置は、人工知能チップに電気的に接続されている。インターフェイ
ス装置は、人工知能チップと外部装置(サーバーやコンピュータなど)との間のデータ伝
送を実装するためである。例えば、一実施形態では、インターフェース装置は、標準のP
CIEインターフェースであり得る。たとえば、処理されるデータは、データ伝送を実現
するために、標準のPCIEインターフェイスを介してサーバーからチップに伝送される
。送信にPCIE3.0X16インターフェイスを使用する場合、理論上の帯域幅は16
000MB/sに達することが好ましい。別の実施形態において、インターフェース装置
はまた、他のインターフェースであり得る。本開示は、インターフェースユニットがスイ
ッチング機能を実現できる限り、上記の他のインターフェースの特定の症状を限定しない
。さらに、人工知能チップの計算結果は、インターフェース装置によって外部装置(サー
バーなど)に送信される。
制御装置は人工知能チップに電気的に接続されている。制御装置は、人工知能チップの
状態を監視するためである。具体的には、人工知能チップと制御装置は、SPIインター
フェースを介して電気的に接続され得る。制御装置は、シングルチップマイクロコンピュ
ータ(Micro Controller Unit、MCU)を含み得る。たとえば、
人工知能チップは、複数の処理チップ、複数の処理コア、または複数の処理回路を含み得
、複数の負荷を駆動することができる。したがって、人工知能チップは、複数の負荷や軽
負荷など、さまざまな動作状態になる可能性がある。制御装置は、人工知能チップ内の複
数の処理チップ、複数の処理、および/または複数の処理回路の動作状態の調整を実現す
ることができる。
可能な実施方法において、前述の人工知能チップを含む電子装置が開示される。電子機
器には、データ処理装置、ロボット、コンピュータ、プリンター、スキャナー、タブレッ
ト、スマート端末、携帯電話、ドライビングレコーダー、ナビゲーター、センサー、カメ
ラ、サーバー、クラウドサーバー、カメラ、カメラ、プロジェクター、時計、ヘッドセッ
トが含まれる、モバイルストレージ、ウェアラブル装置、車両、家電製品、および/また
は医療機器。
輸送手段には飛行機、船および/または車両が含まれ、家庭用電化製品にはテレビ、エ
アコン、電子レンジオーブン、冷蔵庫、炊飯器、加湿器、洗濯機、電灯、ガスストーブ、
レンジフードが含まれる。医療機器には核磁気共鳴が含まれる。B−超音波および/また
は心電計。
上記は、次の条項に従ってよりよく理解できる。
B1、ニューラルネットワークの量子化方法。ニューラルネットワークで量子化予定の
層の場合、この方法には次のものが含まれる。
量子化予定の層で各タイプの量子化予定のデータに対応する量子化パラメータを確定す
る。ここで、量子化予定のデータは、ニューロン、重み、オフセット、および勾配のうち
の少なくとも1つを含む。
量子化予定のデータは、対応する量子化パラメータに従って量子化されて量子化後のデ
ータを取得するため、ニューラルネットワークは量子化後のデータに従って操作を実行す
る。
B2、量子化パラメータが、小数点位置、スケーリング係数、およびオフセットのうち
の少なくとも1つを含む、B1項に記載の方法。
小数点位置は、量子化後の小数点位置である。
スケーリング係数は、量子化後のデータの最大値と量子化予定のデータの最大絶対値の
比率である。
オフセットは、量子化予定のデータの中間値である。
B3、B1項またはB2項に記載の方法で、量子化予定の層で各タイプの量子化予定の
データに対応する量子化パラメータを確定する方法には、以下が含まれる。
量子化予定の層で各タイプの量子化予定のデータに対応する量子化パラメータは、量子
化予定のデータと量子化パラメータとの間の対応関係を検索することによって確定される
B4、B1項またはB2項による方法で、量子化予定の層で各タイプの量子化予定のデ
ータに対応する量子化パラメータを確定する方法には、以下が含まれる。
対応する量子化パラメータは、各タイプの量子化予定のデータと対応するデータビット
幅によって計算される。
B5、第B4項による方法は、各タイプの量子化予定のデータおよび対応するデータビ
ット幅によって、対応する量子化パラメータを計算することを述べた。
量子化パラメータにオフセットが含まれていない場合、目標データの最大絶対値と目標
データに対応するデータビット幅に応じて目標データの小数点位置が求められ、目標デー
タは任意の種類である。量子化予定のデータ。
B6、第B4項による方法は、各タイプの量子化予定のデータおよび対応するデータビ
ット幅によって、対応する量子化パラメータを計算することを述べ、以下を含む。
量子化パラメータにオフセットが含まれていない場合は、目標データと目標データに対
応するデータビット幅に応じて、目標データの量子化後の最大値を取得する。目標データ
は、任意の一種の量子化予定のデータである。
目標データの最大絶対値と目標データの量子化データの最大値に従って、目標データの
スケーリング係数が取得される。
B7、各タイプの量子化予定のデータおよび対応するデータビット幅に応じた対応する
量子化パラメータの計算には、以下が含まれる、B4項に記載の方法。
量子化パラメータにオフセットが含まれる場合、目標データの最大値、目標データの最
小値、および目標データに対応するデータビット幅によって、目標データの小数点位置が
取得される。目標データは、任意の一種の量子化予定のデータである。
B8、各タイプの量子化予定のデータおよび対応するデータビット幅に応じた対応する
量子化パラメータの計算には、以下が含まれる、B4項に記載の方法。
量子化パラメータにオフセットが含まれている場合は、目標データと目標データに対応
するデータビット幅に応じて、目標データの量子化後の最大値を取得する。目標データは
、任意の一種の量子化予定のデータである。
目標データのスケーリング係数は、目標データの最大値、目標データの最小値、および
目標データの量子化後の最大値に従って取得される。
B9、各タイプの量子化予定のデータおよび対応するデータビット幅に応じた対応する
量子化パラメータの計算には、以下が含まれる、B4項に記載の方法。
目標データの最大値と最小値に応じて、目標データのオフセットが取得され、目標デー
タは任意の一種の量子化予定のデータである。
B10、B1項からB9項のいずれか1つに記載の方法で、以下をさらに含む方法。
目標データおよび目標データに対応する量子化データに従って、目標データの量子化誤
差を確定する。ここで、目標データは、量子化予定の任意の種類のデータである。
量子化誤差および誤差しきい値に従って目標データに対応するデータビット幅を調整し
、目標データに対応する調整ビット幅を取得する。
目標データに対応するデータビット幅が調整ビット幅に更新され、目標データと調整ビ
ット幅に応じて対応する調整量子化パラメータが計算されるため、ニューラルネットワー
クは調整量子化パラメータに従って処理を実行する。量子化。
B11、目標データに対応する調整ビット幅を得るために、量子化誤差および誤差しき
い値に従って目標データに対応するデータビット幅を調整する、条項B10に記載の方法
は、以下を含む。
量子化誤差が第1の誤差しきい値より大きい場合、目標データに対応するデータビット
幅を増やして、目標データに対応する調整ビット幅を取得する。
B12、B11項に基づく方法であり、以下をさらに含む方法。
調整ビット幅と目標データに従って、目標データの調整済み量子化誤差を計算する。
調整ビット幅と目標データに従って計算された調整済の量子誤差が第1の誤差しきい値
以下になるまで、調整済の量子化誤差と第1の誤差しきい値に従って調整ビット幅を増や
し続ける。
B13、量子化誤差および誤差しきい値に従って、目標データに対応するデータビット
幅を調整することを含む、B10項またはB11項に記載の方法。
量子化誤差が第2の誤差しきい値よりも小さい場合、目標データに対応するデータビッ
ト幅が減少し、第2の誤差しきい値が1番目の誤差しきい値よりも小さくなる。
B14、B13項に基づく方法であり、以下をさらに含む方法。
調整ビット幅と目標データに従って、目標データの調整済み量子化誤差を計算する。
調整ビット幅と目標データに従って計算された調整済の量子誤差が第2の誤差しきい値
以上になるまで、調整済の量子化誤差と第2の誤差しきい値に従って調整ビット幅を減ら
し続ける。
B15、ニューラルネットワーク演算の微調整段階および/またはトレーニング段階に
おけるB1項からB14項のいずれか1つに記載の方法には、さらに以下が含まれる。
カレント反復および履歴反復における目標データのデータ変動範囲を取得する。ここで
、履歴反復はカレント反復の前の反復である。
目標データのデータ変動範囲によって、目標データに対応する目標反復間隔を確定する
。これにより、ニューラルネットワークは、目標反復間隔によって目標データの量子化パ
ラメータを更新し、目標反復間隔には少なくとも1つが含まれる。反復になるが、目標デ
ータは任意の一種の量子化予定のデータである。
B16、B15項に基づく方法であり、以下をさらに含む方法。
カレント反復における目標データのデータビット幅によって、目標反復間隔における目
標データの反復に対応するデータビット幅が確定されるため、ニューラルネットワークは
ターゲット内の目標データに基づいている。反復間隔内の反復に対応するデータビット幅
によって、量子化パラメータが決まる。
B17、B15項に基づく方法であり、以下をさらに含む方法。
カレント反復に対応する目標データの小数点位置によって、目標反復間隔内の目標デー
タの反復に対応する小数点位置を確定する。
B18、B15項で説明されている方法によると、カレント反復および履歴反復での目
標データのデータ変動範囲の取得には次のものが含まれる。
カレント反復における目標データの小数点位置、および履歴反復間隔によって確定され
たカレント反復に対応する履歴反復の小数点位置によって、各反復間隔に対応する目標デ
ータの小数点位置のスライディング平均値を計算する。
カレント反復の小数点位置での目標データの最初のスライド平均値と、前の反復間隔の
反復に対応する小数点位置の2番目のスライド平均値に従って、第1のデータ変動範囲を
取得する。
目標データのデータ変動範囲によって目標データに対応する目標反復間隔を確定し、ニ
ューラルネットワークが目標反復間隔によって目標データの量子化パラメータを更新する
ようにすることには、以下が含まれる。
ニューラルネットワークが目標反復間隔によって目標データの量子化パラメータを更新
するように、第1のデータ変動範囲によって目標データに対応する目標反復間隔を確定す
る。
B19、B18項に基づく方法で、目標データのカレント反復の小数点位置の第1のス
ライディング平均値と、前の反復間隔での対応する反復の小数点位置の第2のスライディ
ング平均値を使用して、第1のデータ変動範囲を取得するのは、以下を含む:
第1のスライディング平均値と第2のスライディング平均値の差を計算する。
差の絶対値は、第1のデータ変動範囲として確定される。
B20、B18項に基づく方法で、さらに以下を含む。
カレント反復における目標データおよび目標データに対応する量子化データに従って、
第2のデータ変動範囲を取得する。
目標データのデータ変動範囲によって目標データに対応する目標反復間隔を確定し、ニ
ューラルネットワークが目標反復間隔によって目標データの量子化パラメータを更新する
ようにすることには、以下が含まれる。
目標データの第1のデータ変動範囲と第2のデータ変動範囲によって、目標データに対
応する目標反復間隔を確定する。これにより、ニューラルネットワークは、目標反復間隔
によって目標データの量子化を更新する。パラメータ。
B21、B20項に記載されている方法によれば、カレント反復における目標データお
よび目標データに対応する量子化データに従って第2のデータ変動範囲を取得するには、
次のものが含まれる。
目標データと、カレント反復における目標データに対応する量子化データとの間の誤差
を計算する。
誤差の2乗は、第2のデータ変動範囲として確定される。
B22、目標データの第1のデータ変動範囲および第2のデータ変動範囲によって目標
データに対応する目標反復間隔を確定することは、以下を含む、条項B20に記載の方法
第1のデータ変動範囲と第2のデータ変動範囲の最大値に従って、目標データに対応す
る目標反復間隔を確定する。
B23、B15項からB22項のいずれか1つに記載の方法で、カレント反復および履
歴反復における目標データのデータ変動範囲の取得には次のものが含まれる。
カレント反復が更新周期外の場合、カレント反復および履歴反復における目標データの
データ変動範囲が取得され、更新周期には少なくとも1つの反復が含まれる。
B24、B15項からB23項のいずれかに記載の方法であり、以下をさらに含む方法
カレント反復がプリセット周期内にある場合、カレント反復、プリセット周期の次の周
期のカレント反復に対応する反復、およびカレント反復に対応する反復間隔によって周期
間隔を確定する。
カレント反復の目標データに対応するデータビット幅によって、周期間隔内の反復の目
標データのデータビット幅を確定する。または
カレント反復に対応する目標データの小数点位置によって、周期間隔内の反復における
目標データの小数点位置を確定する。
B25、B1項からB24項のいずれか1つに記載の方法であり、以下をさらに含む方
法。
量子化予定の層の量子化パラメータは、量子化予定の層の後の1つまたは複数の層で使
用される。
B26、ニューラルネットワークの量子化装置。ニューラルネットワークで量子化予定
の任意の層を量子化するためである装置であり、以下を含む装置。
量子化予定の層で各タイプの量子化予定のデータに対応する量子化パラメータを確定す
るように構成される量子化パラメータ確定モジュール。ここで、量子化予定のデータは、
ニューロン、重み、オフセット、および勾配のうちの少なくとも1つを含む。
量子化モジュールは、対応する量子化パラメータに従って量子化予定のデータを量子化
するために使用され、量子化後のデータを取得し、ニューラルネットワークが量子化後の
データに従って操作を実行するようにする。
B27、量子化パラメータが、小数点位置、スケーリング係数、およびオフセットのう
ちの少なくとも1つを含む、B26項に記載の装置。
小数点位置は、量子化後の小数点位置である。
スケーリング係数は、量子化後のデータの最大値と量子化予定のデータの最大絶対値の
比率である。
オフセットは、量子化予定のデータの中間値である。
B28、量子化パラメータ確定モジュールが以下を含む、条項B25またはB27に記
載の装置。
第1の量子化パラメータ確定サブモジュールは、量子化予定のデータと量子化パラメー
タとの間の対応関係を検索することによって、量子化予定の層で各タイプの量子化予定の
データに対応する量子化パラメータを確定するように構成される。
B29、量子化パラメータ確定モジュールが以下を含む、条項B26またはB27に記
載の装置。
第2の量子化パラメータ確定サブモジュールは、各タイプの量子化予定のデータおよび
対応するデータビット幅によって、対応する量子化パラメータを計算するように構成され
る。
B30、第2の量子化パラメータ確定サブモジュールが以下を含む、B29項に記載の
装置。
第1小数点位置計算単位は、量子化パラメータにオフセットが含まれていない場合に、
目標データの最大絶対値と目標データに対応するデータビット幅に応じて目標データの小
数点位置を取得するためである。目標データは、任意の一種の量子化予定のデータである
B31、第2の量子化パラメータ確定サブモジュールが以下を含む、B29項に記載の
装置。
第1のスケーリング係数計算ユニットは、量子化パラメータがオフセット、目標データ
を含まない場合に、目標データおよび目標データに対応するデータビット幅によって、目
標データの量子化後の最大値を取得するように構成される。任意の一種の量子化予定のデ
ータであり、目標データの最大絶対値と目標データの量子化後の最大値に応じて、目標デ
ータのスケーリング係数が取得される。
B32、第2の量子化パラメータ確定サブモジュールが以下を含む、B29項に記載の
装置。
第2小数点位置計算ユニットは、量子化パラメータにオフセットが含まれる場合、目標
データの最大値、目標データの最小値、および目標データに対応するデータビット幅に応
じて取得するように構成される。目標データの小数点位置、目標データは、任意の一種の
量子化予定のデータである。
B33、第2の量子化パラメータ確定サブモジュールが以下を含む、B29項に記載の
装置。
第2のスケーリング係数計算ユニットは、量子化パラメータがオフセットを含み、目標
データがである場合に、目標データおよび目標データに対応するデータビット幅によって
、目標データの量子化データの最大値を取得するように構成される。目標データは、任意
の一種の量子化予定のデータである。目標データの最大値、目標データの最小値、および
目標データの量子化後の最大値に従って、目標データのスケーリング係数が取得される。
B34、第2の量子化パラメータ確定サブモジュールが以下を含む、B29項に記載の
装置。
オフセット計算ユニットは、目標データの最大値と最小値に応じて目標データのオフセ
ットを取得するように構成されており、目標データは、任意の一種の量子化予定のデータ
である。
B35、条項B26からB34のいずれか1つに記載の装置であって、さらに以下を含
む装置。
目標データおよび目標データに対応する量子化データに従って目標データの量子化誤差
を確定するように構成される量子化誤差確定モジュール。ここで、目標データは、量子化
予定の任意の種類のデータである。
量子化誤差および誤差しきい値に従って目標データに対応するデータビット幅を調整し
て、目標データに対応する調整ビット幅を取得するように構成される調整ビット幅確定モ
ジュール。
調整量子化パラメータ確定モジュールは、目標データに対応するデータビット幅を調整
ビット幅に更新し、目標データと調整ビット幅に従って対応する調整量子化パラメータを
計算するように構成される。ネットワークは、調整された量子化パラメータに従って量子
化を実行する。
B36、調整ビット幅確定モジュールが以下を含む、B35項に記載の装置。
第1調整ビット幅確定サブモジュールは、量子化誤差が第1誤差しきい値より大きい場
合に目標データに対応するデータビット幅を増加させて、目標データに対応する調整ビッ
ト幅を取得するように構成される。
B37、調整ビット幅確定モジュールがさらに以下を含む、B36項に記載の装置。
第1の調整済み量子化誤差確定サブモジュールは、調整ビット幅と目標データに従って
目標データの調整済み量子化誤差を計算するように構成される。
第1の調整ビット幅循環確定サブモジュールは、調整ビット幅および目標データに従っ
て調整ビット幅が計算されるまで、調整済の量子化誤差および第1の誤差しきい値に従っ
て調整ビット幅を増加し続けるように構成される。の量子化誤差は、第1の誤差しきい値
以下である。
B38、調整ビット幅確定モジュールが以下を含む、B35項またはB36項に記載の
装置。
第2の調整ビット幅確定サブモジュールは、量子化誤差が第2の誤差しきい値未満であ
り、第2の誤差しきい値が第1の誤差しきい値未満である場合に、目標データに対応する
データビット幅を減少させるように構成される。
B39、調整ビット幅確定モジュールがさらに以下を含む、条項B38に記載の装置。
第2の調整済み量子化誤差確定サブモジュールは、調整ビット幅と目標データに従って
目標データの調整済み量子化誤差を計算するように構成される。
第2の調整ビット幅循環確定サブモジュールは、調整ビット幅および目標データに従っ
て調整ビット幅が計算されるまで、調整済の量子化誤差および第2の誤差しきい値に従っ
て調整ビット幅を減少し続けるように構成される。の量子化誤差は、第2の誤差しきい値
以上である。
B40、ニューラルネットワーク演算の微調整段階および/またはトレーニング段階に
おいて、B26項からB39項のいずれか1つに記載の装置は、さらに以下を含む。
カレント反復および履歴反復における目標データのデータ変動範囲を取得するように構
成されるデータ変動範囲確定モジュール。履歴反復は、カレント反復の前の反復である。
目標反復間隔確定モジュールは、目標データのデータ変動範囲によって目標データに対
応する目標反復間隔を確定するように構成され、その結果、ニューラルネットワークは、
目標反復間隔によって目標データの量子化パラメータを更新する。目標反復間隔には少な
くとも1つの反復が含まれ、目標データは量子化予定の任意のタイプのデータである。
B41、条項B40による装置であって、さらに以下を含む装置。
第1の目標反復間隔適用モジュールは、カレント反復での目標データのデータビット幅
によって、目標反復間隔での目標データの反復に対応するデータビット幅を確定するよう
に構成される。ネットワークは、目標反復間隔内の目標データの反復に対応するデータビ
ット幅によって、量子化パラメータを確定する。
B42、条項B40による装置であって、さらに以下を含む装置。
第2の目標反復間隔適用モジュールは、カレント反復に対応する目標データの小数点位
置によって、目標反復間隔内の目標データの反復に対応する小数点位置を確定するように
構成される。
B43、データ変動範囲確定モジュールが以下を含む、B40項に記載の装置。
スライディング平均値計算サブモジュールは、カレント反復における目標データの小数
点位置と、履歴反復間隔によって確定されたカレント反復に対応する履歴反復の小数点位
置によって、各反復間隔に対応する目標データの小数点位置を計算するためである。
第1のデータ変動範囲確定サブモジュールは、カレント反復の小数点位置での目標デー
タの最初のスライド平均値と、前の反復間隔の反復に対応する小数点位置の2番目のスラ
イド平均値を取得するためである。
目標反復間隔確定モジュールには、次のものが含まれる。
第1の目標反復間隔確定サブモジュールは、第1のデータ変動範囲によって目標データ
に対応する目標反復間隔を確定するように構成され、その結果、ニューラルネットワーク
は、目標反復間隔によって目標データの量子化を更新する。
B44、第1のデータ変動範囲確定サブモジュールが以下を含む、B43項に記載の装
置。
第1のデータ変動範囲確定ユニットは、第1のスライディング平均値と第2のスライデ
ィング平均値との間の差を計算するように構成され、第1のデータ変動範囲として差の絶
対値を確定する。
B45、データ変動範囲確定モジュールが以下を含む、条項B43に記載の装置。
第2のデータ変動範囲確定サブモジュールは、目標データおよびカレント反復における
目標データに対応する量子化データに従って第2のデータ変動範囲を取得するように構成
される。
目標反復間隔確定モジュールには、次のものが含まれる。
第2の目標反復間隔確定サブモジュールは、目標データの第1のデータ変動範囲と第2
のデータ変動範囲によって、目標データに対応する目標反復間隔を確定するためである。
目標反復間隔は、目標データの量子化パラメータを更新する。
B46、B45項で説明されている装置によると、サブモジュールを確定する第2のデ
ータ変動範囲には次のものが含まれる。
第2のデータ変動範囲確定ユニットは、目標データとカレント反復における目標データ
に対応する量子化データとの間の誤差を計算するように構成され、誤差の二乗を第2のデ
ータ変動範囲として確定する。
B47、第2の目標反復間隔確定サブモジュールが、第1のデータ変動範囲および第2
のデータ変動範囲の最大値に従って目標データの対応する値を確定するように構成される
、条項B45に記載の装置。
B48、データ変動範囲確定モジュールが含む、条項B40からB47のいずれか1つ
に記載の装置。
3番目のデータ変動範囲確定サブモジュールは、カレント反復と、カレント反復が更新
周期外であり、更新周期に少なくとも1つの反復が含まれる場合の履歴反復における、目
標データのデータ変動範囲を取得するためである。
B49、条項B40からB48のいずれか1つに記載の装置であって、さらに以下を含
む装置。
周期間隔確定モジュールは、カレント反復、プリセット周期の次の周期のカレント反復
に対応する反復、およびカレント反復がプリセット周期内にある場合のカレント反復に対
応する反復間隔によって周期を確定するためである。
第1の周期間隔適用モジュールは、カレント反復の目標データに対応するデータビット
幅によって、周期間隔内の反復の目標データのデータビット幅を確定するように構成され
る。
第2の周期間隔適用モジュールは、カレント反復の目標データに対応する小数点位置に
よって、周期間隔内の反復の目標データの小数点位置を確定するように構成される。
B50、B26項からB49項のいずれか1つに記載の装置であり、さらに以下を含む
装置。
量子化パラメータ継承モジュールは、量子化予定の層の後に1つまたは複数の層で量子
化予定の層の量子化パラメータを採用するように構成される。
B51、人工知能チップ。B26〜B50項のいずれか1つに記載のニューラルネット
ワークの量子化装置を含むチップ。
B52、B51項に記載されている人工知能チップを含む電子機器。
B53、ボードカード。ボードカードは、記憶装置、インターフェース装置、制御装置
、およびB51項に記載されている人工知能チップを含む。
ここで、人工知能チップは、それぞれ、記憶装置、制御装置、およびインターフェース
装置に接続されている。
記憶装置は、データを格納するためである。
インターフェイス装置は、人工知能チップと外部装置間のデータ伝送を実装するためで
ある。
制御装置は、人工知能チップの状態を監視するためである。
記憶装置が以下を含む、請求項B53に記載のボードカード。複数の記憶ユニットのグ
ループ、記憶ユニットの各グループは、バスを介して人工知能チップに接続され、記憶ユ
ニットは、以下である。
チップには次のものが含まれる。各記憶ユニットのデータ伝送とデータストレージを制
御するためのDDRコントローラ。
インターフェイス装置は、標準のPCIEインターフェイスである。
本開示の実施形態は上に記載されており、上記の説明は例示的であり、網羅的ではなく
、開示された実施形態に限定されない。図示された実施形態の範囲および精神から逸脱す
ることなく、多くの修正および変更は、当技術分野の通常の技術者にとって明らかである
。本明細書で使用される用語の選択は、各実施形態の市場における技術の原理、実際の適
用、または改善を最もよく説明すること、または他の通常の当業者が本明細書に開示され
る様々な実施形態を理解できるようにすることを意図する。
ニューラルネットワークの量子化の問題を解決するために提案されたソリューション(
201910505239.7)は上記のとおりである。
量子化パラメータ調整の問題を解決するために、以下の技術案(2019105285
37.8)を提案しました。具体的には、量子化パラメータの調整方法、装置および関連
製品が提案されている。
本開示は、コンピュータ技術の分野、特に、ニューラルネットワークの量子化パラメー
タの調整方法、装置、および関連製品に関する。
人工知能技術の継続的な発展に伴い、その応用分野はますます広範になり、画像認識、
音声認識、自然言語処理の分野で広く適用されている。ただし、人工知能アルゴリズムの
複雑さが増やすにつれて、処理されるデータのデータ量とデータ次元は絶えず増加してい
る。データ量の増加は、コンピューティング装置のデータ処理効率、記憶装置のストレー
ジ容量、およびメモリアクセスに影響を与える。効率などは、より大きな課題を提示する
上記の技術的問題を解決するために、従来の技術は、固定ビット幅を使用してニューラ
ルネットワークの動作データを量子化する、すなわち、浮動小数点動作データを固定点動
作データに変換して、ニューラルネットワークの動作データの圧縮を実現する。ただし、
ニューラルネットワークの操作データによって大きな違いが生じる場合がある。従来の量
子化手法では、ニューラルネットワーク全体で同じ量子化パラメータ(小数点位置など)
を使用して量子化するため、精度が低下し、データ操作結果に影響を与えることがよくあ
る。
これを考慮して、本開示は、ニューラルネットワークの量子化精度を改善し、計算結果
の正確性および信頼性を保証することができる、ニューラルネットワーク量子化パラメー
タの調整方法、装置および関連製品を提案する。
本開示は、ニューラルネットワークの量子化パラメータの調整方法を提供し、その方法
は以下を含む。
量子化予定のデータのデータ変動範囲を取得する。
量子化予定のデータのデータ変動範囲によって目標反復間隔を確定し、目標反復間隔に
少なくとも1回の反復を含むニューラルネットワーク操作の量子化パラメータと、ニュー
ラルネットワークを調整する。量子化パラメータは、ニューラルネットワーク演算で量子
化予定のデータに量子化操作を実装するためである。
本開示はまた、メモリおよびプロセッサを含むニューラルネットワークの量子化パラメ
ータ調整装置を提供し、メモリはコンピュータプログラムを格納し、プロセッサがコンピ
ュータプログラムを実行するとき、それは上記の方法のいずれかを実施する。ステップ。
具体的には、プロセッサが上記のコンピュータプログラムを実行すると、次の操作が実行
される。
量子化予定のデータのデータ変動範囲を取得する。
量子化予定のデータのデータ変動範囲によって目標反復間隔を確定し、目標反復間隔に
少なくとも1回の反復を含むニューラルネットワーク操作の量子化パラメータと、ニュー
ラルネットワークを調整する。量子化パラメータは、ニューラルネットワーク演算で量子
化予定のデータに量子化操作を実装するためである。
本開示はまた、コンピュータプログラムが格納されるコンピュータ可読記憶媒体を提供
し、コンピュータプログラムが実行されるとき、それは、上記の方法のいずれか1つのス
テップを実現する。具体的には、上記のコンピュータプログラムを実行すると、以下の操
作が実行される。
量子化予定のデータのデータ変動範囲を取得する。
量子化予定のデータのデータ変動範囲によって目標反復間隔を確定し、目標反復間隔に
少なくとも1回の反復を含むニューラルネットワーク操作の量子化パラメータと、ニュー
ラルネットワークを調整する。量子化パラメータは、ニューラルネットワーク演算で量子
化予定のデータに量子化操作を実装するためである。
本開示はまた、ニューラルネットワークの量子化パラメータ調整装置を提供し、その装
置は以下を含む。
取得モジュールは、量子化予定のデータのデータ変動範囲を取得するためである。
反復間隔確定モジュールは、量子化予定のデータのデータ変動範囲によって目標反復間
隔を確定するように構成され、目標反復間隔によってニューラルネットワーク操作におけ
る量子化パラメータを調整し、ここで、目標反復間隔は、少なくとも1回の反復では、ニ
ューラルネットワークの量子化パラメータを使用して、ニューラルネットワーク演算で量
子化予定のデータの量子化操作を実装する。
本開示に開示されるニューラルネットワークの量子化パラメータの調整方法、装置およ
び関連製品は、量子化予定のデータのデータ変動範囲を取得し、量子化予定のデータのデ
ータ変動範囲によって目標反復間隔を確定するので、目標反復間隔は、目標反復間隔によ
って調整され得る。ニューラルネットワークの量子化パラメータ。これにより、さまざま
な動作段階でのニューラルネットワークの量子化パラメータを、量子化予定のデータのデ
ータ分布特性に従って確定できる。同じニューラルネットワークの様々な計算データに対
して同じ量子化パラメータを使用する従来の技術と比較して、本開示の方法および装置は
、ニューラルネットワーク量子化プロセスの精度を改善し、それによって計算結果の精度
および精度を保証することができる。信頼性。さらに、目標反復間隔を確定することによ
り、量子化効率を向上させることができる。
本開示に含まれる図面は本明細書に含まれ、本明細書とともに本明細書の一部を構成す
る図面は、本開示の例示的な実施形態、特徴、および態様を示し、本開示の原理を説明す
るためである。
本開示の一実施形態による、量子化パラメータの調整方法の適用環境の概略図を示す。
図3−2は、本開示の一実施形態による、量子化予定のデータと量子化後のデータとの
間の対応の概略図を示す。
図3−3は、本開示の実施形態に従って量子化予定のデータの変換の概略図を示す。
図3−4は、本開示の一実施形態による、量子化パラメータの調整方法のフローチャー
ト。
図3ー5は、本開示の一実施形態の計算プロセスにおいて量子化予定のデータの変化傾
向図を示す。
図3−6は、本開示の一実施形態のパラメータ調整法における目標反復間隔の確定方法
のフローチャート。
図3−7は、本開示の一実施形態における小数点位置の変動範囲の確定方法のフローチ
ャート。
図3−8は、本開示の一実施形態における第2の平均値の確定方法のフローチャート。
図3−9は、本開示の一実施形態におけるデータビット幅の調整方法のフローチャート
図3−10は、本開示の別の実施形態におけるデータビット幅の調整方法のフローチャ
ート。
図3−11は、本開示の別の実施形態におけるデータビット幅の調整方法のフローチャ
ート。
図3−12は、本開示のさらに別の実施形態におけるデータビット幅の調整方法のフロ
ーチャート。
図3−13は、本開示の別の実施形態における第2の平均値の確定方法のフローチャー
ト。
図3−14は、本開示の別の実施形態による、量子化パラメータの調整方法のフローチ
ャート。
図3−15は、本開示の一実施形態の量子化パラメータの調整方法における量子化パラ
メータの調整のフローチャートを示す。
図3−16は、本開示の別の実施形態のパラメータ調整方法における目標反復間隔の確
定方法のフローチャート。
図3−17は、本開示の別の実施形態による、パラメータ調整方法における目標反復間
隔の確定方法のフローチャート。
図3−18は、本開示の別の実施形態による、量子化パラメータの調整方法のフローチ
ャート。
図3−19は、本開示の別の実施形態による、量子化パラメータの調整方法のフローチ
ャート。
図3−20は、本開示の一実施形態による、量子化パラメータ調整装置の構造ブロック
図を示す。
図3−21は、本開示の一実施形態による、量子化パラメータ調整装置の構造ブロック
図を示す。
図3−22は、本開示の一実施形態による、量子化パラメータ調整装置の構造ブロック
図を示す。
図3−23は、本開示の一実施形態による、量子化パラメータ調整装置の構造ブロック
図を示す。
図3−24は、本開示の一実施形態による、量子化パラメータ調整装置の構造ブロック
図を示す。
図3ー25は、本開示の一実施形態によるボードカードの構造ブロック図を示している
量子化パラメータ調整の問題を解決するために、以下の技術案(2019105285
37.8)を提案しました。本開示の実施形態における技術案は、本開示の実施形態にお
ける添付の図面を参照して明確かつ完全に説明される。明らかに、記載された実施形態は
、本開示の実施形態の一部であるが、すべての実施形態ではない。本開示の実施形態に基
づいて、創造的な作業なしに当業者によって得られた他のすべての実施形態は、本開示の
保護範囲に含まれる。
本開示の特許請求の範囲、説明および図面における「第1の」および「第2の」という
用語は、特定の順序を説明するのではなく、異なる対象を区別するためであることを理解
されたい。本開示の明細書および特許請求の範囲で使用される「含む」および「含む」と
いう用語は、記載された特徴、全体、ステップ、操作、要素および/または構成要素の存
在を示すが、1つまたは複数の他の特徴、全体を除外しない。ステップ、操作、要素、コ
ンポーネント、および/またはそれらのコレクションの存在または追加。
この開示明細書で使用される用語は、特定の実施形態を説明することのみを目的として
おり、開示を限定することを意図するものではないことも理解されたい。本開示および特
許請求の範囲で使用されるように、文脈が他の状況を明確に示さない限り、単数形「一」
、「1つ」および「当該」は、複数形を含むことを意図している。本開示の明細書および
特許請求の範囲で使用される「および/または」という用語は、関連してリストされた1
つまたは複数の項目の任意の組み合わせおよびすべての可能な組み合わせを指し、これら
の組み合わせを含むことをさらに理解されたい。
人工知能アルゴリズムの複雑さが増やすにつれて、処理されるデータのデータ量とデー
タ次元も増やす。従来のニューラルネットワークアルゴリズムは通常、浮動小数点データ
フォーマットを使用してニューラルネットワーク演算を実行する。データの量は、コンピ
ューティング装置のデータ処理効率、ストレージ容量、および記憶装置のメモリアクセス
効率に大きな課題をもたらする。上記の問題を解決するために、ニューラルネットワーク
の計算プロセスに関連する計算データを量子化することができる。つまり、浮動小数点で
表される計算データを固定点で表される計算データに変換することで、記憶装置のストレ
ージ容量とメモリアクセス効率を低下させ、計算装置を改善する。計算効率。ただし、従
来の量子化方法では、同じデータビット幅と量子化パラメータ(小数点位置など)を使用
して、ニューラルネットワークのトレーニングプロセス全体でニューラルネットワークの
さまざまな操作データを量子化する。操作データが異なるため、または、トレーニングプ
ロセスの各段階での操作データが異なるため、上記の量子化方法を量子化に使用すると、
精度が不十分になり、操作結果に影響を与えることがよくある。
これに基づいて、本開示は、メモリ110およびプロセッサ120を含む量子化パラメ
ータ調整装置に適用することができるニューラルネットワーク量子化パラメータの調整方
法を提供する。図3−1は、量子化パラメータ調整装置100の構造ブロック図であり、
量子化パラメータ調整装置100のプロセッサ120は、汎用プロセッサであり得、量子
化パラメータ調整装置100のプロセッサ120はまた、人工知能プロセッサであり得る
。量子化パラメータ調整装置100のプロセッサはまた、ここで特に限定されない、汎用
プロセッサおよび人工知能プロセッサを含み得る。記憶110は、ニューラルネットワー
ク演算プロセスにおいて操作データを格納するために使用され得、操作データは、ニュー
ロンデータ、重みデータ、または勾配データのうちの1つ以上であり得る。メモリ110
はまた、コンピュータプログラムを格納するために使用され得る。コンピュータプログラ
ムが前述のプロセッサ120によって実行されるとき、本開示の実施形態における量子化
パラメータの調整方法を実施することができる。この方法は、ニューラルネットワークの
トレーニングまたは微調整プロセスに適用でき、ニューラルネットワークのトレーニング
または微調整プロセスのさまざまな段階でコンピューティングデータの分布特性に従って
コンピューティングデータの量子化パラメータを動的に調整し、それによってニューラル
ネットワークの量子化プロセスを改善することができる。精度。これにより、計算結果の
精度と信頼性が保証される。
特に指定のない限り、人工知能プロセッサは、CPU、GPU、FPGA、DSP、A
SICなどの適切なハードウェアプロセッサである。特に指定のない限り、メモリは、R
RAM(抵抗ランダムアクセスメモリ)、動的ランダムアクセスメモリ(DRAM)、静
的など、任意の適切な磁気記憶媒体または磁気光学記憶媒体であり得る。SRAM(静的
ランダムアクセスメモリ)、拡張動的ランダムアクセスメモリ(EDRAM)、高帯域幅
メモリ(HBM)、またはハイブリッドメモリキューブ(HMC)など。
本開示の内容をよりよく理解するために、以下は、最初に、本開示の実施形態における
量子化プロセスおよび量子化プロセスに含まれる量子化パラメータを紹介する。
本開示の実施形態において、量子化は、第1のデータフォーマットの動作データを第2
のデータフォーマットの動作データに変換することを指す。ここで、第1のデータフォー
マットの算術データは浮動小数点算術データであり得るし、第2のデータフォーマットの
算術データは固定点算術データであり得る。浮動小数点で表される計算データは、通常、
大きな記憶域を占めるため、浮動小数点で表される計算データを固定点で表される計算デ
ータに変換することにより、記憶域を節約し、計算データの記憶効率と計算効率を向上さ
せることができる。
任意選択で、量子化プロセスの量子化パラメータは、小数点位置および/またはスケー
リング係数を含み得、ここで、小数点位置は、量子化された操作データにおける小数点位
置を指す。スケーリング係数は、量子化後のデータの最大値と量子化予定のデータの最大
絶対値との間の比率を指する。さらに、量子化パラメータは、オフセットを含み得る。オ
フセットは、量子化される非対称データ用であり、量子化予定のデータ内の複数の要素の
中間値を指す。具体的には、オフセットは、量子化予定のデータであり得る。データ内の
複数の要素の中間値。量子化予定のデータが対称的な量子化予定のデータである場合、量
子化パラメータにオフセットを含めない場合がある。この場合、量子化予定のデータに応
じて、小数点位置やスケーリング係数などの量子化パラメータを確定できる。
図3−2に示すように、量子化予定のデータは原点に対して対称なデータであり、量子
化予定のデータの要素の最大絶対値をZ1とすると、量子化予定のデータに対応するデー
タビット幅はn、Aは使用するデータビットである。幅nは、量子化予定のデータを量子
化した後に量子化予定のデータで表すことができる最大値である。Aは2(2n−1
1)であり、AにはZ1を含める必要があり、Z1はA/2より大きくなければならない
。式(1)には次のような制約がある。
(2n−1−1)>=Z>2s−1(2n−1−1) 式(
1)
プロセッサは、量子化予定のデータの最大絶対値Z1とデータビット幅nに従って、小
数点位置sを計算できる。たとえば、次の式(2)を使用して、量子化予定のデータに対
応する小数点位置を計算できる。
s=ceil(ln(Z/(2n−1−1))) 式(2)
ここで、ceilは切り上げられ、Z1は量子化予定のデータの最大絶対値、sは小数
点位置、nはデータビット幅である。
このとき、小数点位置sを使用して量子化予定のデータを量子化すると、量子化予定の
データの浮動小数点表現Fは次のように表すことができる。F≒I×2ここで、
は量子化されたnビットのバイナリ表現の値を指する。sは小数点位置を示する。こ
こで、量子化予定のデータに対応する量子化後のデータは次のとおりである。
=round(F/2) 式(3)
ここ、sは小数点位置、Iは量子化予定のデータ、Fは量子化予定のデータ、ro
undは丸めによる丸め演算である。小数点位置他の丸め演算も使用できることは理解で
きる。たとえば、式(3)の丸め演算の代わりに、切り上げ、切り下げ、ゼロへの丸めな
どの丸め演算が使用される。小数点位置一定のデータビット幅の場合、小数点位置による
量子化により得られた量子化データにおいて、小数点以下の桁数が多いほど、量子化予定
のデータの量子化精度が高くなることが理解できる。
さらに、量子化予定のデータに対応する中間表現データFx1は、以下のようになり得
る。
x1=round(F/2)x2 式(4
ここ、sは上記式(2)で求めた小数点位置、Fは量子化予定のデータ、round
は丸めによる丸め演算である。Fx1は、前述の量子化予定のデータIを逆量子化する
ことによって得られたデータであり、中間表現データFx1のデータ表現形式は、量子化
される前述のデータFのデータ表現形式と一致し、中間表現データFx1は、量子化誤
差の計算に使用できる。詳細については、以下を参照してください。ここで、逆量子化は
、量子化の逆プロセスを指する。
オプションで、スケーリング係数に第1のスケーリング係数を含めることができ、第1
のスケーリング係数は次のように計算できる。
=Z/A=Z/2(2n−1−1) 式(5)
ここで、Z1は量子化予定のデータの最大絶対値、Aはデータビット幅nで量子化予定
のデータの量子化予定のデータで表すことができる最大値、Aは2(2n−1−1)で
ある。
このとき、プロセッサは、小数点位置と第1のスケーリング係数を組み合わせて、量子
化後のデータを取得することにより、量子化予定のデータFを量子化することができる

=round(F/(2xf)) 式(6)
ここ、sは上記式(2)で求めた小数点位置、fは第1のスケーリング係数、I
量子化予定のデータ、Fは量子化予定のデータ、roundは丸めによる丸め演算であ
る。式(6)の丸め演算の代わりに、切り上げ、切り下げ、ゼロへの丸めなどの丸め演算
を使用するなど、他の丸め計算方法も使用できることは理解できる。
さらに、量子化予定のデータに対応する中間表現データFx1は、以下のようになり得
る。
x1=round(F/(2xf))x2xf 式(7
ここ、sは上記式(2)で求めた小数点位置、fはスケーリング係数、Fは量子化
予定のデータ、roundは丸めによる丸め演算である。Fx1は、前述の量子化予定の
データIを逆量子化することによって得られたデータであり、中間表現データFx1
データ表現形式は、量子化される前述のデータFのデータ表現形式と一致し、中間表現
データFx1は、量子化誤差の計算に使用できる。詳細については、以下を参照してくだ
さい。ここで、逆量子化は、量子化の逆プロセスを指する。
オプションで、スケーリング係数に2番目のスケーリング係数を含めることもできる。
2番目のスケーリング係数は次のように計算できる。
=Z/(2n−1−1) 式(8)
プロセッサは、第2のスケーリング係数を個別に使用して、量子化予定のデータF
量子化し、量子化後のデータを取得できる。
=round(F/f) 式(9)
ここ、fは第2のスケーリング係数、Iは量子化後のデータ、Fは量子化予定の
データ、roundは丸めによって実行される丸め演算である。式(9)の切り上げの代
わりに、切り上げ、切り下げ、ゼロへの切り上げなどの他の丸め演算も使用できることは
理解できる。データビット幅が一定の場合、さまざまなスケーリング係数を使用して、量
子化後のデータの数値範囲を調整できることは理解できる。
さらに、量子化予定のデータに対応する中間表現データFx1は、以下のようになり得
る。
x1=round(F/f)xf 式(10
ここで、fは第2のスケーリング係数、Fは量子化予定のデータ、roundは丸
めによって実行される丸め演算である。Fx1は、前述の量子化予定のデータIを逆量
子化することによって得られたデータであり、中間表現データFx1のデータ表現形式は
、量子化される前述のデータFのデータ表現形式と一致し、中間表現データFx1は、
量子化誤差の計算に使用できる。詳細については、以下を参照してください。ここで、逆
量子化は、量子化の逆プロセスを指する。
さらに、上記の第2のスケーリング係数は、小数点位置および第1のスケーリング係数
に従って確定することができる。つまり、第2のスケーリング係数は次の式に従って
計算できる。
=2 式(11)
ここで、sは上記の式(2)に従って確定された小数点位置であり、fは上記の式(
5)に従って計算された第1のスケーリング係数である。
任意選択で、本開示の実施形態の量子化方法は、対称データの量子化を実現できるだけ
でなく、非対称データの量子化も実現することができる。このとき、プロセッサは非対称
データを対称データに変換して、データの「オーバーフロー」を回避できる。具体的には
、量子化パラメータはオフセットも含み得、オフセットは、量子化予定のデータの中間点
値であり得る。オフセットは、原点に対する量子化予定のデータの中間点値のオフセット
を示すために使用され得る。図3−3に示すように、プロセッサは、量子化予定のデータ
のデータ分布に関する統計を実行して、量子化予定のデータのすべての要素の最小値Zm
inと、量子化予定のデータのすべての要素の最大値Zmaxを取得できる。上記のオフ
セットは、最小値Zminと最大値Zmaxに基づいて計算できる。具体的なオフセット
の計算方法は次のとおりである。
o=(Zmax+Zmin)/2 式(12)
ここで、oはオフセットを表し、Zminは量子化予定のデータのすべての要素の最小
値を表し、Zmaxは量子化予定のデータのすべての要素の最大値を表す。
さらに、プロセッサは、量子化予定のデータのすべての要素の最小値Zminおよび最
大値Zmaxに従って、量子化予定のデータの最大絶対値Zを確定することができる。
=(Zmax−Zmin)/2 式(13)
このようにして、プロセッサは、図3−3に示すように、オフセットoに従って量子化
予定のデータを変換し、量子化される非対称データを量子化される対称データに変換でき
る。プロセッサはさらに、量子化予定のデータの最大絶対値Zに従って小数点位置sを
確定できる。ここで、小数点位置は次の式に従って計算できる。
s=ceil(ln(Z/(2n−1−1))) 式(14)
ここで、ceilは切り上げられ、sは小数点位置、nはデータビット幅である。
その後、プロセッサは、オフセットと対応する小数点位置によって量子化予定のデータ
を量子化して、量子化予定のデータを取得できる。
=round((F−o)/2) 式(15)
ここ、sは上記式(14)で求めた小数点位置、oはオフセット、Iは量子化予定の
データ、Fは量子化予定のデータ、roundは丸めによる丸め演算である。式(15
)の丸め演算の代わりに、切り上げ、切り下げ、ゼロへの丸めなどの丸め演算を使用する
など、他の丸め計算方法も使用できることは理解できる。
さらに、量子化予定のデータに対応する中間表現データFx1は、以下のようになり得
る。
x1=round((F−o)/2)x2+o 式(16)
ここ、sは上記式(14)で求めた小数点位置、oはオフセット、Fは量子化予定の
データ、roundは丸めによる丸め演算である。Fx1は、前述の量子化予定のデータ
を逆量子化して得られたデータであり、中間表現データFx1のデータ表現形式は、
前述の量子化予定のデータのデータ表現形式Fと一致し、中間表現データFは、量子
化誤差の計算に使用できる。詳細については、以下を参照してください。ここで、逆量子
化は、量子化の逆プロセスを指する。
さらに任意選択で、プロセッサは、量子化予定のデータの最大絶対値Zに従って、小
数点位置sおよび第1のスケーリング係数fをさらに確定することができる。小数点位
置sの特定の計算方法については、上記の式(14)を参照されたい。第1のスケーリン
グ係数fは、次の式に従って計算できる。
=Z/A=Z/(2(2n−1−1)) 式(17)
プロセッサは、オフセットおよびそれに対応する第1のスケーリング係数fおよび小
数点位置sに従って、量子化予定のデータを量子化して、量子化後のデータを取得するこ
とができる。
=round((F−o)/(2xf)) 式(18)
ここで、fは第1のスケーリング係数、sは上記の式(14)に従って確定された小
数点位置、oはオフセット、Iは量子化後のデータ、Fは量子化予定のデータ、ro
undは丸めによって実行される丸め演算である。式(18)の丸め演算の代わりに、切
り上げ、切り下げ、ゼロへの丸めなどの丸め演算を使用できるなど、他の丸め演算も使用
できることは理解できる。
さらに、量子化予定のデータに対応する中間表現データFx1は、以下のようになり得
る。
x1=round((F−o)/(2xf))x2xf+o 式(1
9)
ここ、fは第1のスケーリング係数、sは上記の式(14)に従って確定された小数
点位置、oはオフセット、Fは量子化予定のデータ、roundは丸めによって実行さ
れる丸め演算である。Fx1は、前述の量子化予定のデータIを逆量子化して得られた
データであり、中間表現データFx1のデータ表現形式は、前述の量子化予定のデータの
データ表現形式Fと一致し、中間表現データFx1は、量子化誤差の計算に使用できる
。詳細については、以下を参照してください。ここで、逆量子化は、量子化の逆プロセス
を指する。
オプションで、スケーリング係数に2番目のスケーリング係数を含めることもできる。
2番目のスケーリング係数は次のように計算できる。
=Z/(2n−1−1) 式(20)
プロセッサは、第2のスケーリング係数を個別に使用して、量子化予定のデータF
量子化し、量子化後のデータを取得できる。
=round(F/f) 式(21)
ここ、fは第2のスケーリング係数、Iは量子化後のデータ、Fは量子化予定の
データ、roundは丸めによって実行される丸め演算である。式(21)の丸め演算の
代わりに、切り上げ、切り下げ、ゼロへの丸めなどの丸め演算を使用するなど、他の丸め
演算も使用できることは理解できる。データビット幅が一定の場合、さまざまなスケーリ
ング係数を使用して、量子化後のデータの数値範囲を調整できることは理解できる。
さらに、量子化予定のデータに対応する中間表現データFx1は、以下のようになり得
る。
x1=round(F/f)xf 式(22
ここで、fは第2のスケーリング係数、Fは量子化予定のデータ、roundは丸
めによって実行される丸め演算である。Fx1は、前述の量子化予定のデータIを逆量
子化して得られたデータであり、中間表現データFx1のデータ表現形式は、前述の量子
化予定のデータのデータ表現形式Fと一致し、中間表現データFx1は、量子化誤差の
計算に使用できる。詳細については、以下を参照してください。ここで、逆量子化は、量
子化の逆プロセスを指する。
また、上記の第2のスケーリング係数は、小数点位置および第1のスケーリング係数f
に応じて確定することができる。つまり、第2のスケーリング係数は次の式に従って計
算できる。
=2xf 式(23)
ここで、sは上記の式(14)に従って確定された小数点位置であり、fは上記の式
(17)に従って計算された第1のスケーリング係数である。
オプションで、プロセッサは、オフセットoに従って量子化予定のデータを量子化する
こともできる。この時点で、小数点位置sおよび/またはスケーリング係数はプリセット
値である場合がある。このとき、プロセッサはオフセットに従って量子化予定のデータを
量子化し、量子化予定のデータを取得する。
=round(F−o) 式(24)
ここで、oはオフセット、Iは量子化後のデータ、Fは量子化予定のデータ、ro
undは丸めによって実行される丸め演算である。式(24)の丸め演算の代わりに、切
り上げ、切り捨て、ゼロへの丸めなどの丸め演算を使用するなど、他の丸め演算も使用で
きることは理解できる。データビット幅が一定の場合、異なるオフセットを使用して、量
子化後のデータの値と量子化前のデータとの間のオフセットを調整できることは理解でき
る。
さらに、量子化予定のデータに対応する中間表現データFx1は、以下のようになり得
る。
x1=round(F−o)+o 式(25)
ここで、oはオフセット、Fは量子化予定のデータ、roundは丸めによって実行
される丸め演算である。Fx1は、前述の量子化予定のデータIを逆量子化して得られ
たデータであり、中間表現データFx1のデータ表現形式は、前述の量子化予定のデータ
のデータ表現形式Fと一致し、中間表現データFx1は、量子化誤差の計算に使用でき
る。詳細については、以下を参照してください。ここで、逆量子化は、量子化の逆プロセ
スを指する。
本開示の量子化操作は、上記の浮動小数点データの量子化に使用できるだけでなく、固
定点データの量子化を実現するためにも使用することができる。任意選択で、第1のデー
タフォーマットの算術データも固定点算術データであり得、第2のデータフォーマットの
算術データは固定点算術データであり得、第2のデータフォーマットの算術データは以下
のデータ表現範囲を有する。第1のデータフォーマットのデータは範囲を表し、第2のデ
ータフォーマットの小数点以下の数は第1のデータフォーマットのそれよりも大きくなる
。つまり、第2のデータフォーマットの操作データは第1のデータフォーマットの操作デ
ータよりも精度が高くなる。たとえば、第1のデータフォーマットの算術データは16ビ
ットを占める固定小数点データであり、第2のデータフォーマットは8ビットを占める固
定小数点データである場合がある。本開示の実施形態において、量子化処理は、固定点計
算データを使用することによって実行することができ、それにより、計算データによって
占有される記憶空間をさらに減少し、計算データの記憶効率および計算効率を改善する。
本開示の一実施形態の量子化パラメータの調整方法は、ニューラルネットワークのトレ
ーニングまたは微調整プロセス中に計算されたデータの量子化パラメータを動的に調整し
て、ニューラルネットワークのトレーニングまたは微調整プロセス中に改善するように、
ニューラルネットワークのトレーニングまたは微調整プロセスに適用することができる。
ニューラルネットワークの量子化精度。ここで、ニューラルネットワークは、ここで特に
限定されない、深部ニューラルネットワークまたは畳み込みニューラルネットワークなど
であり得る。
ニューラルネットワークのトレーニング(Training)は、ニューラルネットワ
ーク(当該ニューラルネットワークの重みはランダムな数にしてもよい)に対して複数回
の反復(iteration)行い、ニューラルネットワークの重みがプリセット条件を
満たすようにすることを指す。ここ、1回の反復演算には、一般に、1回の順方向演算、
1回の逆方向演算、および1回の重み更新演算が含まれる。順方向演算とは、ニューラル
ネットワークの入力データに基づいて順方向演算の結果を得るための順方向推論のプロセ
スを指する。逆方向演算は、順方向演算の結果とプリセットされた基準値に基づいて損失
値を確定し、損失値に応じて重み勾配値および/または入力データ勾配値を確定するプロ
セスである。重み更新演算とは、重みの勾配に応じてニューラルネットワークの重みを調
整するプロセスを指する。具体的には、ニューラルネットワークのトレーニングプロセス
は次のとおりである。プロセッサは、ランダム数の重みを持つニューラルネットワークを
使用して、入力データに対して順方向演算を実行し、順方向演算の結果を取得できる。次
に、プロセッサは、順方向演算の結果とプリセット参照値に従って損失値を確定し、損失
値に従って重み勾配値および/または入力データ勾配値を確定する。最後に、プロセッサ
は、重み勾配値に従ってニューラルネットワークの勾配値を更新し、新しい重みを取得し
て、反復演算を完了することができる。プロセッサは、ニューラルネットワークの順方向
演算の結果がプリセット条件を満たすまで、ループ内で複数の反復を実行する。たとえば
、ニューラルネットワークの順方向演算結果がプリセット基準値に収束すると、トレーニ
ングは終了する。または、ニューラルネットワークの順方向演算結果とプリセット基準値
によって確定される損失値がプリセット精度以下になると、トレーニングは終了する。
微調整とは、ニューラルネットワークの精度がプリセット要件を満たすことができるよ
うに、ニューラルネットワークで複数の反復演算を実行するプロセスを指する(ニューラ
ルネットワークの重みはすでに収束状態にあり、ランダムな数値ではない)。この微調整
プロセスは、基本的に上記のトレーニングプロセスと同じであり、収束状態でニューラル
ネットワークを再トレーニングするプロセスと見なすことができる。推論とは、重みがプ
リセット条件を満たすニューラルネットワークを使用して、画像認識などのニューラルネ
ットワークの使用など、認識や分類などの機能を実現するための順方向演算を実行するプ
ロセスを指する。
本開示の実施形態では、上記のニューラルネットワークのトレーニングまたは微調整プ
ロセスにおいて、異なる量子化パラメータを、ニューラルネットワーク動作の異なる段階
で使用して、ニューラルネットワークの動作データを量子化することができ、反復動作は
、量子化後のデータに従って実行される。ニューラルネットワークの運用プロセスにおけ
るデータストレージスペースを減少し、データアクセスと運用の効率を向上させることが
できる。図3−4に示すように、上記の方法には次のものが含まれる。
S100で、量子化予定のデータのデータ変動範囲を取得する。
任意選択で、プロセッサは、量子化予定のデータのデータ変動範囲を直接読み取ること
ができ、量子化予定のデータのデータ変動範囲は、ユーザによって入力され得る。
オプションで、プロセッサは、カレント反復で量子化予定のデータおよび履歴反復で量
子化予定のデータによって、量子化予定のデータのデータ変動範囲を計算することもでき
る。ここで、カレント反復は、現在実行されている反復演算を指し、履歴反復は、カレン
ト反復の前に実行される反復演算。たとえば、プロセッサは、量子化予定のデータの要素
の最大値とカレント反復の要素の平均値、および量子化予定のデータの要素の最大値と、
各履歴反復で量子化予定のデータの要素の平均値を、各反復の要素の値に従って取得でき
る。要素の最大値と平均値によって、量子化予定のデータの変動範囲が決まる。カレント
反復で量子化予定のデータの要素の最大値が、プリセット履歴反復数で量子化予定のデー
タの要素の最大値に近く、カレント反復で量子化予定のデータの要素の平均値が、プリセ
ット履歴反復数である場合量子化予定のデータの要素の平均値が比較的近い場合、量子化
予定のデータのデータ変動範囲が小さいと判断できる。そうでなければ、量子化予定のデ
ータのデータ変動範囲が比較的大きいと判断することができる。別の例として、量子化予
定のデータのデータ変動範囲は、量子化予定のデータのスライディング平均値または分散
によって表すことができ、これはここでは特に限定されない。
本開示の実施形態では、量子化予定のデータのデータ変動範囲を使用して、量子化予定
のデータの量子化パラメータを調整する必要があるかどうかを確定することができる。た
とえば、量子化予定のデータのデータ変動範囲が大きい場合、量子化の精度を確保するた
めに、量子化パラメータを時間内に調整する必要があることを示している可能性がある。
量子化予定のデータのデータ変動範囲が小さい場合は、履歴反復の量子化パラメータをカ
レント検査反復とその後の一定数の反復に使用できるため、量子化パラメータの頻繁な調
整を回避し、量子化効率を向上させることができる。
ここで、各反復は、量子化される少なくとも1つのデータを含み、量子化予定のデータ
は、浮動点または固定点によって表される算術データであり得る。任意選択で、各反復で
量子化予定のデータは、ニューロンデータ、重みデータ、または勾配データのうちの少な
くとも1つであり得、勾配データはまた、ニューロン勾配データ、重み勾配データなどを
含み得る。
S200、量子化予定のデータのデータ変動範囲によって目標反復間隔を確定し、目標
反復間隔に少なくとも1回の反復を含むニューラルネットワーク操作の量子化パラメータ
と、ニューラルネットワークを調整する。量子化パラメータは、ニューラルネットワーク
演算で量子化予定のデータに量子化操作を実装するためである。
任意選択で、量子化パラメータは、上記の小数点位置および/またはスケーリング係数
を含み得、ここで、スケーリング係数は、第1のスケーリング係数および第2のスケーリ
ング係数を含み得る。特定の小数点位置の計算方法は上記の式(2)を参照でき、スケー
リング係数の計算方法は上記の式(5)または(8)を参照できるが、ここでは繰り返し
ない。オプションで、量子化パラメータにオフセットを含めることもできる。オフセット
の計算方法については、上記の式(12)を参照してください。さらに、プロセッサは、
上記の式(14)に従って、式(14)に従って小数点位置を確定することもできる。式
(17)または(20)はスケーリング係数を確定する。本開示のこの実施形態では、プ
ロセッサは、確定された目標反復間隔によって、上記の小数点位置、スケーリング係数、
またはオフセットの少なくとも1つを更新して、ニューラルネットワーク動作における量
子化パラメータを調整することができる。つまり、ニューラルネットワーク運用の量子化
パラメータは、ニューラルネットワーク運用で量子化予定のデータのデータ変動範囲によ
って更新できるため、量子化精度を保証することができる。
量子化予定のデータのデータ変化曲線は、ニューラルネットワークのトレーニングまた
は微調整プロセス中に計算データの変化傾向について統計および分析を実行することによ
って取得できることは理解できる。図3−5に示すように、データ変化曲線によれば、ニ
ューラルネットワークのトレーニングまたは微調整の初期段階では、さまざまな反復で量
子化予定のデータのデータが大幅に変化することがわかる。トレーニングまたは微調整操
作が進むにつれて、量子化予定のデータのデータ変化は徐々にフラットになる傾向がある
。したがって、ニューラルネットワークのトレーニングまたは微調整の初期段階では、量
子化パラメータをより頻繁に調整できる。ニューラルネットワークのトレーニングまたは
微調整の中間および後期段階では、量子化パラメータを複数の反復またはトレーニングサ
イクルの間隔で調整できる。本開示の方法は、適切な反復間隔を確定することにより、量
子化精度と量子化効率との間のバランスを達成することである。
具体的には、プロセッサは、量子化予定のデータのデータ変動範囲によって目標反復間
隔を確定して、目標反復間隔によってニューラルネットワーク操作における量子化パラメ
ータを調整することができる。オプションで、量子化予定のデータのデータ変動範囲が減
少するにつれて、目標反復間隔が増やす場合がある。つまり、量子化予定のデータのデー
タ変動範囲が大きいほど、目標反復間隔が短くなり、量子化パラメータの調整頻度が高く
なる。量子化予定のデータのデータ変動範囲が小さいほど、目標反復間隔が大きくなり、
量子化パラメータの調整の頻度が低くなることを示している。もちろん、他の実施形態で
は、上記の目標反復間隔もハイパーパラメータであり得る。例えば、目標反復間隔は、ユ
ーザによって設定され得る。
任意選択で、前述の重みデータ、ニューロンデータ、勾配データ、および量子化される
他のデータは、異なる反復間隔を有することができる。これに対応して、プロセッサは、
量子化される様々なデータに対応するデータ変動振幅を取得し、各タイプの量子化予定の
データのデータ変動振幅に従って、量子化される対応するデータに対応する目標反復間隔
を確定することができる。言い換えれば、量子化される様々なデータの量子化プロセスを
非同期的に実行することができる。本開示の実施形態では、量子化される異なるタイプの
データ間の差異のために、量子化される異なるデータのデータ変動範囲を使用して、対応
する目標反復間隔を確定することができ、対応する目標反復間隔は、対応する目標反復間
隔によって確定することができる。これにより、量子化パラメータは、量子化予定のデー
タの量子化精度を保証し、それによってニューラルネットワークの演算結果の正確さを保
証することができる。
もちろん、他の実施形態では、同じ目標反復間隔を、量子化される異なるタイプのデー
タについて確定して、目標反復間隔によって量子化される対応するデータに対応する量子
化パラメータを調整することができる。例えば、プロセッサは、量子化される様々なデー
タのデータ変動範囲を取得し、量子化予定のデータの最大データ変動範囲によって目標反
復間隔を確定し、目標反復間隔によって量子化される様々なデータの量子化パラメータを
確定し得る。さらに、量子化されるさまざまなタイプのデータでも、同じ量子化パラメー
タを使用できる。
さらに任意選択で、前述のニューラルネットワークは、少なくとも1つの操作層を含み
得、そして量子化されるべきデータは、各操作層に含まれるニューロンデータ、重みデー
タ、または勾配データのうちの少なくとも1つであり得る。このとき、プロセッサは、現
在の算術層に関連して量子化予定のデータを取得し、上記の方法に従って、現在の算術層
で量子化される様々なデータのデータ変動範囲および対応する目標反復間隔を確定するこ
とができる。
任意選択で、プロセッサは、各反復演算プロセスで1回量子化予定のデータのデータ変
動範囲を確定し、量子化される対応するデータのデータ変動範囲によって目標反復間隔を
確定することができる。言い換えると、プロセッサは、各反復で1回目標反復間隔を計算
できる。特定の目標反復間隔の計算については、以下の説明を参照してください。さらに
、プロセッサは、プリセット条件に従って各反復から検査反復を選択し、各検査反復で量
子化予定のデータの変動範囲を確定し、検査反復に対応する目標反復間隔によって量子化
パラメータなどを更新および調整することができる。このとき、反復が選択された検査反
復でない場合、プロセッサは反復に対応する目標反復間隔を無視する場合がある。
オプションで、各目標反復間隔は検証反復に対応することができ、検証反復は、目標反
復間隔の1番目の反復または目標反復間隔の終了反復であり得る。プロセッサは、各目標
反復間隔の検査反復でニューラルネットワークの量子化パラメータを調整して、目標反復
間隔によってニューラルネットワーク演算の量子化パラメータを調整することができる。
ここで、検証の反復は、現在の量子化パラメータが量子化予定のデータの要件を満たして
いるかどうかを検証するための時点である可能性がある。調整前の量子化パラメータは、
調整後の量子化パラメータと同じでも、調整後の量子化パラメータとは異なる場合もある
。オプションで、隣接する検査反復の間隔は、ターゲットの反復の間隔以上にすることが
できる。
たとえば、目標反復間隔は、カレント検査反復からの反復数を計算する場合があり、カ
レント検査反復は、目標反復間隔の開始反復である場合がある。たとえば、カレント検査
反復が100回目の反復である場合、プロセッサは、量子化予定のデータのデータ変動範
囲によって、目標反復間隔が3であると判断し、プロセッサは、目標反復間隔に3回の反
復が含まれ、それぞれが100回目の反復であると判断できる。2回目の反復、101回
目の反復、102回目の反復。プロセッサは、100回目の反復でニューラルネットワー
ク演算の量子化パラメータを調整できる。ここで、カレント検査の反復は、プロセッサが
現在量子化パラメータの更新と調整を実行しているときの対応する反復演算である。
オプションで、目標反復間隔は、カレント検査反復の次の反復から計算することもでき
、カレント検査反復は、カレント検査反復の前の一つ前の反復間隔の終了反復であっても
よい。たとえば、カレント検査反復が100回目の反復である場合、プロセッサは、量子
化予定のデータのデータ変動範囲によって、目標反復間隔が3であると判断し、プロセッ
サは、目標反復間隔に3回の反復(101回目反復、第102反復、および第103反復
)が含まれていると判断できる。プロセッサは、100回目の反復と103回目の反復で
、ニューラルネットワーク演算の量子化パラメータを調整できる。この開示は、目標反復
間隔の確定方法を特に制限するものではない。
一実施形態では、小数点位置、スケーリング係数、およびオフセットの上記の計算式か
ら、量子化パラメータは、量子化予定のデータに関連することが多いことが分かる。した
がって、上記の操作S100において、量子化予定のデータのデータ変動範囲はまた、こ
れは、量子化パラメータの変動範囲によって間接的に確定され、量子化予定のデータのデ
ータ変動範囲は、量子化パラメータの変動範囲によって表すことができる。具体的には、
図3ー6に示されるように、前述の操作S100は、以下を含み得る。
S110、小数点位置の変動範囲を取得する。ここで、小数点位置の変動範囲を使用し
て、量子化予定のデータのデータ変動範囲を表すことができ、小数点位置の変動範囲は、
量子化予定のデータのデータ変動範囲に対して正である。関連。
オプションで、小数点位置の変動範囲は、量子化予定のデータの変動範囲を間接的に反
映できる。小数点位置の変動範囲は、カレント検査反復の小数点位置および少なくとも1
つの履歴反復の小数点位置によって確定され得る。ここで、現在の検査反復の小数点位置
と各履歴反復の小数点位置は、式(2)に従って確定できる。もちろん、現在の検査反復
の小数点位置と各履歴反復の小数点位置は、式(14)に従って確定することもできる。
たとえば、プロセッサは、カレント検査反復の小数点位置と履歴反復の小数点位置の分
散を計算し、分散に基づいて小数点位置の変動範囲を確定することもできる。別の例とし
て、プロセッサは、カレント検査反復の小数点位置の平均値および履歴反復の小数点位置
の平均値に従って、小数点位置の変動範囲を確定することができる。具体的には、図3ー
7に示されるように、前述の操作S110は、以下を含み得る。
S111、カレント検査反復前の一つ前の検査反復に対応する小数点位置と、一つ前の
検査反復前の履歴反復に対応する小数点位置によって、第1の平均値を確定する。ここで
、前の検査反復は、量子化パラメータが最後に調整された時間に対応する反復であり、前
の検査反復とカレント検査反復との間に少なくとも1つの反復間隔がある。
オプションで、少なくとも1つの履歴反復が少なくとも1つの反復間隔に属し、各反復
間隔が1つの検査反復に対応し、2つの隣接する検査反復が1つの反復間隔を持つ場合が
ある。前述の操作S111における前の検査反復は、目標反復間隔前の一つ前の反復間隔
に対応する検査反復であり得る。
オプションで、第1の平均値は次の式に従って計算できる。
M1=a1xst−1+a2xst−2+a3xst−3+...+amxs
(26)
ここで、a1〜amは各反復の小数点位置に対応する計算された重みを指し、st−1
は前の検査反復に対応する小数点位置を指する。st−2、st−3...Sは、最後
の検査反復前の履歴反復に対応する小数点位置を指し、M1は上記の第1の平均値を指す
る。また、データの分布特性によれば、履歴反復が前回の検査反復から遠いほど、前回の
検査反復付近の反復小数点位置の分布や変動範囲への影響が小さいため、上記の計算重み
はa1として計算できる。a1〜amの順序は順番に減少する。
たとえば、最後の検査反復はニューラルネットワーク演算の100回目の反復であり、
履歴反復は1回目の反復から99回目の反復までであり、プロセッサは100回目の反復
の小数点位置を取得できる(つまり、st−1)100回目の反復前の履歴反復の小数点
位置を取得する。つまり、sはニューラルネットワークの1番目の反復に対応する小数
点位置を指してもよい...、st−3はニューラルネットワークを参照できるst−2
の98回目の反復に対応する小数点位置は、ニューラルネットワークの99回目の反復に
対応する小数点位置を指してもよい。さらに、プロセッサは、上記の式に従って第1の平
均値を計算することができる。
さらに、第1の平均値は、各反復間隔に対応する検査反復の小数点位置によって計算で
きる。たとえば、第1の平均値は次の式に従って計算できる。
M1=a1xst−1+a2xst−2+a3xst−3+...+amxs
ここで、a1〜amは、各検査反復の小数点位置に対応する計算された重みを参照し、
t−1は、前の検査反復に対応する小数点位置を指す。st−2、st−3...s
は、最後の検査反復前のプリセット反復間隔数の検査反復に対応する小数点位置を指し、
M1は上記の第1の平均値を指する。
たとえば、最後の検査反復はニューラルネットワーク演算の100回目の反復であり、
履歴反復は1回目の反復から99回目の反復までであり、99回の履歴反復は11回の反
復間隔に分割できる。たとえば、1回目から9回目までは第1反復間隔、10回目から1
8回目は第2反復間隔、...、90回目から99回目は第11反復間隔である。次に、
プロセッサは100回目の反復の小数点位置(つまりst−1)を取得し、100回目の
反復の前の反復間隔で検査反復の小数点位置を取得できる。つまり、sはニューラルネ
ットワークを参照できる。検査反復の1番目の反復間隔に対応する小数点位置(たとえば
、sはニューラルネットワークの1番目の反復に対応する小数点位置を指してもよい)
、...、st−3はニューラルネットワークの10番目の反復間隔の検査反復に対応す
る小数点位置を指してもよい(たとえば、st−3はニューラルネットワークの81番目
の反復に対応する小数点位置を指してもよい)、st−2はニューラルネットワークの1
1番目の反復を参照できるインターバルテストの反復に対応する小数点位置(たとえば、
t−2は、ニューラルネットワークの90番目の反復に対応する小数点位置を指しても
よい)。さらに、プロセッサは、上記の式に従って第1の平均値M1を計算することがで
きる。
本開示の実施形態では、例示の便宜のために、反復間隔が同じ数の反復を含むと想定さ
れる。実際の使用では、反復間隔に含まれる反復回数は異なる場合がある。オプションで
、反復間隔に含まれる反復数は、反復が増やすにつれて増やす。つまり、ニューラルネッ
トワークのトレーニングまたは微調整が進むにつれて、反復間隔はますます大きくなる可
能性がある。
さらに、計算をさらに簡素化し、データが占めるストレージスペースを減少するために
、上記の第1平均値M1は、次の式を使用して計算できる。
M1=αxst−1+(1−α)xM0 式(27)
ここ、αは前回の検査反復に対応する小数点位置の計算重み、s(t−1)は前回の検
査反復に対応する小数点位置、M0は前回の検査反復前の検査反復に対応するスライディ
ングを表す。平均値については、M0の具体的な計算方法は、上記のM1の計算方法を参
照できるが、ここでは繰り返しない。
S112:カレント検査反復に対応する小数点位置と、カレント検査反復前の履歴反復
の小数点位置によって、第2の平均値を確定する。ここで、カレント検査反復に対応する
小数点位置は、カレント検査反復の目標データビット幅および量子化予定のデータによっ
て確定することができる。
オプションで、第2の平均値M2は、次の式に従って計算できる。
M2=b1xs+b2xst−1+b3xst−2+...+bmxs 式(2
8)
ここで、b1〜bmは各反復の小数点位置に対応する計算された重みを指し、sはカ
レント検査反復に対応する小数点位置を指する。st−1、st−2...sこれは、
カレント検査反復前の履歴反復に対応する小数点位置を指し、M2は上記の第2の平均値
を指する。さらに、データの分布特性によれば、履歴反復がカレント検査反復から離れる
ほど、カレント検査反復に近い反復小数点位置の分布および変動範囲への影響が小さくな
るため、上記の計算の重みはb1〜bmに基づくことができる。順序が減少する。
たとえば、カレント検査の反復はニューラルネットワーク演算の101回目の反復であ
り、カレント検査の反復前の履歴の反復は1回目の反復から100回目の反復を指する。
次に、プロセッサは101番目の反復の小数点位置(つまりs)を取得し、101番目
の反復の前の履歴反復の小数点位置を取得できる。つまり、sは、ニューラルネットワ
ークの1番目の反復の対応する小数点位置を指してもよく、...、st−2は、ニュー
ラルネットワークの99回目の反復に対応する小数点位置を指してもよく、st−1は、
ニューラルネットワークの100回目の反復に対応する小数点位置を指してもよい。さら
に、プロセッサは、上記の式に従って第2の平均値M2を計算することができる。
任意選択で、第2の平均値は、各反復間隔に対応する検査反復の小数点位置に従って計
算され得る。具体的には、図3−8に示すように、前述の動作S112は、以下の動作を
含み得る。
S1121、中間スライディング平均値のプリセット数を取得する。中間スライディン
グ平均値のそれぞれは、カレント検査反復の前の検査反復のプリセット数に従って確定さ
れ、検査反復はニューラルネットワークの量子化を調整することである。プロセスのパラ
メータは、対応する反復である。
S1122、カレント検査反復の小数点位置と中間スライディング平均値のプリセット
数に従って、第2の平均値を確定する。
たとえば、第2の平均値は、次の式に従って計算できる。
M2=b1xs+b2xst−1+b3xst−2+...+bmxs
ここで、b1〜bmは各反復の小数点位置に対応する計算された重みを指し、sはカ
レント検査反復に対応する小数点位置を指する。st−1、st−2...sこれは、
カレント検査反復の前の検査反復に対応する小数点位置を指し、M2は上記の第2の平均
値を指する。
たとえば、カレント検査の反復は100回目の反復であり、履歴の反復は1回目の反復
から99回目の反復までであり、99回の履歴の反復は11回の反復間隔に分割できる。
たとえば、1回目から9回目までは第1反復間隔、10回目から18回目は第2反復間隔
、...、90回目から99回目は第11反復間隔である。次に、プロセッサは100回
目の反復の小数点位置(つまりs)を取得し、100回目の反復の前の反復間隔で検査
反復の小数点位置を取得できる。つまり、sはニューラルネットワークの最初の小数点
位置を指してもよい。反復に対応する反復間隔検証小数点位置(たとえば、sはニュー
ラルネットワークの1番目の反復に対応する小数点位置を指してもよい)、...、s
−2はニューラルネットワークの10番目の反復間隔の検査反復に対応する小数点位置を
指してもよく(たとえば、st−2はニューラルネットワークの81回目の反復に対応す
る小数点位置を指してもよい)、st−1はニューラルネットワークの11回目の反復間
隔の検査反復を参照できる。対応する小数点位置(たとえば、st−1は、ニューラルネ
ットワークの90回目の反復に対応する小数点位置を指してもよい)。さらに、プロセッ
サは、上記の式に従って第2の平均値M2を計算することができる。
本開示の実施形態では、例示の便宜のために、反復間隔が同じ数の反復を含むと想定さ
れる。実際の使用では、反復間隔に含まれる反復回数は異なる場合がある。オプションで
、反復間隔に含まれる反復数は、反復が増やすにつれて増やす。つまり、ニューラルネッ
トワークのトレーニングまたは微調整が進むにつれて、反復間隔はますます大きくなる可
能性がある。
さらに、計算を簡素化し、データが占めるストレージスペースを減少するために、プロ
セッサは、カレント検査反復に対応する小数点位置によって第2の平均値を確定し、第1
の平均値、すなわち、第2の平均値は以下のようになり得る。式は次のように計算される

M2=βxs+(1−β)xM1 式(29)
ここで、βはカレント検査反復に対応する小数点位置の計算重みを指し、M1は上記の
第1の平均値を指する。
S113、第1の平均値と第2の平均値に従って第1の誤差を確定する。第1の誤差は
、カレント検査反復と履歴反復の小数点位置の変動範囲を表すためである。
任意選択で、第1の誤差は、第2の平均値と前述の第1の平均値との間の差の絶対値に
等しくてもよい。具体的には、上記の第1の誤差は、次の式に従って計算できる。
diffupdate1=|M2−M1|=β|s(t)−M1| 式(30
オプションで、上記のカレント検査反復の小数点位置は、カレント検査反復で量子化予
定のデータと、カレント検査反復に対応する目標データビット幅に基づいて確定できる。
特定の小数点位置の計算方法については、上記の式(2)または式(14)を参照してく
ださい。ここで、カレント検査反復に対応する目標データビット幅はハイパーパラメータ
である可能性がある。さらに任意選択で、カレント検査反復に対応する目標データビット
幅は、ユーザー定義の入力であり得る。オプションで、ニューラルネットワークのトレー
ニングまたは微調整のプロセスで量子化予定のデータに対応するデータビット幅は一定で
ある場合がある。つまり、同じニューラルネットワークで量子化される同じタイプのデー
タは、たとえばニューラルネットワークの場合、同じデータビット幅で量子化される。ネ
ットワークの各反復におけるニューロンデータは、8ビットのデータ幅で量子化される。
オプションで、ニューラルネットワークトレーニングまたは微調整プロセスで量子化予
定のデータに対応するデータビット幅は、データビット幅が量子化予定のデータの量子化
要件を満たすことができるように可変である。すなわち、プロセッサは、量子化予定のデ
ータによって、量子化予定のデータに対応するデータビット幅を適応的に調整し、量子化
予定のデータに対応する目標データビット幅を取得することができる。具体的には、プロ
セッサは、最初にカレント検査反復に対応する目標データビット幅を確定し、次にプロセ
ッサは、カレント検査反復に対応する目標データビット幅に対応するカレント検査反復お
よびカレント検査反復に対応する量子化データを確定し得る。
具体的には、図3−9に示されるように、前述の操作S110は、以下を含み得る。
S114で、カレント検査反復の量子化データおよびカレント検査反復の量子化データ
に従って量子化誤差を確定し、カレント検査反復の量子化データは、カレント検査反復の
量子化データを量子化することによって実行される。入手する。
任意選択で、前述のプロセッサは、初期データビット幅を使用して、量子化予定のデー
タを量子化して、前述の量子化後のデータを取得することができる。カレント検査反復の
初期データビット幅はハイパーパラメータであり得、カレント検査反復の初期データビッ
ト幅はまた、カレント検査反復の前の一つ前の検査反復の量子化データに基づいて確定さ
れ得る。
具体的には、プロセッサは、カレント検査反復で量子化予定のデータおよびカレント検
査反復で量子化予定のデータによって、中間表現データを確定することができる。オプシ
ョンで、中間表現データは、量子化予定のデータの前述の表現形式と一致する。たとえば
、プロセッサは、上記の量子化後のデータを逆量子化して、量子化予定のデータの表現形
式と一致する中間表現データを取得することができる。ここで、逆量子化は、量子化の逆
プロセスを指す。たとえば、量子化予定のデータは上記の式(3)を使用して取得でき、
プロセッサは上記の式(4)に従って量子化予定のデータを逆量子化して対応する中間表
現データを取得し、量子化予定のデータと中間表現データに従って量子化誤差を確定する
こともできる。
さらに、プロセッサは、量子化予定のデータおよび対応する中間表現データに従って、
量子化誤差を計算することができる。カレント検査反復で量子化予定のデータがF=[
,Z...,Z]であるとすると、量子化予定のデータに対応する中間表現デー
タはFx1=[Z (n),Z (n)...,Z (n)]。プロセッサは、量子化予
定のデータFおよびそれに対応する中間表現データFx1に従って誤差項を確定し、誤
差項に従って量子化誤差を確定することができる。
任意選択で、プロセッサは、中間表現データFx1の要素の合計および量子化予定のデ
ータFの要素の合計に従って、前述の誤差項を確定することができる。誤差項は、中間
表現データFx1の要素の合計および量子化後のデータFの各要素の合計の差。その後
、プロセッサは誤差項に従って量子化誤差を確定できる。特定の量子化誤差は、次の式に
従って確定できる。
diffbit=ln((Σ|Z (n)|−Σ|Z|)/Σ|Z|+1)
式(31)
ここで、zは量子化予定のデータの要素であり、Z (n)はデータFx1を表す中
央の要素である。
オプションで、プロセッサは、量子化予定のデータの各要素と中間表現データFx1
対応する要素との間の差をそれぞれ計算して、m個の差の値を取得し、m個の差の値の合
計を誤差項として使用することができる。その後、プロセッサは誤差項に従って量子化誤
差を確定できる。特定の量子化誤差は、次の式に従って確定できる。
diffbit=ln(Σ|Z (n)−Z|/Σ|Z|+1) 式(3
2)
ここで、zは量子化予定のデータの要素であり、Z (n)はデータFx1を表す中
央の要素である。
オプションで、量子化予定のデータの各要素と中間表現データFx1の対応する要素と
の差は、ほぼ2(s−1)に等しい場合がある。したがって、量子化誤差は、次の式に従
って確定することもできる。
diffbit=ln(2s−1*m/Σ|Z|) 式(33
ここ、mは目標データに対応する中間表現データFx1の数、sは小数点位置、z
量子化予定のデータの要素である。
オプションで、中間表現データは、前述の量子化予定のデータのデータ表現形式と一致
させることもでき、量子化誤差は、中間表現データおよび量子化予定のデータに基づいて
確定される。たとえば、量子化予定のデータは次のように表すことができる。F≒I
×2、次に中間表現データIx1≒F/2を確定でき、中間表現データIx1は前
述の量子化予定のデータと同じデータ表現形式を持つことができる。このとき、プロセッ
サは、上記の式(3)で計算された中間表現データIx1およびI=round(F
/2)に従って、量子化誤差を確定できる。特定の量子化誤差の確定方法は、上記の式
(31)から式(33)を参照することができる。
S115、量子化誤差に従って、カレント検査反復に対応する目標データビット幅を確
定する。
具体的には、プロセッサは、量子化誤差に従ってカレント検査反復に対応するデータビ
ット幅を適応的に調整し、カレント検査反復によって調整された目標データビット幅を確
定することができる。量子化誤差がプリセット条件を満たす場合、カレント検査反復に対
応するデータビット幅を変更しないでおくことができる。つまり、カレント検査反復の目
標データビット幅を初期データビット幅と等しくすることができる。量子化誤差がプリセ
ット条件を満たさない場合、プロセッサは、カレント検査反復で量子化予定のデータに対
応するデータビット幅を調整して、カレント検査反復に対応する目標データビット幅を取
得できる。プロセッサが目標データのビット幅を使用して、カレント検査反復で量子化予
定のデータを量子化する場合、量子化誤差は前述のプリセット条件を満たす。オプション
で、前述のプリセット条件は、ユーザーが設定したプリセットしきい値にすることができ
る。
任意選択で、図3−10に示されるように、前述の操作S115は、以下を含み得る。
S1150で、プロセッサは、前述の量子化誤差が第1のプリセットしきい値以上であ
るかどうかを判断できる。
量子化誤差が第1のプリセットしきい値以上である場合、動作S1151を実行して、
カレント検査反復に対応するデータビット幅を増加させて、カレント検査反復の目標デー
タビット幅を取得することができる。量子化誤差が第1のプリセットしきい値よりも小さ
い場合、カレント検査反復のデータビット幅を変更せずに維持できる。
さらに任意選択で、プロセッサは、1回の調整後に前述の目標データビット幅を取得す
ることができる。たとえば、カレント検査反復の初期データビット幅はn1であり、プロ
セッサは1回の調整後に目標データビット幅n2=n1+tを確定できる。ここで、tは
データビット幅の調整値である。ここで、目標データビット幅n2を使用して、カレント
検査反復で量子化予定のデータを量子化する場合、取得される量子化誤差は、第1のプリ
セットしきい値よりも小さい可能性がある。
さらに任意選択で、プロセッサは、量子化誤差が第1のプリセットしきい値未満になる
まで複数の調整を通じて目標データビット幅を取得し、量子化誤差が第1のプリセットし
きい値未満の場合のデータビット幅を目標データビット幅として使用することができる。
具体的には、量子化誤差が第1のプリセットしきい値以上の場合、第1の中間データビッ
ト幅は第1のプリセットビット幅のステップ長さに従って確定され、プロセッサは第1の
中間データビット幅によって現在のチェックをチェックできる。量子化する反復データを
量子化して量子化予定のデータを取得し、カレント検査反復で量子化予定のデータとカレ
ント検査反復の量子化データに応じて、量子化誤差が第1のプリセットしきい値を下回る
まで量子化誤差を確定する。プロセッサは、量子化誤差が第1のプリセットしきい値より
も小さい場合に対応するデータビット幅を目標データビット幅として使用することができ
る。
たとえば、カレント検査反復の初期データビット幅はn1であり、プロセッサは初期デ
ータビット幅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のプリセットしきい値との間の差を計算し得る。差が小さいほど、第1のプ
リセットビット幅のステップ長さの値は小さくなる。
任意選択で、図3−11に示されるように、前述の操作S115はさらに以下を含み得
る。
S1152で、プロセッサは、前述の量子化誤差が第2のプリセットしきい値以下であ
るかどうかを判断できる。
量子化誤差が第2のプリセットしきい値以下である場合、操作S1153を実行して、
カレント検査反復に対応するデータビット幅を減らして、カレント検査反復の目標データ
ビット幅を取得することができる。量子化誤差が第2のプリセットしきい値よりも大きい
場合、カレント検査反復のデータビット幅を変更せずに維持できる。
さらに任意選択で、プロセッサは、1回の調整後に前述の目標データビット幅を取得す
ることができる。たとえば、カレント検査反復の初期データビット幅はn1であり、プロ
セッサは1回の調整後に目標データビット幅n2=n1−tを確定できる。ここで、tは
データビット幅の調整値である。ここで、目標データビット幅n2を使用して、カレント
検査反復で量子化予定のデータを量子化する場合、取得される量子化誤差は、第2のプリ
セットしきい値よりも大きくなる可能性がある。
さらに任意選択で、プロセッサは、量子化誤差が第2のプリセットしきい値より大きく
なるまで複数の調整を通じて目標データビット幅を取得し、量子化誤差が第2のプリセッ
トしきい値よりも大きい場合のデータビット幅を目標データビット幅として使用すること
ができる。具体的には、量子化誤差が第1のプリセットしきい値以下の場合、第2の中間
データビット幅は第2のプリセットビット幅のステップ長さによって確定され、プロセッ
サは第2の中間データビット幅によって現在のチェックをチェックできる。量子化する反
復データを量子化して量子化予定のデータを取得し、カレント検査反復で量子化予定のデ
ータとカレント検査反復の量子化データに従って、量子化誤差が第2のプリセットしきい
値より大きくなるまで量子化誤差を確定する。プロセッサは、量子化誤差が第2のプリセ
ットしきい値よりも大きい場合、対応するデータビット幅を目標データビット幅として使
用できる。
たとえば、カレント検査反復の初期データビット幅はn1であり、プロセッサは初期デ
ータビット幅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
のプリセットビット幅のステップ長さの値は小さくなる。
オプションで、図3−12に示すように、量子化誤差が第1のプリセットしきい値より
小さく、量子化誤差が第2のプリセットしきい値より大きいとプロセッサが判断した場合
、カレント検査反復のデータビット幅を変更しないでおくことができる。第1のプリセッ
トしきい値が第2のプリセットしきい値よりも大きい。つまり、カレント検査反復の目標
データビット幅は、初期データビット幅と等しくすることができる。ここで、図3ー12
は、例として、本開示の実施形態のデータビット幅を確定する方法を示すだけであり、図
3ー12の各操作のシーケンスは、ここで特に限定されないが、適応的に調整することが
できる。
本開示の実施形態では、カレント検査反復のデータビット幅が変化すると、それに応じ
て小数点位置が変化する。ただし、この時点での小数点位置の変化は、量子化予定のデー
タのデータ変化によるものではなく、上記式(30)による第1の誤差計算で得られる目
標反復間隔が不正確であり、量子化の精度に影響を与える可能性がある。したがって、カ
レント検査反復のデータビット幅が変化した場合、それに応じて上記の第2の平均値を調
整して、第1の誤差が小数点位置の変動範囲を正確に反映できるようにし、それによって
目標反復間隔の精度と信頼性を確保できる。具体的には、図3−13に示すように、上記
の方法にはさらに次のものが含まれる。
S116、目標データビット幅によって、カレント検査反復のデータビット幅調整値を
確定する。
具体的には、プロセッサは、カレント検査反復の目標データビット幅および初期データ
ビット幅によって、カレント検査反復のデータビット幅調整値を確定することができる。
ここで、データビット幅調整値=目標データビット幅−初期データビット幅。もちろん、
プロセッサは、カレント検査反復のデータビット幅調整値を直接取得することもできる。
S117、カレント検査反復のデータビット幅調整値に従って、上記の第2の平均値を
更新する。
具体的には、データビット幅調整値がプリセットパラメータより大きい場合(たとえば
、プリセットパラメータがゼロに等しい場合)、つまり、カレント検査反復のデータビッ
ト幅が増やすと、プロセッサはそれに応じて第2の平均値を減らすことができる。データ
ビット幅調整値がプリセットパラメータよりも小さい場合(たとえば、プリセットパラメ
ータがゼロに等しい場合)、つまり、カレント検査反復のデータビット幅を減らすと、プ
ロセッサはそれに応じて第2の平均値を増やすことができる。データビット幅調整値がプ
リセットパラメータと等しい場合、つまりデータビット幅調整値が0の場合、この時点で
カレント反復に対応する量子化データは変更されておらず、更新された第2の平均値は更
新前の第2の平均値と等しくなる。更新前の第2の平均値は、上記の式(29)に従って
計算される。オプションで、データビット幅調整値がプリセットパラメータに等しい場合
、つまりデータビット幅調整値が0に等しい場合、プロセッサは第2の平均値を更新しな
い場合がある。つまり、プロセッサは上記の操作S117を実行しない場合がある。
たとえば、更新前の第2の平均値M2=β×s+(1−β)×M1;現在の検査反復
に対応する目標データビット幅n2=初期データビット幅n1+Δnの場合、ここでΔn
はデータビットを表す。幅調整値。このとき、更新された第2の平均値M2=β×(s
−Δn)+(1−β)×(M1−Δn)。カレント検査反復に対応する目標データビット
幅n2=初期データビット幅n1−Δn(ここで、Δnはデータビット幅調整値を表す)
の場合、この時点で、更新された第2の平均値M2=β×(s−Δn)+(1−β)×
(M1+Δn)。ここで、sは、目標データのビット幅に応じてカレント検査反復によ
って確定される小数点位置を指する。
別の例として、更新前の第2の平均値M2=β×s+(1−β)×M1;カレント検
査反復に対応する目標データビット幅n2=初期データビット幅n1+Δnの場合、ここ
でΔnはデータを表すビット幅調整値。このとき、更新された第2の平均値M2=β×s
+(1−β)×M1−Δn。別の例として、カレント検査反復に対応する目標データビ
ット幅n2=初期データビット幅n1−Δn(ここで、Δnはデータビット幅調整値を表
す)の場合、この時点で、更新された第2の平均値M2=β×s+(1−β)×M1+
Δn、ここでsは、カレント検査反復で目標データビット幅によって確定された小数点
位置を指する。
さらに、図3−6に示されるように、前述の操作S200は、以下を含み得る。
S210で、小数点位置の変動範囲によって、目標反復間隔を確定する。ここで、目標
反復間隔は、前述の小数点位置の変動範囲と負の相関がある。つまり、前述の小数点位置
の変動範囲が大きいほど、目標反復間隔は短くなる。上記の小数点位置の変動範囲が小さ
いほど、目標反復間隔は大きくなる。
上記のように、上記の第1の誤差は、小数点位置の変化の大きさを表すことができる。
したがって、図3ー7に示すように、上記の動作S210は、以下を含み得る。
S211で、プロセッサは、第1の誤差によって目標反復間隔を確定する場合がある。
ここで、目標反復間隔は、第1の誤差と負の相関がある。つまり、第1の誤差が大きいほ
ど、小数点位置の変動範囲が大きくなり、量子化予定のデータのデータ変動範囲が大きく
なることを示する。このとき、目標反復間隔は小さくなる。
具体的には、プロセッサは、次の式に従って目標反復間隔Iを計算できる。
I=δ/diffupdate1-γ 式(31)
ここで、Iは目標反復間隔、diffupdate1は上記の第1の誤差を表し、δと
γはハイパーパラメータにすることができる。
第1の誤差を使用して小数点位置の変動範囲を測定できることは理解できる。第1の誤
差が大きいほど、小数点位置の変動範囲が大きくなる。これは、量子化予定のデータの変
動範囲が大きく、目標反復間隔を設定する必要があることを示している。小さいである。
つまり、第1の誤差が大きいほど、量子化パラメータの調整が頻繁に行われる。
この実施形態では、小数点位置の変動範囲(第1の誤差)が計算され、小数点位置の変
動範囲によって目標反復間隔が確定される。量子化パラメータは目標反復間隔によって確
定されるため、量子化パラメータに基づく量子化によって得られる量子化データは、目標
データの小数点位置の変化傾向により一致し、量子化精度を確保しながらニューラルネッ
トワークの運用効率を向上させることができる。
オプションで、プロセッサは、カレント検査反復での目標反復間隔を確定した後、カレ
ント検査反復での目標反復間隔に対応する量子化パラメータおよびデータビット幅をさら
に確定して、目標反復間隔によって量子化パラメータを更新することができる。ここで、
量子化パラメータは、小数点位置および/またはスケーリング係数を含み得る。さらに、
量子化パラメータはまた、オフセットを含み得る。量子化パラメータの具体的な計算方法
については、上記を参照してください。図3−14に示すように、上記の方法には次のも
のも含まれる。
S300で、プロセッサは、目標反復間隔によって、ニューラルネットワーク演算の量
子化パラメータを調整する。
具体的には、プロセッサは、目標反復間隔によって検査反復を確定し、各検査反復で目
標反復間隔を更新し得、また、各検査反復で量子化パラメータを更新し得る。たとえば、
ニューラルネットワーク演算のデータビット幅は変更されない。このとき、プロセッサは
、各検査反復で量子化予定のデータに応じて、小数点位置などの量子化パラメータを直接
調整できる。別の例として、ニューラルネットワーク演算のデータビット幅は可変である
。このとき、プロセッサは各検査反復でデータビット幅を更新し、更新されたデータビッ
ト幅と検査反復で量子化予定のデータによって小数点位置を調整できる。およびその他の
量子化パラメータ。
本開示のこの実施形態では、プロセッサは、各検査反復で量子化パラメータを更新して
、現在の量子化パラメータが、量子化予定のデータの量子化要件を確実に満たすようにす
る。ここで、更新前の目標反復間隔と更新後の目標反復間隔は同じでも異なっていてもか
まいません。更新前のデータビット幅と更新後のデータビット幅は同じでも異なっていて
もかまいません。つまり、異なる反復間隔のデータビット幅は同じでも異なっていてもか
まいません。更新前の量子化パラメータと更新後の量子化パラメータは同じでも異なって
いてもよい。つまり、異なる反復間隔の量子化パラメータは同じでも異なっていてもよい
任意選択で、前述の操作S300において、プロセッサは、ニューラルネットワーク演
算における量子化パラメータを調整するために、検証反復において、目標反復間隔におけ
る量子化パラメータを確定することができる。
ある場合には、ニューラルネットワーク演算の各反復に対応するデータビット幅は変化
しない。つまり、ニューラルネットワーク演算の各反復に対応するデータビット幅は同じ
である。この時点で、プロセッサは次のことを確定できる。目標反復間隔内の小数点位置
などの量子化パラメータは、目標反復間隔によってニューラルネットワーク演算の量子化
パラメータを調整するという目的を達成できる。ここで、目標反復間隔の反復に対応する
量子化パラメータは一致している可能性がある。つまり、目標反復間隔の各反復は同じ小
数点位置を使用し、確定された小数点位置などの量子化パラメータのみが各検査反復で更
新されるため、各反復での量子化パラメータの更新と調整を回避できるため、減少できる
。量子化プロセスでの計算量により、量子化操作の効率が向上する。
オプションで、データビット幅が変更されていない上記の場合、目標反復間隔の反復に
対応する小数点位置を一定に保つことができる。具体的には、プロセッサは、カレント検
査反復で量子化予定のデータおよびカレント検査反復に対応する目標データビット幅によ
って、カレント検査反復に対応する小数点位置を確定し、カレント検査反復に対応する小
数点位置を目標反復間隔として使用することができる。対応する小数点位置については、
カレント検査反復に対応する小数点位置が、目標反復間隔の反復に使用される。オプショ
ンで、カレント検査反復に対応する目標データビット幅をハイパーパラメータにすること
ができる。たとえば、カレント検査反復に対応する目標データのビット幅は、ユーザーが
カスタマイズする。カレント検査反復に対応する小数点位置は、上記の式(2)または式
(14)を参照して計算できる。
ある場合には、ニューラルネットワーク演算の各反復に対応するデータビット幅が変化
する可能性がある。つまり、異なる目標反復間隔に対応するデータビット幅に一致性がな
い可能性があるが、目標反復間隔の各反復のデータビット幅は残る。絶え間ない。ここで
、目標反復間隔の反復に対応するデータビット幅は、ハイパーパラメータであり得る。例
えば、目標反復間隔の反復に対応するデータビット幅は、ユーザ定義の入力であり得る。
ある場合には、目標反復間隔の反復に対応するデータビット幅もプロセッサによって計算
され得る。例えば、プロセッサは、カレント検査反復で量子化予定のデータによって、カ
レント検査反復に対応する目標データビット幅を確定し得る。およびカレント検査反復に
対応する目標データビット幅を、目標反復間隔に対応するデータビット幅として使用する
このとき、量子化プロセスでの計算量を単純化するために、目標反復間隔内の対応する
小数点位置などの量子化パラメータも変更しないでおくことができる。つまり、目標反復
間隔の各反復は同じ小数点位置を使用し、各反復での量子化パラメータの更新と調整を回
避するために、確定された小数点位置やデータビット幅などの量子化パラメータのみが各
検査反復で更新される。これにより、量子化プロセスでの計算量が減少され、量子化操作
の効率が向上する。
オプションで、目標反復間隔に対応するデータビット幅が変更されない状況を考慮して
、目標反復間隔内の反復に対応する小数点位置を一定に保つことができる。具体的には、
プロセッサは、カレント検査反復で量子化予定のデータおよびカレント検査反復に対応す
る目標データビット幅によって、カレント検査反復に対応する小数点位置を確定し、カレ
ント検査反復に対応する小数点位置を目標反復間隔として使用することができる。対応す
る小数点位置については、カレント検査反復に対応する小数点位置が、目標反復間隔の反
復に使用される。オプションで、カレント検査反復に対応する目標データビット幅をハイ
パーパラメータにすることができる。たとえば、カレント検査反復に対応する目標データ
のビット幅は、ユーザーがカスタマイズする。カレント検査反復に対応する小数点位置は
、上記の式(2)または式(14)を参照して計算できる。
オプションで、目標反復間隔の反復に対応するスケーリング係数は一致している場合が
ある。プロセッサは、現在の検査反復の量子化予定のデータによって、現在の検査反復に
対応するスケーリング係数を確定し、現在の検査反復に対応するスケーリング係数を、目
標反復間隔の各反復のスケーリング係数として使用することができる。ここで、目標反復
間隔の反復に対応するスケーリング係数は一致している。
オプションで、目標反復間隔の反復に対応するオフセットは一致している。プロセッサ
は、カレント検査反復の量子化データに従ってカレント検査反復に対応するオフセットを
確定し、カレント検査反復に対応するオフセットを、目標反復間隔における各反復のオフ
セットとして使用することができる。さらに、プロセッサは、量子化予定のデータのすべ
ての要素の中から最小値と最大値を確定し、小数点位置やスケーリング係数などの量子化
パラメータをさらに確定する場合がある。詳細については、上記の説明を参照してくださ
い。目標反復間隔の反復に対応するオフセットは一致している。
たとえば、目標反復間隔は、カレント検査反復から反復の数量を計算できる。つまり、
目標反復間隔に対応する検査反復は、目標反復間隔の1番目の反復である場合がある。た
とえば、カレント検査反復が100回目の反復である場合、プロセッサは、量子化予定の
データのデータ変動範囲によって、目標反復間隔が3であると判断し、プロセッサは、目
標反復間隔に3回の反復が含まれ、それぞれが100回目の反復、101回目の反復、1
02回目の反復であると判断できる。さらに、プロセッサは、量子化予定のデータに応じ
て100回目の反復に対応する小数点位置や100回目の反復に対応する目標データビッ
ト幅などの量子化パラメータを確定でき、100回目の反復に対応する小数点位置などの
量子化パラメータ対を使用できる。100回目の反復、101回目の反復、および102
回目の反復が量子化される。このように、プロセッサは、101回目の反復や102回目
の反復で小数点位置などの量子化パラメータを計算する必要がないため、量子化プロセス
での計算量が減り、量子化操作の効率が向上する。
オプションで、目標反復間隔は、カレント検査反復の次の反復から計算することもでき
る。つまり、目標反復間隔に対応する検査反復は、目標反復間隔の終了反復でもある。た
とえば、カレント検査反復は100回目の反復であり、プロセッサは、量子化予定のデー
タのデータ変動範囲によって、目標反復間隔の反復間隔が3であると判断する。次に、プ
ロセッサは、目標反復間隔に3つの反復が含まれていると判断する場合がある。これらは
、それぞれ101回目の反復、102回目の反復、および103回目の反復である。さら
に、プロセッサは、量子化予定のデータに応じて100回目の反復に対応する小数点位置
や100回目の反復に対応する目標データビット幅などの量子化パラメータを確定でき、
100回目の反復に対応する小数点位置などの量子化パラメータ対を使用できる。101
回目の反復、102回目の反復、および103回目の反復が量子化される。このように、
プロセッサは、102回目の反復や103回目の反復で小数点位置などの量子化パラメー
タを計算する必要がないため、量子化プロセスでの計算量が減り、量子化操作の効率が向
上する。
本開示の実施形態において、同じ目標反復間隔における各反復に対応するデータビット
幅および量子化パラメータは同じである、すなわち、同じ目標反復間隔における各反復に
対応するデータビット幅、小数点位置、スケーリング係数、およびオフセットはすべてで
ある。ニューラルネットワークのトレーニングまたは微調整プロセス中に、量子化予定の
データの量子化パラメータの頻繁な調整を回避でき、量子化プロセスでの計算量を減らす
ことができるため、量子化効率が向上する。さらに、データ変更の範囲に応じてトレーニ
ングまたは微調整のさまざまな段階で量子化パラメータを動的に調整することにより、量
子化の精度を保証できる。
別のケースでは、ニューラルネットワーク演算の各反復に対応するデータビット幅は変
更される可能性があるが、目標反復間隔の各反復のデータビット幅は変更されない。この
とき、目標反復間隔での反復に対応する小数点位置などの量子化パラメータも不整合であ
る可能性がある。プロセッサはまた、カレント検査反復に対応する目標データビット幅に
よって、目標反復間隔に対応するデータビット幅を確定することができ、ここで、目標反
復間隔の反復に対応するデータビット幅は一致している。その後、プロセッサは、データ
ビット幅および目標反復間隔に対応する小数点位置反復間隔によって、ニューラルネット
ワーク演算プロセスの小数点位置などの量子化パラメータを調整できる。任意選択で、図
3−15に示されるように、前述の操作S300はさらに以下を含み得る。
S310、カレント検査反復の量子化データに従って、目標反復間隔に対応するデータ
ビット幅を確定する。ここで、目標反復間隔の反復に対応するデータビット幅は一致して
いる。言い換えると、ニューラルネットワーク演算中のデータビット幅は、1つおきの目
標反復間隔で更新される。オプションで、目標反復間隔に対応するデータビット幅は、カ
レント検査反復の目標データビット幅である場合がある。カレント検査反復の目標データ
ビット幅については、上記の操作S114およびS115を参照してください。これらは
、ここでは繰り返されない。
たとえば、目標反復間隔は、カレント検査反復から反復の数量を計算できる。つまり、
目標反復間隔に対応する検査反復は、目標反復間隔の1番目の反復である場合がある。た
とえば、カレント検査の反復は100回目の反復であり、プロセッサは、量子化予定のデ
ータのデータ変動範囲によって、目標反復間隔が6であると判断し、プロセッサは、目標
反復間隔にそれぞれ100回目の反復〜105回目の反復である6回の反復が含まれると
判断できる。この時点で、プロセッサは100回目の反復の目標データビット幅を確定で
き、100回目の反復の目標データビット幅は101回目から105回目の反復まで使用
され、101回目から105回目の反復の必要はない。目標データのビット幅を計算する
ことにより、計算量を減らし、量子化効率と計算効率を向上させる。その後、106回目
の反復をカレント検査反復として使用でき、目標反復間隔の確定とデータビット幅の更新
という上記の操作が繰り返される。
オプションで、目標反復間隔は、カレント検査反復の次の反復から計算することもでき
る。つまり、目標反復間隔に対応する検査反復は、目標反復間隔の終了反復でもある。た
とえば、カレント検査反復は100回目の反復であり、プロセッサは、量子化予定のデー
タのデータ変動範囲によって、目標反復間隔の反復間隔が6であると判断する。次に、プ
ロセッサは、目標反復間隔に6つの反復が含まれていると判断する場合がある。これらは
、それぞれ101番目の反復から106番目の反復である。このとき、プロセッサは10
0回目の反復の目標データビット幅を確定でき、100回目の反復の目標データビット幅
は101回目から106回目の反復まで使用され、101回目から106回目の反復まで
のターゲットを計算する必要はない。データビット幅は計算量を減らし、量子化効率と計
算効率を向上させる。その後、106回目の反復をカレント検査反復として使用でき、目
標反復間隔の確定とデータビット幅の更新という上記の操作が繰り返される。
S320、プロセッサは、取得した小数点位置の反復間隔と目標反復間隔に対応するデ
ータビット幅に応じて、目標反復間隔の反復に対応する小数点位置を調整し、ニューラル
ネットワーク演算の小数点位置などの量子化パラメータを調整する。
ここで、小数点位置反復間隔には少なくとも1つの反復が含まれ、小数点位置反復間隔
内の反復小数点位置は一致している。オプションで、小数点位置の反復間隔はハイパーパ
ラメータにすることができる。たとえば、小数点位置の反復間隔はユーザー定義の入力に
することができる。
オプションで、小数点位置の反復間隔は、目標反復間隔以下である。小数点位置の反復
間隔が上記の目標反復間隔と同じである場合、プロセッサは、データビット幅やカレント
検査反復での小数点位置などの量子化パラメータを同期的に更新できる。さらに任意選択
で、目標反復間隔の反復に対応するスケーリング係数は一致していてもよい。さらに、目
標反復間隔の反復に対応するオフセットは一致している。このとき、目標反復間隔の反復
に対応するデータビット幅や小数点位置などの量子化パラメータがすべて同じであるため
、計算量を減少し、量子化効率と計算効率を向上させることができる。特定の実装プロセ
スは、基本的に前述の実施形態と同じであり、上記の説明を参照することができるが、こ
こでは繰り返さない。
小数点位置の反復間隔が上記の目標反復間隔よりも小さい場合、プロセッサは、目標反
復間隔に対応する検査反復でデータビット幅と小数点位置およびその他の量子化パラメー
タを更新し、小数点位置反復間隔によって確定されるサブ検査反復で更新できる。小数点
位置などの量子化パラメータ。データビット幅を変更しない場合は、量子化予定のデータ
に応じて小数点位置などの量子化パラメータを微調整できるため、同じ目標反復間隔内で
小数点位置などの量子化パラメータを調整して、量子化精度をさらに向上させることがで
きる。
具体的には、プロセッサは、カレント検査反復および小数点位置反復間隔によって副検
査反復を確定することができ、副検査反復は、小数点位置を調整するために使用され、副
検査反復は、目標反復間隔における反復であり得る。さらに、プロセッサは、サブ検査反
復で量子化予定のデータおよび目標反復間隔に対応するデータビット幅によって、目標反
復間隔での反復に対応する小数点位置を調整することができ、小数点位置確定方法は、上
記の式(2)を参照することができる。または式(14)。ここでは繰り返さない。
たとえば、カレント検査の反復は100回目の反復であり、目標反復間隔は6であり、
目標反復間隔には100回目の反復から105番目の反復までの反復が含まれる。プロセ
ッサによって取得される小数点位置の反復間隔はIs1=3であり、小数点位置は、カレ
ント検査の反復から3回の反復で1回調整できる。具体的には、プロセッサは、100回
目の反復を前述のサブ検査反復として使用し、100回目の反復に対応する小数点位置s
1を計算することができる。小数点位置s1は、100回目の反復、101回目の反復、
および102回目の反復の間で共有されて、量子化が実行される。その後、プロセッサは
、小数点位置反復間隔Is1に従って、前述のサブ検査反復として103番目の反復を使
用でき、プロセッサは、103番目の反復に対応する量子化データおよび目標反復間隔に
対応するデータビット幅nに従って103番目の反復を確定することもできる。2つの小
数点位置の反復間隔に対応する小数点位置s2は、前述の小数点位置s2を103回目の
反復から105回目の反復まで共有することによって量子化できる。本開示の実施形態に
おいて、更新前の前述の小数点位置s1および更新後の小数点位置s2の値は、同じであ
っても異なっていてもよい。さらに、プロセッサは、次の目標反復間隔、および次の目標
反復間隔に対応するデータビット幅および小数点位置などの量子化パラメータを、106
回目の反復で再び量子化予定のデータのデータ変動範囲によって確定することができる。
別の例では、カレント検査反復は100回目の反復であり、目標反復間隔は6であり、
目標反復間隔には、101回目の反復から106回目の反復までの反復が含まれる。プロ
セッサによって取得される小数点位置の反復間隔はIs1=3であり、小数点位置は、カ
レント検査の反復から3回の反復で1回調整できる。具体的には、プロセッサは、カレン
ト検査反復で量子化予定のデータおよびカレント検査反復に対応する目標データビット幅
n1に従って、第1の小数点位置反復間隔に対応する小数点位置がs1であると確定し得
る。小数点位置s1は、101回目の反復、102回目の反復、および103回目の反復
の間で共有されて、量子化が実行される。その後、プロセッサは、小数点位置反復間隔I
s1に従って、前述のサブ検査反復として104番目の反復を使用でき、プロセッサは、
104番目の反復に対応する量子化データおよび目標反復間隔に対応するデータビット幅
n1に従って、4番目の反復を確定することもできる。上記の小数点位置s2を104回
目の反復から106回目の反復まで共有することにより、2つの小数点位置の反復間隔に
対応する小数点位置s2を量子化することができる。本開示の実施形態において、更新前
の前述の小数点位置s1および更新後の小数点位置s2の値は、同じであっても異なって
いてもよい。さらに、プロセッサは、106回の反復で再び量子化予定のデータのデータ
変動範囲によって、次の目標反復間隔、および次の目標反復間隔に対応するデータビット
幅および小数点位置などの量子化パラメータを確定し得る。
オプションで、小数点位置の反復間隔は1に等しくてもかまいません。つまり、小数点
位置は反復ごとに1回更新される。オプションで、小数点位置の反復間隔は同じでも異な
っていてもかまいません。たとえば、目標反復間隔に含まれる少なくとも1つの小数点位
置反復間隔は、順次増やす場合がある。ここでは、一例のみを使用して、この実施形態の
実施方法を説明し、開示を限定するために使用しない。
オプションで、目標反復間隔の反復に対応するスケーリング係数も一致していない場合
がある。さらに任意選択で、スケーリング係数は、前述の小数点位置と同期して更新され
得る、すなわち、スケーリング係数に対応する反復間隔は、前述の小数点位置反復間隔に
等しくあり得る。つまり、プロセッサが確定された小数点位置を更新するたびに、それに
応じて確定されたスケーリング係数を更新する。
オプションで、目標反復間隔の反復に対応するオフセットも不整合になる場合がある。
さらに、オフセットは、前述の小数点位置と同期して更新することができる。つまり、オ
フセットに対応する反復間隔は、前述の小数点位置の反復間隔に等しくすることができる
。つまり、プロセッサが確定された小数点位置を更新するたびに、それに応じて確定され
たオフセットを更新する。もちろん、オフセットは前述の位置位置またはデータビット幅
と非同期に更新することもできるが、ここでは特に制限されていない。さらに、プロセッ
サは、量子化予定のデータのすべての要素の中から最小値と最大値を確定し、小数点位置
やスケーリング係数などの量子化パラメータをさらに確定する場合がある。詳細について
は、上記の説明を参照してください。
別の実施形態では、プロセッサは、小数点位置の変動範囲および量子化予定のデータの
データビット幅によって、量子化予定のデータのデータ変動範囲を包括的に確定し、量子
化予定のデータのデータ変動範囲によって、目標反復間隔を確定することができる。目標
反復間隔を使用して、確定されたデータビット幅を更新できる。つまり、プロセッサは、
目標反復間隔の検証反復ごとに、確定されたデータビット幅を更新できる。小数点位置は
固定点データの精度を反映でき、データビット幅は固定点データのデータ表現範囲を反映
できるため、小数点位置の変動範囲と量子化目標データのデータビット幅変化を統合する
ことで、量子化予定のデータの精度を考慮できるようになる。データ表現範囲を満たすこ
ともできる。任意選択で、小数点位置の変動範囲は、前述の第1の誤差によって表すこと
ができ、データビット幅の変化は、前述の量子化誤差によって確定することができる。具
体的には、図3−16に示すように、上記の方法には次のものが含まれる。
S400、第1の誤差を取得する。第1の誤差は小数点位置の変動範囲を表すことがで
き、小数点位置の変動範囲は量子化予定のデータのデータ変動範囲を表すことができる。
具体的には、第1の誤差の計算方法は上記の操作S110を参照できる。ここでは説明を
反復ない。
S500、第2の誤差を取得する。ここで、第2の誤差は、データビット幅の変化を表
すためである。
任意選択で、前述の第2の誤差は、量子化誤差によって確定され得、第2の誤差は、前
述の量子化誤差と正の相関がある。具体的には、図3−16に示されるように、前述の操
作S500は、以下を含み得る。
S510で、カレント検査反復で量子化予定のデータとカレント検査反復の量子化デー
タに従って量子化誤差を確定する。カレント検査反復の量子化データは、初期データビッ
ト幅によってカレント検査反復の量子化データを比較する。データは量子化される。具体
的な量子化誤差の確定方法については、上記の操作S114の説明を参照してください。
ここでは繰り返さないことにする。
S520、量子化誤差に従って第2の誤差を確定する。ここで、第2の誤差は量子化誤
差と正の相関がある。
diffupdate2=θ*diff bit 式(
44)
ここで、diffupdate2は上記の第2の誤差を表し、diffbitは上記の
量子化誤差を表し、θはハイパーパラメータにすることができる。
S600で、第2の誤差と第1の誤差によって、目標反復間隔を確定する。
具体的には、プロセッサは、第1の誤差および第2の誤差によって目標誤差を計算し、
目標誤差に従って目標反復間隔を確定することができる。オプションで、第1の誤差と第
2の誤差に対して加重平均計算を実行することにより、目標誤差を取得できる。たとえば
、target error=K*first error+(1−K)*second
error、ここで、Kはハイパーパラメータである。その後、プロセッサは、目標誤
差に従って目標反復間隔を確定することができ、目標反復間隔は、目標誤差と負の相関が
ある。つまり、目標誤差が大きいほど、目標反復間隔は短くなる。
オプションで、第1の誤差と第2の誤差の最大値に従って目標誤差を確定することもで
き、第1の誤差または第2の誤差の重みは0である。具体的には、図3−17に示される
ように、前述の操作S600は、以下を含み得る。
S610、第1の誤差と第2の誤差うちの最大値を目標誤差とする。
具体的には、プロセッサは、第1の誤差diffupdate1と第2の誤差diff
update2の大きさを比較し、第1の誤差diffupdate1が第2の誤差di
ffupdate2より大きい場合、目標誤差は第1の誤差diffupdate1と等
しくなる。第1の誤差diffupdate1が第2の誤差よりも小さい場合、目標誤差
は第2の誤差diffupdate2と等しくなる。第1の誤差diffupdate1
が第2の誤差と等しい場合、目標誤差は第1の誤差diffupdate1または第2の
誤差diffupdate2である可能性がある。つまり、目標誤差diffupdat
は、次の式に従って確定できる。
diffupdate=max(diffupdate1,diffupdate2
) 式(45)
ここで、diffupdateは目標誤差を参照し、diffupdate1は第1の
誤差を参照し、diffupdate2は第2の誤差を指す。
S620、目標誤差に従って目標反復間隔を確定する。ここで、目標誤差は目標反復間
隔と負の相関がある。具体的には、目標反復間隔は次のように確定できる。
目標反復間隔は、次の式に従って計算できる。
I=β/diffupdate−γ 式(46)
ここで、Iは目標反復間隔を表し、diffupdateは上記の目標誤差を表し、δ
とγはハイパーパラメータにすることができる。
任意選択で、前述の実施形態では、データビット幅は、ニューラルネットワーク演算に
おいて可変であり、データビット幅の変化傾向は、第2の誤差によって測定することがで
きる。この場合、図3−17に示すように、目標反復間隔を確定した後、プロセッサは操
作S630を実行して、目標反復間隔の反復に対応するデータビット幅を確定できる。こ
こで、データは目標反復間隔の反復に対応する。ビット幅は同じである。具体的には、プ
ロセッサは、カレント検査反復で量子化予定のデータによって、目標反復間隔に対応する
データビット幅を確定することができる。言い換えると、ニューラルネットワーク演算中
のデータビット幅は、1つおきの目標反復間隔で更新される。オプションで、目標反復間
隔に対応するデータビット幅は、カレント検査反復の目標データビット幅である場合があ
る。カレント検査反復の目標データビット幅については、上記の操作S114およびS1
15を参照してください。これらは、ここでは繰り返されない。
たとえば、目標反復間隔は、カレント検査反復から反復の数量を計算できる。つまり、
目標反復間隔に対応する検査反復は、目標反復間隔の1番目の反復である場合がある。た
とえば、カレント検査の反復は100回目の反復であり、プロセッサは、量子化予定のデ
ータのデータ変動範囲によって、目標反復間隔が6であると判断し、プロセッサは、目標
反復間隔にそれぞれ100回目の反復〜105回目の反復である6回の反復が含まれると
判断できる。。この時点で、プロセッサは100回目の反復の目標データビット幅を確定
でき、100回目の反復の目標データビット幅は101回目から105回目の反復まで使
用され、101回目から105回目の反復の必要はない。目標データのビット幅を計算す
ることにより、計算量を減らし、量子化効率と計算効率を向上させる。その後、106回
目の反復をカレント検査反復として使用でき、目標反復間隔の確定とデータビット幅の更
新という上記の操作が繰り返される。
オプションで、目標反復間隔は、カレント検査反復の次の反復から計算することもでき
る。つまり、目標反復間隔に対応する検査反復は、目標反復間隔の終了反復でもある。た
とえば、カレント検査反復は100回目の反復であり、プロセッサは、量子化予定のデー
タのデータ変動範囲によって、目標反復間隔の反復間隔が6であると判断する。次に、プ
ロセッサは、目標反復間隔に6つの反復が含まれていると判断する場合がある。これらは
、それぞれ101番目の反復から106番目の反復である。このとき、プロセッサは10
0回目の反復の目標データビット幅を確定でき、100回目の反復の目標データビット幅
は101回目から106回目の反復まで使用され、101回目から106回目の反復まで
のターゲットを計算する必要はない。データビット幅は計算量を減らし、量子化効率と計
算効率を向上させる。その後、106回目の反復をカレント検査反復として使用でき、目
標反復間隔の確定とデータビット幅の更新という上記の操作が繰り返される。
さらに、プロセッサは、検査反復時に目標反復間隔の量子化パラメータを確定して、目
標反復間隔によってニューラルネットワーク動作の量子化パラメータを調整することもで
きる。つまり、ニューラルネットワーク演算の小数点位置などの量子化パラメータをデー
タビット幅と同期して更新することができる。
ある場合には、目標反復間隔の反復に対応する量子化パラメータが一致している可能性
がある。任意選択で、プロセッサは、カレント検査反復で量子化予定のデータおよびカレ
ント検査反復に対応する目標データビット幅によってカレント検査反復に対応する小数点
位置を確定し、カレント検査反復に対応する小数点位置を標的反復として使用することが
できる。間隔に対応する小数点位置。目標反復間隔の反復に対応する小数点位置は同じで
ある。つまり、目標反復間隔の各反復は、カレント検査反復の小数点位置などの量子化パ
ラメータを使用し、各反復での量子化パラメータの更新と調整を回避することで、量子化
プロセスでの計算量を減らし、量子化を改善する。運用効率。
オプションで、目標反復間隔の反復に対応するスケーリング係数は一致している場合が
ある。プロセッサは、現在の検査反復の量子化予定のデータによって、現在の検査反復に
対応するスケーリング係数を確定し、現在の検査反復に対応するスケーリング係数を、目
標反復間隔の各反復のスケーリング係数として使用することができる。ここで、目標反復
間隔の反復に対応するスケーリング係数は一致している。
オプションで、目標反復間隔の反復に対応するオフセットは一致している。プロセッサ
は、カレント検査反復の量子化データに従ってカレント検査反復に対応するオフセットを
確定し、カレント検査反復に対応するオフセットを、目標反復間隔における各反復のオフ
セットとして使用することができる。さらに、プロセッサは、量子化予定のデータのすべ
ての要素の中から最小値と最大値を確定し、小数点位置やスケーリング係数などの量子化
パラメータをさらに確定する場合がある。詳細については、上記の説明を参照してくださ
い。目標反復間隔の反復に対応するオフセットは一致している。
たとえば、目標反復間隔は、カレント検査反復から反復の数量を計算できる。つまり、
目標反復間隔に対応する検査反復は、目標反復間隔の1番目の反復である場合がある。た
とえば、カレント検査反復が100回目の反復である場合、プロセッサは、量子化予定の
データのデータ変動範囲によって、目標反復間隔が3であると判断し、プロセッサは、目
標反復間隔に3回の反復が含まれ、それぞれが100回目の反復、101回目の反復、1
02回目の反復であると判断できる。さらに、プロセッサは、100回目の反復に対応す
る量子化予定のデータや目標データビット幅によって、100回目の反復に対応する小数
点位置などの量子化パラメータを確定でき、当該100回目の反復に対応する小数点位置
などの量子化パラメータを使用して、100回目の反復、101回目の反復、および10
2回目の反復を量子する。このように、プロセッサは、101回目の反復や102回目の
反復で小数点位置などの量子化パラメータを計算する必要がないため、量子化プロセスで
の計算量が減り、量子化操作の効率が向上する。
オプションで、目標反復間隔は、カレント検査反復の次の反復から計算することもでき
る。つまり、目標反復間隔に対応する検査反復は、目標反復間隔の終了反復でもある。た
とえば、カレント検査反復は100回目の反復であり、プロセッサは、量子化予定のデー
タのデータ変動範囲によって、目標反復間隔の反復間隔が3であると判断する。次に、プ
ロセッサは、目標反復間隔に3つの反復が含まれていると判断する場合がある。これらは
、それぞれ101回目の反復、102回目の反復、および103回目の反復である。さら
に、プロセッサは、100回目の反復に対応する量子化予定のデータや目標データビット
幅によって、100回目の反復に対応する小数点位置などの量子化パラメータを確定でき
、当該100回目の反復に対応する小数点位置などの量子化パラメータを使用して、10
0回目の反復、101回目の反復、および102回目の反復を量子する。このように、プ
ロセッサは、102回目の反復や103回目の反復で小数点位置などの量子化パラメータ
を計算する必要がないため、量子化プロセスでの計算量が減り、量子化操作の効率が向上
する。
本開示の実施形態において、同じ目標反復間隔における各反復に対応するデータビット
幅および量子化パラメータは同じである、すなわち、同じ目標反復間隔における各反復に
対応するデータビット幅、小数点位置、スケーリング係数、およびオフセットはすべてで
ある。ニューラルネットワークのトレーニングまたは微調整プロセス中に、量子化予定の
データの量子化パラメータの頻繁な調整を回避でき、量子化プロセスでの計算量を減らす
ことができるため、量子化効率が向上する。さらに、データ変更の範囲に応じてトレーニ
ングまたは微調整のさまざまな段階で量子化パラメータを動的に調整することにより、量
子化の精度を保証できる。
別の場合において、プロセッサはまた、ニューラルネットワーク操作における量子化パ
ラメータを調整するために、小数点位置などの量子化パラメータに対応する小数点位置反
復間隔によって、目標反復間隔における量子化パラメータを確定し得る。つまり、ニュー
ラルネットワーク演算の小数点位置などの量子化パラメータは、データビット幅と非同期
に更新できる。プロセッサは、目標反復間隔の検査反復で、データビット幅や小数点位置
などの量子化パラメータを更新できる。また、プロセッサは、小数点位置によって反復す
ることもできる。間隔は、目標反復間隔の反復に対応する小数点位置を個別に更新する。
具体的には、プロセッサは、カレント検査反復に対応する目標データビット幅によって
、目標反復間隔に対応するデータビット幅を確定することもでき、ここで、目標反復間隔
の反復に対応するデータビット幅は一致している。その後、プロセッサは、データビット
幅および目標反復間隔に対応する小数点位置反復間隔によって、ニューラルネットワーク
演算プロセスの小数点位置などの量子化パラメータを調整できる。すなわち、図3−17
に示すように、目標反復間隔に対応するデータビット幅を確定した後、プロセッサは、動
作S640を実行して、取得された小数点位置反復間隔および目標反復間隔に対応するデ
ータビット幅を調整することもできる。目標反復間隔で対応する小数点位置を反復して、
ニューラルネットワーク演算で小数点位置を調整する。ここで、小数点位置反復間隔には
少なくとも1つの反復が含まれ、小数点位置反復間隔内の反復小数点位置は一致している
。オプションで、小数点位置の反復間隔はハイパーパラメータにすることができる。たと
えば、小数点位置の反復間隔はユーザー定義の入力にすることができる。
オプションで、小数点位置の反復間隔は、目標反復間隔以下である。小数点位置の反復
間隔が上記の目標反復間隔と同じである場合、プロセッサは、データビット幅やカレント
検査反復での小数点位置などの量子化パラメータを同期的に更新できる。さらに任意選択
で、目標反復間隔の反復に対応するスケーリング係数は一致していてもよい。さらに、目
標反復間隔の反復に対応するオフセットは一致している。このとき、目標反復間隔の反復
に対応するデータビット幅や小数点位置などの量子化パラメータがすべて同じであるため
、計算量を減少し、量子化効率と計算効率を向上させることができる。特定の実装プロセ
スは、基本的に前述の実施形態と同じであり、上記の説明を参照することができるが、こ
こでは繰り返さない。
小数点位置の反復間隔が上記の目標反復間隔よりも小さい場合、プロセッサは、目標反
復間隔に対応する検査反復でデータビット幅と小数点位置およびその他の量子化パラメー
タを更新し、小数点位置反復間隔によって確定されるサブ検査反復で更新できる。小数点
位置などの量子化パラメータ。データビット幅を変更しない場合は、量子化予定のデータ
に応じて小数点位置などの量子化パラメータを微調整できるため、同じ目標反復間隔内で
小数点位置などの量子化パラメータを調整して、量子化精度をさらに向上させることがで
きる。
具体的には、プロセッサは、カレント検査反復および小数点位置反復間隔によって副検
査反復を確定することができ、副検査反復は、小数点位置を調整するために使用され、副
検査反復は、目標反復間隔における反復であり得る。さらに、プロセッサは、サブ検査反
復で量子化予定のデータおよび目標反復間隔に対応するデータビット幅によって、目標反
復間隔での反復に対応する小数点位置を調整することができ、小数点位置確定方法は、上
記の式(2)を参照することができる。または式(14)。ここでは繰り返さない。
たとえば、カレント検査の反復は100回目の反復であり、目標反復間隔は6であり、
目標反復間隔には100回目の反復から105番目の反復までの反復が含まれる。プロセ
ッサによって取得される小数点位置の反復間隔はIs1=3であり、小数点位置は、カレ
ント検査の反復から3回の反復で1回調整できる。具体的には、プロセッサは、前述のサ
ブ検査反復として100回目の反復を使用し、100回目の反復に対応する小数点位置s
1を計算することができる。小数点位置s1は、100回目の反復、101回目の反復、
および102回目の反復の間で共有されて、量子化が実行される。その後、プロセッサは
、小数点位置反復間隔Is1に従って、前述のサブ検査反復として103番目の反復を使
用でき、プロセッサは、103番目の反復に対応する量子化データおよび目標反復間隔に
対応するデータビット幅nに従って103番目の反復を確定することもできる。2つの小
数点位置の反復間隔に対応する小数点位置s2は、前述の小数点位置s2を103回目の
反復から105回目の反復まで共有することによって量子化できる。本開示の実施形態に
おいて、更新前の前述の小数点位置s1および更新後の小数点位置s2の値は、同じであ
っても異なっていてもよい。さらに、プロセッサは、次の目標反復間隔、および次の目標
反復間隔に対応するデータビット幅および小数点位置などの量子化パラメータを、106
回目の反復で再び量子化予定のデータのデータ変動範囲によって確定することができる。
別の例では、カレント検査反復は100回目の反復であり、目標反復間隔は6であり、
目標反復間隔には、101回目の反復から106回目の反復までの反復が含まれる。プロ
セッサによって取得される小数点位置の反復間隔はIs1=3であり、小数点位置は、カ
レント検査の反復から3回の反復で1回調整できる。具体的には、プロセッサは、カレン
ト検査反復で量子化予定のデータおよびカレント検査反復に対応する目標データビット幅
n1に従って、第1の小数点位置反復間隔に対応する小数点位置がs1であると確定し得
る。100回目の反復、102回目の反復と103回目の反復は、量子化のために前述の
小数点位置s1を共有する。その後、プロセッサは、小数点位置反復間隔Is1に従って
、前述のサブ検査反復として104番目の反復を使用でき、プロセッサは、104番目の
反復に対応する量子化データおよび目標反復間隔に対応するデータビット幅n1に従って
、4番目の反復を確定することもできる。上記の小数点位置s2を104回目の反復から
106回目の反復まで共有することにより、2つの小数点位置の反復間隔に対応する小数
点位置s2を量子化することができる。本開示の実施形態において、更新前の前述の小数
点位置s1および更新後の小数点位置s2の値は、同じであっても異なっていてもよい。
さらに、プロセッサは、次の目標反復間隔、および次の目標反復間隔に対応するデータビ
ット幅および小数点位置などの量子化パラメータを、106回目の反復で再び量子化予定
のデータのデータ変動範囲によって確定することができる。
オプションで、小数点位置の反復間隔は1に等しくてもかまいません。つまり、小数点
位置は反復ごとに1回更新される。オプションで、小数点位置の反復間隔は同じでも異な
っていてもかまいません。たとえば、目標反復間隔に含まれる少なくとも1つの小数点位
置反復間隔は、順次増やす場合がある。ここでは、一例のみを使用して、この実施形態の
実施方法を説明し、開示を限定するために使用しない。
オプションで、目標反復間隔の反復に対応するスケーリング係数も一致していない場合
がある。さらに任意選択で、スケーリング係数は、前述の小数点位置と同期して更新する
ことができ、すなわち、スケーリング係数に対応する反復間隔は、前述の小数点位置反復
間隔に等しくすることができる。つまり、プロセッサが確定された小数点位置を更新する
たびに、それに応じて確定されたスケーリング係数を更新する。
オプションで、目標反復間隔の反復に対応するオフセットも不整合になる場合がある。
さらに、オフセットは、前述の小数点位置と同期して更新することができる。つまり、オ
フセットに対応する反復間隔は、前述の小数点位置の反復間隔に等しくすることができる
。つまり、プロセッサが確定された小数点位置を更新するたびに、それに応じて確定され
たオフセットを更新する。もちろん、オフセットは前述の位置位置またはデータビット幅
と非同期に更新することもできるが、ここでは特に制限されていない。さらに、プロセッ
サは、量子化予定のデータのすべての要素の中から最小値と最大値を確定し、小数点位置
やスケーリング係数などの量子化パラメータをさらに確定する場合がある。詳細について
は、上記の説明を参照してください。
他の任意選択の実施形態では、小数点位置、スケーリング係数、およびオフセットの3
つの量子化パラメータも非同期であり得る、すなわち、小数点位置反復間隔、スケーリン
グ係数反復間隔、およびオフセット反復間隔のうちの1つ、または3つすべてが異なる。
ここで、小数点位置の反復間隔とスケーリング係数の反復間隔は、両方とも目標反復間隔
以下である。オフセット反復間隔は、目標反復間隔よりも小さくすることができる。オフ
セットは、量子化予定のデータの分布にのみ関連するため、代替の実施形態では、オフセ
ットは、目標反復間隔と完全に非同期にすることもでき、すなわち、オフセット反復間隔
は、目標反復間隔よりも大きくすることもできる。
任意の実施形態において、上記の方法は、ニューラルネットワークのトレーニングまた
は微調整プロセスにおいて使用され得、ニューラルネットワークの微調整またはトレーニ
ングプロセスに含まれる操作データの量子化パラメータの調整を実現し、ニューラルネッ
トワークの演算プロセスを改善する。に含まれる算術データの量子化精度と効率。動作デ
ータは、ニューロンデータ、重みデータ、または勾配データのうちの少なくとも1つであ
り得る。図3−5に示すように、量子化予定のデータのデータ変化曲線によれば、トレー
ニングや微調整の初期段階では、各反復で量子化予定のデータの差が比較的大きく、量子
化予定のデータのデータ変動範囲が比較的鋭い。このとき、目標反復間隔の値を小さくす
ることができ、目標反復間隔の量子化パラメータを時間内に更新して、量子化の精度を確
保することができる。トレーニングや微調整の中間段階では、量子化予定のデータのデー
タ変動範囲が徐々にフラットになる傾向があるが、このとき、目標反復間隔の値を大きく
して、量子化パラメータの頻繁な更新を回避し、量子化効率と計算効率を向上させること
ができる。トレーニングまたは微調整の後の段階では、ニューラルネットワークのトレー
ニングまたは微調整は安定する傾向がある(つまり、ニューラルネットワークの正の演算
結果がプリセット参照値に近づくと、ニューラルネットワークのトレーニングまたは微調
整は安定する傾向がある)、このとき、目標反復間隔の値を増やし続けて、量子化効率と
計算効率をさらに向上させることができる。上記のデータ変化の傾向に基づいて、さまざ
まな方法を使用して、ニューラルネットワークのトレーニングまたは微調整のさまざまな
段階で目標反復間隔を確定し、量子化の精度を確保することに基づいて量子化効率と計算
効率を向上させることができる。
具体的には、図3−18に示すように、この方法をニューラルネットワークのトレーニ
ングまたは微調整プロセスで使用する場合、この方法には次のものも含まれる。
S710、プロセッサは、カレント反復が第1のプリセット反復より大きいかどうかを
判断する。
ここで、カレント反復は、プロセッサによって現在実行されている反復演算を指する。
オプションで、第1のプリセット反復はハイパーパラメータであり得、第1のプリセット
反復は、量子化予定のデータのデータ変動曲線に従って確定され得、そして第1のプリセ
ット反復はまた、ユーザー定義設定であり得る。オプションで、第1のプリセット反復は
、1つのトレーニング周期(エポック)に含まれる反復の総数より少なくてもかまいませ
ん。1つのトレーニング周期は、データ集合内で量子化されるすべてのデータが1つの順
方向演算と1つの逆方向演算を完了することを意味する。
カレント反復が第1のプリセット反復以下である場合、プロセッサは操作S711を実
行して、第1のプリセット反復間隔を目標反復間隔として設定し、第1のプリセット反復
間隔によって調整することができる。量子化パラメータ。
オプションで、プロセッサは、ユーザーによって入力された第1のプリセット反復間隔
を読み取り、第1のプリセット反復間隔と第1のプリセット反復間隔との間の対応に従っ
て、第1のプリセット反復間隔を確定することができる。オプションで、第1のプリセッ
ト反復間隔をハイパーパラメータにすることができ、第1のプリセット反復間隔をユーザ
ーが設定することもできる。このとき、プロセッサは、ユーザーが入力した第1のプリセ
ット反復と第1のプリセット反復間隔を直接読み取り、第1のプリセット反復間隔によっ
てニューラルネットワーク演算の量子化パラメータを更新できる。本開示の実施形態では
、プロセッサは、量子化予定のデータのデータ変動範囲によって、目標反復間隔を確定す
る必要はない。
たとえば、ユーザーが入力した第1のプリセット反復が100回目の反復で、第1のプ
リセット反復間隔が5の場合、カレント反復が100回目の反復以下の場合、量子化パラ
メータは第1のプリセット反復間隔によって更新できる。つまり、プロセッサは、1番目
の反復から100回目の反復までのニューラルネットワークのトレーニングまたは微調整
中に、量子化パラメータが5回の反復ごとに更新されることを確定できる。具体的には、
プロセッサは、1番目の反復に対応するデータビット幅n1および小数点位置s1などの
量子化パラメータを確定し、データビット幅n1および小数点位置s1を使用して、第1
の反復から第5の反復までのデータを分析し得る。量子化予定のデータは量子化される。
つまり、1番目の反復から5番目の反復まで同じ量子化パラメータを使用できる。その後
、プロセッサは、6回目の反復に対応するデータビット幅n2や小数点位置s2などの量
子化パラメータを確定し、6回目の反復から10回目の反復までの待機時間にデータビッ
ト幅n2や小数点位置s2などの量子化パラメータを使用できる。量子化後のデータは量
子化される。つまり、6番目の反復から10番目の反復まで同じ量子化パラメータを使用
できる。同様に、プロセッサは、100回目の反復が完了するまで、上記の量子化方法に
従うことができる。各反復間隔でのデータビット幅や小数点位置などの量子化パラメータ
を確定する方法は、上記の説明を参照することができ、ここでは繰り返さない。
別の例として、ユーザーが入力した第1のプリセット反復が100回目の反復であり、
第1のプリセット反復間隔が1の場合、カレント反復が100回目の反復以下の場合、量
子化パラメータは第1のプリセット反復間隔によって更新できる。つまり、プロセッサは
、ニューラルネットワークのトレーニングまたは微調整の1番目の反復から100回目の
反復までの各反復で量子化パラメータが更新されることを確定できる。具体的には、プロ
セッサは、1番目の反復に対応するデータビット幅n1および小数点位置s1などの量子
化パラメータを確定し、データビット幅n1および小数点位置s1を使用して、1番目の
反復で量子化予定のデータを量子化することができる。その後、プロセッサは、2回目の
反復に対応するデータビット幅n2や小数点位置s2などの量子化パラメータを確定し、
データビット幅n2と小数点位置s2を使用して、2回目の反復で量子化予定のデータを
量子化する、……。同様に、プロセッサは、データビット幅n100や100回目の反復
の小数点位置s100などの量子化パラメータを確定し、データビット幅n100と小数
点位置s100を使用して、100回目の反復で量子化予定のデータを量子化できる。各
反復間隔でのデータビット幅や小数点位置などの量子化パラメータを確定する方法は、上
記の説明を参照することができ、ここでは繰り返さない。
上記は、データビット幅と量子化パラメータの同期更新の一例にすぎない。他のオプシ
ョンの実施形態では、各目標反復間隔において、プロセッサは、小数点位置の変動範囲に
よって、小数点位置の反復間隔を確定することもできる。および小数点位置の反復間隔に
よって、小数点位置などの量子化パラメータを更新する。
オプションで、カレント反復が第1のプリセット反復よりも大きい場合、ニューラルネ
ットワークのトレーニングまたは微調整が中期段階にあることを示すことができる。この
時点で、履歴反復で量子化予定のデータのデータ変動範囲を取得し、量子化予定のデータ
のデータを取得できる。変動の範囲によって目標反復間隔が決まり、目標反復間隔は上記
の第1のプリセット反復間隔よりも大きくなる可能性があるため、量子化パラメータの更
新回数が減り、量子化効率と計算効率が向上する。具体的には、カレント反復が第1のプ
リセット反復よりも大きい場合、プロセッサは操作S713を実行して、量子化予定のデ
ータのデータ変動範囲によって目標反復間隔を確定し、目標反復間隔によって量子化パラ
メータを調整することができる。
上記の例を続けると、ユーザーが入力した第1のプリセット反復は100回目の反復で
あり、第1のプリセット反復間隔は1である。カレント反復が100回目の反復以下の場
合、第1のプリセット反復間隔によって量子化を更新できる。パラメータ。つまり、プロ
セッサは、ニューラルネットワークのトレーニングまたは微調整の1番目の反復から10
0回目の反復までの各反復で量子化パラメータが更新されることを確定でき、特定の実装
は上記の説明を参照できる。カレント反復が100回目の反復より大きい場合、プロセッ
サは、カレント反復で量子化予定のデータと前の履歴反復で量子化予定のデータ、および
量子化予定のデータのデータ変動範囲によって、量子化予定のデータのデータ変動範囲を
確定できる。目標反復間隔を確定する。具体的には、カレント反復が100回目の反復よ
り大きい場合、プロセッサは、カレント反復に対応するデータビット幅を適応的に調整し
、カレント反復に対応する目標データビット幅を取得し、カレント反復に対応する目標デ
ータビット幅を変更できる。目標反復間隔のデータビット幅として、目標反復間隔の反復
に対応するデータビット幅は一致している。同時に、プロセッサは、カレント反復に対応
する目標データビット幅および量子化予定のデータによってカレント反復に対応する小数
点位置を確定し、カレント反復に対応する小数点位置に従って第1の誤差を確定し得る。
プロセッサはまた、カレント反復に対応して量子化予定のデータによって量子化誤差を確
定し、量子化誤差に従って第2の誤差を確定することができる。その後、プロセッサは、
第1の誤差および第2の誤差によって目標反復間隔を確定することができ、目標反復間隔
は、前述の第1のプリセット反復間隔よりも大きくてもよい。さらに、プロセッサは、目
標反復間隔における小数点位置またはスケーリング係数などの量子化パラメータを確定す
ることができ、特定の確定方法は、上記の説明を参照することができる。
たとえば、カレント反復が100回目の反復である場合、プロセッサは、量子化予定の
データのデータ変動範囲によって、目標反復間隔が3であると判断し、プロセッサは、目
標反復間隔に3回の反復が含まれ、それぞれが100回目の反復、101回目の反復、お
よび102回目の反復であると判断できる。プロセッサはまた、100回目の反復で量子
化予定のデータによって量子化誤差を確定し、量子化誤差に従って100回目の反復に対
応する第2の誤差および目標データビット幅を確定し、目標反復間隔に対応するデータと
して目標データビット幅を使用し得る。ビット幅。100回目の反復、101回目の反復
、および102回目の反復に対応するデータビット幅はすべて、100回目の反復に対応
する目標データビット幅である。プロセッサはまた、100回目の反復で量子化予定のデ
ータおよび100回目の反復に対応する目標データビット幅によって、100回目の反復
に対応する小数点位置およびスケーリング係数などの量子化パラメータを確定し得る。そ
の後、100回目の反復に対応する量子化パラメータを使用して、100回目の反復、1
01回目の反復、および102回目の反復を量子化する。
さらに、図3−19に示すように、上記の方法には次のものも含まれる。
カレント反復が第1のプリセット反復よりも大きい場合、プロセッサはさらに操作S7
12を実行することができる。すなわち、プロセッサは、カレント反復が第2のプリセッ
ト反復よりも大きいかどうかをさらに確定することができる。ここで、第2のプリセット
反復は第1のプリセット反復よりも大きく、第2のプリセット反復間隔は第1のプリセッ
ト反復間隔よりも大きくなる。オプションで、前述の第2のプリセット反復はハイパーパ
ラメータであり、第2のプリセット反復は少なくとも1つのトレーニング周期の反復の総
数より大きくてもよい。オプションで、第2のプリセット反復は、量子化予定のデータの
データ変動曲線に従って確定できる。オプションで、第2のプリセット反復もユーザーが
カスタマイズできる。
カレント反復が第2のプリセット反復以上である場合、プロセッサは操作S714を実
行し、第2のプリセット反復間隔を目標反復間隔として使用し、第2のプリセット反復間
隔によって第2のプリセット反復間隔を調整することができる。ニューラルネットワーク
の量子化プロセスのパラメータ。カレント反復が第1のプリセット反復よりも大きく、カ
レント反復が第2のプリセット反復よりも小さい場合、プロセッサは上記の操作S713
を実行し、量子化予定のデータのデータ変動範囲によって目標反復間隔を確定し、そして
目標反復間隔は、量子化パラメータを調整する。
オプションで、プロセッサは、ユーザーが設定した第2のプリセット反復を読み取り、
第2のプリセット反復と第2のプリセット反復間隔(第2のプリセット反復)の間の対応
関係に従って、第2のプリセット反復間隔を確定できる。間隔は、最初にプリセット反復
間隔よりも大きくなっている。オプションで、ニューラルネットワークの収束度がプリセ
ット条件を満たす場合、カレント反復が第2のプリセット反復以上であると判断される。
例えば、カレント反復の順方向演算結果がプリセット基準値に近づくと、ニューラルネッ
トワークの収束度がプリセット条件を満たしていると判断できる。このとき、カレント反
復が2回目のプリセット反復以上であると判断できる。または、カレント反復に対応する
損失値がプリセットしきい値以下の場合、ニューラルネットワークの収束度がプリセット
条件を満たすと判断できる。
任意選択で、前述の第2のプリセット反復間隔はハイパーパラメータであり得、第2の
プリセット反復間隔は、少なくとも1つのトレーニング周期の反復の総数以上であり得る
。オプションで、第2のプリセット反復間隔はユーザーがカスタマイズできる。プロセッ
サは、ユーザーが入力した第2のプリセット反復と第2のプリセット反復間隔を直接読み
取り、第2のプリセット反復間隔によってニューラルネットワーク演算の量子化パラメー
タを更新できる。たとえば、第2のプリセット反復間隔は、1つのトレーニング周期の反
復の総数に等しくなる場合がある。つまり、量子化パラメータは、トレーニング周期(エ
ポック)ごとに1回更新される。
さらに、上記の方法には以下も含まれる。
カレント反復が第2のプリセット反復以上である場合、プロセッサは、各検査反復で現
在のデータビット幅を調整する必要があるかどうかを判断することもできる。現在のデー
タビット幅を調整する必要がある場合、プロセッサは上記の操作S714から操作S71
3に切り替えてデータビット幅を再確定し、データビット幅が量子化予定のデータの要件
を満たすことができるようにすることができる。
具体的には、プロセッサは、前述の第2の誤差によってデータビット幅を調整する必要
があるかどうかを確定することができる。プロセッサはまた、前述の操作S715を実行
して、第2の誤差がプリセット誤差値より大きいかどうかを確定し得、カレント反復が第
2のプリセット反復以上であり、第2の誤差がプリセット誤差値より大きい場合、スイッ
チして操作を実行する。S713:量子化予定のデータのデータ変動範囲によって目標反
復間隔を確定し、反復間隔によってデータビット幅を再確定する。カレント反復が第2の
プリセット反復以上であり、第2の誤差がプリセット誤差値以下の場合、操作S714の
実行を続行し、第2のプリセット反復間隔を目標反復間隔として使用し、プリセット反復
間隔によって、ニューラルネットワークの量子化プロセスのパラメータを調整する。ここ
で、プリセット誤差値は、量子化誤差に対応するプリセットしきい値に従って確定される
場合がある.第2の誤差がプリセット誤差値よりも大きい場合は、データビット幅をさら
に調整する必要がある可能性がある。プロセッサは、量子化予定のデータに基づいている
場合がある。のデータ変動範囲が反復間隔を確定し、反復間隔によってデータビット幅を
再確定する。
たとえば、2番目にプリセット反復間隔は、1つのトレーニング周期の反復の総数であ
る。カレント反復が第2のプリセット反復以上の場合、プロセッサは第2のプリセット反
復間隔によって量子化パラメータを更新できる。つまり、トレーニング周期(エポック)
ごとに1回量子化パラメータを更新する。このとき、各トレーニング周期の1番目の反復
は検査反復と見なされる。各トレーニング周期の1番目の反復で、プロセッサは検査反復
で量子化予定のデータによって量子化誤差を確定し、量子化誤差に従って第2の誤差を確
定できる。そして、次の式に従って、第2の誤差がプリセット誤差値より大きいかどうか
を判別する。
Figure 2021179966
ここで、diffupdate2は第2の誤差を表し、diffbitは量子化誤差を
表し、θはハイパーパラメータを表し、Tはプリセット誤差値を表す。オプションで、プ
リセット誤差値は、第1のプリセットしきい値をハイパーパラメータで割った値に等しく
なる。もちろん、プリセット誤差値もハイパーパラメータである可能性がある。たとえば
、プリセット誤差値は次の式に従って計算できる。T=th/10、ここでthは第1の
プリセットしきい値を表し、ハイパーパラメータの値は10である。
第2の誤差diffupdate2がプリセット誤差値Tより大きい場合は、データビ
ット幅がプリセット要件を満たしていない可能性があることを意味する。この時点で、第
2のプリセット反復間隔は量子化パラメータの更新に使用できなくなり、プロセッサは量
子化予定のデータを追跡する可能性がある。変動範囲によって、データビット幅がプリセ
ット要件を確実に満たすように、目標反復間隔が決まる。つまり、第2の誤差diff
pdate2がプリセット誤差値Tより大きい場合、プロセッサは前述の操作S714か
ら前述の操作S713に切り替わる。
もちろん、他の実施形態では、プロセッサは、前述の量子化誤差に従ってデータビット
幅を調整する必要があるかどうかを確定することができる。たとえば、2番目にプリセッ
ト反復間隔は、1つのトレーニング周期の反復の総数である。カレント反復が第2のプリ
セット反復以上の場合、プロセッサは第2のプリセット反復間隔によって量子化パラメー
タを更新できる。つまり、トレーニング周期(エポック)ごとに1回量子化パラメータを
更新する。ここで、各トレーニングサイクルの1番目の反復が検査反復として使用される
。各トレーニングサイクルの1番目の反復で、プロセッサは検査反復で量子化予定のデー
タによって量子化誤差を確定できる。量子化誤差が第1のプリセットしきい値以上の場合
、データビット幅がプリセットしきい値を満たさない可能性がある。プロセッサが上記の
動作S714から上記の動作S713に切り替わると想定される。
オプションの実施形態では、小数点位置、スケーリング係数、およびオフセットなどの
前述の量子化パラメータを表示装置に表示することができる。このとき、ユーザーはディ
スプレイ装置を介してニューラルネットワーク演算プロセスの量子化パラメータを学習で
き、プロセッサーによって確定された量子化パラメータを適応的に変更することもできる
。同様に、前述のデータビット幅と目標反復間隔も表示装置で表示できる。このとき、ユ
ーザーはディスプレイ装置を介してニューラルネットワーク演算プロセスの目標反復間隔
やデータビット幅などのパラメータを学習でき、プロセッサーによって確定された目標反
復間隔やデータビット幅を適応的に変更することもできる。
前述の方法の実施形態について、簡単な説明のために、それらはすべて一連の作用の組
み合わせとして表されるが、当技術分野の当業者は、本開示が記載された一連の作用によ
って限定されないことを理解すべきであることに留意されたい。この開示によれば、特定
のステップは、他の順序でまたは同時に実行することができるからである。第二に、当技
術分野の当業者はまた、本明細書に記載の実施形態が任意の実施形態であり、関連するア
クションおよびモジュールが本開示によって必ずしも必要とされないことを認識すべきで
ある。
本開示の一実施形態はまた、ニューラルネットワークの量子化パラメータ調整装置20
0を提供する。量子化パラメータ調整装置200は、プロセッサに設置され得る。例えば
、量子化パラメータ調整装置200は、汎用プロセッサに配置することができ、別の例で
は、量子化パラメータ調整装置を、人工知能プロセッサに配置することもできる。図3−
20に示すように、装置200には次のものが含まれる。
取得モジュール210は、量子化予定のデータのデータ変動範囲を取得するためである
反復間隔確定モジュール220は、量子化予定のデータのデータ変動範囲によって目標
反復間隔を確定するように構成され、目標反復間隔によってニューラルネットワーク動作
における量子化パラメータを調整する。少なくとも1回の反復では、ニューラルネットワ
ークの量子化パラメータを使用して、ニューラルネットワーク演算で量子化予定のデータ
に量子化操作を実装する。
オプションで、量子化パラメータにはドット位置が含まれ、ドット位置は、量子化予定
のデータに対応する量子化データ内の小数点位置である。図3−21に示すように、装置
にはさらに次のものが含まれる。
量子化パラメータ確定モジュール230は、ニューラルネットワーク動作を調整するた
めに、カレント検査反復に対応する目標データビット幅およびカレント検査反復で量子化
予定のデータによって、目標反復間隔における反復に対応する小数点位置を確定するよう
に構成される。
小数点位置;
ここで、目標反復間隔の反復に対応する小数点位置は一致している。
任意選択で、量子化パラメータは、量子化予定のデータに対応する量子化データ内の小
数点位置である小数点位置を含む;図3−23または図3−24に示されるように、装置
はさらに以下を含む。
データビット幅確定モジュール240は、カレント検査反復に対応する目標データビッ
ト幅によって、目標反復間隔に対応するデータビット幅を確定するように構成される。こ
こで、目標反復間隔の反復に対応するデータビット幅は一致している。
量子化パラメータ確定モジュール230は、取得された小数点位置反復間隔および目標
反復間隔に対応するデータビット幅によって、目標反復間隔における反復に対応する小数
点位置を調整して、ニューラルネットワーク動作における点を調整するように構成される
。ポジション;
ここで、小数点位置反復間隔には少なくとも1つの反復が含まれ、小数点位置反復間隔
内の反復小数点位置は一致している。
オプションで、小数点位置の反復間隔は、目標反復間隔以下である。
オプションで、量子化パラメータにはさらにスケーリング係数が含まれ、スケーリング
係数は小数点位置と同期して更新される。
オプションで、量子化パラメータにはさらにオフセットが含まれ、オフセットは小数点
位置と同期して更新される。
任意選択で、図3ー24に示されるように、データビット幅確定モジュール240は、
以下を含む。
量子化誤差確定ユニット241は、カレント検査反復の量子化データおよびカレント検
査反復の量子化データに従って量子化誤差を確定するように構成される。ここで、カレン
ト検査反復の量子化データは、カレント検査反復に対するものである。量子化予定のデー
タは、量子化によって取得される。
データビット幅確定ユニット242は、量子化誤差に従って、カレント検査反復に対応
する目標データビット幅を確定するように構成される。
オプションとして、データビット幅確定ユニット242は、量子化誤差に従って、カレ
ント検査反復に対応する目標データビット幅を確定するように構成される。
量子化誤差が第1のプリセットしきい値以上の場合は、カレント検査反復に対応するデ
ータビット幅を増やして、カレント検査反復に対応する目標データビット幅を取得する。
または、
量子化誤差が第2のプリセットしきい値以下の場合、カレント検査反復に対応するデー
タビット幅が縮小され、カレント検査反復に対応する目標データビット幅が取得される。
任意選択で、データビット幅確定ユニット242は、量子化誤差が第1のプリセットし
きい値以上である場合、カレント検査反復に対応するデータビット幅を増加させて、カレ
ント検査反復に対応するデータを取得するように構成される。目標データのビット幅は、
特に次の目的で使用される。
量子化誤差が第1のプリセットしきい値以上の場合、第1のプリセットビット幅のステ
ップ長さによって第1の中間データビット幅を確定する。
戻って、カレント検査反復で量子化予定のデータとカレント検査反復の量子化データに
従って、量子化誤差が第1のプリセットしきい値より小さくなるまで、量子化誤差を確定
する。ここで、カレント検査反復の量子化データは第1の中間データのビット幅に応じて
、カレント検査反復で量子化予定のデータが量子化され、取得される。
任意選択で、データビット幅確定ユニット242は、量子化誤差が第2のプリセットし
きい値以下である場合、カレント検査反復に対応するデータビット幅を減少させて、対応
するカレント検査反復を取得するように構成される。の目標データビット幅が特に次の目
的で使用される場合:
量子化誤差が第2のプリセットしきい値以下の場合、第2のプリセットビット幅のステ
ップ長さによって第2の中間データビット幅を確定する。
カレント検査反復で量子化予定のデータとカレント検査反復の量子化データに基づいて
、量子化誤差が第2のプリセットしきい値より大きくなるまで、量子化誤差を確定するた
めに戻る。ここで、カレント検査反復の量子化データは第2の中間データのビット幅に応
じて、カレント検査反復で量子化予定のデータは、量子化によって取得される。
オプションで、取得モジュール210は、以下を含む。
第1の取得モジュール211は、小数点位置の変動範囲を取得するように構成され、小
数点位置の変動範囲を使用して、量子化予定のデータのデータ変動範囲を表すことができ
、小数点位置の変動範囲は、小数点位置の変動範囲と同じである。データの変化の大きさ
は正の相関がある。
任意選択で、図3−23または図3−24に示されるように、第1の取得モジュール2
11は、以下を含む。
第1の平均値確定ユニット2110は、カレント検査反復前の一つ前の検査反復に対応
する小数点位置および前の検査反復前の履歴反復に対応する小数点位置に従って第1の平
均値を確定するように構成される。一つ前の検査反復は、目標反復間隔前の一つ前の反復
間隔に対応する検査反復である。
第2の平均値確定ユニット2111は、カレント検査反復に対応する小数点位置および
カレント検査反復前の履歴反復の小数点位置に従って第2の平均値を確定するように構成
される;ここで、カレント検査反復に対応する小数点位置は、に基づく。カレント検査反
復に対応する目標データビット幅と量子化予定のデータが確定される。
第1の誤差確定ユニット2112は、第1の平均値および第2の平均値に従って第1の
誤差を確定するように構成され、第1の誤差は、小数点位置の変動範囲を表すためである
オプションとして、第2の平均値確定ユニット2111は、特に以下のように構成され
る。
中間スライディング平均値のプリセット数を取得する。ここで、中間スライディング平
均値のそれぞれは、カレント検査反復の前の検査反復のプリセット数に従って確定される
第2の平均値は、カレント検査反復の小数点位置と、プリセット中間スライド平均値の
数に従って確定される。
任意選択で、第2の平均値確定ユニット2111は、カレント検査反復に対応する小数
点位置および第1の平均値に従って第2の平均値を確定するように特別に構成される。
任意選択で、第2の平均値確定ユニット2111は、カレント検査反復の取得されたデ
ータビット幅調整値に従って第2の平均値を更新するようにさらに構成される。
ここで、カレント検査反復のデータビット幅調整値は、カレント検査反復の目標データ
ビット幅および初期データビット幅によって確定される。
任意選択で、第2の平均値確定ユニット2111は、カレント検査反復の取得されたデ
ータビット幅調整値に従って、特に以下に第2の平均値を更新するように構成される。
カレント検査反復のデータビット幅調整値がプリセットパラメータよりも大きい場合、
第2の平均値は、カレント検査反復のデータビット幅調整値に従って減少する。
カレント検査反復のデータビット幅調整値がプリセットパラメータよりも小さい場合、
第2の平均値は、カレント検査反復のデータビット幅調整値に従って増やす。
任意選択で、反復間隔確定モジュール220は、第1の誤差によって目標反復間隔を確
定するように構成され、目標反復間隔は、第1の誤差と負の相関がある。
オプションとして、取得モジュール210はさらに以下を含む。
第2の取得モジュール212は、データビット幅の変化傾向を取得するように構成され
る;小数点位置の変動範囲およびデータビット幅の変化傾向によって、量子化予定のデー
タのデータ変動範囲を確定する。
任意選択で、反復間隔確定モジュール220は、取得された第1の誤差および第2の誤
差によって目標反復間隔を確定するように構成される;ここで、第1の誤差は、小数点位
置の変化の範囲を表すために使用され、第2の誤差は、データビット幅の変化傾向を特徴
づけるためである。
オプションとして、ルート反復間隔確定モジュール220は、特に以下について、取得
された第1の誤差および第2の誤差によって目標反復間隔を確定するように構成される。
第1の誤差と第2の誤差の最大値を目標誤差とする。
目標反復間隔は、目標誤差によって確定される。ここで、目標誤差は、目標反復間隔と
負の相関がある。
任意選択で、第2の誤差は、量子化誤差によって確定される;ここで、量子化誤差は、
カレント検査反復で量子化予定のデータおよびカレント検査反復の量子化データによって
確定され、第2の誤差は、量子化誤差とは異なる。誤差は正の相関がある。
オプションで、装置は、ニューラルネットワークのトレーニングまたは微調整を実装す
るためである。反復間隔確定モジュール220は、以下の目的にも使用される。
カレント反復が第1のプリセット反復よりも大きい場合、目標反復間隔は、量子化予定
のデータのデータ変動範囲によって確定され、量子化パラメータは、目標反復間隔によっ
て調整される。
オプションで、反復間隔確定モジュール220は、以下のようにさらに構成される:カ
レント反復が第1のプリセット反復以下である場合、第1のプリセット反復間隔を目標反
復間隔として使用し、に従って計算を実行する。第1のプリセット反復間隔で量子化パラ
メータを調整する。
オプションで、反復間隔確定モジュール220はさらに以下のように構成される。
カレント反復が第2のプリセット反復以上の場合、第2のプリセット反復間隔を目標反
復間隔として使用し、第2のプリセット反復間隔によって量子化パラメータを調整する。
ここで、ニューラルネットワークの収束の程度がプリセット条件を満たす場合、カレン
ト検査反復が第2のプリセット反復以上であると判断される。
第2のプリセット反復は第1のプリセット反復よりも大きく、第2のプリセット反復間
隔は第1のプリセット反復間隔よりも大きくなっている。
オプションで、反復間隔確定モジュール220は、以下のようにさらに構成される:カ
レント反復が第2のプリセット反復以上であり、第2の誤差がプリセット誤差値より大き
い場合、量子化予定のデータのデータに従って変化する。振幅は反復間隔を確定し、反復
間隔によってデータビット幅を再確定する。
本開示の実施形態の各モジュールまたはユニットの動作原理は、基本的に、前述の方法
における各操作の実施プロセスと同じであることは明らかである。詳細については、ここ
では繰り返さない上記の説明を参照されたい。前述の装置の実施形態は例示にすぎず、本
開示の装置は他の方法でも実施できることを理解されたい。例えば、上記の実施形態にお
けるユニット/モジュールの分割は、論理的機能分割にすぎず、実際の実施において他の
分割方法があり得る。たとえば、複数のユニット、モジュール、またはコンポーネントを
組み合わせたり、別のシステムに統合したり、一部の機能を省略したり、実装しなかった
りする場合がある。上記の統合ユニット/モジュールは、ハードウェアまたはソフトウェ
アプログラムモジュールの形式で実装できる。統合ユニット/モジュールがハードウェア
の形で実装されている場合、ハードウェアはデジタル回路、アナログ回路などである可能
性がある。ハードウェア構造の物理的な実現には、トランジスタ、メモリスタなどが含ま
れるが、これらに限定されない。
統合されたユニット/モジュールがソフトウェアプログラムモジュールの形式で実装さ
れ、独立した製品として販売または使用される場合、コンピュータで読み取り可能なメモ
リに格納できる。この理解に基づいて、本開示の技術案は、本質的に、または既存の技術
に寄与する部分、または技術案の全部または一部をソフトウェア製品の形で具体化するこ
とができ、コンピュータソフトウェア製品はメモリに格納され、これは、コンピュータ装
置(パーソナルコンピュータ、サーバ、またはネットワーク装置などであり得る)に、本
開示の様々な実施形態に記載された方法のステップの全部または一部を実行させるための
いくつかの命令を含む。前述のメモリには、Uディスク、読み取り専用メモリ(ROM、
読み取り専用メモリ)、ランダムアクセスメモリ(RAM、ランダムアクセスメモリ)、
モバイルハードディスク、磁気ディスク、または光ディスク、およびプログラムコードを
格納できるその他のメディアが含まれる。
一実施形態では、本開示はまた、コンピュータプログラムが格納されるコンピュータ可
読記憶媒体を提供する。コンピュータプログラムがプロセッサまたは装置によって実行さ
れる場合、上記の実施形態のいずれかと同様の方法が実施される。具体的には、コンピュ
ータプログラムがプロセッサまたは装置によって実行される場合、次のメソッドが実装さ
れる。
量子化予定のデータのデータ変動範囲を取得する。
量子化予定のデータのデータ変動範囲によって目標反復間隔を確定し、目標反復間隔に
少なくとも1回の反復を含むニューラルネットワーク操作の量子化パラメータと、ニュー
ラルネットワークを調整する。量子化パラメータは、ニューラルネットワーク演算で量子
化予定のデータに量子化操作を実装するためである。
本開示の実施形態における各操作の実施は、基本的に、前述の方法における各操作の実
施プロセスと同じであることは明らかである。詳細については、上記の説明を参照し、こ
こでは繰り返さない。
上記の実施形態では、各実施形態の説明は、それ自体の強調を有する。一実施形態で詳
細に説明されていない部分については、他の実施形態の関連する説明を参照することがで
きる。上記の実施形態の技術的特徴は任意に組み合わせることができる。説明を簡潔にす
るために、上記の実施形態における技術的特徴のすべての可能な組み合わせは記載されて
いないが、これらの技術的特徴の組み合わせに矛盾がない限り、それらはすべきである。
この明細書で説明されている範囲と見なされる。
可能な実施方法において、前述の量子化パラメータ調整装置を含む人工知能チップも開
示される。
可能な実施方法において、記憶装置、インターフェース装置、制御装置、および上記の
人工知能チップを含むボードカードも開示され、ここで、人工知能チップと記憶装置およ
び制御装置は、そして、インターフェース装置はそれぞれ接続されている;記憶装置はデ
ータを格納するためである;インターフェース装置は人工知能チップと外部装置の間のデ
ータ伝送を実現するためである;制御装置は人工知能チップの状態を監視する。
図3−25は、本開示の一実施形態によるボードカードのブロック図を示す。図3−2
5を参照すると、ボードカードは、上記のチップ389に加えて他の支持構成要素を含み
得る。支持構成要素は、記憶装置390、インターフェース装置391および制御装置3
92を含むが、これらに限定されない。
記憶装置390は、データを記憶するためのバスを介して人工知能チップに接続されて
いる。記憶装置は、記憶ユニット393の複数のグループを含み得る。記憶ユニットと人
工知能チップの各グループは、バスを介して接続されている。記憶ユニットの各グループ
はDDRSDRAM(英語:Double Data Rate SDRAM、ダブルレ
ート同期動的ランダムアクセスメモリ)である可能性があることが理解できる。
DDRは、クロック周波数を上げることなく、SDRAMの速度を2倍にすることがで
きる。DDRを使用すると、クロックパルスの立ち上がりエッジと立ち下がりエッジでデ
ータを読み取ることができる。DDRの速度は標準のSDRAMの2倍である。一実施形
態では、貯蔵装置は、貯蔵ユニットの4つのグループを含み得る。記憶ユニットの各グル
ープには、複数のDDR4粒子(チップ)を含めることができる。一実施形態では、人工
知能チップは、4つの72ビットDDR4コントローラを含み得る。72ビットDDR4
コントローラでは、64ビットがデータ伝送に使用され、8ビットがECC検証に使用さ
れる。記憶ユニットの各グループでDDR4−3200粒子を使用すると、データ伝送の
理論上の帯域幅が25600MB/秒に達する可能性があることが理解できる。
一実施形態では、記憶ユニットの各グループは、並列に配置された複数のダブルレート
同期動的ランダムアクセスメモリを含む。DDRは、1クロックサイクルで2回データを
送信できる。各記憶ユニットのデータ伝送とデータストレージを制御するために、DDR
を制御するためのコントローラがチップに提供されている。
インターフェース装置は、人工知能チップに電気的に接続されている。インターフェイ
ス装置は、人工知能チップと外部装置(サーバーやコンピュータなど)との間のデータ伝
送を実装するためである。例えば、一実施形態では、インターフェース装置は、標準のP
CIEインターフェースであり得る。たとえば、処理されるデータは、データ伝送を実現
するために、標準のPCIEインターフェイスを介してサーバーからチップに伝送される
。送信にPCIE3.0X16インターフェイスを使用する場合、理論上の帯域幅は16
000MB/sに達することが好ましい。別の実施形態において、インターフェース装置
はまた、他のインターフェースであり得る。本開示は、インターフェースユニットがスイ
ッチング機能を実現できる限り、上記の他のインターフェースの特定の症状を限定しない
。さらに、人工知能チップの計算結果は、インターフェース装置によって外部装置(サー
バーなど)に送信される。
制御装置は人工知能チップに電気的に接続されている。制御装置は、人工知能チップの
状態を監視するためである。具体的には、人工知能チップと制御装置は、SPIインター
フェースを介して電気的に接続され得る。制御装置は、シングルチップマイクロコンピュ
ータ(マイクロコントローラユニット、MCU)を含み得る。たとえば、人工知能チップ
は、複数の処理チップ、複数の処理コア、または複数の処理回路を含み得、複数の負荷を
駆動することができる。したがって、人工知能チップは、複数の負荷や軽負荷など、さま
ざまな動作状態になる可能性がある。制御装置は、人工知能チップ内の複数の処理チップ
、複数の処理および/または複数の処理回路の動作状態の調整および制御を実現すること
ができる。
可能な実施方法において、前述の人工知能チップを含む電子装置が開示される。電子機
器には、データ処理装置、ロボット、コンピュータ、プリンター、スキャナー、タブレッ
ト、スマート端末、携帯電話、ドライビングレコーダー、ナビゲーター、センサー、カメ
ラ、サーバー、クラウドサーバー、カメラ、カメラ、プロジェクター、時計、ヘッドセッ
トが含まれる、モバイルストレージ、ウェアラブル装置、車両、家電製品、および/また
は医療機器。
輸送手段には飛行機、船および/または車両が含まれ、家庭用電化製品にはテレビ、エ
アコン、電子レンジオーブン、冷蔵庫、炊飯器、加湿器、洗濯機、電灯、ガスストーブ、
レンジフードが含まれる。医療機器には核磁気共鳴、B−超音波および/または心電計が
含まれる。
この開示の内容は、以下の用語に従ってよりよく理解することができる。
C1、ニューラルネットワークの量子化パラメータの調整方法。この方法は以下を含む
量子化予定のデータのデータ変動範囲を取得する。
量子化予定のデータのデータ変動範囲によって目標反復間隔を確定し、目標反復間隔に
少なくとも1回の反復を含むニューラルネットワーク操作の量子化パラメータと、ニュー
ラルネットワークを調整する。量子化パラメータは、ニューラルネットワーク演算で量子
化予定のデータに量子化操作を実装するためである。
C2、量子化パラメータが小数点位置を含み、小数点位置が、量子化予定のデータに対
応する量子化データ内の小数点位置である、条項C1に記載の方法;この方法は、以下を
さらに含む。
カレント検査反復に対応する目標データビット幅と、カレント検査反復で量子化予定の
データによって、目標反復間隔の反復に対応する小数点位置を確定し、ニューラルネット
ワーク演算の小数点位置を調整する。
ここで、目標反復間隔の反復に対応する小数点位置は一致している。
C3、量子化パラメータが小数点位置を含み、小数点位置が、量子化予定のデータに対
応する量子化データ内の小数点位置である、条項C1に記載の方法;この方法は、以下を
さらに含む。
カレント検査反復に対応する目標データビット幅によって、目標反復間隔に対応するデ
ータビット幅を確定する。ここで、目標反復間隔の反復に対応するデータビット幅は一致
している。
取得した小数点位置反復間隔および目標反復間隔に対応するデータビット幅によって、
目標反復間隔の反復に対応する小数点位置を調整して、ニューラルネットワーク演算の小
数点位置を調整する。
ここで、小数点位置反復間隔には少なくとも1つの反復が含まれ、小数点位置反復間隔
内の反復小数点位置は一致している。
C4、小数点位置の反復間隔が目標反復間隔以下である、C2項またはC3項に記載の
方法。
C5、量子化パラメータがさらにスケーリング係数を含み、スケーリング係数が小数点
位置と同期して更新される、条項C1〜C4のいずれか1つに記載の方法。
C6、量子化パラメータがさらにオフセットを含み、オフセットが小数点位置と同期し
て更新される、条項C1〜C5のいずれか1つに記載の方法。
C7、条項C1〜C6のいずれか1つに記載の方法であって、以下をさらに含む方法。
カレント検査反復の量子化データおよびカレント検査反復の量子化データに従って量子
化誤差を確定する。ここで、カレント検査反復の量子化データは、カレント検査反復の量
子化データを量子化することによって得られる。
量子化誤差に応じて、カレント検査反復に対応する目標データビット幅が確定される。
C8、量子化誤差に従ってカレント検査反復に対応する目標データビット幅を確定する
ことは、以下を含む、条項C1〜C7に記載の方法。
量子化誤差が第1のプリセットしきい値以上の場合は、カレント検査反復に対応するデ
ータビット幅を増やして、カレント検査反復に対応する目標データビット幅を取得する。
または、
量子化誤差が第2のプリセットしきい値以下の場合、カレント検査反復に対応するデー
タビット幅が縮小され、カレント検査反復に対応する目標データビット幅が取得される。
C9、C8項の方法によれば、量子化誤差が第1のプリセットしきい値以上の場合、カ
レント検査反復に対応するデータビット幅を増やして、カレント検査反復に対応する目標
データビット幅を取得する。
量子化誤差が第1のプリセットしきい値以上の場合、第1のプリセットビット幅のステ
ップ長さによって第1の中間データビット幅を確定する。
戻って、カレント検査反復で量子化予定のデータとカレント検査反復の量子化データに
従って、量子化誤差が第1のプリセットしきい値より小さくなるまで、量子化誤差を確定
する。ここで、カレント検査反復の量子化データは第1の中間データのビット幅に応じて
、カレント検査反復で量子化予定のデータが量子化され、取得される。
C10、量子化誤差が第2のプリセットしきい値以下である場合、カレント検査反復に
対応するデータビット幅を減少させることを含む、条項C8による方法。
量子化誤差が第2のプリセットしきい値以下の場合、第2のプリセットビット幅のステ
ップ長さによって第2の中間データビット幅を確定する。
カレント検査反復で量子化予定のデータとカレント検査反復の量子化データに基づいて
、量子化誤差が第2のプリセットしきい値より大きくなるまで、量子化誤差を確定するた
めに戻る。ここで、カレント検査反復の量子化データは第2の中間データのビット幅に応
じて、カレント検査反復で量子化予定のデータは、量子化によって取得される。
C11、量子化予定のデータのデータ変動範囲を取得することは、以下を含む、条項C
1〜C10のいずれか1つに記載の方法。
小数点位置の変動範囲を取得する。ここで、小数点位置の変動範囲を使用して、量子化
予定のデータのデータ変動範囲を表すことができ、小数点位置の変動範囲は、量子化予定
のデータのデータ変動範囲と正の相関がある。
C12、C1〜C11項に記載されている方法によると、取得小数点位置変動範囲には
次のものが含まれる。
カレント検査反復前の一つ前の検査反復に対応する小数点位置と、一つ前の検査反復前
の履歴反復に対応する小数点位置によって第1の平均値を確定する。ここで、前の検査反
復は目標反復間隔である。前の反復間隔に対応する検査反復。
カレント検査反復に対応する小数点位置とカレント検査反復前の履歴反復の小数点位置
によって第2の平均値を確定する。ここで、カレント検査反復に対応する小数点位置は、
カレント検査反復に対応する目標データに基づいている。量子化するビット幅とデータが
確定される。
第1の誤差は、第1の平均値および第2の平均値に従って確定され、第1の誤差は、小
数点位置の変動範囲を表すためである。
C13、カレント検査反復に対応する小数点位置およびカレント検査反復前の履歴反復
の小数点位置に従って第2の平均値を確定することは、以下を含む、条項C12による方
法。
中間スライディング平均値のプリセット数を取得する。ここで、中間スライディング平
均値のそれぞれは、カレント検査反復の前の検査反復のプリセット数に従って確定される
第2の平均値は、カレント検査反復の小数点位置と、プリセット中間スライド平均値の
数に従って確定される。
C14、カレント検査反復に対応する小数点位置およびカレント検査反復前の履歴反復
の小数点位置に従って第2の平均値を確定する、条項C12に記載の方法には、以下が含
まれる。
第2の平均値は、カレント検査反復に対応する小数点位置と第1の平均値に従って確定
される。
C15、条項C12による方法であって、以下をさらに含む方法。
第2の平均値は、カレント検査反復の取得データビット幅調整値に従って更新される。
カレント検査反復のデータビット幅調整値は、カレント検査反復の目標データビット幅と
初期データビットに基づいて確認される。
C16、カレント検査反復の取得されたデータビット幅調整値に従って第2の平均値を
更新する、条項C15に記載の方法は、以下を含む。
カレント検査反復のデータビット幅調整値がプリセットパラメータよりも大きい場合、
第2の平均値は、カレント検査反復のデータビット幅調整値に従って減少する。
カレント検査反復のデータビット幅調整値がプリセットパラメータよりも小さい場合、
第2の平均値は、カレント検査反復のデータビット幅調整値に従って増やす。
C17、量子化予定のデータのデータ変動範囲によって目標反復間隔を確定することは
、以下を含む、条項C12に記載の方法。
目標反復間隔は第1の誤差によって確定され、目標反復間隔は第1の誤差と負の相関が
ある。
C18、量子化予定のデータのデータ変動範囲を取得する、条項C11〜C17のいず
れか1つによる方法は、さらに以下を含む。
データビット幅の変化傾向を取得する。
小数点位置の変動範囲とデータビット幅の変化傾向によって、量子化予定のデータのデ
ータ変動範囲を確定する。
C19、量子化予定のデータのデータ変動範囲によって目標反復間隔を確定する、条項
C18による方法は、さらに以下を含む。
取得した第1誤差と第2誤差に応じて、目標反復間隔を確定する。ここで、第1誤差は
小数点位置の変動範囲を表すために使用され、第2誤差はデータビット幅の変化傾向を表
すためである。
C20、取得された第2の誤差および第1の誤差によって目標反復間隔を確定すること
は、以下を含む、条項C19に記載の方法。
第1の誤差と第2の誤差の最大値を目標誤差とする。
目標反復間隔は、目標誤差によって確定される。ここで、目標誤差は、目標反復間隔と
負の相関がある。
C21、第2の誤差が量子化誤差によって確定される、条項C19またはC20に記載
の方法。
量子化誤差は、カレント検査反復で量子化予定のデータとカレント検査反復の量子化後
のデータによって確定され、第2の誤差は量子化誤差と正の相関がある。
C22、ニューラルネットワークのトレーニングまたは微調整に使用される、C1〜C
21項のいずれか1つに基づく方法。この方法には、以下が含まれる。
カレント反復が第1のプリセット反復よりも大きい場合、目標反復間隔は、量子化予定
のデータのデータ変動範囲によって確定され、量子化パラメータは、目標反復間隔によっ
て調整される。
C23、C22項に基づく方法であり、以下をさらに含む方法。
カレント反復が第1のプリセット反復以下の場合、第1のプリセット反復間隔が目標反
復間隔として採用され、量子化パラメータは第1のプリセット反復間隔によって調整され
る。
C24、条項C22またはC23に基づく方法であり、以下をさらに含む方法。
カレント反復が第2のプリセット反復以上の場合、第2のプリセット反復間隔を目標反
復間隔として使用し、第2のプリセット反復間隔によって量子化パラメータを調整する。
ここで、第2のプリセット反復は第1のプリセット反復よりも大きく、第2のプリセッ
ト反復間隔は第1のプリセット反復間隔よりも大きくなる。
C25、C24項に基づく方法で、さらに以下を含む。
ニューラルネットワークの収束度がプリセット条件を満たす場合、カレント検査反復が
第2のプリセット反復以上であると判断される。
C26、C24項に基づく方法で、さらに以下を含む。
カレント反復が第2のプリセット反復以上であり、第2の誤差がプリセット誤差値より
大きい場合、反復間隔は、量子化予定のデータのデータ変動範囲によって確定され、反復
間隔によって反復間隔が再確定される。データビット幅。
C27、量子化予定のデータが、ニューロンデータ、重みデータ、または勾配データの
うちの少なくとも1つである、条項C1〜C26のいずれか1つに記載の方法。
C28、メモリとプロセッサを備えたニューラルネットワークの量子化パラメータ調整
装置。メモリはコンピュータプログラムを格納し、プロセッサがコンピュータプログラム
を実行すると、C1〜C27項のいずれかに記載の方法が実行される。のステップ。
C29、コンピュータプログラムが格納され、コンピュータプログラムが実行されると
、C1〜C27項のいずれかに記載されている方法のステップを実装するコンピュータ可
読記憶媒体。
C30、ニューラルネットワークの量子化パラメータ調整装置。
取得モジュールは、量子化予定のデータのデータ変動範囲を取得するためである。
反復間隔確定モジュールは、量子化予定のデータのデータ変動範囲によって目標反復間
隔を確定するように構成され、目標反復間隔によってニューラルネットワーク操作におけ
る量子化パラメータを調整し、ここで、目標反復間隔は、少なくとも1回の反復では、ニ
ューラルネットワークの量子化パラメータを使用して、ニューラルネットワーク演算で量
子化予定のデータの量子化操作を実装する。
C31、量子化パラメータが小数点位置を含み、小数点位置が、量子化予定のデータに
対応する量子化データ内の小数点位置である、条項C30に記載の装置;装置はさらに以
下を含む。
量子化パラメータ確定モジュールは、カレント検査反復に対応する目標データビット幅
およびカレント検査反復で量子化予定のデータによって、目標反復間隔の反復に対応する
小数点位置を確定するように構成され、ニューラルネットワーク動作を調整する。
ここで、目標反復間隔の反復に対応する小数点位置は一致している。
C32、量子化パラメータが小数点位置を含み、小数点位置が、量子化予定のデータに
対応する量子化データ内の小数点位置である、条項C30に記載の装置;装置は、さらに
以下を含む。
カレント検査反復に対応する目標データビット幅によって、目標反復間隔に対応するデ
ータビット幅を確定するように構成されるデータビット幅確定モジュール。ここで、目標
反復間隔の反復に対応するデータビット幅は一致している。
量子化パラメータ確定モジュールは、取得した小数点位置反復間隔によって目標反復間
隔の反復に対応する小数点位置を調整し、目標反復間隔に対応するデータビット幅を調整
してニューラルネットワーク動作の小数点位置を調整するように構成される。
ここで、小数点位置反復間隔には少なくとも1つの反復が含まれ、小数点位置反復間隔
内の反復小数点位置は一致している。
C33、小数点位置の反復間隔が目標反復間隔以下である、C32項に記載の装置。
C34、C31からC33のいずれか1つに記載の装置で、量子化パラメータにはさら
にスケーリング係数が含まれ、スケーリング係数は小数点位置と同期して更新される。
C35、C31からC33のいずれか1つに記載の装置。ここで、量子化パラメータに
はさらにオフセットが含まれ、オフセットは小数点位置と同期して更新される。
C36、データビット幅確定モジュールが以下を含む、C31項からC33項のいずれ
か1つに記載の装置。
量子化誤差確定ユニットは、カレント検査反復の量子化データおよびカレント検査反復
の量子化データに従って量子化誤差を確定するように構成され、カレント検査反復の量子
化データは、カレント検査反復の量子化データを比較する。データは量子化に取得される
データビット幅確定ユニットは、量子化誤差に従って、カレント検査反復に対応する目
標データビット幅を確定するように構成される。
C37、データビット幅確定ユニットが、量子化誤差に従ってカレント検査反復に対応
する目標データビット幅を確定するように構成される、条項C36に記載の装置。
量子化誤差が第1のプリセットしきい値以上の場合は、カレント検査反復に対応するデ
ータビット幅を増やして、カレント検査反復に対応する目標データビット幅を取得する。
または、
量子化誤差が第2のプリセットしきい値以下の場合、カレント検査反復に対応するデー
タビット幅が縮小され、カレント検査反復に対応する目標データビット幅が取得される。
C38、データビット幅確定ユニットが、量子化誤差が第1のプリセットしきい値以上
である場合、カレント検査反復に対応するデータビット幅を増加させて得られるように構
成される、条項C37に記載の装置。カレント検査反復に対応する目標データのビット幅
を記述する場合、特に次の目的で使用される。
量子化誤差が第1のプリセットしきい値以上の場合、第1のプリセットビット幅のステ
ップ長さによって第1の中間データビット幅を確定する。
戻って、カレント検査反復で量子化予定のデータとカレント検査反復の量子化データに
従って、量子化誤差が第1のプリセットしきい値より小さくなるまで、量子化誤差を確定
する。ここで、カレント検査反復の量子化データは第1の中間データのビット幅に応じて
、カレント検査反復で量子化予定のデータが量子化され、取得される。
C39、データビット幅確定ユニットは、量子化誤差が取得するための第2のプリセッ
トしきい値以下である場合、カレント検査反復に対応するデータビット幅を減少させるよ
うに構成される、条項C37に記載の装置。カレント検査反復に対応する目標データビッ
ト幅が特に次の目的で使用される場合:
量子化誤差が第2のプリセットしきい値以下の場合、第2のプリセットビット幅のステ
ップ長さによって第2の中間データビット幅を確定する。
カレント検査反復で量子化予定のデータとカレント検査反復の量子化データに基づいて
、量子化誤差が第2のプリセットしきい値より大きくなるまで、量子化誤差を確定するた
めに戻る。ここで、カレント検査反復の量子化データは第2の中間データのビット幅に応
じて、カレント検査反復で量子化予定のデータは、量子化によって取得される。
C40、取得モジュールが以下を含むC30−C39項のいずれか1つに記載の装置。
最初の取得モジュールは、小数点位置の変動範囲を取得するためである。小数点位置の
変動範囲は、量子化予定のデータのデータ変化の範囲を表すために使用でき、小数点位置
の変動範囲は、量子化予定のデータに対応する。データの変化には正の相関関係がある。
C41、第1の取得モジュールが以下を含む、C40項に記載の方法。
第1の平均値確定ユニットは、カレント検査反復前の一つ前の検査反復に対応する小数
点位置および前の検査反復前の履歴反復に対応する小数点位置に従って第1の平均値を確
定するように構成される。検査反復は、目標反復間隔前の一つ前の反復間隔に対応する検
査反復である。
第2の平均値確定ユニットは、カレント検査反復に対応する小数点位置およびカレント
検査反復前の履歴反復の小数点位置に従って第2の平均値を確定するように構成される;
ここで、カレント検査反復に対応する小数点位置は、カレント検査反復に対応する目標デ
ータビット幅と量子化予定のデータが確定される。
第1の誤差確定ユニットは、第1の平均値および第2の平均値に従って第1の誤差を確
定するように構成され、第1の誤差は、小数点位置の変動範囲を表すためである。
C42、第2の平均値確定ユニットが特に以下のように構成される、条項C41に記載
の装置。
中間スライディング平均値のプリセット数を取得する。ここで、中間スライディング平
均値のそれぞれは、カレント検査反復の前の検査反復のプリセット数に従って確定される
第2の平均値は、カレント検査反復の小数点位置と、プリセット中間スライド平均値の
数に従って確定される。
C43、第2の平均値確定ユニットは、カレント検査反復および第1の平均値に対応す
る小数点位置に従って第2の平均値を確定するように特に構成される、条項C41に記載
の装置。
C44、第2の平均値確定ユニットは、カレント検査反復の取得されたデータビット幅
調整値に従って第2の平均値を更新するようにさらに構成される、条項C41に記載の装
置。
ここで、カレント検査反復のデータビット幅調整値は、カレント検査反復の目標データ
ビット幅および初期データビット幅によって確定される。
C45、第2の平均値確定ユニットが、カレント検査反復の取得されたデータビット幅
調整値に従って第2の平均値を更新するようにさらに構成される、条項C44に記載の装
置。
カレント検査反復のデータビット幅調整値がプリセットパラメータよりも大きい場合、
第2の平均値は、カレント検査反復のデータビット幅調整値に従って減少する。
カレント検査反復のデータビット幅調整値がプリセットパラメータよりも小さい場合、
第2の平均値は、カレント検査反復のデータビット幅調整値に従って増やす。
C46、反復間隔確定モジュールが、第1の誤差によって目標反復間隔を確定するよう
に構成され、目標反復間隔が第1の誤差と負に相関する、条項C41に記載の装置。
C47、取得モジュールがさらに以下を含む、C40項に記載の装置。
第2の取得モジュールは、データビット幅の変化傾向を取得するように構成される。小
数点位置の変動範囲とデータビット幅の変化傾向によって、量子化予定のデータのデータ
変動範囲を確定する。
C48、反復間隔確定モジュールが、取得された第1の誤差および第2の誤差によって
目標反復間隔を確定するようにさらに構成される、条項C47に記載の装置。ここで、第
1の誤差は、点を表すためである。位置変動範囲、および第2の誤差は、データビット幅
の変化傾向を表すためである。
C49、ルート反復間隔確定モジュールが、取得された第1の誤差および第2の誤差に
よって、特に以下について、目標反復間隔を確定するように構成される、条項C48に記
載の装置。
第1の誤差と第2の誤差の最大値を目標誤差とする。
目標反復間隔は、目標誤差によって確定される。ここで、目標誤差は、目標反復間隔と
負の相関がある。
C50、第2の誤差が量子化誤差によって確定される、条項C48またはC49に記載
の装置。
量子化誤差は、カレント検査反復で量子化予定のデータとカレント検査反復の量子化後
のデータによって確定され、第2の誤差は量子化誤差と正の相関がある。
C51、条項C30からC50のいずれかによる装置。装置は、ニューラルネットワー
クのトレーニングまたは微調整を実装するためである。反復間隔確定モジュールは、さら
に次の目的で使用される。
カレント反復が第1のプリセット反復よりも大きい場合、目標反復間隔は、量子化予定
のデータのデータ変動範囲によって確定され、量子化パラメータは、目標反復間隔によっ
て調整される。
C52、反復間隔確定モジュールは、次のようにさらに構成される、条項C51に記載
の装置。カレント反復が第1のプリセット反復以下の場合、第1のプリセット反復間隔を
反復間隔をターゲットにし、最初にプリセット反復間隔によって量子化パラメータを調整
する。
C53、反復間隔確定モジュールがさらに以下のように構成される、条項C51または
C52に記載の装置。
カレント反復が第2のプリセット反復以上の場合、第2のプリセット反復間隔を目標反
復間隔として使用し、第2のプリセット反復間隔によって量子化パラメータを調整する。
ここで、ニューラルネットワークの収束の程度がプリセット条件を満たす場合、カレン
ト検査反復が第2のプリセット反復以上であると判断される。
第2のプリセット反復は第1のプリセット反復よりも大きく、第2のプリセット反復間
隔は第1のプリセット反復間隔よりも大きくなっている。
C54、反復間隔確定モジュールは、次のようにさらに構成される、C53項に記載の
装置。カレント反復が第2のプリセット反復以上であり、第2の誤差がプリセット誤差値
より大きい場合。量子化予定のデータのデータ変動範囲が反復間隔を確定し、反復間隔に
よってデータビット幅を再確定する。
本開示の実施形態は上に記載されており、上記の説明は例示的であり、網羅的ではなく
、開示された実施形態に限定されない。図示された実施形態の範囲および精神から逸脱す
ることなく、多くの修正および変更は、当技術分野の通常の技術者にとって明らかである
。本明細書で使用される用語の選択は、各実施形態の市場における技術の原理、実際の適
用、または改善を最もよく説明すること、または他の通常の当業者が本明細書に開示され
る様々な実施形態を理解できるようにすることを意図する。
量子化パラメータ調整の問題を解決するために提案された解決策(201910528
537.8)は上記のとおりである。

Claims (19)

  1. 各タイプの量子化予定のデータの統計結果を取得することと、
    各タイプの量子化予定のデータの統計結果とデータビット幅によって、対応する量子化パラメータを確定することとを含み、
    前記量子化予定のデータには、前記ニューラルネットワークのニューロン、重み、勾配、およびオフセットの少なくとも1つが含まれ、
    前記量子化パラメータは、人工知能プロセッサがニューラルネットワーク演算プロセスにおけるデータを量子化するためであり、前記量子化パラメータは、小数点位置パラメータである、ことを特徴とするニューラルネットワークの量子化パラメータの確定方法。
  2. 対応する量子化パラメータによって目標データを量子化することをさらに含み、前記目標データの特性と前記量子化予定のデータの特性には類似性がある、ことを特徴とする請求項1に記載の方法。
  3. 前記ニューラルネットワーク演算プロセスは、ニューラルネットワークトレーニング、ニューラルネットワーク推論、およびニューラルネットワーク微調整の少なくとも1つの演算を含み、
    前記統計結果は、各タイプの量子化予定のデータうちの最大値と最小値であり、前記量子化パラメータは、各タイプの量子化予定のデータうちの最大値、最小値、およびデータビット幅によって確定され、または、
    前記統計結果は、各タイプの量子化予定のデータの最大絶対値であり、前記最大絶対値は、各タイプの量子化予定のデータうちの最大値と最小値によって確定され、前記量子化パラメーターは、各タイプの量子化予定のデータの最大絶対値と前記データビット幅によって確定される、ことを特徴とする請求項1に記載の方法。
  4. 前記データビット幅は、対応する量子化誤差によって調整され、前記量子化誤差は、量子化後のデータおよび対応する量子化前のデータによって確定され、
    前記データビット幅を調整するステップは、
    前記量子化誤差をしきい値と比較し、比較結果によって前記データビット幅を調整することを含み、前記しきい値は第1のしきい値および第2のしきい値のうちの少なくとも1つを含む、ことを特徴とする請求項1に記載の方法。
  5. 前記データビット幅を調整するステップは、
    前記量子化誤差が前記第1のしきい値以上の場合、前記データビット幅を増やすこと、または、
    前記量子化誤差が前記第2のしきい値以下の場合、前記データビット幅を減らすこと、または、
    前記量子化誤差が前記第1のしきい値と前記第2のしきい値の間にある場合、前記データビット幅を変更しないことを含む、ことを特徴とする請求項4に記載の方法。
  6. 前記量子化誤差を取得する方法は、
    前記データビット幅によって量子化間隔を確定することと、
    前記量子化間隔、前記量子化後のデータの数量、および対応する量子化前のデータによって、量子化誤差を確定することと、または、
    量子化後のデータを逆量子化し、データフォーマットが対応する量子化前のデータのデータフォーマットと同じである逆量子化データを取得することと、
    前記量子化後のデータおよび対応する逆量子化データによって前記量子化誤差を確定することとを含む、ことを特徴とする請求項4に記載の方法。
  7. 前記量子化前のデータは前記量子化予定のデータであり、または、
    前記量子化前のデータは、目標反復間隔内の重み更新反復プロセスに係る量子化予定のデータであり、前記目標反復間隔には少なくとも1回の重み更新反復が含まれ、同じ目標反復間隔内の量子化プロセスにおいて同じ前記データビット幅を使用する、ことを特徴とする請求項4に記載の方法。
  8. 前記目標反復間隔を確定するステップは、
    予測時点で、重み更新反復プロセスに係る量子化予定のデータの小数点位置パラメーターの変化傾向値を確定することと、
    前記小数点位置パラメータの変化傾向値によって、対応する目標反復間隔を確定することとを含み、または、
    前記予測時点で、重み更新反復プロセスに係る量子化予定のデータの小数点位置パラメータの変化傾向値とデータビット幅の変化傾向値を確定するすることと、
    前記小数点位置パラメーターの変化傾向値と前記データビット幅の変化傾向値によって対応する前記目標反復間隔を確定することとを含み、
    前記予測時点は、前記データビット幅を調整する必要があるかどうかを判断する時点であり、前記予測時点は、重み更新反復が完了したときに対応する時点である、ことを特徴とする請求項7に記載の方法。
  9. 前記予測時点は第1の予測時点を含み、前記第1の予測時点は前記目目標反復間隔によって確定される、ことを特徴とする請求項8に記載の方法。
  10. 前記予測時点は、第2の予測時点をさらに含み、前記第2の予測時点は、データ変動範囲曲線によって確定され、前記データ変動範囲曲線は、重み更新反復プロセスにおいてデータ変動範囲を統計して取得される、ことを特徴とする請求項9に記載の方法。
  11. 前記小数点位置パラメータの変化傾向値は、カレント予測時点に対応する小数点位置パラメータのスライディング平均値、および1つ前の予測時点に対応する小数点位置パラメータのスライディング平均値によって確定され、または、
    前記小数点位置パラメータの変化傾向値は、カレント予測時点に対応する小数点位置パラメータ、および1つ前の予測時点に対応する小数点位置パラメータのスライディング平均値によって確定される、ことを特徴とする請求項8から10のいずれか一項に記載の方法。
  12. 前記カレント予測時点に対応する小数点位置パラメータのスライディング平均値を確定するステップは、
    1つ前の予測時点に対応する小数点位置パラメータと前記データビット幅の調整値によって、カレント予測時点に対応する小数点位置パラメータを確定することと、
    前記データビット幅の調整値によって、1つ前の予測時点に対応する小数点位置パラメータのスライディング平均値を調整し、調整結果を取得することと、
    前記カレント予測時点に対応する小数点位置パラメータと前記調整結果によって、カレント予測時点に対応する小数点位置パラメータのスライディング平均値を確定することと、または、
    1つ前の予測時点に対応する小数点位置パラメータと1つ前の予測時点に対応する小数点位置パラメータのスライディング平均値によって、カレント予測時点に対応する小数点位置パラメータのスライディング平均値の中間結果を確定することと、
    カレント予測時点に対応する小数点位置パラメータのスライディング平均値の中間結果と前記データビット幅の調整値によって、カレント予測時点に対応する小数点位置パラメータのスライディング平均値を確定することとを含む、ことを特徴とする請求項11に記載の方法。
  13. 前記データビット幅の変化傾向値が、対応する前記量子化誤差によって確定される、ことを特徴とする請求項7に記載の方法。
  14. 前記目標反復間隔内の量子化プロセスにおいて使用されるデータビット幅を確定するステップは、
    対応する量子化誤差を確定することと、
    対応する量子化誤差によって、前記目標反復間隔内の量子化プロセスにおいて使用されるデータビット幅を確定することとを含み、
    前記量子化誤差に対応する量子化前のデータは、前記予測時点に対応する重み更新反復プロセスに係る量子化予定のデータである、ことを特徴とする請求項8から10のいずれか一項に記載の方法。
  15. 前記目標反復間隔内の量子化プロセスにおいて使用されるデータビット幅を確定するステップは、
    前記量子化誤差をしきい値と比較し、1つ前の目標反復間隔内の量子化プロセスに使用されるデータビット幅を比較結果によって調整し、調整結果をカレント目標反復間隔内の量子化プロセスに使用されるデータビット幅とする、ことを特徴とする請求項14に記載の方法。
  16. 前記量子化前のデータは、目標反復間隔内の重み更新反復に係る量子化予定のデータであり、前記目標反復間隔が少なくとも1回の重み更新反復を含み、同じ目標反復間隔内の量子化プロセスにおいて同じ量子化パラメーターを使用する、ことを特徴とする請求項4に記載の方法。
  17. 前記目標反復間隔を確定するステップは、
    予測時点で、重み更新反復プロセスに係る量子化予定のデータの小数点位置パラメーターの変化傾向値を確定することと、
    前記小数点位置パラメーターの変化傾向値によって前記目標反復間隔を確定することとを含み、
    前記予測時点は、前記データビット幅を調整する必要があるかどうかを判断する時点であり、前記予測時点は、重み更新反復が完了したときに対応する時点である、ことを特徴とする請求項16に記載の方法。
  18. メモリおよびプロセッサを備え、前記メモリはプロセッサにおいて実行されるコンピュータプログラムを格納しており、前記プロセッサは前記コンピュータプログラムを実行すると、請求項1から17のいずれか一項に記載の方法のステップが実施される、ことを特徴とするニューラルネットワークの量子化パラメータの確定装置。
  19. コンピュータプログラムがコンピュータ可読記憶媒体に格納され、前記コンピュータプログラムが実行されると、請求項1から17のいずれか一項に記載の方法のステップが実施される、ことを特徴とするコンピュータ可読記憶媒体。
JP2020219684A 2019-06-12 2020-12-28 ニューラルネットワークにおける量子化パラメータの確定方法および関連製品 Active JP7167405B2 (ja)

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.8 2019-06-18
CN201910528537 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
JP2021179966A true JP2021179966A (ja) 2021-11-18
JP2021179966A5 JP2021179966A5 (ja) 2022-02-18
JP7167405B2 JP7167405B2 (ja) 2022-11-09

Family

ID=69185300

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2020573207A Pending JP2021530769A (ja) 2019-06-12 2019-09-19 ニューラルネットワークにおける量子化パラメータの確定方法および関連製品
JP2020219685A Active JP7166704B2 (ja) 2019-06-12 2020-12-28 ニューラルネットワークにおける量子化パラメータの確定方法および関連製品
JP2020219684A Active JP7167405B2 (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 ニューラルネットワークにおける量子化パラメータの確定方法および関連製品
JP2020219685A Active JP7166704B2 (ja) 2019-06-12 2020-12-28 ニューラルネットワークにおける量子化パラメータの確定方法および関連製品

Country Status (6)

Country Link
US (2) US11675676B2 (ja)
EP (4) EP3998554A4 (ja)
JP (3) JP2021530769A (ja)
KR (3) KR20210018352A (ja)
CN (14) CN112085181B (ja)
WO (2) WO2020248424A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
US11397579B2 (en) 2018-02-13 2022-07-26 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
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
CN110490309B (zh) * 2019-08-14 2022-06-07 中科寒武纪科技股份有限公司 一种用于神经网络的算子融合方法及其相关产品
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 安徽寒武纪信息科技有限公司 时钟控制装置及相关产品
CN112686001B (zh) * 2021-01-05 2021-12-03 中科三清科技有限公司 气象数据的变换方法、传输方法、服务器及数据传输系统
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 富士通株式会社 演算プログラム、演算方法及び計算機
WO2023128024A1 (ko) * 2021-12-30 2023-07-06 한국전자기술연구원 딥러닝 네트워크 양자화 처리 방법 및 시스템
WO2023177272A1 (ko) * 2022-03-18 2023-09-21 인텔렉추얼디스커버리 주식회사 신경망 기반 특징 텐서 압축 방법 및 장치
CN114611697B (zh) * 2022-05-11 2022-09-09 上海登临科技有限公司 神经网络量化及部署方法、系统、电子设备及存储介质
CN117910421A (zh) * 2024-03-15 2024-04-19 南京美辰微电子有限公司 一种基于神经网络的动态近似电路计算部署方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018010618A (ja) * 2016-05-03 2018-01-18 イマジネイション テクノロジーズ リミテッド 畳み込みニューラルネットワークハードウエア構成
WO2018140294A1 (en) * 2017-01-25 2018-08-02 Microsoft Technology Licensing, Llc Neural network based on fixed-point operations
US20190147322A1 (en) * 2017-11-13 2019-05-16 Samsung Electronics Co., Ltd. Method and apparatus for quantizing artificial neural network

Family Cites Families (245)

* Cited by examiner, † Cited by third party
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
ATE162918T1 (de) * 1991-04-18 1998-02-15 Ampex Systems Corp 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
JPH10233691A (ja) * 1998-03-30 1998-09-02 Nec Corp 符号化方式および復号方式
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
AU8446101A (en) 2000-09-07 2002-03-22 Nippon Steel Corp Hexavalent chromium-free surface-treating agent for sn- or al-based coated steelsheet, and surface treated steel sheet
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
US8051118B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Composition of decimal floating point data
US8051117B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Shift significand 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 电信科学技术研究院 一种数据传输的方法、系统和装置
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
US8478507B2 (en) 2010-04-21 2013-07-02 Toyota Jidosha Kabushiki Kaisha Control device for internal combustion engine
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
JP6062356B2 (ja) * 2011-02-28 2017-01-18 株式会社メガチップス 画像符号化装置
CN102761509B (zh) 2011-04-27 2016-01-06 联芯科技有限公司 Ofdm系统的接收系统及降低接收系统内存的方法
CN103534664B (zh) 2011-05-12 2016-08-31 苹果公司 存在感测
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 中国科学院声学研究所 基于四元码动态失配整形的数字扬声器驱动方法和装置
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
JP5913059B2 (ja) * 2012-11-13 2016-04-27 日本電信電話株式会社 分散型無線通信基地局システム、信号処理装置、無線装置、及び分散型無線通信基地局システムの動作方法
CN102981854A (zh) 2012-11-16 2013-03-20 天津市天祥世联网络科技有限公司 基于浮点数运算内联函数库的神经网络优化方法
KR20150115724A (ko) 2012-11-22 2015-10-14 각고호우징 게이오기주크 아크릴계 공중합체, 광학 필름, 편광판 및 액정 표시 장치
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 物体認識システム及び物体認識方法
US20190138372A1 (en) 2013-04-29 2019-05-09 Moogsoft, Inc. 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
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
US10373050B2 (en) * 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
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 杭州朗和科技有限公司 深度神经网络学习方法、处理器和深度神经网络学习系统
CN115100016A (zh) 2015-06-10 2022-09-23 无比视视觉技术有限公司 用于处理图像的图像处理器和方法
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 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
US9930248B2 (en) 2015-11-17 2018-03-27 Eman Bayani Digital image capturing device system and method
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
CN108427990B (zh) * 2016-01-20 2020-05-22 中科寒武纪科技股份有限公司 神经网络计算系统和方法
CN111353588B (zh) 2016-01-20 2024-03-05 中科寒武纪科技股份有限公司 用于执行人工神经网络反向训练的装置和方法
CN106997236B (zh) 2016-01-25 2018-07-13 亮风台(上海)信息科技有限公司 基于多模态输入进行交互的方法和设备
US10671938B2 (en) 2016-01-27 2020-06-02 Bonsai AI, Inc. Artificial intelligence engine configured to work with a pedagogical programming language to train one or more trained artificial intelligence models
US10497089B2 (en) 2016-01-29 2019-12-03 Fotonation Limited Convolutional neural network
US10103714B2 (en) 2016-03-01 2018-10-16 Qualcomm Incorporated Adjust voltage for thermal mitigation
JP2017156511A (ja) 2016-03-01 2017-09-07 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
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
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 华为终端有限公司 适用于模式识别的模型的优化方法、装置及终端设备
US20180005111A1 (en) * 2016-06-30 2018-01-04 International Business Machines Corporation Generalized Sigmoids and Activation Function Learning
CN106156310A (zh) 2016-06-30 2016-11-23 努比亚技术有限公司 一种图片处理装置和方法
US10372588B2 (en) 2016-07-08 2019-08-06 International Business Machines Corporation Providing debug information on production containers using debug containers
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)
CN107688855B (zh) 2016-08-12 2021-04-13 赛灵思公司 针对于复杂神经网络的分层量化方法与装置
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
WO2018071546A1 (en) 2016-10-11 2018-04-19 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 新疆农业大学 一种森林资源管理的变异函数参数拟合的优化方法
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
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 南京地平线机器人技术有限公司 用于神经网络的复合运算单元、方法和电子设备
US10402932B2 (en) 2017-04-17 2019-09-03 Intel Corporation Power-based and target-based graphics quality adjustment
US10332302B2 (en) 2017-04-17 2019-06-25 Intel Corporation Scatter gather engine
EP3654172A1 (en) * 2017-04-19 2020-05-20 Shanghai Cambricon Information Technology Co., Ltd Fused vector multiplier and method using the same
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 삼성전자주식회사 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치
CN115688877A (zh) * 2017-06-06 2023-02-03 格兰菲智能科技有限公司 一种用于对待量化数据进行定点化处理的方法及计算装置
CN115841137A (zh) * 2017-06-06 2023-03-24 格兰菲智能科技有限公司 一种用于对待量化数据进行定点化处理的方法及计算装置
TWI675335B (zh) 2017-06-09 2019-10-21 宏達國際電子股份有限公司 訓練任務優化系統、訓練任務優化方法及其非暫態電腦可讀媒體
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
EP3646164A4 (en) 2017-06-30 2021-01-20 INTEL Corporation HETEROGENIC MULTIPLIER
CN109214509B (zh) * 2017-07-05 2021-07-06 中国科学院沈阳自动化研究所 一种用于深度神经网络高速实时量化结构和运算实现方法
CN107451654B (zh) 2017-07-05 2021-05-18 深圳市自行科技有限公司 卷积神经网络的加速运算方法、服务器及存储介质
US10427306B1 (en) 2017-07-06 2019-10-01 X Development Llc Multimodal object identification
CN109284822B (zh) 2017-07-20 2021-09-21 上海寒武纪信息科技有限公司 一种神经网络运算装置及方法
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 赛灵思电子科技(北京)有限公司 一种动态策略定点化训练方法及装置
WO2019023984A1 (en) 2017-08-02 2019-02-07 Intel Corporation SYSTEM AND METHOD FOR INCLUSION OF NEURAL NETWORKS 1 AMONG N ON AN AUTOMATIC LEARNING COMPUTER PLATFORM
CN109388779A (zh) * 2017-08-03 2019-02-26 珠海全志科技股份有限公司 一种神经网络权重量化方法和神经网络权重量化装置
KR102601604B1 (ko) 2017-08-04 2023-11-13 삼성전자주식회사 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치
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
CN110663048B (zh) * 2017-09-05 2023-10-24 松下电器(美国)知识产权公司 用于深度神经网络的执行方法、执行装置、学习方法、学习装置以及记录介质
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
US10224954B1 (en) 2017-09-29 2019-03-05 Intel Corporation Floating point to fixed point conversion
JP6810283B2 (ja) 2017-09-29 2021-01-06 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッドShanghai Cambricon Information Technology Co.,Ltd. 画像処理装置及び方法
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
CN107679490B (zh) * 2017-09-29 2019-06-28 百度在线网络技术(北京)有限公司 用于检测图像质量的方法和装置
JP6540770B2 (ja) * 2017-10-17 2019-07-10 富士通株式会社 演算処理回路、演算処理回路を含む演算処理装置、演算処理装置を含む情報処理装置、および方法
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
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
CN108288089A (zh) * 2018-01-29 2018-07-17 百度在线网络技术(北京)有限公司 用于生成卷积神经网络的方法和装置
CN108229663A (zh) * 2018-01-29 2018-06-29 百度在线网络技术(北京)有限公司 用于生成卷积神经网络的方法和装置
US20190251429A1 (en) 2018-02-12 2019-08-15 Kneron, Inc. Convolution operation device and method of scaling convolution input for convolution neural network
US11397579B2 (en) 2018-02-13 2022-07-26 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11106598B2 (en) 2018-02-13 2021-08-31 Shanghai Cambricon Information Technology Co., Ltd. Computing device and method
US11630666B2 (en) 2018-02-13 2023-04-18 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
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 电子科技大学 一种脉冲神经网络参数量化方法
CN110554500B (zh) 2018-05-31 2022-09-16 中强光电股份有限公司 头戴式显示装置
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 杭州雄迈集成电路技术股份有限公司 一种高精度的神经网络量化压缩方法
CN109146057B (zh) 2018-06-26 2020-12-08 杭州雄迈集成电路技术股份有限公司 一种基于查表计算的高精度的神经网络工程化方法
CN110728364A (zh) 2018-07-17 2020-01-24 上海寒武纪信息科技有限公司 一种运算装置和运算方法
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
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
WO2020062392A1 (zh) 2018-09-28 2020-04-02 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
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
CN111383638A (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位整型量化推理方法
CN109993296B (zh) 2019-04-01 2020-12-29 安徽寒武纪信息科技有限公司 量化实现方法及相关产品
CN110059733A (zh) 2019-04-01 2019-07-26 苏州科达科技股份有限公司 卷积神经网络的优化及快速目标检测方法、装置
US20200334522A1 (en) 2019-04-18 2020-10-22 Cambricon Technologies Corporation Limited Data processing method and related products
CN111832739B (zh) 2019-04-18 2024-01-09 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
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
JP7146954B2 (ja) 2019-08-23 2022-10-04 安徽寒武紀信息科技有限公司 データ処理方法、装置、コンピュータデバイス、及び記憶媒体
US20210374511A1 (en) 2019-08-23 2021-12-02 Anhui Cambricon Information Technology Co., Ltd. Data processing method, device, computer equipment and storage medium
EP4024280A4 (en) 2019-08-27 2022-11-16 Anhui Cambricon Information Technology Co., Ltd. DATA PROCESSING METHOD AND APPARATUS, COMPUTER EQUIPMENT AND STORAGE MEDIA
CN110780845B (zh) 2019-10-17 2021-11-30 浙江大学 一种用于量化卷积神经网络的可配置近似乘法器及其实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018010618A (ja) * 2016-05-03 2018-01-18 イマジネイション テクノロジーズ リミテッド 畳み込みニューラルネットワークハードウエア構成
WO2018140294A1 (en) * 2017-01-25 2018-08-02 Microsoft Technology Licensing, Llc Neural network based on fixed-point operations
US20190147322A1 (en) * 2017-11-13 2019-05-16 Samsung Electronics Co., Ltd. Method and apparatus for quantizing artificial neural network

Also Published As

Publication number Publication date
KR20210011461A (ko) 2021-02-01
CN112085190A (zh) 2020-12-15
CN111652367B (zh) 2024-04-09
EP3998554A1 (en) 2022-05-18
EP3770823A4 (en) 2021-01-27
KR102656332B1 (ko) 2024-04-09
US20220261634A1 (en) 2022-08-18
KR20210018352A (ko) 2021-02-17
CN112085183B (zh) 2024-04-02
CN112085192A (zh) 2020-12-15
WO2020248424A1 (zh) 2020-12-17
EP3772022A1 (en) 2021-02-03
CN112085181B (zh) 2024-03-29
CN112085189A (zh) 2020-12-15
CN112085188B (zh) 2024-04-02
CN112085191A (zh) 2020-12-15
CN112085193A (zh) 2020-12-15
EP3998554A4 (en) 2023-11-15
CN112085186B (zh) 2024-03-05
CN112085190B (zh) 2024-04-02
CN112085191B (zh) 2024-04-02
EP3770823A1 (en) 2021-01-27
CN111652367A (zh) 2020-09-11
CN112085181A (zh) 2020-12-15
JP7167405B2 (ja) 2022-11-09
CN112085188A (zh) 2020-12-15
KR102609719B1 (ko) 2023-12-04
WO2020248423A1 (zh) 2020-12-17
US20210286688A1 (en) 2021-09-16
CN111652368A (zh) 2020-09-11
US11675676B2 (en) 2023-06-13
EP3772023A1 (en) 2021-02-03
CN111652368B (zh) 2024-03-29
JP7166704B2 (ja) 2022-11-08
CN112085192B (zh) 2024-03-29
JP2021530769A (ja) 2021-11-11
KR20210011462A (ko) 2021-02-01
JP2021177369A (ja) 2021-11-11
CN112085193B (zh) 2024-03-29
CN112400176A (zh) 2021-02-23
CN112085185B (zh) 2024-04-02
CN112085184A (zh) 2020-12-15
CN112085184B (zh) 2024-03-29
CN112085189B (zh) 2024-03-29
CN112085186A (zh) 2020-12-15
CN112085185A (zh) 2020-12-15
CN112085183A (zh) 2020-12-15

Similar Documents

Publication Publication Date Title
JP2021179966A (ja) ニューラルネットワークにおける量子化パラメータの確定方法および関連製品
JP2021177369A5 (ja)
JP2021179966A5 (ja)
JP7146955B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
US11676029B2 (en) Neural network quantization parameter determination method and related products
JP7146953B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
JP7146954B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
JPWO2020248424A5 (ja)
WO2021022903A1 (zh) 数据处理方法、装置、计算机设备和存储介质
JP7146952B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
JP7060719B2 (ja) データを処理するための方法、装置、及び関連製品
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: 20210510

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: 20220215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220511

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: 20220906

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20221005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20221005

R150 Certificate of patent or registration of utility model

Ref document number: 7167405

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150