JP2023060820A - 機械学習モデル・スケーリングのためのディープ・ニューラル・ネットワーク最適化システム - Google Patents
機械学習モデル・スケーリングのためのディープ・ニューラル・ネットワーク最適化システム Download PDFInfo
- Publication number
- JP2023060820A JP2023060820A JP2022147630A JP2022147630A JP2023060820A JP 2023060820 A JP2023060820 A JP 2023060820A JP 2022147630 A JP2022147630 A JP 2022147630A JP 2022147630 A JP2022147630 A JP 2022147630A JP 2023060820 A JP2023060820 A JP 2023060820A
- Authority
- JP
- Japan
- Prior art keywords
- model
- matrix
- training
- knowledge
- sparse
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
【課題】機械学習モデルを最適化する装置、方法及びプログラムを提供する。【解決手段】スパース蒸留を使用する同時最適化フレームワーク100において、機械学習モデルのスパース蒸留のための装置102は、シングルの機械学習訓練エポックの間に、スーパーネットの知識をサブネットへ蒸留する知識蒸留メカニズムと、シングルの機械学習訓練エポックの間に、1つ以上のパラメータをサブネットからプルーニングし、スパースな蒸留されたサブネットを生成するプルーニング・メカニズムと、を含む。【選択図】図1
Description
[0001] 本件で説明される実施形態は、一般に、人工知能(AI)、機械学習(ML)、及びニューラル・アーキテクチャ探索(NAS)技術に関連し、特にディープ・ニューラル・ネットワーク(DNN)モデルの設計及び最適化の技術に関連する。
[0002] 機械学習(ML)は、経験を通じて及びデータを使用することによって自動的に改善してゆくコンピュータ・アルゴリズムの学問である。機械学習を実行することは、統計モデル(又は単に「モデル」)を作成することを含み、これは、予測及び/又は推論を行うためにデータを処理するように構成される。MLアルゴリズムは、サンプル・データ(「訓練データ」と呼ばれる)を使用して及び/又は過去の経験に基づいてモデルを構築し、予測又は決定を、明示的にそうするようにプログラムされることなく行う。
[0003] MLモデル設計は、所与のMLモデルの構造、パラメータ、及び/又はハイパーパラメータを調整するために、訓練と検証の高度に反復的なサイクルを含む長いプロセスである。訓練と検証は、特に、ディープ・ニューラル・ネットワーク(DNN)等のような、より大きなMLアーキテクチャの場合、時間のかかるリソース負担の大きなものである可能性がある。従来のML設計技術はまた、多くのユーザーの手の届かない、比較的大量の演算リソースを必要とするかもしれない
[0004] モデルの効率は、リソース消費、速度、精度、及びその他のパフォーマンス・メトリックの観点から言えば、MLモデルに使用されるパラメータの数とタイプに部分的に基づいている。MLモデルに使用されるパラメータは、「モデル・パラメータ」(単に「パラメータ」とも呼ばれる)及び「ハイパーパラメータ」を含む。モデル・パラメータは、訓練によって導出されるパラメータであるが、ハイパーパラメータは、その値が学習プロセスの局面を制御するために使用されるものであり、通常、MLモデルを実行する前に設定されなければならない。モデル・パラメータ及び/又はハイパーパラメータの変更は、所与のMLモデルのパフォーマンスに大きな影響を及ぼす可能性がある。特に、パラメータの数を減らすことは、モデルのパフォーマンスを低下させる可能性があるが、モデルがより多くのパラメータを伴う場合よりも、そのモデルがより速く動作し且つより少ないメモリを使用することを可能にするかもしれない。
[0004] モデルの効率は、リソース消費、速度、精度、及びその他のパフォーマンス・メトリックの観点から言えば、MLモデルに使用されるパラメータの数とタイプに部分的に基づいている。MLモデルに使用されるパラメータは、「モデル・パラメータ」(単に「パラメータ」とも呼ばれる)及び「ハイパーパラメータ」を含む。モデル・パラメータは、訓練によって導出されるパラメータであるが、ハイパーパラメータは、その値が学習プロセスの局面を制御するために使用されるものであり、通常、MLモデルを実行する前に設定されなければならない。モデル・パラメータ及び/又はハイパーパラメータの変更は、所与のMLモデルのパフォーマンスに大きな影響を及ぼす可能性がある。特に、パラメータの数を減らすことは、モデルのパフォーマンスを低下させる可能性があるが、モデルがより多くのパラメータを伴う場合よりも、そのモデルがより速く動作し且つより少ないメモリを使用することを可能にするかもしれない。
[0005] 例えば、既存のコンピュータ・ビジョン・モデルは、畳み込みベースのアーキテクチャ(例えば、畳み込みニューラル・ネットワーク(CNN))に大きく依存しており、それは、受容野サイズに関して豊富にはスケーリングされず、入力の全て部分に、同じセットのウェイトを適用しており、モデル・サイズが大きくなるにつれてパラメータ及び浮動小数点演算(FLOP)において著しい増加をもたらす。これは、特に、ニューラル・アーキテクチャ探索(NAS)、連合学習(federated learning)などのようなアプリケーションの状況において、訓練、最適化及び推論の時間の増加を招く可能性がある。
[0006] MLモデル効率を改善するための現在のアプローチは、推論展開のためのモデルに必要な演算及び/又は記憶バジェットを削減するために、知識蒸留(knowledge distillation)又はプルーニング(pruning)を単独で使用することを含む。これらのアプローチについては、以下で説明されている:
Gou et al., "Knowledge distillation: A survey", Int'l J. of Comp. Vision, vol. 129, no. 6, pp. 1789-819 (2021) (“[Gou]”) 及び
Cheng et al., “A Survey of Model Compression and Acceleration for Deep Neural Networks”, IEEE Signal Processing Mag., Special Issue on Deep Learning for Image Understanding, arXiv:1710.09282v9 (14 Jun 2020) (“[Cheng]”)。
しかしながら、これらの現在のアプローチは、高度に反復的な訓練プロセスを含み、それは訓練時間とリソース利用オーバーヘッドを増加させる。これらの欠点はまた、かなりのパラメータ・チューニングの必要性によっても悪化させられ、従って、これらのアプローチは疑いもなくスケーラブルではない。このような長時間のファイン・チューニング・プロセスの後でさえ、現在のアプローチは、MLモデルの精度、モデルのサイズ、速度、及びパワーの間の合理的な妥協を保証していない。
Gou et al., "Knowledge distillation: A survey", Int'l J. of Comp. Vision, vol. 129, no. 6, pp. 1789-819 (2021) (“[Gou]”) 及び
Cheng et al., “A Survey of Model Compression and Acceleration for Deep Neural Networks”, IEEE Signal Processing Mag., Special Issue on Deep Learning for Image Understanding, arXiv:1710.09282v9 (14 Jun 2020) (“[Cheng]”)。
しかしながら、これらの現在のアプローチは、高度に反復的な訓練プロセスを含み、それは訓練時間とリソース利用オーバーヘッドを増加させる。これらの欠点はまた、かなりのパラメータ・チューニングの必要性によっても悪化させられ、従って、これらのアプローチは疑いもなくスケーラブルではない。このような長時間のファイン・チューニング・プロセスの後でさえ、現在のアプローチは、MLモデルの精度、モデルのサイズ、速度、及びパワーの間の合理的な妥協を保証していない。
[0007] 図面では、必ずしも縮尺どおりに描かれているとは限らず、様々な図の中で同様な数字は同様な構成要素を示している可能性がある。末尾の文字が異なる類似の数字は、同様な要素のうちの異なるものを表現している可能性がある。幾つかの実施形態は、限定ではない例示によって、添付図面のうちの図において示されている。
[0008] 図1は、様々な実施形態による同時最適化フレームワークの概要を示す。
様々な実施形態によるスパース蒸留システムの概要を示す。
様々な実施形態によるスパース蒸留システムの概要を示す。
様々な実施形態によるスパース蒸留システムの概要を示す。
様々な実施形態によるスパース蒸留システムの概要を示す。
様々な実施形態によるスパース蒸留プロセスを示す。
[0009] 図7は、様々な実施形態による図2、図4、図3、及び図5のスパース蒸留システムを含む例示的なNASアーキテクチャを示す。
図8は、様々な実施形態による例示的なNAS手順を示す。
[0010] 図9は、例示的な人工ニューラル・ネットワーク(ANN)を示す。
図10aは、例示的なアクセラレータ・アーキテクチャを示す。
図10bは、演算システムの例示的な構成要素を示す。
図11は、本件で議論される様々な実施形態を実施するために使用されることが可能な例示的な手順を示す。
[0011] 本開示は、人工知能(AI)及び/又は機械学習(ML)モデルを最適化するための技術であって、AI/MLモデル・パフォーマンスを改善しながらリソース消費を低減するためのものに関連する。特に、本開示は、パラメータのクラスを生成し、リソースに制限のあるアプリケーションに適したMLモデルを効率的に演算するためのフレームワークを提供する。このフレームワークは、本件では「スパース蒸留(sparse distillation)」と言及される。
[0012] 本件で説明されるスパース蒸留フレームワークは、比較的大きな参照MLモデル(本件では「スーパーネットワーク」又は「スーパーネット」と言及される)を、より小さなMLモデル(本件では「サブネットワーク」又は「サブネット」と言及される)に、スパースに蒸留する。一例として、スーパーネットは、エンド・ユーザーが開発した比較的大きな及び/又は密なMLモデルである可能性があるが、演算、記憶、及び/又は電力消費の観点から、作動させるには高くつく。このスーパーネットは、予測及び/又は推論の決定に大きは寄与しないパラメータ及び/又はウェイトを含んでいる可能性があり、これらのパラメータ及び/又はウェイトは、スーパーネットの全体的な演算複雑性及び密度に寄与している。従って、スーパーネットは、より小さなサブネットであって、隔離された状態で訓練された場合、オリジナルのMLモデル(スーパーネット)の精度(又は他のパフォーマンス・メトリック)に一致することが可能な小さなサブネットを含んでいる。更に、特定のシナリオでは、サブネットがスーパーネットを上回ることが可能であるかもしれない。
[0013] スパース蒸留フレームワークは知識蒸留(KD)とプルーニング(剪定)を融合する。KDメカニズムは、知識をスーパーネット(教師モデル)からサブネット(生徒モデル)へ移す一方、プルーニング・メカニズムは、不必要なパラメータ又はウェイトをサブネットから剪定する。ここで、サブネットは、エンド・ユーザーの要件を満たし及び/又はスーパーネットよりも小さなフットプリントを有する所望の出力モデル(例えば、サブネットが生成される元であるスーパーネットよりも少ない演算、記憶、及び/又は電力リソースを消費するもの)である。畳み込みニューラル・ネットワーク(CNN)を含む実装のような幾つかの実装では、スパース蒸留フレームワークは、セルフ・アテンション(SA)をKD及びプルーニングと更に融合させる。これらの実装において、SAメカニズムは、CNNにおける畳み込みに取って代わることが可能である、又はCNNにおける畳み込みに代わるものとして機能することが可能である。SAメカニズムは、アイテムの入力シーケンスが与えられた状況において、個々のアイテムの、そのシーケンス中の他のアイテムに対する関連性を推定する。
[0014] スパース蒸留は、演算負担の重い教師モデル(例えば、図1の教師モデル110)から知識を蒸留する一方、生徒モデル(例えば、図1の生徒モデル101)をプルーニングすることを、訓練のシングル・パス(例えば、訓練プロセスの1回の反復)の中で同時に行い、それによって、既存の最適化技術と比較して、訓練及びチューニングの時間及びリソースを大幅に削減する。スパース蒸留のフレームワークを経たモデルは、最適化されていないモデルを精度において大幅に上回るだけでなく、場合によっては、これらのモデルは、演算負担の重い教師とほぼ同程度に良好に動作する一方、パラメータやFLOPのほんの一部しか消費しない。具体的には、幾つかのシミュレーションにおいて、スパース蒸留されたモデルは、それらの教師モデルと比較して、顕著な精度低下なしに、30×に及ぶパラメータ効率及び2×に及ぶ演算効率を達成した。
[0015] 開示された実施形態では、スパース蒸留システムは、パラメータ・バジェット、ハードウェア・デバイス/プラットフォーム設定情報、及び参照MLモデル(スーパーネット)を含む入力を取得する。スパース蒸留システムは、この情報を用いて、スーパーネットを蒸留しつつ、サブネットをプルーニングすることを同時に行う。更に、スパース蒸留システムは、スーパーネット又はサブネットにおける任意の畳み込みを、SAメカニズムで置換し、必要に応じて優れた変換等価性(translational equivariance)をもたらすことが可能である(これについては、例えば、Khan et. al, “Transformers in Vision, A Survey” arXiv:2101.01169v2 [cs.CV] 22 Feb 2021 (“[Khan]”)を参照されたい。この文献は全体的に本件に援用される)。
[0016] 本件で議論されるスパース蒸留システムは、ハードウェアを意識した方法でサブネットを同時に蒸留、剪定、最適化する初めてのMLモデル最適化アプローチであり、これは、精度、速度、及びパワーの点でパフォーマンスを損なわないMLモデルを提供しながら、MLモデルを訓練及び最適化するのに必要なリソース消費及び時間を大幅に削減する。更に、スパース蒸留システムは、プラグ・アンド・プレイ方式で実装されることが可能であり、その結果、例えば、ニューラル・アーキテクチャ探索、連合学習、モノのインターネット(IoT)アプリケーションなどのような他の多くのアプリケーションにプラグ・インされることが可能である。その理由は、スパース蒸留システムが既存の訓練方法を変更しない一方で、任意の既存のML訓練フレームワークと比較して、より良い結果を生じさせるからである。
[0017] スパース蒸留の態様は、具体例として、コンピュータ・ビジョン・ドメインにおける画像分類のための畳み込みニューラル・ネットワーク(CNN)の文脈で以下で論じられている。しかしながら、物体検出、画像セグメンテーション、及びキャプショニングのような他のタスクも、本件で議論されるスパース蒸留の実施形態から恩恵を受けることが可能であろう。更に、本件で説明されるスパース蒸留の実施形態は、他のAI/MLドメイン、アーキテクチャ、及び/又はトポロジ、例えば、推薦システム、音響モデリング、自然言語処理(NLP)、グラフNN、リカレントNN(RNN)、長短期メモリ(LSTM)ネットワーク、トランスフォーマー・モデル/アーキテクチャ、及び/又は任意の他のAI/MLドメイン、又は、本開示の他の箇所で説明されているようなタスクに直接的に適用されることが可能である。
[0018] 1.スパース蒸留システム及びフレームワーク
図1は、様々な実施形態によるスパース蒸留を使用する同時最適化フレームワーク100の概要を示す。同時最適化フレームワーク100は同時最適化戦略に基づいており、そこではスパース蒸留層102が、位置コンテキスト(positional context)と知識データをスーパーネット105から抽出し、プルーニング・メカニズムが、スパース蒸留サブネット103を生成するために、サブネット101のパラメータ・バジェットを制限する。
[0018] 1.スパース蒸留システム及びフレームワーク
図1は、様々な実施形態によるスパース蒸留を使用する同時最適化フレームワーク100の概要を示す。同時最適化フレームワーク100は同時最適化戦略に基づいており、そこではスパース蒸留層102が、位置コンテキスト(positional context)と知識データをスーパーネット105から抽出し、プルーニング・メカニズムが、スパース蒸留サブネット103を生成するために、サブネット101のパラメータ・バジェットを制限する。
[0019] 同時最適化フレームワーク100は、CNNを最適化するために使用されることが可能であり、CNNは、画像認識、物体検出、及び画像セグメンテーションを含む幾つものコンピュータ・ビジョン・タスクのためのバックボーンとなっているものである。しかしながら、既存のCNNは、入力特徴マップの全ての位置で同じウェイトが適用されるので、事実上、内容に依存しない(content agnostic)。コンテンツ非依存性であることは、いくらかパラメータを減少させる効果がある一方で、MLモデルの全体的な精度も低下させてしまう。更に、畳み込み層の受容野サイズの増加に起因するパラメータ増加は、重み共有によって得られる何らかの恩恵を越える負担となる。従って、パラメータ数と浮動小数点演算(FLOP)の双方が、受容野における増加とともに不十分にしかスケーリングされず、適切なスケーリングは画素のロング・レンジ相互作用を捕捉するために不可欠である。
[0020] 前述したように、CNNの限界を緩和する既存のアプローチには、KDとプルーニング方法を含む。KDは2段階の訓練プロセスを含み、そこでは、教師モデルが、ロジット又は特徴の転移(transference)を通じて、よりシンプルな生徒モデルを教育する。(これについては、例えば以下を参照されたい。それぞれの内容は全体的に本件に援用される:
Hinton et al., “Distilling the Knowledge in a Neural Network”, arXiv preprint arXiv:1503.02531 (09 Mar. 2015) (“[Hinton]”),
Zagoruyko et al., “Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transfer”, arXiv preprint arXiv:1612.03928 (12 Dec. 2016) (“[Zagoruyko]”),
Tian et al., "Contrastive Representation Distillation", arXiv:1910.10699v2 [cs.LG] (18 Jan. 2020), 及び上記の[Gou])。教師モデルは(パラメータ空間サイズの観点から)生徒モデルよりもかなり大きなものであり、従って生徒モデルよりも重い演算負担を担うものである。しかしながら、教師モデルは、生徒モデルよりも正確な予測を提供する。訓練プロセスの第1段階は、蒸留が行われる前に、一連の訓練データ(又は事例)を用いて、特定のタスクに関する教師モデルを訓練することを含む。訓練プロセスの第2段階は蒸留アプローチを含み、そこでは教師モデルが生徒モデルを教育する。特に、教師モデルは知識を抽出するために使用され、次いで、その知識は、蒸留中に生徒モデルの訓練をガイドするために使用される。このように、KDは反復的な繰り返しプロセスであって、生徒が教師から適切に学習していることを確実にするために、様々なパラメータを調整することを要求するものである。
Hinton et al., “Distilling the Knowledge in a Neural Network”, arXiv preprint arXiv:1503.02531 (09 Mar. 2015) (“[Hinton]”),
Zagoruyko et al., “Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transfer”, arXiv preprint arXiv:1612.03928 (12 Dec. 2016) (“[Zagoruyko]”),
Tian et al., "Contrastive Representation Distillation", arXiv:1910.10699v2 [cs.LG] (18 Jan. 2020), 及び上記の[Gou])。教師モデルは(パラメータ空間サイズの観点から)生徒モデルよりもかなり大きなものであり、従って生徒モデルよりも重い演算負担を担うものである。しかしながら、教師モデルは、生徒モデルよりも正確な予測を提供する。訓練プロセスの第1段階は、蒸留が行われる前に、一連の訓練データ(又は事例)を用いて、特定のタスクに関する教師モデルを訓練することを含む。訓練プロセスの第2段階は蒸留アプローチを含み、そこでは教師モデルが生徒モデルを教育する。特に、教師モデルは知識を抽出するために使用され、次いで、その知識は、蒸留中に生徒モデルの訓練をガイドするために使用される。このように、KDは反復的な繰り返しプロセスであって、生徒が教師から適切に学習していることを確実にするために、様々なパラメータを調整することを要求するものである。
[0021] プルーニングは、所与のモデルの精度に大きな影響を及ぼさない不必要なウェイト及び/又はパラメータを反復的に除去することを含み、これは事実上モデルを小さくする(これについては、例えば以下を参照されたい。それぞれの内容は全体的に本件に援用される:
Zhang et al., “A Systematic DNN Weight Pruning Framework using Alternating Direction Method of Multipliers”, Proceedings of the European Conference on Computer Vision (ECCV), pp. 184-199 (2018). (“[Zhang]”),
Dettmers et al., “Sparse Networks from Scratch: Faster Training Without Losing Performance”, arXiv:1907.04840v2 [cs.LG] (23 Aug. 2019) (“[Dettmers]”),
Mostafa et al., “Parameter Efficient Training of Deep Convolutional Neural Networks by Dynamic Sparse Reparameterization”, International Conference on Machine Learning, PMLR, pp. 4646-4655 (24 May 2019) (“[Mostafa]”), 及び
Lee et al., “SNIP: Single-Shot Network Pruning Based on Connection Sensitivity”, arXiv:1810.02340v2 (23 Feb. 2019))。
プルーニングは、パラメータの除去がモデルのパフォーマンスを著しく損なってしまうかどうかを判定するために、パラメータが除去される度にモデルを再訓練することを要求する。モデルの反復的な除去と訓練は、モデルのパフォーマンスを著しくは低下させないウェイトのセットが発見されるまで行われる。このように、プルーニング方法は時間がかかり且つリソース負担が重いものでもある。
Zhang et al., “A Systematic DNN Weight Pruning Framework using Alternating Direction Method of Multipliers”, Proceedings of the European Conference on Computer Vision (ECCV), pp. 184-199 (2018). (“[Zhang]”),
Dettmers et al., “Sparse Networks from Scratch: Faster Training Without Losing Performance”, arXiv:1907.04840v2 [cs.LG] (23 Aug. 2019) (“[Dettmers]”),
Mostafa et al., “Parameter Efficient Training of Deep Convolutional Neural Networks by Dynamic Sparse Reparameterization”, International Conference on Machine Learning, PMLR, pp. 4646-4655 (24 May 2019) (“[Mostafa]”), 及び
Lee et al., “SNIP: Single-Shot Network Pruning Based on Connection Sensitivity”, arXiv:1810.02340v2 (23 Feb. 2019))。
プルーニングは、パラメータの除去がモデルのパフォーマンスを著しく損なってしまうかどうかを判定するために、パラメータが除去される度にモデルを再訓練することを要求する。モデルの反復的な除去と訓練は、モデルのパフォーマンスを著しくは低下させないウェイトのセットが発見されるまで行われる。このように、プルーニング方法は時間がかかり且つリソース負担が重いものでもある。
[0022] 同時最適化フレームワーク100においては、スーパーネット105は教師モデル(例えば、畳み込み教師モデル)の役割を果たし、サブネット101はKD法における生徒モデルの役割を果たす。実施形態では、プルーニングとKDは同時に行われる。これは、同時最適化フレームワーク100が、スーパーネット105からの知識をサブネットへ蒸留しながら、同時にサブネット101をプルーニングし、サブネット103を生成することを意味する。更に、同時最適化フレームワーク100は、知識の蒸留とスーパーネット105のプルーニングを同時に行ってサブネット103を生成するために、KDハイパーパラメータとプルーニング・ハイパーパラメータ(「同時ハイパーパラメータ」と称する)の両方を使用することができる。ここで、スーパーネット105からの知識をサブネット103へ蒸留することは、サブネット101が、所望のタスクを如何にして実行するかを、スーパーネット105から学習することを意味する。幾つかの実装において、プルーニング・プロセスは、ウェイト/パラメータをサブネット101からランダムに除去することを含む。他の実装において、プルーニング・プロセスは、ウェイト及び/又はその他のパラメータの情報のモーメンタム(momentum)又は勾配を取得することと、他のウェイト/パラメータよりも大きな勾配値を有するウェイト/パラメータのセットを保持することとを含む。保持されるウェイト/パラメータのセットは、最大のモーメンタム/勾配を有する予め決定されている又は設定された個数のウェイト/パラメータであるとすることが可能であり、或いは保持されるウェイト/パラメータのセットは、閾値以上のモーメンタム/勾配を有するウェイト/パラメータであるとすることが可能である。これらの実装では、より大きな勾配値を有するウェイト/パラメータは、最終MLモデル(例えば、最終MLモデルの損失関数)に、より多くの影響を及ぼすと仮定される。
[0023] KD及びプルーニングを同時に行うことに加えて、フレームワーク100は、セルフ・アテンション(SA)メカニズムを含むことも可能である。幾つかの実装において、フレームワーク100は、畳み込み(例えば、CNNの中の畳み込み層)を、セルフ・アテンション(SA)メカニズムで置き換える。幾つかの実装において、SAメカニズムは、スタンドアロンのSA実装(例えば、既存のCNNとは独立して構築されるもの)とすることが可能である。追加的又は代替的に、SAメカニズムは、既に存在しているCNNから構築されることが可能であり、そこでは、CNN内の畳み込み層がセルフ・アテンション層で置き換えられ、元のCNN内の他の層(例えば、活性化層、プーリング層、デンス層(dense layers)など)はそこに残る。本開示は、SAメカニズムを含むスパース蒸留フレームワークの幾つかの例を論じているが、本件の実施形態は任意のタイプのMLモデルに関して動作することが可能であり、生徒及び/又は教師モデルとしてSAモデルには限定されない。様々な実施形態において、教師及び/又は生徒モデルは、本件で議論されるもののような任意のタイプのMLモデル(又はMLモデルの組み合わせ)であってもよい。
[0024] アテンション・メカニズムには、入力データのうちの重要な部分を強調し、入力データのうちの重要性の低い部分を強調しないことによって、認識に基づいて注意を向けること-認知的アテンション(cognitive attention)に類似するML技法を含む。アテンション・メカニズムは、クエリ(queries)、バリュー(values)、及びキー(keys)を含み、クエリは認知的アテンションにおける意志的な手がかり(volitional cues)に似ており、バリュー(例えば、中間的な特徴表現)は認知的アテンションにおける知覚入力(sensory inputs)に似ており、キーは認知的アテンションにおける知覚入力の非意志的な手がかり(non-volitional cue)に似ている。アテンション・メカニズムは、クエリとキー・バリュー・ペアのセットとを、対応する出力にマッピングし、ここで、クエリ、キー、バリュー、及び出力は全てベクトルであり;出力は、バリューの加重和として計算され、そこでは、各バリューに割り当てられるウェイトは、クエリの、対応するキーとの互換性関数によって計算される(これについては、例えば以下を参照されたい。その内容は全体的に本件に援用される:Vaswani et al., "Attention Is All You Need", Advances in Neural Information Processing Systems 30 (NIPS 2017), pp. 5998-6008 (2017) (“[Vaswani]”))。
言い換えると、各クエリは全てのキー・バリュー・ペアに注意を払い、1つのアテンション出力を生成する。
言い換えると、各クエリは全てのキー・バリュー・ペアに注意を払い、1つのアテンション出力を生成する。
[0025] SAは、隠れユニットからの演算された値の加重平均を生成することを含み、ここで、加重平均演算で使用されるウェイトは、隠れユニット間の類似性関数を通じて動的に生成される。その結果、入力信号間の相互作用は、畳み込みでの場合のように、それらの相対的な位置によって予め決定されるのではなく、信号自体に依存する。特に、これは、SAが、パラメータの数を増やすことなく、「ロング・レンジ(long range)」相互作用を捕捉することを可能にする。実施形態において、SAメカニズム(例えば、図2-5のSAメカニズム300)は、シーケンス要素間の長期的な(又はロング・レンジの)情報と依存性を捕捉する。一連の要素が与えられている場合に、SAメカニズムは、シーケンス中の或る要素と他の要素との関連性を推定する。SAメカニズムは、完全な入力シーケンスからのグローバル情報を集約することによって、シーケンスの各々の構成要素を更新する。SAメカニズムは、グローバル・コンテキストの観点から、各エンティティ/アイテムをエンコードすることによって、これを行う。これは、クエリ行列WQ、キー行列WK、及びバリュー行列WVを含む、変換のための3つの学習可能なウェイト行列を定義することによって、実行される。入力シーケンスは、先ず、これらのウェイト行列上に投影され(例えば、入力シーケンスに各々のウェイト行列を乗算することによって行われ)、SAメカニズム300の出力は、クエリの、全てのキーとのドット積を計算し、次いでそれはソフトマックス演算子を用いて正規化され、アテンション・スコアが求められる。次に、各エンティティは、シーケンス中の全てのエンティティの加重和となり、ここで、ウェイトはアテンション・スコア(ここでは「アテンション・ウェイト」とも呼ばれる)によって与えられる。
[0026] SAメカニズムは、並行した畳み込みに使用されるか(これについては、例えば以下を参照されたい。その内容は全体的に本件に援用される:Bello et al., “Attention Augmented Convolutional Networks,” Proceedings of the IEEE/Computer Vision Foundation (CVF) Int’l Conference on Computer Vision, pp. 3286‐3295 (2019) (“[Bello]”))、又は、ビジョン・モデルにおいてそれらを完全に置換し(これについては、例えば以下を参照されたい。その内容は全体的に本件に援用される:Ramachandran et al., “Stand-Alone Self-Attention in Vision Models”, arXiv preprint arXiv:1906.05909 (13 Jun. 2019) (“[Rama]”))、完全なコンピュータ・ビジョン・タスクに対する有望な結果を示している。SAメカニズムは、空間的なコンテキストを欠いているが、位置的な埋め込みが、この制限を補うために使用されることが可能である。SAメカニズムは、畳み込みとは異なり、より少ないパラメータとFLOPを消費し、より大きな受容野とのより良いスケーリングをもたらすものであり、モデル複雑性を著しく増加させることなく、ロング・レンジ・コンテキストの効率的な捕捉を可能にする。SAメカニズムは、並列化可能でもあり、並列実行を利用することによって、適切なハードウェアにおいて加速される可能性を有する(これについては、例えば以下を参照されたい。その内容は全体的に本件に援用される:Park et al., “OPTIMUS: OPTImized matrix MUltiplication Structure for Transformer neural network accelerator”, Proceedings of Machine Learning and Systems, vol. 2, pp. 363-78 (15 Mar. 2020) (“[Park]”))。
[0027] 同時最適化訓練フレームワーク100は、3つ全てのメカニズムの利点を採用して、効率的なMLモデルを作成する一方、そのようなモデルを最適化してファインチューニングするのに要する時間を短縮する。本件で議論される方法でKD、プルーニング、及びSAメカニズムを組み合わせることにより、MLモデルは、既存の訓練及び最適化方法を使用するMLモデルよりも良好にスケーリングすることができ、MLモデルは、コンテンツ・アウェア(content aware)となる。更に、既存のプルーニング及びKD法とは対照的に、同時最適化訓練フレームワーク100は、最適化と訓練を共同で実行することによって、単一の訓練段階を使用するだけである。
[0028] 図2、4、3、及び5は、様々な実施形態による例示的なスパース蒸留システム200を示す。スパース蒸留システム200は、同時最適化訓練フレームワーク100におけるスパース蒸留層102に対応させることが可能である。
[0029] スパース蒸留システム200は、プルーニング、KD、及びSAメカニズムからの恩恵を活用する。教師モデルΦTとして豊富な位置情報を伴う演算負担の重い相対的に大きなスーパーネット205を使用して、スーパーネット205は、SAベースの生徒モデルΦSであるサブネット201に、知識を蒸留する。同時に、生徒モデルΦSのスパース学習は、モデル・パラメータ及び/又はハイパーパラメータを更に減らした、プルーニングされたSAモデルを生成するように強いられる(これについては、例えば以下を参照されたい。その内容は全体的に本件に援用される:[Dettmers], [Mostafa], and Kundu et al., “A Tunable Robust Pruning Framework Through Dynamic Network Rewiring of DNNs”, arXiv:2011.03083v2 [cs.CV] (24 Nov. 2020) (“[Kundu]”))。スパース蒸留システム200は、構造化されたカラム/チャネルのプルーニングと大きさのプルーニングとの両方をサポートし、推論速度を増加させることが可能なモデルを生成することに加えて、何らのカスタム設計又はパッケージを必要とせずに、様々なターゲット・ハードウェアにわたって、削減されたパラメータの恩恵をもたらす。([Zhang]で議論されているような)多くの既存のプルーニング方式とは異なり、スパース蒸留は、グローバルなターゲット・パラメータ密度と、訓練の1パスのみを要求するだけであり、反復的な最適化技術に関連する演算負担とメモリ・アクセスを著しく低減する。追加的又は代替的に、スパース蒸留システム200は、推論速度を増加させることが可能なモデルをもたらすために、構造化されたカラム・プルーニングをサポートすることに加えて、削減されたパラメータの恩恵をもたらすように拡張される。図2、図4、図3、及び図5の例では、スパース蒸留システム200は、コンピュータ・ビジョン・タスクを実行するように示されているが、スパース蒸留システム200を使用して他のMLタスクを実行することが可能である。
[0030] スパース蒸留システム200の動作に先立って(例えば、スパース蒸留システム200を用いるセットアップ又は訓練構成の間に)、MLモデル設計者、デベロッパー又はその他のユーザー(例えば、図7のクライアント・デバイス701のユーザー)は、スパース蒸留システム200に、スーパーネット205(及び/又は、その関連するパラメータ、ハイパーパラメータ、及びその他の情報/データ)及びパラメータ・バジェット(例えば、図7のパラメータ・バジェット706)を少なくとも含むか又は示すML設定(例えば、図7のML設定702)を提供する。パラメータ・バジェット706(「サブネット定義706」、「パラメータ設定706」等々とも呼ばれる)は、訓練セッションが完了した後に、サブネット201のための所望のパラメータを定義するファイル又はその他のデータ構造である。例えば、パラメータ・バジェット706は、サブネット201が、特定の数のパラメータ、ある数の特定のタイプのパラメータ、及び/又はサブネット201が有するべき他の態様、を上回るものを有するべきではないことを指定することができる。スパース蒸留システム200は、この情報を用いて同時最適化及び訓練を実行する。
[0031] 図2を参照すると、入力画像220(例えば、静止ピクチャ又はビデオ・フレーム)は、スーパーネット205(本件では「教師205」又は「ΦT」とも呼ばれる)と、スパース蒸留システム200のサブネット201(本件では「生徒201」又は「ΦS」とも呼ばれる)との両方に供給される。スーパーネット205は、図1のスーパーネット105と同一又は類似のものであってもよく、サブネット201は、図1のサブネット101と同一又は類似のものであってもよい。蒸留202の間、スーパーネット205の出力は、サブネット201を訓練するために使用される。これについては、以下、1.1節でより詳細に論じる。図2はまた、サブネット201の一部であるアテンション層210を示す。アテンション層210は、サブネット201の一部として含まれてもよく、又はサブネット201は、アテンション層210と通信可能に結合されてもよい。アテンション層210は、プルーニング・メカニズム400とSAメカニズム300を含む。図4、3、及び5は、生徒モデルΦSの内部アテンション層210の演算メカニズムを示す。特に、図4は、プルーニング・メカニズム400(以下のセクション1.3で説明される)のメカニズムを示し、図3及び5は、SAメカニズム300(以下のセクション1.2で説明される)のメカニズムを示す。
1.1.知識蒸留(KD)メカニズム
[0032] 実施形態において、知識は、生徒モデルΦSのパフォーマンスを改善するために、ロジットと特徴マップの両方から蒸留される。ロジットは、生の又は正規化されていない確率又は予測の1つ以上のセットであってもよく、ソフトマックス関数が、ロジットを確率に変換するために使用されてもよい。幾つかの実装において、ソフトマックス温度ベースKD法が、知識をロジットから転送するために使用されることが可能である(例えば、[Hinton]を参照されたい)。ここで、温度は、ソフトマックス関数を適用する前に、ロジットをスケーリングすることによって、予測のランダム性及び/又はソフト性(softness)を制御するために使用されるハイパーパラメータである。更に、アテンション転送(attention transfer)は、教師のΦT活性化マップから知識を移転するために用いられる(例えば、[Zagoruyko]を参照されたい)。アテンション転送蒸留アルゴリズムは、活性化ベースのアテンション転送又は勾配ベースのアテンション転送であってもよい。アテンション転送は、生徒ΦSが、訓練中にプルーニングされながら、空間コンテキストとクラス確率の分布との双方を学習することを可能にする。
[0032] 実施形態において、知識は、生徒モデルΦSのパフォーマンスを改善するために、ロジットと特徴マップの両方から蒸留される。ロジットは、生の又は正規化されていない確率又は予測の1つ以上のセットであってもよく、ソフトマックス関数が、ロジットを確率に変換するために使用されてもよい。幾つかの実装において、ソフトマックス温度ベースKD法が、知識をロジットから転送するために使用されることが可能である(例えば、[Hinton]を参照されたい)。ここで、温度は、ソフトマックス関数を適用する前に、ロジットをスケーリングすることによって、予測のランダム性及び/又はソフト性(softness)を制御するために使用されるハイパーパラメータである。更に、アテンション転送(attention transfer)は、教師のΦT活性化マップから知識を移転するために用いられる(例えば、[Zagoruyko]を参照されたい)。アテンション転送蒸留アルゴリズムは、活性化ベースのアテンション転送又は勾配ベースのアテンション転送であってもよい。アテンション転送は、生徒ΦSが、訓練中にプルーニングされながら、空間コンテキストとクラス確率の分布との双方を学習することを可能にする。
[0033] 更に、幾つかの実装において、教師ΦTから抽出された知識は、生徒ΦSに蒸留される前に、適切な記憶システム/デバイス(例えば、キャッシュ又はキャッシュ・システム)に記憶されてもよい。
[0034] 1.2.セルフ・アテンション(SA)メカニズム
図3は、SAメカニズム300のメカニズムの第1の部分を示し、そこではスパース・ウェイト・テンソル301が入力220から取得される。スパース・ウェイト・テンソル301は、1つ以上の層l(エル)とチャネルの数(又はフィルタ当たりのチャネルの数)Cin lを含む。この例では、全てのk×k(k>1)の畳み込みが、SA層で置き換えられていることに留意されたい。k×k×Cin l個のピクセルの近傍(neighborhood)310が入力220から抽出され(ここで、kはカーネル・サイズである)、近傍310内のピクセル311も入力220から抽出される。近傍310は、「ローカル領域310」又は「特徴マップ310」とも呼ばれ、関連する幅W及び高さH(図3には示されていない)を、カーネル・サイズkに加えて有する。近傍310は、ピクセル311を中心とした周辺のサイズkの空間的広がりを有する。近傍310及びピクセル311は、クエリ行列Q、キー行列K、及びバリュー行列Vを含む3つのコンテンツ認識行列に変換される(これらは、本件では、「Q-K-V行列」と略称される場合がある)。この変換は、パラメータ化・学習可能・変換(Parameterized Learnable Transformation,PLT)330を介して行われる。PLT 330は、特徴抽出器又は他の何らかの要素/機能部であって、訓練データ(例えば、スパース・ウェイト・テンソル301、ローカル領域310、及び/又はピクセル311)を、ウェイト又はパラメータのセット(例えば、図4におけるウェイト405,406及び/又はウェイト行列WQ,WK,WV)に変換するものであってもよい。特に、PLT 330は、入力データ(例えば、ローカル領域310及びピクセル311)を分析し、ウェイト/パラメータを生成するための基礎を学習する。追加的又は代替的に、PLT 330は、パラメータ化された学習を実現し、入力データと訓練ラベルを用いて、パラメータのセットを定義し、そのセットのパラメータを最適化することによって、入力データを出力予測にマッピングする関数(変換)を学習する。追加的又は代替的に、PLT 330は、次いで出力特徴マップを学習するために使用される中間表現(即ち、Q,K,V)を学習する。幾つかの実装において、PLT 330は、[Vaswani]及び/又は[Khan]で論じられているもののような、トランスフォーマー・アーキテクチャを含む可能性がある。PLT 330は、入力データ及び/又は入力特徴マップ(IFM)を、ウェイト/パラメータに変換するそれぞれの演算320を含むことが可能である。ここで、各々の演算320は、行列乗算演算、及び/又は1×1畳み込み演算であってもよい。
[0034] 1.2.セルフ・アテンション(SA)メカニズム
図3は、SAメカニズム300のメカニズムの第1の部分を示し、そこではスパース・ウェイト・テンソル301が入力220から取得される。スパース・ウェイト・テンソル301は、1つ以上の層l(エル)とチャネルの数(又はフィルタ当たりのチャネルの数)Cin lを含む。この例では、全てのk×k(k>1)の畳み込みが、SA層で置き換えられていることに留意されたい。k×k×Cin l個のピクセルの近傍(neighborhood)310が入力220から抽出され(ここで、kはカーネル・サイズである)、近傍310内のピクセル311も入力220から抽出される。近傍310は、「ローカル領域310」又は「特徴マップ310」とも呼ばれ、関連する幅W及び高さH(図3には示されていない)を、カーネル・サイズkに加えて有する。近傍310は、ピクセル311を中心とした周辺のサイズkの空間的広がりを有する。近傍310及びピクセル311は、クエリ行列Q、キー行列K、及びバリュー行列Vを含む3つのコンテンツ認識行列に変換される(これらは、本件では、「Q-K-V行列」と略称される場合がある)。この変換は、パラメータ化・学習可能・変換(Parameterized Learnable Transformation,PLT)330を介して行われる。PLT 330は、特徴抽出器又は他の何らかの要素/機能部であって、訓練データ(例えば、スパース・ウェイト・テンソル301、ローカル領域310、及び/又はピクセル311)を、ウェイト又はパラメータのセット(例えば、図4におけるウェイト405,406及び/又はウェイト行列WQ,WK,WV)に変換するものであってもよい。特に、PLT 330は、入力データ(例えば、ローカル領域310及びピクセル311)を分析し、ウェイト/パラメータを生成するための基礎を学習する。追加的又は代替的に、PLT 330は、パラメータ化された学習を実現し、入力データと訓練ラベルを用いて、パラメータのセットを定義し、そのセットのパラメータを最適化することによって、入力データを出力予測にマッピングする関数(変換)を学習する。追加的又は代替的に、PLT 330は、次いで出力特徴マップを学習するために使用される中間表現(即ち、Q,K,V)を学習する。幾つかの実装において、PLT 330は、[Vaswani]及び/又は[Khan]で論じられているもののような、トランスフォーマー・アーキテクチャを含む可能性がある。PLT 330は、入力データ及び/又は入力特徴マップ(IFM)を、ウェイト/パラメータに変換するそれぞれの演算320を含むことが可能である。ここで、各々の演算320は、行列乗算演算、及び/又は1×1畳み込み演算であってもよい。
[0035] PLT 330は、図4に示されるように、プルーニング・メカニズム400に提供されるアテンション・ウェイト(例えば、図4におけるウェイト405,406及び/又はウェイト行列WQ,WK,WV)を計算する。ここでは、ウェイトは、従来のCNNの場合でのように、直接的には学習されない。その代わりに、所与の入力領域310とQ-K-V行列との間で変換(例えば、PLT 330)が学習され、対応するウェイト405,406(及び/又は対応するウェイト行列WQ,WK,WV)が生成される。Q-K-V行列(及び/又はウェイト行列WQ,WK,WV)は、PLT 330に基づいて、オン・ザ・フライで生成される。このようにして、PLT 330を通じて生成されるウェイトは、入力220の関心領域310に特有なものである。
[0036] SAメカニズム300の第2の部分を示す図5を参照すると、Q-K-V行列におけるクエリ、キー、及び値(及び/又は、ウェイト行列WQ,WK,WV)はそれぞれ入力領域310及び近傍310の変換である。SAメカニズム300は、一組の出力チャネルCout
lベクトル510を生成するために、クエリ行列Qとキー行列Kとの間のドット積を計算する。これは、クエリ行列Qに対して実行される演算520(例えば、行列乗算演算、及び/又は1×1畳み込み演算)を含んでもよい。スケーリングのための要素乗算は、要素515を生成するために出力チャネルCout
lベクトル510において実行され、ソフトマックス関数が要素515に適用され、その後、バリュー行列の成分と加算されて、SA出力チャネルCout
l 550を生成する。SA出力チャネルCout
l 550は、特徴マップ又はベクトル、行列、又はテンソルであり、これは全ての層の演算の後に生成されるスパース蒸留生成特徴マップの一部である。
[0037] 引き続き図3及び図5を参照すると、ネットワークの層lにおける入力特徴マップ310が与えられている場合に、位置(i, j)におけるピクセルxijが考慮される(
この画素を中心とする畳み込み演算は、k×k近傍Nk(i, j)(例えば、図3の近傍310)において行われ、ここで、kはカーネル・サイズである。空間的な広がりkを伴うこの畳み込みに取って代わるシングル・ヘッド・ローカルSA層(single-headed local SA layer)は、隣接する位置(a,b)∈Nk(i, j)からの全ての画素を考慮し、式(1)で示されるように出力yijを計算する。
[0040] 1.3.プルーニング・メカニズム
図4を参照すると、プルーニング・メカニズム400は、クエリ・ウェイト行列WQ、キー・ウェイト行列WK、及びバリュー・ウェイト行列WVを含む。各行列Wは、ゼロ・ウェイト(ZW)のセット405(即ち、“0”の値を有するウェイト)と、非ゼロ・ウェイト(NZW)のセット406の(即ち、“0”以外の値を有するウェイト)とを含む。図4では、明確性のために、全てのZW 405とNZW 406にラベル付けされてはいないことに留意されたい。
[0041] プルーニングは、重要でないウェイト405をモデルから除去する一方、重要なウェイト406を維持することによって、推論パラメータの削減を達成する。プルーニングは、不規則プルーニングと構造化プルーニングを含む2つのカテゴリに大別することができる。不規則プルーニングは、それらの重要性に基づいてウェイト・スカラーをプルーニング(剪定)し、プルーニングされていないモデルと同様な精度で、より低いパラメータ密度(d)の恩恵を享受する。フィルタ、チャネル、又はカラムの粒度でプルーニングを行う構造化プルーニングの場合、同じことが常に言えるとは限らない。しかしながら、不規則にプルーニングされたモデルは、NZW 406インデックスのオーバーヘッドによる影響を被り、圧縮及び高速化の利点(例えば、[Kundu]を参照されたい)を引き出すために専用のハードウェアをしばしば必要とする。より大きなパラメータ密度要求にもかかわらず、構造化されたプルーニングは、専用のハードウェア・サポート無しに、推論の高速化をもたらすことが可能である(これについては、例えば以下を参照されたい:Liu et al., “Rethinking the Value of Network Pruning”, arXiv preprint arXiv:1810.05270 arXiv:1810.05270v2 [cs.LG] (05 Mar. 2019) (“[Liu]”))。本件で説明されるスパース蒸留フレームワークは、蒸留及びプルーニングの双方からの利点を活用し、不規則プルーニング及び構造化プルーニングの双方をサポートする。
[0042] ここで、ZW 405は、重要でないウェイトであると考えられてもよく、各々の訓練反復の後に除去される。最初に、各々の行列Wの中のウェイト405,406のランダム・セットがゼロに割り当てられ(例えば、ZW 405として設定され)、その後、訓練プロセスが実行される。各々の訓練反復又はエポックが実行された後、ウェイトのセット406の中で最も高い勾配の大きさを有するウェイト406が保持され(例えば、“1”又はその他の何らかの非ゼロ値に設定され)、残りのウェイト406は除去される(例えば、それらのウェイトをZW 405であるように設定することによって行われる)。各々の訓練反復/エポックの後に保持されることになるNZW 406の数は、事前に定義されるか又は設定されてもよく、及び/又は特定のAI/MLタスク及び/又は基礎となるMLモデルに依存してもよい。所定の又は設定された回数の訓練反復/エポックが実行される。プルーニング・メカニズム400は、所望の数のパラメータに到達するまで、ウェイトをプルーニングし続け、ここで、所望の数のパラメータはパラメータ・バジェット706によって示される。
[0043] 1.4.スパース蒸留メカニズム
活性化テンソルAlを伴う層lが与えられている場合、活性化ベースのマッピング関数Fpは、次のように定義される:
[0043] 1.4.スパース蒸留メカニズム
活性化テンソルAlを伴う層lが与えられている場合、活性化ベースのマッピング関数Fpは、次のように定義される:
[0045] 生徒モデルΦSをプルーニングする一方、教師ΦTから知識を同時に蒸留するために、ΦSのトータルの訓練可能なパラメータが更新され、次いでマスクを用いてこれらのパラメータの一部をゼロに強制的に設定する。ここで、個々の層に対する「マスク」は、所与のプルーニング・バジェットに基づいて、訓練可能なパラメータが固定数の非ゼロを有することを確実にするために使用されるバイナリ・テンソルである。マスク・テンソルは、選別/選択されたタイプのモデル・プルーニング技術に基づいて、不規則な又は構造化された(規則的な)ものの両方であるとすることが可能である。一例では、マスク・テンソルは上三角行列であるが、適切な他のデータ構造であってもよい。スパース・ラーニングの態様に基づいて、蒸留は、初期化されたウェイト405とランダム・プルーニング・マスクとで開始され、そのマスクは、ΦSのターゲット・パラメータ密度dに対応する非ゼロ・パラメータ・バジェット706を充足するものである(これについては例えば、[Kundu]と[Dettmers]を参照されたい)。式(2)からの損失に基づいて、層の重要性は、エポックの間に、そのNZW 406によって寄与を受ける正規化されたモーメンタムを計算することによって評価される。これは、与えられたパラメータ・バジェット706の下で、より多くのNZW 406を有するべき層の決定を可能にし、それに応じて、プルーニング・マスクが更新される。具体的には、ウェイト405,406は、それらの大きさに基づいて、各層からの最下位ウェイト405、406のうちの固定パーセント分をプルーニングした後、最大モーメンタムの大きさで再成長させられる(例えば、[Dettmers]を参照されたい)。
[0046] スパース蒸留訓練の詳細はテーブル1(TABLE 1)に示されている。
[0048] 事実上のモデル・サイズを減らし、且つ推論を高速化するために(例えば、[Liu]を参照されたい)、フレームワーク200はまた、カラム・プルーニング、即ち構造化されたプルーニングの一形態であるものもサポートしている。畳み込み層lのウェイト・テンソルをWlとする:
[0049] 図6は、様々な実施形態による例示的なスパース蒸留プロセス600を示す。プロセス600は、スパース蒸留システム200を作動させる1つ以上の演算ノードによって実行されてもよい。プロセス600はオペレーション601で始まり、そこでは、初期ウェイトW(例えば、ウェイト・ベクトル又は行列)と初期マスクΠ(例えば、マスク・ベクトル又は行列)とが初期化され、マスクΠはウェイトWに適用される。オープン・ループ・オペレーション602において、システム200は、多数のエポック(例えば、totalEpochs)の各エポックeについて、オペレーション603-614を処理する。ここで、各エポックeは、各々の訓練事例が1回見られるように、訓練データセット全体にわたる1つの訓練パスである。更に、パスは、1つの順方向パス(例えば、入力層から出力層へ、入力層及び出力層間の何れの隠れ層も経由して、モデルを横切らせるもの)及び/又は1つの逆方向パス(例えば、出力層から入力層へ、モデルを逆方向に横切らせるもの)を含む可能性がある。
[0050] オープン・ループ・オペレーション603において、システム200は、多数のバッチ(例えば、totalBatches)のうちの各バッチについて、オペレーション604-606を処理する。ここで、バッチは、モデル訓練の1回の反復で使用される訓練データセットからの訓練事例のセットとすることが可能である。各バッチは、1つの訓練パスにおける訓練事例の数であるバッチ・サイズを有する。オペレーション604において、システム200は、現在のバッチに対する生徒損失LSと勾配を評価する(前述の式(2)を参照されたい)。オペレーション605において、システム200は、ウェイトWとモーメンタム寄与μlを更新する。オペレーション606において、システム200は、各層lに対するウェイトにマスクΠを適用する。クローズ・ループ・オペレーション607において、システム200は、オープン・ループ・オペレーション603に戻り、もしあれば次のバッチを処理する。全てのバッチが処理された後、システム200はオペレーション608に進む。オペレーション608までにおいて、システム200は、トータル・モーメンタムμを評価し、プルーニングされるべきトータル・ウェイトを取得し、プルーニング・レートpeを減衰させる。プルーニング・レートpeを減衰させることは、幾つかの実装では線形減衰(linear decay)として行われてもよい。
[0051] オープン・ループ・オペレーション609において、システム200は、多数の層Lのうちの各層lについて、オペレーション610-613を処理する。オペレーション610において、システム200は、層のモーメンタム寄与μlを更新する。オペレーション611において、システム200は、現在の層lからのアクティブ・ウェイトのうちの或る個数又はパーセンテージをプルーニングする。オペレーション612において、システム200は、層のモーメンタム寄与μlに基づいて、ある割合のインアクティブなウェイトを再成長させる。オペレーション613において、システム200は、次のエポックeのためにマスクΠを更新する。
[0052] クローズ・ループ・オペレーション614において、システム200は、オープン・ループ・オペレーション609に戻り、もしあれば、次の層lを処理する。全ての層lが処理された後、システム200はオペレーション615に進む。クローズ・ループ・オペレーション615において、システム200は、オープン・ループ・オペレーション602に戻り、もしあれば、次のエポックeを処理する。全てのエポックeが処理された後、システム200はオペレーション616に進み、スパース蒸留されたサブネット103を出力する。
[0053] 1.5.スパース蒸留のユース・ケース
スパース蒸留システム200の例示的なユース・ケースは、図7に示される所与のタスク及びデータセットについて、ニューラル・アーキテクチャ探索(NAS)アーキテクチャ700から、最良のモデル又は一組のモデルを見出すことを含む。
[0053] 1.5.スパース蒸留のユース・ケース
スパース蒸留システム200の例示的なユース・ケースは、図7に示される所与のタスク及びデータセットについて、ニューラル・アーキテクチャ探索(NAS)アーキテクチャ700から、最良のモデル又は一組のモデルを見出すことを含む。
[0054] 図7は、様々な実施形態による、NASシステム710s内で使用されるか又は別の方法で関連して使用されるスパース蒸留システム200を含むNASアーキテクチャ700を示す。NASシステム710は、NASアプリケーション(app)710aを作動させるように構成された1つ以上の演算ノードを含む。NASアプリ710aは、MLモデルNAS機能部720、サブネット検索機能725(これはスパース蒸留システム200に対応してもよい)、及びサブネット選択機能部730を含む。クライアント・デバイス701のユーザーは、NASアプリ710bを作動させ、NASアプリ710aと相互作用して、適切なMLモデルを検索する、及び/又は既存のMLモデル(例えば、スーパーネット705)を最適化する。クライアント・デバイス701は、本件で議論されるもののような、任意のタイプのクライアント又はユーザー・デバイスであってもよい。NASアプリ710bは、例えば、ウェブ・ブラウザ、デスクトップ・アプリ、モバイル・アプリ、ウェブ・アプリ、及び/又はその他の同様な要素であって、
適切な通信プロトコル(例えば、ハイパー・テキスト転送プロトコル(HTTP) (又はその変形)、メッセージ・キュー・テレメトリ・トランスポート(MQTT)、リアルタイム・ストリーミング・プロトコル(RTSP)など)を使用してNASアプリ710aと相互作用するように構成されたものであってもよい。NASアプリ710aは、サーバー側アプリ、エッジ・コンピューティング・アプリ、クラウド・コンピューティング・サービス、及び/又はその他の要素/エンティティであって、ユーザーが、NASアプリ710bを使用してNASアプリ710aにML設定(config.)702を提供できるようにするものであってもよい。NASアプリ710bは、ユーザーが、ML設定702を追加、更新、及び/又は変更することを可能にする様々なグラフィカル要素/オブジェクトを含むグラフィカル・ユーザー・インターフェース(GUI)を含んでもよい。更に、NASアプリ710aは、NASアプリ710aの他のサブシステム及び/又はスパース蒸留システム200にアクセスするためのアプリケーション・プログラミング・インターフェース(API)を含んでもよい。ユーザーは、NASアプリ710bを使用して、ML設定702をNASアプリ710aに提供し、適切なMLモデルを探索し及び/又は既存のMLモデル(例えば、スーパーネット705)を最適化する。
更に、ML設定702は、何らかの適切なフォーム又はフォーマットにおける情報オブジェクト、ファイル、電子文書などであってもよく、そのフォーム又はフォーマットは、例えば、適切なマークアップ言語文書(例えば、ハイパー・テキスト・マークアップ言語(HTML)、拡張可能マークアップ言語(XML)、AIマークアップ言語(AIML)、Javaスクリプト・オブジェクト・ノーテーション(JSON)等)、縦覧式ファイル・フォーマット(例えば、HDF4やHDF5等を含む階層的データ・フォーマット(HDF);Hadoop分散ファイル・システム(HDFS);Apache(登録商標)Parquet、ペタストーム(petastorm);等)、テーブル式テキスト・ベースのフォーマット(例えば、カンマ区切りバリュー(csv)、スプレッドシート・ファイル・フォーマット(例えば、.xlsx))、モデル・ファイル・フォーマット(例えば、プロトコル・バッファ・ファイル(.pbファイル拡張子)、Keras (.h5ファイル拡張子)、python (.pklファイル拡張子)、PyTorch モデル(.ptファイル拡張子)、予測モデル・マークアップ言語(.pmmlファイル拡張子)、.mlmodelファイル・フォーマットなど)等々のようなものである。
適切な通信プロトコル(例えば、ハイパー・テキスト転送プロトコル(HTTP) (又はその変形)、メッセージ・キュー・テレメトリ・トランスポート(MQTT)、リアルタイム・ストリーミング・プロトコル(RTSP)など)を使用してNASアプリ710aと相互作用するように構成されたものであってもよい。NASアプリ710aは、サーバー側アプリ、エッジ・コンピューティング・アプリ、クラウド・コンピューティング・サービス、及び/又はその他の要素/エンティティであって、ユーザーが、NASアプリ710bを使用してNASアプリ710aにML設定(config.)702を提供できるようにするものであってもよい。NASアプリ710bは、ユーザーが、ML設定702を追加、更新、及び/又は変更することを可能にする様々なグラフィカル要素/オブジェクトを含むグラフィカル・ユーザー・インターフェース(GUI)を含んでもよい。更に、NASアプリ710aは、NASアプリ710aの他のサブシステム及び/又はスパース蒸留システム200にアクセスするためのアプリケーション・プログラミング・インターフェース(API)を含んでもよい。ユーザーは、NASアプリ710bを使用して、ML設定702をNASアプリ710aに提供し、適切なMLモデルを探索し及び/又は既存のMLモデル(例えば、スーパーネット705)を最適化する。
更に、ML設定702は、何らかの適切なフォーム又はフォーマットにおける情報オブジェクト、ファイル、電子文書などであってもよく、そのフォーム又はフォーマットは、例えば、適切なマークアップ言語文書(例えば、ハイパー・テキスト・マークアップ言語(HTML)、拡張可能マークアップ言語(XML)、AIマークアップ言語(AIML)、Javaスクリプト・オブジェクト・ノーテーション(JSON)等)、縦覧式ファイル・フォーマット(例えば、HDF4やHDF5等を含む階層的データ・フォーマット(HDF);Hadoop分散ファイル・システム(HDFS);Apache(登録商標)Parquet、ペタストーム(petastorm);等)、テーブル式テキスト・ベースのフォーマット(例えば、カンマ区切りバリュー(csv)、スプレッドシート・ファイル・フォーマット(例えば、.xlsx))、モデル・ファイル・フォーマット(例えば、プロトコル・バッファ・ファイル(.pbファイル拡張子)、Keras (.h5ファイル拡張子)、python (.pklファイル拡張子)、PyTorch モデル(.ptファイル拡張子)、予測モデル・マークアップ言語(.pmmlファイル拡張子)、.mlmodelファイル・フォーマットなど)等々のようなものである。
[0055] ML設定702は、スーパーネット705、パラメータ・バジェット706、及び/又はデータセット及びタスク情報(DTI)707を含むか又は指定することができる。スーパーネット705は、スパース蒸留システム200を用いて探索及び/又は最適化されることになる初期MLモデルである。先に言及したように、パラメータ・バジェット706はあるファイル又はその他のデータ構造であって、訓練セッションが完了した後の結果として生じるサブネット201に関する所望のパラメータ特徴(例えば、サブネット201に対するターゲット・パラメータ密度d及び/又はサブネット201のサイズ)を定義するものである。DTI 707は、訓練及び/又は推論の決定のための1つ以上の適切なデータセット、サポートされるライブラリ(例えば、テンソル・ライブラリなど)、ハードウェア・プラットフォームの設定/仕様/技術的詳細、パラメータ及び/又はハイパーパラメータのタイプ及び/又は値、及び/又はその他の同様な情報/データを含んでもよい。ML設定702におけるDTI 707は、データセットを含むリモート・ストレージ又はその他のリソースに対する参照であって、データセット自体を取得するために、NASアプリ710a(又はNAS機能部720)によって使用されるものであってもよい。
[0056] ハードウェア・プラットフォームの設定/仕様/技術的詳細は、ユーザーが、スパース蒸留されたサブネット103を配備しようとしているハードウェア・プラットフォームの態様を示す。一例において、ユーザーは、IoTデバイス又は自律センサ、例えば物体認識モデル/サブネットのための画像センサ、のようなもののための様々なハードウェア(技術の)詳細を入力することができる。別の例において、ユーザーは、NLPモデル/サブネット(例えば、チャットボットなど)に対して、特定のクラウド演算プラットフォーム/サービス(及び、オプションとして、クラウド・サービス加入、アカウント詳細などに基づいて利用可能なリソース)を入力するか又は他の方法で指定することができる。これらの例において、ハードウェア(技術の)詳細は、プロセッサ、メモリ・デバイス、チップセット、センサ・タイプなどに関する情報を含んでもよい。幾つかの実装において、ユーザーにパラメータ・バジェット706を提供することを要求する代わりに、NASアプリ710b、NASアプリ710a、又はNAS機能部720は、ハードウェア・プラットフォーム設定/仕様/技術的詳細(又はその態様)に基づいて、適切なパラメータ・バジェット706を導出するか又は他の方法で決定することができる。
[0057] 幾つかの実装において、ML設定702は、特定のスーパーネット705を提供することをユーザーに要求するのではなく、1つ以上のAI/MLタスク及びAI/MLドメインを含むか又は指定してもよい。ここで、1つ以上のAI/MLタスクとAI/MLドメインは、NASを実行し、ユーザーに相応しいMLモデルを発見するために使用される。AI/MLタスクは、解決されるべき所望の問題を記述することができ、AI/MLドメインは、達成されるべき所望のゴールを記述することができる。MLタスクの具体例は、クラスタリング、分類、回帰、異常検出、データ・クリーニング、自動化されたML(autoML)、関連ルール学習、強化学習、構造化予測、特徴工学、特徴学習、オンライン学習、教師あり学習、半教師あり学習(SSL)、教師なし学習、機械学習ランキング(MLR)、文法誘導、等々を含む。MLドメインは、推論及び問題解決、知識表現及び/又はオントロジー、自動化計画、自然言語処理(NLP)、パーセプション(例えば、コンピュータ・ビジョン、音声認識など)、自律運動及び操作(例えば、位置特定、ロボット運動/移動、自動運転など)、及びソーシャル・インテリジェンスを含む。
[0058] ML設定702は、NAS機能部720に提供され、またサブネット選択機能部730にも提供される。幾つかの実装において、パラメータ・バジェット706のみが、サブネット選択機能部730に提供される。また、MLモデルNAS機能部720は、ML設定702によって指定されたDTI 707を取得する(例えば、適切な参照を用いるか、又は何らかの他の仕組みを用いて取得される)。
[0059] MLモデルNAS機能部720は、ML設定の要件を満たすMLモデル(スーパーネット)を探索して発見し、発見されたモデルをサブネット検索機能部725に提供する。NAS機能部720によって探索されるMLモデル(スーパーネット)は、ユーザーが供給するスーパーネット705に加えて、及び/又は、ML設定702によって示されるAI/MLドメイン及びAI/MLタスクに基づくことが可能である。MLモデルNAS機能部720は、NASを実行する際に、ユーザー指定のハードウェア・プラットフォーム(又はそのようなハードウェア・プラットフォームの技術的仕様の一部)を考慮することができる。例えば、指定されたハードウェア・プラットフォームの様々な既知の又は計算されたベンチマーク(あるいは、指定された技術的詳細の一部又は全てを使用するもの)が、NASのために使用される1つ以上の特徴として使用されることが可能である。
[0060] サブネット探索機能部725は、各候補モデル(スーパーネット)をスパース蒸留システム200に提供する。各々の候補モデル(スーパーネット)は、システム200にスーパーネット205として入力される可能性があり、対応するスパース蒸留済みサブネット(例えば、サブネット103)が、サブネット選択機能部730に提供される。スパース蒸留システム200は、各々の候補モデル(スーパーネット)をスパース蒸留済みサブネット(例えば、サブネット103)に蒸留することが可能であり、その蒸留済みサブネットは、パラメータ・バジェット706に適合し(例えば、パラメータ・バジェット706で指定されたものと同じか又はより少ないパラメータ/ウェイトを有する)、及び/又はユーザー指定ハードウェア・プラットフォームの少なくとも一部の特徴(又は、そのようなハードウェア・プラットフォームの技術仕様の一部)に適合するものである。例えば、指定されたハードウェア・プラットフォームの様々な既知の又は計算されたベンチマーク(又は、指定された技術的詳細の一部又は全てを使用するもの)を、KD、プルーニング、及び/又はSAに使用することができる。
[0061] 返されて来た全てのスパース蒸留済みサブネットの中から、サブネット選択機能部730は、サブネット結果708をクライアント・デバイス/ユーザーに戻す。サブネット結果708は、設定706においてユーザーによって指定された、及び/又はスーパーネット701に基づいた、所望のAI/MLタスクを実行するように構成された1つ以上のサブネットを含むか又は指定する。サブネット結果708を提供するために、サブネット選択機能部730は、パラメータ・バジェット706及び/又はその他のML設定702の情報に基づいて、最適なスパース蒸留済みサブネットを、全てのスパース蒸留済みサブネットの中から選択するか、又は、スパース蒸留済みサブネットの全部又は一部の検索結果リストを提供して、ユーザーが、検索結果リストの中から好ましいサブネットを選択してダウンロードできるようにする。例えば、サブネット選択機能部730は、サブミットされたサーチ・クエリに応答して、サーチ・エンジンによって提供されるサーチ・エンジン結果ページ(SERP)と同一又は類似の方法でサーチ結果を提供することが可能であり、この場合、SERPは、対応するサブネットを得るために複数のリンク又は他のリソースを含む。
[0062] 従来のNASシステムは、ユーザーが指定した要件(例えば、電力、ハードウェア・プラットフォーム、速度、精度など)に適合する幾つかの可能性を試し、そして最良の候補をユーザーに返すであろう。しかしながら、従来のNASシステムは、モデルのパラメータ数(例えば、メモリ消費)、電力、及び速度に基づいてモデルを排除するであろうし、たとえそれらの精度又はその他のパフォーマンス尺度が他の発見されたモデルより優れていたとしても排除するであろう。対照的に、NASアーキテクチャ700は、スパース蒸留システム200を含み、これは、指定されたML設定702に適合するようにモデルをより小さなサブネットに蒸留及び剪定し、より正確なモデルを、実現可能な候補として返す。スパース蒸留システム200の使用を伴わないナイーブ・シナリオ(naive scenario)(例えば、従来のNASシステムを使用するもの)では、従来のNASシステムが、より正確なモデルを、NASの結果として返すために、ユーザーは、ML設定702において、より大きなパラメータを指定しなければならないであろう。更に、従来のNASシステムによって返されるモデルは、ユーザーの特定のアプリケーション/ユース・ケースにそれらを適したものとするために、時間のかかる最適化プロセスを通じて、なおいっそうファインチューニング及び/又は微調整されなければならないであろう。
[0063] 幾つかの実装において、NASアーキテクチャ700の要素の全部又は一部は、個々の演算ノードによって作動させられる。例えば、NASアーキテクチャ700は、クラウド演算サービスの一部であってもよく、そこではNASシステム710sは、分散方式でNASアプリ710aを動作させる1つ以上のアプリケーション・サーバーを含み、スパース蒸留システム200は、分散方式で1つ以上のクラウド・コンピューティング・ノードによって作動させられる。別の実装において、NASアーキテクチャ700の要素の全部又は一部は、アプリケーション・サーバー、エッジ演算ノード、コンテンツ配信ネットワーク(CDN)ノード、等々のような単一の演算ノード710によって作動させられるソフトウェア要素である。
[0064] NASアーキテクチャ700に対して追加的又は代替的に、スパース蒸留システム200は、エッジ演算に関して及びIoTフレームワークにおいて有用である可能性がある。この例示的なユース・ケースでは、モデルのスパース蒸留されたバージョン(例えば、サブネット103)は、1つ以上のIoTデバイス上で、そのモデルが導出された元のスーパーネット105,205の代理として動作することが可能であり、スーパーネット105,205は、エッジ演算ノード又はクラウド演算サービスにおいて動作し、経時的に結果を更新又は改善する。この例では、代理サブネット103は、連合学習システムの一部であってもよい。追加的又は代替的に、代理サブネット103は、瞬時的な結果をユーザーに提供するために使用されることが可能であり、及び/又は、ユーザーが接続を有しておらず且つスーパーネット105,205のサービスを得ることができない場合、代理サブネット103は、通常通りに動作し続け、それによって、ユーザー経験を向上させる。
[0065] 図8は、様々な実施形態による例示的なNASプロセス800を示す。プロセス800は、NASシステム710sによって実行されてもよい。プロセス800はオペレーション801において始まり、そこではNASシステム710sがML設定702をクライアント装置701から取得する。オペレーション802において、NASシステム710sは、クライアント・デバイス701又はリモート・リソースからDTI 707を取得する。オペレーション803において、NASシステム710sはNASを実行し、一組の候補スーパーネット105,205を得る。NASシステム710sは、NASを実行するために、ML設定702とDTI 707を使用する。オペレーション804において、NASシステム710sは、候補スーパーネット105,205のセットに対してスパース蒸留を実行して、スパース蒸留済みサブネット103のセットを取得する。オペレーション804において、NASシステム710は、一組のスパース蒸留済みサブネット103のうちの1つ以上のスパース蒸留済みサブネット103を、クライアント・デバイス701に提供する。幾つかの実施形態において、NASシステム710sは、スパース蒸留済みサブネット103のセットを、検索結果リストなどの形式でクライアント・デバイス701に提供する。幾つかの実施形態において、NASシステム710sは、スパース蒸留済みサブネット103のセットの各々について、様々なパフォーマンス・メトリックを決定することが可能であり、これらのパフォーマンス・メトリックの全部又は一部を、検索結果と共に提供する。代替的に、NASシステム710sは、1つ以上のパフォーマンス・メトリックに基づいて、一組のスパース蒸留済みサブネット103のうちの最適なスパース蒸留済みサブネット103を提供してもよい。
[0066] 2.人工知能及び機械学習の態様
機械学習(ML)は、事例(訓練)データ及び/又は過去の経験を用いてパフォーマンス基準を最適化するためのプログラミング演算システムを含む。MLとは、明示的な命令に従うことなく、アルゴリズム及び/又は統計モデルを用いて、データ中のパターンから分析を行って推論を引き出すことにより、学習及び適応することが可能なコンピュータ・システムの使用及び発展を指す。MLは、特定のタスクを実行するために明示的な指示を使用することなく、特定のタスクを実行するためにアルゴリズムを使用するが、その代わりに、学習したパターン及び/又は推論を当てにする。MLは、統計を用いて、 サンプル・データ(例えば、訓練データ)に基づいて予測又は決定を行うために、統計を用いて、数学モデル(「MLモデル」又は単に「モデル」とも呼ばれる)を構築する。モデルは、一連のパラメータを有するように定義され、学習は、訓練データ又は過去の経験を使用して、モデルのパラメータを最適化するためのコンピュータ・プログラムの実行である。訓練済みモデルは、入力データセットに基づいて予測を行う予測モデル、入力データセットから知識を獲得する記述モデル(descriptive model)、又は予測と記述の両方を行う予測モデルである可能性がある。いったんモデルが学習(訓練)されると、それは推論(例えば、予測)を行うために使用することが可能である。
[0066] 2.人工知能及び機械学習の態様
機械学習(ML)は、事例(訓練)データ及び/又は過去の経験を用いてパフォーマンス基準を最適化するためのプログラミング演算システムを含む。MLとは、明示的な命令に従うことなく、アルゴリズム及び/又は統計モデルを用いて、データ中のパターンから分析を行って推論を引き出すことにより、学習及び適応することが可能なコンピュータ・システムの使用及び発展を指す。MLは、特定のタスクを実行するために明示的な指示を使用することなく、特定のタスクを実行するためにアルゴリズムを使用するが、その代わりに、学習したパターン及び/又は推論を当てにする。MLは、統計を用いて、 サンプル・データ(例えば、訓練データ)に基づいて予測又は決定を行うために、統計を用いて、数学モデル(「MLモデル」又は単に「モデル」とも呼ばれる)を構築する。モデルは、一連のパラメータを有するように定義され、学習は、訓練データ又は過去の経験を使用して、モデルのパラメータを最適化するためのコンピュータ・プログラムの実行である。訓練済みモデルは、入力データセットに基づいて予測を行う予測モデル、入力データセットから知識を獲得する記述モデル(descriptive model)、又は予測と記述の両方を行う予測モデルである可能性がある。いったんモデルが学習(訓練)されると、それは推論(例えば、予測)を行うために使用することが可能である。
[0067] MLアルゴリズムは、基礎となるMLモデルを推定するために、訓練データセットに関して訓練プロセスを実行する。MLアルゴリズムは、幾つかのタスク及び幾つかのパフォーマンス尺度/メトリックに関して経験から学習するコンピュータ・プログラムであり、MLモデルは、MLアルゴリズムが訓練データで訓練された後に生成されるオブジェクト又はデータ構造である。換言すれば、用語「MLモデル」又は「モデル」は、訓練データで訓練されたMLアルゴリズムの出力の特徴を述べることができる。訓練の後、MLモデルは、新しいデータセットに関して予測を行うために使用されることが可能である。更に、別々に訓練されたAI/MLモデルは、推論又は予測生成の間に、AI/MLパイプラインの中で一緒にチェーン化されることが可能である。用語「MLアルゴリズム」は、用語「MLモデル」とは異なる概念を指すが、これらの用語は、本開示の目的に関しては可換に使用されてよい場合がある。本件で説明される任意のML技術は、本件で議論される例示的な実施形態の何れについても、全体として又は部分的に、及びそれらの変形及び/又は組み合わせで利用されることが可能である。
[0068] MLは、とりわけ、データセットの取得及びクリーニング、特徴選択の実行、MLアルゴリズムの選択、データセットを訓練データ及びテスト。データに分割すること、モデルを(例えば、選択されたMLアルゴリズムを使用して)訓練すること、モデルをテストすること、モデルを最適化又はチューニングすること、及びモデルのメトリックを決定すること、を必要とする可能性がある。これらのタスクのうちの幾つかは、ユース・ケース及び/又は使用される実装に応じて、オプションであったり又は省略されたりしてもよい。
[0069] MLアルゴリズムは、モデル・パラメータ(又は単に「パラメータ」)及び/又はハイパーパラメータを受け入れ、これらは、訓練プロセス及び結果のモデルの特定の性質を制御するために使用することが可能である。モデル・パラメータは、訓練中に学習されるパラメータ、値、特徴、構成変数、及び/又はプロパティである。モデル・パラメータは、通常、予測を行う場合にモデルによって必要とされ、それらの値は、特定の問題に関するモデルの能力を定める。少なくとも一部の実施形態におけるハイパーパラメータは、訓練プロセス中に学習できない、MLプロセスに関する特性、プロパティ、及び/又はパラメータである。ハイパーパラメータは、通常、訓練が行われる前に設定され、モデル・パラメータを推定するのに役立つようにプロセスにおいて使用される。
[0070] ML技術は、一般に、以下の主要なタイプの学習問題カテゴリ:教師あり学習、教師なし学習、及び強化学習に分類される。教師あり学習は、入力と所望の出力の両方を含む一連のデータから、モデルを構築することを含む。
教師なし学習は、隠された構造を記述する関数を、ラベルなしデータから学習することを目的とするMLタスクである。教師なし学習は、入力のみを含み且つ所望の出力ラベルを含まない一連のデータから、モデルを構築することを含む。強化学習(RL)は、目標指向型の学習技術であり、そこではRLエージェントが、環境と相互作用することにより、長期的目標を最適化することを目指す。AIとMLの幾つかの実装は、生物学的な脳の働きを真似る方法で、データとニューラル・ネットワーク(NN)を使用する。そのような実装の例は図9に示されている。
教師なし学習は、隠された構造を記述する関数を、ラベルなしデータから学習することを目的とするMLタスクである。教師なし学習は、入力のみを含み且つ所望の出力ラベルを含まない一連のデータから、モデルを構築することを含む。強化学習(RL)は、目標指向型の学習技術であり、そこではRLエージェントが、環境と相互作用することにより、長期的目標を最適化することを目指す。AIとMLの幾つかの実装は、生物学的な脳の働きを真似る方法で、データとニューラル・ネットワーク(NN)を使用する。そのような実装の例は図9に示されている。
[0071] 図9は、例示的なNN 900を示しており、これは、ハードウェア・アクセラレータ等々によって部分的に実装される、本件で議論される種々の実装の1つ以上の演算システム(又はサブシステム)による使用に適しているものとすることが可能である。NN 900は、非常に大きく且つ複雑な観察空間を取り扱うために、演算ノード又は演算ノードのネットワークの人工脳として使用されるディープ・ニューラル・ネットワークであってもよい。追加的又は代替的に、NN 900は、何らかの他のタイプのトポロジ(又はトポロジの組み合わせ)、例えば本件で議論される何れかのようなものであるとすることが可能である。NNは、通常、教師あり学習に使用されるが、教師なし学習及び/又はRLに使用されることも可能である。
[0072] NN 900は種々のML技術を包含する可能性があり、そこでは生物学的な脳内のニューロンを(大まかに)モデル化する人工ニューロン900が接続されている集合体が、信号を他のニューロン/ノード910へ伝達する。ニューロン910は、ノード910、処理要素(PE)910などと言及されてもよい。ノード910の間の接続920(又はエッジ920)は、生物学的な脳のシナプスに関して(大まかに)モデル化されており、ノード910間で信号を伝達する。図9では、明瞭性のために、全てのニューロン910やエッジ920がラベル付けされているわけではないことに留意されたい
[0073] 各ニューロン910は、1つ以上の入力を有し、1つの出力を生成し、その出力は、1つ以上の他のニューロン910に送信されることが可能である(入力及び出力は、「信号」と言及されてもよい)。入力層lxのニューロン910への入力は、外部データのサンプル(例えば、入力変数xi)の特徴値であるとすることが可能である。入力変数xiは、関連するデータ(例えば、オブザベーション、ML特徴など)を含むベクトルとして設定されることが可能である。隠れ層La,Lb,Lcの隠れユニット910への入力は、他のニューロン910の出力に基づいている可能性がある。出力層Lyの最終出力ニューロン910の出力(例えば、出力変数yi)は、所望の/設定されたタスクの予測、推論、及び/又は功績を含む。出力変数yiは、決定、推論、予測、及び/又は評価の形式におけるものであってもよい。追加的又は代替的に、出力変数yiは、関連データ(例えば、決定、推測、予測、評価、及び/又は類似のもの)を含むベクトルとして設定されてもよい。
[0073] 各ニューロン910は、1つ以上の入力を有し、1つの出力を生成し、その出力は、1つ以上の他のニューロン910に送信されることが可能である(入力及び出力は、「信号」と言及されてもよい)。入力層lxのニューロン910への入力は、外部データのサンプル(例えば、入力変数xi)の特徴値であるとすることが可能である。入力変数xiは、関連するデータ(例えば、オブザベーション、ML特徴など)を含むベクトルとして設定されることが可能である。隠れ層La,Lb,Lcの隠れユニット910への入力は、他のニューロン910の出力に基づいている可能性がある。出力層Lyの最終出力ニューロン910の出力(例えば、出力変数yi)は、所望の/設定されたタスクの予測、推論、及び/又は功績を含む。出力変数yiは、決定、推論、予測、及び/又は評価の形式におけるものであってもよい。追加的又は代替的に、出力変数yiは、関連データ(例えば、決定、推測、予測、評価、及び/又は類似のもの)を含むベクトルとして設定されてもよい。
[0074] MLの文脈において、「ML特徴」(又は単に「特徴(feature)」)は、観察される現象の個々の測定可能な特性又は特徴である。特徴は、通常、番号/数字(例えば、整数)、文字列、変数、順序、実数値、カテゴリ等々を用いて表現される。追加的又は代替的に、ML特徴は個々の変数であって、定量化され且つ記録されることが可能な観察可能な現象に基づく独立変数であり得るものである。MLモデルは、予測又は推論を行うために1つ以上の特徴を使用する。幾つかの実装において、新しい機能は古い特徴から導出されることが可能である。
[0075] ニューロン910は、集約された信号がその閾値を越える場合にのみ信号が送信されるような閾値を有していてもよい。ノード910は活性化関数を含み、活性化関数は、所与の入力又は一組の入力の下で、そのノード910の出力を定義するものである。追加的又は代替的に、ノード910は、ノード910への、それに先行するニューロン910の出力から来た入力と、それらの接続920とを、加重和として演算する伝達関数を含んでもよい。バイアス項が、伝達関数の結果に加えられることも可能である。
[0076] NN 900はまた接続920を含み、その一部は、少なくとも1つのニューロン910の出力を、少なくとも別のニューロン910への入力として提供するものである。各々の接続920は、その相対的な重要度を表すウェイトを割り当てられることが可能である。また、ウェイトは、学習が進行するにつれて調整されることも可能である。ウェイトは、接続920における信号の強度を増加又は減少させる。
[0077] ニューロン910は、1つ以上の層に集約又はグループ化されることが可能であり、そこでは、様々な層Lがそれらの入力に対して様々な変換を行うことができる。図9において、NN 900は、入力層Lx、1つ以上の隠れ層La,Lb,Lc、及び出力層Lyを含み(ここで、a,b,c,x,yは番号であってもよい)、各層Lは1つ以上のニューロン910を含む。信号は、第1層(例えば、入力層L1)から最終層(例えば、出力層Ly)へ、おそらくは隠れ層La,Lb,Lcを複数回伝搬した後に至る。図9では、入力層L1は入力変数xiのデータを受信する(ここで、i = 1,...,pであり、pは個数である)。隠れ層La,Lb,Lcは入力xiを処理し、最終的に出力層Lyは変数yiを提供する(ここで、j =I ,..., p’であり、p’はpと同じ又は異なる数である)。図9の例では、説明を簡単にするために、3つの隠れ層のみがANN 900に存在しているが、ANN 900は、図示されているよりも多い(又はより少ない)隠れ層La,Lb,Lcを含んでもよい。
[0078] 3.例示的なハードウェア及びソフトウェア設定及び配置
図10aは、様々な実施形態による例示的なアクセラレータ・アーキテクチャ1000である。アクセラレータ・アーキテクチャ1000は、ニューラル・ネットワーク(NN)機能をアプリケーション・ロジック1012に提供し、それ自体は、NNアクセラレータ・アーキテクチャ1000、DNNアクセラレータ・アーキテクチャ1000等々と言及されてもよい。
[0078] 3.例示的なハードウェア及びソフトウェア設定及び配置
図10aは、様々な実施形態による例示的なアクセラレータ・アーキテクチャ1000である。アクセラレータ・アーキテクチャ1000は、ニューラル・ネットワーク(NN)機能をアプリケーション・ロジック1012に提供し、それ自体は、NNアクセラレータ・アーキテクチャ1000、DNNアクセラレータ・アーキテクチャ1000等々と言及されてもよい。
[0079] アプリケーション・ロジック1012は、仕様機能を実行するために使用されるアプリケーション・ソフトウェア及び/又はハードウェア構成要素を含んでもよい。アプリケーション・ロジック1012は、データ1014を推論エンジン1016へ転送する。推論エンジン1016は、ANN(例えば、DNNなどの)推論をアプリケーション論理1012と共に統合し、結果1018(又は出力)をアプリケーション・ロジック1012に提供する統一アプリケーション・プログラミング・インターフェースを渡すランタイム要素である
[0080] 推論を提供するために、推論エンジン1016は、結果1018を生成するためにデータ1014に対してDNN推論がどのように行われるかを制御するモデル1020を使用する。具体的には、モデル1020は、NNの層のトポロジを含む。トポロジは、データ1014を受信する入力層と、結果1018を出力する出力層と、入力層及び出力層間の1つ以上の隠れ層であってデータ14及び結果1018間の処理を行う1つ以上の隠れ層とを含む。トポロジは、拡張可能マークアップ言語(XML)、JavaScriptオブジェクト・ノーテーション(JSON)、及び/又はその他の適切なデータ構造、ファイル等々のような適切な情報オブジェクトに格納されてもよい。また、モデル1020は、DNNを用いる推論においてデータ1014を処理する間に、任意の層の結果に関するウェイト及び/又はバイアスを含む可能性がある。
[0080] 推論を提供するために、推論エンジン1016は、結果1018を生成するためにデータ1014に対してDNN推論がどのように行われるかを制御するモデル1020を使用する。具体的には、モデル1020は、NNの層のトポロジを含む。トポロジは、データ1014を受信する入力層と、結果1018を出力する出力層と、入力層及び出力層間の1つ以上の隠れ層であってデータ14及び結果1018間の処理を行う1つ以上の隠れ層とを含む。トポロジは、拡張可能マークアップ言語(XML)、JavaScriptオブジェクト・ノーテーション(JSON)、及び/又はその他の適切なデータ構造、ファイル等々のような適切な情報オブジェクトに格納されてもよい。また、モデル1020は、DNNを用いる推論においてデータ1014を処理する間に、任意の層の結果に関するウェイト及び/又はバイアスを含む可能性がある。
[0081] 推論エンジン1016は、ハードウェア・ユニット1022を使用して及び/又は接続して実装されてもよい。少なくとも幾つかの実施形態において、推論エンジン1016は、新しい情報を導くために知識ベースに論理ルールを適用する要素である。少なくとも幾つかの実施形態における知識ベースは、演算システム(例えば、図10の演算ノード1050)によって使用される複雑な構造化された及び/又は構造化されていない情報を記憶するために使用される何らかの技術である。知識ベースは、記憶デバイス、リポジトリ、データベース管理システム、及び/又は他の同様な要素を含む可能性がある。
[0082] 更に、推論エンジン1016は、1つ以上のハードウェア・ユニット1022を使用してDNN推論に対してハードウェア加速をもたらす1つ以上のアクセラレータ1024を含む。アクセラレータ1024は、AI/MLアプリケーション及び/又はAI/MLタスクのためのハードウェア・アクセラレーションとして具体的に特化/設計されたソフトウェア及び/又はハードウェア要素である。1つ以上のアクセラレータ1024は、複数のシナプス構造1025の形態における1つ以上の処理要素(PE)アレイ及び/又は乗算&累積(multiply-and-accumulate,MAC)アーキテクチャを含んでもよい。アクセラレータ1024は、以下で説明される図10の加速回路1064に対応してもよい。
[0083] ハードウェア・ユニット1022は、1つ以上のプロセッサ及び/又は1つ以上のプログラマブル・デバイスを含んでもよい。具体例として、プロセッサは、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、専用のAIアクセラレータ特定用途向け集積回路(ASIC)、ビジョン・プロセシング・ユニット(VPU)、テンソル処理ユニット(TPU)及び/又はエッジTPU、ニューラル演算エンジン(NCE)、ピクセル・ビジュアル・コア(PCV)、フォトニック集積回路(PIC)、又は光/フォトニック演算デバイス等々を含む可能性がある。プログラマブル・デバイスは、コンプレックスPLD(CPLD)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プログラマブルASIC、プログラマブル・システム・オン・チップ(SoC)等のような、論理アレイ、プログラマブル論理デバイス(PLD)を含む可能性がある。プロセッサ及び/又はプログラマブル・デバイスは、図10のプロセッサ回路1052及び/又は加速回路1064に対応してもよい。
[0084] 図10bは、本件で説明される技術(例えば、オペレーション、プロセス、方法、及び方法論)を実装するために、演算ノード1050内に存在し得る構成要素の例を示す。図10bは、演算デバイス(例えば、モバイル・デバイス、基地局、サーバー・コンピュータ、ゲートウェイ、機器など)の一部として実装される場合のノード1050の構成要素の図を提供している。幾つかの実装において、演算ノード1050は、前述したNASアプリ610及び/又はスパース蒸留システム200のようなスパース蒸留プロセス600の全部又は一部を作動させるアプリケーション・サーバー、エッジ・サーバー、クラウド演算ノードなどであってもよい。演算ノード1050は、本件で参照されるハードウェア又は論理構成要素の任意の組み合わせを含む可能性があり、エッジ通信ネットワーク又はそのようなネットワークの組み合わせとともに使用可能な任意の装置を含んでもよいし又はそれと結合してもよい。構成要素は、IC、ICの一部、ディスクリートな電子デバイス、又はその他のモジュール、命令セット、プログラマブル・ロジック又はアルゴリズム、ハードウェア、ハードウェア・アクセラレータ、ソフトウェア、ファームウェア、又はそれらの組み合わせとして、演算ノード1050に適合されて実装されてもよいし、又は、別の方法でより大きなシステムのシャーシ内に組み込まれて実装されてもよい。一実施形態では、少なくとも1つのプロセッサ1052は、演算ロジック1082と共にパッケージ化され、本件で説明される様々な例示的な実施形態の態様を実施して、システム・イン・パッケージ(Sip)又はシステム・オン・チップ(SoC)を形成するように構成されてもよい。
[0085] ノード1050は、1つ以上のプロセッサ1052の形態でプロセッサ回路を含む。プロセッサ回路1052は、1つ以上のプロセッサ・コア及び1つ以上のキャッシュ・メモリ、低ドロップ・アウト電圧レギュレータ(LDO)、割り込みコントローラ、シリアル・インターフェース(例えば、SPI、I2C又はユニバーサル・プログラマブル・シリアル・インターフェース回路)、リアル・タイム・クロック(RTC)、インターバル及びウォッチドッグ・タイマを含むタイマ・カウンタ、汎用I/O、メモリ・カード・コントローラ(例えば、セキュア・デジタル/マルチ・メディア・カード(SD/MMC)又は類似のもの)、インターフェース、モバイル・インダストリ・プロセッサ・インターフェース(MIPI)インターフェース、及びジョイント・テスト・アクセス・グループ(JTAG)テスト・アクセス・ポートのような回路を含むが、これらに限定されない。幾つかの実装において、プロセッサ回路1052は、マイクロプロセッサ、プログラマブル処理デバイス(例えば、FPGA、ASIC等)などであってもよい、1つ以上のハードウェア・アクセラレータ(例えば、加速回路1064と同一又は類似のもの)を含んでもよい。1つ以上のアクセラレータは、例えば、コンピュータ・ビジョン及び/又はディープ・ラーニング・アクセラレータを含むことが可能である。幾つかの実装において、プロセッサ回路1052は、オン・チップ・メモリ回路を含んでもよく、これは、DRAM、SRAM、EPROM、EEPROM、フラッシュメモリ、固体メモリ、及び/又は、その他のタイプのメモリ・デバイス技術であって本件で議論されているようなもののような、任意の適切な揮発性及び/又は不揮発性メモリを含んでもよい。
[0086] プロセッサ回路1052は、例えば、1つ以上のプロセッサ・コア(CPU)、アプリケーション・プロセッサ、GPU、RISCプロセッサ、英コーンRISCマシン(ARM)プロセッサ、CISCプロセッサ、1つ以上のDSP、1つ以上のFPGA、1つ以上のPLD、1つ以上のASIC、1つ以上のベースバンド・プロセッサ、1つ以上の無線周波数集積回路(RFIC)、1つ以上のマイクロプロセッサ又はコントローラ、マルチ・コア・プロセッサ、マルチスレッド・プロセッサ、超低電圧プロセッサ、埋め込みプロセッサ、又は任意の他の公知の処理要素、又はそれらの任意の適切な組み合わせを含んでもよい。プロセッサ(又はコア)1052は、メモリ/ストレージに結合されたり又はそれを含んだりしてもよく、メモリ/ストレージに記憶された命令1081を実行して、様々なアプリケーション又はオペレーティング・システムがプラットフォーム1050上で動作することを可能にするように構成されてもよい。プロセッサ(又はコア)1052は、アプリケーション・ソフトウェアを作動させて、プラットフォーム1050のユーザーに特定のサービスを提供するように構成される。幾つかの実施形態において、プロセッサ1052は、本件における様々な実施形態に従って動作するように構成された(又は構成されることが可能な)特殊目的プロセッサ/コントローラであってもよい。
[0087] 具体例として、プロセッサ1052は、i3、i5、i7、i9ベースのプロセッサのようなIntel Architecture Core(登録商標)ベースのプロセッサ;Quark(登録商標),Atom(登録商標)のようなインテル(登録商標)マイクロコントローラ・ベースのプロセッサ、又はその他のMCUベースのプロセッサ;Pentium(登録商標)プロセッサ、Xeon(登録商標)プロセッサ、又はカリフォルニア州サンタ・クララのIntel(登録商標)コーポレーションから入手可能なその他のプロセッサを含む可能性がある。しかしながら、Ryzen(登録商標)又はEPYC(登録商標)プロセッサ、加速処理ユニット(APU)、 MxGPUs、Epyc(登録商標)プロセッサ等;Apple(登録商標)Inc.からのA5-A12及び/又はS1-S4プロセッサ、Qualcomm(登録商標)Technologies, Inc.からのSnapdragon(登録商標)又はCentriq(登録商標)プロセッサ、Texas Instruments, Inc. (登録商標)のOpen Multimedia Applications Platform (OMAP) (登録商標)プロセッサ;MIPS Warrior M-class, Warrior I-class,及びWarrior P-classプロセッサのような、MIPS Technologies, IncからのMIPS-based設計;ARM Cortex-A, Cortex-R,及びCortex-Mプロセッサ・ファミリのようなARM Holdings, Ltd.からライセンスを受けて設計されるARMベースの設計; Cavium(登録商標),Inc.から提供されるThunderX2(登録商標)等のうちの1つ以上のような他の任意数のプロセッサが使用されてもよい。幾つかの実装において、プロセッサ1052は、システム・オン・チップ(SoC)、システム・イン・チップ(SiP)、マルチ・チップ・パッケージ(MCP)などの一部であってもよく、それらの中でプロセッサ1052及びその他の構成要素は、Intel(登録商標)コーポレーションからのEdison(登録商標)又はGalileo(登録商標)SoCボードのような単一の集積回路、又は単一のパッケージに形成される。プロセッサ1052の他の例は、本開示の他の箇所で説明されている。
[0088] ノード1050は、加速回路1064を含んでもよいし又はそれに結合されてもよく、加速回路1064は、1つ以上のAI/MLアクセラレータ、ニューラル演算スティック、ニューロモルフィック・ハードウェア、FPGA、GPUの配置、1つ以上のSoC(プログラマブルSoCを含むもの)、1つ以上のCPU、1つ以上のデジタル信号プロセッサ、専用ASIC(プログラマブルASICを含む)、コンプレックス型のPLD(CPLD)又は高コンプレックスPLD(HCPLD)のようなPLD、及び/又は1つ以上の特殊化されたタスクを達成するように設計された他の形態の特殊化されたプロセッサ又は回路、によって具現化されることが可能である。これらのタスクは、AI/ML処理(例えば、訓練、推論、及び分類処理を含む)、視覚データ処理、ネットワーク・データ処理、物体検出、ルール分析などを含む可能性がある。FPGAベースの実装では、加速回路1064は、論理ブロック又は論理ファブリック、及びその他の相互接続されたリソースであって、本件で議論される様々な実施形態の手順、方法、機能などのような様々な機能を実行するようにプログラム(構成)される可能性があるもの、を含む可能性がある。このような実装では、加速回路1064は、論理ブロック、論理ファブリック、データなどをLUT等に記憶するために使用されるメモリ・セル(例えば、EPROM、EEPROM、フラッシュ・メモリ、スタティック・メモリ(例えば、SRAM、アンチ・ヒューズなど))を含んでもよい。
[0089] 幾つかの実装において、プロセッサ回路1052及び/又は加速回路1064は、本件で説明されるようなANN動作を実行することを作動させるような、機械学習機能のために具体的に特化されたハードウェア要素を含んでもよい。これらの実装において、プロセッサ回路1052及び/又は加速回路1064は、適切な重み付け及び訓練コードとともに一度ロードされる多くの異なる種類のAI命令セットを実行することが可能なAIエンジン・チップ、であってもよいし又はそれを含んでもよい。追加的又は代替的に、プロセッサ回路1052及び/又は加速回路1064は、AIアクセラレータであってもよいし、又はそれを含んでもよく、AIアクセラレータは、AIアプリケーションのハードウェア加速のために設計された、1つ以上の前述のハードウェア・アクセラレータであってもよい。具体例として、これらのプロセッサ又はアクセラレータは、人工知能(AI)GPUのクラスタ、Google(登録商標)Inc.により開発されたテンソル処理ユニット(TPU)、AlphaICs(登録商標)により提供されるリアルAIプロセッサ(RAPs(登録商標))、Intel(登録商標)Corp.により提供されるNervana(登録商標)ニューラル・ネットワーク・プロセッサ(NNP)、Intel(登録商標)Movius(登録商標)Myriad(登録商標)Xビジョン処理ユニット(VPU)、NVIDIA(登録商標)PX(登録商標)ベースのGPU、General Vision(登録商標)により提供されるNM500チップ、Tesla(登録商標)Inc.により提供されるHardware 3、Adapteva(登録商標)により提供されるEpiphany(登録商標)ベースのプロセッサであってもよい。幾つかの実施形態において、プロセッサ回路1052及び/又は加速回路1064及び/又はハードウェア・アクセラレータ回路は、AI加速コプロセッサとして実装されてもよく、例えば、Qualcomm(登録商標)により提供されるHexagon 685 DSP、Imagination Technologies Limited(登録商標)により提供されるPowerVR 2NXニューラル・ネット・アクセラレータ(NNA)、Apple(登録商標)A11又はA12 Bionic SoC内のニューラル・エンジン・コア、Huawe(登録商標)により提供されるHiSilicon Kirin 970内のニューラル処理ユニット(NPU)等として実装されてもよい。幾つかのハードウェア・ベースの実装では、ノード1050の個々のサブシステムは、それぞれの機能を実行するために適切な論理ブロック、ビット・ストリームなどと共に構成される、それぞれのAI加速コプロセッサ、AI GPU、TPU、又はハードウェア・アクセラレータ(例えば、FPGA、ASIC、DSP、SoC等)などによって作動させられてもよい。
[0090] ノード1050はまた、システム・メモリ1054を含む。所与の量のシステム・メモリを提供するために、任意の数のメモリ・デバイスが使用されてもよい。例として、メモリ1054は、ランダム・アクセス・メモリ(RAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、RAMBUS(登録商標)ダイナミック・ランダム・アクセス・メモリ(RDRAM(登録商標))、及び/又は他の任意の所望の種類の揮発性メモリ・デバイスのような、揮発性メモリであってもよいし又はそれらを含んでもよい。追加的又は代替的に、メモリ1054は、リード・オンリ・メモリ(ROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブル(EEPROM)、フラッシュ・メモリ、不揮発性RAM、強誘電体RAM、相変化メモリ(PCM)、フラッシュ・メモリ、及び/又は他の任意の所望のタイプの不揮発性メモリ・デバイスのような、不揮発性メモリであってもよいし又はそれらを含んでもよい。メモリ1054へのアクセスは、メモリ・コントローラによって制御される。個々のメモリ・デバイスは、シングル・ダイ・パッケージ(SDP)、デュアル・ダイ・パッケージ(DDP)、又はクワッド・ダイ・パッケージ(Q17P)のような、任意の数の異なるパッケージ・タイプによるものであってもよい。マイクロDIMM又はミニDIMMを含むが、これらに限定されない、異なる種類のデュアル・インライン・メモリ・モジュール(DIMM)のような、任意の数の他のメモリ実装が使用されてもよい。
[0091] 記憶回路1058は、データ、アプリケーション、オペレーティング・システムなどのような情報の永続的な記憶を提供する。一例では、ストレージ1058は、固体状態ディスク・ドライブ(SSDD)及び/又は高速電気的消去可能メモリ(一般に「フラッシュ・メモリ」と呼ばれるもの)により実装されてもよい。ストレージ1058に使用される可能性のある他のデバイスは、SDカード、マイクロSDカード、XDピクチャ・カード等のようなフラッシュ・メモリ・カード、及びUSBフラッシュ・ドライブを含む。一例では、メモリ・デバイスは、カルコゲナイド・ガラスを使用するメモリ・デバイス、マルチ・スレッショルド・レベルNANDフラッシュ・メモリ、NORフラッシュ・メモリ、シングル又はマルチ・レベル相変化メモリ(PCM)、抵抗メモリ、ナノワイヤメモリ、強誘電体トランジスタ・ランダム・アクセス・メモリ(FeTRAM)、反強誘電体メモリ、メモリスタ技術を組み込んだ磁気抵抗ランダム・アクセス・メモリ(MRAM)、相変化RAM、金属酸化物ベース、酸素空格子ベース、及び導電性ブリッジ・ランダム・アクセス・メモリ(CB-RAM)を含む抵抗メモリ、又はスピン転送トルク(STT)-MRAM、スピントロニック磁気接合メモリベースのデバイス、磁気トンネル接合(MTJ)ベースのデバイス、ドメイン・ウォール(DW)及びスピン軌道転送(SOT)ベースのデバイス、サイリスタ・ベースのメモリ・デバイス、ハード・ディスク・ドライブ(HDD)、マイクロHDD、それらの組み合わせ、及び/又はその他の任意のメモリ、であってもよいし又はそれらを含んでもよい。メモリ回路1054及び/又は記憶回路1058は、Intel(登録商標)及びMicron(登録商標)からの3次元(3D)クロス・ポイント(XPOINT)メモリを組み込んでもよい。
[0092] メモリ回路1054及び/又は記憶回路1058は、本件で説明される技術を実施するために、ソフトウェア、ファームウェア、マイクロコード、又はハードウェア・レベルの命令の形態で、演算ロジック1083を記憶するように構成される。演算ロジック1083は、システム1000の種々の構成要素(例えば、ドライバ、ライブラリ、アプリケーション・プログラミング・インターフェース(API)など)、システム1000のオペレーティング・システム、1つ以上のアプリケーションの動作のため、及び/又は本件で説明される実施形態を実行するために、プログラミング命令のワーキング・コピー及び/又は永続的なコピー、又はプログラミング命令を作成するデータを記憶するために使用される可能性がある。演算ロジック1083は、命令1082として、又は命令1082を生成するためのデータとして、メモリ回路1054に記憶又はロードされてもよく、次いでこれらは、プロセッサ回路1052による実行のためにアクセスされて、本件で説明される機能を実行する。プロセッサ回路1052及び/又は加速回路1064は、IX 1056を介してメモリ回路1054及び/又は記憶回路1058にアクセスする。命令1082は、例えば、前述の動作及び機能のフローチャート及びブロック図に関連して説明されたように、動作の特定のシーケンス又はフローを実行するように、プロセッサ回路1052に指示する。種々の要素は、プロセッサ回路1052によってサポートされるアセンブラ命令、又は、プロセッサ回路1052によって実行されることになる命令1081又は命令1081を作成するためのデータにコンパイルされることが可能な高水準言語、によって実装されることが可能である。プログラミング命令の永続的なコピーは、工場又は使用現場で記憶回路1058の永続的な記憶デバイス内に、例えば通信インターフェースを介して(例えば、配信サーバー(図示せず)から)、オーバー・ザ・エアー(OTA)により、又はそれらの任意の組み合わせを通じて、配布媒体(図示せず)内に配置されることが可能である。
[0093] IX 1056は、リモート・サーバー(図示せず)などのような他のデバイスと通信するために、プロセッサ1052を通信回路1066に結合する。通信回路1066は、1つ以上のネットワーク1063を介して及び/又は他のデバイスと通信するために使用される、ハードウェア要素又はハードウェア要素の集合である。一例において、通信回路1066は、任意数の周波数及びプロトコルを使用して無線通信を可能にするように構成されたトランシーバ回路であるか又はそれを含み、その周波数及びプロトコルは、例えば、IEEE(Institute of Electrical and Electronics Engineers)802.11(及び/又はその変形)、IEEE 802.15.4、ブルートゥース(登録商標)及び/又はブルートゥース(登録商標)低エネルギ(BLE)、ZigBee(登録商標)、LoRaWAN(登録商標)(Long Range Wide Area Network)、セルラー・プロトコル(例えば、3GPP(登録商標) LTE及び/又は第5世代(5G)/ニュー・ラジオ(NR)等)のようなものである。追加的又は代替的に、通信回路1066は、1つ以上のネットワーク・インターフェース・コントローラ(NIC)であるか又はそれを含み、例えば、イーサーネット接続、コントローラ・エリア・ネットワーク(CAN)、ローカル相互接続ネットワーク(LIN)、DeviceNet、ControlNet、Data Highway+、又はPROFINETを特に使用して、有線通信を可能にする。幾つかの実施形態において、通信回路1066は、前述のように、1つ以上のシナプス・デバイス/構造1025などを含むアクセラレータ1024を含んでもよいし又は別の方法でそれに結合されてもよい。
[0094] IX 1056はまた、プロセッサ1052をインターフェース回路1070に結合し、インターフェース回路は、ノード1050を1つ以上の外部デバイス1072に接続するために使用される。外部デバイス1072は、例えば、センサ、アクチュエータ、ポジショニング回路(例えば、グローバル・ナビゲーション衛星システム(GNSS)/グローバル・ポジショニング・システム(GPS)回路)、クライアント・デバイス、サーバー、ネットワーク機器(例えば、スイッチ、ハブ、ルータ等)、集積フォトニクス・デバイス(例えば、光ニューラル・ネットワーク(ONN)集積回路(IC)等)、及び/又はその他の同様なデバイスを含んでもよい。
[0095] 幾つかのオプション例において、種々の入力/出力(I/O)デバイスは、ノード1050内に存在するか又はそれに接続されてもよく、そのノードは、図10において入力回路1086及び出力回路1084と言及される。入力回路1086及び出力回路1084は、プラットフォーム1050とのユーザー・インタラクションを可能にするように設計された1つ以上のユーザー・インターフェース、及び/又はプラットフォーム1050とのペリフェラル構成要素インタラクションを可能にするように設計されたペリフェラル構成要素インターフェースを含む。入力回路1086は、特に、1つ以上の物理的又は仮想的なボタン(例えば、リセット・ボタン)、物理的なキーボード、キーパッド、マウス、タッチパッド、タッチスクリーン、マイクロホン、スキャナ、ヘッドセット等を含む、入力を受け入れるための任意の物理的又は仮想的な手段を含む可能性がある。センサ読み取り値、アクチュエータ位置、又はその他の同様な情報のような情報を示すため、又は別の方法で情報を伝えるために、出力回路1084が含まれていてもよい。データ及び/又はグラフィックスは、出力回路1084の1つ以上のユーザー・インターフェース構成要素で表示されてもよい。出力回路1084は、任意数の及び/又は組み合わせによるオーディオ又はビジュアル・ディスプレイを含み、そのディスプレイは、特に、1つ以上の単純な視覚的出力/インジケータ(例えば、バイナリ状態インジケータ(例えば、発光ダイオード(LED))及びマルチ・キャラクタ視覚的出力、又は、より複雑な出力、例えば、ディスプレイ・デバイス或いはタッチスクリーン(例えば、液晶ディスプレイ(LCD)、LEDディスプレイ、量子ドット・ディスプレイ、プロジェクタなど)を含み、キャラクタ、グラフィック、マルチメディア・オブジェクトなどの出力は、プラットフォーム1050の動作から生成される又は生じる。また、出力回路1084は、スピーカ及び/又はその他の音声放出デバイス、プリンタ等を含んでもよい。追加的又は代替的に、センサは、入力回路1084(例えば、画像捕捉デバイス、モーション・キャプチャ・デバイスなど)として使用されてもよく、1つ以上のアクチュエータは、出力デバイス回路1084(例えば、触覚フィードバックなどを提供するアクチュエータ)として使用されてもよい。ペリフェラル構成要素インターフェースは、不揮発性メモリ・ポート、USBポート、オーディオ・ジャック、電源インターフェースなどを含んでもよいが、これらに限定されない。本システムの状況において、ディスプレイ又はコンソール・ハードウェアは、エッジ演算システムの出力及び受信入力を提供し;エッジ演算システムの構成要素又はサービスを管理し;エッジ演算構成要素又はサービスの状態を識別し;又は任意の他の数のマネジメント又はアドミニストレーション機能又はサービス・ユース・ケースを実行するために使用されてもよい。
[0096] ノード1050の構成要素は、相互接続(IX)1056を介して通信することが可能である。IX 5056は、インダストリ規格アーキテクチャ(ISA)及び/又は拡張ISA(EISA),FASTBUS,ロー・ピン・カウント(LPC)バス,インター・インテグレーテッド回路 (I2C),シリアル・ペリフェラル・インターフェース (SPI),パワー・マネジメント・バス(PMBus),ペリフェラル構成要素IX (PCI),PCIエクスプレス(PCIe),PCIエクステンデッド (PCIx),Intel(登録商標)QuickPath IX (QPI),Intel(登録商標)ウルトラ・パスIX (UPI),Intel(登録商標)アクセラレータ・リンク,演算 エクスプレス・リンク(CXL),コヒーレント・アクセラレータ・プロセッサ・インターフェース(CAPI)及び/又はOpenCAPI,Intel(登録商標)オムニ・パス・アーキテクチャ(OPA),RapidIO(登録商標),アクセラレータ用キャッシュ・コヒーレント相互接続(CCIX), Gen-Zコンソーシアム, HyperTransport及び/又はLightningデータ・トランスポート(LDT),NVIDA(登録商標)により提供されるNVLink,InfiniBand (IB),タイム・トリガー・プロトコル(TTP),FlexRay,PROFIBUS,イーサーネット,ユニバーサル・シリアル・バス(USB),ポイント・ツー・ポイント・インターフェースを含む任意数の技術,及び/又は任意数のその他のIX技術を含む可能性がある。IX 1056は、例えば、SoCベースのシステムで使用される専有バスであってもよい。
[0097] システム1000の素子の数、能力、及び/又は容量は、演算システム1000が固定演算デバイス(例えば、データ・センター、ワークステーション、デスクトップ・コンピュータ等におけるサーバー・コンピュータ)として使用されるのか、又はモバイル演算デバイス(例えば、スマートフォン、タブレット演算デバイス、ラップトップ・コンピュータ、ゲーム・コンソール、IoTデバイスなど)として使用されるのか、に応じて異なる可能性がある。様々な実装において、演算デバイス・システム1000は、データ・センター、デスクトップ・コンピュータ、ワークステーション、ラップトップ、スマートフォン、タブレット、デジタル・カメラ、スマート機器、スマート・ホーム・ハブ、ネットワーク機器、及び/又は、データを処理する任意の他のデバイス/システム、のうちの1つ以上の構成要素を含む可能性がある。
[0098] 4.実施例
図11は、様々な実施形態による例示的なスパース蒸留手順1100を示す。スパース蒸留手順1100は、演算ノード1050によって実行されるものとして説明されるが、適切な他の任意のデバイス又はシステム、例えば、アクセラレータ1024が、プロセス1100を実行してもよい。スパース蒸留手順1100はオペレーション1101から始まり、ここでは演算ノード1050が訓練データセット(例えば、図2の入力データ220を含む)を取得する。オペレーション1102において、演算ノード1050は、訓練データセットをスーパーネット205とサブネット201とに訓練のために提供する。幾つかの実施形態において、サブネット201は、SAメカニズム200を含む。SAメカニズム200は、CNNに取って代わることが可能であり、あるいはSAメカニズム200は、CNN内の畳み込み層に取って代わる一組のSA層を含むことが可能である。
図11は、様々な実施形態による例示的なスパース蒸留手順1100を示す。スパース蒸留手順1100は、演算ノード1050によって実行されるものとして説明されるが、適切な他の任意のデバイス又はシステム、例えば、アクセラレータ1024が、プロセス1100を実行してもよい。スパース蒸留手順1100はオペレーション1101から始まり、ここでは演算ノード1050が訓練データセット(例えば、図2の入力データ220を含む)を取得する。オペレーション1102において、演算ノード1050は、訓練データセットをスーパーネット205とサブネット201とに訓練のために提供する。幾つかの実施形態において、サブネット201は、SAメカニズム200を含む。SAメカニズム200は、CNNに取って代わることが可能であり、あるいはSAメカニズム200は、CNN内の畳み込み層に取って代わる一組のSA層を含むことが可能である。
[0099] オペレーション1103において、演算ノード1050は、KDメカニズム202を作動させ、スーパーネット205とサブネット201の訓練中に、スーパーネット205の知識をサブネット201へ蒸留する。実施形態において、訓練は、訓練データセットを1回カバーすることを含む。オペレーション1104において、演算ノード1050は、プルーニング・メカニズム400を作動させて、訓練中に(例えば、訓練データセットを1回通り過ぎる間に)、1つ以上のパラメータをサブネット201からプルーニングする。実施形態において、知識蒸留とプルーニングは同時に行われる。オペレーション1105において、演算ノード1050は、訓練後にスパース蒸留サブネット103を出力する。
[0100] 本件目下説明されている方法、システム、及びデバイスの実施形態の更なる例は、以下の非限定的な実装を含む。以下の非限定的な例の各々は、それ自体で成立する可能性があり、また、以下で提供される又は本開示を通じて提供される任意の1つ以上の他の例との任意の組み合わせ又は置換で組み合わせられる可能性がある。
[0101] 具体例A01は、機械学習(ML)モデルのスパース蒸留のための方法を含み、本方法は:シングルのML訓練エポックの間に、スーパーネットの知識をサブネットへ蒸留する知識蒸留(KD)メカニズムを作動させ;及びシングルのML訓練エポックの間に、1つ以上のパラメータをサブネットからプルーニングし、スパースな蒸留されたサブネットを生成することを含む。
[0102] 具体例A02は、具体例A01及び/又は本件における他の何らかの具体例の方法を含み、知識の蒸留と1つ以上のパラメータのプルーニングは同時に行われる。
[0103] 具体例A03は、具体例A01-A02及び/又は本件における他の何らかの具体例の方法を含み、シングルのML訓練エポックは、訓練データセットを1回通り過ぎることを含む。
[0104] 具体例A04は、具体例A01-A03及び/又は本件における他の何らかの具体例の方法を含み、KDメカニズムは:訓練データセットを用いてスーパーネットを訓練し;スーパーネットを作動させて、サブネットへ蒸留されるべき知識を抽出し、ここで、知識を蒸留することは、スーパーネットを訓練するために使用される訓練データセットを用いてサブネットを訓練し、抽出された知識を用いてサブネットの訓練をガイドすることを含む。
[0105] 具体例A05は、具体例A04及び/又は本件における他の何らかの具体例の方法を含み、知識は、スーパーネットから抽出されたロジットと特徴マップとの双方を含む。
[0106] 具体例A06は、具体例A05及び/又は本件における他の何らかの具体例の方法を含み、KDメカニズムは、アテンション転送蒸留アルゴリズムを用いて、知識をスーパーネットからサブネットへ転送するように構成されている。
[0107] 具体例A07.0は、具体例A05-A06及び/又は本件における他の何らかの具体例の方法を含み:セルフ・アテンション(SA)メカニズムを作動させることを更に含む。
[0108] 具体例A07.2は、具体例A07.0及び/又は本件における他の何らかの具体例の方法を含み:SAメカニズムは、サブネットの一部分である。
[0109] 具体例A07.4は、具体例A07.0-A07.2及び/又は本件における他の何らかの具体例の方法を含み、SAメカニズムを作動させることは:入力データに基づいて、クエリ行列、バリュー行列、及びキー行列であってプルーニング・メカニズムによりプルーニングされるべきパラメータを含むクエリ行列、バリュー行列、及びキー行列を生成し;及び クエリ行列、バリュー行列、及びキー行列をプルーニング・メカニズムに提供することを含む。
[0110] 具体例A08は、具体例A07.0-A07.4及び/又は本件における他の何らかの具体例の方法を含み、SAメカニズムを作動させることは:入力データをパラメータ化・学習可能・変換(PLT)に適用して、クエリ行列、バリュー行列、及びキー行列を生成することを含む。
[0111] 具体例A09は、具体例A07.0-A08及び/又は本件における他の何らかの具体例の方法を含み、SAメカニズムはPLTを含む。
[0112] 具体例A10は、具体例A07-A09及び/又は本件における他の何らかの具体例の方法を含み、SAメカニズムを作動させることは:クエリ行列とキー行列に関する演算であって、クエリ行列とキー行列に関する行列乗算演算又は1×1畳み込みを含む演算を実行し;ソフトマックス関数を演算の出力に適用し;及びソフトマックス関数の出力とバリュー行列の組み合わせに基づいて、SA出力を生成することを含む。
[0113] 具体例A11は、具体例A07-A10及び/又は本件における他の何らかの具体例の方法を含み、SAメカニズムは畳み込みニューラル・ネットワーク(CNN)に取って代わる。
[0114] 具体例A12は、具体例A01-A11及び/又は本件における他の何らかの具体例の方法を含み、スーパーネットは、畳み込み層のセットと、畳み込み層ではない層のセットとを含む畳み込みニューラル・ネットワーク(CNN)である。
[0115] 具体例A13は、具体例A12及び/又は本件における他の何らかの具体例の方法を含み、CNNにおける畳み込み層のセットは、SA層のセットで置換される。
[0116] 具体例A14は、具体例A01-A13及び/又は本件における他の何らかの具体例の方法を含み、本方法は装置によって実行される。
[0117] 具体例A15は、具体例A14及び/又は本件における他の何らかの具体例の方法を含み、装置は、クライアント・デバイス、アプリケーション・サーバー、エッジ演算フレームワークのエッジ演算サーバー、又はクラウド演算サービスのクラウド演算ノード、のうちの少なくとも1つである。
[0118] 具体例A16は、具体例A01-A15及び/又は本件における他の何らかの具体例の方法を含み、スーパーネットは、ディープNN(DNN)、フィード・フォワードNN(FFN)、ディープFNN(DFFN)、畳み込みNN(CNN)、ディープCNN(DCN)、逆畳み込みNN(DNN)、深層信念NN、パーセプションNN、グラフNN、リカレントNN(RNN)、長短期メモリ(LSTM)アルゴリズム、ゲート付きリカレント・ユニット(GRU)、エコー・ステート・ネットワーク(ESN)、スパイキングNN(SNN)、ディープ・スタッキング・ネットワーク(DSN)、マルコフ・チェーン、パーセプションNN、敵対的生成ネットワーク(GAN)、トランスフォーマー、セルフ・アテンション(SA)メカニズム、確率的NN、ベイジアン・ネットワーク(BN)、ベイジアン・ビリーフ・ネットワーク(BBN)、ベイジアンNN(BNN)、深層BNN(DBNN)、ダイナミックBN(DBN)、確率的グラフィカル・モデル(PGM)、ボルツマン・マシン、制限ボルツマン・マシン(RBM)、ホップフィールド・ネットワーク、畳み込み深層信念ネットワーク(CDBN)、リニア・ダイナミカル・システム(LDS)、スイッチングLDS(SLDS)、オプティカルNN(ONN)、並びに/及び強化学習(RL)及び/若しくは深層RL(DRL)のためのNNのうちの1つ以上を含むニューラル・ネットワーク(NN)である。
[0119] 具体例A17は、具体例A16及び/又は本件における他の何らかの具体例の方法を含み、サブネットは、スーパーネットと同じタイプのNNである。
[0120] 具体例B01は、ニューラル・アーキテクチャ探索(NAS)アプリケーション(app)を作動させる方法を含み、本方法は:ML設定をクライアントから取得し;ML設定に基づいてデータセットとタスク情報を取得し;ML設定の情報を用いてNASを実行し、候補スーパーネットのセットを取得し;候補スーパーネットのセットの各々の候補スーパーネットにスパース蒸留を適用して、スパースな蒸留されたサブネットのセットを取得することを含み、スパース蒸留は、個々のML訓練エポックの間に、各々の候補スーパーネットの知識を、スパースな蒸留されたサブネットのセットのうちの対応するスパースな蒸留されたサブネットへ蒸留するように構成されたKDメカニズムと、個々のML訓練エポックの間に、1つ以上のパラメータを、対応するスパースな蒸留されたサブネットからプルーニングするように構成されたプルーニング・メカニズムとを含み、本方法は、スパースな蒸留されたサブネットのセットを示すメッセージを、クライアントへ提供することを含む。
[0121] 具体例B02は、具体例B01及び/又は本件における他の何らかの具体例の方法を含み、ML設定は、対応するスパースな蒸留されたサブネットにスパース蒸留されるべきスーパーネットを含む。
[0122] 具体例B03は、具体例B01-B02及び/又は本件における他の何らかの具体例の方法を含み、ML設定は、実行されるべきMLタスクを含む。
[0123] 具体例B04は、具体例B01-B03及び/又は本件における他の何らかの具体例の方法を含み、ML設定は所望の数のパラメータを含み、対応するスパースな蒸留されたサブネットは、所望の数のパラメータ、又はその所望の数より少ない数のパラメータを含む。
[0124] 具体例B05は、具体例B01-B04及び/又は本件における他の何らかの具体例の方法を含み、ML設定は、所望のハードウェア・プラットフォームを示し、対応するスパースな蒸留されたサブネットは、指示されたハードウェア・プラットフォームに適合するようにスパース蒸留される。
[0125] 具体例B06は、具体例B01-B05及び/又は本件における他の何らかの具体例の方法を含み、メッセージは、探索結果リストの形式で、スパースな蒸留されたサブネットのセットを含む。
[0126] 具体例B07は、具体例B01-B06及び/又は本件における他の何らかの具体例の方法を含み、本方法は、スパースな蒸留されたサブネットのセットの中から最適なスパースな蒸留されたサブネットを同定することを更に含み、メッセージは、最適なスパースな蒸留されたサブネットを含む。
[0127] 具体例B08は、具体例B01-B07及び/又は本件における他の何らかの具体例の方法を含み、スパース蒸留を適用することは、具体例A01-A14,C01-C10,及び/又は本件における他の何らかの具体例の任意の組み合わせのスパース蒸留システムを作動させることを含む。
[0128] 具体例B09は、具体例B01-B08及び/又は本件における他の何らかの具体例の方法を含み、本方法は演算ノードにより実行される。
[0129] 具体例B10は、具体例B09及び/又は本件における他の何らかの具体例の方法を含み、演算ノードは、アプリケーション・サーバー、エッジ演算フレームワークのエッジ演算サーバー、又はクラウド演算サービスのクラウド演算ノードである。
[0130] 具体例B11は、具体例B01-B10及び/又は本件における他の何らかの具体例の方法を含み、スーパーネットは、ディープNN(DNN)、フィード・フォワードNN(FFN)、ディープFNN(DFFN)、畳み込みNN(CNN)、ディープCNN(DCN)、逆畳み込みNN(DNN)、深層信念NN、パーセプションNN、グラフNN、リカレントNN(RNN)、長短期メモリ(LSTM)アルゴリズム、ゲート付きリカレント・ユニット(GRU)、エコー・ステート・ネットワーク(ESN)、スパイキングNN(SNN)、ディープ・スタッキング・ネットワーク(DSN)、マルコフ・チェーン、パーセプションNN、敵対的生成ネットワーク(GAN)、トランスフォーマー、セルフ・アテンション(SA)メカニズム、確率的NN、ベイジアン・ネットワーク(BN)、ベイジアン・ビリーフ・ネットワーク(BBN)、ベイジアンNN(BNN)、深層BNN(DBNN)、ダイナミックBN(DBN)、確率的グラフィカル・モデル(PGM)、ボルツマン・マシン、制限ボルツマン・マシン(RBM)、ホップフィールド・ネットワーク、畳み込み深層信念ネットワーク(CDBN)、リニア・ダイナミカル・システム(LDS)、スイッチングLDS(SLDS)、オプティカルNN(ONN)、並びに/又は、強化学習(RL)及び/若しくは深層RL(DRL)のためのNNのうちの1つ以上を含むニューラル・ネットワーク(NN)である。
[0131] 具体例B12は、具体例B11及び/又は本件における他の何らかの具体例の方法を含み、サブネットは、スーパーネットと同じタイプのNNである。
[0132] 具体例C01は、スパース蒸留システムを作動させる方法を含み、本方法は:第1の機械学習(ML)モデルのための訓練データセットを取得し;訓練データセットを、第1のMLモデルと、第1のMLモデルより小さな第2のMLモデルとに提供し;第1及び第2のMLモデルの訓練中に、訓練データセットを1回通り過ぎる際に、第1のMLモデルの知識を第2のMLモデルへ蒸留し;及び訓練データセットを1回通り過ぎる際に、1つ以上のパラメータを第2のMLからプルーニングすることを含む。
[0133] 具体例C02は、具体例C01及び/又は本件における他の何らかの具体例の方法を含み、第1のMLモデルよりも小さな第2のMLモデルは、第1のMLモデルよりも少ないパラメータを有し、第1のMLモデルよりも少ないウェイトを有し、第1のMLモデルよりも多くの記憶スペースを消費し、第1のMLモデルよりも多くの演算を含み、及び/又は、第1のMLモデルよりも多くの電力を消費する。
[0134] 具体例C03は、具体例C01-C02及び/又は本件における他の何らかの具体例の方法を含み、知識の蒸留と1つ以上のパラメータのプルーニングは同時に行われる。
[0135] 具体例C04は、具体例C01-C03及び/又は本件における他の何らかの具体例の方法を含み、KDメカニズムを作動させることは:訓練データセットを用いて第1のMLモデルを訓練し;第1のMLモデルを作動させて、第2のMLモデルへ蒸留されるべき知識を抽出することを含み、知識の蒸留に関し、KDメカニズムを作動させることは、第1のMLモデルを訓練するために使用される訓練データセットを用いて第2のMLモデルを訓練し、且つ抽出された知識を用いて第2のMLモデルの訓練をガイドすることを含む。
[0136] 具体例C05は、具体例C04及び/又は本件における他の何らかの具体例の方法を含み、KDメカニズムを作動させることは:第1のMLモデルからロジットと特徴マップとを抽出することを更に含み、知識は、抽出されたロジットと抽出された特徴マップとの双方を含む。
[0137] 具体例C06は、具体例C01-C05及び/又は本件における他の何らかの具体例の方法を含み、KDメカニズムを作動させることは:アテンション転送蒸留アルゴリズムを用いて、知識を第1のMLモデルから第2のMLモデルへ転送することを含み、その結果、第2のMLモデルは、第1のMLモデルの空間アテンション・マップに類似する空間アテンション・マップを含むようになる。
[0138] 具体例C07は、具体例C01-C06及び/又は本件における他の何らかの具体例の方法を含み、本方法は、セルフ・アテンション(SA)メカニズムを作動させることを更に含む。
[0139] 具体例C08は、具体例C07及び/又は本件における他の何らかの具体例の方法を含み、SAメカニズムを作動させることは:トレーニング・データセットに基づいて、クエリ行列、バリュー行列、及びキー行列であってプルーニング・メカニズムによりプルーニングされるべきパラメータを含むクエリ行列、バリュー行列、及びキー行列を生成し;及び クエリ行列、バリュー行列、及びキー行列をプルーニング・メカニズムに提供することを含む。
[0140] 具体例C09は、具体例C07-C08及び/又は本件における他の何らかの具体例の方法を含み、SAメカニズムを作動させることは:訓練データセットの一部分をパラメータ化・学習可能・変換(PLT)に適用して、クエリ行列、バリュー行列、及びキー行列を生成し;クエリ行列とキー行列に関する演算であって、クエリ行列とキー行列に関する行列乗算演算又は1×1畳み込みを含む演算を実行し;ソフトマックス関数を演算の出力に適用し;及びソフトマックス関数の出力とバリュー行列の組み合わせに基づいて、SA出力を生成することを含む。
[0141] 具体例C10は、具体例C07-C09及び/又は本件における他の何らかの具体例の方法を含み、SAメカニズムはCNNに取って代わる。
[0142] 具体例C11は、具体例C07-C10及び/又は本件における他の何らかの具体例の方法を含み、第2のMLモデルは、畳み込み層のセットと、畳み込み層ではない層のセットとを含むCNNであり、CNN内の畳み込み層のセットは、SA層のセットで置き換えられ、SA層のセットは、SAメカニズムを形成する。
[0143] 具体例C12は、具体例C07-C11及び/又は本件における他の何らかの具体例の方法を含み、第1のMLモデルはCNNである。
[0144] 具体例C13は、具体例C01-C12及び/又は本件における他の何らかの具体例の方法を含み、本方法は演算ノードによって実行される。
[0145] 具体例C14は、具体例C13及び/又は本件における他の何らかの具体例の方法を含み、装置は、演算ノードは、クライアント・デバイス、アプリケーション・サーバー、エッジ演算フレームワークのエッジ演算サーバー、又はクラウド演算サービスのクラウド演算ノードである。
[0146] 具体例C15は、具体例C01-C14及び/又は本件における他の何らかの具体例の方法を含み、スーパーネットは、ディープNN(DNN)、フィード・フォワードNN(FFN)、ディープFNN(DFFN)、畳み込みNN(CNN)、ディープCNN(DCN)、逆畳み込みNN(DNN)、深層信念NN、パーセプションNN、グラフNN、リカレントNN(RNN)、長短期メモリ(LSTM)アルゴリズム、ゲート付きリカレント・ユニット(GRU)、エコー・ステート・ネットワーク(ESN)、スパイキングNN(SNN)、ディープ・スタッキング・ネットワーク(DSN)、マルコフ・チェーン、パーセプションNN、敵対的生成ネットワーク(GAN)、トランスフォーマー、セルフ・アテンション(SA)メカニズム、確率的NN、ベイジアン・ネットワーク(BN)、ベイジアン・ビリーフ・ネットワーク(BBN)、ベイジアンNN(BNN)、深層BNN(DBNN)、ダイナミックBN(DBN)、確率的グラフィカル・モデル(PGM)、ボルツマン・マシン、制限ボルツマン・マシン(RBM)、ホップフィールド・ネットワーク、畳み込み深層信念ネットワーク(CDBN)、リニア・ダイナミカル・システム(LDS)、スイッチングLDS(SLDS)、オプティカルNN(ONN)、並びに/及び強化学習(RL)及び/若しくは深層RL(DRL)のためのNNのうちの1つ以上を含むニューラル・ネットワーク(NN)である。
[0147] 具体例C16は、具体例C15及び/又は本件における他の何らかの具体例の方法を含み、第2のMLモデルは、スーパーネットと同じタイプのNNである。
[0148] 具体例D01は、訓練のシングル・パスにおいて、パラメータと演算効率的なモデルを生成するように構成された同時最適化フレームワークを含む。
[0149] 具体例D02は、具体例D01及び/又は本件における他の何らかの具体例の方法を含み、同時最適化フレームワークは、具体例A01-A13,B01-B10,C01-C13及び/又は本件における他の何らかの具体例の任意の組み合わせのスパース蒸留システムを含む。
[0150] 具体例Z01は、命令を含む1つ以上のコンピュータ読み取り可能な媒体を含み、プロセッサ回路による命令の実行は、具体例A01-A17,B01-B12,C01-C16及び/又は本件で議論される他の何らかの態様のうちの任意の何れかの方法を、プロセッサ回路に実行させる。
[0151] 具体例Z02は、具体例Z01の命令を含むコンピュータ・プログラムを含む。
[0152] 具体例Z03は、具体例Z02のコンピュータ・プログラムのための機能、方法、変数、データ構造、及び/又はプロトコルを定めるアプリケーション・プログラミング・インターフェースを含む。
[0153] 具体例Z04は、具体例Z01の命令をロードした回路を含む装置を含む。
[0154] 具体例Z05は、具体例Z01の命令を実行するように動作することが可能な回路を含む装置を含む。
[0155] 具体例Z06は、具体例Z01のプロセッサ回路を1つ以上と、具体例Z01の1つ以上のコンピュータ読み取り可能な記憶媒体とを含む集積回路を含む。
[0156] 具体例Z07は、1つ以上のコンピュータ読み取り可能な媒体及び具体例Z01のプロセッサ回路を含む計算システムを含む。
[0157] 具体例Z08は、具体例Z01の命令を実行するための手段を備える装置を含む。
[0158] 具体例Z09は、具体例Z01の命令を実行した結果として生成された信号を含む。
[0159] 具体例Z10は、具体例Z01の命令を実行した結果として生成されたデータ・ユニットを含む。
[0160] 具体例Z11は、具体例Z10のデータ・ユニットを含み、データ・ユニットは、データグラム、ネットワーク・パケット、データ・フレーム、データ・セグメント、プロトコル・データ・ユニット(PDU)、サービス・データ・ユニット(SDU)、メッセージ、又はデータベース・オブジェクトである。
[0161] 具体例Z12は、具体例Z10又はZ11のデータ・ユニットで符号化された信号を含む。
[0162] 具体例Z13は、具体例Z01の命令を搬送する電磁信号を含む。
[0163] 具体例Z14は、具体例A01-A17,B01-B12,C01-C16及び/又は本件で議論される他の任意の態様のうちの任意の1つの方法を実施する手段を備える装置を含む。
[0164] 5.用語
本件で使用されるように、単数的な形態「ある」、「或る」及び「その」(“a,” “an” and “the”)は、その文脈が明示的に別意を示していない限り、複数の態様も含むように意図されている。本明細書中に使用される場合、用語「含む(comprises)」及び/又は「含んでいる(comprising)」は、述べられている特徴、完全体(integers)、ステップ、動作、要素、及び/又は構成要素の存在を述べているが、それらの1つ以上の他の特徴、完全体、ステップ、動作、要素、構成要素、及び/又はグループの存在又は追加を排除していないことが更に理解されるであろう。語句「A及び/又はB」は、(A)、(B)又は(A及びB)を意味する。本開示の目的のために、語句「A、B、及び/又はC」は、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)、又は(A、B及びC)を意味する。本説明は、「実施形態において」又は「幾つかの実施形態において」という語句を使用しているかもしれないが、それら各々は、同一の又は相違する実施形態のうちの1つ以上を指す可能性がある。更に、「備えている」、「含んでいる」、「有している」などの用語は、本開示に関して使用される場合、同義語である。
[0164] 5.用語
本件で使用されるように、単数的な形態「ある」、「或る」及び「その」(“a,” “an” and “the”)は、その文脈が明示的に別意を示していない限り、複数の態様も含むように意図されている。本明細書中に使用される場合、用語「含む(comprises)」及び/又は「含んでいる(comprising)」は、述べられている特徴、完全体(integers)、ステップ、動作、要素、及び/又は構成要素の存在を述べているが、それらの1つ以上の他の特徴、完全体、ステップ、動作、要素、構成要素、及び/又はグループの存在又は追加を排除していないことが更に理解されるであろう。語句「A及び/又はB」は、(A)、(B)又は(A及びB)を意味する。本開示の目的のために、語句「A、B、及び/又はC」は、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)、又は(A、B及びC)を意味する。本説明は、「実施形態において」又は「幾つかの実施形態において」という語句を使用しているかもしれないが、それら各々は、同一の又は相違する実施形態のうちの1つ以上を指す可能性がある。更に、「備えている」、「含んでいる」、「有している」などの用語は、本開示に関して使用される場合、同義語である。
[0165] 用語「結合された」、「通信可能に結合された」は、それらの派生語と共に本件で使用される。用語「結合された(coupled)」は、2つ以上の要素が直接的に物理的又は電気的に互いに接触していることを意味している可能性があり、2つ以上の要素が互いに間接的に接触しているが、それでも互いに協働又は相互作用することを意味する可能性があり、及び/又は、1つ以上の他の要素が、互いに結合されていると言われる要素間で結合又は接続されていることを意味する可能性がある。「直接的に結合された」という用語は、2つ以上の要素が互いに直接的に接触していることを意味する可能性がある。「通信可能に結合された」という用語は、ワイヤ又はその他の相互接続コネクションを介すること、ワイヤレス通信チャネル又はリンク等を介することを含む通信手段によって、2つ以上の要素が互いに接触していてもよいことを意味している可能性がある。
[0166] 少なくとも幾つかの実施態様において、用語「確立する」又は「確立」とは、能動的又は受動的に何かを実現する(例えば、デバイス識別又はエンティティ識別を明らかにする)又は何かを実現することを準備することに関連する(部分的又は完全な)行為、タスク、動作などを指す。追加的又は代替的に、少なくとも幾つかの実施形態において、用語「確立する」又は「確立」は、通信を始める、開始する、もしくは準備する、又は2つのエンティティ若しくは要素間の関連付けを始める、開始する、もしくは準備する(例えば、セッションを確立する、セッションを設定するなど)に関連する(部分的又は全体的な)行為、タスク、動作などを指す。追加的又は代替的に、少なくとも幾つかの態様において、用語「確立する」又は「確立」は、作動する準備ができている状態へ向かう何かを開始することを指す。少なくとも幾つかの実施態様において、用語「確立された」は、動作しているか又は使用の準備が整った状態(例えば、完全な確立)を指す。更に、何らかの仕様又は規格において定義される用語「確立する」又は「確立」に関する如何なる定義も本開示の目的のために使用されることが可能であり、そのような定義は、上記の定義のいずれによっても否定されない。
[0167] 少なくとも幾つかの実施態様において、用語「取得する」は、元のパケット・ストリームに関して、又はパケット・ストリームのコピー(例えば、新しいインスタンス)に関して、(例えば、メモリ、インターフェース又はバッファから)の傍受、移行、コピー、抽出又は取得についての(部分的又は全体的な)動作、タスク、動作などを指す。取得又は受信の他の態様は、パケットのストリーム(又は後続のパラメータ及びテンプレート又はテンプレート値)を取得又は受信する能力をインスタンス化、イネーブル化、又は制御することを含む可能性がある。
[0168] 少なくとも幾つかの実施形態において、用語「要素」は、所与の抽象レベルでは分割できず、且つ明確に定義された境界を有する単位を指し、要素は、例えば1つ以上のデバイス、システム、コントローラ、ネットワーク要素、モジュールなど、又はそれらの組み合わせを含む任意のタイプのエンティティである可能性がある。
[0169] 少なくとも幾つかの実施形態において、用語「尺度(measurement)」は、対象、事象、又は現象の属性の観察及び/又は定量化を指す。
[0170] 少なくとも幾つかの実施形態において、用語「正確さ」は、1つ以上の測定値の、特定の値への近さを指す。少なくとも幾つかの実施形態において、用語「精度」は、2つ以上の測定値の互いの近さを指す。
[0171] 少なくとも幾つかの実施形態において、用語「シグナル(signal)」は、品質及び/又は量における観察可能な変化を指す。追加的又は代替的に、少なくとも幾つかの実施形態において、用語「シグナル」は、対象、事象、又は現象に関する情報を伝達する機能を指す。追加的又は代替的に、少なくとも幾つかの実施形態において、用語「シグナル又は信号」は、情報を運ぶか又は運ばない可能性のある何らかの時間的に変動する電圧、電流、又は電磁波を指す。少なくとも幾つかの実施形態において、用語「デジタル信号」は、離散値のシーケンスを表すように、物理量の波形の離散セットから構築された信号を指す。
[0172] 用語「回路」は、少なくとも幾つかの実施形態では、電子デバイスにおいて特定の機能を実行するように構成された複数の回路のシステム又は回路を指す。回路又は回路システムは、論理回路、プロセッサ(共有、専用、又はグループ)及び/又はメモリ(共有、専用、又はグループ)、ASIC、FPGA、プログラマブル論理コントローラ(PLC)、SoC、SiP、マルチチップ・パッケージ(MCP)、DSP等のような、説明された機能を提供するように構成された1つ以上のハードウェア構成要素の一部であってもよいし又はそれらを含んでもよい。更に、用語「回路」はまた、1つ以上のハードウェア要素とプログラム・コードとの組み合わせを指し、そのプログラム・コードの機能を実行するものを指してもよい。幾つかのタイプの回路は、1つ以上のソフトウェア又はファームウェア・プログラムを実行して、説明された機能のうちの少なくとも一部を提供することができる。ハードウェア要素とプログラム・コードのこのような組み合わせは、特定のタイプの回路と言及されてもよい。
[0173] 本明細書で説明されている機能ユニット又は能力は、それらの実装の独立性をより具体的に強調するために、構成要素又はモジュールとして言及又はラベル付けされてもよいことが理解されるべきである。このような構成要素は、任意の数のソフトウェア又はハードウェア形態によって具体化されてもよい。例えば、構成要素又はモジュールは、カスタム超大規模集積(VLSI)回路又はゲート・アレイ、直ぐに入手可能な半導体(例えば、論理チップ、トランジスタ、又はその他のディスクリート構成要素)を含むハードウェア回路として実装されてもよい。また、構成要素又はモジュールは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル論理デバイスなどのような、プログラマブル・ハードウェア・デバイスに実装されることも可能である。構成要素又はモジュールはまた、種々のタイプのプロセッサによって実行されるためのソフトウェアにおいて実現されてもよい。実行可能コードの特定の構成要素又はモジュールは、例えば、オブジェクト、プロシージャ、又は機能として組織化されることが可能なコンピュータ命令の1つ以上の物理的又は論理的なブロックを含む可能性がある。それにもかかわらず、特定の構成要素又はモジュールの実行ファイルは、必ずしも物理的に一緒に配置される必要はなく、異なる場所に保存された別の命令を含む可能性があり、その命令は、論理的に一緒に結合されると、構成要素又はモジュールを構築し、構成要素又はモジュールに関して述べられた目的を達成する。
[0174] 実際、実行可能コードの構成要素又はモジュールは、単一の命令又は多くの命令であってもよく、様々なプログラムの中で、及び幾つものメモリ・デバイス又は処理システムの間で、複数の様々なコード・セグメントにわたって分散されていてさえかまわない。特に、説明されたプロセスの幾つかの態様(コードの書き換え及びコード分析などによるもの)は、コードが配備されたもの(例えば、センサ又はロボットに埋め込まれたコンピュータ)とは異なる処理システム上で(例えば、データ・センター内のコンピュータの中で)実行されてもよい。同様に、オペレーショナル・データは、本件では、構成要素又はモジュール内で識別及び図示されることが可能であり、また、適切な任意の形態で具現化され且つ適切な任意のタイプのデータ構造内で組織化されることが可能である。オペレーショナル・データは、単一のデータセットとして収集されてもよいし、又は異なる記憶デバイスにわたるものを含む異なる場所に分散されてもよく、少なくとも部分的には、システム又はネットワーク上の単なる電子信号として存在してもよい。構成要素又はモジュールは、受動的又は能動的であってもよく、所望の機能を実行するように動作することが可能なエージェントを含む。
[0175] 少なくとも幾つかの実施形態では、用語「プロセッサ回路」は、一連の算術演算もしくは論理演算を順番に又は自動的に実行する、又はデジタル・データを記録、記憶、及び/又は転送する、ことが可能な回路を指す、そのような回路の一部である、又はそのような回路を含む。少なくとも幾つかの実施形態では、用語「プロセッサ回路」は、1つ以上のアプリケーション・プロセッサ、1つ以上のベースバンド・プロセッサ、物理的CPU、シングル・コア・プロセッサ、デュアル・コア・プロセッサ、トリプル・コア・プロセッサ、クワッド・コア・プロセッサ、及び/又は他の任意のデバイスであって、プログラム・コード、ソフトウェア・モジュール、及び/又は機能プロセスのようなコンピュータ実行可能な命令を実行する又は他の方法で作動させることが可能な他の任意のデバイスを指す。用語「アプリケーション回路」及び/又は「ベースバンド回路」は、「プロセッサ回路」と同義と考えられてもよく、また、「プロセッサ回路」と言及されてもよい。
[0176] 少なくとも幾つかの実施態様において、用語「メモリ」及び/又は「メモリ回路」は、RAM、MRAM、PRAM、DRAM、及び/又はSDRAM、コアメモリ、ROM、磁気ディスク記憶媒体、光記憶媒体、フラッシュ・メモリ・デバイス、又はデータを記憶するための他の機械読み取り可能な媒体を含む、データを記憶するための1つ以上のハードウェア・デバイスを指す。用語「コンピュータ読み取り可能な媒体」は、メモリ、携帯可能な又は固定式の記憶デバイス、光記憶デバイス、及び様々な他の媒体であって、命令又はデータを記憶、収容、又は搬送することが可能な様々な他の媒体を含む可能性があるが、これらに限定されない。
[0177] 少なくとも幾つかの実施態様において、用語「インターフェース回路」は、2つ以上の構成要素又はデバイスの間で情報の交換を可能にする回路を指す、そのような回路の一部である、又はそのような回路を含む。少なくとも一部の実施形態において、用語「インターフェース回路」は、1つ以上のハードウェア・インターフェース、例えば、バス、I/Oインターフェース、ペリフェラル構成要素インターフェース、ネットワーク・インターフェース・カードなどを指す。
[0178] 用語「デバイス」は、少なくとも幾つかの実施形態では、内蔵された物理的エンティティ、又はその物理的エンティティからの又はそこへのデジタル情報を運ぶ機能とともに、他の物理的エンティティの近傍に取り付けられたものを指す。
[0179] 少なくとも幾つかの実施態様では、用語「エンティティ」は、アーキテクチャ若しくはデバイスの別個の構成要素、又はペイロードとして転送される情報を指す。
[0180] 少なくとも幾つかの実施形態では、用語「コントローラ」は、その状態を変化させるか、又は物理的なエンティティを動かすこと等によって、物理的なエンティティに影響を及ぼす能力を有する要素又はエンティティを指す。
[0181] 少なくとも幾つかの実施態様では、用語「演算ノード」又は「演算デバイス」は、より大きなシステムの一部であるか、システムの分散された集合体又はスタンドアロン装置であるかどうかを問わず、演算オペレーションの態様を実施する識別可能なエンティティを指す。幾つかの例において、演算ノードは、クライアント、サーバー、又は中間エンティティとして動作しているかどうかを問わず、「演算デバイス」、「演算システム」などと言及される可能性がある。演算ノードの特定の実装は、サーバー、基地局、ゲートウェイ、道路側ユニット、オン・プレミス・ユニット、ユーザー装置(UE)末端消費者デバイス、機器などに組み込むことが可能である。
[0182] 用語「コンピュータ・システム」は、少なくとも幾つかの実施形態では、任意のタイプの相互接続された電子デバイス、演算デバイス、又はそれらの構成要素を指す。更に、用語「コンピュータ・システム」及び/又は「システム」は、少なくとも幾つかの実施形態では、互いに通信可能に結合されたコンピュータの様々な構成要素を指す。更に、用語「コンピュータ・システム」及び/又は「システム」は、少なくとも幾つかの実施形態では、互いに通信可能に結合され、コンピューティング及び/又はネットワーキング・リソースを共有するように構成された複数の演算デバイス及び/又は複数の演算システムを指す。
[0183] 少なくとも幾つかの実施態様では、用語「アーキテクチャ」は、コンピュータ・アーキテクチャ又はネットワーク・アーキテクチャを指す。「コンピュータ・アーキテクチャ」は、コンピュータ・システム又はプラットフォーム内のソフトウェア及び/又はハードウェア要素の物理的及び論理的設計又は配置であり、それらの間の相互作用のための技術標準を含む。「ネットワーク・アーキテクチャ」は、通信プロトコル、インターフェース、及び媒体伝送を含むネットワーク内のソフトウェア及び/又はハードウェア要素の物理的及び論理的な設計又は配置である。
[0184] 用語「アプライアンス」、「コンピュータ機器」などは、少なくとも幾つかの実施形態では、特定の演算リソースを提供するように具体的に設計されたプログラム・コード(例えば、ソフトウェア又はファームウェア)を有するコンピュータ・デバイス又はコンピュータ・システムを指す。「仮想アプライアンス」は、コンピュータ機器を仮想化又はエミュレートする、又は他の方法で特定の演算リソースを提供するように特化されたハイパーバイザ搭載デバイスによって実装される仮想マシン・イメージ(virtual machine image)である。
[0185] 用語「ユーザー装置」又は「UE」は、少なくとも幾つかの実施形態では、無線通信能力を有するデバイスを指し、通信ネットワーク内のネットワーク・リソースの遠隔ユーザーを述べている可能性がある。用語「ユーザー装置」又は「UE」は、クライアント、移動体、モバイル・デバイス、移動端末、ユーザー端末、モバイル・ユニット、ステーション、移動局、モバイル・ユーザー、加入者、ユーザー、遠隔局、アクセス・エージェント、ユーザー・エージェント、受信機、無線機器、再構成可能な無線装置、再構成可能なモバイル・デバイスなどと同義と考えられてもよく、また、そのように言及されてもよい。更に、用語「ユーザー装置」又は「UE」は、任意のタイプの無線/有線デバイス、又は無線通信インターフェースを含む任意の演算デバイスを含んでもよい。
UE、クライアント・デバイス等の具体例は、デスクトップ・コンピュータ、ワークステーション、ラップトップ・コンピュータ、モバイル・データ端末、スマートフォン、タブレット・コンピュータ、ウェアラブル・デバイス、マシン・ツー・マシン(M2M)デバイス、マシン・タイプ通信(MTC)デバイス、モノのインターネット(IoT)デバイス、内蔵システム、センサ、自律車両、ドローン、ロボット、車載インフォテインメント・システム、計器クラスタ、オンボード診断デバイス、ダッシュトップ・モバイル装置、電子エンジン管理システム、電子/エンジン制御ユニット/モジュール、マイクロコントローラ、制御モジュール、サーバー・デバイス、ネットワーク機器、ヘッドアップ・ディスプレイ(HUD)デバイス、ヘルメット搭載ディスプレイ・デバイス、拡張現実(AR)デバイス、仮想現実(VR)デバイス、混合現実(MR)デバイス、及び/又はその他の類似のシステム又はデバイスを含む。
UE、クライアント・デバイス等の具体例は、デスクトップ・コンピュータ、ワークステーション、ラップトップ・コンピュータ、モバイル・データ端末、スマートフォン、タブレット・コンピュータ、ウェアラブル・デバイス、マシン・ツー・マシン(M2M)デバイス、マシン・タイプ通信(MTC)デバイス、モノのインターネット(IoT)デバイス、内蔵システム、センサ、自律車両、ドローン、ロボット、車載インフォテインメント・システム、計器クラスタ、オンボード診断デバイス、ダッシュトップ・モバイル装置、電子エンジン管理システム、電子/エンジン制御ユニット/モジュール、マイクロコントローラ、制御モジュール、サーバー・デバイス、ネットワーク機器、ヘッドアップ・ディスプレイ(HUD)デバイス、ヘルメット搭載ディスプレイ・デバイス、拡張現実(AR)デバイス、仮想現実(VR)デバイス、混合現実(MR)デバイス、及び/又はその他の類似のシステム又はデバイスを含む。
[0186] 用語「ネットワーク要素」は、少なくとも幾つかの実施形態では、有線又は無線通信ネットワーク・サービスを提供するために使用される物理的な又は仮想化された装置及び/又はインフラストラクチャを指す。用語「ネットワーク要素」は、ネットワーク化されたコンピュータ、ネットワーキング・ハードウェア、ネットワーク機器、ネットワーク・ノード、ルーター、スイッチ、ハブ、ブリッジ、無線ネットワーク・コントローラ、ネットワーク・アクセス・ノード(NAN)、基地局、アクセス・ポイント(AP)、RANデバイス、RANノード、ゲートウェイ、サーバー、ネットワーク機器、ネットワーク機能(NF)、仮想化されたNF(VNF)等々と同義であると考えられてもよく、及び/又はそのように言及されてもよい。
[0187] 用語「アプリケーション」は、少なくとも幾つかの実施形態では、コンピュータ自体の動作に関連するもの以外の特定のタスクを実行するように設計されたコンピュータ・プログラムを指す。追加的又は代替的に、少なくとも幾つかの実施形態では、用語「アプリケーション」は、動作環境において特定の機能を達成するための、完全かつ配備可能なパッケージ、環境を指す。
[0188] 用語「アルゴリズム」は、少なくとも幾つかの実施形態では、計算、入力/出力操作、データ処理、自動化推論タスクなどを実行することによって、問題又は問題のクラスをどのように解決するかについての曖昧でない仕様を指す。
[0189] 用語「インスタンス化する」、「インスタンス化」等は、少なくとも幾つかの実施態様では、インスタンスの作成を指す。また、「インスタンス」は、少なくとも一部の実施形態では、オブジェクトの具体的な出現を指し、これは、例えば、プログラム・コードの実行中に生じる可能性がある。
[0190] 用語「参照(reference)」は、少なくとも一部の実施形態では、他のデータを見つけるのに有用なデータを指し、様々な方法(例えば、ポインタ、インデックス、ハンドル、キー、識別子、ハイパーリンクなど)で実装される可能性がある。
[0191] 用語「人工知能」又は「AI」は、少なくとも幾つかの実施形態では、人間及びその他の動物によって表に出る自然のインテリジェンスとは対照的に、機械によって実演される何らかのインテリジェンスを指す。追加的又は代替的に、用語「人工知能」又は「AI」は、少なくとも幾つかの実施形態では、「インテリジェント・エージェント」及び/又は何らかのデバイスであって、その環境を認識し、ゴールを首尾良く達成するチャンスを最大化する行動をとるもの、についての研究を指す。
[0192] 用語「人工ニューラル・ネットワーク」、「ニューラル・ネットワーク」又は「NN」は、接続された人工ニューロン又はノードの集合を含むML技術であって、信号を他の人工ニューロン又はノードへ伝達することが可能な、生物学的な脳内のニューロンを(大まかに)モデル化したものを指し、ここで、人工ニューロン又はノード間の接続(又はエッジ)は、生物学的な脳のシナプスに関して(大まかに)モデル化される。人工ニューロン及びエッジは、典型的には、学習が進行するにつれて調整されるウェイトを有する。ウェイトは、接続における信号の強度を増減させる。ニューロンは閾値を有する可能性があり、その結果、集約信号がその閾値を超えた場合に限って信号が送信されるようになる。人工ニューロンは、1つ以上の又層に集約又はグループ化されることが可能であり、そこでは、異なる層がそれらの入力に対して異なる変換を行うことが可能である。信号は、第1レイヤ(入力レイヤ)から、おそらくは何回も層を伝搬した後に、最終レイヤ(出力レイヤ)に至る。NNは、通常、教師あり学習に使用されるが、教師なし学習に使用されることも可能である。NNの具体例は、ディープNN(DNN)、フィード・フォワードNN(FFN)、ディープFNN(DFFN)、畳み込みNN(CNN)、ディープCNN(DCN)、逆畳み込みNN(DNN)、深層信念NN、パーセプションNN、リカレントNN(RNN)(長短期メモリ(LSTM)アルゴリズム、ゲート付きリカレント・ユニット(GRU)、エコー・ステート・ネットワーク(ESN)等を含む)、スパイキングNN(SNN)、ディープ・スタッキング・ネットワーク(DSN)、マルコフ・チェーン、パーセプションNN、敵対的生成ネットワーク(GAN)、トランスフォーマー、セルフ・アテンション・メカニズム、確率的NN(例えば、ベイジアン・ネットワーク(BN)、ベイジアン・ビリーフ・ネットワーク(BBN)、ベイジアンNN(BNN)、深層BNN(DBNN)、ダイナミックBN(DBN)、確率的グラフィカル・モデル(PGM)、ボルツマン・マシン、制限ボルツマン・マシン(RBM)、ホップフィールド・ネットワーク、ホップフィールドNN、畳み込み深層信念ネットワーク(CDBN)等)、リニア・ダイナミカル・システム(LDS)、スイッチングLDS(SLDS)、オプティカルNN(ONN)、強化学習(RL)又は深層RL(DRL)のためのNN等を含む。
[0193] 機械学習及び/又はニューラル・ネットワークの文脈における用語「アテンション(又は注意)」は、少なくとも幾つかの実施形態では、データセットのうちの重要な部分を強調する、認知的注意を真似る技術を指し、ここで、データセットのうちの重要な部分は、勾配降下により訓練データを用いて決定されることが可能である。用語「ドット積アテンション」は、少なくとも幾つかの実施形態では、アテンションを決定するためにベクトル間の内積を使用するアテンション技術を指す。用語「マルチ・ヘッド・アテンション(multi-head attention)」は、少なくとも幾つかの実施形態では、ネットワーク又はサブネットワークの全体的な注意を仕向けるように、幾つかの異なるアテンション・メカニズムを組み合わせるアテンション技術を指す。
[0194] 用語「アテンション・モデル」又は「アテンション・メカニズム」は、少なくとも幾つかの実施形態では、ニューラル・ネットワークのための入力処理技術であって、データセット全体が分類されるまで、一度に1つずつ、ニューラル・ネットワークが、複雑な入力のうちの特定の局面に焦点を合わせることを可能にする技術を指す。ゴールは、複雑なタスクを、順番に処理されるアテンションによる小さなエリアにブレークダウンすることである。人間の思考が、新しい問題をよりシンプルなタスクに分割し、それらを1つずつ解決することによって、新しい問題を解決する方法と同様である。用語「アテンション・ネットワーク」は、少なくとも幾つかの実施形態では、機械学習においてアテンションのために使用される人工ニューラル・ネットワークを指す。
[0195] 用語「バックプロパゲーション(又は逆伝搬)」は、少なくとも幾つかの実施形態では、NNで使用されるべきウェイトの計算に必要な勾配を計算するために、NNで使用される方法を指し;「逆伝搬」は、「誤差の逆方向伝搬」の略称である。追加的又は代替的に、用語「逆伝搬」は、少なくとも幾つかの実施形態では、ニューラル・ネットワーク・パラメータの勾配を計算する方法を指す。追加的又は代替的に、用語「逆伝搬」又は「バック・パス」は、少なくとも幾つかの実施形態では、出力から入力層へ、何らかの中間隠れ層を介して、逆の順序でニューラル・ネットワークを横断する方法を指す。
[0196] 用語「ベイジアン最適化」は、少なくとも幾つかの実施態様では、機能形態を仮定しないブラック・ボックス関数のグローバルな最適化のための逐次的設計戦略を指す。
[0196] 用語「ベイジアン最適化」は、少なくとも幾つかの実施態様では、機能形態を仮定しないブラック・ボックス関数のグローバルな最適化のための逐次的設計戦略を指す。
[0197] MLの文脈における用語「分類」は、少なくとも幾つかの実施形態では、種々のデータ点が属するクラスを決定するためのML技術を指す。ここで、用語「クラス」又は「クラス(複数)」は、少なくとも幾つかの実施形態では、カテゴリを指し、時には「ターゲット」又は「ラベル」と呼ばれる。分類は、出力が、数量化された特徴の限定されたセットに制限される場合に使用される。分類アルゴリズムは、個々の(データ)インスタンスを記述することが可能であり、そのインスタンスのカテゴリは、特徴ベクトルを用いて予測されることになる。一例として、インスタンスがテキストのコレクション(コーパス)を含む場合、特徴ベクトル内の各々の特徴は、テキストのコーパスの中で特定の単語が現れる頻度であってもよい。ML分類では、ラベルはインスタンスに割り当てられ、モデルは訓練事例から事前に割り当てられたラベルを正確に予測するように訓練される。分類のためのMLアルゴリズムは、「分類器」と言及されてもよい。分類器の具体例は、線形分類器、k近傍法(k-nearest neighbor, kNN)、決定木、ランダム・フォレスト、サポート・ベクター・マシン(SVM)、ベイジアン分類器、畳み込みニューラル・ネットワーク(CNN)等を特に含む(これらのアルゴリズムのうちの一部は、他のMLタスクにも使用できることに留意されたい)。
[0198] 用語「畳み込み」は、少なくとも幾つかの実施態様では、CNNの畳み込み演算又は畳み込み層を指す。
[0199] 用語「コンテキスト(又は文脈)」又は「文脈情報」は、 少なくとも幾つかの実施態様では、(フィルタリング、集約、及び推論による)特定の用途の範囲内での意思決定のために必要な推論の量を効果的に低減するために使用することが可能な任意のエンティティに関する何らかの情報を指す。追加的又は代替的に、用語「コンテキスト」又は「コンテキスト情報」は、少なくとも幾つかの実施形態では、高次元の実数値ベクトルを指す。
[0200] 用語「畳み込みフィルタ」は、少なくとも幾つかの実施態様では、入力行列と同じランクを有するが、より小さな形状を有する行列を指す。機械学習では、ウェイトを訓練するために、畳み込みフィルタが入力行列と混合される。
[0201] 用語「畳み込み層」は、少なくとも幾つかの実施態様では、畳み込みフルタが入力行列(例えば、CNN)とともに通るDNNの層を指す。追加的又は代替的に、用語「畳み込み層」は、少なくとも幾つかの実施形態では、一連の畳み込み演算を含む層を指し、その各々が入力行列の異なるスライスに作用する。
[0202] 用語「畳み込みニューラル・ネットワーク」又は「CNN」は、少なくとも幾つかの実施形態では、少なくとも1つの畳み込み層を含むニューラル・ネットワークを指す。追加的又は代替的に、用語「畳み込みニューラル・ネットワーク」又は「CNN」は、少なくとも幾つかの実施形態では、画像のようなデータの構造化されたアレイを処理するように設計されたDNNを指す。
[0203] 用語「畳み込み演算」は、少なくとも幾つかの実施態様では、一方の形状が他方によってどのように変形されるかを表現する第3の関数(f*g)を生成する2つの関数(例えば、f及びg)に関する数学的演算を指し、用語「畳み込み」は、結果の関数とそれを計算するプロセスの両方を指す可能性がある。追加的又は代替的に、用語「畳み込み」は、少なくとも幾つかの実施形態では、一方が反転されてシフトされた後の2つの関数の積の積分を指し、ここで、積分はシフトの全ての値について評価され、畳み込み関数をもたらす。追加的又は代替的に、用語「畳み込み」は、少なくとも幾つかの実施形態では、(1)畳み込みフィルタと入力行列のスライスとの要素毎の乗算(入力行列のスライスは、畳み込みフィルタと同じランク及びサイズを有する);及び(2)結果として生じた行列における全ての値の合計、の2段階の数学的演算を指す。
[0204] 用語「共分散(covariance)」は、少なくとも幾つかの実施形態では、2つの確率変数の同時変動の尺度を指し、ここで、一方の変数のより大きな値が、他方の変数のより大きな値に主に対応する場合に、共分散は正であり(そして、変数が同様な挙動を示す傾向にあるように、より小さな値についても同じことが成り立つ)、一方の変数のより大きい値が、他方のより小さな値に主に対応する場合に、共分散は負である。
[0205] 用語「アンサンブル平均化」は、少なくとも幾つかの実施態様では、ただ1つのモデルを作成するのではなく、複数のモデルを作成し、それらを組み合わせて所望の出力を生成するプロセスを指す。
[0206] 用語「アンサンブル学習」又は「アンサンブル法」は、少なくとも幾つかの実施形態では、構成要素となる学習アルゴリズムの内の何れか単独のものから得ることが可能な予測パフォーマンスよりも良好な予測性能を得るために、複数の学習アルゴリズムを利用することを指す。
[0207] 用語「イベント(又は事象)」は、確率論において、少なくとも幾つかの実施形態では、確率が割り当てられる実験の結果の集合(例えば、サンプル空間のサブセット)を指す。追加的又は代替的に、用語「事象」は、少なくとも幾つかの実施形態では、何かが起こったことを示すソフトウェア・メッセージを指す。追加的又は代替的に、用語「イベント」は、少なくとも幾つかの実施形態では、時間内のオブジェクト、又はオブジェクト内のプロパティのインスタンス化を指す。追加的又は代替的に、用語「事象」は、少なくとも幾つかの実施形態では、時間的な瞬間における空間内の点(例えば、時空間内のロケーション)を指す。追加的又は代替的に、用語「事象」は、少なくとも幾つかの態様において、時間的な特定の時点での目立った出来事を指す。
[0208] 用語「特徴」は、少なくとも幾つかの実施態様では、個々の測定可能な特性、定量化可能な特性、又は観察される現象の特徴を指す。追加的又は代替的に、用語「特徴」は、少なくとも幾つかの実施形態において、予測を行う際に使用される入力変数を指す。少なくとも幾つかの実施形態では、特徴は、番号/数値(例えば、整数)、文字列、変数、順序、実数値、カテゴリ等を用いて表現されることが可能である。
[0219] 用語「特徴エンジニアリング」は、少なくとも幾つかの実施態様では、どの特徴がMLモデルを訓練する際に有用であり得るかを決定し、次いで生データを決定された特徴に変換するプロセスを指す。特徴エンジニアリングはしばしば「特徴抽出」と言及される。
[0210] 用語「特徴抽出」は、少なくとも幾つかの実施態様では、次元削減のプロセスを指し、それによって、生データの初期セットは、処理のためにより管理しやすいグループに削減される。追加的又は代替的に、用語「特徴抽出」は、少なくとも幾つかの実施形態では、別のモデルで入力として使用するために、教師なしモデル又は事前学習済みのモデルによって演算される中間特徴表現を抽出することを指す。特徴抽出は、「特徴エンジニアリング」の同義語としてしばしば使用される。
[0211] 用語「特徴マップ」は、少なくとも幾つかの実施態様では、ある空間内で特徴ベクトル(又は特徴テンソル)を取得し、それらを別の空間における特徴ベクトル(又は特徴テンソル)に変換する関数を指す。追加的又は代替的に、用語「特徴マップ」は、少なくとも幾つかの実施形態では、データ・ベクトル(又はテンソル)を特徴空間にマッピングする関数を指す。追加的又は代替的に、用語「特徴マップ」は、少なくとも幾つかの実施形態では、先行する層に適用された1つのフィルタの出力を適用する関数を指す。幾つかの実施形態において、用語「特徴マップ」は、「活性化マップ」とも言及されてもよい。
[0212] 用語「特徴ベクトル」は、少なくとも幾つかの実施形態では、MLの文脈において、モデルに渡された事例を表す特徴のセット及び/又は特徴値のリストを指す。
[0213] 用語「順伝搬」又は「フォワード・パス」は、少なくとも幾つかの実施形態では、MLの文脈において、入力層から出力層へ、入力層と出力層との間の隠れ層を経て至る順序における、ニューラル・ネットワークの中間変数(出力を含む)の演算及び記憶を指す。
[0214] 用語「隠れ層」は、ML及びNNの文脈において、少なくとも幾つかの実施形態では、入力又は出力に専用ではないANN内のニューロンの内部層を指す。用語「隠れユニット」は、ANNにおける隠れ層のニューロンを指す。
[0215] 用語「ハイパーパラメータ」は、少なくとも幾つかの実施形態では、訓練プロセス中に学習できない、MLプロセスのための特徴、プロパティ、及び/又はパラメータを指す。ハイパーパラメータは、通常、訓練が行われる前に設定され、モデル・パラメータを推定するのに役立つようにプロセス中に使用されることが可能である。
ハイパーパラメータの具体例は、モデル・サイズ(例えば、メモリ空間、バイト、層の数などの観点からのもの);訓練データ・シャッフリング(例えば、そのようにするかどうか、どの程度そうするか);評価インスタンスの数、反復数、エポック数(例えば、訓練データをカバーする反復数又は通り過ぎる回数)、又はエピソード数;訓練データをカバーするパスの数;正規化;学習率(例えば、アルゴリズムが最適なウェイトに到達する(収束する)速度);学習速度の減衰(又はウェイト減衰);モーメンタム;隠れレイヤの数;個々の隠れ層のサイズ;ウェイト初期化方式;ドロップアウト及び勾配クリッピング閾値;SVMに関するC値及びシグマ値;k近傍法におけるk;決定木における枝の数;クラスタリング・アルゴリズムにおけるクラスタの数;ベクトル・サイズ;NLP及びNLUに関するワード・ベクトル・サイズ等を含む。
ハイパーパラメータの具体例は、モデル・サイズ(例えば、メモリ空間、バイト、層の数などの観点からのもの);訓練データ・シャッフリング(例えば、そのようにするかどうか、どの程度そうするか);評価インスタンスの数、反復数、エポック数(例えば、訓練データをカバーする反復数又は通り過ぎる回数)、又はエピソード数;訓練データをカバーするパスの数;正規化;学習率(例えば、アルゴリズムが最適なウェイトに到達する(収束する)速度);学習速度の減衰(又はウェイト減衰);モーメンタム;隠れレイヤの数;個々の隠れ層のサイズ;ウェイト初期化方式;ドロップアウト及び勾配クリッピング閾値;SVMに関するC値及びシグマ値;k近傍法におけるk;決定木における枝の数;クラスタリング・アルゴリズムにおけるクラスタの数;ベクトル・サイズ;NLP及びNLUに関するワード・ベクトル・サイズ等を含む。
[0216] 用語「推論エンジン」は、少なくとも幾つかの実施形態では、新しい情報を導出するために、論理ルールを知識ベースに適用する演算システムの構成要素を指す。
[0217] MLの文脈における用語「インスタンス・ベースの学習」又は「メモリ・ベースの学習」は、少なくとも幾つかの実施形態では、明示的な一般化を実行する代わりに、新しい問題インスタンスを、メモリに記憶されている訓練中に発見されたインスタンスと比較する学習アルゴリズムのファミリーを指す。インスタンス・ベースのアルゴリズムの具体例は、k近傍法など、決定木アルゴリズム(e.g., 分類及び回帰ツリー(Classification And Regression Tree,CART),ID3(Iterative Dichotomiser 3),C4.5,CHAID(chi-square automatic interaction detection)など,FDT(Fuzzy Decision Tre)等),SVM(Support Vector Machines,SVM),ベイジアン・アルゴリズム(e.g., BN(Bayesian network),DBN(dynamic BN),ナイーブ・ベイズ等),及びアンサンブル・アルゴリズム(例えば、エクストリーム勾配ブースティング,投票アンサンブル,ブートストラップ・アグリゲーション( “bagging”),ランダム・フォレスト等を含む。
[0218] 用語「インテリジェント・エージェント」は、少なくとも幾つかの実施形態では、ソフトウェア・エージェント又はその他の自律的エンティティであって、センサによる観測とその結果のアクチュエータとを用いて、環境での目標達成に向けてその行動を導くように動作するもの(即ち、インテリジェントであるもの)を指す。インテリジェント・エージェントはまた、それらのゴールを達成するために知識を学習したり、利用したりすることが可能である。
[0219] 用語「反復」は、少なくとも幾つかの実施形態では、一連の成果を生成するためのプロセスの反復を指し、ここで、プロセスの各々の反復は単一の反復であり、各々の反復の成果は次の反復の開始点である。追加的又は代替的に、用語「反復」は、少なくとも幾つかの実施形態では、訓練中のモデルのウェイトの1回の更新を指す。
[0220] 用語「カルバック・ライブラー・ダイバージェンス(Kullback‐Leibler divergence)」は、少なくとも幾つかの実施形態では、ある確率分布が基準確率分布とどの程度相違しているのかについての尺度を指す。“カルバック・ライブラー・ダイバージェンス”は、連続分布に対する有用な距離尺度である可能性があるものであり、(離散的にサンプリングされた)連続出力分布の空間に対する直接的な回帰を実行する場合にしばしば有用である。用語「カルバック・ライブラー・ダイバージェンス」は、「相対エントロピー(relative entropy)」と言及される場合がある。
[0221] 用語「知識ベース」は、少なくとも幾つかの実施態様では、演算システムによって使用される複雑な構造された及び/又は構造化されていない情報を記憶するために使用される任意の技術を指す。
[0222] 機械学習における用語「知識蒸留」は、少なくとも幾つかの実施形態では、知識を、大きなモデルから小さなモデルへ移すプロセスを指す。
[0223] 用語「ロジット」は、少なくとも幾つかの実施形態では、分類モデルが生成する一連の生の予測(例えば、正規化されていない予測)を指し、それは、通常、マルチ・クラス分類問題を解くモデルのためのソフトマックス関数のような正規化関数に渡されるものである。追加的又は代替的に、用語「ロジット」は、少なくとも幾つかの実施形態では、確率の対数を指す。追加的又は代替的に、用語「ロジット」は、少なくとも幾つかの実施形態では、ロジット機能の出力を指す。追加的又は代替的に、用語「ロジット」又は「ロジット機能」は、少なくとも幾つかの実施形態では、標準的なロジスティック分布に関連する分位関数(quantile function)を指す。追加的又は代替的に、用語「ロジット」は、少なくとも幾つかの実施形態では、標準的なロジスティック関数の逆数を指す。追加的又は代替的に、用語「ロジット」は、少なくとも幾つかの実施形態では、シグモイド関数の要素ごとの逆数を指す。追加的又は代替的に、用語「ロジット」又は「ロジット関数」は、少なくとも幾つかの実施形態では、0ないし1の確率値、及び負の無限大ないし(正の)無限大を表す関数を指す。追加的又は代替的に、用語「ロジット」又は「ロジット機能」は、少なくとも幾つかの実施形態では、確率を取得して負ないし正の無限大の間の実数を生成する関数を指す。
[0224] 用語「損失関数」又は「コスト関数」は、少なくとも幾つかの実施形態では、イベントに関連する何らかの「コスト」を表す実数に対する1つ以上の変数のイベント又は値を指す。損失関数によって計算される値は、「損失」又は「エラー」と呼ばれる場合がある。追加的又は代替的に、用語「損失関数」又は「コスト関数」は、少なくとも幾つかの実施形態では、アルゴリズムの出力と目標値との間のエラー又は損失を決定するために使用される関数を指す。追加的又は代替的に、用語「損失関数」又は「コスト関数」は、少なくとも幾つかの実施形態では、損失又はエラーを最小化することを目的とする最適化問題で使用される関数を指す。
[0225] 用語「機械学習」又は「ML」は、少なくとも幾つかの実施形態では、事例(訓練)データ及び/又は過去の経験を使用して、パフォーマンス基準を最適化するために、コンピュータ・システムを使用することを指す。MLは、具体的なタスクを実行するために明示的な指示を使用することなく、及び/又はパターン、予測、及び/又は推論を当てにして、特定のタスクを実行するためにアルゴリズムを使用することを含む。MLは、サンプル・データ(例えば、訓練データ)に基づいて予測又は決定を行うために、統計を用いて数学モデル(MLモデル又は単に「モデル」とも呼ばれる)を構築する。モデルは、パラメータのセットを有するように定義され、学習は、訓練データ又は過去の経験を使用して、モデルのパラメータを最適化するためのコンピュータ・プログラムの実行である。訓練済みのモデルは、入力データセットに基づいて予測を行う予測モデル、入力データセットから知識を得る記述モデル、又は予測と記述の両方を行う予測モデルであってもよい。モデルが学習(訓練)されると、それは推論(例えば、予測)を行うために使用することが可能である。MLアルゴリズムは、基礎となるMLモデルを推定するために、訓練データセットに関して訓練プロセスを実行する。MLアルゴリズムは、何らかのタスク及び何らかのパフォーマンス尺度/メトリックに関連して、経験から学習するコンピュータ・プログラムであり、MLモデルは、MLアルゴリズムが訓練データで訓練された後に作成されるオブジェクト又はデータ構造である。換言すれば、用語「MLモデル」又は「モデル」は、訓練データで訓練されたMLアルゴリズムの出力を表現することができる。訓練の後、MLモデルは、新しいデータセットに関して予測を行うために使用されることが可能である。追加的に、別々に訓練されたAI/MLモデルが、推論又は予測生成の間に、AI/MLパイプライン内で一緒にチェーン化されることが可能である。用語「MLアルゴリズム」は、少なくとも幾つかの実施形態では、用語「MLモデル」とは(厳密には)異なる概念を指すが、これらの用語は、本開示の目的に関して、可換に使用されてもよい。更に、「AI/MLアプリケーション」等という用語は、少なくとも幾つかの実施形態では、幾つかのAI/MLモデル及びアプリケーション・レベルの記述を含むアプリケーションを指す。ML技法は、一般に、教師あり学習、教師なし学習、及び強化学習という主なタイプの学習問題カテゴリに分類される。
[0226] 用語「数学モデル」は、統少なくとも幾つかの実施態様では、支配方程式(governing equations)、仮定、及び制約を含むエンティティ又は状態の数学的記述として提示される、仮説、データ、及び推論のシステムを指す。
[0227] MLの文脈における用語「モデル・パラメータ」及び/又は「パラメータ」は、少なくとも幾つかの実施形態では、訓練中に学習される値、特徴、及び/又はプロパティを指す。追加的又は代替的に、MLの文脈における「モデル・パラメータ」及び/又は「パラメータ」は、少なくとも幾つかの実施形態では、モデルの内部の設定変数であって、その値が所与のデータから推定することが可能な設定変数を指す。モデル・パラメータは、通常、予測を行う場合にモデルにより必要とされ、その値は、特定の問題に関するモデルの能力を定める。そのようなモデル・パラメータ/パラメータの具体例は、ウェイト(例えば、ANNにおけるもの);制約;サポート・ベクタ・マシン(SVM)におけるサポート・ベクトル;線形回帰及び/又はロジスティック回帰における係数;単語頻度、文の長さ、1文当たりの名詞又は動詞の分布、単語当たりの特定の文字数(n-gram)、語彙多様性などの自然言語処理(NLP)及び/又は 自然言語理解(NLU)に関するもの等を含む。
[0228] 用語「モーメンタム(momentum)」は、少なくとも幾つかの実施態様では、勾配降下における勾配の集まりを指す。追加的又は代替的に、用語「モーメンタム」は、少なくとも幾つかの実施形態では、確率勾配降下アルゴリズムの変形を指し、そこでは現在の勾配が、勾配の集約であるm(モーメンタム)で置き換えられる。
[0229] 用語「目的関数」は、少なくとも幾つかの実施形態では、特定の最適化問題に対して最大化又は最小化される関数を指す。場合によっては、目的関数は、意思決定変数と目的によって定義される。目的は、利益の最大化、特定のリソース利用の最小化のような、最適化されるべき価値、ターゲット、又はゴールである。選択される特定の目的関数は、解決されるべき特定の問題と、最適化されるべき目標とに依存する。また、制約は、決定変数が想定し得る値を制限するために定義される可能性があり、それによって、達成され得る客観的な値(出力)に影響を及ぼす。最適化プロセスの間に、目的関数の決定変数は、目的関数の値を改善するために、制約の範囲内でしばしば変更又は操作される。一般に、目的関数に含まれる意思決定変数の数が増えるにつれて、目的関数を解く際の困難性が増加する。用語「決定変数」は、行われる決定を表現する変数を指す。
[0230] 用語「最適化」は、少なくとも幾つかの態様では、何らかの事柄(例えば、設計、システム、又は決定)を、可能な限り完全に、機能的に、又は効果的に行う行動、プロセス、又は方法論を指す。最適化は、通常、関数の最大値又は最小値を見出すような数学的手順を含む。用語「最適」は、少なくとも幾つかの実施形態では、最も望ましい又は満足な結果、成果、又は出力を指す。用語「最適」は、少なくとも幾つかの実施態様では、何らかの目的にとって最も好ましい何らかの量又は程度を指す。用語「最適」は、少なくとも幾つかの実施態様では、最良の可能な結果をもたらす状態、程度、量、又は妥協を指す。追加的又は代替的に、用語「最適」は、少なくとも幾つかの実施形態では、最も好ましい又は有利な成果又は結果を指す。
[0231] 用語「確率」は、少なくとも幾つかの実施態様では、事象がどの程度発生する可能性があるか、及び/又は命題が真実である可能性がどの程度あるか、についての数値的記述を指す。用語「確率分布」は、少なくとも幾つかの実施態様では、実験又は事象について、様々な可能性のある結果の生じる確率を与える数学的関数を指す。
[0232] 用語「分位点(quantile)」は、少なくとも幾つかの実施態様では、ある確率分布の範囲を、等しい確率の連続間隔に分割する、又はサンプル中の観測値を同じ方法で分割する切断点を指す。用語「分位関数」は、少なくとも幾つかの実施形態では、確率変数の確率分布に関連する関数を指し、変数がその値以下である確率が所与の確率に等しいように、確率変数の値を指定する。用語「分位関数」は、パーセンタイル関数、パーセント点関数、又は逆累積分布関数とも呼ばれる場合がある。
[0233] MLの文脈における用語「回帰アルゴリズム」及び/又は「回帰分析」は、少なくとも幾つかの実施形態では、従属変数(しばしば「結果変数(outcome variable)」と呼ばれる)と1つ以上の独立変数(しばしば「予測因子」、「共変量」又は「特徴」と呼ばれる)との間の関係を推定するための一連の統計的プロセスを指す。回帰アルゴリズム/モデルの具体例は、ロジスティック回帰、線形回帰、勾配降下(GD)、確率論的GD(SGD)などを含む。
[0234] 用語「強化学習」又は「RL」は、少なくとも幾つかの実施形態では、環境との相互作用に基づく目標指向型の学習技術を指す。RLでは、エージェントは、試行錯誤プロセスに基づいて環境と相互作用することにより、長期的な目標を最適化することを目指す。RLアルゴリズムの具体例は、マルコフ決定プロセス、マルコフ・チェーン、Q学習、マルチ・アーム・バンディット学習、時間差学習、及びディープRLを含む。
[0235] 実験又はランダム試行の確率理論(「サンプル記述空間」又は「可能性空間」とも呼ばれる)における「サンプル空間」という用語は、少なくとも幾つかの実施形態では、その実験の全ての可能な成果又は結果の集合を指す。
[0236] 用語「セルフ・アテンション」は、少なくとも幾つかの実施形態では、シーケンス中の表現を演算するために、単一シーケンスのうちの様々な位置を関連付けるアテンション・メカニズムを指す。追加的又は代替的に、用語「セルフ・アテンション」は、少なくとも幾つかの実施形態では、複数のコンテキストを横断するのではなく、単一のコンテキストに適用されるアテンション・メカニズムを指し、そこではクエリ、キー、及びバリューが同じコンテキストから抽出される。
[0237] 用語「ソフトマックス」又は「ソフトマックス関数」は、少なくとも幾つかの実施形態では、ロジスティック関数の多次元への一般化を指し;「ソフトマックス関数」は、多項ロジスティック回帰において使用され、しばしば、ニューラル・ネットワークの最後の活性化関数として使用され、ネットワークの出力を、予測された出力クラスに対する確率分布に対して正規化する。
[0238] 用語「教師あり学習」は、少なくとも幾つかの実施態様では、所与のレベル付けされたデータセットの下で、出力を生成するMLモデルを生成したり又は関数を学習したりすることを目指すML技術を指す。教師あり学習アルゴリズムは、入力と所望の出力との両方を含む一組のデータからモデルを構築する。例えば、教師あり学習は、事例の入力-出力ペア又はその他の何らかの形式のラベル付けされた訓練データ(一組の訓練事例を含むもの)に基づいて、入力を出力にマッピングする関数又はモデルを学習することを含む。各々の入力-出力ペアは、入力オブジェクト(例えば、ベクトル)及び所望の出力オブジェクト又は値(「教師信号」と呼ばれる)を含む。教師あり学習は、分類アルゴリズム、回帰アルゴリズム、及びインスタンス・ベース・アルゴリズムにグループ化することができる。
[0239] 用語「テンソル」は、少なくとも幾つかの実施態様では、空間の座標に関連する関数を記述する成分の配列によって表現される物体又はその他のデータ構造を指す。追加的又は代替的に、用語「テンソル」は、少なくとも幾つかの実施形態では、ベクトル及び行列の一般化を指し、及び/又は多次元配列であると理解されてもよい。追加的又は代替的に、用語「テンソル」は、少なくとも幾つかの実施形態では、軸の変数とともに正規のグリッド上に配置された数字の配列を指す。少なくとも幾つかの実施形態では、テンソルは、単一点、孤立点の集合、又は点による連続体を指し、これらの中でテンソルの要素は位置の関数であり、テンソルは「テンソル場(tensor field)」を形成する。少なくとも一部の実施形態では、ベクトルは1次元(1D)又は1次テンソルと考えられてもよく、行列は2次元(2D)又は2次テンソルと考えられてもよい。テンソル表記法は、テンソルを表す大文字と、テンソル内のスカラー値を表す下付き整数を伴う小文字とを伴う行列表記法と同じか又は類似している場合がある。
[0240] 用語「教師なし学習」は、少なくとも幾つかの実施態様では、隠れた構造を、ラベルなしデータから記述する関数を学習することを目指すML技術を指す。教師なし学習アルゴリズムは、入力のみを含み且つ所望の出力ラベルを含まないデータのセットからモデルを構築する。教師なし学習アルゴリズムは、データ・ポイントのグループ化又はクラスタ化のように、データの中の構造を見つけるために使用される。教師なし学習の具体例には、K-meansクラスタリング、主成分分析(PCA)、トピック・モデリングが特に挙げられる。用語「半教師あり学習」は、少なくとも幾つかの実施形態では、不完全な訓練データからMLモデルを発展させるMLアルゴリズムを指し、ここで、サンプル入力の一部はラベルを含まない。
[0241] 用語「ベクトル」は、 少なくとも一部の実施形態では、スカラーと呼ばれる1つ以上の値のタプルを指し、「特徴ベクトル」は、1つ以上の特徴のタプルを含むベクトルであってもよい。
[0242] これらの実施形態は、特定の例示的な態様を参照して説明されているが、本開示のより広範な範囲から逸脱することなく、種々の修正及び変更がこれらの態様に対して施されてもよい、ということは明らかであろう。本件で説明される配置及びプロセスの多くは、より大きな帯域幅/スループットを提供するため、且つサービス提供されるエッジ・システムにとって利用可能にされることが可能なエッジ・サービス選択をサポートするために、組み合わせて又は並列実装で使用されることが可能である。従って、明細書及び図面は、限定的な意味ではなく例示的に解釈されるべきである。本件の一部を構成する添付図面は、非限定的な例示的な具体的な態様であって、対象事項が実施され得るものを示す。説明された態様は、当業者が、本件で開示された教示を実施することを可能にするために十分詳細に説明されている。他の態様が使用され及びそれらから導出されることが可能であり、その結果、本開示の範囲から逸脱することなく、構造的及び論理的な置換や変更を行うことが可能である。従って、この詳細な説明は、限定的な意味で解釈されるべきではなく、種々の態様の範囲は、添付のクレームに認められる均等物の完全な範囲と共に、添付のクレームによってのみ定義される。
[0243] 本発明の対象事項のこのような態様は、本件において個別に及び/又は集合的に言及されているかもしれないが、それは単に便宜的なためであるに過ぎず、1つより多いものが開示されている場合に、本件の範囲を、何らかの単独の態様に又は発明概念に自発的に限定するようには意図されていない。従って、特定の態様が本件で図示及び説明されているが、同一の目的を達成するために計算される如何なる配置も、図示された特定の態様の代替となり得ることが理解されるべきである。本開示は、様々な側面のうちの任意の及び全ての適合性又は変形例をカバーするように意図されている。本件で具体的には記載されていない上記態様及び他の態様の組み合わせは、当業者にとって、上記の説明を検討すれば明らかであろう。
Claims (25)
- 機械学習(ML)モデルのスパース蒸留のための装置であって:
シングルのML訓練エポックの間に、スーパーネットの知識をサブネットへ蒸留する知識蒸留(KD)メカニズム;及び
前記シングルのML訓練エポックの間に、1つ以上のパラメータを前記サブネットからプルーニングし、スパースな蒸留されたサブネットを生成するプルーニング・メカニズム;
を含む装置。 - 請求項1に記載の装置において、前記知識の蒸留と前記1つ以上のパラメータのプルーニングは同時に行われる、装置。
- 請求項1又は2に記載の装置において、前記シングルのML訓練エポックは、訓練データセットを1回通り過ぎることを含む、装置。
- 請求項1,2又は3の何れか1項に記載の装置において、前記KDメカニズムは:
前記訓練データセットを用いて前記スーパーネットを訓練し;
前記スーパーネットを作動させて、前記サブネットへ蒸留されるべき知識を抽出し;及び
前記訓練データセットを用いて前記サブネットを訓練し、且つ抽出された知識を用いて前記サブネットの訓練をガイドする、装置。 - 請求項4に記載の装置において、前記知識は、前記スーパーネットから抽出されたロジットと特徴マップとの双方を含む、装置。
- 請求項5に記載の装置において、前記KDメカニズムは、アテンション転送蒸留アルゴリズムを用いて、前記知識を前記スーパーネットから前記サブネットへ転送する、装置。
- 請求項1,2,3,4,5,又は3の何れか1項に記載の装置において、前記MLモデルは、ディープNN(DNN)、フィード・フォワードNN(FFN)、ディープFNN(DFFN)、畳み込みNN(CNN)、ディープCNN(DCN)、逆畳み込みNN(DNN)、深層信念NN、パーセプションNN、グラフNN、リカレントNN(RNN)、長短期メモリ(LSTM)アルゴリズム、ゲート付きリカレント・ユニット(GRU)、エコー・ステート・ネットワーク(ESN)、スパイキングNN(SNN)、ディープ・スタッキング・ネットワーク(DSN)、マルコフ・チェーン、パーセプションNN、敵対的生成ネットワーク(GAN)、トランスフォーマー、セルフ・アテンション(SA)メカニズム、確率的NN、ベイジアン・ネットワーク(BN)、ベイジアン・ビリーフ・ネットワーク(BBN)、ベイジアンNN(BNN)、深層BNN(DBNN)、ダイナミックBN(DBN)、確率的グラフィカル・モデル(PGM)、ボルツマン・マシン、制限ボルツマン・マシン(RBM)、ホップフィールド・ネットワーク、畳み込み深層信念ネットワーク(CDBN)、リニア・ダイナミカル・システム(LDS)、スイッチングLDS(SLDS)、オプティカルNN(ONN)、強化学習(RL)又は深層RL(DRL)のためのNNのうちの1つ以上を含むニューラル・ネットワーク(NN)である、装置。
- 請求項1,2,3,4,5,6,又は7の何れか1項に記載の装置において:
入力データに基づいて、クエリ行列、バリュー行列、及びキー行列であって前記プルーニング・メカニズムによりプルーニングされるべきパラメータを含むクエリ行列、バリュー行列、及びキー行列を生成し;及び
前記クエリ行列、前記バリュー行列、及び前記キー行列を前記プルーニング・メカニズムに提供するセルフ・アテンション(SA)メカニズムを更に含む、装置。 - 請求項8に記載の装置において、前記SAメカニズムは、前記入力データをパラメータ化・学習可能・変換(PLT)に適用して、前記クエリ行列、前記バリュー行列、及び前記キー行列を生成する、装置。
- 請求項9に記載の装置において、前記SAメカニズムは前記PLTを含む、装置。
- 請求項8,9,又は10の何れか1項に記載の装置において、前記SAは:
前記クエリ行列と前記キー行列に関する演算であって、前記クエリ行列と前記キー行列に関する行列乗算演算又は1×1畳み込みを含む演算を実行し;
ソフトマックス関数を前記演算の第1の出力に適用し;及び
前記ソフトマックス関数の第3の出力と前記バリュー行列の組み合わせに基づいて、第2の出力を生成する、装置。 - 請求項8,9,10,又は11の何れか1項に記載の装置において、前記SAメカニズムは畳み込みニューラル・ネットワーク(CNN)に取って代わる、装置。
- 請求項1,2,3,4,5,6,7,8,9,10,11,又は12の何れか1項に記載の装置において、前記スーパーネットは、畳み込み層のセットと、畳み込み層ではない層のセットとを含む畳み込みニューラル・ネットワーク(CNN)である、装置。
- 請求項13に記載の装置において、前記CNNにおける前記畳み込み層のセットは、SA層のセットで置換される、装置。
- 請求項1,2,3,4,5,6,7,8,9,10,11,12,13,又は14の何れか1項に記載の装置において、前記装置は、クライアント・デバイス、アプリケーション・サーバー、エッジ演算フレームワークのエッジ演算サーバー、又はクラウド演算サービスのクラウド演算ノード、のうちの少なくとも1つである、装置。
- スパース蒸留システムを作動させる方法であって:
第1の機械学習(ML)モデルのための訓練データセットを取得し;
前記訓練データセットを、前記第1のMLモデルと、前記第1のMLモデルより少ないパラメータを有する第2のMLモデルとに提供し;
前記第1のMLモデルと前記第2のMLモデルの訓練中に、前記訓練データセットを1回通り過ぎる際に、前記第1のMLモデルの知識を前記第2のMLモデルへ蒸留し;及び
前記訓練データセットを1回通り過ぎる際に、1つ以上のパラメータを前記第2のMLからプルーニングすることを含む方法。 - 請求項16に記載の方法において、前記知識の蒸留と前記1つ以上のパラメータのプルーニングは同時に行われる、方法。
- 請求項16又は17の何れか1項に記載の方法において、
前記訓練データセットを用いて前記第1のMLモデルを訓練し;
前記第1のMLモデルを作動させて、前記第2のMLモデルへ蒸留されるべき知識を抽出し;及び
前記訓練データセットを用いて前記第2のMLモデルを訓練し、且つ抽出された知識を用いて前記第2のMLモデルの訓練をガイドすることを更に含む、方法 - 請求項18に記載の方法において、前記第1のMLモデルからロジットと特徴マップとを抽出することを更に含み、前記知識は、抽出されたロジットと抽出された特徴マップとの双方を含む、方法。
- 請求項16,17,18,又は19の何れか1項に記載の方法において、アテンション転送蒸留アルゴリズムを用いて、前記知識を前記第1のMLモデルから前記第2のMLモデルへ転送することを更に含み、その結果、前記第2のMLモデルは、前記第1のMLモデルの第2の空間アテンション・マップに類似する第1の空間アテンション・マップを含むようになる、方法。
- 請求項16,17,18,19,又は20の何れか1項に記載の方法において、前記訓練データセットに基づいて、クエリ行列、バリュー行列、及びキー行列を生成することを更に含み、前記クエリ行列、前記バリュー行列、及び前記キー行列はプルーニングされるべきパラメータを含む、方法。
- 請求項21に記載の方法において:
前記訓練データセットの一部分をパラメータ化・学習可能・変換(PLT)に適用して、前記クエリ行列、前記バリュー行列、及び前記キー行列を生成し;
前記クエリ行列と前記キー行列に関する演算であって、前記クエリ行列と前記キー行列に関する行列乗算演算又は1×1畳み込みを含む演算を実行し;
ソフトマックス関数を前記演算の第1の出力に適用し;及び
前記ソフトマックス関数の第3の出力と前記バリュー行列の組み合わせに基づいて、第2の出力を生成することを更に含む、方法。 - 請求項21又は22の何れか1項に記載の方法において、畳み込みニューラル・ネットワーク(CNN)を、前記訓練データセットの一部分を前記PLTに適用すること、前記演算を実行すること、前記ソフトマックス関数を前記第1の出力に適用すること、及び前記第2の出力を生成することで置換することを更に含む、方法。
- 請求項21,22,又は23の何れか1項に記載の方法において、前記第1のMLモデルは、畳み込み層のセットと、畳み込み層ではない層のセットとを含む畳み込みニューラル・ネットワーク(CNN)であり、前記CNNにおける前記畳み込み層のセットは、セルフ・アテンション(SA)層のセットで置換される、方法。
- 請求項16ないし24の何れか1項に記載の方法をプロセッサに実行させるコンピュータ・プログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/504,282 US20220036194A1 (en) | 2021-10-18 | 2021-10-18 | Deep neural network optimization system for machine learning model scaling |
US17/504,282 | 2021-10-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023060820A true JP2023060820A (ja) | 2023-04-28 |
Family
ID=80003309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022147630A Pending JP2023060820A (ja) | 2021-10-18 | 2022-09-16 | 機械学習モデル・スケーリングのためのディープ・ニューラル・ネットワーク最適化システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220036194A1 (ja) |
JP (1) | JP2023060820A (ja) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11941491B2 (en) | 2018-01-31 | 2024-03-26 | Sophos Limited | Methods and apparatus for identifying an impact of a portion of a file on machine learning classification of malicious content |
US11947668B2 (en) | 2018-10-12 | 2024-04-02 | Sophos Limited | Methods and apparatus for preserving information between layers within a neural network |
US11900244B1 (en) * | 2019-09-30 | 2024-02-13 | Amazon Technologies, Inc. | Attention-based deep reinforcement learning for autonomous agents |
US12010129B2 (en) * | 2021-04-23 | 2024-06-11 | Sophos Limited | Methods and apparatus for using machine learning to classify malicious infrastructure |
US20220035878A1 (en) * | 2021-10-19 | 2022-02-03 | Intel Corporation | Framework for optimization of machine learning architectures |
CN117099125A (zh) * | 2021-12-03 | 2023-11-21 | 宁德时代新能源科技股份有限公司 | 一种基于对比表征蒸馏的快速异常检测方法和系统 |
WO2023155183A1 (en) * | 2022-02-21 | 2023-08-24 | Intel Corporation | Systems, apparatus, articles of manufacture, and methods for teacher-free self-feature distillation training of machine learning models |
WO2023159426A1 (en) * | 2022-02-24 | 2023-08-31 | Huawei Technologies Co., Ltd. | Methods and apparatus for adaptive exchange of artificial intelligence/machine learning (ai/ml) parameters |
TWI800304B (zh) * | 2022-03-16 | 2023-04-21 | 英業達股份有限公司 | 使用同義資料的聯邦學習系統 |
CN114841055B (zh) * | 2022-03-31 | 2024-03-19 | 西北工业大学 | 一种基于生成对抗网络的无人机集群任务预分配方法 |
CN114700947A (zh) * | 2022-04-20 | 2022-07-05 | 中国科学技术大学 | 基于视触融合的机器人及其抓取系统和方法 |
WO2023215253A1 (en) * | 2022-05-02 | 2023-11-09 | Percipient .Ai, Inc | Systems and methods for rapid development of object detector models |
CN115618271B (zh) * | 2022-05-05 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 对象类别识别方法、装置、设备及存储介质 |
CN114819188A (zh) * | 2022-05-19 | 2022-07-29 | 北京百度网讯科技有限公司 | 模型训练方法、装置、电子设备及可读存储介质 |
CN115097884B (zh) * | 2022-05-26 | 2022-12-30 | 福建省龙氟新材料有限公司 | 用于电子级氢氟酸制备的能源管理控制系统及其控制方法 |
CN115220727B (zh) * | 2022-06-07 | 2024-05-28 | 清华大学 | 面向利用Python语言编写的不规则张量程序的优化方法及装置 |
CN115223049B (zh) * | 2022-09-20 | 2022-12-13 | 山东大学 | 面向电力场景边缘计算大模型压缩的知识蒸馏与量化方法 |
CN115457006B (zh) * | 2022-09-23 | 2023-08-22 | 华能澜沧江水电股份有限公司 | 基于相似一致性自蒸馏的无人机巡检缺陷分类方法及装置 |
WO2024081405A1 (en) * | 2022-10-13 | 2024-04-18 | Visa International Service Association | System, method, and computer program product for analyzing and/or improving transformer models |
WO2024091562A1 (en) * | 2022-10-25 | 2024-05-02 | Nec Laboratories America, Inc. | Anomaly detection using metric time series and event sequences for medical decision making |
CN115860135B (zh) * | 2022-11-16 | 2023-08-01 | 中国人民解放军总医院 | 基于超网的异构联邦学习方法、设备及介质 |
TWI824861B (zh) * | 2022-11-30 | 2023-12-01 | 國立陽明交通大學 | 機器學習裝置及其訓練方法 |
CN115829064B (zh) * | 2023-02-17 | 2023-05-05 | 山东浪潮科学研究院有限公司 | 一种联邦学习加速方法、装置、设备及存储介质 |
CN116229210B (zh) * | 2023-02-23 | 2023-10-24 | 南通探维光电科技有限公司 | 目标检测模型训练方法、装置、设备和介质 |
CN116052064B (zh) * | 2023-04-03 | 2023-06-27 | 北京市农林科学院智能装备技术研究中心 | 鱼群摄食强度识别方法、装置、电子设备及投饵机 |
CN116362294B (zh) * | 2023-05-30 | 2023-09-12 | 深圳比特微电子科技有限公司 | 一种神经网络搜索方法、装置和可读存储介质 |
CN117058437B (zh) * | 2023-06-16 | 2024-03-08 | 江苏大学 | 一种基于知识蒸馏的花卉分类方法、系统、设备及介质 |
CN117079276B (zh) * | 2023-06-21 | 2024-02-09 | 江苏大学 | 一种基于知识蒸馏的语义分割方法、系统、设备及介质 |
CN116630950A (zh) * | 2023-07-25 | 2023-08-22 | 济南大学 | 一种高精度识别轮辋焊缝的方法 |
CN117034755B (zh) * | 2023-08-07 | 2024-06-18 | 兰州理工大学 | 一种融合多头注意力机制的冷轧钢力学性能预测方法 |
CN117135597A (zh) * | 2023-08-28 | 2023-11-28 | 重庆邮电大学 | 一种基于分布式学习的智能网联汽车低时延数据共享方法 |
CN117313620B (zh) * | 2023-10-17 | 2024-03-15 | 华南理工大学 | 一种基于多任务深度学习符号回归的dtco公式建模方法 |
CN117786823B (zh) * | 2024-02-26 | 2024-05-03 | 陕西天润科技股份有限公司 | 一种基于建筑物单体化模型轻量化处理的方法 |
CN117808036B (zh) * | 2024-02-29 | 2024-04-30 | 浪潮电子信息产业股份有限公司 | 任务处理方法、装置、云边端系统、设备及介质 |
-
2021
- 2021-10-18 US US17/504,282 patent/US20220036194A1/en active Pending
-
2022
- 2022-09-16 JP JP2022147630A patent/JP2023060820A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220036194A1 (en) | 2022-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220036194A1 (en) | Deep neural network optimization system for machine learning model scaling | |
US20220035878A1 (en) | Framework for optimization of machine learning architectures | |
Lu et al. | Brain intelligence: go beyond artificial intelligence | |
WO2022083536A1 (zh) | 一种神经网络构建方法以及装置 | |
US20220036123A1 (en) | Machine learning model scaling system with energy efficient network data transfer for power aware hardware | |
US20220027792A1 (en) | Deep neural network model design enhanced by real-time proxy evaluation feedback | |
US20190392253A1 (en) | Object recognition with reduced neural network weight precision | |
US20190278600A1 (en) | Tiled compressed sparse matrix format | |
WO2021159714A1 (zh) | 一种数据处理方法及相关设备 | |
EP4145351A1 (en) | Neural network construction method and system | |
WO2023221928A1 (zh) | 一种推荐方法、训练方法以及装置 | |
US11205050B2 (en) | Learning property graph representations edge-by-edge | |
WO2022228425A1 (zh) | 一种模型训练方法及装置 | |
WO2022012668A1 (zh) | 一种训练集处理方法和装置 | |
US20220129320A1 (en) | Schedule-aware dynamically reconfigurable adder tree architecture for partial sum accumulation in machine learning accelerators | |
US20230229570A1 (en) | Graph machine learning for case similarity | |
WO2022156475A1 (zh) | 神经网络模型的训练方法、数据处理方法及装置 | |
Shen et al. | StructBoost: Boosting methods for predicting structured output variables | |
US20210264237A1 (en) | Processor for reconstructing artificial neural network, electrical device including the same, and operating method of processor | |
WO2023231753A1 (zh) | 一种神经网络的训练方法、数据的处理方法以及设备 | |
CN116011509A (zh) | 硬件感知的机器学习模型搜索机制 | |
WO2023273934A1 (zh) | 一种模型超参数的选择方法及相关装置 | |
WO2023122854A1 (zh) | 数据处理的方法和装置 | |
WO2023097428A1 (en) | Methods and apparatus to perform parallel double-batched self-distillation in resource-constrained image recognition applications | |
Do et al. | ImageNet classification with Raspberry Pis: federated learning algorithms of local classifiers |