JP2022049141A - 演算デバイス、計算機システム、及び演算方法 - Google Patents

演算デバイス、計算機システム、及び演算方法 Download PDF

Info

Publication number
JP2022049141A
JP2022049141A JP2020155200A JP2020155200A JP2022049141A JP 2022049141 A JP2022049141 A JP 2022049141A JP 2020155200 A JP2020155200 A JP 2020155200A JP 2020155200 A JP2020155200 A JP 2020155200A JP 2022049141 A JP2022049141 A JP 2022049141A
Authority
JP
Japan
Prior art keywords
calculation
similarity
vectors
vector
arithmetic device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020155200A
Other languages
English (en)
Inventor
大輔 宮下
Daisuke Miyashita
ラドゥ ベルダン
Berdan Radu
康人 星
yasuto Hoshi
淳 出口
Atsushi Deguchi
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.)
Kioxia Corp
Original Assignee
Kioxia Corp
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 Kioxia Corp filed Critical Kioxia Corp
Priority to JP2020155200A priority Critical patent/JP2022049141A/ja
Priority to US17/195,775 priority patent/US20220083848A1/en
Publication of JP2022049141A publication Critical patent/JP2022049141A/ja
Pending legal-status Critical Current

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
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/211Selection of the most significant subset of features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • 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
    • G06F18/24143Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19173Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4814Non-logic devices, e.g. operational amplifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks

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)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computational Linguistics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Neurology (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Figure 2022049141000001
【課題】間引き処理を行うことなく近似計算しても高速化できるようにし、処理時間などのコストを削減することができる演算デバイス、計算機システム、及び演算方法を提供することである。
【解決手段】ニューラルネットワークにおけるクエリに対応するキー探索とみなせる処理を実行する演算デバイスにおいて、クエリベクトルと、複数個のキーベクトルそれぞれとの間の類似度を近似的に計算する近似類似度計算部と、前記近似類似度計算部における近似計算の結果、類似度が閾値以上のキーを選択する選択部と、前記クエリと、前記選択部で選択されたキーとの類似度を計算する計算部と、を備える。
【選択図】図3

Description

本発明の実施形態は、演算デバイス、計算機システム、及び演算方法に関する。
従来、自然言語処理(NLP:Natural Language Processing)の演算に、ベクトル行列積の結果を重みとして別の行列の加重和を計算する処理(Attention)を含むニューラルネットワークが広く利用されるようになってきている。NLPは、人間の言語(自然言語)を機械で処理するための複数の処理を含む。Attentionを含むニューラルネットワークは、画像処理の分野でも採用が検討されている。
特開2019-212121号公報
本発明が解決しようとする課題は、処理時間などのコストを削減することができる演算デバイス、計算機システム、及び演算方法を提供することである。
実施形態の演算デバイスは、ニューラルネットワークに関する演算を実行する演算デバイスにおいて、第1ベクトルと、複数の第2ベクトルそれぞれとの間の類似度を近似的に計算する第1計算部を備える。また、演算デバイスは、前記第1計算部における前記類似度の計算の結果、前記複数の第2ベクトルのうち前記類似度が閾値以上のベクトルである第3ベクトルを複数選択する選択部を備える。また、演算デバイスは、前記第1ベクトルと、前記選択部で選択された複数の第3ベクトルとの類似度を計算する第2計算部を備える。
図1は、実施形態の演算デバイスを含む計算機システムの構成の一例を示すブロック図である。 図2は、実施形態の計算機システムで実行されるニューラルネットワークの構成例を説明するための模式図である。 図3は、実施形態の演算デバイスの機能構成を示す機能ブロック図である。 図4は、実施形態の演算デバイスによる各種の処理(データの処理方法)の流れを示すフローチャートである。 図5は、実施形態のベクトル行列積の近似的計算の一例を示す図である。 図6は、実施形態の演算デバイスの機能構成を示す機能ブロック図の変形例である。 図7は、比較例のニューラルネットワークにおける処理例を示す図である。 図8は、実施形態にかかるアナログ積和演算器の例を示す図である。
以下に添付図面を参照して、実施形態に係る演算デバイス、計算機システム、及び演算方法を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
図1は、実施形態の演算デバイスを含む計算機システム1の構成の一例を示すブロック図である。図1に示されるように、計算機システム1は、入力データを受信する。この入力データは、例えば音声データや音声データから生成されたテキストデータであっても良いし、画像データであっても良い。計算機システム1は、入力データに対して各種の処理を実行する。例えば、入力データが音声データである場合、計算機システム1は、自然言語処理を実行する。
計算機システム1は、入力データに対する処理の結果に対応する信号を出力し、処理の結果を表示デバイス80に表示させることができる。表示デバイス80は、液晶ディスプレイ、又は、有機ELディスプレイなどである。表示デバイス80は、ケーブル又は無線通信を介して、計算機システム1に電気的に接続される。
計算機システム1は、GPU(Graphic Processing Unit)10、CPU(Central Processing Unit)20、及び、メモリ70を少なくとも含む。GPU10、CPU20、及び、メモリ70は、内部バスにより通信可能に接続されている。
本実施形態において、GPU10は、機械学習装置である後述のニューラルネットワーク100を用いた推論処理用に関する演算を実行する。GPU10は、後述する近似的に類似度計算を行うプロセッサである。GPU10は、メモリ70をワークエリアとして用いながら、入力データに対する処理を実行する。GPU10は、機械学習装置である後述のニューラルネットワーク100を有する。
CPU20は、計算機システム1の全体の動作を制御するプロセッサである。CPU20は、GPU10及びメモリ70の制御のための各種の処理を実行する。CPU20は、メモリ70をワークエリアとして用いながら、GPU10で実行される後述のニューラルネットワーク100に関する演算を制御する。
メモリ70は、メモリデバイスとして機能する。メモリ70は、外部から入力された入力データ、GPU10によって生成されたデータ、CPU20によって生成されたデータ、及び、ニューラルネットワークのパラメータを記憶する。なお、GPU10及びCPU20によって生成されるデータは、各種の計算の中間結果及び最終結果を含み得る。例えば、メモリ70は、DRAM、SRAM、MRAM、NAND型フラッシュメモリ、抵抗変化型メモリ(例えば、ReRAM、PCM(Phase Change Memory))などの中から選択される少なくとも1以上を含む。GPU10にかかる専用のメモリ(図示せず)が、GPU10に直接接続されてもよい。
入力データは、記憶媒体99から提供されてもよい。記憶媒体99は、ケーブル又は無線通信によって、計算機システム1に電気的に結合される。記憶媒体99は、メモリデバイスとして機能するものであって、メモリカード、USBメモリ、SSD、HDD、及び、光記憶媒体などのいずれでもよい。
図2は、実施形態の計算機システム1で実行されるニューラルネットワーク100の構成例を説明するための模式図である。
計算機システム1において、図2のニューラルネットワーク100は、機械学習デバイスとして用いられる。例えば、ニューラルネットワーク100は、多層パーセプトロン(MLP)、畳み込みニューラルネットワーク(CNN)、又は注意機構を備えたニューラルネットワーク(例えばTransformer)を含む。ここで、機械学習とは、コンピュータが大量のデータを学習し、分類や予測などのタスクを遂行するアルゴリズムやモデルを自動的に構築する技術である。
なお、ニューラルネットワーク100は、如何なる推論を行う機械学習モデルであってもよい。例えば、ニューラルネットワーク100は、音声データを入力として、当該音声データの分類を出力する機械学習モデルであってもよいし、音声データのノイズ除去や音声認識を実現する機械学習モデルであってもよい。
ニューラルネットワーク100は、入力層101、隠れ層(中間層ともよばれる)102、及び出力層(全結合層ともよばれる)103を有する。
入力層101は、計算機システム1の外部から受信した入力データ(又はその一部分)を受信する。入力層101は、複数の演算デバイス(ニューロン又はニューロン回路ともよばれる)118を有する。なお、演算デバイス118は専用の装置であってもよいし、汎用のプロセッサがプログラムを実行することでその処理が実現されても良い。これ以降も同様の意味で演算デバイスという表記を使う。入力層101において、各演算デバイス118は、入力データに任意の処理(例えば線形変換や、補助データの追加など)を施して変換し、変換したデータを、隠れ層102に送信する。
隠れ層102(102A,102B)は、入力層101からのデータに対して、各種の計算処理を実行する。
隠れ層102は、複数の演算デバイス110(110A,110B)を有する。隠れ層102において、各演算デバイス110は、供給されたデータ(以下では、区別化のため、デバイス入力データともよばれる)に対して、所定のパラメータ(例えば、重み係数)を用いた積和演算処理を実行する。例えば、各演算デバイス110は、供給されたデータに対して、互いに異なるパラメータを用いて積和演算処理を実行する。
隠れ層102は、階層化されてもよい。この場合において、隠れ層102は、少なくとも2つの層(第1の隠れ層102A及び第2の隠れ層102B)を含む。
第1の隠れ層102Aの各演算デバイス110Aは、入力層101の処理結果であるデバイス入力データに対して、所定の計算処理を実行する。各演算デバイス110Aは、計算結果を、第2の隠れ層102Bの各演算デバイス110Bに送信する。第2の隠れ層102Bの各演算デバイス110Bは、各演算デバイス110Aの計算結果であるデバイスを入力データに対して、所定の計算処理を実行する。各演算デバイス110Bは、計算結果を、出力層103に送信する。
このように、隠れ層102が階層構造を有する場合、ニューラルネットワーク100による推論(inference)、学習(learning/training)、及び分類の能力が、向上され得る。なお、隠れ層102の層の数は、3層以上でもよいし、1層でもよい。1つの隠れ層は、積和演算処理、プーリング処理、正規化処理、活性化処理などの処理の任意の組み合わせを含むように構成されてもよい。
出力層103は、隠れ層102の各演算デバイス110によって実行された各種の計算処理の結果を受信し、各種の処理を実行する。
出力層103は、複数の演算デバイス119を有する。各演算デバイス119は、複数の演算デバイス110Bからの計算結果であるデバイス入力データに対して、所定の処理を実行する。これによって、隠れ層102による計算結果に基づいて、ニューラルネットワーク100に供給されたデータに関する推論や分類を、実行できる。各演算デバイス119は、得られた処理結果(分類結果)を記憶及び出力できる。出力層103は、隠れ層102の計算結果をニューラルネットワーク100の外部へ出力するためのバッファ及びインターフェイスとしても機能する。
なお、ニューラルネットワーク100は、GPU10の外部に設けられてもよい。すなわち、ニューラルネットワーク100は、GPU10のみならず、計算機システム1内のCPU20、メモリ70、記憶媒体99などを利用して実現されるものであってもよい。
本実施形態の計算機システム1において、ニューラルネットワーク100によって、例えば、自然言語処理/推定のための各種の計算処理、及び、自然言語処理/推定の機械学習(例えば、ディープラーニング)のための各種の計算処理が、実行される。
例えば、計算機システム1において、音声データに対するニューラルネットワーク100による各種の計算処理に基づいて、音声データが何であるかを計算機システム1によって高い精度で推論(認識)及び分類されたり、音声データが計算機システム1によって高い精度で認識/分類されるように学習されたりすることが可能となる。
本実施形態において、以下のように、ニューラルネットワーク100内の演算デバイス110(110A,110B)は、1以上の処理回路を含む。
図3は、実施形態の演算デバイス110の機能構成を示す機能ブロック図である。図3に示すように、演算デバイス110は、クエリ取得部1101と、キー取得部1102と、近似計算部1103と、選択部1104と、計算部1105と、を備える。
クエリ取得部1101は、供給されたデバイス入力データにかかるクエリとしてベクトルを取得する。キー取得部1102は、供給されたデバイス入力データにかかるn個のキーの配列として行列を取得する。
近似計算部1103は、第1計算部として機能するものであって、クエリとしてのd次元ベクトル(第1ベクトル)と、複数の第2ベクトルであるn個のd次元ベクトル(n個のキーの配列としての行列)それぞれとの間の類似度を近似的に計算する。
選択部1104は、近似計算部1103における類似度の計算の結果、複数の第2ベクトルのうち類似度が閾値以上のベクトル(第3ベクトル)であるキーを複数選択する。
計算部1105は、第2計算部として機能するものであって、クエリと、選択部1104で選択されたk個のキーとの類似度を計算する。
ここで、図4は実施形態の演算デバイス110による各種の処理(データの処理方法)の流れを示すフローチャート、図5は実施形態のベクトル行列積の近似的計算の一例を示す図である。ベクトル行列積は、ベクトルをクエリ、行列をキーの配列として、クエリに対応したキーを探索する処理とみなせる。なお、ここでのキーの配列は、d次元のベクトル(キー)がn個とする。
図4に示すように、クエリ取得部1101は、供給されたデバイス入力データにかかるクエリとしてベクトルを取得する(S1)。
また、キー取得部1102は、供給されたデバイス入力データにかかるn個のキーの配列として行列を取得する(S2)。
次いで、近似計算部1103は、クエリとしてのベクトルとキーの配列としての行列との類似度を近似的に計算する(S3)。すなわち、近似計算部1103は、関連キー(類似度)の順位付けを行う。言い換えると、近似計算部1103は、類似度の計算をクエリとしてのd次元ベクトル(第1ベクトル)及びn個のd次元ベクトル(複数の第2ベクトル)のいずれか又は両方を低精度化し、低精度化したベクトルを用いて内積計算を実行することにより類似度を近似的に計算する。
図5に示すように、まず、近似計算部1103は、クエリとしてのd次元ベクトル(1,d)と、n個のd次元ベクトル(キー)の配列としての行列(n,d)とのそれぞれの間の近似内積により、類似度であるベクトル行列積を得る。この際に近似計算部1103は、クエリとキーを低ビットに量子化することで近似する。低ビットに量子化するというのは、例えばもともと単精度浮動小数点の型で表現されえたクエリやキーを、8ビット整数や4ビット整数など低ビットで高速に処理が可能な型に変換するということである。このような近似を行うため、ここで得られるベクトル行列積は、近似的に求めた重み(1,n)である。
次いで、図4に示すように、選択部1104は、類似度が閾値以上に大きくなるk個のキーを選択する(S4)。つまり、図5に示すように、選択部1104は、近似的に求めた重み(1,n)において、内積の値が閾値以上に大きくなった列を少数個(ここでは、k個とする)選択して(k,d)とする。
なお、この閾値は、あらかじめ設定した所定の値で合っても良いし、選択される列の数があらかじめ設定した個数kになるように、内積の値に応じて決めても良い。
次いで、図4に示すように、計算部1105は、k個のキーに対する類似度を計算する(S5)。図5に示すように、計算部1105は、元の行列(n,d)から選択された列を取り出した小さな行列(k,d)に対して、クエリとしてのd次元ベクトル(1,d)とのベクトル行列積を厳密に計算する。ここで得られるベクトル行列積は、重み(1,k)である。
このようにして計算されたベクトル行列積の結果は、加重和をとるための重みとして利用される。
上述のように、本実施形態の演算デバイス110においては、クエリとしてのd次元ベクトル(1,d)に応じて、選択されるd次元のベクトル(キー)が変化することが特徴の一つとなっている。
なお、選択部1104で選択されて計算部1105で利用されるk個のキーについては、近似計算部1103に存在するn個のキーデータそのものの一部が渡されるものに限るものではない。図6は、実施形態の演算デバイス110の機能構成を示す機能ブロック図の変形例である。図6に示すように、キー保存部(保存部)として機能するメモリ70や記憶媒体99にn個のキーに対応するキーデータを保存しておく。このとき、キーデータは、n個のキーを特定可能なインデックスに対応付けて保存されている。選択部1104では、類似度が閾値以上に大きくなる列を示すインデックスがk個選択され、計算部1105では、キー保存部として機能するメモリ70や記憶媒体99から、選択されたk個のインデックスに対応するキーデータを読み出して利用するという実施形態であっても良い。
図7は、比較例のニューラルネットワークにおける処理例を示す図である。図7に示すように、比較例のニューラルネットワークにおいては、ベクトル行列積の結果を重みとして、別の行列の加重和を計算するという処理(注意機構、Attention)を含んでいる。図7に示すように、比較例のニューラルネットワークにおいては、特にnが大きい場合、ベクトル行列積:d×(d,n)の計算量が非常に大きくなってしまう、という課題がある。
しかしながら、比較例のニューラルネットワークにおいては、加重和をとるための重みとして利用されるベクトル行列積の結果の分布は、多くの場合偏り、結果的に無視できる(重みがほぼ0になる)ものが多い。
そこで、本実施形態においては、クエリとしてのベクトルに対応するキー探索とみなせる処理を含むニューラルネットワークにおいて、まず、キー探索計算を近似的に行って候補を絞り込み、その後、絞り込んだ少数のキーを対象に、再度、キー探索計算を行うようにした。これにより、計算を近似的に粗く行うことで、間引き処理を行うことなく近似計算しても高速化できるので、処理時間などのコストを削減することができる。
なお、本実施形態においては、関連キー(類似度)の順位付けを近似内積により求めたが、これに限るものではなく、内積以外の計算法でも良い。例えば、関連キー(類似度)の順位付けを、コサイン類似度、ハミング距離などを用いて行うようにしてもよい。
また、本実施形態においては、近似的に類似度計算を行う専用のプロセッサとしてGPU10を用いるようにしたが、これに限るものではなく、CPU20において近似的な類似度計算を行うようにしてもよい。この場合、CPU20が演算デバイスを実現することになる。また近似の方法として、クエリ及びキーを低ビットに量子化する方法を示したが、その他の近似方法であっても良い。例えばクエリやキーのベクトルの各要素の内値が所定の値よりも小さいものを0として扱うなどの近似によって、内積計算が高速化できる場合にはそのような近似でも効果が得られる。また、抵抗変化型メモリなどを利用したアナログ積和演算器を利用して、近似的な類似度計算を行うようにしてもよい。この場合、抵抗変化型メモリを用いたアナログ積和演算器が演算デバイスを実現することになる。
アナログ積和演算器の例を図8に示す。アナログ積和演算器は、例えば、横方向(行方向)の複数の配線WLと、縦方向(列方向)の複数の配線BLと、それらの交点で端子がWLとBLに接続された抵抗素子と、で構成される。図8ではi-1行目からi+1行目までの3行と、j-1行目からj+1行目までの3列の3行3列を示しているが、これは例えばd行n列の一部分のみを示したものである。ここで、d,nはそれぞれ2以上の整数、iは1以上d-2以下の整数、jは1以上n-2以下の整数である。各WLに入力電圧が印加されると、その電圧値と抵抗素子の抵抗値に応じて電流が生成されて、各BLに電流が流れる。同一BL上に生成された電流は加算され、出力yとなる。これにより、d行の各行に印加される電圧値をd次元ベクトル、d行n列の抵抗素子の抵抗値の逆数(コンダクタンス)を(n,d)の行列としたときに、ベクトル行列積に対応する処理が実行される。
なお、本実施形態の演算デバイス、本実施形態の演算デバイスを含む計算機システム、及び、本実施形態の演算方法を記憶する記憶媒体は、スマートフォン、携帯電話、パーソナルコンピュータ、デジタルカメラ、車載カメラ、監視カメラ、セキュリティシステム、AI機器、システムのライブラリ(データベース)、及び、人工衛星などに適用され得る。
上述の説明において、本実施形態の演算デバイス、計算機システム、及び演算方法が、人間の言語(自然言語)を機械で処理する自然言語処理にかかる計算機システム1におけるニューラルネットワークに適用された例が示されている。但し、本実施形態の演算デバイス及び演算方法は、ニューラルネットワークを含む様々な計算機システム、及び、ニューラルネットワークによる計算処理を実行する様々なデータ処理方法に、適用可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 計算機システム
70 メモリデバイス、保存部
99 メモリデバイス、保存部
100 ニューラルネットワーク
110 演算デバイス
1103 第1計算部
1104 選択部
1105 第2計算部

Claims (7)

  1. ニューラルネットワークに関する演算を実行する演算デバイスにおいて、
    第1ベクトルと、複数の第2ベクトルそれぞれとの間の類似度を近似的に計算する第1計算部と、
    前記第1計算部における前記類似度の計算の結果、前記複数の第2ベクトルのうち前記類似度が閾値以上のベクトルである第3ベクトルを複数選択する選択部と、
    前記第1ベクトルと、前記選択部で選択された複数の第3ベクトルとの類似度を計算する第2計算部と、
    を備える演算デバイス。
  2. 前記第1計算部は、類似度の計算を前記第1ベクトル及び前記複数の第2ベクトルのいずれか又は両方を低精度化し、前記低精度化したベクトルを用いて内積計算を実行することにより前記類似度を近似的に計算する、
    請求項1に記載の演算デバイス。
  3. 前記第1計算部は、抵抗素子に電圧を印加することで、抵抗値と電圧値に応じた電流を生成し、その電流を加算する方法によって積和演算を実行するアナログ積和演算器を利用して、類似度を近似的に計算する、
    請求項1に記載の演算デバイス。
  4. 前記複数の第2ベクトルのデータを保存する保存部を更に備え、
    前記選択部は、前記類似度が閾値以上に大きくなる前記第3ベクトルを複数選択し、選択された複数の前記第3ベクトルに対応するデータを保存部から読み出し、
    前記第2計算部は、読み出されたキーデータを利用して、前記第1ベクトルとの類似度を計算する、
    請求項1ないし3の何れか1項に記載の演算デバイス。
  5. 請求項1ないし4の何れか一項に記載の演算デバイスと、
    前記演算デバイスが演算するデータを記憶するメモリデバイスと、
    を備える計算機システム。
  6. ニューラルネットワークに関する演算を実行する演算デバイスにおける演算方法であって、
    第1ベクトルと、複数の第2ベクトルそれぞれとの間の類似度を近似的に計算することと、
    前記類似度の計算の結果、前記複数の第2ベクトルのうち前記類似度が閾値以上のベクトルである第3ベクトルを複数選択することと、
    前記第1ベクトルと、前記選択された複数の第3ベクトルとの類似度を計算することと、
    を含む演算方法。
  7. 前記計算することは、類似度の計算を前記第1ベクトル及び前記複数の第2ベクトルのいずれか又は両方を低精度化し、前記低精度化したベクトルを用いて内積計算を実行することにより前記類似度を近似的に計算することを含む、
    請求項6に記載の演算方法。
JP2020155200A 2020-09-16 2020-09-16 演算デバイス、計算機システム、及び演算方法 Pending JP2022049141A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020155200A JP2022049141A (ja) 2020-09-16 2020-09-16 演算デバイス、計算機システム、及び演算方法
US17/195,775 US20220083848A1 (en) 2020-09-16 2021-03-09 Arithmetic device, computer system, and arithmetic method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020155200A JP2022049141A (ja) 2020-09-16 2020-09-16 演算デバイス、計算機システム、及び演算方法

Publications (1)

Publication Number Publication Date
JP2022049141A true JP2022049141A (ja) 2022-03-29

Family

ID=80627799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020155200A Pending JP2022049141A (ja) 2020-09-16 2020-09-16 演算デバイス、計算機システム、及び演算方法

Country Status (2)

Country Link
US (1) US20220083848A1 (ja)
JP (1) JP2022049141A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102023107316A1 (de) 2022-03-24 2023-09-28 Mitutoyo Corporation Innendurchmesser-messeinheit, schwimmgelenkmechanismuseinheit und messeinheit
DE102023107307A1 (de) 2022-03-24 2023-09-28 Mitutoyo Corporation Innendurchmesser-messeinheit, schwimmgelenkmechanismuseinheit und messeinheit
DE102023107303A1 (de) 2022-03-24 2023-09-28 Mitutoyo Corporation Innendurchmesser-messeinheit, schwimmgelenkmechanismuseinheit und messeinheit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102023107316A1 (de) 2022-03-24 2023-09-28 Mitutoyo Corporation Innendurchmesser-messeinheit, schwimmgelenkmechanismuseinheit und messeinheit
DE102023107307A1 (de) 2022-03-24 2023-09-28 Mitutoyo Corporation Innendurchmesser-messeinheit, schwimmgelenkmechanismuseinheit und messeinheit
DE102023107303A1 (de) 2022-03-24 2023-09-28 Mitutoyo Corporation Innendurchmesser-messeinheit, schwimmgelenkmechanismuseinheit und messeinheit

Also Published As

Publication number Publication date
US20220083848A1 (en) 2022-03-17

Similar Documents

Publication Publication Date Title
US11593658B2 (en) Processing method and device
US20220083848A1 (en) Arithmetic device, computer system, and arithmetic method
CN105719001B (zh) 使用散列的神经网络中的大规模分类
EP3295381B1 (en) Augmenting neural networks with sparsely-accessed external memory
CN110362723B (zh) 一种题目特征表示方法、装置及存储介质
US11915129B2 (en) Method and system for table retrieval using multimodal deep co-learning with helper query-dependent and query-independent relevance labels
US9852177B1 (en) System and method for generating automated response to an input query received from a user in a human-machine interaction environment
CN111309878B (zh) 检索式问答方法、模型训练方法、服务器及存储介质
WO2020005599A1 (en) Trend prediction based on neural network
CN115795065A (zh) 基于带权哈希码的多媒体数据跨模态检索方法及系统
Rezaei Ravari et al. ML-CK-ELM: An efficient multi-layer extreme learning machine using combined kernels for multi-label classification
KR20190103011A (ko) 거리 기반 딥 러닝
CN110555099B (zh) 计算机执行的、利用神经网络进行语言处理的方法及装置
CN109582911B (zh) 用于实行卷积的计算装置及实行卷积的计算方法
CN116401522A (zh) 一种金融服务动态化推荐方法和装置
CN111788582A (zh) 电子设备及其控制方法
CN114819140A (zh) 模型剪枝方法、装置和计算机设备
CN113569130A (zh) 内容推荐方法、装置、设备及可读存储介质
WO2021218234A1 (en) Method and device for image search, electronic device, and non-transitory computer-readable storage medium
CN113343666B (zh) 评分的置信度的确定方法、装置、设备及存储介质
Zeng et al. Compressing deep neural network for facial landmarks detection
CN113761934B (zh) 一种基于自注意力机制的词向量表示方法及自注意力模型
Dong et al. An optimization method for pruning rates of each layer in CNN based on the GA-SMSM
EP4369258A1 (en) Systems and methods for finding nearest neighbors
US20230161557A1 (en) Compute-in-memory devices and methods of operating the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240402