IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

特表2024-504237人工ニューラルネットワークを訓練するためのシステム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-31
(54)【発明の名称】人工ニューラルネットワークを訓練するためのシステム
(51)【国際特許分類】
   G06N 3/084 20230101AFI20240124BHJP
   G06N 3/082 20230101ALI20240124BHJP
【FI】
G06N3/084
G06N3/082
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023533856
(86)(22)【出願日】2022-01-05
(85)【翻訳文提出日】2023-07-10
(86)【国際出願番号】 US2022011204
(87)【国際公開番号】W WO2022164606
(87)【国際公開日】2022-08-04
(31)【優先権主張番号】17/163,299
(32)【優先日】2021-01-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100108213
【弁理士】
【氏名又は名称】阿部 豊隆
(72)【発明者】
【氏名】ゴラブ,マクシミリアン
(72)【発明者】
【氏名】チャオ,リッチー
(72)【発明者】
【氏名】チュン,エリック
(72)【発明者】
【氏名】バーガー,ダグラス
(72)【発明者】
【氏名】ダルビッシュ ロウハーニー,ビタ
(72)【発明者】
【氏名】ヤン,ゲ
(72)【発明者】
【氏名】フシ,ニコロ
(57)【要約】
本開示の実施形態は、訓練プロセスを実行するために複数の訓練パラメータに基づいてモデルを構成すること、訓練プロセスの実行時にもたらされる複数の統計をモニタすること、及び統計の少なくとも1つを所定の範囲内に保つために訓練パラメータの1つ又は複数を統計の1つ又は複数に基づいて調節することにより、人工ニューラルネットワークを最適化するためのシステムを含む。一部の実施形態では、人工知能(AI)プロセッサがモデルに対する訓練プロセスを実行することができ、訓練プロセスは関連する1組の訓練パラメータを有する。訓練プロセスを実行することは複数の統計をもたらし得る。AIプロセッサに結合される制御プロセッサが統計を受信し、それに従って訓練プロセスの実行中に統計の少なくとも1つを所定の範囲内に保つために訓練パラメータの1つ又は複数を調節することができる。
【特許請求の範囲】
【請求項1】
1つ又は複数の人工知能(AI)プロセッサと、
1つ又は複数の制御プロセッサと、
前記1つ又は複数の制御プロセッサによって実行可能なプログラムコードを記憶しているコンピュータ可読記憶媒体と
を含むシステムであって、前記プログラムコードは、
人工ニューラルネットワークモデルを受信し、複数の訓練パラメータに基づいて前記モデルを構成して前記1つ又は複数のAIプロセッサ上で訓練プロセスを実行すること、
前記訓練プロセスの実行時にもたらされる複数の統計をモニタすること、及び
前記複数の統計の少なくとも1つを所定の範囲内に保つために、前記複数の訓練パラメータの1つ又は複数の訓練パラメータを前記複数の統計の1つ又は複数の統計に基づいて調節すること
を前記1つ又は複数の制御プロセッサに行わせる、
システム。
【請求項2】
前記調節するステップが、標的層に関連する前記複数の統計の前記少なくとも1つを前記所定の範囲内に保つために、前記モデルの前記標的層に関連する精度を調節することを含む、請求項1に記載のシステム。
【請求項3】
前記モデルのサイズが増加するにつれて前記モデルの少なくとも一部の前記精度を下げることを更に含む、請求項1に記載のシステム。
【請求項4】
前記モニタするステップが、前記モデルの標的層に関連する1つ又は複数の統計をモニタすることを含む、請求項1に記載のシステム。
【請求項5】
前記1つ又は複数の統計がニューラルネットワークの勾配雑音の測定を含む、請求項4に記載のシステム。
【請求項6】
前記調節するステップが前記モデルの標的層に関連する1つ又は複数の訓練パラメータを調節することを含む、請求項1に記載のシステム。
【請求項7】
前記標的層が隠れ層であり、前記1つ又は複数の訓練パラメータが前記標的層の精度を構成するパラメータを含む、請求項6に記載のシステム。
【請求項8】
前記標的層が隠れ層であり、前記1つ又は複数の訓練パラメータが前記標的層のスパース性を構成するパラメータを含む、請求項6に記載のシステム。
【請求項9】
前記標的層が隠れ層であり、前記1つ又は複数の訓練パラメータが前記標的層に関連するノードの数を構成するパラメータを含む、請求項6に記載のシステム。
【請求項10】
前記標的層が隠れ層であり、前記1つ又は複数の訓練パラメータが前記標的層内の1つ又は複数のノードに関する学習率を構成するパラメータを含む、請求項6に記載のシステム。
【請求項11】
前記標的層が隠れ層であり、前記1つ又は複数の訓練パラメータが前記モデルに関連する層の数を構成するパラメータを含む、請求項6に記載のシステム。
【請求項12】
前記複数の訓練パラメータが前記モデルに関連する精度を構成するパラメータを含み、前記モデルが前記モデルの第1の層に関連する第1の精度及び前記モデルの第2の層に関連する第2の精度で構成され、前記第1の精度は前記第2の精度よりも高く、前記第1の層は前記モデルの入力に近い層であり、前記第2の層は前記モデルの出力に近い層である、請求項1に記載のシステム。
【請求項13】
前記複数の訓練パラメータがスパース性を構成するパラメータを含み、前記モデルが前記モデルの第1の層に関連する第1のスパース性及び前記モデルの第2の層に関連する第2のスパース性を用いて構成され、前記第1のスパース性は前記第2のスパース性と異なり、前記第1の層は前記モデルの入力に近い層であり、前記第2の層は前記モデルの出力に近い層である、請求項1に記載のシステム。
【請求項14】
人工ニューラルネットワークモデルに対する訓練プロセスを実行するように構成される1つ又は複数の人工知能(AI)プロセッサであって、前記訓練プロセスは関連する1組の訓練パラメータを有し、
前記訓練プロセスを実行することが複数の統計をもたらす、1つ又は複数のAIプロセッサと、
前記1つ又は複数のAIプロセッサに結合される1つ又は複数の制御プロセッサであって、前記訓練プロセスの実行中に前記複数の統計の少なくとも1つを所定の範囲内に保つために前記訓練パラメータの1つ又は複数を前記複数の統計の前記1つ又は複数の統計に基づいて調節するように構成される、1つ又は複数の制御プロセッサと
を含む、システム。
【請求項15】
人工ニューラルネットワークモデルを受信し、1つ又は複数のAIプロセッサ上で訓練プロセスを実行するために複数の訓練パラメータに基づいて前記モデルを構成すること、
前記訓練プロセスの実行時にもたらされる複数の統計をモニタすること、及び
前記複数の統計の少なくとも1つを所定の範囲内に保つために、前記複数の訓練パラメータの1つ又は複数の訓練パラメータを前記複数の統計の1つ又は複数の統計に基づいて調節すること
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
背景
[0001] 本開示は計算システムに関する。より詳細には、本開示は人工ニューラルネットワークを訓練するための技法に関する。
【背景技術】
【0002】
[0002] 人工知能(AI)システムは、自然言語処理及びコンピュータビジョン等の様々な分野における大きな進歩を可能にした。AIシステムは、典型的には複数の層で構成されるAIモデル(例えばニューラルネットワークモデル)を含む。各層は、典型的には他の層内のノードに接続されるノード(別称ニューロン)を含む。ノード間の接続は、接続の強度を増加又は減少するための訓練可能な重みに関連付けられる。動作面では、データセットがモデルの入力層に適用され、出力が出力層において生成される。出力は、入力データセットの特定の特徴の分類、認識、又は予測に対応し得る。ニューラルネットワークを訓練するために、出力が入力データセットに関する既知の出力と比較され、誤差がモデルによって逆伝播され、モデルのパラメータが調節される。
【0003】
[0003] ニューラルネットワークモデルの1つの問題は、より大きいモデルが典型的には処理するための計算資源及び/又は時間をより多く必要とすることである。これは主に、計算を必要とするかかるモデルに関連するパラメータの数に起因する。
【0004】
図面の簡単な説明
[0004] 本開示の様々な実施形態を添付図面の図中に限定ではなく例として示す。
【図面の簡単な説明】
【0005】
図1】[0005]一実施形態による、人工ニューラルネットワークを訓練するためのシステムを示す。
図2】[0006]一実施形態による、人工ニューラルネットワークを訓練する方法を示す。
図3A】[0007]一実施形態による、人工ニューラルネットワーク内の訓練パラメータ及びモニタ値を示す。
図3B】[0008]一実施形態による、人工ニューラルネットワークを訓練するためのマッピングシステムを示す。
図4】[0009]別の実施形態による、人工ニューラルネットワークを訓練する方法を示す。
図5A】[0010]一実施形態による、より小さいネットワークを訓練することによってマッピングを生成するシステムを示す。
図5B】[0011]一実施形態による、より大きいネットワークを訓練するためのマッピングをロードするシステムを示す。
図6】[0012]一実施形態による、統計をもたらし得るニューラルネットワークの一例を示す。
図7】[0013]一実施形態による、モニタされる統計の例を示すグラフを示す。
図8】[0014]一実施形態による、ニューラルネットワークの様々な部分に関連する精度を調節する一例を示す。
図9】[0015]一実施形態による、ニューラルネットワークの様々な部分に関連するスパース性を調節する一例を示す。
図10】[0016]一実施形態による、ニューラルネットワークの様々な部分に関連するモデルのサイズを調節する一例を示す。
図11】[0017]一実施形態による、人工ニューラルネットワークをスケールするためにAIプロセッサを使用する方法を示す。
図12】[0018]一実施形態による、コンピュータシステムの一例の単純化したブロック図を示す。
図13】[0019]一実施形態による、人工ニューラルネットワーク処理システムを示す。
図14】[0020]一実施形態による、検証損失対計算資源及び時間の最適化を示すグラフの一例を示す。
図15A】[0021]一実施形態による、高精度モデルによってもたらされる勾配雑音を示すグラフを示す。
図15B】[0022]一実施形態による、最適化されていない低精度モデルによってもたらされる勾配雑音を示すグラフを示す。
図15C】[0023]一実施形態による、最適化された低精度モデル内で制御されている勾配雑音を示すグラフを示す。
図15D】[0024]一実施形態による、高精度モデルの収束、最適化されていない低精度モデルの発散、及び最適化された低精度モデルの収束を示すグラフを示す。
図16A】[0025]一実施形態による、高精度モデルの収束及び最適化されていない低精度モデルの発散を示すグラフを示す。
図16B】[0026]一実施形態による、高精度モデルによってもたらされる層の活性化と最適化されていない低精度モデルによってもたらされる層の活性化とを比較するグラフを示す。
図16C】[0027]一実施形態による、高精度モデルによってもたらされる層の勾配と最適化されていない低精度モデルによってもたらされる層の勾配とを比較するグラフを示す。
図17A】[0028]一実施形態による、異なる精度を有するモデルの検証損失を示すグラフを示す。
図17B】[0029]一実施形態による、異なる精度を有するモデルによってもたらされる層の活性化のゼロ値のパーセンテージの第1の例を比較するグラフを示す。
図17C】[0030]一実施形態による、異なる精度を有するモデルによってもたらされる層の活性化のゼロ値のパーセンテージの第2の例を比較するグラフを示す。
【発明を実施するための形態】
【0006】
詳細な説明
[0031] 以下の説明では、本開示の完全な理解を可能にするために、数多くの例及び具体的詳細を説明目的で記載する。かかる例及び詳細は、請求項の要素又は特許請求の範囲に記載する内容全体を不当に制限するものとして解釈すべきではない。様々な請求項の言語に基づき、特許請求の範囲に記載する内容はこれらの例の中の特徴の一部又は全てを単独で又は組み合わせで含むことができ、本明細書に記載する特徴及び技法の修正形態及び等価物を更に含み得ることが当業者に明白になる。
【0007】
[0032] ディープラーニングでは、人工知能(AI)モデル(例えばニューラルネットワークモデル)は、サイズ(例えば層、ノード、接続及び/又は同様のものの数)が増加するにつれて自らの予測精度が典型的に上がる。この精度は、検証損失の望ましい減少(例えば予測がより正確であること)として訓練中にしばしば測定される。
【0008】
[0033] しかし、モデルのサイズが増加することは典型的にはモデルを処理するための計算資源及び/又は時間の増加を必要とする。これは、更なる計算をひいては必要とするモデルのサイズの増加に関連するパラメータの数が増えることに起因する。
【0009】
[0034] 例えばニューラルネットワーク(NN)モデルのノードごとに、y=f(x+x+....+x)で表される前方パス計算を実行することができ、但しyはノードの出力値を表し、xは接続ノード0からnからの入力値を表し、wはノードからの接続に関連する訓練可能な重み(例えばパラメータ)を表す。訓練中、(例えば最後の層における)モデルの出力を入力データセットに関する既知の出力と比較することができる。次いで、同様の後方パス計算(例えば逆伝播)を実行して勾配及び重みの更新を決定することができる。例えば確率的勾配降下法(SGD)として知られるプロセスでは、訓練データセットのサブセットに対して逆伝播を複数回(例えば反復的に)行うことができる。前方パス及び後方パスにおける計算は、典型的にはモデルの層ごとに何度も実行される行列乗算(別称Mat-Mul)演算によって実行される。その結果、モデルを訓練するのに必要な計算回数がモデルのサイズの増加と共にすぐに増える可能性がある。
【0010】
[0035] モデルを処理するための計算資源及び/又は時間を減らす1つの技法は、モデルに関連する計算の精度(別称ビット幅)を減らすことである。例えば8ビット整数(別称INT8)等の低精度での計算を伴うモデルを処理するための計算資源及び/又は時間と比較したとき、IEEE 754の単精度32ビット浮動小数点形式(別称FP32)等の高精度での計算を必要とするモデルを処理するための計算資源及び/又は時間は減らすことができる。
【0011】
[0036] しかし精度が一定の閾値未満に下がると、モデルは自らの予測精度を改善できないことが多々ある。更に、モデルは継続した訓練により自らの予測精度を悪化させる場合もある(例えば発散)。
【0012】
[0037] 本開示の特徴及び利点は、特定の統計を所定の範囲内に保つために、モデルに関連する1つ又は複数の統計に基づいてモデルに関連する1つ又は複数の訓練パラメータを自動で調節することによってニューラルネットワークモデルの訓練を改善することを含む。一部の実施形態では、モデルに関連する統計に基づいて訓練パラメータを調節することを「内省的」訓練と呼ぶ場合がある。本明細書で開示する技法は、例えば計算資源の低減したスケーリングと共に、モデルのサイズに比例してスケールする改善された訓練性能をサポートし得る。従って本開示の一部の実施形態は、ニューラルネットワークモデルのための自動でスケーリングする内省的形式の訓練を提供する。有利には、かかる訓練は非常に大きいモデルに関する処理のための計算資源及び/又は時間の低減(例えば計算サイクルの低減)をもたらしながら、収束に向けてより低い検証損失(例えば改善された予測精度)を可能にし得る。以下に記載する一定の実施形態は、(例えば統計に基づいて)パラメータを調整するための自動化された技法を更に含み得る。
【0013】
[0038] 図1は、一実施形態による、人工ニューラルネットワークを最適化するためのシステム100を示す。この例では、1つ又は複数の制御プロセッサ102が1つ又は複数のAIプロセッサ104と通信し得る。制御プロセッサ102は、例えば従来のCPU、FPGA、システムオンチップ(SoC)、特定用途向け集積回路(ASIC)、若しくは組み込みARMコントローラ、又はソフトウェアを実行することができ、ソフトウェア内の命令に基づいてAIプロセッサ104と通信することができる他のプロセッサを含み得る。AIプロセッサ104は、グラフィックスプロセッサ(GPU)、AIアクセラレータ、又はAI演算に関して最適化された他のデジタルプロセッサを含み得る(例えばx86プロセッサ等の行列乗算対ノイマン型アーキテクチャプロセッサ(matrix multiplications versus Von Neuman Architecture processor))。AIプロセッサの例は、例えばGPU(例えば800コア及び64マルチアキュムレータを有するNVidia Volta(登録商標))又はTensor Processer Unit(TPU)(例えば16k並列演算を有する4コア)を含み得る。
【0014】
[0039] この例では、制御プロセッサ102が、制御プロセッサ102によって実行可能なプログラムコードを記憶しているメモリ106(例えば非一時的コンピュータ可読記憶媒体)に結合され得る。制御プロセッサ102は、ニューラルネットワークモデル110(以下「モデル」)及びモデル110を構成するための複数の訓練パラメータ112を受信(例えばロード)する。モデル110は、例えば層内のノードが他の層内のノードに接続され、ノード間の接続が訓練可能な重みに関連付けられた状態で、例えばニューラルネットワークの複数の層を定めるグラフを含むことができる。訓練パラメータ112(別称調整パラメータ又はモデルパラメータ)は、モデル110の構成及び/又は実行に影響を及ぼすように調節され得る1つ又は複数の値を含み得る。本開示に照らして当業者に明らかになるように、様々な実施形態で使用され得る訓練パラメータは、例えばモデルのサイズ、バッチサイズ、学習率、精度(例えばデータ値の2進表現内のビット数)、及びスパース性(例えばデータ値内のゼロの数)、正規化(例えば重みの減衰又はL2正規化)、エントロピー、及び/又は訓練ステップ、並びに特徴付け調節することができる他のパラメータを含む。当業者に知られているように、一部の実施形態では訓練パラメータが1つ又は複数のハイパーパラメータ(例えばニューラルネットワークの学習を制御するために使用されるパラメータ)を含み得る。
【0015】
[0040] 制御プロセッサ102は、ニューラルネットワークコンパイラ114も実行し得る。ニューラルネットワークコンパイラ114は、実行時にモデル110及び訓練パラメータ112を受信し、モデル110をハードウェア内で実装し実行するために1つ又は複数のAIプロセッサ上の資源105を構成し得るプログラムを含むことができる。例えばニューラルネットワークコンパイラ114はモデル110を受信し、訓練パラメータ112に基づいてモデル110を構成してAIプロセッサ104上で実行される訓練プロセスを実行することができる。訓練プロセスを実行するために、ニューラルネットワークコンパイラ114は入力活性化、重み、逆伝播等の計算を実装するようにAIプロセッサ104を構成することができる。それを受けてAIプロセッサ104は、ニューラルネットワークコンパイラ114によって決定される資源105を使用して、モデル110と共に訓練データ116を受信し処理することができる(例えば訓練プロセス)。例えば資源105は、モデル110を実装するための演算を実行するために使用されるレジスタ、乗算器、加算器、バッファ、及び他のデジタルブロックを含み得る。従って、AIプロセッサ104は、前方パス内の数多くの行列乗算計算を実行し、出力を訓練データ116のサブセットに関する既知の出力と比較し、後方パス内の更なる行列乗算計算を実行して例えば勾配又は重みの更新を求めることができる。訓練データが処理されるとき、このプロセスは複数の反復を通して継続し得る。一部の実施形態では、例えばニューラルネットワークコンパイラ114によって構成され得る確率的勾配降下法(SGD)、適応モーメント推定(ADAM)及び/又は同様のものの逆伝播アルゴリズムに従い、AIプロセッサ104が重みの更新を決定することができる。
【0016】
[0041] モデル110の実行中、AIプロセッサ104は例えば活性化、重み、勾配、及び重みの更新に関する複数の値をモデルの各層において各反復時に生成することができる。本開示の特徴及び利点は、ニューラルネットワーク内の一定の位置におけるかかる値の統計をモニタし、かかる統計に基づいて訓練パラメータ112を(例えば層ごとに)調節して訓練を改善することを含む。以下でより詳細に説明するように、モニタされる統計は、例えば逆伝播の勾配、勾配雑音、ノードの活性化、重み、重みの更新の測定及び/又は同様のもののうちの1つ又は複数を含み得る。統計の測定は、例えば平均値の測定、標準偏差の測定、ゼロ値のパーセンテージの測定及び/又は同様のものを含み得る。
【0017】
[0042] 一部の実施形態では、制御プロセッサ102がマッピングシステム132を実行し得る。マッピングシステム132は、例えば統計を処理してモデルの一部に関連する1つ又は複数の訓練パラメータ112を自動で調節することができ、それにより(例えばモデル内の特定の位置において)1つ又は複数の統計を所定の範囲内に保つことができる。
【0018】
[0043] AIプロセッサによるその後の実行のためにAIプロセッサ104上のモデル110の実装を更新するために、調節済みの訓練パラメータ112をニューラルネットワークコンパイラ114に与えることができる。このプロセスは、所定数の訓練ステップによってモデル110が収束するまで訓練データ116のサブセットのための反復内で繰り返すことができる。最終的に、例えば所与の応用で導入するための訓練済みのモデル120をもたらすことができる。有利には、統計が所定の範囲内に保たれるように訓練パラメータ112を調節することにより、結果として生じる訓練済みのモデルを最適化して、例えば処理するための計算資源及び/又は時間を減らしながら(例えば計算サイクルを低減し)それらのモデルの予測精度を改善することができる。
【0019】
[0044] 一部の実施形態では、同じモデルを訓練するために使用される訓練データの異なるバッチに対して異なる訓練パラメータを使用することができる。これをハイブリッドモードと呼ぶことができる。例えば、異なるプロセッサ(又は同じ訓練バッチに作用するプロセッサ群)上で実行されている異なるバッチについて、訓練されているモデルの異なる部分において異なる精度を使用することができる。例えば各ノードを独自の精度で実行しながら、ハイブリッドモードは複数の異なる訓練ノードにわたって訓練を分散する能力を有する拡張であり得る。例えば精度を下げるとき、勾配雑音が増加する可能性があり、そのことは訓練の発散及び最善ではない性能を招き得る。一部の実施形態では、幾つかの高精度のガイドノードを分散訓練の実行に追加することは全体的な勾配雑音を下げ、モデルの損失を改善するための効果的なやり方である。データ並列設定では、これは合計Nのバッチのうちの1からMを高精度でサンプリングすることと考えることができ、但し例えばN<<Mである。
【0020】
[0045] 上記で示したように、一部の実施形態では複数のAIプロセッサ104上で実行されるようにモデル110が区分化され得る。例えばモデル110の第1の部分は第1のAIプロセッサ上で実行することができ、モデル110の第2の部分は第2のAIプロセッサ上で実行することができる。この例では、1つ又は複数の制御プロセッサ102による解析のために複数の値の測定が複数のAIプロセッサから受信され得る。様々な実施形態において、この形態はモデル110を最適化しながらより高速な導入のために訓練プロセスを効率的に分散することを可能にし得る。様々な実施形態において、値に基づく統計は例えばAIプロセッサ又は制御プロセッサによって生成され得る。
【0021】
[0046] 図2は、一実施形態による人工ニューラルネットワークを訓練する方法を示す。この例では、202で、1つ又は複数の制御プロセッサが所与の応用のためのニューラルネットワークモデルを受信し得る。制御プロセッサは制御プロセッサ102のようなものであり得る。204で、制御プロセッサは1つ又は複数のAIプロセッサ上で訓練プロセスを実行するために訓練パラメータに基づいてモデルを構成することができる。AIプロセッサはAIプロセッサ104のようなものであり得る。206で、AIプロセッサによる訓練プロセスの実行時にもたらされる複数の統計を制御プロセッサがモニタすることができる。208で、1つ又は複数の統計が所定の範囲内にあるかどうかを制御プロセッサが判定することができる。1つ又は複数の統計が所定の範囲内にある場合(はい)、206で、制御プロセッサは所定数の訓練ステップによってモデルが収束するまでループ内で複数の統計をモニタし続けることができる。しかし1つ又は複数の統計が所定の範囲内にない場合(いいえ)、210で、制御プロセッサは1つ又は複数の統計を所定の範囲内に保つために統計に基づいて訓練パラメータを調節することができる。次いで204に戻り、制御プロセッサは、調節済みの訓練パラメータに基づいてモデルを構成してAIプロセッサ上で訓練プロセスを実行することができる。
【0022】
[0047] 図3Aは、一実施形態による、人工ニューラルネットワーク内の訓練パラメータ及びモニタ値を示す。この例では、訓練プロセスを実行するためにモデル300が1つ又は複数のAIプロセッサ304上にロードされる。AIプロセッサ304は次の訓練パラメータ、つまりモデルのサイズ310、バッチサイズ311、学習率312、精度313、及びスパース性314を用いて更に構成される。以下でより詳細に示すように、様々な訓練パラメータの様々な構成がニューラルネットワークモデルの挙動を訓練中に変更し得る。例えば訓練プロセスは、モデルのサイズ、バッチサイズ、学習率、精度、及びスパース性を有するモデル300を実行するように構成され得る。以下で更に説明するように、訓練パラメータを変更することは訓練されているネットワークの全体を通して生じる異なる値をもたらす。勾配雑音301、活性化302、勾配303、重み304、及び重みの更新305の値は、ネットワーク内の特定の位置において及び訓練プロセス中の特定の時点においてモニタし、訓練パラメータを修正するために使用することができる。本開示の特徴及び利点は、訓練の性能の改善をもたらす特定の値を有するように、モデル内の特定の位置における(例えば1つ又は複数の特定の層における)一定の訓練パラメータ(例えば学習率、精度、スパース性)を構成することができる。同様に、例えば訓練プロセスを最適化し、計算を減らし及び/又は精度を改善するために訓練パラメータは時間と共に変更することができる。
【0023】
[0048] 図3Bは、一実施形態による、人工ニューラルネットワークを訓練するためのマッピングシステムを示す。この例では、マッピングシステム332が統計モニタ340、マッピング規則342、及び訓練パラメータ調節出力344を含み得る。マッピングシステム332は、例えばマッピングシステム132の一例であり得る。
【0024】
[0049] 一部の実施形態では、統計モニタ340が、1つ又は複数のAIプロセッサ上で実行されている所与のモデルに関連する値を受信し、(例えば平均、標準偏差、又はゼロのパーセンテージを決定する)統計の処理を実行し、マッピング規則342に統計を送信することができる。モデルの実行中に生成される値は、AIプロセッサによる訓練プロセスの実行中の様々な時点においてモデルの様々な部分を実行しているAIプロセッサから受信され得る。この例では、統計が例えば訓練されているモデル内の特定の層において取られる勾配雑音301、活性化302、逆伝播の勾配303、重み304、及び重みの更新305の測定を含み得る。上記で述べたように、統計の測定は例えば平均、標準偏差、及び/又はゼロ値のパーセンテージ(又は等価に非ゼロ値)のうちの1つ又は複数を含み得る。マッピング規則342は、1つ又は複数のモニタされる統計と1つ又は複数の訓練パラメータとの間の関係を指定する。例えば統計と訓練パラメータとの間の関係を確立し、統計に基づいて訓練パラメータを制御して訓練を最適化するためのマッピング規則を定めるために、例えばより小さいモデルのサイズを使用してモデルの訓練を特徴付けることによってマッピング規則を生成することができる。従って、例えば訓練の精度を改善するために及び/又は訓練プロセスの計算効率を上げるために、これらの統計はモデルのサイズ310、バッチサイズ311、(例えば特定の位置又は特定の時点における)学習率312、(例えば特定のノード又は層における)精度313、及びスパース性314を動的に調節するために使用することができる。
【0025】
[0050] 本開示の実施形態はニューラルネットワークモデル内の特定の位置における勾配雑音301をモニタし、勾配雑音を所定の範囲内に制御するために訓練パラメータを調節することができる。当業者に知られているように、勾配雑音は逆伝播の勾配における雑音を指す。例えば勾配雑音は、勾配の信号対雑音比として表すことができる。一部の事例では、勾配雑音が量子化効果(例えば2進値による勾配の表現)に関係し得る。従って、勾配雑音は量子化雑音対信号比(QNSR)の関数とすることができ、例えば信号は理想的な勾配値である。ネットワーク内の一定のノード又は層において「膨大な」量の勾配雑音が存在するとき、改善された訓練がもたらされ得る。従って本開示の実施形態は、ネットワーク内の特定の位置において及び/又は訓練中の特定の時点において勾配雑音をモニタし、勾配雑音を所定の範囲内に保つために一定の訓練パラメータを調節することができる。
【0026】
[0051] 例えば勾配雑音はバッチサイズの関数であり、小さいバッチは多くの勾配雑音をもたらし、大きいバッチサイズは少ない勾配雑音をもたらす(例えばバッチの勾配が理想的な勾配に近づく)。別の例として、量子化雑音(例えばQNSR)は精度(例えばビット数)が上がると減少し、精度が下がると増加する。量子化雑音が増加すると勾配雑音も増加する。従って、例えばモデルの特定の部分(例えばノード又は層)においてモニタされる勾配雑音に基づいてネットワーク内の勾配雑音に影響を与える訓練パラメータを訓練中に調節して、それらの位置及び/又は時点における勾配雑音を最適な値域の範囲内に保つことができる。
【0027】
[0052] 同様に、モデルのサイズ310、バッチサイズ311、学習率312、精度313、又はスパース性314を制御するために、勾配雑音301、活性化302、勾配303、重み304、及び重みの更新305に関する統計を単独で又は様々な組み合わせでマップすることができる。有利には、例えば訓練を最適化するために、訓練されているモデルの異なる部分が異なるように構成されるように、学習率312、精度313、及び/又はスパース性314がネットワークモデルの特定の部分を標的とすることができる。従って一部の実施形態の例では、制御された統計C1...CNによって示すように効率的な訓練を促進するために、モニタ値が最適範囲(例えばa>x、a<x<b、x<a)内に保たれ得る。
【0028】
[0053] 図4は、一実施形態による人工ニューラルネットワークを訓練する方法を示す。この例では、大きいニューラルネットワークモデルを訓練するために小さいニューラルネットワークモデル(例えば少ないノード、層、又は重み)を訓練して、モニタされる統計と訓練パラメータとの間の関係を効率的に特徴付けることができる。
【0029】
[0054] 402で、1つ又は複数の制御プロセッサが、所与の応用に関する第1のモデルのサイズ(例えば小さいサイズ)を有する第1のニューラルネットワークモデルを受信することができる。404で、制御プロセッサは1つ又は複数のAIプロセッサ上で第1の訓練プロセスを実行するために訓練パラメータに基づいて第1のモデルを構成することができる。406で、制御プロセッサはAIプロセッサによる第1の訓練プロセスの実行時にもたらされる第1のモデルの様々な位置における複数の統計をモニタすることができる。一部の実施形態では、制御プロセッサは訓練パラメータの値(又は設定)の変化に基づいて統計がどのように変化するのかをモニタすることができる。408で、制御プロセッサは統計と訓練パラメータとの間の関係(例えば訓練パラメータの変化に基づいて統計がどのように変化するのか)を特徴付ける1つ又は複数のマッピングを生成し得る。
【0030】
[0055] 様々な実施形態において、マッピングは統計と訓練パラメータとの間の関係を様々なやり方で特徴付けることができる。例えばマッピングは、モデルのサイズ、バッチサイズ、学習率、精度、スパース性、重みの減衰、訓練ステップ等(例えば訓練パラメータ)の調節と、逆伝播の勾配、勾配雑音、ノードの活性化、重み、重みの更新等(例えば統計)の測定との間の関係を特徴付けることができる。一定の実施形態では、マッピングがモデルのサイズと勾配雑音との間の、バッチサイズと勾配雑音との間の、バッチサイズと逆伝播の勾配との間の、学習率と逆伝播の勾配との間の、学習率と勾配雑音との間の、精度と逆伝播の勾配との間の、精度と勾配雑音との間の、重みの減衰と活性化との間の、重みの減衰と勾配雑音との間の、学習率と活性化との間の、スパース性と勾配雑音等との間の関係を特徴付けることができる。一部の実施形態では、大きいモデルに効率的に適用するために特徴付けが小さいモデル(例えば第1のモデル)の訓練中に経験的に決定され得る。一部の実施形態では、マッピングが統計の経験的測定に基づき得る。統計と訓練パラメータとの間の特徴付け及びマッピングの例を以下に提示する。
【0031】
[0056] 図4の例に戻り、410で、制御プロセッサが第2のモデルのサイズ(例えば大きいサイズ)を有する第2のニューラルネットワークモデルを受信することができる。412で、制御プロセッサが408で生成されたマッピングをロードして、マッピングに従って調節される訓練パラメータを使用してAIプロセッサ上で第2の訓練プロセスを実行するように第2のモデルを構成することができる。有利には、AIプロセッサは第1のモデルの第1の訓練プロセスからの特徴付けに基づいて第2のモデルの第2の訓練プロセスを実行するように構成され得る。
【0032】
[0057] 第2のモデルは、AIプロセッサによる訓練の準備が整っているものとすることができる。従って414で、制御プロセッサはAIプロセッサによる第2の訓練プロセスの実行時にもたらされる第2のモデル内の一定の位置における複数の統計をモニタすることができる。416で、1つ又は複数の統計が所定の範囲内にあるかどうかを制御プロセッサが判定することができる。1つ又は複数の統計が所定の範囲内にある場合(はい)、414で、制御プロセッサは訓練プロセス中に複数の統計をモニタし続けることができる。しかし1つ又は複数の統計が所定の範囲内にない場合(いいえ)、418で、制御プロセッサは1つ又は複数の統計を所定の範囲内に保つために統計に基づいて訓練パラメータを調節することができる。次いで420で、制御プロセッサは、第2の訓練プロセスを実行するために調節済みの訓練パラメータに基づいてモデルを構成し、414に戻ることができる。特徴付けが小さいモデル上で計算的に高速でより実現可能であり、大きいモデルで計算的に非現実的であるように、様々な実施形態において第1のモデルが第2のモデルよりも著しく(例えば数桁)小さくあり得る。有利には、モニタされる統計と第1のモデルの訓練パラメータとの間の関係を第2のモデルに後で適用するために特徴付けることにより、第2のモデルを訓練することに関して処理するための計算資源及び/又は時間の低減(例えば計算サイクルの低減)を実現することができる。
【0033】
[0058] 一例では、図5Aは一実施形態による、第1のモデル510aを訓練することによってマッピングを生成するように構成されるシステムを示し、図5Bは第2のモデル510bを訓練するためにマッピングをロードするように構成されるシステムを示す。この例では図5Aに示すように、制御プロセッサ502が、所与の応用に関する第1のモデルのサイズ(例えば小さいサイズ)を有する第1のモデル510aを受信することができる。制御プロセッサ502は、1つ又は複数のAIプロセッサ504上で第1の訓練データ516aを実行するために訓練パラメータ512に基づいて第1のモデル510aを構成することができる。制御プロセッサ502は、第1の訓練データ516aを使用する訓練プロセスの実行時にもたらされる第1のモデル510aの各層における統計をモニタすることができる。この例では、制御プロセッサ502が統計と訓練パラメータとの間の関係を特徴付ける1つ又は複数のマッピングを生成するためにマッピングジェネレータ532aを実装し得る。
【0034】
[0059] 一部の実施形態では、マッピングシステムが所与のバジェットに関してモデルの性能を最大化することができる。例えばモデルの精度、サイズ、勾配雑音等の様々なネットワークハイパーパラメータの挙動が単一の又は一連の小さいネットワークの訓練中に訓練の統計にどのように影響を及ぼすのかを観測するカスタムモデルをフィットすることによってマッピングシステム532bを作成するために、マッピングジェネレータ532aを使用することができる。前の小さい実行から生成されるマッピングは訓練の統計及びモデルの性能データと組み合わせることができる。この情報は、モデルのサイズ、モデルの精度等を含む1組の入力ハイパーパラメータを所与としてモデルの性能を予測するモデル(例えばニューラルネットワークモデル)を訓練するために使用される。このマッピングシステムを使用し、より大きいモデルのための最適なハイパーパラメータを生成することができる。例えばマッピングシステムはサイズ及び計算バジェットに基づいてモデルの性能を予測し、その予測の信頼度をユーザに示すことができる。マッピングシステムが前の実行から自動で訓練されるにつれ、更なるユーザ入力が必要とされない場合があり、ディープラーニングモデルの様々なハイパーパラメータを手動で調整する必要性をなくす。従って一定の実施形態の例では、例えば各構成(例えば様々な精度又はスパース性)のゼロショット設定におけるモデルの挙動を(例えば精度に関して)予測することができる自動化された確率的ツールとしてべき法則及び典型的なモデルの統計を使用することができる。
【0035】
[0060] 図5Bに示すように、制御プロセッサ502は第2のモデルのサイズ(例えば大きいモデルのサイズ)を有する第2のモデル510bを受信することができる。制御プロセッサ502は、マッピングジェネレータ532aによって生成されるマッピングをロードするためにマッピングシステム532bを実装することができる。次いでマッピングシステム532bは、訓練パラメータ512及び訓練データ516bを使用してAIプロセッサ504上で第2の訓練プロセスを実行するために第2のモデル510bを構成することができる。有利には、訓練の性能を改善するために、小さいモデルを使用してマッピングを決定するために使用された同じパラメータを今度は大きいモデル内のモニタ済みの統計に基づいて調節することができる。とりわけ制御プロセッサ502は、第2の訓練プロセスの実行時にもたらされる第2のモデル510b内の様々な位置における統計(例えば小さいモデルにあるのと同じ層における同じ統計)をモニタすることができる。1つ又は複数の統計が所定の範囲内にない場合、制御プロセッサ502は1つ又は複数の統計を所定の範囲内に保つためにモニタ済みの統計の測定に基づいて第2の訓練パラメータ512の1つ又は複数を調節することができる。第2の(大きい)モデル510bに後で適用するためにモニタ済みの統計と第1の(小さい)モデル510aのための訓練パラメータとの間の関係を特徴付けることにより、第2のモデル510bを訓練する際に処理するための計算資源及び/又は時間の低減(例えば計算サイクルの低減)を実現することができる。
【0036】
[0061] 様々な実施形態において、図5Aのマッピングジェネレータのステップ、並びに図5Bの統計のモニタリング及び訓練パラメータの調節ステップは同じ又は異なる制御プロセッサ502上で実行され得ることを理解すべきである。
【0037】
[0062] 図6は、一実施形態による、統計をもたらし得るニューラルネットワーク600の一例を示す。この例ではニューラルネットワーク600が、1つ又は複数のAIプロセッサ上で訓練プロセスを実行するために訓練パラメータを用いて構成され得るモデル110のようなニューラルネットワークモデルを表し得る。ニューラルネットワーク600は、例えばニューラルネットワークの「n」個の層(L1~Lnでラベル付けし、nは整数である)を定めるグラフを含むことができ、層内のノードは他の層内のノードに接続され、ノード間の接続に訓練可能な重み(例えばパラメータ)が関連付けられる。最初の層(L1)は、訓練データを適用することができる入力層であり得る。最後の層(Ln)は、出力を生成することができる出力層であり得る。L1とLnとの間の層(例えばL2、L3等)は、最初の層(L1)と最後の層(Ln)との間の隠れ層であり得る。最初の層(L1)に近い第2の層(L2)等の層(例えばニューラルネットワークの中間点に対して入力に近い又は入力寄りの層)は、下位層又は先行層と呼ばれ得る。出力層(Ln)に近い、最後の層の前の層n-1(不図示)等の層(例えばニューラルネットワークの中間点に対して出力に近い又は出力寄りの層)は、上位層又は後方層と呼ばれ得る。
【0038】
[0063] 或る演算例では、モデルのノードごとに、AIプロセッサがy=f(x+x+....+x)で表される前方パス計算(前方パスとラベル付けしている)を実行することができ、但しyはノードの出力値を表し、xは接続ノード0からnからの入力値を表し、wはノードからの接続に関連する訓練可能な重み(例えばパラメータ)を表す。訓練中、(例えば出力層における)モデルの出力を対応する入力データセットに関する既知の出力と比較することができる。次いでAIプロセッサは、後方パス計算(例えば逆伝播)(後方パスとラベル付けしている)を実行して勾配及び重みの更新を決定することができる。例えば上記の計算は行列乗算(別称Mat-Mul)演算を使用して実行することができる。特定の精度(例えば特定のビット数及び特定の2進表現)を有するように構成され得る乗算器及び加算器(例えば乗加算器)を使用して活性化及び重みを処理することができる。
【0039】
[0064] モデルの実行中、AIプロセッサはニューラルネットワーク内の特定の点において測定され得る値を各反復時にもたらすことができ、それらの値から統計を生成することができる。上述のように、測定値は活性化値、重み値、勾配値、勾配雑音値、及び重みの更新値を含み得る。この例ではモデルの特定の層に関して(例えば層ごとに)、前方パス及び後方パスの何れか又は両方から生じる、隠れ層における値を含む(上記の)測定値の統計を決定することができる。例えば前方及び後方パスの間、最後の層(例えば出力層又はLn)はL1の統計をもたらし得る最初の層(例えば入力層又はL1)に対してLnの統計等をもたらすことができる。上述のように、実施形態の一例では制御プロセッサがモデルの各層の測定値を受信し、統計を生成することができる。有利には、個々の層における統計をモニタすることは、1つ又は複数の訓練パラメータを調節することによって特定の標的層における統計を制御する能力を与え得る。
【0040】
[0065] この例ではフィードフォワードニューラルネットワークを示すが、本明細書に記載の技法は他のニューラルネットワークトポロジの訓練を改善するために適用可能であり得ることを理解すべきである。
【0041】
[0066] 図7は、一実施形態によるモデルに関するモニタされる統計の例を示すグラフ700を示す。この例は、ニューラルネットワークモデルの特定の部分における特定の統計の範囲を制御することが訓練の性能をどのように改善し得るのかを示す。この例では、自然言語処理の応用(「NLP」)内の12層のトランスフォーマモデル(L0~L11)の一例の各層において平均勾配雑音がモニタされる。ここでは、後の層(例えば出力に近い層)が前の層(例えば入力に近い層)よりも高い勾配雑音を有利に有するように訓練パラメータを調節することによって訓練が改善される。図7に示すように、702でモデルの最後の層(L11)が最も高い勾配雑音を有することができ、704でモデルの最初の層(L0)が最も低い勾配雑音を有することができ、その間の層(L1~L10)はモデル内での各層の減少していく層の位置に従って減少していく勾配雑音レベルを有し得る。前の層よりも高い勾配雑音を有するように後の層を制御することは、例えばNLP内の計算サイクルの対応する減少と共に性能及び収束を有利に改善し得る。しかし、他の(例えば非NLP)領域における応用のための他のモデルでは、モデルにわたる最適な勾配雑音及び他の統計的分布が異なってもよく、それらは例えば上記の特徴付けの技法によって得ることができる。
【0042】
[0067] 図8は、一実施形態による、ニューラルネットワーク800の様々な部分に関連する精度を調節する一例を示す。概して、高い精度(例えば浮動小数点16又は32)はモデルの精度を上げるが、計算資源も増やす。本開示の特徴及び利点は、訓練を改善するためにモデルの様々な部分又は位置において精度(例えば値を表すビット数)を調節することを含む。従って、訓練プロセスを実行しているモデルは一部の位置(例えば特定の層又はノード)では高精度で構成することができ、精度が必要ではない場合がある他の位置では低精度(例えば8ビット整数)で構成することができる。例えば先に示したように、精度は勾配雑音に影響を及ぼし得る。より詳細には、精度は量子化雑音に影響を及ぼす(例えば値を表す小さいビット数は量子化雑音を高め、そのことが勾配雑音を高める)。訓練されているモデルにわたって又はモデルの特定の部分において(例えば特定の層又は特定のノードにおいて)勾配雑音を或る範囲内に保つことが望ましくあり得る。図7の例に示すように、様々な層にわたって勾配雑音を適応させることが望ましくあり得る。従って訓練を改善するために勾配雑音をモニタすることができ、各層において使用される精度を使用して勾配雑音を所定の範囲内に保つことができる。図8では、例えば入力寄りの層(例えばL2及びL3)は、例えば出力寄りの層(例えばLn-1及びLn-2)よりも高い精度で構成することができる。より詳細には、訓練に必要な計算資源を減らすロバストで厳密な精度の訓練を得るために、本開示の特徴及び利点は量子化雑音対信号比(QNSR)及び他のハイパーパラメータの関数として勾配雑音をモデリングし得る。
【0043】
[0068] 図9は、一実施形態による、ニューラルネットワーク900の様々な部分に関連するスパース性を調節する一例を示す。この例では、制御プロセッサ102のような制御プロセッサが、モデルの1つ若しくは複数の標的層及び/又は標的層のノードに関連するスパース性を調節することができる。制御プロセッサは、標的層及び/又はノードに関連する1つ又は複数の統計を所定の範囲内に保つためにスパース性を調節することができる。例えばモデルは、より少ない計算がスキップされより少ない値がゼロに強制されることをもたらす低いスパース性で最初に構成され得る。第2の層(L2)内の低い勾配雑音等の1つ又は複数の統計に基づき、制御プロセッサは、他の層が最初に構成された低いスパース性のままでありながら、より多くの計算がスキップされより多くの値がゼロに強制されることをもたらす高いスパース性を与えるように第2の層(L2)に関連するスパース性を調節することができる。第2の層(L2)のこの調節は、第2の層(L2)内の1つ又は複数の統計を所定の範囲内に保つことを可能にし得る。この例を続け、加えて又は或いは、制御プロセッサは第3の層(L3)の最後のノード等の標的層の所与のノードに関連するスパース性を調節することができる。第3の層(L3)におけるこの調節は、第3の層(L3)に関連する1つ又は複数の他の統計を所定の範囲内に保つことを可能にし得る。モデルの様々な部分においてスパース性を異なるように調節するために、多くの異なる構成があり得ることを理解すべきである。
【0044】
[0069] 図10は、一実施形態による、ニューラルネットワーク1000の様々な部分に関連するモデルのサイズを調節する一例を示す。この例では、制御プロセッサが標的層に関連するノードの数及び/又はモデルに関連する層の数を調節することができる。制御プロセッサは、標的層及び/又は標的層のノードに関連し得る1つ又は複数の統計を所定の範囲内に保つためにモデルのサイズを調節することができる。例えばモデルはn層(L1からLn)で最初に構成され得る。1つ又は複数の統計に基づき、制御プロセッサは第3の層(L3)に隣接して新たな層(例えば測定される統計の層の前の又は後の追加の第4の層(L4))を追加することによって層の数を調節することができ、それによりモデルはn+1層(L1からLn+1)に調節される。モデルのサイズ(例えば追加の第4の層(L4))のこの調節は、1つ又は複数の統計を所定の範囲内に保つことを可能にし得る。この例を続け、加えて又は或いは、第2の層(L2)内のノードの数に追加すること等、制御プロセッサは標的層に関連するノードの数を調節することができる。第2の層(L2)内のこの調節は、第2の層(L2)に関連する1つ又は複数の他の統計を所定の範囲内に保つことを可能にし得る。モデルの様々な部分においてモデルのサイズを異なるように調節するために、多くの異なる構成があり得ることを理解すべきである。
【0045】
[0070] 図11は、一実施形態による、人工ニューラルネットワークをスケールするためにAIプロセッサを使用する方法を示す。この例では、1102で、1つ又は複数のAIプロセッサが、ニューラルネットワークモデルに対して1組の訓練パラメータに関連する訓練プロセスを実行するように構成され得る。AIプロセッサは、AIプロセッサ104のようなものであり得る。1104で、AIプロセッサがモデルの様々な部分において複数の統計を有する値を生成するために訓練プロセスを実行することができる。1106で、システムは1つ又は複数の統計が1つ又は複数の所定の範囲内にあるかどうかを判定することができる。統計が所定の範囲内にある場合(はい)、1104で、AIプロセッサは所定数の訓練ステップによってモデルが収束するまでモデルに関する複数の統計をもたらすために訓練プロセスを実行し続けることができる。しかし統計が所定の範囲内にない場合(いいえ)、1108で、AIプロセッサは統計を所定の範囲内に保つために調節済みの訓練パラメータを用いて訓練プロセスを実行するように構成され得る。次いで1104に戻り、AIプロセッサは、モデル内で複数の統計をもたらすために訓練プロセスを再び実行することができる。
【0046】
[0071] 上記の技法は、人工ニューラルネットワークを処理するように構成される広範なコンピュータシステム内で実装され得る。図12は、上記の開示の中で記載した技法を実装するために使用可能なコンピュータシステム1200の一例の単純化したブロック図を示す。一部の実施形態では、例えば制御プロセッサ102を実装するためにコンピュータシステム1200を使用することができる。図12に示すように、コンピュータシステム1200は、バスサブシステム1204を介して幾つかの周辺装置と通信する1つ又は複数のプロセッサ1202を含む。これらの周辺装置は、(例えばメモリサブシステム1208及びファイル記憶サブシステム1210を含む)記憶サブシステム1206、及びネットワークインタフェースサブシステム1216を含み得る。一部のコンピュータシステムは、ユーザインタフェース入力装置1212及び/又はユーザインタフェース出力装置1214を更に含み得る。
【0047】
[0072] バスサブシステム1204は、コンピュータシステム1200の様々なコンポーネント及びサブシステムに目的通り互いに通信させるためのメカニズムを提供し得る。バスサブシステム1204を単一のバスとして概略的に示すが、バスサブシステムの代替的実施形態は複数のバスを利用し得る。
【0048】
[0073] ネットワークインタフェースサブシステム1216は、コンピュータシステム1200と他のコンピュータシステム又はネットワークとの間でデータを通信するためのインタフェースの役割を果たし得る。ネットワークインタフェースサブシステム1216の実施形態は、例えばイーサネット、Wi-Fi及び/又はセルラアダプタ、モデム(電話、衛星、ケーブル、ISDN等)、デジタル加入者回線(DSL)ユニット及び/又は同様のものを含み得る。
【0049】
[0074] 記憶サブシステム1206は、メモリサブシステム1208及び/又はファイル/ディスク記憶サブシステム1210を含む。サブシステム1208及び1210並びに本明細書に記載の他のメモリは、本開示の実施形態の機能を提供する実行可能プログラムコード及び/又はデータを記憶することができる非一時的コンピュータ可読記憶媒体の例である。
【0050】
[0075] メモリサブシステム1208は、プログラムの実行中に命令及びデータを記憶するための主ランダムアクセスメモリ(RAM)1218、及び固定された命令が記憶される読み出し専用メモリ(ROM)1220を含む幾つかのメモリを含む。ファイル記憶サブシステム1210はプログラム及びデータファイルのための永続(例えば不揮発性)記憶域を提供することができ、磁気又はソリッドステートハードディスクドライブ、関連するリムーバブルメディア(例えばCD-ROM、DVD、Blu-Ray等)と共に光ドライブ、リムーバブルフラッシュメモリベースのドライブ若しくはカード、及び/又は当技術分野で知られている他の種類の記憶媒体を含み得る。
【0051】
[0076] コンピュータシステム1200は例示であり、システム1200よりも多くの又は少ないコンポーネントを有する他の多くの構成が可能であることを理解すべきである。
【0052】
[0077] 図13は、一部の実施形態による人工ニューラルネットワーク処理システムを示す。様々な実施形態において、本開示によるニューラルネットワーク(例えばニューラルネットワーク600)は、1つ又は複数のニューラルネットワークプロセッサ(例えばAIプロセッサ)を含むハードウェア環境内で実装され訓練され得る。ニューラルネットワークプロセッサは、例えば様々なグラフィックス処理ユニット(GPU)(例えばNvidia Corp(登録商標)によって製造されるニューラルネットワークを処理するためのGPU)、書き換え可能ゲートアレイ(FPGA)(例えばXilinx(登録商標)によって製造されるニューラルネットワークを処理するためのFPGA)、又はニューラルネットワークの計算に関して最適化されたハードウェアアーキテクチャを含む様々な特定用途向け集積回路(ASIC)若しくはニューラルネットワークプロセッサを指し得る。この環境の例では、上記の図12に示したアーキテクチャを含み得る1つ又は複数のサーバ1302が通信ネットワーク1301(例えばスイッチ、ルータ等)上で複数のコントローラ1310(1)~1310(M)に結合され得る。コントローラ1310(1)~1310(M)も、上記の図12に示したアーキテクチャを含み得る。各コントローラ1310(1)~1310(M)は、例えば処理ユニット1311(1)~1311(N)及び1312(1)~1312(N)等の1つ又は複数のニューラルネットワーク(NN)プロセッサに結合され得る。NN処理ユニット1311(1)~1311(N)及び1312(1)~1312(N)は、訓練又は推論等のニューラルネットワーク処理について最適化された機能処理ブロック及びメモリの様々な構成を含み得る。NNプロセッサはニューラルネットワークの計算について最適化される。サーバ1302は、例えばNN処理ユニット1311(1)~1311(N)及び1312(1)~1312(N)によって並列にロードされ実行され得る、NNモデル並びにモデルへの入力データを用いてコントローラ1310を構成することができる。モデルは例えば上記のように層及び関連する重みを含み得る。NN処理ユニットはモデルをロードし、入力を適用して出力結果をもたらすことができる。NN処理ユニットは、例えば本明細書に記載の訓練アルゴリズムを実装することもできる。
【0053】
[0078] 図14は、一実施形態による、検証損失(例えば予測精度)対訓練のための計算資源及び時間(例えばpetaflops/s-days*計算の単位当たりのコスト)の最適化を示すグラフ1400の一例を示す。この例では(一番右の下向きの破線として示す)第1の破線1402が、より高い精度又はビット幅(例えばFP32)に関連する様々なサイズのモデルの計算最適パレートフロンティアのプロットである。線1402と交差して示すモデルは、例えば曲線1402aによって示す1011個のパラメータ(例えば重み)から曲線1402bによって示す10個のパラメータに及ぶ様々なモデルのサイズを有する。多くのパラメータを有するモデル(例えば1402a)は、少ないパラメータを有するモデル(例えば1402b)よりも低い検証損失(例えば予測精度が高いこと)を実現する。しかし、多くのパラメータを有するモデル(例えば1402a)は、少ないパラメータを有するモデル(例えば1402b)よりも処理するために多くの計算資源及び時間を必要とする。
【0054】
[0079] 計算最適パレートフロンティアは、精度を下げること(例えば7ビット)によって(中間にある下向きの破線として示す)第2の破線1403にシフトすることができる。同様に、精度を3ビットまで下げることは点線1404によって示す別のパレートフロンティアをもたらし得る。それぞれの事例において、モデルのサイズがスケールすると共に精度が上がるが、コンピュータ(及びコスト)も増加する。但しこの例は、部分的に重なるパレート曲線が1405で示す新しくより最適な曲線を作り出すことを示す。パレート曲線1405では、モデルのサイズが増加するにつれて精度を下げることが所与の精度に関する計算資源の減少をもたらし得る。従って、本開示の一部の実施形態は、例えば訓練ステップ(及び計算サイクル)の数を減らして特定の検証損失を実現するために、モデルのサイズが増加するにつれて訓練されているモデルの少なくとも一部における精度を下げることができる。
【0055】
特徴付け及びマッピングの例
[0080] 本明細書で論じたように、様々な実施形態において、図1のマッピングシステム132のようなマッピングシステムによって実装されるマッピングは、訓練パラメータを調節してニューラルネットワークの訓練を最適化するために、統計と訓練パラメータとの間の関係を効率的に特徴付けることができる。以下は、訓練を改善するために訓練パラメータにマップされるネットワーク統計の例である。
【0056】
[0081] 第1の例では、6個の層を有するより大きいトランスフォーマモデル(例えば2000万個のパラメータ)を訓練するとき、勾配雑音(例えば統計)をモニタし、訓練パラメータを選択的に調節することによって制御することができる。モデルに関して、勾配雑音の以下の傾向が特徴付けられ得る:勾配雑音は収束のための訓練ステップの総数の1~10%後に所望の閾値の範囲内で安定することができ、精度を下げること(例えば量子化におけるビット数を減らすこと)は勾配雑音を増やす可能性があり、学習率を下げることは勾配雑音を増やす可能性があり、学習率を上げることは勾配雑音を減らす可能性があり、バッチサイズを減らすことは勾配雑音を増やす可能性があり、バッチサイズを増やすことは勾配雑音を減らす可能性がある。従って勾配雑音は、上記の訓練パラメータ(例えば精度、学習率、及び/又はバッチサイズ)の1つ又は複数を修正することによって制御することができる。所定の範囲に関する標的勾配雑音は、例えばBcrit(L)=BL1/αB等の知られている閉形式推定を使用することによって決定することができ、Bは約2・10トークン、αBは約0.21、但しBはバッチサイズを表し、Lはクロスエントロピー損失を表し、αはスケーリングのためのべき乗指数を表す。加えて又は或いは、標的勾配雑音は知られている構成と共に訓練を所定の時間にわたってモニタすることによって決定され得る。
【0057】
[0082] 図15Aに関して、高い精度又はビット幅(例えば16ビット)でトランスフォーマモデルの例を訓練するとき、勾配雑音は図示のように層のそれぞれにおいて約104.5で安定するようにモニタされ得る。図15Dを更に参照し、これは幾つかの訓練ステップにわたる所与の検証損失(例えば予測精度)での高精度モデルの収束を示すグラフ1502をもたらし得る。
【0058】
[0083] 図15Bを参照し、モデルの例を低い精度又はビット幅(例えば12ビット)で、及び訓練パラメータを調節することなしに(例えば最適化なしに)訓練するとき、勾配雑音は図示のようにとりわけ最初の2つの層において著しく増加し得る。再び図15Dを参照し、これは幾つかの訓練ステップにわたる最適化なしの低精度モデルの発散(例えば予測精度が失われること)を示すグラフ1504をもたらし得る。
【0059】
[0084] しかしこの例では、勾配雑音を制御するための1つ又は複数の訓練パラメータを調節することによって低精度モデルを最適化することができる。例えば、ネットワーク内の最初の層と最後の層との間の率へのべき級数適合(power series fit)によって学習率をスケールすることができる:f(x)=ax。最初の層ではx=1に、最後の層ではx=6に方程式を適合することにより、層ごとの学習率のスケールを使用することができる。学習率は勾配雑音を制御するために使用され得る1つの訓練パラメータであり、最初の層に対して各層をスケールすることにより、低精度モデル(例えば12ビット)に関して勾配雑音を制御することができる。
【0060】
[0085] 再び図15Dを参照し、これは幾つかの訓練ステップにわたる最適化ありの低精度モデルの収束(例えば予測精度が上がること)を示すグラフ1506をもたらし得る。従って、層内の勾配を制御するために低精度モデルの層内の学習率及び/又は重みの減衰を調節することはモデルの収束の成功をもたらし得る。これらの関係がモデルに関して特徴付けられ、しかるべくマップされ得る。
【0061】
[0086] 第2の例では、2つの層を有するトランスフォーマモデルを訓練するとき、活性化の標準偏差及び勾配の標準偏差をモニタし、学習率及び/又は重みの減衰(例えば訓練パラメータ)を調節することによって制御することができる。図16Aに関して、グラフ1602は、幾つかの訓練ステップにわたる収束(例えば安定する検証損失の減少)をもたらす高い精度又はビット幅に関連するモデルを示す。但しグラフ1604は、幾つかの訓練ステップにわたる発散(例えば検証損失の増加)をもたらす(例えば最適化なしの)低い精度又はビット幅に関連するモデルを示す。
【0062】
[0087] 図16Bを参照し、(例えばトランスフォーマモデルの注意層内の)層の活性化の標準偏差を高精度モデル、グラフ1612と(例えば最適化なしの)低精度モデル、グラフ1614との間で比較することができる。具体的には、低精度モデルは高精度モデルと比較したときノードの活性化の著しい増加を招く。従って、低精度モデルを制御し最適化するために、層の活性化の標準偏差と学習率及び/又は重みの減衰等の訓練パラメータとの間の関係を特徴付けることができる。
【0063】
[0088] 更に図16Cを参照し、層の勾配の標準偏差を高精度モデル、グラフ1622と(例えば最適化なしの)低精度モデル、グラフ1624との間で比較することができる。具体的には、低精度モデルは高精度モデルと比較したとき訓練の初期部分において著しく小さい勾配を招く。従って、低精度モデルを制御し最適化するために、層の勾配の標準偏差と学習率及び/又は重みの減衰等の訓練パラメータとの間の関係を特徴付けることができる。
【0064】
[0089] 図17A~Bは、精度及びゼロのパーセンテージ間の関係を示す。図17Aに関して、グラフ1702は幾つかの訓練ステップにわたる異なる精度(又はビット幅)に関する損失曲線を示す。プロット1704は、幾つかの訓練ステップにわたる発散(例えば検証損失の増加)をもたらす(例えば最適化なしの)低い精度又はビット幅に関連するモデルを示す。様々なレベルの精度に関連するモデルの追加のグラフをグラフ1702とグラフ1704との間に示す。
【0065】
[0090] 図17Bに関して、層の活性化(例えばSelfAttention層)のゼロ値のパーセンテージを(例えば最適化なしの)低精度モデル、グラフ1714と次第に増加している精度レベルを有するモデルとの間で比較することができる。具体的には、低精度モデルは次第に増加している精度レベルを有するモデルと比較したときより大きいゼロのパーセンテージを含む。
【0066】
[0091] 最後に、図17Cを更に参照し、層の活性化(例えば多層パーセプトロン)のゼロ値のパーセンテージを(例えば最適化なしの)低精度モデル、グラフ1724と次第に増加している精度レベルを有するモデルとの間で比較することができる。具体的には、低精度モデルは次第に増加している精度レベルを有するモデルと比較したときより大きいゼロのパーセンテージを含み、この事例では約60,000回の反復時に活性化値の35%がこの層内でゼロである。
【0067】
[0092] 従って訓練を制御し最適化するために、一定の層の活性化のゼロ値のパーセンテージと訓練パラメータとの間のこれらの関係を特徴付けることができる。
【0068】
更なる実施形態の例
[0093] 様々な実施形態において、本開示は人工ニューラルネットワークを最適化するためのシステム、方法、及び機器を含む。本明細書に記載した技法はコンピュータシステムによって実行可能なプログラムを記憶する非一時的機械可読媒体によって実施することができ、プログラムは本明細書に記載した技法を実行するための命令の組を含む。一部の実施形態では、1つ又は複数の制御プロセッサと、1つ又は複数の制御プロセッサの少なくとも1つによって実行されるとき少なくとも1つの制御プロセッサに上記の技法を実行させる命令を記憶する非一時的機械可読媒体とをシステムが含む。一部の実施形態では、非一時的機械可読媒体は、例えば1つ若しくは複数の制御プロセッサ又は1つ若しくは複数の人工知能プロセッサに結合され得る例えばメモリとすることができる。
【0069】
[0094] 以下の技法は単独で又は様々な組み合わせで実施することができ、本明細書に記載した他の技法と共に更に実施することができる。
【0070】
[0095] 例えば一実施形態では、本開示は1つ又は複数の人工知能(AI)プロセッサと、1つ又は複数の制御プロセッサと、1つ又は複数の制御プロセッサによって実行可能なプログラムコードを記憶している非一時的コンピュータ可読記憶媒体とを含み、プログラムコードは、人工ニューラルネットワークモデルを受信し、1つ又は複数のAIプロセッサ上で訓練プロセスを実行するために複数の訓練パラメータに基づいてモデルを構成すること、訓練プロセスの実行時にもたらされる複数の統計をモニタすること、及び複数の統計の少なくとも1つを所定の範囲内に保つために、複数の訓練パラメータの1つ又は複数の訓練パラメータを複数の統計の1つ又は複数の統計に基づいて調節することを1つ又は複数の制御プロセッサに行わせる。
【0071】
[0096] 一実施形態では、調節するステップが、標的層に関連する複数の統計の少なくとも1つを所定の範囲内に保つためにモデルの標的層に関連する精度を調節することを含む。
【0072】
[0097] 一実施形態では、モデルのサイズが増加するにつれてモデルの少なくとも一部の精度をシステムが更に下げる。
【0073】
[0098] 一実施形態では、モニタするステップが、モデルの標的層に関連する1つ又は複数の統計をモニタすることを含む。
【0074】
[0099] 一実施形態では、1つ又は複数の統計がニューラルネットワークの勾配雑音の測定を含む。
【0075】
[00100] 一実施形態では、調節するステップがモデルの標的層に関連する1つ又は複数の訓練パラメータを調節することを含む。
【0076】
[00101] 一実施形態では、標的層が隠れ層である。この実施形態では、1つ又は複数の訓練パラメータが標的層の精度を構成するパラメータを含む。
【0077】
[00102] 一実施形態では、標的層が隠れ層である。この実施形態では、1つ又は複数の訓練パラメータが標的層のスパース性を構成するパラメータを含む。
【0078】
[00103] 一実施形態では、標的層が隠れ層である。この実施形態では、1つ又は複数の訓練パラメータが標的層に関連するノードの数を構成するパラメータを含む。
【0079】
[00104] 一実施形態では、標的層が隠れ層である。この実施形態では、1つ又は複数の訓練パラメータがモデルに関連する層の数を構成するパラメータを含む。
【0080】
[00105] 一実施形態では、複数の訓練パラメータがモデルに関連する精度を構成するパラメータを含む。この実施形態では、モデルがモデルの第1の層に関連する第1の精度及びモデルの第2の層に関連する第2の精度で構成され、第1の精度は第2の精度よりも高く、第1の層はモデルの入力に近い層であり、第2の層はモデルの出力に近い層である。
【0081】
[00106] 一実施形態では、複数の訓練パラメータがスパース性を構成するパラメータを含む。一実施形態では、モデルがモデルの第1の層に関連する第1のスパース性及びモデルの第2の層に関連する第2のスパース性を用いて構成され、第1のスパース性は第2のスパース性と異なり、第1の層はモデルの入力に近い層であり、第2の層はモデルの出力に近い層である。
【0082】
[00107] 一実施形態では、モデルが第2のサイズを有する第2のモデルであり、訓練プロセスが第2の訓練プロセスである。この実施形態では、受信するステップの前に、第1の訓練プロセスを実行するために第1のモデルを受信し、複数の訓練パラメータに基づいて第1のモデルを構成することであって、第1のモデルは第2のモデルの小さいバージョンであり、第1のモデルは第1のモデルのサイズを有し、第1のモデルのサイズは第2のモデルのサイズよりも大幅に小さい、構成すること、第1の訓練プロセスの実行時にもたらされる複数の統計をモニタすること、及び複数の統計と複数の訓練パラメータとの間の1つ又は複数のマッピングを生成することをプログラムコードが1つ又は複数の制御プロセッサに行わせる。
【0083】
[00108] 一実施形態では、第2の訓練プロセスを実行するために、1つ又は複数の統計に基づいて1つ又は複数の訓練パラメータを調節するための1つ又は複数のマッピングをプログラムコードが1つ又は複数の制御プロセッサにロードさせる。
【0084】
[00109] 一実施形態では、統計とパラメータとの間の関係を形成する訓練済みモデルを含む1つ又は複数のマッピングをプログラムコードが1つ又は複数の制御プロセッサにロードさせる。
【0085】
[00110] 一実施形態では、複数の訓練パラメータが、モデルのサイズを構成するパラメータ、バッチサイズを構成するパラメータ、学習率を構成するパラメータ、精度を構成するパラメータ、及びスパース性を構成するパラメータのうちの1つ又は複数を含む。
【0086】
[00111] 一実施形態では、複数の統計が、ニューラルネットワークの勾配の測定、ニューラルネットワークの勾配雑音の測定、ニューラルネットワークのノードの活性化の測定、ニューラルネットワークの重みの測定、及びニューラルネットワークの重みの更新の測定のうちの1つ又は複数を含む。
【0087】
[00112] 一実施形態では、1つ又は複数の測定が、平均値の測定、標準偏差の測定、及びゼロ値のパーセンテージの測定のうちの1つ又は複数を含む。
【0088】
[00113] 一実施形態では、複数のAIプロセッサ上で実行されるように訓練プロセスが区分化される。この実施形態では、複数の統計の測定が複数のAIプロセッサから受信される。
【0089】
[00114] 一実施形態では、本開示が人工ニューラルネットワークモデルに対する訓練プロセスを実行するように構成される1つ又は複数のAIプロセッサであって、訓練プロセスは関連する1組の訓練パラメータを有し、訓練プロセスを実行することは複数の統計をもたらす、1つ又は複数のAIプロセッサと、1つ又は複数のAIプロセッサに結合される1つ又は複数の制御プロセッサであって、複数の統計を受信し、それに従って訓練プロセスの実行中に複数の統計の少なくとも1つを所定の範囲内に保つために訓練パラメータの1つ又は複数を調節するように構成される、1つ又は複数の制御プロセッサを含む。
【0090】
[00115] 上記の説明は、特定の実施形態の態様が実装され得る方法の例と共に本開示の様々な実施形態を示す。上記の例は唯一の実施形態と見なすべきではなく、添付の特許請求の範囲によって定める特定の実施形態の柔軟性及び利点を示すために提示した。上記の開示及び添付の特許請求の範囲に基づき、添付の特許請求の範囲によって定める本開示の範囲から逸脱することなしに他の構成、実施形態、実装形態、及び等価物を採用することができる。
図1
図2
図3A
図3B
図4
図5A
図5B
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15A
図15B
図15C
図15D
図16A
図16B
図16C
図17A
図17B
図17C
【国際調査報告】