JP7623398B2 - メモリ要件が低減されたデュアルモーメンタム勾配最適化 - Google Patents

メモリ要件が低減されたデュアルモーメンタム勾配最適化 Download PDF

Info

Publication number
JP7623398B2
JP7623398B2 JP2022561510A JP2022561510A JP7623398B2 JP 7623398 B2 JP7623398 B2 JP 7623398B2 JP 2022561510 A JP2022561510 A JP 2022561510A JP 2022561510 A JP2022561510 A JP 2022561510A JP 7623398 B2 JP7623398 B2 JP 7623398B2
Authority
JP
Japan
Prior art keywords
momentum values
momentum
format
gradient
values
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022561510A
Other languages
English (en)
Other versions
JP2023521975A (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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of JP2023521975A publication Critical patent/JP2023521975A/ja
Application granted granted Critical
Publication of JP7623398B2 publication Critical patent/JP7623398B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/098Distributed learning, e.g. federated learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Neurology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Feedback Control In General (AREA)
  • Advance Control (AREA)

Description

本願発明の一実施例は、例えば、メモリ要件が低減されたデュアルモーメンタム勾配最適化に関する。
[0001]ニューラルネットワークモデルを含む訓練されたモデルは、読解、言語翻訳、画像認識、または音声認識などの複雑なタスクを実行するために使用される。自然言語処理(NLP)、回帰型ニューラルネットワーク(RNN)、畳み込みニューラルネットワーク(CNN)、長短期記憶(LSTM)ニューラルネットワーク、またはゲート回帰ユニット(GRU)に基づくものなどの機械学習サービスは、そのような複雑なタスクを実行するために展開されている。これらのタイプのモデルは様々なアーキテクチャおよび手法を用いて訓練されているが、訓練を行うための基盤となるアーキテクチャおよび手法には引き続き改良が求められている。
本願発明の一実施例は、例えば、メモリ要件が低減されたデュアルモーメンタム勾配最適化に関する。
[0002]一例において、本開示は、勾配オプティマイザと、L層を含むニューラルネットワークモデルに関連するモーメンタム値を記憶するように構成されたメモリと、を含むシステムにおける方法に関し、Lは1より大きい整数である。本方法は、選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応する、モーメンタム値の第1のセットをメモリから取り出すステップと、選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応する、モーメンタム値の第2のセットをメモリから取り出すステップと、を含んでもよい。本方法は、選択された記憶フォーマットを有するモーメンタム値の第1のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第3のセットに変換するステップと、選択された記憶フォーマットを有するモーメンタム値の第2のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第4のセットに変換するステップと、をさらに含んでもよい。本方法は、勾配オプティマイザを用いて、モーメンタム値の第3のセットおよびモーメンタム値の第4のセットを使用して勾配最適化を実行するステップをさらに含み得る。
[0003]別の例では、本開示は、勾配オプティマイザを含むシステムに関する。システムは、L層を含むニューラルネットワークモデルに関連するモーメンタム値を記憶するように構成されたメモリを含んでもよく、Lは1より大きい整数である。本システムは、(1)選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応する、モーメンタム値の第1のセットをメモリから取り出し、選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応する、モーメンタム値の第2のセットをメモリから取り出し、(2)選択された記憶フォーマットを有するモーメンタム値の第1のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第3のセットに変換し、選択された記憶フォーマットを有するモーメンタム値の第2のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第4のセットに変換し、(3)勾配オプティマイザを使用して、モーメンタム値の第3のセットとモーメンタム値の第4のセットを用いて勾配最適化を実行する、ように構成されてもよい。
[0004]さらに別の例では、本開示は、勾配オプティマイザと、L層を含むニューラルネットワークモデルに関連する重みおよびモーメンタム値を記憶するように構成されたメモリと、を含むシステムにおける方法に関し、Lは1より大きい整数である。本方法は、選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応するモーメンタム値の第1のセットをメモリから取り出すステップと、選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応するモーメンタム値の第2のセットをメモリから取り出すステップと、をさらに含んでもよい。本方法は、選択された記憶フォーマットを有するモーメンタム値の第1のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第3のセットに変換するステップと、選択された記憶フォーマットを有するモーメンタム値の第2のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第4のセットに変換するステップと、をさらに含んでもよい。本方法は、勾配オプティマイザを用いて、モーメンタム値の第3のセットおよびモーメンタム値の第4のセットを使用して勾配最適化を実行するステップをさらに含んでもよい。本方法は、勾配最適化の次の反復のためのモーメンタム値の第5のセットおよびモーメンタム値の第6のセットを生成するステップをさらに含んでもよい。本方法は、符号ビットのみを記憶し、モーメンタム値の第5のセットの仮数に関連する所定の数のビットを切り捨てることによって、モーメンタム値の第5のセットを、記憶フォーマットを有するモーメンタム値の第7のセットに変換するステップをさらに含んでもよい。本方法は、符号ビットのみを記憶し、モーメンタム値の第6のセットの仮数に関連する所定の数のビットを切り捨てることによって、モーメンタム値の第6のセットを、記憶フォーマットを有するモーメンタム値の第8のセットに変換するステップをさらに含んでもよい。
[0005]この発明の概要は、詳細な説明において以下でさらに説明される概念の選択を簡略化した形で紹介するために提供される。この発明の概要は、特許請求される主題の重要な特徴または本質的な特徴を特定することを意図しておらず、特許請求される主題の範囲を限定するために使用することも意図していない。
[0006]本開示は、例として説明されており、添付の図によって限定されるものではなく、その中で、同様の参照は同様の要素を示している。図中の要素は、単純化および明確化のために図示されており、必ずしも縮尺通りに描かれていない。
[0007]一実施例によるデュアルモーメンタム勾配オプティマイザ(DMGO)を含む人工知能訓練システム(AITS)を示す図である。 [0008]一実施例によるデュアルモーメンタム勾配オプティマイザ(DMGO)を示す図である。 [0009]圧縮されたモーメンタム値が1仮数ビットの切り捨てから23仮数ビットの切り捨てまで掃引されている重み更新誤差の誤差限界曲線(EB(M))を含むグラフである。 [00010]訓練の精度に対する低減された精度のモーメンタム値の効果を示すシミュレーションされた収束曲線を有するグラフ400を示す図である。 [00011]一実施例による、ハードウェア支援勾配オプティマイザ(HAGO)を含む訓練システムを示す図である。 [00012]一実施例による、デュアルモーメンタム勾配オプティマイザ(DMGO)を含むハードウェア支援勾配オプティマイザ(HAGO)のブロック図である。 [00013]一実施例による、図6のHAGOに関連するタイミング図を示す。 [00014]他の実施例による勾配最適化システムを示す図である。 [00015]一実施例によるデュアルモーメンタム勾配オプティマイザ(DMGO)のための方法のフロー図である。 [00016]一実施例によるデュアルモーメンタム勾配オプティマイザ(DMGO)のための他の方法のフロー図である。
[00017]本開示で開示される例は、メモリ要件が低減されたデュアルモーメンタム勾配最適化に関する。特定の例は、より少ないメモリを必要とする、ニューラルネットワークモデルを含むモデルの分散訓練に関する。特定の例の訓練システムでは、各ワーカ(例えば、GPU、DSP、またはASICアクセラレータ)は、訓練データのサブセット(例えば、ミニバッチ)を取り、勾配を計算し、これは、さらに平均化/低減されてモデルのパラメータ(例えば、重さ)を更新する。重みの更新は、勾配を計算するバックプロパゲーションのステップの後に適用される。一例として、ネットワーク(またはネットワークの一部)の重みに関する損失関数の勾配が計算される。そして、その勾配を最適化手法に与え、勾配を利用して、損失関数を最小化するように重みを更新する。バックプロパゲーションの目標は、実際の出力を目標出力に近づけるようにネットワーク内の各重み(または少なくとも重みの一部)を更新し、それによって各出力ニューロンおよびネットワーク全体としての誤差を最小にすることである。
[00018]特定の例では、訓練されたモデルは、クラウドコンピューティング環境に展開することができる。クラウドコンピューティングは、構成可能なコンピューティングリソースの共有プールへのオンデマンドネットワークアクセスを可能にするためのモデルを指す場合がある。例えば、クラウドコンピューティングは、構成可能なコンピューティングリソースの共有プールへのユビキタスかつ便利なオンデマンドアクセスを提供するために市場で採用され得る。構成可能なコンピューティングリソースの共有プールは、仮想化によって迅速にプロビジョニングされ、管理作業またはサービスプロバイダとのやりとりが少ない状態でリリースされ、その後適宜スケーリングされる。クラウドコンピューティングモデルは、例えば、オンデマンドセルフサービス、幅広いネットワークアクセス、リソースプーリング、迅速な弾力性、測定サービスなど、様々な特性で構成することができる。クラウドコンピューティングモデルは、例えば、ハードウェア・アズ・ア・サービス(「HaaS」)、ソフトウェア・アズ・ア・サービス(「SaaS」)、プラットフォーム・アズ・ア・サービス(「PaaS」)、インフラストラクチャ・アズ・ア・サービス(「IaaS」)などの様々なサービスモデルの公開に使用され得る。クラウドコンピューティングモデルは、プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウドなどの異なる展開モデルを用いて展開することもできる。
[00019]回帰ニューラルネットワーク(RNN)、畳み込みニューラルネットワーク(CNN)、長短期記憶(LSTM)ニューラルネットワーク、またはゲート回帰ユニット(GRU)に基づくものなどの様々な機械学習サービスは、本開示で説明する例を使用して実装され得る。一例では、単語、文章、画像、動画、または他のそのようなコンテンツ/情報などのサービス関連コンテンツまたは他の情報は、ベクトル表現に変換されてもよい。ベクトル表現は、RNN、CNN、LSTM、またはGRUなどの技術に対応し得る。一例では、ニューラルネットワークモデルは、多くの層を含んでもよく、各層は、ニューラルネットワークのオフライン訓練を介して得られた係数または定数の形で表される重みの行列またはベクトルとして符号化されてもよい。
[00020]LSTMを例にとると、LSTMネットワークは、RNN層または他のタイプの層の繰り返しのシーケンスを含んでもよい。LSTMネットワークの各層は、所定の時間ステップにおける入力、例えば、前の時間ステップからの層の状態を消費してもよく、新しいセットの出力または状態を生成してもよい。LSTMを使用する場合、コンテンツの単一のチャンクは、単一のベクトルまたは複数のベクトルに符号化されてもよい。一例として、単語または単語の組み合わせ(例えば、フレーズ、文、または段落)は、単一のベクトルとして符号化されてもよい。各チャンクは、LSTMネットワークの個々の層(例えば、特定の時間ステップ)に符号化されてもよい。LSTM層は、以下のような一組の式を用いて記述されてもよい。
=ρ(Wxixt+Whit-1+Wcit-1+b
=ρ(Wxf+Whft-1+Wcft-1+b
=ft-1tanh(Wxc+Whct-1+b
=ρ(Wxo+Whot-1+Wco+b
=otanh(c
[00021]この例では、各LSTM層の内部で、入力と隠れ状態は、ベクトル演算(例えば、ドット積、内積、またはベクトル加算)と非線形関数(例えば、シグモイド、双曲線、および接線)の組み合わせを使用して処理され得る。ある場合には、最も計算集約的な演算は、密な行列-ベクトルおよび行列-行列の乗算ルーチンを使用して実装され得る、ドット積から生じる可能性がある。一実施例では、ベクトル演算および非線形関数の処理は、並列に実行されてもよい。
[00022]勾配オプティマイザは、人工知能に使用される訓練システムにおける重要な構成要素の1つである。勾配オプティマイザは、次の反復の予測をグランドトゥルースに近づけることができるように、モデルのパラメータ(重み)上の勾配を適用してモデルを更新するように設計されている。本開示の特定の例は、2つの単精度(FP32)モーメンタムがモデルパラメータと共にバッファリングされるデュアルモーメンタム勾配オプティマイザをサポートするAI訓練フレームワークに関する。各更新ステップは、新しいモーメンタム値を計算し、それは、次に、新しい重みを生成するために使用される。新しいモーメンタム値と新しい重みの両方は、次の反復のために保存される。例として、デュアルモーメンタム適応型モーメント推定(Adam)アルゴリズムは、以下の式で表すことができる。
:=β・v+(1-β)・dw
:=β・s+(1-β)・dw
Figure 0007623398000001
ここで、v,sは、2つのモーメンタムであり、wは、モデル重み、dwは、勾配、aは、初期学習率であり、εはより良い数値安定性のために微小な値である。
[00023]有利には、デュアルモーメンタムオプティマイザの使用は、SGD(確率的勾配降下法)のようなゼロ/シングルモーメンタムオプティマイザよりも速く収束するニューラルネットワークモデルを得ることができる。しかし、デュアルモーメンタムオプティマイザを使用すると、モデル重み以外のモーメンタムをバッファリングするために、ゼロ/シングルモーメンタムオプティマイザが必要とするメモリの少なくとも2倍のメモリが必要になる場合がある。この傾向は、特に数百万から数十億のパラメータを含む大規模なモデルで深刻化する可能性がある。オプティマイザがメモリ制限のあるGPU/ASIC上で実行される場合、オプティマイザが要求するメモリ領域は、逆に最大バッチサイズを低減させる。一方、オプティマイザをホストCPUに移すことで、メモリサイズのボトルネックは解消され得る。しかし、メモリ帯域幅のボトルネックは、プロセッサが重み/勾配ペアごとにメモリから2つのFP32モーメンタムを余分にフェッチし、それらを記憶する必要があるので、オプティマイザの速度を低下させる可能性がある。
[00024]さらに、Transformerによる双方向のエンコード表現(BERT)-ラージモデルのようなモデルが、ワーカごとに生成される勾配の1.36ギガバイト(GBs)有することを考えると、モデル全体の勾配のバッファリングは非常に大きな量のメモリを必要とする。このモデルの文脈では、4ワーカの訓練クラスタで勾配をバッファリングするために5.44GBのメモリが必要である。メモリの必要量は、ワーカの数に応じて直線的に増加する。さらに、アダプティブモーメント推定(Adam)のような、勾配ごとに2つの浮動小数点32ビット(FP32)モーメンタム項のバッファリングを必要とするアルゴリズムと併用する場合、各ワーカのメモリ要件は、BERTに必要なメモリの3倍となる可能性がある。
[00025]図1は、一実施例によるデュアルモーメンタム勾配オプティマイザ(DMGO)150を含む人工知能訓練システム(AITS)100を示す図である。AITS100は、メモリ110(例えば、DRAMまたは別のタイプのメモリ)、メモリインターフェース120(例えば、DDRインターフェースまたは別のタイプのインターフェース)、モーメンタムフォーマットコンバータ(MFC)130、別のモーメンタムフォーマットコンバータ(MFC)140、およびDMGO150を含んでもよい。メモリ110は、バス112を介してメモリインターフェース120に結合されてもよい。あるいは、メモリ110は、チップオンチップパッケージ、システムインチップパッケージ、3D-メモリシステム、スタックダイシステムを介してメモリインターフェース120と一体化されてもよい。メモリインターフェース120は、モデル重み(W)がメモリバス122を介してメモリ110からDMGO150に転送され得るように、バス122を介してDMGO150に結合されてもよい。メモリインターフェース120は、バス132および134を介してMFC130に結合されてもよい。バス132は、第1のモーメンタムに関連する記憶フォーマット(例えば、vt_fp8フォーマット)のモーメンタム値をメモリ110からMFC130に転送するために用いられ得る。バス134は、第2のモーメンタムに関連する記憶フォーマット(例えば、st_fp8フォーマット)のモーメンタム値をメモリ110からMFC130に転送するために使用され得る。一例において、記憶フォーマットは、モーメンタム値のための8ビット縮小精度フォーマットに対応してもよい。MFC130は、第1のモーメンタム値および第2のモーメンタム値の両方を処理して、それらのフォーマットを記憶フォーマットからDMGO150に関連付けられた訓練フォーマットに変更するように構成されてもよい。一例では、訓練フォーマットは、完全な32ビット単精度フォーマットに対応してもよい。MFC130は、バス136およびバス138をそれぞれ介して、第1および第2のモーメンタム値をDGO150に送信するようにさらに構成されてもよい。この例では、MFC140は、バス142および144を介してDMGO150に結合されてもよい。MFC140は、バス146および148を介してメモリインターフェース110にさらに結合されてもよい。MFC140は、訓練フォーマットから記憶フォーマットにモーメンタム値を変換してもよい。
[00026]さらに図1を参照すると、AITS100は、性能劣化を導入することなく、Adamのために低減された精度のモーメンタムを使用する新しい方法の実装を可能にすることができる。一例として、デュアルモーメンタムAdamアルゴリズムは、以下の式で表すことができる。
:=β・v+(1-β)・dw
:=β・s+(1-β)・dw
Figure 0007623398000002
ここで、v,sは、2つのモーメンタムであり、wは、モデル重み、dwは、勾配、aは、初期学習率であり、εはより良い数値安定性のために微小な値である。一例では、モーメンタム値の1つ(v)は勾配値の期待値に対応し、モーメンタム値の他の1つ(s)は勾配値の分散の期待値に対応し得る。この例では、完全な32ビットの単精度のモーメンタムを使うのではなく、8ビットだけを使っている。符号に1ビット、モーメンタム{v,s}のダイナミックレンジに7ビットである。この例では、v,sともに(1-β)との乗算により1.0より小さく、ここで、βは1.0に近い値なので、8ビット指数の最上位ビット(MSB)はゼロ定数となり、保存前に安全に破棄することができる。この例では、モーメンタム値の記憶フォーマットは8ビットであるが、計算フォーマットはより高精度を実現するために、やはりより高精度である。図1は、ある方法で配置された、ある数の構成要素を含むAITS100を示しているが、AITS100は、異なる方法で配置された追加のまたはより少ない構成要素を含んでもよい。一例として、MFC130およびMFC140は、チップオンチップパッケージ、システムインチップパッケージ、3D-メモリシステム、スタックダイシステムを介してDMGO150と統合されてもよい。あるいは、MFC130およびMFC140は、(例えば、システムオンチップ(SoC)として)同一チップ上でDMGO150と統合されてもよい。別の例では、メモリ110、メモリインターフェース120、MFC130、MFC140、およびDMGO150の各々は、チップオンチップパッケージ、システムインチップパッケージ、3D-メモリシステム、スタックダイシステムを介して統合されてもよい。
[00027]図2は、一実施例によるデュアルモーメンタム勾配オプティマイザ(DMGO)200を示す図である。DMGO200は、モーメンタム伸長器202および別のモーメンタム伸長器204を含んでもよい。DMGO200は、さらに、モーメンタム圧縮器262と別のモーメンタム圧縮器264を含んでもよい。DMGO200は、デュアルモーメンタム・アダプティブモーメント推定(Adam)アルゴリズムの実装に関連する様々な動作を実行するように構成されたロジックをさらに含んでもよい。この例では、モーメンタム伸長器202およびモーメンタム伸長器204は、図1のMFC130に関して前述したのと同様の機能を提供するために使用され得る。同様に、モーメンタム圧縮器262およびモーメンタム圧縮器264は、図1のMFC140に関して前述したのと同様の機能を実装するために使用され得る。第1のモーメンタム(例えば、vt_fp8)に関連するモーメンタム値は、メモリから取得され、モーメンタム伸長器202に提供されてもよい。第2のモーメンタム(例えば、st_fp8)に関連するモーメンタム値は、メモリから取得され、モーメンタム伸長器204に提供されてもよい。一例では、モーメンタム値は、記憶フォーマット(例えば、8ビット縮小精度フォーマット)を有してもよい。モーメンタム伸長器202は、第1のモーメンタム値を処理して、そのフォーマットを記憶フォーマットからDMGO200に関連する訓練フォーマットに変更するように構成されてもよい。モーメンタム伸長器204は、第2のモーメンタム値を処理して、そのフォーマットを記憶フォーマットからDMGO200に関連付けられた訓練フォーマットに変更するように構成されてもよい。
[00028]図2を引き続き参照すると、DMGO200の一部として含まれるロジックは、加算、乗算、および融合型乗算加算演算などの演算を実行するように構成されたロジックを含んでもよい。ロジックは、デュアルモーメンタム最適化アルゴリズム(例えば、デュアルモーメンタム・アダプティブモーメント推定(Adam)アルゴリズム)を実装するように構成されてもよい。一例として、新しいモーメンタム値(vt_new,st_new)の計算に関するデュアルモーメンタムAdamアルゴリズムに対応する計算は、以下の式で表すことができる。
t_new:=β・vt_fp32+(1-β)・dw
t_new:=β・st_fp32+(1-β)・dw
Figure 0007623398000003
ここで、vt_new,st_newは、新しいモーメンタム値、wはモデル重み、dwは勾配、aは初期学習率、εはより良い数値安定性のために使用される微小な値である。したがって、この例では、モーメンタム伸長器202および204は、それぞれのモーメンタム値(vt_fp8,st_fp8)の記憶フォーマット(例えば、8ビット圧縮フォーマット)を、DMGO200に関連する訓練フォーマット(例えば、32ビット全精度フォーマット)へ変換する。一例として、勾配最適化が実行される前に、モーメンタム伸長器(例えば、モーメンタム伸長器202または204)は、符号ビットと指数の最上位ビット(MSB)との間に1つの「0」ビットを挿入し、指数の最下位ビット(LSB)の直後に23の「0」ビットをパディングすることによって、圧縮された8ビットモーメンタム値を32ビット単精度に戻すように変換するであろう。パディングされるビットは「0」ビットである必要はない。一例では、少なくとも少数のビットが非ゼロビットであってもよい。一例として、2つまたは3つのLSBは非ゼロビットであってよい。
[00029]さらに図2を参照すると、乗算器210および214ならびに加算器212を含むDMGO200に関連するロジックは、新しいモーメンタム値(vt_new)のうちの1つを生成することに関連する計算を実行してもよい。同様に、乗算器216、218、および加算器222を含むDMGO200に関連するロジックは、他の新しいモーメンタム値(st_new)を生成することに関連する計算を実行してもよい。さらに、この例では、新しいモーメンタム値(vt_new,st_new)をメモリに記憶する前に、モーメンタム圧縮器262および264は、新しいモーメンタム値のフォーマットを訓練フォーマットから記憶フォーマットに変換する。新しいモーメンタム値(vtc_new,stc_new)は、図2において8ビット記憶フォーマット値として示されている。この例では、モーメンタム圧縮器262および264の各々は、モーメンタム値に関連する指数の最上位ビット(MSB)を除去し、23の仮数ビットのすべてを切り捨てて、32ビット全精度のモーメンタム値(vt_new,st_new)を8ビット圧縮モーメンタム値(vtc_new,stc_new)に変換するように構成してもよい。これらはメモリに記憶されることになる。また、23ビット未満の仮数ビットを切り捨ててもよい。有利には、モーメンタム値の圧縮により、モーメンタム値を記憶するために必要なバッファサイズを4倍縮小することができる。さらに、最下位ビット(LSB)切り捨ての使用は、誤差が互いにキャンセルされ得るように同じ丸め誤差方向を導入することによって、訓練性能の損失なしに精度を低下させることができる。
[00030]引き続き図2を参照すると、DMGO200は、新しい重み値(例えば、w_new)を生成するように構成されたロジックをさらに含んでもよい。この例では、このロジックは、乗算器232および234、加算器242、逆数平方根(RSQRT)246、および融合型乗算器(FMA)250を含んでもよい。図2は、ある方法で配置されたある数の構成要素を含むDMGO200を示すが、DMGO200は、異なる方法で配置された追加のまたはより少ない構成要素を含んでもよい。
[00031]モーメンタム圧縮器によってモーメンタムが圧縮されるとき、その精密ビットは、新しいモーメンタム値(例えば、それぞれ、vtc_new,stc_new)に関してδおよびδの相対誤差を導入するように切り捨てられる。これを考慮すると、勾配最適化方程式は次のように書き直すことができる。
Figure 0007623398000004
32ビット単精度の場合、|δ|≦2m-24,|δ|≦2m-24となり、mは切り捨てた精度ビット数である。この例では、mが大きすぎなければ、1-δ=1-δ≒1-δを安全に近似できる。この誤差限界は、切り捨てられたmビットがすべて「1」である場合にのみ達成され、このケースは実際のアプリケーションではほとんど起こり得ない。それでも、この極端なケースが起こったとしても、瞬間的なピーク誤差は全体の性能に悪影響を及ぼし得ない。両モーメンタムを切り捨てた後の更新された重みの相対誤差は、
Figure 0007623398000005
と表すことができる。どのようなδ∈[0,1]でも、δの値が小さいと
Figure 0007623398000006
は1-δよりも1に近くなる。このことは、両モーメンタムの精度を下げても、更新されたパラメータの精度は線形には下がらないことを示している。この「誤差に対する平方根」の効果は、切り捨てによる「精度損失」の一部を補償する。
[00032]図3は、圧縮されたモーメンタム値が仮数1ビットの切り捨てから仮数23ビットの切り捨てまで掃引されている状態での重み更新誤差の誤差限界曲線(EB(M))を示すグラフ300である。グラフ300に示すように、この例では、切り捨てられた仮数ビットの数が16より少ない場合、完全な単精度(FP32)モーメンタム値と比較して、誤差限界値はゼロに近い。この例では、切り捨てられた仮数ビットの数が17を超えると、誤差限界は急速に増加し、仮数ビットのすべてが切り捨てられたときに、最大誤差限界は0.13である。
[00033]図4は、精度を下げたモーメンタム値が訓練の精度に及ぼす影響を示すシミュレーション収束曲線410、420、および420を有するグラフ400を示す。一例として、シミュレーション収束曲線410はモーメンタム値の1ビット仮数に対応し、シミュレーション収束曲線420はモーメンタム値の4ビット仮数に対応し、シミュレーション収束曲線430はモーメンタム値の24ビット仮数に対応する。シミュレーション収束曲線から明らかなように、モーメンタム値の仮数ビットの切り捨ては、訓練の精度に関して性能を低下させない。しかし、精度を下げたモーメンタム値はメモリフットプリントの少なくとも50%を節約するので、メモリを読み出すためのサイクルの半分だけが必要となる場合がある。
[00034]本開示の一部として説明された技術は、ハードウェアおよび/またはソフトウェアの組み合わせを使用して実装されてもよい。特定の例では、図2のDGMO200は、図5に示されるような訓練システム500の一部として展開されてもよい。この例では、DGMO200は、一例にしたがって、モデルを訓練するための、ハードウェア支援勾配オプティマイザ(デュアルモーメンタム)550(HAGOと呼ばれる)の一部として含まれてもよい。勾配最適化システム500は、HAGO550に高速バスブリッジ520を介して結合された複数のワーカ(例えば、ワーカ_1 502、ワーカ_2 504、およびワーカ_N 506)を含んでもよい。ワーカ(例えば、ワーカ_1 502、ワーカ_2 504、およびワーカ_N 506)の各々は、任意の数のグラフィックス処理ユニット(GPU)、コンピュータ処理ユニット(CPU)、メモリ(例えば。SRAMまたは他のタイプのメモリ)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、消去可能および/または複合プログラマブル論理デバイス(PLD)、プログラマブルアレイロジック(PAL)デバイス、または汎用アレイロジック(GAL)デバイスを使用して実装されてもよい。各ワーカは、勾配最適化システム500を使用して訓練されているニューラルネットワークモデルの全体コピーを担持してもよい。各ワーカは、ニューラルネットワークモデルのコピー全体を担持してもよいが、各ワーカは、モデルに関連付けられた訓練データ(例えば、分類用の画像または他のデータサンプル)のサブセットに対してのみ動作してもよい。各ワーカは、データに対してフォワードパスを実行して誤差を計算し、その後、バックワードパスを実行して各パラメータ(例えば、各重み)に対する勾配を計算してもよい。勾配最適化システム500は、高速バスブリッジ520にバス528を介して結合されたホスト560をさらに含んでもよい。
[00035]図5を引き続き参照すると、一例では、高速バスブリッジ520は、ピーシーアイエクスプレス(PCIe)ブリッジとして実装されてもよい。ワーカ_1 502は、PCIeリンク510を介して高速バスブリッジ520に接続されてもよい。ワーカ_2 504は、PCIeリンク512を介して高速バスブリッジ520に接続されてもよい。ワーカ_N 506は、PCIeリンク514を介して高速バスブリッジ520に接続されてもよい。HAGO550は、バスリンク522および524を介して高速バスブリッジ520に連結されてもよい。また、他のタイプのバスブリッジおよびバスリンクが使用され得る。さらに、バスブリッジの代わりに、スイッチングファブリックが使用され得る。各ワーカは、訓練データのサブセット(例えば、ミニバッチ)上で勾配を計算し、高速バスブリッジ520を介して更新された勾配をHAGO550に提供してもよい。HAGO550は、各ワーカ(例えば、ワーカ_1 502、ワーカ_2 504、およびワーカ_N 506)から収集した勾配に対して、縮小および最適化を実行してもよい。HAGO550は、データバーストで動作してもよく、一例では、各バーストは、一定数の受信勾配で構成されてもよい。現在の勾配バーストは、前の勾配バーストがその対応する重みと共に最適化される間、バッファリングされてもよい。図5は、ある方法で配置された、ある数の構成要素を含む勾配最適化システム500を示すが、勾配最適化システム500は、異なる方法で配置された追加のまたはより少ない構成要素を含んでもよい。
[00036]図6は、一実施例による、デュアルモーメンタム勾配オプティマイザを含むHAGO600のブロック図である。一実施例では、図5のHAGO550は、図6のHAGO600として実装されてもよい。HAGO600は、高速バスを介してワーカから更新された勾配を受信してもよい。図6の例では、HAGO600に4つのワーカが結合されていることを想定している。ワーカの1つからの更新された勾配(DW1)は、先入れ先出しブロック(例えば、GFIFO_1 602)を介して受信されてもよい。別のワーカからの更新された勾配(DW2)は、別の先入れ先出しブロック(例えば、GFIFO_2 604)を介して受信されてもよい。別のワーカからの更新された勾配(DW3)は、別の先入れ先出しブロック(例えば、GFIFO_3 606)を介して受信されてもよい。別のワーカからの更新された勾配(DW4)は、別の先入れ先出しブロック(例えば、GFIFO_4 608)を介して受信されてもよい。FIFOは、単一のマルチエントリーFIFOまたは複数のシングルエントリーFIFOとして実装されてもよい。
[00037]図6を引き続き参照すると、HAGO600は、浮動小数点平均化ブロック(例えば、FP-AVGブロック620)をさらに含んでもよい。FP-AVGブロック620は、先入れ先出しブロックからバッファリングされた更新された勾配を受信してもよい。一例として、FP-AVGブロック620は、GFIFO_1 602からバッファリングされた更新された勾配(BDW1)を受信してもよい。FP-AVGブロック620はまた、GFIFO_2 604からバッファリングされた更新された勾配(BDW2)を受信してもよい。FP-AVGブロック620はまた、GFIFO_3 606からバッファリングされた更新された勾配(BDW3)を受信してもよい。FP-AVGブロック620はまた、GFIFO_4 608からバッファリングされた更新された勾配(BDW4)を受信してもよい。FP-AVGブロック620は、受信した更新された勾配に対して縮小を実行してもよい。この例では、縮小操作は、受信した勾配を平均化し、出力としてDW_AVGを生成することを含んでもよい。縮小操作は、平均化に限定されない。加算やスケーリングされた加算など、他の演算を使用して縮小を実行してもよい。FP-AVGブロック620からの出力は、図1および図2に関して先に説明したものなどの勾配最適化アルゴリズムを実装するために浮動小数点演算を行う勾配最適化データパス(GODP)ブロック650に提供されてもよい。一例では、FP-AVGブロック620およびGODPブロック650は、FPGAの一部として実装されてもよい。
[00038]さらに図6を参照すると、重み(W)およびオプションのモーメンタム(M)のマスターコピーは、メモリ660に記憶されてもよい。一例では、メモリ660は、ダブルデータレート(DDR)ダイナミック・ランダム・アクセス・メモリ(DRAM)を使用して実装されてもよい。メモリ660は、メモリインターフェース662を介して、先入れ先出しブロック(例えば、PFIFOブロック670)に結合されてもよい。メモリインターフェース662は、DDRインターフェースであってもよい。図6に示すように、モデルの重み(W)は、制御有限状態マシン(FSM)(例えば、制御FSM640)の制御下で、PFIFO670にロードされてもよい。さらに、メモリ660は、メモリインターフェース662を介してモーメンタムフォーマット変換器(MFC)684に結合されてもよい。MFC684は、図1のMFC130に関して先に説明したのと同様の機能性を提供してもよい。MFC684の出力は、PFIFO670(または別のFIFO)に結合されてもよい。
[00039]一例では、同時に、制御FSM640は、(1)各ワーカがそれぞれのローカルに計算された勾配(例えば、DW1、DW2、DW3、およびDW4)をそれぞれのGFIFO(例えば、GFIFO_1 602、GFIFO_2 604、GFIFO_3 606、およびGFIFO_4 608)に送信すること、および(2)メモリインターフェース662が、メモリ660からPFIFO670へ、オプションのモーメンタムとともに、同じ数のパラメータ(例えば、重み(W))をフェッチすること、の両方を可能にする。したがって、この例では、制御FSM640は、単一のバーストサイクル中にGFIFOに注入される勾配の数と同じ数の重みをPFIFO670にフェッチするようにメモリインターフェース662を制御する。これらのFIFOのそれぞれがバーストサイズに達すると、これらのそれぞれの読み取りポートが制御FSM640によって起動され、それぞれのFIFOの内容を単一サイクルのレイテンシで出力する。この例では、制御FSM640は、これらのバッファからのデータが同じレイテンシでフラッシュされるように、PFIFO670およびGFIFOからの重みの読み出しを可能にする。このように、データの読み出しは完全に調整される。
[00040]図6を引き続き参照すると、この実装態様は、それぞれのFIFOからの4つの勾配出力(例えば、BDW1、BDW2、BDW3、およびBDW4)が同じ位置合わせインデックスを有することを確実にする。FP-AVGブロック620は、次に、これらの勾配(例えば、BDW1、BDW2、BDW3、BDW4)の平均を計算して、縮小勾配(例えば、DW_AVG)を生成し、これは次に、GODPブロック650によってバッファされた重みおよびモーメンタムとともに処理される。この例では、GODPブロック650の出力は、新しい重み(NW)および新しいモーメンタム(NM)の2つの部分を含んでもよく、これらは両方ともメモリインターフェース662を介してメモリ660に書き戻される。新しいモーメンタム値は、図1のMFC140に関して前述したのと同様の機能を実装することができるMFC682に提供されてもよい。したがって、この態様では、圧縮されたモーメンタム値は、より少ない記憶空間を必要とする記憶フォーマットで記憶されてもよい。
[00041]さらに、同時に新しい重み(NW)が、新しい重みをワーカに送り返す送信FIFO(TXFIFO)に注入される。この実施例では、制御FSM640は、図5の高速バスブリッジ520を介したワーカへの重みの流れを制御してもよい。一例として、制御/状態レジスタ630は、様々な動作に関連するタイミングを指定するために使用され得る。さらに、制御/状態レジスタ630は、勾配オプティマイザのハイパーパラメータ(例えば、学習率)を構成するために使用され得る。
[00042]それぞれのGFIFOからの読み出しおよび重みの更新の間、勾配の次のバーストは、それぞれのGFIFOに書き込まれる。同様に、次の重みのセットおよびモーメンタムも、PFIFO670からの読み出しおよび重み更新の間、メモリ660からPFIFO670に(例えば、MFC684を介して)フェッチされる。この例では、メモリ660は、読み出しと書き込みの動作の両方によって共有される単一のデータポートだけをサポートするので、PFIFO670のデータ幅は、各GFIFOのデータ幅の2倍であるように構成される。このようにして、この例では、最初のものと最後のものを除くすべてのデータバーストは、勾配の受信と新しい重みの送信との間にオーバーラップを有することになる。
[00043]さらに図6を参照すると、HAGO600の動作の特定の態様は、制御FSM640とともに制御/状態レジスタを使用して制御され得る。以下の表1は、制御/状態レジスタ630の例示的な内容を示す。
Figure 0007623398000007
[00044]表1に示すように、ctrl_optモードレジスタは、任意のデュアルモーメンタム最適化アルゴリズムであってよい最適化アルゴリズムタイプを指定することを可能にする。ctrl_バースト_サイズレジスタは、各バーストサイクルに関連するバーストサイズを選択することができる。この例では、バーストサイズ(例えば、勾配の数で指定される)は、256勾配、512勾配、1024勾配、2048勾配、または4096勾配であり得る。ctrl_param_numレジスタは、モデルのパラメータのサイズを指定することができる。ctrl_init_lrレジスタは、モデルの初期学習率を指定することができる。一実施例では、初期学習率は、モデルのステップサイズに関連し得る。先に説明したように、一実施例では、最適化アルゴリズムは、以下の式で表すことができるデュアルモーメンタムアダムアルゴリズムであってもよい。
:=β・v+(1-β)・dw
:=β・s+(1-β)・dw
Figure 0007623398000008
ここで、v,sは、2つのモーメンタムであり、wは、モデル重み、dwは、勾配、aは、初期学習率であり、εはより良い数値安定性のために微小な値である。ctrl_beta1レジスタは、重みが更新される速度に関連する加速度を制御することができるモーメンタムの係数を指定することができる。ctrl_beta2レジスタは、重みが更新される速度に関連する加速度をさらに制御することができる第2のモーメンタムの係数を指定することを可能にする。ctrl_is_fp16レジスタは、入力勾配のフォーマットがFP16フォーマットの場合に設定される。表1は、制御/状態レジスタ630の一部として含まれる特定のレジスタのセットを示しているが、追加のまたはより少ないレジスタがHAGO600と共に使用され得る。さらに、制御/状態レジスタ630に含まれる制御情報の少なくとも一部または全部は、HAGO600を用いた勾配最適化に関連する命令に関連するフィールドまたはオペランドを介して指定されてもよい。図6は、ある方法で配置されたある数の構成要素を含むHAGO600を示すが、HAGO600は、異なる方法で配置された追加のまたはより少ない構成要素を含んでもよい。一例として、5つ以上のワーカがHAGO600に結合されてもよい。
[00045]図7は、一実施例による、図6のHAGO600に関連するタイミング図700を示す。タイミング図700は、HAGO600の動作をバーストの観点で説明する。タイミング図700は、K+1バーストサイクルを示し、ここで、Kは正の整数である。最初のバーストサイクル(バースト_1)および最後のバーストサイクル(バースト_K+1)は、他のバーストサイクル:バースト_2サイクルからバースト_Kサイクルまで、よりも少ない重複を含む。バースト_1サイクルは、ワーカからの勾配(例えば、DW1)の送信開始からFIFO(例えば、図6のGFIFO_1 602)への勾配の注入までに関わるタイミング(GW)をFIFOのバーストサイズまで含んでいる。複数のワーカ(例えば、図5のワーカ_1 502、ワーカ_2 504、ワーカ_N 506)は、バースト_1サイクルの間に、FIFOのバーストサイズまでFIFOに勾配を注入することができる。バースト_1サイクルはさらに、図6のPFIFO670への重みの注入までの、メモリ(例えば、図6のメモリ660)に記憶されたパラメータ(例えば、モデルの重み)の転送の開始に関与するタイミング(PW)を含む。図7に示すように、重みの転送は、メモリ(例えば、図6のメモリ660)の読み出しレイテンシ(LDDR)に影響される。したがって、バースト_1サイクルにおいて、HAGO600は、FIFOへの勾配の注入と、メモリからの重みのフェッチという2つの動作を重複して行う。
[00046]図7を引き続き参照すると、バースト_2サイクルは、FIFO(例えば、図6のGFIFO_1 602)への勾配の注入までのワーカからの勾配の次のセット(例えば、DW1)の送信開始に関わるタイミング(GW)をFIFOのバーストサイズまで含んでいる。複数のワーカ(例えば、図5のワーカ_1 502、ワーカ_2 504、ワーカ_N 506)は、バースト_2サイクル中にFIFOのバーストサイズまで勾配をFIFOに注入することができる。勾配の次のセットがFIFOに注入されている間、バースト_2サイクルは、FP-AVGブロック620による勾配の平均の計算、およびGODPブロック650によるバッファされたモーメンタムおよびバッファされた重み(BM,BW)と共に縮小勾配の処理、を含む計算サイクルをも含む。この操作の一部として関与するタイミングは、図7においてGPRとしてラベル付けされている。GODPブロック650から出力された新しいモーメンタムおよび新しい重み(NM、NW)をメモリ660に書き戻すことに関与するタイミングは、NPとしてラベル付けされる。バースト_2サイクルは、さらに、TXFIFO680を介したワーカへの新しい重みの送信に関与するタイミングを重複して含む。図7のタイミング図700に示すように、この動作は、GODPブロック650の処理レイテンシ(LDP)によって影響を受ける。バースト_2サイクルはさらに、メモリ(例えば、図6のメモリ660)に記憶されたパラメータ(例えば、モデルの重み)の転送の開始から、図6のPFIFO670への重みの注入までに関わるタイミング(PW)を含む。図7に示すように、重みの転送は、メモリ(例えば、図6のメモリ660)の読み出しレイテンシ(LDDR)に影響される。したがって、バースト_2サイクルにおいて、HAGO600は、勾配最適化の一部として、(1)FIFO(例えば、GFIFOのいずれか)への勾配の注入、(2)GFIFOおよびPFIFOからの勾配および重みの読み出し、(3)メモリへの新しい重みおよび新しいモーメンタムの書き戻し、(4)ワーカに対する重みの転送、の4つの動作を少なくとも部分的にオーバーラップさせている。
[00047]さらに図7を参照すると、制御FSM640は、連続するバーストサイクルがHAGO600を通る勾配のストリーミングをもたらすように、ストリーミング様式でHAGO600を動作させ続ける。したがって、バースト_3サイクルは、勾配の追加のストリーミングと、勾配最適化の一部として、(1)FIFO(例えば、GFIFOのいずれか)への勾配の注入、(2)GFIFOおよびPFIFOからの勾配および重みの読み出し、(3)メモリへの新しい重みおよび新しいモーメンタムの書き戻し、(4)ワーカに対する新しい重みの転送、の4つの動作の少なくとも部分的なオーバーラップを含む複数の動作のオーバーラップ、を含む。同様に、バースト_Kサイクルは、勾配最適化の一部として、(1)FIFO(例えば、GFIFOのいずれか)への勾配の注入、(2)GFIFOおよびPFIFOからの勾配および重みの読み出し、(3)メモリへの新しい重みおよび新しいモーメンタムの書き戻し、(4)ワーカに対する新しい重みの転送、の4つの動作の少なくとも部分的なオーバーラップを含む。バースト_K+1サイクルは最後のバーストサイクルに対応する。したがって、バースト_K+1サイクルは、他のバーストサイクル:バースト_2サイクルからバースト_Kサイクルまで、に比べてオーバーラップが少ない。バースト_K+1サイクルの一部として、(1)GFIFOおよびPFIFOからの勾配と重みの読み出し、(2)新しい重みと新しいモーメンタムのメモリへの書き戻し、(3)新しい重みのワーカへの送信、の3動作がオーバーラップする。
[00048]図7を引き続き参照すると、各単一バーストサイクル中に、HAGO700は勾配バーストで動作してもよく、各勾配バーストは、固定数の勾配を含んでもよい。単一のバーストサイクル中に動作される勾配の数は、図6に関して先に説明したように、制御/状態レジスタ630を介して構成され得るバーストサイズに対応する。
[00049]図8は、別の実施例による、デュアルモーメンタム勾配オプティマイザ(DMGO)のソフトウェアバージョンを含む、勾配最適化システム800を示す図である。この例では、DMGO(例えば、図2のDMGO200)に対応するロジックの実装は、プロセッサによって実行されるとき、メモリに記憶された命令を使用して実装されてもよい。勾配最適化システム800は、プロセッサ802、I/Oコンポーネント804、メモリ806、プレゼンテーションコンポーネント808、センサ810、データベース812、ネットワーキングインターフェース814、およびI/Oポート816を含み、これらはバス820を介して相互接続されても良い。プロセッサ802は、メモリ806に記憶された命令を実行し得る。I/Oコンポーネント804は、キーボード、マウス、音声認識プロセッサ、またはタッチスクリーンなどのコンポーネントを含み得る。メモリ806は、不揮発性ストレージまたは揮発性ストレージ(例えば、フラッシュメモリ、DRAM、SRAM、または他のタイプのメモリ)の任意の組み合わせであってよい。DMGOに関連する方法に対応する命令は、メモリ806または別のメモリに記憶されてもよい。これらの命令は、プロセッサ802、または他のプロセッサ(例えば、他のCPUまたはGPU)によって実行されるとき、これらの方法に関連する機能を提供し得る。一例として、右シフト/左シフト命令およびパッキング/アンパッキング命令を含む命令は、モーメンタム値を圧縮または伸長するために使用され得る。以下の表2は、プロセッサ802によって実行されると、DMGO(例えば、図2のDMGO200)に対応する機能性を実行し得る、命令の例示的なセットを示す。
Figure 0007623398000009
[00050]さらに図8を参照すると、プレゼンテーション構成要素808は、ディスプレイ、ホログラフィックデバイス、または他のプレゼンテーションデバイスを含んでもよい。ディスプレイは、LCD、LED、または他のタイプのディスプレイのような、任意のタイプのディスプレイであってもよい。データベース812は、本明細書に記載される方法の実行のために必要に応じてデータを記憶するために使用され得る。データベース812は、分散型データベースの集合体として、または単一データベースとして実装されてもよい。ネットワークインターフェース814は、イーサネット、セルラー無線、ブルートゥース(登録商標)無線、UWB無線、または他のタイプの無線若しくは有線通信インターフェースなどの通信インターフェースを含んでもよい。I/Oポート816は、イーサネットポート、光ファイバーポート、無線ポート、または他の通信ポートを含んでもよい。図8は、ある方法で配置および結合されたある数の構成要素を含むものとして勾配最適化システム800を示しているが、異なる方法で配置および結合された、より少ないまたは追加の構成要素を含むことができる。さらに、システム800に関連する機能性は、必要に応じて分散されてもよい。
[00051]図9は、一実施例による勾配最適化のための方法のフロー図900を示す。この方法は、図1のAITS100、図2のDMGO200、または図8の勾配最適化システム800を使用して実行されてもよい。したがって、DMGO200がHAGO600の一部として実装される場合の例として、制御FSM640から受信した制御信号に基づいて、この方法に対応するステップが実行されてもよい。さらに、図6には示されていないが、この方法の一部として実行される動作に関連するタイミングを同期させるために、クロック信号が使用され得る。あるいは、メモリ806に記憶された命令は、プロセッサ802によって実行されるとき、この方法に関連するステップを実行するために使用され得る。さらに、DMGO200および勾配最適化システム800の修正された組み合わせも使用され得る。したがって、一例として、モーメンタム圧縮および伸長ステップは、メモリに記憶された命令を使用して実行されてもよいが、勾配最適化は、DMGO200に関連するハードウェアロジックを使用して実行されてもよい。ステップ910は、選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応する、モーメンタム値の第1のセットをメモリから取り出すステップと、選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応する、モーメンタム値の第2のセットをメモリから取り出すステップと、を含んでもよい。先に説明したように、記憶フォーマットは、縮小精度フォーマットに対応してもよい。
[00052]ステップ920は、選択された記憶フォーマットを有するモーメンタム値の第1のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第3のセットに変換するステップと、選択された記憶フォーマットを有するモーメンタム値の第2のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第4のセットに変換するステップと、を含んでもよい。先に説明したように、このステップは、記憶フォーマットにおけるモーメンタム値に余分なゼロビットをパディングすることによってモーメンタム値を伸長することを含んでもよい。追加される余分なゼロビットは、モーメンタム値の圧縮の一部として切り捨てられたビットの数に依存してもよい。
[00053]ステップ930は、勾配オプティマイザを用いて、モーメンタム値の第3のセットおよびモーメンタム値の第4のセットを使用して勾配最適化を実行するステップを含み得る。勾配最適化に関連する計算の後、モーメンタム値は、記憶フォーマットに変換されてもよい。先に説明したように、このステップは、単精度フォーマットのモーメンタム値の符号ビットと7つの最上位ビット(MSB)のみを記憶するステップを含んでもよい。図9は、ある順序で実行されるある数のステップを説明しているが、異なる順序の追加のステップまたはより少ないステップが実行されてもよい。
[00054]図10は、一実施例による勾配最適化のための方法のフロー図1000を示す。この方法は、図1のAITS100、図2のDMGO200、または図8の勾配最適化システム800を使用して実行されてもよい。したがって、DMGO200がHAGO600の一部として実装される場合の例として、制御FSM640から受信した制御信号に基づいて、この方法に対応するステップが実行されてもよい。さらに、図6には示されていないが、この方法の一部として実行される動作に関連するタイミングを同期させるために、クロック信号が使用され得る。あるいは、メモリ806に記憶された命令は、プロセッサ802によって実行されるとき、この方法に関連するステップを実行するために使用され得る。さらに、DMGO200および勾配最適化システム800の修正された組み合わせも使用され得る。したがって、一例として、モーメンタム圧縮および伸長ステップは、メモリに記憶された命令を使用して実行されてもよいが、勾配最適化は、DMGO200に関連するハードウェアロジックを使用して実行されてもよい。ステップ1010は、選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応するモーメンタム値の第1のセットをメモリから取り出すステップと、選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応するモーメンタム値の第2のセットをメモリから取り出すステップと、を含んでもよい。先に説明したように、記憶フォーマットは、縮小精度フォーマットに対応してもよい。
[00055]ステップ1020は、選択された記憶フォーマットを有するモーメンタム値の第1のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第3のセットに変換するステップと、選択された記憶フォーマットを有するモーメンタム値の第2のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第4のセットに変換するステップと、を含んでもよい。先に説明したように、このステップは、記憶フォーマットにおけるモーメンタム値に余分なゼロビットをパディングすることによってモーメンタム値を伸長するステップを含んでもよい。追加される余分なゼロビットは、モーメンタム値の圧縮の一部として切り捨てられたビットの数に依存してもよい。先に説明したように、このステップは、プロセッサ(例えば、図8のプロセッサ802)によって実行される場合、(例えば、図8のメモリ806)に記憶された命令を使用して実行されてもよい。代替的に、このステップは、図2のDMGO200に関連するロジックを使用して実行されてもよい。
[00056]ステップ1030は、勾配オプティマイザを用いて、モーメンタム値の第3のセットおよびモーメンタム値の第4のセットを使用して勾配最適化を実行するステップを含み得る。先に説明したように、このステップは、プロセッサ(例えば、図8のプロセッサ802)によって実行される場合、(例えば、図8のメモリ806)に記憶された命令を使用して実行されてもよい。代替的に、このステップは、図2のDMGO200に関連するロジックを使用して実行されてもよい。
[00057]ステップ1040は、勾配最適化の次の反復のためのモーメンタム値の第5のセットおよびモーメンタム値の第6のセットを生成するステップを含んでもよい。先に説明したように、このステップは、プロセッサ(例えば、図8のプロセッサ802)によって実行される場合、(例えば、図8のメモリ806)に記憶された命令を使用して実行されてもよい。代替的に、このステップは、図2のDMGO200に関連するロジックを使用して実行されてもよい。
[00058]ステップ1050は、符号ビットのみを記憶し、モーメンタム値の第5のセットの仮数に関連する所定の数のビットを切り捨てることによって、モーメンタム値の第5のセットを、記憶フォーマットを有するモーメンタム値の第7のセットに変換するステップを含んでもよい。先に説明したように、このステップは、単精度フォーマットのモーメンタム値の符号ビットと7つの最上位ビット(MSB)のみを記憶するステップを含んでもよい。先に説明したように、このステップは、プロセッサ(例えば、図8のプロセッサ802)によって実行される場合、(例えば、図8のメモリ806)に記憶された命令を使用して実行されてもよい。代替的に、このステップは、図2のDMGO200に関連するロジックを使用して実行されてもよい。
[00059]ステップ1060は、符号ビットのみを記憶し、モーメンタム値の第6のセットの仮数に関連する所定の数のビットを切り捨てることによって、モーメンタム値の第6のセットを、記憶フォーマットを有するモーメンタム値の第8のセットに変換するステップを含んでもよい。先に説明したように、このステップは、単精度フォーマットのモーメンタム値の符号ビットと7つの最上位ビット(MSB)のみを記憶するステップを含んでもよい。先に説明したように、このステップは、プロセッサ(例えば、図8のプロセッサ802)によって実行される場合、(例えば、図8のメモリ806)に記憶された命令を使用して実行されてもよい。代替的に、このステップは、図2のDMGO200に関連するロジックを使用して実行されてもよい。図10は、ある順序で実行されるある数のステップを説明しているが、異なる順序で追加のまたはより少ないステップが実行されてもよい。
[00060]結論として、本開示は、勾配オプティマイザと、L層を含むニューラルネットワークモデルに関連するモーメンタム値を記憶するように構成されたメモリと、を含むシステムにおける方法に関し、Lは1より大きい整数である。本方法は、選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応する、モーメンタム値の第1のセットをメモリから取り出すステップと、選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応する、モーメンタム値の第2のセットをメモリから取り出すステップと、を含んでもよい。本方法は、選択された記憶フォーマットを有するモーメンタム値の第1のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第3のセットに変換するステップと、選択された記憶フォーマットを有するモーメンタム値の第2のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第4のセットに変換するステップと、をさらに含んでもよい。本方法は、勾配オプティマイザを用いて、モーメンタム値の第3のセットおよびモーメンタム値の第4のセットを使用して勾配最適化を実行するステップをさらに含み得る。
[00061]選択された記憶フォーマットは、縮小された単精度フォーマットを含んでもよい。訓練フォーマットは、単精度フォーマットまたは倍精度フォーマットを含んでもよい。
[00062]選択された記憶フォーマットを有するモーメンタム値の第1のセットを、訓練フォーマットを有するモーメンタム値の第3のセットに変換するステップは、単精度フォーマットのモーメンタム値を形成するために余分なゼロビットをパディングするステップを含んでもよい。本方法は、勾配最適化の次の反復のためのモーメンタム値の第5のセットおよびモーメンタム値の第6のセットを生成するステップと、モーメンタム値の第5のセットおよびモーメンタム値の第6のセットのそれぞれを記憶する前に、それぞれのモーメンタム値のそれぞれに関連する符号ビットおよび7つの最上位ビットのみを記憶することによってモーメンタム値の第5のセットおよびモーメンタム値の第6のセットのそれぞれを記憶フォーマットへ変換するステップと、をさらに含むことができる。
[00063]勾配最適化を実行するステップは、アダプティブモーメンタム推定アルゴリズムを実装するステップを含む。勾配オプティマイザは、フィールドプログラマブルゲートアレイ(FPGA)を使用して実装されてもよく、勾配オプティマイザは、連続するバーストサイクルが勾配オプティマイザを通る勾配のストリーミングをもたらすように、バーストモードで動作するように構成されてもよい。
[00064]別の例では、本開示は、勾配オプティマイザを含むシステムに関する。システムは、L層を含むニューラルネットワークモデルに関連するモーメンタム値を記憶するように構成されたメモリを含んでもよく、Lは1より大きい整数である。本システムは、(1)選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応する、モーメンタム値の第1のセットをメモリから取り出し、選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応する、モーメンタム値の第2のセットをメモリから取り出し、(2)選択された記憶フォーマットを有するモーメンタム値の第1のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第3のセットに変換し、選択された記憶フォーマットを有するモーメンタム値の第2のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第4のセットに変換し、(3)勾配オプティマイザを使用して、モーメンタム値の第3のセットとモーメンタム値の第4のセットを用いて勾配最適化を実行する、ように構成されてもよい。
[00065]選択された記憶フォーマットは、縮小された単精度フォーマットを含んでもよい。訓練フォーマットは、単精度フォーマットまたは倍精度フォーマットを含んでもよい。
[00066]システムはさらに、単精度フォーマットのモーメンタム値または倍精度フォーマットのモーメンタム値を形成するために、余分なゼロビットをパディングするように構成されてもよい。システムはさらに、勾配最適化の次の反復のためのモーメンタム値の第5のセットおよびモーメンタム値の第6のセットを生成し、モーメンタム値の第5のセットおよびモーメンタム値の第6のセットのそれぞれを記憶する前に、それぞれのモーメンタム値のそれぞれに関連する符号ビットおよび7つの最上位ビットのみを記憶することによってモーメンタム値の第5のセットおよびモーメンタム値の第6のセットのそれぞれを記憶フォーマットへ変換する、ように構成されてもよい。
[00067]システムは、アダプティブモーメンタム推定アルゴリズムを実装するように構成されてもよい。勾配オプティマイザは、フィールドプログラマブルゲートアレイ(FPGA)を使用して実装されてもよく、勾配オプティマイザは、連続するバーストサイクルが勾配オプティマイザを通る勾配のストリーミングをもたらすように、バーストモードで動作するように構成されてもよい。
[00068]さらに別の例では、本開示は、勾配オプティマイザと、L層を含むニューラルネットワークモデルに関連する重みおよびモーメンタム値を記憶するように構成されたメモリと、を含むシステムにおける方法に関し、Lは1より大きい整数である。本方法は、選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応するモーメンタム値の第1のセットをメモリから取り出すステップと、選択された記憶フォーマットを有する、ニューラルネットワークモデルの層に対応するモーメンタム値の第2のセットをメモリから取り出すステップと、をさらに含んでもよい。本方法は、選択された記憶フォーマットを有するモーメンタム値の第1のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第3のセットに変換するステップと、選択された記憶フォーマットを有するモーメンタム値の第2のセットを、勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第4のセットに変換するステップと、をさらに含んでもよい。本方法は、勾配オプティマイザを用いて、モーメンタム値の第3のセットおよびモーメンタム値の第4のセットを使用して勾配最適化を実行するステップをさらに含んでもよい。本方法は、勾配最適化の次の反復のためのモーメンタム値の第5のセットおよびモーメンタム値の第6のセットを生成するステップをさらに含んでもよい。本方法は、符号ビットのみを記憶し、モーメンタム値の第5のセットの仮数に関連する所定の数のビットを切り捨てることによって、モーメンタム値の第5のセットを、記憶フォーマットを有するモーメンタム値の第7のセットに変換するステップをさらに含んでもよい。本方法は、符号ビットのみを記憶し、モーメンタム値の第6のセットの仮数に関連する所定の数のビットを切り捨てることによって、モーメンタム値の第6のセットを、記憶フォーマットを有するモーメンタム値の第8のセットに変換するステップをさらに含んでもよい。
[00069]選択された記憶フォーマットは、縮小された単精度フォーマットを含んでもよい。訓練フォーマットは、単精度フォーマットまたは倍精度フォーマットを含んでもよい。本方法において、勾配最適化を実行するステップは、アダプティブモーメンタム推定アルゴリズムを実装するステップを含んでもよい。
[00070]訓練フォーマットは、32ビット浮動小数点フォーマットを含んでもよく、記憶フォーマットは、8ビット浮動小数点フォーマットを含んでもよい。勾配オプティマイザは、フィールドプログラマブルゲートアレイ(FPGA)を使用して実装されてもよく、勾配オプティマイザは、連続するバーストサイクルが勾配オプティマイザを通る勾配のストリーミングをもたらすように、バーストモードで動作するように構成されてもよい。
[00071]本明細書に描かれた方法、モジュール、および構成要素は、単に例示的なものであることを理解されたい。代替的に、または追加的に、本明細書で説明される機能は、少なくとも部分的に、1つまたは複数のハードウェア論理構成要素によって実行され得る。例えば、限定するものではないが、使用可能なハードウェア論理構成要素の例示的なタイプには、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途用標準品(ASSP)、システムオンチップシステム(SOC)、複合プログラマブルロジックデバイス(CPLD)等が含まれる。抽象的ではあるが、明確な意味において、同じ機能を達成するための構成要素の任意の配置は、所望の機能が達成されるように効果的に「関連付けられる」。したがって、特定の機能を実現するために組み合わされた本明細書の任意の2つのコンポーネントは、アーキテクチャまたは媒体間コンポーネントに関係なく、所望の機能が達成されるように互いに「関連」していると見なすことができる。同様に、そのように関連付けられた任意の2つの構成要素は、所望の機能を達成するために互いに「動作可能に接続される」、または「結合される」とも見なすことができる。
[00072]本開示で説明されるいくつかの例に関連する機能は、非一時的媒体に記憶された命令も含み得る。本明細書で使用される「非一時的媒体」という用語は、機械を特定の方法で動作させるデータおよび/または命令を記憶する任意の媒体を指す。例示的な非一時的媒体は、不揮発性媒体および/または揮発性媒体を含む。不揮発性媒体には、例えば、ハードディスク、ソリッドステートドライブ、磁気ディスクまたはテープ、光ディスクまたはテープ、フラッシュメモリ、EPROM、NVRAM、PRAM、またはそのような他の媒体、またはこれらの媒体のネットワーク化されたバージョンが含まれる。揮発性媒体は、例えば、DRAM、SRAM、キャッシュなどの動的メモリ、または他のそのような媒体を含む。非一時的媒体は、伝送媒体とは異なるが、伝送媒体と組み合わせて使用することができる。伝送媒体は、データおよび/または命令を機械にまたは機械から伝送するために使用される。例示的な伝送媒体には、同軸ケーブル、光ファイバーケーブル、銅線、および電波のような無線媒体が含まれる。
[00073]さらに、当業者は、上述した操作の機能の間の境界は単に例示的なものであることを認識するであろう。複数の操作の機能は、単一の操作に組み合わされてもよく、および/または、単一の操作の機能は、追加の操作に分散されてもよい。さらに、代替の実施形態は、特定の操作の複数のインスタンスを含んでもよく、操作の順序は、他の様々な実施形態において変更されてもよい。
[00074]本開示は特定の例を提供するが、以下の特許請求の範囲に規定されるように、本開示の範囲から逸脱することなく、様々な修正および変更を行うことが可能である。したがって、明細書および図面は、制限的な意味ではなく例示的な意味で見なされ、すべてのそのような修正は、本開示の範囲に含まれることが意図されている。特定の実施例に関して本明細書に記載される任意の利益、利点、または問題に対する解決策は、任意のまたはすべての請求項の重要な、必要な、または必須の特徴または要素として解釈されることを意図していない。
[00075]さらに、本明細書で使用される「a」または「an」という用語は、1つまたは複数として定義される。また、請求項における「少なくとも1つ」および「1つ以上」などの導入句の使用は、不定冠詞「a」または「an」による別の請求項要素の導入が、同じ請求項に導入句「1つ以上」または「少なくとも1つ」および不定冠詞「a」または「an」などが含まれていても、当該導入した請求項要素を含む任意の特定の請求項に当該要素を1つだけ含む発明を制限することを意味するものと解釈すべきではない。定冠詞の使用についても同様である。
[00076]特に断らない限り、「第1の」および「第2の」のような用語は、そのような用語が説明する要素を任意に区別するために使用される。したがって、これらの用語は、必ずしも、そのような要素の時間的または他の優先順位を示すことを意図していない。

Claims (20)

  1. 勾配(gradient)オプティマイザと、L層を含むニューラルネットワークモデルに関連するモーメンタム値を記憶するように構成されたメモリと、を含むシステムにおける方法であって、Lは1より大きい整数であり、
    選択された記憶フォーマットを有する、前記ニューラルネットワークモデルの層に対応する、モーメンタム値の第1のセットを前記メモリから取り出すステップと、
    前記選択された記憶フォーマットを有する、前記ニューラルネットワークモデルの層に対応する、モーメンタム値の第2のセットを前記メモリから取り出すステップと、
    前記選択された記憶フォーマットを有するモーメンタム値の前記第1のセットを、前記勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第3のセットに変換するステップと、
    前記選択された記憶フォーマットを有するモーメンタム値の前記第2のセットを、前記勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第4のセットに変換するステップと、
    前記勾配オプティマイザを用いて、モーメンタム値の前記第3のセットおよびモーメンタム値の前記第4のセットを使用して勾配最適化を実行するステップと、
    を含み、前記勾配オプティマイザは、連続するバーストサイクルが前記勾配オプティマイザを通る勾配のストリーミングをもたらすように、バーストモードで動作するように構成される
    方法。
  2. 前記選択された記憶フォーマットは、縮小単精度(reduced single precision)フォーマットを含む、
    請求項1に記載の方法。
  3. 前記訓練フォーマットは、単精度フォーマットまたは倍精度(double precision)フォーマットを含む、
    請求項1記載の方法。
  4. 勾配(gradient)オプティマイザと、L層を含むニューラルネットワークモデルに関連するモーメンタム値を記憶するように構成されたメモリと、を含むシステムにおける方法であって、Lは1より大きい整数であり、
    選択された記憶フォーマットを有する、前記ニューラルネットワークモデルの層に対応する、モーメンタム値の第1のセットを前記メモリから取り出すステップと、
    前記選択された記憶フォーマットを有する、前記ニューラルネットワークモデルの層に対応する、モーメンタム値の第2のセットを前記メモリから取り出すステップと、
    前記選択された記憶フォーマットを有するモーメンタム値の前記第1のセットを、前記勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第3のセットに変換するステップと、
    前記選択された記憶フォーマットを有するモーメンタム値の前記第2のセットを、前記勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第4のセットに変換するステップと、
    前記勾配オプティマイザを用いて、モーメンタム値の前記第3のセットおよびモーメンタム値の前記第4のセットを使用して勾配最適化を実行するステップと、
    を含み、前記選択された記憶フォーマットを有するモーメンタム値の前記第1のセットを、前記訓練フォーマットを有するモーメンタム値の前記第3のセットに変換するステップは、単精度フォーマットのモーメンタム値を形成するために余分なゼロビットをパディング(padding)するステップを含む
    方法。
  5. 勾配(gradient)オプティマイザと、L層を含むニューラルネットワークモデルに関連するモーメンタム値を記憶するように構成されたメモリと、を含むシステムにおける方法であって、Lは1より大きい整数であり、
    選択された記憶フォーマットを有する、前記ニューラルネットワークモデルの層に対応する、モーメンタム値の第1のセットを前記メモリから取り出すステップと、
    前記選択された記憶フォーマットを有する、前記ニューラルネットワークモデルの層に対応する、モーメンタム値の第2のセットを前記メモリから取り出すステップと、
    前記選択された記憶フォーマットを有するモーメンタム値の前記第1のセットを、前記勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第3のセットに変換するステップと、
    前記選択された記憶フォーマットを有するモーメンタム値の前記第2のセットを、前記勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第4のセットに変換するステップと、
    前記勾配オプティマイザを用いて、モーメンタム値の前記第3のセットおよびモーメンタム値の前記第4のセットを使用して勾配最適化を実行するステップと、
    を含み、
    勾配最適化の次の反復のためのモーメンタム値の第5のセットおよびモーメンタム値の第6のセットを生成するステップと、モーメンタム値の前記第5のセットおよびモーメンタム値の前記第6のセットのそれぞれを記憶する前に、それぞれのモーメンタム値のそれぞれに関連する符号ビットおよび7つの最上位ビットのみを記憶することによってモーメンタム値の前記第5のセットおよびモーメンタム値の前記第6のセットのそれぞれを前記記憶フォーマットへ変換するステップと、
    をさらに含む方法。
  6. 勾配最適化を実行するステップは、アダプティブモーメンタム推定アルゴリズムを実装するステップを含む、
    請求項1に記載の方法。
  7. 前記勾配オプティマイザは、フィールドプログラマブルゲートアレイ(FPGA)を使用して実装される
    請求項6に記載の方法。
  8. 勾配オプティマイザを含むシステムであって、
    L層を含むニューラルネットワークモデルに関連するモーメンタム値を記憶するように構成されたメモリを含み、Lは1より大きい整数であり、
    選択された記憶フォーマットを有する、前記ニューラルネットワークモデルの層に対応する、モーメンタム値の第1のセットを前記メモリから取り出し、
    前記選択された記憶フォーマットを有する、前記ニューラルネットワークモデルの層に対応する、モーメンタム値の第2のセットを前記メモリから取り出し、
    前記選択された記憶フォーマットを有するモーメンタム値の前記第1のセットを、前記勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第3のセットに変換し、
    前記選択された記憶フォーマットを有するモーメンタム値の前記第2のセットを、前記勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第4のセットに変換し、
    前記勾配オプティマイザを使用して、モーメンタム値の前記第3のセットとモーメンタム値の前記第4のセットを用いて勾配最適化を実行する、
    ように構成され、前記勾配オプティマイザは、連続するバーストサイクルが前記勾配オプティマイザを通る勾配のストリーミングをもたらすように、バーストモードで動作するように構成される
    記載のシステム。
  9. 前記選択された記憶フォーマットは、縮小単精度フォーマットを含む、
    請求項8に記載のシステム。
  10. 勾配オプティマイザを含むシステムであって、
    L層を含むニューラルネットワークモデルに関連するモーメンタム値を記憶するように構成されたメモリを含み、Lは1より大きい整数であり、
    選択された記憶フォーマットを有する、前記ニューラルネットワークモデルの層に対応する、モーメンタム値の第1のセットを前記メモリから取り出し、
    前記選択された記憶フォーマットを有する、前記ニューラルネットワークモデルの層に対応する、モーメンタム値の第2のセットを前記メモリから取り出し、
    前記選択された記憶フォーマットを有するモーメンタム値の前記第1のセットを、前記勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第3のセットに変換し、
    前記選択された記憶フォーマットを有するモーメンタム値の前記第2のセットを、前記勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第4のセットに変換し、
    前記勾配オプティマイザを使用して、モーメンタム値の前記第3のセットとモーメンタム値の前記第4のセットを用いて勾配最適化を実行する、
    ように構成され、
    前記訓練フォーマットは、単精度フォーマットまたは倍精度フォーマットを含み、
    単精度フォーマットのモーメンタム値または倍精度フォーマットのモーメンタム値を形成するために、余分なゼロビットをパディングするようにさらに構成される
    システム。
  11. 勾配オプティマイザを含むシステムであって、
    L層を含むニューラルネットワークモデルに関連するモーメンタム値を記憶するように構成されたメモリを含み、Lは1より大きい整数であり、
    選択された記憶フォーマットを有する、前記ニューラルネットワークモデルの層に対応する、モーメンタム値の第1のセットを前記メモリから取り出し、
    前記選択された記憶フォーマットを有する、前記ニューラルネットワークモデルの層に対応する、モーメンタム値の第2のセットを前記メモリから取り出し、
    前記選択された記憶フォーマットを有するモーメンタム値の前記第1のセットを、前記勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第3のセットに変換し、
    前記選択された記憶フォーマットを有するモーメンタム値の前記第2のセットを、前記勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第4のセットに変換し、
    前記勾配オプティマイザを使用して、モーメンタム値の前記第3のセットとモーメンタム値の前記第4のセットを用いて勾配最適化を実行する、
    ように構成され、
    勾配最適化の次の反復のためのモーメンタム値の第5のセットおよびモーメンタム値の第6のセットを生成し、モーメンタム値の前記第5のセットおよびモーメンタム値の前記第6のセットのそれぞれを記憶する前に、それぞれのモーメンタム値のそれぞれに関連する符号ビットおよび7つの最上位ビットのみを記憶することによってモーメンタム値の前記第5のセットおよびモーメンタム値の前記第6のセットのそれぞれを前記記憶フォーマットへ変換する、ようにさらに構成される
    システム。
  12. アダプティブモーメンタム推定アルゴリズムを実装するように構成される、
    請求項8に記載のシステム。
  13. 前記勾配オプティマイザは、フィールドプログラマブルゲートアレイ(FPGA)を使用して実装される
    請求項8に記載のシステム。
  14. 勾配オプティマイザと、L層を含むニューラルネットワークモデルに関連する重みおよびモーメンタム値を記憶するように構成されたメモリと、を含むシステムにおける方法であって、Lは1より大きい整数であり、
    選択された記憶フォーマットを有する、前記ニューラルネットワークモデルの層に対応するモーメンタム値の第1のセットを前記メモリから取り出すステップと、
    前記選択された記憶フォーマットを有する、前記ニューラルネットワークモデルの層に対応するモーメンタム値の第2のセットを前記メモリから取り出すステップと、
    前記選択された記憶フォーマットを有するモーメンタム値の前記第1のセットを、前記勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第3のセットに変換するステップと、
    前記選択された記憶フォーマットを有するモーメンタム値の前記第2のセットを、前記勾配オプティマイザに関連付けられた訓練フォーマットを有するモーメンタム値の第4のセットに変換するステップと、
    前記勾配オプティマイザを用いて、モーメンタム値の前記第3のセットおよびモーメンタム値の前記第4のセットを使用して勾配最適化を実行するステップと、
    勾配最適化の次の反復のためのモーメンタム値の第5のセットおよびモーメンタム値の第6のセットを生成するステップと、
    符号ビットのみを記憶し、モーメンタム値の前記第5のセットの仮数に関連する所定の数のビットを切り捨てることによって、モーメンタム値の前記第5のセットを、前記記憶フォーマットを有するモーメンタム値の第7のセットに変換するステップと、
    符号ビットのみを記憶し、モーメンタム値の前記第6のセットの仮数に関連する所定の数のビットを切り捨てることによって、モーメンタム値の前記第6のセットを、前記記憶フォーマットを有するモーメンタム値の第8のセットに変換するステップと、
    を含む、方法。
  15. 記勾配オプティマイザは、連続するバーストサイクルが前記勾配オプティマイザを通る勾配のストリーミングをもたらすように、バーストモードで動作するように構成される、
    請求項14に記載の方法。
  16. 前記選択された記憶フォーマットは、縮小単精度(reduced single precision)フォーマットを含む、
    請求項14または15に記載の方法。
  17. 前記訓練フォーマットは、単精度フォーマットまたは倍精度(double precision)フォーマットを含む、
    請求項14または15記載の方法。
  18. 勾配最適化を実行するステップは、アダプティブモーメンタム推定アルゴリズムを実装するステップを含む、
    請求項14または15に記載の方法。
  19. 前記訓練フォーマットは、32ビット浮動小数点フォーマットを含み、前記記憶フォーマットは、8ビット浮動小数点フォーマットを含む、
    請求項14または15に記載の方法。
  20. 前記勾配オプティマイザは、フィールドプログラマブルゲートアレイ(FPGA)を使用して実装される
    請求項14または15に記載の方法。
JP2022561510A 2020-04-17 2021-02-09 メモリ要件が低減されたデュアルモーメンタム勾配最適化 Active JP7623398B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/851,847 US11651228B2 (en) 2020-04-17 2020-04-17 Dual-momentum gradient optimization with reduced memory requirements
US16/851,847 2020-04-17
PCT/US2021/017215 WO2021211193A1 (en) 2020-04-17 2021-02-09 Dual-momentum gradient optimization with reduced memory requirements

Publications (2)

Publication Number Publication Date
JP2023521975A JP2023521975A (ja) 2023-05-26
JP7623398B2 true JP7623398B2 (ja) 2025-01-28

Family

ID=74856929

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022561510A Active JP7623398B2 (ja) 2020-04-17 2021-02-09 メモリ要件が低減されたデュアルモーメンタム勾配最適化

Country Status (6)

Country Link
US (2) US11651228B2 (ja)
EP (1) EP4136587A1 (ja)
JP (1) JP7623398B2 (ja)
KR (1) KR102856047B1 (ja)
CN (1) CN115398449A (ja)
WO (1) WO2021211193A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023110297A (ja) * 2022-01-28 2023-08-09 国立大学法人北海道大学 最適化装置及び最適化方法並びに最適化用プログラム
CN116007597B (zh) * 2022-12-19 2024-06-11 北京工业大学 基于动量梯度下降法对框架柱的垂直度测量方法及装置
KR102842262B1 (ko) * 2024-04-03 2025-08-04 울산과학기술원 정방행렬화 알고리즘을 이용한 메모리 효율적인 심층신경망 최적화 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190034784A1 (en) 2017-07-28 2019-01-31 Beijing Deephi Intelligence Technology Co., Ltd. Fixed-point training method for deep neural networks based on dynamic fixed-point conversion scheme
JP2019512126A (ja) 2016-02-29 2019-05-09 アリババ グループ ホウルディング リミテッド 機械学習システムをトレーニングする方法及びシステム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10572800B2 (en) 2016-02-05 2020-02-25 Nec Corporation Accelerating deep neural network training with inconsistent stochastic gradient descent
US12299577B2 (en) * 2016-06-15 2025-05-13 Nvidia Corporation Tensor processing using low precision format
US11276002B2 (en) 2017-12-20 2022-03-15 Salesforce.Com, Inc. Hybrid training of deep networks
US10372991B1 (en) * 2018-04-03 2019-08-06 Google Llc Systems and methods that leverage deep learning to selectively store audiovisual content
US11645493B2 (en) * 2018-05-04 2023-05-09 Microsoft Technology Licensing, Llc Flow for quantized neural networks
KR102732517B1 (ko) * 2018-07-04 2024-11-20 삼성전자주식회사 뉴럴 네트워크에서 파라미터를 처리하는 방법 및 장치
US11586904B2 (en) * 2018-09-13 2023-02-21 Google Llc Adaptive optimization with improved convergence
US20200380369A1 (en) * 2019-05-31 2020-12-03 Nvidia Corporation Training a neural network using selective weight updates
US10769528B1 (en) * 2019-06-07 2020-09-08 Sas Institute Inc. Deep learning model training system
KR20190098107A (ko) * 2019-08-02 2019-08-21 엘지전자 주식회사 딥 러닝을 위한 신경망 학습 장치 및 그 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019512126A (ja) 2016-02-29 2019-05-09 アリババ グループ ホウルディング リミテッド 機械学習システムをトレーニングする方法及びシステム
US20190034784A1 (en) 2017-07-28 2019-01-31 Beijing Deephi Intelligence Technology Co., Ltd. Fixed-point training method for deep neural networks based on dynamic fixed-point conversion scheme

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Sebastian Ruder,An overview of gradient descent optimization algorithms,arxiv.org, [online],2017年06月15日,[検索日 2024.09.09], Retrieved from the Internet: <URL: https://arxiv.org/pdf/1609.04747>

Also Published As

Publication number Publication date
US20210326711A1 (en) 2021-10-21
EP4136587A1 (en) 2023-02-22
KR102856047B1 (ko) 2025-09-04
US11651228B2 (en) 2023-05-16
JP2023521975A (ja) 2023-05-26
KR20230006815A (ko) 2023-01-11
WO2021211193A1 (en) 2021-10-21
US20230244945A1 (en) 2023-08-03
CN115398449A (zh) 2022-11-25

Similar Documents

Publication Publication Date Title
US20230244945A1 (en) Dual-momentum gradient optimization with reduced memory requirements
US11663444B2 (en) Pipelined neural network processing with continuous and asynchronous updates
US20200082269A1 (en) Memory efficient neural networks
CN112836787B (zh) 通过高效混合并行化减少深度神经网络训练次数
WO2020167480A1 (en) Adjusting activation compression for neural network training
WO2020142192A1 (en) Neural network activation compression with narrow block floating-point
US20170061279A1 (en) Updating an artificial neural network using flexible fixed point representation
CN113273082A (zh) 具有异常块浮点的神经网络激活压缩
CN114626516A (zh) 一种基于对数块浮点量化的神经网络加速系统
CN113508402A (zh) 从量化的固件神经网络层得出一致的软件神经网络层
WO2020176250A1 (en) Neural network layer processing with normalization and transformation of data
WO2020176248A1 (en) Neural network layer processing with scaled quantization
CN119884332B (zh) 一种应答信息生成方法、设备、介质及计算机程序产品
US20240220572A1 (en) Pipeline-parallel-dataflow artificial intelligence system for accelerating self-attention computations
US12353984B2 (en) Hardware-assisted gradient optimization using streamed gradients
CN119005265A (zh) 面向高性能数据并行dnn训练的稀疏化压缩方法及装置
JP2024529835A (ja) 二重指数バウンディングボックス浮動小数点プロセッサ
EP4196919A1 (en) Method and system for quantizing a neural network
CN117808079A (zh) 一种基于少学习参数的神经网络训练方法及装置
US20250377940A1 (en) Hardware acceleration for generative models
He et al. Research on Efficient CNN Acceleration Through Mixed Precision Quantization: A Comprehensive Methodology.
Huang et al. A Data-Efficient Deep Reinforcement Learning Algorithm and FPGA Accelerator for Real-Time Robot Motion Control Applications
Xu et al. MERINDA: Model Recovery in FPGA-Based Dynamic Architecture for Edge and Physical AI
JPWO2023003639A5 (ja)
CN121523860A (zh) 一种基于多gpu编码的共现矩阵构建方法、设备及介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241206

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250116

R150 Certificate of patent or registration of utility model

Ref document number: 7623398

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02