JP2022501674A - データを処理するための方法、装置、及び関連製品 - Google Patents

データを処理するための方法、装置、及び関連製品 Download PDF

Info

Publication number
JP2022501674A
JP2022501674A JP2020566955A JP2020566955A JP2022501674A JP 2022501674 A JP2022501674 A JP 2022501674A JP 2020566955 A JP2020566955 A JP 2020566955A JP 2020566955 A JP2020566955 A JP 2020566955A JP 2022501674 A JP2022501674 A JP 2022501674A
Authority
JP
Japan
Prior art keywords
data
truncation
value
quantization
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
JP2020566955A
Other languages
English (en)
Other versions
JP7060719B2 (ja
Inventor
尭 張
広 江
曦珊 張
詩怡 周
迪 黄
暢 劉
家明 郭
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 JP2022501674A publication Critical patent/JP2022501674A/ja
Application granted granted Critical
Publication of JP7060719B2 publication Critical patent/JP7060719B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Nonlinear Science (AREA)
  • Neurology (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本発明の実施例は、データを処理するための方法、装置、及び関連製品に関する。本発明の実施例は、ボードカードに関し、前記ボードカードは、記憶部品と、インターフェース装置と、制御部品と、人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶部品、前記制御部品、および、前記インターフェース装置と、それぞれ接続され、前記記憶部品は、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現し、前記制御部品は、前記人工知能チップの状態を監視制御する。前記ボードカードは、人工知能演算を実行するために用いられることができる。【選択図】図10

Description

本発明の実施例は、コンピュータ技術の分野に関し、より具体的に、データを処理するための方法、装置、及び関連製品に関する。
人工知能技術の継続的な発展に伴い、その適用分野もますます広範になり、画像認識、音声認識、自然言語処理などの分野にいずれもよく適用されている。しかしながら、人工知能アルゴリズムの複雑度および正確度の向上につれて、機械学習モデルがますます大きくなり、処理すべきデータ量もますます大くなっている。大量のデータ処理を実行する場合、より大きい計算オーバーヘッドおよび時間オーバーヘッドが必要になり、処理効率がより低い。
これに鑑みて、本発明の実施例は、データを処理するための方法、装置、及び関連製品を提供する。
本発明の第1態様において、データを処理するための方法を提供する。当該方法は、機械学習モデルに用いられる1組の量子化待ちデータを取得するステップと、複数ペアの切捨て閾値を使用してそれぞれ1組の量子化待ちデータを量子化することによって、複数組の量子化後のデータを確定するステップであって、複数ペアの切捨て閾値の中の各ペアの切捨て閾値は、対称的な切捨て正の値と切捨て負の値とを含むステップと、複数組の量子化後のデータの中の各組の量子化後のデータの絶対値の平均値と1組の量子化待ちデータの絶対値の平均値との間の差異に基づいて、複数ペアの切捨て閾値の中から1ペアの切捨て閾値を選択して、1組の量子化待ちデータの量子化に用いるステップと、を含む。
本発明の第2態様において、データを処理するための装置を提供する。当該装置は、機械学習モデルに用いられる1組の量子化待ちデータを取得するための量子化待ちデータ取得ユニットと、複数ペアの切捨て閾値を使用してそれぞれ1組の量子化待ちデータを量子化することによって、複数組の量子化後のデータを確定するための量子化後データ確定ユニットであって、複数ペアの切捨て閾値の中の各ペアの切捨て閾値は、対称的な切捨て正の値と切捨て負の値とを含む量子化後データ確定ユニットと、複数組の量子化後のデータの中の各組の量子化後のデータの絶対値の平均値と1組の量子化待ちデータの絶対値の平均値との間の差異に基づいて、複数ペアの切捨て閾値の中から1ペアの切捨て閾値を選択して、1組の量子化待ちデータの量子化に用いるための切捨て閾値選択ユニットと、を備える。
本発明の第3態様において、コンピュータ可読記憶媒体を提供し、当該コンピュータ可読記憶媒体には、コンピュータプログラムが記憶されており、プログラムが実行されると、本発明の各実施例に係る方法が実現される。
本発明の第4態様において、人工知能チップを提供し、当該人工知能チップは、本発明の各実施例に係るデータを処理するための装置を備える。
本発明の第5態様において、電子デバイスを提供し、当該電子デバイスは、本発明の各実施例に係る人工知能チップを含む。
本発明の第6態様おいて、ボードカードを提供し、当該ボードカードは、記憶部品と、インターフェース装置と、制御部品と、本発明の各実施例に係る人工知能チップと、を備える。ここで、人工知能チップは、記憶部品、制御部品、および、インターフェース装置と、接続され、記憶部品は、データを記憶し、インターフェース装置は、人工知能チップと外部デバイスとの間のデータ伝送を実現し、制御部品は、人工知能チップの状態に対して監視制御を実行する。
請求項中の技術的特徴を導き出すことにより、背景技術中の技術的問題に対応する有益な効果を達成することができる。以下の図面を参照した例示的な実施例の詳細な説明によれば、本発明の他の特徴および態様が明らかになる。
明細書に含まれて明細書の一部を構成する図面は、明細書と一緒に本発明の例示的な実施例、特徴、および、態様を示し、本発明の原理を解釈するために使用される。
本発明の実施例に係るデータを処理するための方法の処理システムを示す模式図である。 本発明の実施例に係るニューラルネットワークの例示的なアーキテクチャを示す模式図である。 本発明の実施例に係るデータを量子化するための過程を示す模式図である。 本発明の実施例に係るデータを対称的に量子化するための方法を示す模式図である。 本発明の実施例に係る切捨て閾値に基づいてデータを対称的に量子化するための方法を示す模式図である。 本発明の実施例に係るデータを処理するための方法を示すフローチャートである。 本発明の実施例に係る対称量子化の切捨て閾値を検索するための方法を示すフローチャートである。 本発明の実施例に係る対称量子化の切捨て閾値を粗粒度に検索するための模式図である。 本発明の実施例に係る対称量子化の切捨て閾値を細粒度に検索するための方法を示す模式図である。 本発明の実施例に係る最適な切捨て閾値を反復検索するための方法を示すフローチャートである。 本発明の実施例に係るデータを処理するための装置を示すブロック図である。 本発明の実施例に係るボードカードの構成を示すブロック図である。
以下、本発明の実施例中の図面を参照して、本発明の実施例中の技術案を明確かつ完全に説明し、説明する実施例は、本発明の一部の実施例に過ぎず、全ての実施例ではないことが明らかである。当業者によって本発明中の実施例に基づいて創造的な作業なしに得られたすべての他の実施例は、いずれも本発明の保護しようとする範囲に属する。
本発明の請求の範囲、明細書、および、図面での「第1」、「第2」、「第3」および「第4」などの用語は、異なる対象を区別するために使用されるものであり、特定順序を説明するために使用されないことを理解すべきである。本発明の明細書および請求の範囲で使用される「含む」および「備える」という用語は、説明する特徴、全体、ステップ、操作、要素、および/または、アセンブリの存在を表し、一つまたは複数の他の特徴、全体、ステップ、操作、要素、アセンブリ、および/または、そのセットの存在または追加を除外しない。
ここで本発明の明細書で使用される用語は、ただ、特定実施例を説明する目的に使用され、本発明を限定しようとするものではないことをさらに理解すべきである。本発明の明細書および請求の範囲で使用されるように、文脈で他の場合を明確に示されていない限り、「一」、「一つの」、および、「当該」の単数形態は、複数形態を含むことを意図する。さらに、本発明明細書および請求の範囲で使用される「および/または」という用語は、関連してリストされた項目的中の一つまたは複数のいかなる組み合わせおよびすべての可能な組み合わせを表し、これら組み合わせを含むことをさらに理解すべきである。
本明細書および請求の範囲で使用されるように、「…場合」という用語は、文脈によって、「…とき」、「…と」、「確定されたことに応答して」、または、「検出されたことに応答して」と解釈されてもよい。同様に、「確定された場合」または「『記述された条件または事件』が検出された場合」という句は、文脈によって、「確定されると」、「確定されたことに応答して」、「『記述された条件または事件』が検出されると」、または、「『記述された条件または事件』が検出されたことに応答して」と解釈されてもよい。
一般的に、データに対して量子化を実行する場合、選択する値の範囲がより広いと、量子化後のデータ精度がより低くなり、値の範囲が小さすぎると、多すぎるデータが切捨てされることになり、導致両側に分布されたデータの情報の損失をもたらす。ここで、値の範囲とは、データを量子化するための最小の切捨て閾値と最大の切捨て閾値との間の数値の範囲を意味する。このため、1ペアの適当な切捨て閾値を発見してデータ量子化を実行することによって、データ量子化の損失を最小にするかまたはより小さくする必要がある。従来、KLダイバージェンス(Kullback ー Leibler divergence)の方法によって最適な切捨て閾値を確定し、ここで、KLダイバージェンスは、量子化前のデータと量子化後のデータとの間の関連度を確定できる。KLダイバージェンスは、相対エントロピー(relative entropy)、情報ダイバージェンス(information divergence)、および、情報ゲイン(information gain)とも呼ばれる。KLダイバージェンスは、二つ概率分布PとQとの間の差の尺度である。量子化前に32ビットの浮動小数点数の分布がPであり、量子化後の8ビットの整数の分布がQであると想定すると、PとQとの間のKLダイバージェンスが小さいほど、量子化前後の分布が接近され、量子化も効果的である。しかしながら、本願の発明者は、従来のKL方法によって得られた切捨て閾値を利用して実現する量子化効果がよくなく、一般的により大きい精度の損失をもたらすことは発見した。
このため、本発明の実施例は、対称量子化に用いられる切捨て閾値を確定する新しい解決策を提案し、従来の技術(例えばKL方法)よりも小さい量子化精度の損失を実現できる。本発明の実施例によると、機械学習モデルに用いられる1組の量子化待ちデータを取得した後、複数ペアの切捨て閾値を使用してそれぞれ1組の量子化待ちデータを量子化することによって、複数組の量子化後のデータを確定し、ここで、複数ペアの切捨て閾値の中の各ペアの切捨て閾値は、対称的な切捨て正の値と切捨て負の値とを含む。その後、各組の量子化後のデータの絶対値の平均値と1組の量子化待ちデータの絶対値の平均値との間の差異を評価指標として使用して、複数ペアの切捨て閾値の中から適当な1ペアの切捨て閾値を選択する。このような方式によって、より適当な切捨て閾値を発見することができる。
以下、図1から図10を参考して、本発明の基本原理およびいくつかの例示的な実現形態を説明する。これら例示的な実施例は、ただ、当業者が、本発明の実施例をよりよく理解し、さらに本発明の実施例を実現するようにするために提供され、いかなる方式で本発明の範囲を限定するためではないことを理解すべきである、。
図1は、本発明の実施例に係るデータを処理するための方法の処理システム100を示す模式図である。図1に示すように、処理システム100は、複数のプロセッサ101−1、101−2、101−3(総称してプロセッサ101と呼ばれる)、および、メモリ102を備え、プロセッサ101は、命令シーケンスを実行し、メモリ102は、データを記憶し、ランダムメモリ(RAM、Random Access Memory)およびレジスタファイルを含んでもよい。処理システム100中の複数のプロセッサ101は、一部の記憶空間を共有してもよく、例えば、一部のRAM記憶空間およびレジスタファイルを共有してもよく、また、同時にそれら自身の記憶空間を有してもよい。
本発明の実施例に係るいろんな方法は、複数のプロセッサ(マルチコア)を含む処理システム100(例えば人工知能チップ)の任意のプロセッサに適用されることを理解すべきである。当該プロセッサは、例えばCPU(Central Processing Unit、中央プロセッサ)などの汎用プロセッサであってもよいし、人工知能演算を実行するための人工知能プロセッサ(IPU)であってもよい。人工知能演算は、機械学習演算、脳と類似な演算などを含んでもよい。ここで、機械学習演算は、ニューラルネットワーク演算、k−means演算、ベクトル機械サポート演算などを含む。当該人工知能プロセッサは、例えば、GPU(Graphics Processing Unit、グラフィックス処理ユニット)、NPU(Neural−Network Processing Unit、ニューラルネットワーク処理ユニット)、DSP(Digital Signal Process、デジタル信号処理ユニット)、フィールドプログラマブルゲートアレイ(Field−Programmable Gate Array、FPGA)チップの中の一つまたは組み合わせを含む。本発明は、プロセッサの具体的な種類に対して限制しない。なお、処理システム100中の複数のプロセッサの種類は、同一であってもよいし、異なってもよく、本発明は、これに対して限定しない。
可能な一実現形態において、本発明で言及されるプロセッサは、複数の処理ユニットを含んでもよく、各々の処理ユニットは、例えば畳み込み演算タスク、プーリングタスク、完全接続タスクなどの、割り当てられたいろんなタスクを独立的に運行できる。本発明は、処理ユニットおよび処理ユニットが運行するタスクに対して限定しない。
図2は、本発明の実施例に係るニューラルネットワーク200の例示的なアーキテクチャを示す模式図である。ニューラルネットワーク(neural network、NN)は、生物学的ニューラルネットワークの構成と機能を模倣する数学モデルであり、ニューラルネットワークは、大量のニューロンが接続されて計算を実行するものである。このため、ニューラルネットワークは、計算モデルであり、大量のノード(または「ニューロン」と呼ばれる)が互いに接続されて構成される。各々のノードは、特定の出力関数を代表し、アクティベーション関数(activation function)と呼ばれる。各々の二つのニューロン同士の間の接続は、いずれも、一つの当該接続を追加する信号の重み値を代表し、重みと呼ばれ、これはニューラルネットワークの記憶に相当する。ニューラルネットワークの出力は、ニューロン同士の間の接続方式、および、重み値とアクティベーション関数によって、異なる。ニューラルネットワークにおいて、ニューロンは、ニューラルネットワークの基本的な単位である。ニューロンは、一定の数の入力および一つのバイアスを得て、信号(値)が到着するときに当該信号(値)に一つの重み値を乗算する。接続は、一つのニューロンを他の層または同一の層のもう一つのニューロンに接続することであり、接続は、自身に関連付けられた重み値が伴う。また、バイアスは、ニューロンの追加的な入力であり、バイアスは、常に1であり、自分の接続重み値を有する。これにより、すべての入力がいずれも空(すべてが0である)であっても、ニューロンがアクティブになることを保証する。
適用において、ニューラルネットワーク中のニューロンに対して一つの非線形関数を適用しないと、ニューラルネットワークは、一つの線形関数に過ぎず、すると、ニューラルネットワークは単一のニューロンに比べて強度が強いわけではない。一つのニューラルネットワークの出力結果を0から1の間にあるようにすると、例えば、猫/犬を鑑別する例において、0に近い出力を猫、1に近い出力を犬と見なすことができる。この目標を完成するために、ニューラルネットワーク中に、例えばsigmoidアクティベーション関数などの、アクティベーション関数を導入する。このアクティベーション関数に関しては、その戻り値が0から1までの一つの数字であることが分かればよい。このため、アクティベーション関数は、非線形をニューラルネットワークに導入するために使用され、ニューラルネットワークの演算結果をより小さい範囲に縮小する。実際には、アクティベーション関数をどのように表現するかが重要ではなく、幾つかの重み値によって一つの非線形関数をパラメータ化することが重要であり、これら重み値を変更することによってこの非線形関数を変更できる。
図2は、ニューラルネットワーク200の構成の模式図である。図2に示すニューラルネットワークにおいて、入力層210、インプリケーション層220、および、出力層230という3つの層を含み、そのうち図2に示すインプリケーション層220は3層であり、勿論ながら、インプリケーション層220は、より多いまたはより少ない層を含んでも良い。ここで、入力層210のニューロンは、入力ニューロンと呼ばれる。入力層をニューラルネットワーク中の1番目の層とする場合、信号(値)を入力し、これら信号(値)を次の1層に伝送する必要がある。入力層は、入力信号(値)に対していかなる操作も実行しないし、関連付けられた重み値およびバイアスを有さない。図2に示すニューラルネットワークにおいて、4個の入力信号(値)を受信できる。
インプリケーション層220は、入力データに対して、異なって変換されるニューロン(ノード)を適用するために使用される。一つのインプリケーション層は、垂直に配列されたニューロンのセット(Representation)である。図2に示すニューラルネットワークは、3個のインプリケーション層を有する。第1インプリケーション層は、4個のニューロン(ノード)を有し、第2層は、6個のニューロンを有し、第3層は、3個のニューロンを有する。最後に、インプリケーション層は、値を出力層に伝送する。図2に示すニューラルネットワーク200は、3個のインプリケーション層中の各々のニューロンの間が完全に接続され、3個のインプリケーション層中の各々のニューロンはいずれも次の層の全てのニューロンと接続される。なお、各々のニューラルネットワークのインプリケーション層は完全に接続されるわけではないことを説明する必要がある。
出力層230のニューロンは、出力ニューロンと呼ばれる。出力層は、最後の一つのインプリケーション層からの出力を受信する。出力層230によって、期待の値および期待の範囲を確定できる。図2に示すニューラルネットワークにおいて、出力層は、3個のニューロンを有し、すなわち、3個の出力信号(値)を有する。
実際の適用において、ニューラルネットワークの役割は、事前に大量のサンプルデータ(入力および出力を含む)を利用してトレーニングを実行し、トレーニングが完成された後に、ニューラルネットワークを使用して将来の実環境の入力に対して、一つの正確な出力を得ることである。
ニューラルネットワークのトレーニングを検討する前に、損失関数を定義する必要がある。損失関数は、ニューラルネットワークが、特定のタスクでどれだけうまく機能したか示す関数である。実行時の最も直接的な方法は、トレーニング過程において、全てのサンプルデータに対して、いずれも、ニューラルネットワークを沿って伝送して一つの数値を得、その後、この数値と得ようとする実際の数値との差を求めてから2乗し、項のように計算された値が予測値と実際の値との間の距離であり、トレーニングニューラルネットワークが望んでいるのがこの距離または損失関数の値を小さくすることである。
ニューラルネットワークのトレーニングを始めるとき、重み値をランダムに初期化する必要がある。初期化されたニューラルネットワークが良好な結果を提供できないことは、明らかである。トレーニングの過程において、非常に悪いニューラルネットワークから始め、トレーニングを通じて、一つの高い正確率を有するネットワークを得ることができると想定する。同時に、トレーニングが終了されるときに、損失関数の関数値が非常に小さくなることがさらに望ましい。
ニューラルネットワークのトレーニング過程は、二つの段階にわけられ、1番目の段階は、信号の順方向処理であり、入力層210からインプリケーション層220を経て、最後に出力層230に到着する。2番目の段階は、勾配の逆方向の伝送であり、出力層230からインプリケーション層220を経て、最後に入力層210に到着し、勾配に基づいて順次にニューラルネットワーク中の各層の重み値とバイアスとを調節する。
順方向処理の過程において、入力値をニューラルネットワークの入力層210に入力し、ニューラルネットワークの出力層230から予測値と呼ばれる出力を得る。入力値をニューラルネットワークの入力層210に提供するときに、いかなる操作も実行しない。インプリケーション層において、2番目のインプリケーション層は、1番目のインプリケーション層から予測中間結果値を取得して、計算操作およびアクティベーション操作を実行し、その後、得られた予測中間結果値を次のインプリケーション層に伝送する。後ろの層で同一な操作を実行し、最後に、ニューラルネットワークの出力層230で出力値を得る。
順方向処理の後に、一つの予測値と呼ばれる出力値が得られる。誤差を計算するために、損失関数を使用して予測値と実際の出力値を比較して、対応する誤差値を得る。逆方向伝送は、微分計算のチェーンルールを使用し、チェーンルールにおいて、まず、対応するニューラルネットワークの最後の層の重み値の誤差値の導関数を計算する。これら導関数が勾配とよばれ、その後に、これら勾配を使用してニューラルネットワーク中の後ろから2番目の層の勾配を計算する。直到ニューラルネットワーク中の各々の重み値の勾配を得るまでに、この過程を繰り替す。最後に、重み値から対応する勾配を減算することによって、重み値に対して1回の更新を実行することで、誤差値を小さくする目的を達成する。
なお、ニューラルネットワークの場合、微調整は、トレーニングされたニューラルネットワークをロードすることであり、微調整過程は、トレーニング過程と同様に、二つの段階に分けられ、1番目の段階は、信号の順方向処理であり、2番目の段階は、勾配の逆方向の伝送であり、トレーニングされたニューラルネットワークの重み値を更新する。トレーニングと微調整との違いは、トレーニングは、ランダムに初期化されたニューラルネットワークに対して処理を実行し、ニューラルネットワークを最初からトレーニングする一方、微調整は、最初からトレーニングしないことである。
ニューラルネットワークに対してトレーニングまたは微調整を実行する過程において、ニューラルネットワークが1回の信号の順方向処理および対応する1回の誤差の逆方向伝送を経る過程ごとに、ニューラルネットワーク中の重み値が勾配を利用して1回更新され、この場合が1回の反復(iteration)と呼ばれる。獲得精度が予想に符合されるニューラルネットワークを得るために、トレーニング過程において、膨大なサンプルデータセットを必要とする。このような場合、サンプルデータセットを1回でコンピュータに入力することができない。このため、この問題を解決するために、サンプルデータセットを複数のブロックに分割し、各ブロックをコンピュータに伝送し、各ブロックのデータセットに対して順方向処理を実行した後に、ニューラルネットワークの重み値を1回対応して更新する必要がある。完全な一つのサンプルデータセットがニューラルネットワークの1回の順方向処理を通じて、1回の重み値の更新を対応して返す場合、この過程が一つの周期(epoch)と呼ばれる。実際において、ニューラルネットワークにおいて完全なデータセットを1回伝送するだけでは不十分である。完全なデータセットを同一ニューラルネットワークにおいて複数回伝送する必要があり、すなわち、複数の周期が必要であり、最終に精度が予想に符合されるニューラルネットワークを得る。
ニューラルネットワークに対してトレーニングまたは微調整を実行する過程において、一般的に、望ましくは、速度が速いほどよく、正確率が高いほどよい。ニューラルネットワークのデータは、例えば浮動小数点数などの、高精度のデータフォーマットで表すため、トレーニングまたは微調整の過程において、関連するデータは、いずれも高精度のデータフォーマットであり、続いて、トレーニング後のニューラルネットワークに対して量子化を実行する。量子化の対象がニューラルネットワーク全体の重み値であり、且つ、量子化後の重み値がいずれも8ビットの固定小数点数である例を挙げると、一つのニューラルネットワークは常に何百万個の接続を有し、殆どすべての空間がすべてニューロン接続の重み値によって占められる。さらに、これら重み値は、いずれも、異なる浮動小数点数である。各層の重み値は、いずれも、例えば(−3.0, 3.0)などの、ある確定区間の正規分布になる傾向がある。ニューラルネットワーク中の各層の重み値に対応する最大値および最小値を記憶し、各々の浮動小数点数値を8ビットの固定小数点数を使用して表す。ここで、最大値から最小値の範囲内の空間を256個の量子化間隔に線形に分割し、各々の量子化間隔は一つの8ビットの固定小数点数を使用して表す。例えば、(−3.0, 3.0)区間において、バイト0は−3.0を表し、バイト255は3.0を表す。これによって類推すれば、バイト128は0を表す。
高精度のデータフォーマットで表すデータの場合、浮動小数点数の例を挙げると、コンピュータ体系構造から分かるように、浮動小数点数の演算表現規則、および、固定小数点数の演算表現規則に応じて、同じ長さの固定小数点演算および浮動小数点演算の場合、浮動小数点演算の計算モードがもっと複雑であり、もっと多い論理的部品から浮動小数点演算器を構成することを必要とする。このように体積から言えば、浮動小数点演算器の体積は、固定小数点演算器の体積よりも大きい。また、浮動小数点演算器は、もっと多いリソースを消費して処理を実行する必要があり、固定小数点演算と浮動小数点演算との両者の間の消費電力の差は、一般的に、大きい数値である。簡単に言えば、浮動小数点演算器によって占められるチップ面積および消費電力は、固定小数点演算器と比較すると、いずれも、何倍大きい。
図3は、本発明の実施例に係るデータを量子化するための過程300を示す模式図である。図3を参考すると、入力データ310は、量子化されていない浮動小数点数であり、例えば32ビットの浮動小数点数であり、入力データ310をニューラルネットワークモデル340に直接入力して処理を実行すると、より多くの計算リソースを消費し、また、処理速度がより遅い。このため、ブロック320において、入力データに対して量子化を実行することによって、量子化後のデータ330(例えば8ビットの整数)を得ることができる。量子化後のデータ330をニューラルネットワークモデル340に入力して処理を実行すると、8ビットの整数の計算がより速いため、ニューラルネットワークモデル340は、入力データに対する処理をより速く完成して、対応する出力結果350を生成できる。
量子化されていない入力データ310から量子化後のデータ330までの量子化過程において、ある程度で幾つかの精度損失が発生し、精度損失の程度は、出力結果350の正確性に直接影響を与える。このため、入力データ330に対して量子化を実行する処理の過程において、量子化過程の精度損失を最小限にするか、あるいは、なるべく小さくなるように保証する必要がある。
図4Aは、本発明の実施例に係るデータを対称的に量子化するための図400を示す。図4Aに示すように、最も簡単な対称量子化方法は、量子化待ちデータの中のすべての値の中の絶対値最大値を直接選択し、すなわち、|max|を直接選択し、その後、−|max|から|max|の範囲内で量子化を実行することによって、量子化後のデータを生成する。しかしながら、このような方法は、いかなる切捨てもしなく、量子化後のデータの精度がより低くなる。
図4Bは、本発明の実施例に係る切捨て閾値に基づいてデータを対称的に量子化するための図450である。図4Aでの直接に量子化する方法とは違って、図4Bでは一つの切捨て閾値Tを選択し、−|T|から|T|の範囲以外のデータを−|T|または|T|に設定する。例えば、図4Bの例において、丸460中の量子化待ちの3個の値が切捨て範囲以外にあるため、−|T|値と見なして量子化処理が実行され、データポイント470に量子化される。このような方式によって、切捨て閾値を使用して量子化待ちデータの値の範囲縮小することにより、量子化後のデータの精度を向上させることができる。しかしながら、量子化精度の損失が最小である切捨て閾値をどのように得るかは、一つの早急に解決すべき技術的な問題である。
図5は、本発明の実施例に係るデータを処理するための方法500を示すフローチャートである。方法500は、図1を参考しながら説明した一つまたは複数のプロセッサ101によって実行されてもよいことを理解すべきである。
ブロック502において、機械学習モデルに用いられる1組の量子化待ちデータを取得する。例えば、上記の図3を参考して、量子化待ちの入力データ310を取得し、入力データに対して量子化を実行することによって、ニューラルネットワークモデル340の処理速度を速めることができる。なお、ニューラルネットワークモデル自身の幾つかのパラメータ(たどえば重み値など)に対して量子化を実行して、ネットワークパラメータに対して量子化を実行することによって、ニューラルネットワークモデルの大きさを小さくすることができる。幾つかの実施例において、量子化待ちのデータは、32ビットの浮動小数点数であってもよい。オプションとして、量子化待ちのデータは、他のビット数の浮動小数点数、あるいは、他のデータ種類であってもよい。
ブロック504において、複数ペアの切捨て閾値を使用してそれぞれ1組の量子化待ちデータを量子化することによって、複数組の量子化後のデータを確定し、ここで、複数ペアの切捨て閾値の中の各ペアの切捨て閾値は、対称的な切捨て正の値と切捨て負の値とを含む。対称量子化の案において、切捨て閾値は、対称的な1ペアの正の値と負の値であり、すなわち、切捨て正の値および切捨て負の値であり、この二つの値の数値の自身は同じであるが、符号が逆になっている。
本発明の実施例によると、複数ペアの切捨て閾値を選択して、それぞれ、量子化待ちデータを量子化することができる。幾つかの実施例において、固定された間隔で幾つかの切捨て閾値を選択でき、例えば、量子化待ちデータ中の絶対値最大値に基づいて、所定距離ごとに一つの切捨て閾値を選択できる。幾つかの実施例において、幾つかの特定の位置での切捨て閾値のみを選択でき、例えば、絶対値最大値と所定比率を有する幾つかの数値のみを選択できる。
幾つかの実施例において、各ペアの切捨て閾値に基づいて該当する一つまたは複数の量子化パラメータを計算し、その後、計算された量子化パラメータを使用して量子化待ちデータを量子化することができる。オプションとして、切捨て閾値に直接基づいていろんな式またはモデルに従って、量子化待ちデータを量子化することができ、各量子化パラメータの値を単独的に計算する必要がない。
ブロック506において、複数組の量子化後のデータの中の各組の量子化後のデータの絶対値の平均値と1組の量子化待ちデータの絶対値の平均値との間の差異に基づいて、複数ペアの切捨て閾値の中から1ペアの切捨て閾値を選択して、1組の量子化待ちデータの量子化に用いる。本願の発明者は、検討および大量の試験を通じて、量子化前後のデータの絶対値の平均値の差異によって、量子化前後の精度損失が反映されることを、発見し、ここで、絶対値の平均値の差異が小さいほど、量子化操作の精度損失が小さい。このため、本発明の実施例は、挑選最適な切捨て閾値を選択するための指標として、量子化前後のデータの絶対値の平均値の差異を使用することによって、従来のKL方法よりももっと小さい精度損失を実現できる。
幾つかの実施例において、量子化後のデータの絶対値の平均値と量子化待ちデータの絶対値の平均値との間の差異は、二つの絶対値の平均値の間の差分値であってもよい。オプションとして、量子化後のデータの絶対値の平均値と量子化待ちデータの絶対値の平均値との間の差異は、二つの絶対値の平均値の間の差分値を量子化待ちデータの絶対値の平均値で除算してから絶対値を求めて得られる値であってもよい。
幾つかの実施例において、最適な1ペアの切捨て閾値を選択した後に、選択した1ペアの切捨て閾値を使用して1組の量子化待ちデータを量子化することによって、量子化後のデータを得ることは、1組の量子化待ちデータの中の切捨て正の値よりも大きい数値を切捨て正の値に切捨てし、1組の量子化待ちデータの中の切捨て負の値よりも小さい数値を切捨て負の値に切捨てしてから、得られた量子化後のデータをニューラルネットワークモデル処理に用いることを含む。
図6は、本発明の実施例に係る対称量子化に用いられる切捨て閾値を検索する方法600を示すフローチャートであり、方法600は、量子化待ちデータに基づいて最適な1ペアの切捨て閾値を確定して、データの量子化に用いる。
ブロック602において、量子化待ちデータの絶対値の平均値および量子化待ちデータの中の絶対値最大値を確定し、ここで、絶対値の平均値は、量子化待ちデータの中のすべてのデータの絶対値の和を要素の数で除算して得られる値であり、なお、最小平均値の差異を初期化し、例えば、浮動小数点数の中の最大値を初期設定し、循環検索の検索順序i(例えば0に初期化する)を初期化する。幾つかの実施例において、検索順序iは、合計検索回数の半分に初期化されてもよく、すなわち、中間から検索し始めてもよく、このようにして検索効率をたかめることができる。本発明の実施例によると、1回りまたは複数回りの閾値検索過程を設定し、各回りの閾値検索は、同一の合計検索回数または異なる合計検索回数を有しても良い。幾つかの実施例において、各回りの合計検索回数は、10から32の間に設定できる。一般的に、合計検索回数が多いほど、消費する検索時間が長く、検索された切捨て閾値も精確である。しかしながら、合計検索回数がある値に達した後に、検索効果がこれ以上本質的に向上されない可能性がある。
続いて、1番目の回りの粗粒度の切捨て閾値検索過程を始める。例えば、図7Aは、本発明の実施例に係る対称量子化に用いられる切捨て閾値を粗粒度に検索するための例示的な図700を示す。図7Aに示すように、量子化待ちデータの中から、10個の候補切捨て閾値(図7Aで点線で示す)を確定し、順次にこれら10ペアの切捨て閾値(図7Aで、切捨て正の値のみを示し、対応する切捨て負の値を示していない)を使用して量子化過程を実行し、量子化前後のデータの絶対値の平均値の差異に基づいて最適な1ペアの切捨て閾値を確定できる。
ブロック604において、検索順序iが合計検索回数未満であるか否かを判断し、すなわち、各ペアの切捨て閾値を順次に選択して量子化を実行するときに、すべてのペアの切捨て閾値の計算が既に完成されたか否かを判断する。検索順序iが合計検索回数未満であると、ブロック606において、現在の検索順序iに基づいて、1ペアの切捨て閾値を確定し、このペアの切捨て閾値は、それぞれ、−絶対値最大値/合計検索回数*(i+1)、および、絶対値最大値/合計検索回数*(i+1)である。ブロック608において、このペアの切捨て閾値を使用して量子化待ちデータを量子化して、該当する量子化後データQuant_data_iを得、その後、ブロック610において、量子化後のデータの絶対値の平均値Quant_data_mean_iと量子化待ちデータの絶対値の平均値Data_meanとの間の差異Distance_i = abs(Quant_data_mean_i − Data_mean)/ Data_meanを計算する。
ブロック612において、計算された差異Distance_iが現在最小差異未満であるか否かを判断する。未満であると、ブロック614において、計算された差異Distance_iを現在最小差異に設定し、差異が最小であるときの切捨て閾値を記録し、その後、ブロック616において、検索順序i(即i++)をインクリメントする。ブロック612で未満ではないと判断されると、直接、ブロック616において、検索順序iをインクリメントし、すなわち、次の1ペアの切捨て閾値のときの差異を確定し続ける。続いて、ステップ604から616を循環し続けて、検索順序iの値が合計検索回数に達すると、ブロック618において、1番目の回りの切捨て閾値の検索過程を終了する。図7Aに示すように、1番目の回りの検索を通じて、点線770のところの切捨て閾値に対応する差異が最小であると確定される。これにより分るように、切捨て閾値の検索過程は、複数ペアの切捨て閾値を使用して量子化待ちデータに対して量子化を実行し、複数組の量子化後のデータの中から、量子化待ちデータ在絶対値の平均値との差異が最小である1組の量子化後のデータを確定し、その後、複数ペアの切捨て閾値の中からこの組の量子化後のデータに対応する1ペアの切捨て閾値を選択することである。
オプションとして、2番目の回りの細粒度の切捨て閾値検索過程を実行でき、2番目の回りの検索過程は方法600を参考してよく、ただ、2番目の回りの検索は1番目の回りの最適な切捨て閾値770の周囲の一定の範囲内(例えば、選択した切捨て閾値770の前の一つの切捨て閾値と後の一つの切捨て閾値との間)で実行され、1番目の回りの検索結果に対する更なる精密化である。例えば、2番目の回りの検索の場合、各ペアの切捨て閾値同士の間の間隔は、(絶対値最大値*2)/(1番目の回りの合計検索回数*2番目の回りの合計検索回数)であってもよい。図7Bは、本発明の実施例に係る対称量子化に用いられる切捨て閾値を細粒度に検索するための図750を示し、図7Bを参考すると、2番目の回りの検索を通じて、細粒度の最適な切捨て閾値を772および778として確定する。2回り検索の方式によって、もっと正確な切捨て閾値を得ることができ、量子化による精度損失をさらに低減できる。
図8は、本発明の実施例に係る最適な切捨て閾値を反復検索するための方法800を示すフローチャートである。ブロック802において、3ペアの切捨て閾値を確定し、例えば、量子化待ちデータFの中のすべてのデータの絶対値最大値absmaxを確定でき、3ペアの切捨て閾値は、それぞれ、(−absmax/2、absmax/2)、(−absmax*3/4、absmax*3/4)、および、(−absmax、absmax)である。
Figure 2022501674
ブロック806において、最小差異diff_minが事前に設定した所定閾値未満であるか否かを判断する。未満ではないと、ブロック808において、選択した1ペアの切捨て閾値に基づいて(最小差異diff_minに対応する値を新たな絶対値最大値に設定する)、再度3ペアの切捨て閾値を確定し、上述した過程を繰り返し、最小差異diff_minが所定閾値未満になると、ブロック810において、切捨て閾値の反復過程を終了する。幾つかの実施例において、最小差異diff_minが所定閾値未満であるこの反復停止条件に加えて、さらに、例えば、最大反復回数を設定すること、所定の最小間隔に達することなどの、他の反復停止条件を設定でき。また、図8の方法800で最適な1ペアの切捨て閾値を反復して選択することを示したが、反復を実行せずに、1回のみを実行した後に、最小差異diff_minに対応する1ペアの切捨て閾値を直接最終の切捨て閾値としてもよい。


幾つかの実施例において、以下の式(1)〜(3)に従って各ペアの切捨て閾値を使用してデータを量子化するときの量子化パラメータを確定できる。
Figure 2022501674
ここで、pは、量子化待ちデータの中の絶対値最大値であり、nは、量子化後のバイナリビット数を示し、Sおよびfは、量子化パラメータを示し、ceilは、切り上げ丸めを示す。
Figure 2022501674
前述した各方法の実施例において、簡単に説明するために、それらをいずれも一連の動作の組み合わせとして表現したが、当業者は、本発明は説明された動作の順序に限定されないし、なぜなら、本発明によるといくつかのステップを他の順序で実行するかまたは同時に実行できることを了解すべきであることを説明する必要がある。次に、当業者は、明細書に説明された実施例は、いずれもオプションとする実施例に属し、関わる動作およびモジュールは必ずとして本発明にとって必須なものではないことも理解すべきである。
フローチャートでの各ステップは矢印に従って順に示したが、これらステップは必ずとして矢印が示す順序に従って順に実行する必要がないことをさらに説明する必要がある。本明細書に明確な説明がない限り、これらステップの実行に対して厳密の順序を限定しなく、これらステップを他の順序に従って実行してもよい。さらに、フローチャートでの少なくとも一部ステップは、複数のサブステップまたは複数の段階を含んでもよく、これらサブステップまたは段階は、必ずとして一つのタイミングで実行を完成させる必要がなく、異なるタイミングで実行させてもよいし、これらサブステップまたは段階の実行順序も必ずとして順に実行させる必要がなく、他のステップまたは他のステップのサブステップまたは段階の少なくとも一部と交互または交替に実行させることができる。
図9は、本発明の実施例に係るデータを処理するための装置900を示すブロック図である。図9に示すように、装置900は、量子化待ちデータ取得ユニット910と、量子化後データ確定ユニット920と、切捨て閾値選択ユニット930と、を備える。量子化待ちデータ取得ユニット910は、機械学習モデルに用いられる1組の量子化待ちデータを取得する。量子化後データ確定ユニット920は、複数ペアの切捨て閾値を使用してそれぞれ1組の量子化待ちデータを量子化することによって、複数組の量子化後のデータを確定し、複数ペアの切捨て閾値の中の各ペアの切捨て閾値は、対称的な切捨て正の値と切捨て負の値とを含む。切捨て閾値選択ユニット930は、複数組の量子化後のデータの中の各組の量子化後のデータの絶対値の平均値と1組の量子化待ちデータの絶対値の平均値との間の差異に基づいて、複数ペアの切捨て閾値の中から1ペアの切捨て閾値を選択して、1組の量子化待ちデータの量子化に用いる。
なお、装置900中の量子化待ちデータ取得ユニット910と、量子化後データ確定ユニット920と、切捨て閾値選択ユニット930とは、さらに、本発明の各実施例に係るステップおよび/または動作を実行するように構成されてもよい。
上述した装置の実施例は、ただモード的なものであり、本発明の装置は、さらに他の方式によって実現されてもよいことを理解すべきである。例えば、上述した実施例中の前記ユニット/モジュールの分割は、ただ論理的機能分割であり、実際に実現において他の分割方式があり得る。例えば、複数のユニット、モジュール、または、アセンブリは、組み合わせてもよいし、もう一つのシステムに統合されてもよく、あるいは、幾つかの特徴は、省略されてもよいし、実行されなくてもよい。
また、特に説明しない限り、本発明の各実施例中の各機能ユニット/モジュールは、一つのユニット/モジュール中に統合されてもよいし、各ユニット/モジュールが単独的に物理的に存在してもよいし、二つまたは二つ以上ユニット/モジュールが一つに統合されてもよい。上述した統合されたユニット/モジュールは、ハードウェアの形式を利用して実現されてもよいし、ソフトウェアプログラムモジュールの形式を利用して実現されてもよい。
前記統合されたユニット/モジュールがハードウェアの形式で実現される場合、当該ハードウェアは、数値回路、アナログ回路などであり得る。ハードウェア構成の物理的な実現は、トランジスタ、メモリスタなどを含むが、これらに限定されない。特に説明しない限り、前記人工知能プロセッサは、例えばCPU、GPU、FPGA、DSP、ASICなどの、いかなる適当なハードウェアプロセッサであり得る。特に説明しない限り、前記記憶ユニットは、例えば、抵抗メモリRRAM(Resistive Random Access Memory)、動的ランダムアクセスメモリDRAM(Dynamic Random Access Memory)、静的ランダムアクセスメモリSRAM(Static Random−Access Memory)、拡張動的ランダムアクセスメモリEDRAM(Enhanced Dynamic Random Access Memory)、 高帯域幅メモリHBM(High−Bandwidth Memory)、ハイブリッドメモリキューブHMC(Hybrid Memory Cube)などの、いかなる適当な磁気記憶媒体あるいは光磁気記憶媒体であり得る。
前記統合されたユニット/モジュールは、ソフトウェアプログラムモジュールの形式で実現され、独立的にした製品として販売または使用される場合、一つのコンピュータ可読取メモリに記憶されてもよい。このような理解に基づいて、本発明の技術案は、本質上、あるいは、先行技術に寄与する部分、あるいは、当該技術案のすべてのまたは一部は、ソフトウェア製品の形式で具現されてもよく、当該コンピュータソフトウェア製品は一つのメモリに記憶され、一つのコンピュータデバイス(パーソナルコンピュータ、サーバ、ネットワークデバイスなどであり得る)に本発明の各実施例に記載の方法のすべてのまたは一部のステップを実行させるためのいくつかの命令を含む。前述したメモリは、Uディスク、読み取り専用メモリ(ROM、Read−Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、モバイルハードディスク、磁気ディスク、光ディスクなどの、いろんなプログラムコードを記憶できる媒体を含む。
一つの実施例において、コンピュータ可読記憶媒体を開示し、当該コンピュータ可読記憶媒体には、コンピュータプログラムが記憶されており、プログラムが実行されると、本発明の各実施例に係る方法が実現される。
一つの実施例において、人工知能チップをさらに開示し、当該人工知能チップは、上述したデータデータを処理するための装置を含む。
一つの実施例において、ボードカードをさらに開示し、前記ボードカードは、記憶部品と、インターフェース装置と、制御部品と、上述した人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶部品、前記制御部品、および、前記インターフェース装置と、それぞれ接続され、前記記憶部品は、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現し、前記制御部品は、前記人工知能チップの状態を監視制御する。
図10は、本発明の実施例に係るボードカード1000の構成を示すブロック図であり、図10を参考すると、上述したボードカード1000は、上述したチップ1030−1および1030−2(総称してチップ1030と呼ばれる)に加えて、他のサポート部件をさらに備えてもよく、当該サポート部件は、記憶部品1010と、インターフェース装置1040と、制御部品1020とを、含むが、これらに限定されない。インターフェース装置1040は、外部デバイス1060と接続できる。記憶部品1010は、人工知能チップ1030とバス1050を介して接続され、データを記憶するために用いられる。記憶部品1010は、複数組の記憶ユニット1010−1および1010−2を含んでもよい。各組の前記記憶ユニットは、前記人工知能チップとバス1050を介して接続される。各組の前記記憶ユニットは、DDR SDRAM(英語:Double Data Rate SDRAM、ダブルレート同期ダイナミックランダムアクセスメモリ)であってもよいことを理解できる。
DDRは、クロック周波数を上げずにSDRAMの速度を2倍にすることができる。DDRは、クロックパルスの上がりエンジと下がりエンジでデータを読み取ることができる。DDRの速度は、標準SDRAMの2倍である。一つの実施例において、前記グリッド納装置は、4組の前記グリッド納ユニットを備えてもよい。各組の前記グリッド納ユニットは、複数のDDR4粒子(チップ)を備えてもよい。一つの実施例において、前記ニューラルネットワークチップの内部は、4個の72ビットDDR4コントローラを備えてもよく、上記の72ビットDDR4コントローラ中の64bitは、データ伝送に使用され、8bitは、ECC検証に使用される。各組の前記グリッド納ユニットでDDR4-3200粒子を使用する場合、データ伝送する理論上の帯域幅が25600MB/sに達することを理解できる。
一つの実施例において、各組の前記グリッド納ユニットは、複数の並列に配置されたダブルレート同期ダイナミックランダムアクセスメモリを備える。DDRは、一つのクロックサイクルでデータを2回伝送することができる。前記チップ中にDDRを制御ためのコントローラを配置して、各々の前記グリッド納ユニットのデータ伝送およびデータグリッド納に対する制御に使用する。
前記インターフェース装置は、前記ニューラルネットワークチップと電気的に接続される。前記インターフェース装置は、前記ニューラルネットワークチップと外部デバイス(例えば、サーバまたはコンピュータ)との間のデータ伝送を実現するために使用される。例えば、一つの実施例において、前記インターフェース装置は、標準PCIEインターフェースであってもよい。例えば、処理待ちのデータは、サーバから標準PCIEインターフェースを介して前記チップに伝送されて、データ移送が実現される。好ましくは、PCIE 3.0 X 16インターフェースを使用して伝送する場合、理論上の帯域幅が16000MB/sに達することができる。もう一つの実施例において、前記インターフェース装置は、さらに、他のインターフェースであってもよく、前記インターフェースユニットが中継接続機能を実現できる限り、本願は上記の他のインターフェースの具体的な表現形式に対して限定しない。また、前記ニューラルネットワークチップの計算結果は、依然として、前記インターフェース装置によって外部デバイス(例えば、サーバ)に伝送し返される。
前記制御デバイスは、前記ニューラルネットワークチップと電気的に接続される。前記制御デバイスは、前記ニューラルネットワークチップの状態を監視制御するために使用される。具体的に、前記ニューラルネットワークチップは、前記制御デバイスとSPIインターフェースを介して電気的に接続されてもよい。前記制御デバイスは、シングルチップマイクロコンピュータ(Micro Controller Unit、MCU)を含んでもよい。前記ニューラルネットワークチップは、複数の処理チップ、複数の処理コア、または、複数の処理回路を含んでもよく、複数の負荷を駆動できる。このため、前記人工知能チップは、複数の負載および軽負載などの異なる工作状態になることができる。前記制御装置によって、前記人工知能チップ中の複数の処理チップ、複数の処理、および/または、複数の処理回路の工作状態に対する調整制御を実現できる。
可能な一実現形態において、電子デバイスを開示し、当該電子デバイスは上記のニューラルネットワークチップを備える。電子デバイスは、データ処理装置、ロボット、コンピュータ、プリンター、スキャナー、タブレットコンピュータ、スマート端末、携帯電話、ドライビングレコーダー、ナビゲーター、センサ、Webカメラ、サーバ、クラウドサーバ、カメラ、ビデオカメラ、プロジェクター、腕時計、ヘッドセット、モバイルストレージ、ウェアラブルデバイス、交通ツール、家電製品、及び/又は、医療機器を含む。
前記交通ツールは、飛行機、船、及び/又は、車両を含み、前記家電製品は、テレビ、エアコン、電子レンジ、冷蔵庫、炊飯器、加湿器、洗濯機、電灯、ガスストーブ、および、レンジフードを含み、前記医療機器は、核磁気共鳴装置、B超音波装置、及び/又は、心電計を含む。
上述した実施例において、各実施例に対する説明はそれぞれ重点を置き、ある実施例には詳細な説明がない場合、他の実施例の中の関連説明を参照することができる。上記の実施例の各技術特徴は、任意に組み合わせることができ、記載を簡潔にするために、上記の実施例の中の各技術特徴の全ての可能な組合せを記載していないが、これらの技術特徴の組合せに矛盾が発生されない限り、いずれも本明細書に記載の範囲であると見なされるべきである。
以下の条項によって前述した内容をよりよく理解できる。
A1.データを処理するための方法であって、
機械学習モデルに用いられる1組の量子化待ちデータを取得するステップと、
複数ペアの切捨て閾値を使用してそれぞれ前記1組の量子化待ちデータを量子化することによって、複数組の量子化後のデータを確定するステップであって、前記複数ペアの切捨て閾値の中の各ペアの切捨て閾値は、対称的な切捨て正の値と切捨て負の値とを含むステップと、
前記複数組の量子化後のデータの中の各組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の差異に基づいて、前記複数ペアの切捨て閾値の中から1ペアの切捨て閾値を選択して、前記1組の量子化待ちデータの量子化に用いるステップと、を含む
ことを特徴とする前記方法。
A2.複数組の量子化後のデータを確定するステップは、
前記1組の量子化待ちデータの中のすべてのデータの絶対値最大値を確定するステップと、
前記絶対値最大値に基づいて、前記複数ペアの切捨て閾値を確定するステップと、を含む
ことを特徴とする条項A1に記載の前記方法。
A3.複数組の量子化後のデータを確定するステップは、
前記絶対値最大値、所定の合計検索回数、および、現在検索順序に基づいて、第1切捨て正の値を確定するステップと、
1番目のペアの切捨て閾値を使用して前記1組の量子化待ちデータを量子化することによって、1番目の組の量子化後のデータを確定するステップであって、前記1番目のペアの切捨て閾値は、前記第1切捨て正の値と、前記第1切捨て正の値と反対の第1切捨て負の値と、を含むステップと、
前記1番目の組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の第1差異を確定するステップと、をさらに含む
ことを特徴とする条項A2に記載の前記方法。
A4.複数組の量子化後のデータを確定するステップは、
前記現在検索順序をインクリメントするステップと、
前記絶対値最大値、前記所定の合計検索回数、および、前記現在検索順序に基づいて、第2切捨て正の値を確定するステップと、
2番目のペアの切捨て閾値を使用して前記1組の量子化待ちデータを量子化することによって、2番目の組の量子化後のデータを確定するステップであって、前記2番目のペアの切捨て閾値は、前記第2切捨て正の値と、前記第2切捨て正の値と反対の第2切捨て負の値と、を含むステップと、
前記2番目の組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の第2差異を確定するステップと、をさらに含む
ことを特徴とする条項A3に記載の前記方法。
A5.前記複数ペアの切捨て閾値の中から1ペアの切捨て閾値を選択するステップは、
前記複数組の量子化後のデータ中で前記1組の量子化待ちデータとの絶対値の平均値の差異が最小である1組の量子化後のデータを確定するステップと、
前記複数ペアの切捨て閾値の中から前記1組の量子化後のデータと対応する1ペアの切捨て閾値を選択するステップと、を含む
ことを特徴とする条項A1−A4のいずれか1項に記載の前記方法。
A6.選択した前記1ペアの切捨て閾値に関連付けられた切捨て検索範囲を確定するステップと、
前記切捨て検索範囲内に位置する新たな複数ペアの切捨て閾値を確定するステップと、
前記新たな複数ペアの切捨て閾値を使用してそれぞれ前記1組の量子化待ちデータを量子化することによって、新たな複数組の量子化後のデータを確定するステップと、
前記新たな複数組の量子化後のデータの中の各組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の差異に基づいて、前記新たな複数ペアの切捨て閾値の中から新たな1ペアの切捨て閾値を選択するステップと、をさらに含む
ことを特徴とする条項A5に記載の前記方法。
A7.複数組の量子化後のデータを確定するステップは、
前記1組の量子化待ちデータの中のすべてのデータの絶対値最大値を確定するステップと、
前記絶対値最大値に基づいて、3ペアの切捨て閾値を確定するステップであって、前記3ペアの切捨て閾値中の1番目のペアの切捨て閾値は、前記絶対値最大値の半分と、その反対の値と、を含み、前記3ペアの切捨て閾値中の2番目のペアの切捨て閾値は、前記絶対値最大値の4分の3と、その反対の値と、を含み、前記3ペアの切捨て閾値中の3番目のペアの切捨て閾値は、前記絶対値最大値と、その反対の値と、を含むステップと、
3ペアの切捨て閾値を使用してそれぞれ前記1組の量子化待ちデータを量子化することによって、3組の量子化後のデータを確定するステップと、を含む
ことを特徴とする条項A1に記載の前記方法。
A8.前記複数ペアの切捨て閾値の中から1ペアの切捨て閾値を選択するステップは、
停止条件を満たすまで、以下の動作を反復実行するステップを含み、当該動作は、
前記3ペアの切捨て閾値の中から1ペアの切捨て閾値を選択する動作と、
選択した1ペアの切捨て閾値と対応する差異が所定閾値未満であるか否かを確定する動作と、
前記差異が所定閾値未満であることに応答して、動作の反復実行を停止する動作と、
前記差異が所定閾値よりも大きいことに応答して、選択した1ペアの切捨て閾値に基づいて、再度3ペアの切捨て閾値を確定する動作と、を含む
ことを特徴とする条項A7に記載の前記方法。
A9.前記1組の量子化待ちデータは、ニューラルネットワークモデル中の1組の浮動小数点数であり、
前記方法は、
選択した1ペアの切捨て閾値を使用して前記1組の量子化待ちデータを量子化することによって量子化後のデータを得るステップであって、前記1組の量子化待ちデータを量子化することは、前記1組の量子化待ちデータ中の、切捨て正の値よりも大きい数値を、前記切捨て正の値に設定し、前記1組の量子化待ちデータ中の、切捨て負の値よりも小さい数値を、前記切捨て負の値に設定するステップと、
得られた量子化後のデータを前記ニューラルネットワークモデルに入力して、処理に用いるステップと、をさらに含む
ことを特徴とする条項A1−A8のいずれか1項に記載の前記方法。
A10.データを処理するための装置であって、
機械学習モデルに用いられる1組の量子化待ちデータを取得するための量子化待ちデータ取得ユニットと、
複数ペアの切捨て閾値を使用してそれぞれ前記1組の量子化待ちデータを量子化することによって、複数組の量子化後のデータを確定するための量子化後データ確定ユニットであって、前記複数ペアの切捨て閾値の中の各ペアの切捨て閾値は、対称的な切捨て正の値と切捨て負の値とを含む量子化後データ確定ユニットと、
前記複数組の量子化後のデータの中の各組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の差異に基づいて、前記複数ペアの切捨て閾値の中から1ペアの切捨て閾値を選択して、前記1組の量子化待ちデータの量子化に用いるための切捨て閾値選択ユニットと、を備える
ことを特徴とする前記装置。
A11.前記量子化後データ確定ユニットは、
前記1組の量子化待ちデータの中のすべてのデータの絶対値最大値を確定するための絶対値最大値確定ユニットと、
前記絶対値最大値に基づいて前記複数ペアの切捨て閾値を確定するための複数ペア切捨て閾値確定ユニットと、を備える
ことを特徴とする条項A10に記載の前記装置。
A12.前記量子化後データ確定ユニットは、
前記絶対値最大値、所定の合計検索回数、および、現在検索順序に基づいて、第1切捨て正の値を確定するための第1切捨て正の値確定ユニットと、
1番目のペアの切捨て閾値を使用して前記1組の量子化待ちデータを量子化することによって、1番目の組の量子化後のデータを確定するための1番目組量子化後データ確定ユニットであって、前記1番目のペアの切捨て閾値は、前記第1切捨て正の値と、前記第1切捨て正の値と反対の第1切捨て負の値と、を含む1番目組量子化後データ確定ユニットと、
前記1番目の組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の第1差異を確定するための第1差異確定ユニットと、をさらに備える
ことを特徴とする条項A11に記載の前記装置。
A13.前記量子化後データ確定ユニットは、
前記現在検索順序をインクリメントするためのインクリメントユニットと、
前記絶対値最大値、前記所定の合計検索回数、および、前記現在検索順序に基づいて、第2切捨て正の値を確定するための第2切捨て正の値確定ユニットと、
2番目のペアの切捨て閾値を使用して前記1組の量子化待ちデータを量子化することによって、2番目の組の量子化後のデータを確定するための2番目組量子化後データ確定ユニットであって、前記2番目のペアの切捨て閾値は、前記第2切捨て正の値と、前記第2切捨て正の値と反対の第2切捨て負の値と、を含む2番目組量子化後データ確定ユニットと、
前記2番目の組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の第2差異を確定するための第2差異確定ユニットと、をさらに備える
ことを特徴とする条項A12に記載の前記装置。
A14.前記切捨て閾値選択ユニットは、
前記複数組の量子化後のデータ中で前記1組の量子化待ちデータとの絶対値の平均値の差異が最小である1組の量子化後のデータを確定するための最小差異確定ユニットと、
前記複数ペアの切捨て閾値の中から前記1組の量子化後のデータと対応する1ペアの切捨て閾値を選択するための第2切捨て閾値選択ユニットと、を備える
ことを特徴とする条項A10乃至A13のいずれか1項に記載の前記装置。
A15.選択した前記1ペアの切捨て閾値に関連付けられた切捨て検索範囲を確定するための切捨て検索範囲確定ユニットと、
前記切捨て検索範囲内に位置する新たな複数ペアの切捨て閾値を確定するための新たな複数ペア切捨て閾値確定ユニットと、
前記新たな複数ペアの切捨て閾値を使用してそれぞれ前記1組の量子化待ちデータを量子化することによって、新たな複数組の量子化後のデータを確定するための第2量子化後データ確定ユニットと、
前記新たな複数組の量子化後のデータの中の各組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の差異に基づいて、前記新たな複数ペアの切捨て閾値の中から新たな1ペアの切捨て閾値を選択するための第3切捨て閾値選択ユニットと、をさらに備える
ことを特徴とする条項A14に記載の前記装置。
A16.前記量子化後データ確定ユニットは、
前記1組の量子化待ちデータの中のすべてのデータの絶対値最大値を確定するための絶対値最大値確定ユニットと、
前記絶対値最大値に基づいて、3ペアの切捨て閾値を確定するための3ペア切捨て閾値確定ユニットであって、前記3ペアの切捨て閾値中の1番目のペアの切捨て閾値は、前記絶対値最大値の半分と、その反対の値と、を含み、前記3ペアの切捨て閾値中の2番目のペアの切捨て閾値は、前記絶対値最大値の4分の3と、その反対の値と、を含み、前記3ペアの切捨て閾値中の3番目のペアの切捨て閾値は、前記絶対値最大値と、その反対の値と、を含む3ペア切捨て閾値確定ユニットと、
3ペアの切捨て閾値を使用してそれぞれ前記1組の量子化待ちデータを量子化することによって、3組の量子化後のデータを確定するための3組量子化後データ確定ユニットと、を備える
ことを特徴とする条項A10に記載の前記装置。
A17.前記切捨て閾値選択ユニットは、
停止条件を満たすまで、以下の動作を反復実行するための反復ユニットを備え、
当該動作は、
前記3ペアの切捨て閾値の中から1ペアの切捨て閾値を選択する動作と、
選択した1ペアの切捨て閾値と対応する差異が所定閾値未満であるか否かを確定する動作と、
前記差異が所定閾値未満であることに応答して、動作の反復実行を停止する動作と、
前記差異が所定閾値よりも大きいことに応答して、選択した1ペアの切捨て閾値に基づいて、再度3ペアの切捨て閾値を確定する動作と、を含む
ことを特徴とする条項A16に記載の前記装置。
A18.前記1組の量子化待ちデータは、ニューラルネットワークモデル中の1組の浮動小数点数であり、
前記装置は、
選択した1ペアの切捨て閾値を使用して前記1組の量子化待ちデータを量子化することによって量子化後のデータを得るためのデータ量子化ユニットであって、前記1組の量子化待ちデータを量子化することは、前記1組の量子化待ちデータ中の、切捨て正の値よりも大きい数値を、前記切捨て正の値に設定し、前記1組の量子化待ちデータ中の、切捨て負の値よりも小さい数値を、前記切捨て負の値に設定するデータ量子化ユニットと、
得られた量子化後のデータを前記ニューラルネットワークモデルに入力して、処理に用いるためのデータ入力ユニットと、をさらに備える
ことを特徴とする条項A10乃至A17のいずれか1項に記載の前記装置。
A19.コンピュータ可読記憶媒体であって、
前記コンピュータ可読記憶媒体には、コンピュータプログラムが記憶されており、前記プログラムが実行されると、条項A1乃至A9のいずれか1項に記載の前記方法が実現される
ことを特徴とするコンピュータ可読記憶媒体。
A20.人工知能チップであって、
前記チップは、条項A10乃至A18のいずれか1項に記載のデータを処理するための装置を備える
ことを特徴とする人工知能チップ。
A21.電子デバイスであって、
前記電子デバイスは、条項A20に記載の人工知能チップを含む
ことを特徴とする電子デバイス。
A22.ボードカードであって、
前記ボードカードは、記憶部品と、インターフェース装置と、制御部品と、条項A20に記載の人工知能チップと、を備え、
ここで、前記人工知能チップは、前記記憶部品、前記制御部品、および、前記インターフェース装置と、接続され、
前記記憶部品は、データを記憶し、
前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現し、
前記制御部品は、前記人工知能チップの状態を監視制御する
ことを特徴とするボードカード。
A23.前記記憶部品は、複数組の記憶ユニットを備え、各組の記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、DDR SDRAMであり、
前記チップは、DDRコントローラを備え、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に用いられ、
前記インターフェース装置は、標準PCIEインターフェースである
ことを特徴とする条項A22記載のボードカード。
以上、本発明の実施例を詳細に説明し、本明細書では具体的な例を適用して本発明の原理および実施形態を説明した。以上の実施例の説明は、本発明の方法およびその本旨の理解を助けるためにのみ使用される。同時に、当業者によって本発明の旨に依存して本発明の具体的な実施形態および適用範囲に基づいて行われた変更または修正は、いずれも本発明の保護しようとする範囲に属する。上記のように、本明細書の内容を本発明に対する制限として理解してはいけない。

Claims (23)

  1. データを処理するための方法であって、
    機械学習モデルに用いられる1組の量子化待ちデータを取得するステップと、
    複数ペアの切捨て閾値を使用してそれぞれ前記1組の量子化待ちデータを量子化することによって、複数組の量子化後のデータを確定するステップであって、前記複数ペアの切捨て閾値の中の各ペアの切捨て閾値は、対称的な切捨て正の値と切捨て負の値とを含むステップと、
    前記複数組の量子化後のデータの中の各組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の差異に基づいて、前記複数ペアの切捨て閾値の中から1ペアの切捨て閾値を選択して、前記1組の量子化待ちデータの量子化に用いるステップと、を含む
    ことを特徴とする前記方法。
  2. 複数組の量子化後のデータを確定するステップは、
    前記1組の量子化待ちデータの中のすべてのデータの絶対値最大値を確定するステップと、
    前記絶対値最大値に基づいて、前記複数ペアの切捨て閾値を確定するステップと、を含む
    ことを特徴とする請求項1に記載の前記方法。
  3. 複数組の量子化後のデータを確定するステップは、
    前記絶対値最大値、所定の合計検索回数、および、現在検索順序に基づいて、第1切捨て正の値を確定するステップと、
    1番目のペアの切捨て閾値を使用して前記1組の量子化待ちデータを量子化することによって、1番目の組の量子化後のデータを確定するステップであって、前記1番目のペアの切捨て閾値は、前記第1切捨て正の値と、前記第1切捨て正の値と反対の第1切捨て負の値と、を含むステップと、
    前記1番目の組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の第1差異を確定するステップと、をさらに含む
    ことを特徴とする請求項2に記載の前記方法。
  4. 複数組の量子化後のデータを確定するステップは、
    前記現在検索順序をインクリメントするステップと、
    前記絶対値最大値、前記所定の合計検索回数、および、前記現在検索順序に基づいて、第2切捨て正の値を確定するステップと、
    2番目のペアの切捨て閾値を使用して前記1組の量子化待ちデータを量子化することによって、2番目の組の量子化後のデータを確定するステップであって、前記2番目のペアの切捨て閾値は、前記第2切捨て正の値と、前記第2切捨て正の値と反対の第2切捨て負の値と、を含むステップと、
    前記2番目の組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の第2差異を確定するステップと、をさらに含む
    ことを特徴とする請求項3に記載の前記方法。
  5. 前記複数ペアの切捨て閾値の中から1ペアの切捨て閾値を選択するステップは、
    前記複数組の量子化後のデータ中で前記1組の量子化待ちデータとの絶対値の平均値の差異が最小である1組の量子化後のデータを確定するステップと、
    前記複数ペアの切捨て閾値の中から前記1組の量子化後のデータと対応する1ペアの切捨て閾値を選択するステップと、を含む
    ことを特徴とする請求項1乃至4のいずれか1項に記載の前記方法。
  6. 選択した前記1ペアの切捨て閾値に関連付けられた切捨て検索範囲を確定するステップと、
    前記切捨て検索範囲内に位置する新たな複数ペアの切捨て閾値を確定するステップと、
    前記新たな複数ペアの切捨て閾値を使用してそれぞれ前記1組の量子化待ちデータを量子化することによって、新たな複数組の量子化後のデータを確定するステップと、
    前記新たな複数組の量子化後のデータの中の各組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の差異に基づいて、前記新たな複数ペアの切捨て閾値の中から新たな1ペアの切捨て閾値を選択するステップと、をさらに含む
    ことを特徴とする請求項5に記載の前記方法。
  7. 複数ペアの切捨て閾値を使用してそれぞれ前記1組の量子化待ちデータを量子化することによって、複数組の量子化後のデータを確定するステップは、
    前記1組の量子化待ちデータの中のすべてのデータの絶対値最大値を確定するステップと、
    前記絶対値最大値に基づいて、3ペアの切捨て閾値を確定するステップであって、前記3ペアの切捨て閾値中の1番目のペアの切捨て閾値は、前記絶対値最大値の半分と、その反対の値と、を含み、前記3ペアの切捨て閾値中の2番目のペアの切捨て閾値は、前記絶対値最大値の4分の3と、その反対の値と、を含み、前記3ペアの切捨て閾値中の3番目のペアの切捨て閾値は、前記絶対値最大値と、その反対の値と、を含むステップと、
    3ペアの切捨て閾値を使用してそれぞれ前記1組の量子化待ちデータを量子化することによって、3組の量子化後のデータを確定するステップと、を含む
    ことを特徴とする請求項1に記載の前記方法。
  8. 前記複数ペアの切捨て閾値の中から1ペアの切捨て閾値を選択するステップは、
    停止条件を満たすまで、以下の動作を反復実行するステップを含み、
    当該動作は、
    前記3ペアの切捨て閾値の中から1ペアの切捨て閾値を選択する動作と、
    選択した1ペアの切捨て閾値と対応する差異が所定閾値未満であるか否かを確定する動作と、
    前記差異が所定閾値未満であることに応答して、動作の反復実行を停止する動作と、
    前記差異が所定閾値よりも大きいことに応答して、選択した1ペアの切捨て閾値に基づいて、再度3ペアの切捨て閾値を確定する動作と、を含む
    ことを特徴とする請求項7に記載の前記方法。
  9. 前記1組の量子化待ちデータは、ニューラルネットワークモデル中の1組の浮動小数点数であり、
    前記方法は、
    選択した1ペアの切捨て閾値を使用して前記1組の量子化待ちデータを量子化することによって量子化後のデータを得るステップであって、前記1組の量子化待ちデータを量子化することは、前記1組の量子化待ちデータ中の、切捨て正の値よりも大きい数値を、前記切捨て正の値に設定し、前記1組の量子化待ちデータ中の、切捨て負の値よりも小さい数値を、前記切捨て負の値に設定するステップと、
    得られた量子化後のデータを前記ニューラルネットワークモデルに入力して、処理に用いるステップと、をさらに含む
    ことを特徴とする請求項1乃至8のいずれか1項に記載の前記方法。
  10. データを処理するための装置であって、
    機械学習モデルに用いられる1組の量子化待ちデータを取得するための量子化待ちデータ取得ユニットと、
    複数ペアの切捨て閾値を使用してそれぞれ前記1組の量子化待ちデータを量子化することによって、複数組の量子化後のデータを確定するための量子化後データ確定ユニットであって、前記複数ペアの切捨て閾値の中の各ペアの切捨て閾値は、対称的な切捨て正の値と切捨て負の値とを含む量子化後データ確定ユニットと、
    前記複数組の量子化後のデータの中の各組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の差異に基づいて、前記複数ペアの切捨て閾値の中から1ペアの切捨て閾値を選択して、前記1組の量子化待ちデータの量子化に用いるための切捨て閾値選択ユニットと、を備える
    ことを特徴とする前記装置。
  11. 前記量子化後データ確定ユニットは、
    前記1組の量子化待ちデータの中のすべてのデータの絶対値最大値を確定するための絶対値最大値確定ユニットと、
    前記絶対値最大値に基づいて前記複数ペアの切捨て閾値を確定するための複数ペア切捨て閾値確定ユニットと、を備える
    ことを特徴とする請求項10に記載の前記装置。
  12. 前記量子化後データ確定ユニットは、
    前記絶対値最大値、所定の合計検索回数、および、現在検索順序に基づいて、第1切捨て正の値を確定するための第1切捨て正の値確定ユニットと、
    1番目のペアの切捨て閾値を使用して前記1組の量子化待ちデータを量子化することによって、1番目の組の量子化後のデータを確定するための1番目組量子化後データ確定ユニットであって、前記1番目のペアの切捨て閾値は、前記第1切捨て正の値と、前記第1切捨て正の値と反対の第1切捨て負の値と、を含む1番目組量子化後データ確定ユニットと、
    前記1番目の組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の第1差異を確定するための第1差異確定ユニットと、をさらに備える
    ことを特徴とする請求項11に記載の前記装置。
  13. 前記量子化後データ確定ユニットは、
    前記現在検索順序をインクリメントするためのインクリメントユニットと、
    前記絶対値最大値、前記所定の合計検索回数、および、前記現在検索順序に基づいて、第2切捨て正の値を確定するための第2切捨て正の値確定ユニットと、
    2番目のペアの切捨て閾値を使用して前記1組の量子化待ちデータを量子化することによって、2番目の組の量子化後のデータを確定するための2番目組量子化後データ確定ユニットであって、前記2番目のペアの切捨て閾値は、前記第2切捨て正の値と、前記第2切捨て正の値と反対の第2切捨て負の値と、を含む2番目組量子化後データ確定ユニットと、
    前記2番目の組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の第2差異を確定するための第2差異確定ユニットと、をさらに備える
    ことを特徴とする請求項12に記載の前記装置。
  14. 前記切捨て閾値選択ユニットは、
    前記複数組の量子化後のデータ中で前記1組の量子化待ちデータとの絶対値の平均値の差異が最小である1組の量子化後のデータを確定するための最小差異確定ユニットと、
    前記複数ペアの切捨て閾値の中から前記1組の量子化後のデータと対応する1ペアの切捨て閾値を選択するための第2切捨て閾値選択ユニットと、を備える
    ことを特徴とする請求項10乃至13のいずれか1項に記載の前記装置。
  15. 選択した前記1ペアの切捨て閾値に関連付けられた切捨て検索範囲を確定するための切捨て検索範囲確定ユニットと、
    前記切捨て検索範囲内に位置する新たな複数ペアの切捨て閾値を確定するための新たな複数ペア切捨て閾値確定ユニットと、
    前記新たな複数ペアの切捨て閾値を使用してそれぞれ前記1組の量子化待ちデータを量子化することによって、新たな複数組の量子化後のデータを確定するための第2量子化後データ確定ユニットと、
    前記新たな複数組の量子化後のデータの中の各組の量子化後のデータの絶対値の平均値と前記1組の量子化待ちデータの絶対値の平均値との間の差異に基づいて、前記新たな複数ペアの切捨て閾値の中から新たな1ペアの切捨て閾値を選択するための第3切捨て閾値選択ユニットと、をさらに備える
    ことを特徴とする請求項14に記載の前記装置。
  16. 前記量子化後データ確定ユニットは、
    前記1組の量子化待ちデータの中のすべてのデータの絶対値最大値を確定するための絶対値最大値確定ユニットと、
    前記絶対値最大値に基づいて、3ペアの切捨て閾値を確定するための3ペア切捨て閾値確定ユニットであって、前記3ペアの切捨て閾値中の1番目のペアの切捨て閾値は、前記絶対値最大値の半分と、その反対の値と、を含み、前記3ペアの切捨て閾値中の2番目のペアの切捨て閾値は、前記絶対値最大値の4分の3と、その反対の値と、を含み、前記3ペアの切捨て閾値中の3番目のペアの切捨て閾値は、前記絶対値最大値と、その反対の値と、を含む3ペア切捨て閾値確定ユニットと、
    3ペアの切捨て閾値を使用してそれぞれ前記1組の量子化待ちデータを量子化することによって、3組の量子化後のデータを確定するための3組量子化後データ確定ユニットと、を備える
    ことを特徴とする請求項10に記載の前記装置。
  17. 前記切捨て閾値選択ユニットは、
    停止条件を満たすまで、以下の動作を反復実行するための反復ユニットを備え、
    当該動作は、
    前記3ペアの切捨て閾値の中から1ペアの切捨て閾値を選択する動作と、
    選択した1ペアの切捨て閾値と対応する差異が所定閾値未満であるか否かを確定する動作と、
    前記差異が所定閾値未満であることに応答して、動作の反復実行を停止する動作と、
    前記差異が所定閾値よりも大きいことに応答して、選択した1ペアの切捨て閾値に基づいて、再度3ペアの切捨て閾値を確定する動作と、を含む
    ことを特徴とする請求項16に記載の前記装置。
  18. 前記1組の量子化待ちデータは、ニューラルネットワークモデル中の1組の浮動小数点数であり、
    前記装置は、
    選択した1ペアの切捨て閾値を使用して前記1組の量子化待ちデータを量子化することによって量子化後のデータを得るためのデータ量子化ユニットであって、前記1組の量子化待ちデータを量子化することは、前記1組の量子化待ちデータ中の、切捨て正の値よりも大きい数値を、前記切捨て正の値に設定し、前記1組の量子化待ちデータ中の、切捨て負の値よりも小さい数値を、前記切捨て負の値に設定するデータ量子化ユニットと、
    得られた量子化後のデータを前記ニューラルネットワークモデルに入力して、処理に用いるためのデータ入力ユニットと、をさらに備える
    ことを特徴とする請求項10乃至17のいずれか1項に記載の前記装置。
  19. コンピュータ可読記憶媒体であって、
    前記コンピュータ可読記憶媒体には、コンピュータプログラムが記憶されており、前記プログラムが実行されると、請求項1乃至9のいずれか1項に記載の前記方法が実現される
    ことを特徴とするコンピュータ可読記憶媒体。
  20. 人工知能チップであって、
    前記チップは、請求項10乃至18のいずれか1項に記載のデータを処理するための装置を備える
    ことを特徴とする人工知能チップ。
  21. 電子デバイスであって、
    前記電子デバイスは、請求項20に記載の人工知能チップを含む
    ことを特徴とする電子デバイス。
  22. ボードカードであって、
    前記ボードカードは、記憶部品と、インターフェース装置と、制御部品と、請求項20に記載の人工知能チップと、を備え、
    ここで、前記人工知能チップは、前記記憶部品、前記制御部品、および、前記インターフェース装置と、接続され、
    前記記憶部品は、データを記憶し、
    前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現し、
    前記制御部品は、前記人工知能チップの状態を監視制御する
    ことを特徴とするボードカード。
  23. 前記記憶部品は、複数組の記憶ユニットを備え、各組の記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、DDR SDRAMであり、
    前記チップは、DDRコントローラを備え、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に用いられ、
    前記インターフェース装置は、標準PCIEインターフェースである
    ことを特徴とする請求項22記載のボードカード。
JP2020566955A 2019-08-28 2020-08-26 データを処理するための方法、装置、及び関連製品 Active JP7060719B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910804625.6 2019-08-28
CN201910804625.6A CN112446472A (zh) 2019-08-28 2019-08-28 用于处理数据的方法、装置以及相关产品
PCT/CN2020/111489 WO2021037082A1 (zh) 2019-08-28 2020-08-26 用于处理数据的方法、装置以及相关产品

Publications (2)

Publication Number Publication Date
JP2022501674A true JP2022501674A (ja) 2022-01-06
JP7060719B2 JP7060719B2 (ja) 2022-04-26

Family

ID=74684563

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020566955A Active JP7060719B2 (ja) 2019-08-28 2020-08-26 データを処理するための方法、装置、及び関連製品

Country Status (5)

Country Link
US (1) US20220121908A1 (ja)
EP (1) EP4024287A4 (ja)
JP (1) JP7060719B2 (ja)
CN (1) CN112446472A (ja)
WO (1) WO2021037082A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238987B (zh) * 2021-06-08 2022-11-22 中科寒武纪科技股份有限公司 量化数据的统计量化器、存储装置、处理装置及板卡

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180349758A1 (en) * 2017-06-06 2018-12-06 Via Alliance Semiconductor Co., Ltd. Computation method and device used in a convolutional neural network
JP2019032833A (ja) * 2017-08-04 2019-02-28 三星電子株式会社Samsung Electronics Co.,Ltd. 固定小数点量子化ニューラルネットワークのための方法及び装置
JP2022501670A (ja) * 2019-08-26 2022-01-06 上海寒武紀信息科技有限公司Shanghai Cambricon Information Technology Co., Ltd データを処理するための方法、装置、及び関連製品

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101596954B1 (ko) * 2009-01-29 2016-02-24 엘지디스플레이 주식회사 데이터 압축과 복원 방법 및 장치와 이를 이용한 액정표시장치
US11222263B2 (en) * 2016-07-28 2022-01-11 Samsung Electronics Co., Ltd. Neural network method and apparatus
CN107197297B (zh) * 2017-06-14 2019-12-10 中国科学院信息工程研究所 一种检测基于dct系数隐写的视频隐写分析方法
KR20190034985A (ko) * 2017-09-25 2019-04-03 삼성전자주식회사 인공 신경망의 양자화 방법 및 장치
CN109934761B (zh) * 2019-01-31 2022-11-29 中山大学 基于卷积神经网络的jpeg图像隐写分析方法
CN109993296B (zh) * 2019-04-01 2020-12-29 安徽寒武纪信息科技有限公司 量化实现方法及相关产品

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180349758A1 (en) * 2017-06-06 2018-12-06 Via Alliance Semiconductor Co., Ltd. Computation method and device used in a convolutional neural network
JP2019032833A (ja) * 2017-08-04 2019-02-28 三星電子株式会社Samsung Electronics Co.,Ltd. 固定小数点量子化ニューラルネットワークのための方法及び装置
JP2022501670A (ja) * 2019-08-26 2022-01-06 上海寒武紀信息科技有限公司Shanghai Cambricon Information Technology Co., Ltd データを処理するための方法、装置、及び関連製品

Also Published As

Publication number Publication date
US20220121908A1 (en) 2022-04-21
WO2021037082A1 (zh) 2021-03-04
CN112446472A (zh) 2021-03-05
EP4024287A1 (en) 2022-07-06
EP4024287A4 (en) 2023-09-13
JP7060719B2 (ja) 2022-04-26

Similar Documents

Publication Publication Date Title
CN111652367B (zh) 一种数据处理方法及相关产品
US20200394523A1 (en) Neural Network Quantization Parameter Determination Method and Related Products
JP2022501678A (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
JP2022501675A (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
JP2022501677A (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
US20220108150A1 (en) Method and apparatus for processing data, and related products
JP7060718B2 (ja) データを処理するための方法、装置、及び関連製品
US20220076095A1 (en) Multi-level sparse neural networks with dynamic rerouting
CN115860100A (zh) 一种神经网络模型训练方法、装置及计算设备
JP7060719B2 (ja) データを処理するための方法、装置、及び関連製品
WO2021082725A1 (zh) Winograd卷积运算方法及相关产品
CN112308201A (zh) 神经网络量化方法、装置、芯片、电子设备及板卡
JP7233636B2 (ja) データ量子化処理方法、装置、電子機器および記憶媒体
CN113112009B (zh) 用于神经网络数据量化的方法、装置和计算机可读存储介质
CN115329925A (zh) 神经网络结构确定方法及装置以及相关产品
US20220222041A1 (en) Method and apparatus for processing data, and related product
WO2021082724A1 (zh) 运算方法及相关产品
JP7072680B2 (ja) データを処理するための方法、装置、及び関連製品
CN113111997A (zh) 用于神经网络数据量化的方法、装置和计算机可读存储介质
CN113112008A (zh) 用于神经网络数据量化的方法、装置和计算机可读存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220314

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220414

R150 Certificate of patent or registration of utility model

Ref document number: 7060719

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150