(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-14
(54)【発明の名称】ハードウェアアクセラレータのためのニューラルアーキテクチャスケーリング
(51)【国際特許分類】
G06N 3/0985 20230101AFI20231207BHJP
G06N 3/048 20230101ALI20231207BHJP
G06N 3/0464 20230101ALI20231207BHJP
【FI】
G06N3/0985
G06N3/048
G06N3/0464
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023524743
(86)(22)【出願日】2021-07-29
(85)【翻訳文提出日】2023-05-23
(86)【国際出願番号】 US2021043674
(87)【国際公開番号】W WO2022154829
(87)【国際公開日】2022-07-21
(32)【優先日】2021-01-15
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-02-12
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】リー,アンドリュー
(72)【発明者】
【氏名】リー,ション
(72)【発明者】
【氏名】タン,ミンシン
(72)【発明者】
【氏名】パン,ルオミン
(72)【発明者】
【氏名】チェン,リチュン
(72)【発明者】
【氏名】リー,コック・ブイ
(72)【発明者】
【氏名】ジョピー,ノーマン・ポール
(57)【要約】
ハードウェアアクセラレータ上でニューラルネットワークアーキテクチャをスケーリングするための、コンピュータ読み取り可能な媒体を含む方法、システム、および装置。方法は、訓練データと、ターゲットコンピューティングリソースを指定する情報とを受信することと、訓練データを用いて探索空間のニューラルアーキテクチャ探索を実行して基本ニューラルネットワークのアーキテクチャを識別することとを含む。基本ニューラルネットワークをスケーリングするための複数のスケーリングパラメータ値が識別され得る。この識別は、複数のスケーリングパラメータ値候補を選択することと、複数のスケーリングパラメータ値候補に応じてスケーリングされた基本ニューラルネットワークの性能評価指標を決定することとを繰り返し実行することを含み得、性能評価指標は、レイテンシ目的を含む複数の第2目的に従った性能評価指標である。複数のスケーリングパラメータ値に応じてスケーリングされた基本ニューラルネットワークのアーキテクチャを用いて、スケーリングされたニューラルネットワークのアーキテクチャが決定され得る。
【特許請求の範囲】
【請求項1】
ニューラルネットワークのアーキテクチャを決定するための、コンピュータにより実施される方法であって、
1つ以上のプロセッサが、ターゲットコンピューティングリソースを指定する情報を受け付けることと、
前記1つ以上のプロセッサが、基本ニューラルネットワークのアーキテクチャを指定するデータを受信することと、
前記1つ以上のプロセッサが、前記ターゲットコンピューティングリソースを指定する情報と、前記基本ニューラルネットワークの複数のスケーリングパラメータとに応じて前記基本ニューラルネットワークをスケーリングするための複数のスケーリングパラメータ値を識別することとを含み、前記識別することは、
複数のスケーリングパラメータ値候補を選択することと、
前記複数のスケーリングパラメータ値候補に応じてスケーリングされた前記基本ニューラルネットワークの性能評価指標を決定することとを繰り返し実行することを含み、前記性能評価指標は、レイテンシ目的を含む複数の目的に応じて決定され、前記方法は、
前記1つ以上のプロセッサが、前記複数のスケーリングパラメータ値に応じてスケーリングされた前記基本ニューラルネットワークのアーキテクチャを用いて、スケーリングされたニューラルネットワークのアーキテクチャを生成することをさらに含む、方法。
【請求項2】
前記複数の目的は、複数の第2目的であり、
前記基本ニューラルネットワークのアーキテクチャを指定する前記データを受信することは、
1つ以上のプロセッサが、ニューラルネットワークタスクに対応する訓練データを受信することと、
前記1つ以上のプロセッサが、複数の第1目的に従って、前記訓練データを用いて探索空間のニューラルアーキテクチャ探索を実行して前記基本ニューラルネットワークのアーキテクチャを識別することとを含む、請求項1に記載の方法。
【請求項3】
前記探索空間は、ニューラルネットワーク層候補を含み、各ニューラルネットワーク候補層は、1つ以上の演算を実行するように構成され、
前記探索空間は、異なる活性化関数を含むニューラルネットワーク層候補を含む、請求項2に記載の方法。
【請求項4】
前記基本ニューラルネットワークのアーキテクチャは、複数のコンポーネント候補を含み、各コンポーネントは、複数のニューラルネットワーク層を有し、
前記探索空間は、第1の活性化関数を含むネットワーク層候補の第1コンポーネントと、前記第1の活性化関数とは異なる第2の活性化関数を含むネットワーク層候補の第2コンポーネントとを含む、ニューラルネットワーク層候補の複数のコンポーネント候補を含む、請求項3に記載の方法。
【請求項5】
前記ニューラルアーキテクチャ探索を実行するための前記複数の第1目的は、前記複数のスケーリングパラメータ値を識別するための前記複数の第2目的と同じである、請求項2に記載の方法。
【請求項6】
前記複数の第1目的および前記複数の第2目的は、前記訓練データを用いて訓練されたときの前記基本ニューラルネットワークの出力の正解率に対応する正解率目的を含む、請求項2に記載の方法。
【請求項7】
前記性能評価指標は、前記基本ニューラルネットワークが前記複数のスケーリングパラメータ値候補に応じてスケーリングされ、前記ターゲットコンピューティングリソース上にデプロイされたときの前記基本ニューラルネットワークが入力を受け付けることと、出力を生成することとの間のレイテンシの評価指標に少なくとも一部対応する、請求項1に記載の方法。
【請求項8】
前記レイテンシ目的は、前記基本ニューラルネットワークが前記ターゲットコンピューティングリソース上にデプロイされたときの前記基本ニューラルネットワークが入力を受け付けることと、出力を生成することとの間の最小レイテンシに対応する、請求項1に記載の方法。
【請求項9】
前記ターゲットコンピューティングリソースを指定する情報は、1つ以上のハードウェアアクセラレータを指定し、
前記スケーリングされたニューラルネットワークを前記1つ以上のハードウェアアクセラレータ上で実行して前記ニューラルネットワークタスクを実行することをさらに含む、請求項1に記載の方法。
【請求項10】
前記ターゲットコンピューティングリソースは、第1のターゲットコンピューティングリソースであり、前記複数のスケーリングパラメータ値は、複数の第1スケーリングパラメータ値であり、
前記方法は、
前記1つ以上のプロセッサが、前記第1のターゲットコンピューティングリソースとは異なる第2のターゲットコンピューティングリソースを指定する情報を受信することと、
前記第2のターゲットコンピューティングリソースを指定する情報に応じて前記基本ニューラルネットワークをスケーリングするための複数の第2スケーリングパラメータ値を識別することとをさらに含み、前記複数の第2スケーリングパラメータ値は、前記複数の第1スケーリングパラメータ値とは異なる、請求項9に記載の方法。
【請求項11】
前記複数のスケーリングパラメータ値は、複数の第1スケーリングパラメータ値であり、
前記方法は、複数の第2スケーリングパラメータ値を用いてスケーリングされた前記基本ニューラルネットワークアーキテクチャから、スケーリングされたニューラルネットワークアーキテクチャを生成することをさらに含み、前記第2スケーリングパラメータ値は、前記複数の第1スケーリングパラメータ値と、前記第1スケーリングパラメータ値の各々の値を均一に変更する1つ以上の複合係数に応じて生成される、請求項1に記載の方法。
【請求項12】
前記基本ニューラルネットワークは、畳み込みニューラルネットワークであり、前記複数のスケーリングパラメータは、前記基本ニューラルネットワークの深さ、前記基本ニューラルネットワークの幅、前記基本ニューラルネットワークの入力の分解能のうち、1つ以上を含む、請求項1に記載の方法。
【請求項13】
システムであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサに連結された、命令を格納した1つ以上の記憶装置とを備え、前記命令は、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、ニューラルネットワークのアーキテクチャを決定するための動作を実行させ、前記動作は、
ターゲットコンピューティングリソースを指定する情報を受け付ける動作と、
基本ニューラルネットワークのアーキテクチャを指定するデータを受信する動作と、
前記ターゲットコンピューティングリソースを指定する情報と、前記基本ニューラルネットワークの複数のスケーリングパラメータとに応じて前記基本ニューラルネットワークをスケーリングするための複数のスケーリングパラメータ値を識別する動作とを含み、前記識別する動作は、
複数のスケーリングパラメータ値候補を選択することと、
前記複数のスケーリングパラメータ値候補に応じてスケーリングされた前記基本ニューラルネットワークの性能評価指標を決定することとを繰り返し実行することを含み、前記性能評価指標は、レイテンシ目的を含む複数の目的に応じて決定され、前記動作は、さらに、
前記複数のスケーリングパラメータ値に応じてスケーリングされた前記基本ニューラルネットワークのアーキテクチャを用いて、スケーリングされたニューラルネットワークのアーキテクチャを生成する動作を含む、システム。
【請求項14】
前記複数の目的は、複数の第2目的であり、
前記基本ニューラルネットワークのアーキテクチャを指定する前記データを受信する動作は、
ニューラルネットワークタスクに対応する訓練データを受信することと、
複数の第1目的に従って、前記訓練データを用いて探索空間のニューラルアーキテクチャ探索を実行して前記基本ニューラルネットワークのアーキテクチャを識別することとを含む、請求項13に記載のシステム。
【請求項15】
前記探索空間は、ニューラルネットワーク層候補を含み、各ニューラルネットワーク候補層は、1つ以上の演算を実行するように構成され、
前記探索空間は、異なる活性化関数を含むニューラルネットワーク層候補を含む、請求項14に記載のシステム。
【請求項16】
前記ニューラルアーキテクチャ探索を実行するための前記複数の第1目的は、前記複数のスケーリングパラメータ値を識別するための前記複数の第2目的と同じである、請求項14に記載のシステム。
【請求項17】
前記複数の第1目的および前記複数の第2目的は、前記訓練データを用いて訓練されたときの前記基本ニューラルネットワークの出力の前記正解率に対応する正解率目的を含む、請求項14に記載のシステム。
【請求項18】
前記性能評価指標は、前記基本ニューラルネットワークが前記複数のスケーリングパラメータ値候補に応じてスケーリングされ、前記ターゲットコンピューティングリソース上にデプロイされたときの前記基本ニューラルネットワークが入力を受け付けることと、出力を生成することとの間のレイテンシの評価指標に少なくとも一部対応する、請求項13に記載のシステム。
【請求項19】
前記レイテンシ目的は、前記基本ニューラルネットワークが前記ターゲットコンピューティングリソース上にデプロイされたときの前記基本ニューラルネットワークが入力を受け付けることと、出力を生成することとの間の最小レイテンシに対応する、請求項13に記載のシステム。
【請求項20】
命令を格納した1つ以上の非一時的なコンピュータ読み取り可能な記憶媒体であって、前記命令は、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、ニューラルネットワークのアーキテクチャを決定するための動作を実行させ、前記動作は、
ターゲットコンピューティングリソースを指定する情報を受け付ける動作と、
前記1つ以上のプロセッサが、基本ニューラルネットワークのアーキテクチャを指定するデータを受信する動作と、
前記ターゲットコンピューティングリソースを指定する情報と、前記基本ニューラルネットワークの複数のスケーリングパラメータとに応じて前記基本ニューラルネットワークをスケーリングするための複数のスケーリングパラメータ値を識別する動作とを含み、前記識別する動作は、
複数のスケーリングパラメータ値候補を選択することと、
前記複数のスケーリングパラメータ値候補に応じてスケーリングされた前記基本ニューラルネットワークの性能評価指標を決定することとを繰り返し実行することを含み、前記性能評価指標は、レイテンシ目的を含む複数の目的に応じて決定され、前記動作は、さらに、
前記複数のスケーリングパラメータ値に応じてスケーリングされた前記基本ニューラルネットワークのアーキテクチャを用いて、スケーリングされたニューラルネットワークのアーキテクチャを生成する動作を含む、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
関連出願の相互参照
本願は、2021年1月15日に出願された米国特許出願第63/137,926号の利益を米国特許法第119条(e)の下で主張する2021年2月12日に出願された米国特許出願第17,175,029号の継続出願であり、その開示内容を引用により本明細書に援用する。
【0002】
背景
ニューラルネットワークは、受け付けた入力に対する出力を予測するための非線形演算の1つ以上の層を含む機械学習モデルである。入力層および出力層に加えて、1つ以上の隠れ層を含むニューラルネットワークもある。各隠れ層の出力は、ニューラルネットワークの別の隠れ層または出力層に入力され得る。ニューラルネットワークの各層は、その層の1つ以上のモデルパラメータの値に応じて、受け付けた入力から各出力を生成できる。モデルパラメータは、訓練アルゴリズムによって決定される、ニューラルネットワークに正確な出力を生成させるための重みまたはバイアスであり得る。
【発明の概要】
【0003】
概要
本発明の態様に従って実装されたシステムは、各候補の計算要件(たとえば、FLOPS)、演算強度、および実行効率に応じてニューラルネットワークアーキテクチャ候補を探索することによって、ニューラルネットワークアーキテクチャのレイテンシを減らすことができる。本明細書において説明するように、計算要件単体では推論時のレイテンシを含むレイテンシに影響を与えるのとは対照的に、計算要件、演算強度、および実行効率は、ターゲットコンピューティングリソース上のニューラルネットワークのレイテンシの根本的な原因であることがわかった。本開示の態様は、この観測されたレイテンシと計算との関係、演算強度、および実行効率に基づいて、レイテンシを意識した複合スケーリングによって、そしてニューラルネットワーク候補を探索する空間を拡張することによってニューラルアーキテクチャ探索およびスケーリングを実行するための技術を可能にする。
【0004】
さらには、システムは、複数の目的に応じてニューラルネットワークの複数のパラメータを均一にスケーリングするための複合スケーリングを実行できる。これにより、1つの目的が考慮される手法やニューラルネットワークのスケーリングパラメータが別個に探索される手法よりも、スケーリングされたニューラルネットワークのパフォーマンスが改善できる。レイテンシを意識した複合スケーリングを用いて、最初のスケーリングされたニューラルネットワークアーキテクチャからの異なる値に応じてスケーリングされ、かつ、異なるユースケースに適し得るニューラルネットワークアーキテクチャのファミリーを素早く構築することができる。
【0005】
本開示の態様によると、1つのコンピュータにより実施される方法は、ニューラルネットワークのアーキテクチャを決定するための方法を含む。この方法は、1つ以上のプロセッサが、ニューラルネットワークタスクに対応する訓練データと、ターゲットコンピューティングリソースを指定する情報とを受信することと、1つ以上のプロセッサが、複数の第1目的に従って、訓練データを用いて探索空間のニューラルアーキテクチャ探索を実行して基本ニューラルネットワークのアーキテクチャを識別することと、1つ以上のプロセッサが、ターゲットコンピューティングリソースを指定する情報と、基本ニューラルネットワークの複数のスケーリングパラメータとに応じて基本ニューラルネットワークをスケーリングするための複数のスケーリングパラメータ値を識別することとを含む。識別することは、複数のスケーリングパラメータ値候補を選択することと、複数のスケーリングパラメータ値候補に応じてスケーリングされた基本ニューラルネットワークの性能評価指標を決定することとを繰り返し実行することを含み、性能評価指標は、レイテンシ目的を含む複数の第2目的に従って決定される。方法は、1つ以上のプロセッサが、複数のスケーリングパラメータ値に応じてスケーリングされた基本ニューラルネットワークのアーキテクチャを用いて、スケーリングされたニューラルネットワークのアーキテクチャを生成することをさらに含み得る。
【0006】
上記およびその他の実施態様は、各々、必要に応じて下記の特徴のうち1つ以上を単体または組み合わせて含み得る。
【0007】
ニューラルアーキテクチャ探索を実行する複数の第1目的は、複数のスケーリングパラメータ値を識別するための複数の第2目的と同じであり得る。
【0008】
複数の第1目的および複数の第2目的は、基本ニューラルネットワークの出力の正解率に対応する正解率目的を含み得る。
【0009】
性能評価指標は、基本ニューラルネットワークが複数のスケーリングパラメータ値候補に応じてスケーリングされ、ターゲットコンピューティングリソース上にデプロイされたときの基本ニューラルネットワークが入力を受け付けることと、出力を生成することとの間のレイテンシの評価指標に少なくとも一部対応し得る。
【0010】
レイテンシ目的は、基本ニューラルネットワークがターゲットコンピューティングリソース上にデプロイされたときの基本ニューラルネットワークが入力を受け付けることと、出力を生成することとの間の最小レイテンシに対応し得る。
【0011】
探索空間は、ニューラルネットワーク層候補を含み得、各ニューラルネットワーク候補層は、1つ以上の演算を実行するように構成される。探索空間は、異なる活性化関数を含むニューラルネットワーク層候補を含み得る。
【0012】
基本ニューラルネットワークのアーキテクチャは、複数のコンポーネント候補を含み得、各コンポーネントは、複数のニューラルネットワーク層を有する。探索空間は、第1の活性化関数を含むネットワーク層候補の第1コンポーネントと、第1の活性化関数とは異なる第2の活性化関数を含むネットワーク層候補の第2コンポーネントとを含む、ニューラルネットワーク層候補の複数のコンポーネント候補を含み得る。
【0013】
ターゲットコンピューティングリソースを指定する情報は、1つ以上のハードウェアアクセラレータを指定し得、方法は、スケーリングされたニューラルネットワークを1つ以上のハードウェアアクセラレータ上で実行してニューラルネットワークタスクを実行することをさらに含む。
【0014】
ターゲットコンピューティングリソースは、第1のターゲットコンピューティングリソースを含み得、複数のスケーリングパラメータ値は、複数の第1スケーリングパラメータ値であり、方法は、1つ以上のプロセッサが、第1のターゲットコンピューティングリソースとは異なる第2のターゲットコンピューティングリソースを指定する情報を受信することと、第2のターゲットコンピューティングリソースを指定する情報に応じて基本ニューラルネットワークをスケーリングするための複数の第2スケーリングパラメータ値を識別することとをさらに含み得、複数の第2スケーリングパラメータ値は、複数の第1スケーリングパラメータ値とは異なる。
【0015】
複数のスケーリングパラメータ値は、複数の第1スケーリングパラメータ値であり、方法は、複数の第2スケーリングパラメータ値を用いてスケーリングされた基本ニューラルネットワークアーキテクチャから、スケーリングされたニューラルネットワークアーキテクチャを生成することをさらに含み、第2スケーリングパラメータ値は、複数の第1スケーリングパラメータ値と、第1スケーリングパラメータ値の各々の値を均一に変更する1つ以上の複合係数に応じて生成される。
【0016】
基本ニューラルネットワークは、畳み込みニューラルネットワークであり得、複数のスケーリングパラメータは、基本ニューラルネットワークの深さ、基本ニューラルネットワークの幅、基本ニューラルネットワークの入力の分解能のうち、1つ以上を含み得る。
【0017】
別の態様によると、ニューラルネットワークのアーキテクチャを決定するための方法は、1つ以上のプロセッサが、ターゲットコンピューティングリソースを指定する情報を受け付けることと、1つ以上のプロセッサが、基本ニューラルネットワークのアーキテクチャを指定するデータを受信することと、1つ以上のプロセッサが、ターゲットコンピューティングリソースを指定する情報と、基本ニューラルネットワークの複数のスケーリングパラメータとに応じて基本ニューラルネットワークをスケーリングするための複数のスケーリングパラメータ値を識別することとを含む。識別することは、複数のスケーリングパラメータ値候補を選択することと、複数のスケーリングパラメータ値候補に応じてスケーリングされた基本ニューラルネットワークの性能評価指標を決定することとを繰り返し実行することを含み、性能評価指標は、レイテンシ目的を含む複数の目的に応じて決定され、方法は、1つ以上のプロセッサが、複数のスケーリングパラメータ値に応じてスケーリングされた基本ニューラルネットワークのアーキテクチャを用いて、スケーリングされたニューラルネットワークのアーキテクチャを生成することをさらに含む。
【0018】
複数の目的は、複数の第2目的であり得、基本ニューラルネットワークのアーキテクチャを指定するデータを受信することは、1つ以上のプロセッサが、ニューラルネットワークタスクに対応する訓練データを受信することと、1つ以上のプロセッサが、複数の第1目的に従って、訓練データを用いて探索空間のニューラルアーキテクチャ探索を実行して基本ニューラルネットワークのアーキテクチャを識別することとを含み得る。
【0019】
その他の実施態様は、前記方法の動作を実行するように各々が構成されたコンピュータシステムと、装置と、1つ以上のコンピュータ記憶装置上に記録されたコンピュータプログラムとを含む。
【図面の簡単な説明】
【0020】
【
図1】デプロイされたニューラルネットワークが動作するハードウェアアクセラレータが収容されているデータセンターにおいてデプロイするための、スケーリングされたニューラルネットワークアーキテクチャのファミリーを示すブロック図である。
【
図2】ターゲットコンピューティングリソース上で実行するためのスケーリングされたニューラルネットワークアーキテクチャを生成するための例示的なプロセスのフロー図である。
【
図3】基本ニューラルネットワークアーキテクチャのレイテンシを意識した複合スケーリングの例示的なプロセスである。
【
図4】本開示の態様に係る、NAS-LACS(ニューラルアーキテクチャ探索-レイテンシを意識した複合スケーリング)システムのブロック図である。
【
図5】NAS-LACSシステムを実装するための例示的な環境のブロック図である。
【発明を実施するための形態】
【0021】
詳細な説明
概要
本明細書に記載のテクノロジーは、概して、異なるハードウェアアクセラレータなど、異なるターゲットコンピューティングリソース上で実行するためのニューラルネットワークをスケーリングすることに関する。ニューラルネットワークは、複数の異なるパフォーマンス目的に応じてスケーリングされ得る。これらのパフォーマンス目的は、処理時間(本明細書において、レイテンシと称する)を最小限に抑える目的と、ターゲットコンピューティングリソース上で実行するためにスケーリングされたときのニューラルネットワークの正解率を最大化する目的という別個の目的を含み得る。
【0022】
一般に、1つ以上の目的に応じてアーキテクチャ候補から構成される所与の探索空間からニューラルネットワークアーキテクチャを選択するためのNAS(ニューラルアーキテクチャ探索)システムがデプロイされ得る。1つの共通する目的は、ニューラルネットワークの正解率である。一般に、NAS技術を実装するシステムは、正解率が低いネットワークよりも、訓練後に正解率が高くなるネットワークを好む。NASに続いて基本ニューラルネットワークが選択された後、1つ以上のスケーリングパラメータに応じて基本ニューラルネットワークがスケーリングされ得る。スケーリングは、たとえば、数字から構成される係数探索空間にあるスケーリングパラメータを探索することによって、基本ニューラルネットワークをスケーリングするための1つ以上スケーリングパラメータ値を探索することを含み得る。スケーリングは、ニューラルネットワークをデプロイするために利用可能な計算リソースおよび/またはメモリリソースを有効活用するために、ニューラルネットワークが有する層の数または各層のサイズを増やしたり減らしたりすることを含み得る。
【0023】
ニューラルアーキテクチャ探索およびスケーリングに関して共通して抱かれている考えは、ニューラルネットワークを通った入力を処理するために必要とされる、たとえばFLOPS(1秒当たりの浮動小数点演算)で測定されるネットワークの計算要件は、ネットワークに入力を送信することと、出力を受け付けることとの間のレイテンシに比例するという考えである。すなわち、計算要件が低い(低FLOPS)ニューラルネットワークは、ネットワークの計算要件が高い(高FLOPS)場合よりも高速に出力を生成すると信じられている。なぜならば、全体として実行される演算が少ないためである。よって、多くのNASシステムは、計算要件が低いニューラルネットワークを選択する。しかしながら、演算強度、並列性、および実行効率などニューラルネットワークのその他の特徴がニューラルネットワークの全体的なレイテンシに影響を与える可能性があるので、計算要件とレイテンシとの関係は比例しないことが明らかになっている。
【0024】
本明細書において説明するテクノロジーは、LACS(レイテンシを意識した複合スケーリング)と、ニューラルネットワークが選択されるニューラルネットワーク候補探索空間の拡張とを可能にする。探索空間を拡張するという状況では、演算およびアーキテクチャが探索空間に含まれ得る。当該演算およびアーキテクチャは、これらを加えることで、様々な種類のハードウェアアクセラレータ上でデプロイするのに適したより高度な演算強度、実行効率、および並列性がもたらされるという点で、「ハードウェアアクセラレータフレンドリーな」演算およびアーキテクチャである。このような演算は、space-to-depth(空間から深さへの)演算、space-to-batch(空間からバッチへの)演算、融合された畳み込み構造、およびコンポーネントごとの探索活性化関数を含み得る。
【0025】
ニューラルネットワークのレイテンシを意識した複合スケーリングは、レイテンシに応じて最適化を実行しない従来の手法よりも、ニューラルネットワークのスケーリングを改善できる。その代わりに、LACSを用いて、正確かつターゲットコンピューティングリソース上で低レイテンシで動作するスケーリングされたニューラルネットワークのスケーリングされたパラメータ値を識別してもよい。
【0026】
このテクノロジーは、さらに、NASまたは同様の技術を用いてニューラルアーキテクチャを探索する目的を共有する多目的スケーリングを可能にする。スケーリングされたニューラルネットワークは、基本ニューラルネットワークを探索する際に用いられた目的と同じ目的に応じて識別可能である。その結果、基本アーキテクチャ探索およびスケーリングという各ステージを別個の目的を有するタスクとして扱うのではなく、スケーリングされたニューラルネットワークをこれら2つのステージにおけるパフォーマンスに最適化させることができる。
【0027】
LACSを既存のNASシステムと一体化できる。なぜならば、少なくとも、スケーリングされたニューラルネットワークアーキテクチャを決定するためのエンドツーエンドシステムを構築するために、探索およびスケーリングの両方に対して同じ目的を使用できるためである。さらには、スケーリングされたニューラルネットワークアーキテクチャのファミリーを、searching-without-scaling手法よりも高速で識別できる。searching-without-scaling手法では、ニューラルネットワークアーキテクチャを探索するが、ターゲットコンピューティングリソース上にデプロイするためのスケーリングは行わない。
【0028】
本明細書において説明するテクノロジーは、LACSを使わない従来のsearch-and-scaling(サーチおよびスケーリング)手法で識別されるニューラルネットワークよりも改善したニューラルネットワークを可能にし得る。これに加えて、モデルの正解率および推論レイテンシのような目的間のトレードオフが異なるニューラルネットワークのファミリーを、様々なユースケースに適用するために素早く生成できる。また、このテクノロジーは、特定のタスクを実行するためのニューラルネットワークをより高速で識別し得るが、識別されたニューラルネットワークは、その他の手法を用いて識別されたニューラルネットワークよりも向上した正解率で機能し得る。これは、少なくとも、本明細書において説明する探索およびスケーリングを実行した結果識別されるニューラルネットワークが、単にネットワークの計算要件だけを考慮するのではなく、レイテンシに影響を与える可能性のある演算強度および実行効率のような特性を考慮するためである。このようにすれば、識別されたニューラルネットワークは、推論時、ネットワークの正解率を犠牲にすることなく、より高速で動作できる。
【0029】
このテクノロジーは、さらに、向上したコンピューティングリソース環境に既存のニューラルネットワークを素早く移行させるための一般に適用可能なフレームワークを可能にし得る。たとえば、特定のハードウェアを有するデータセンター用に選択された既存のニューラルネットワークの実行を、異なるハードウェアを用いるデータセンターに移行するときに、本明細書において説明するLACSおよびNASを適用できる。この点に関して、既存のニューラルネットワークのタスクを実行するためのニューラルネットワークのファミリーを素早く識別し、新しいデータセンターハードウェア上にデプロイすることができる。この応用方法は、コンピュータビジョンにおけるタスクまたはその他の画像処理タスクをネットワークが実行するなど、効率よく実行するために最先端のハードウェアを必要とする高速デプロイメントの分野で特に有用になり得る。
【0030】
図1は、ハードウェアアクセラレータ116が収容されているデータセンター115にデプロイするためのスケーリングされたニューラルネットワークアーキテクチャ104A~104Nのファミリー103のブロック図である。ハードウェアアクセラレータ116上では、デプロイされたニューラルネットワークが動作する。ハードウェアアクセラレータ116は、CPU、GPU、FGPAなどの任意の種類のプロセッサ、またはTPUなどのASICであり得る。本開示の態様によると、スケーリングされたニューラルネットワークアーキテクチャのファミリー103は、基本ニューラルネットワークアーキテクチャ101から生成され得る。
【0031】
ニューラルネットワークのアーキテクチャは、ニューラルネットワークを識別する特性を指す。たとえば、アーキテクチャは、1つのネットワークを構成する複数の異なるニューラルネットワーク層の特性、これらの層が入力をどのように処理するか、これらの層が互いにどのようにやり取りするかなどを含み得る。たとえば、ConvNet(畳み込みニューラルネットワーク)のアーキテクチャは、入力された画像データを受信する離散畳み込み層を規定し、次にプーリング層を規定し、次に、入力された画像データの内容を分類するなどニューラルネットワークタスクに従って出力を生成する全結合層を規定できる。また、ニューラルネットワークのアーキテクチャは、各層内で実行される演算の種類も規定できる。たとえば、ConvNetのアーキテクチャは、ネットワークの全結合層においてReLU活性化関数を使用すると規定し得る。
【0032】
NASを用いて、基本ニューラルネットワークアーキテクチャ101を目的のセットに応じて識別できる。ニューラルネットワークアーキテクチャ候補から構成される探索空間から、NASを用いて、基本ニューラルネットワークアーキテクチャ101を目的のセットに応じて識別できる。本明細書においてさらに詳細に説明するが、ニューラルネットワークアーキテクチャ候補から構成される探索空間は、それぞれ異なるネットワークコンポーネント、それぞれ異なる演算、および目的を満たす基本ネットワークが識別され得るそれぞれ異なる層を含むように拡張できる。
【0033】
また、基本ニューラルネットワークアーキテクチャ101を識別するために用いられる目的のセットを適用して、ファミリー103にあるニューラルネットワーク104A~104Nごとにスケーリングパラメータ値を識別することもできる。基本ニューラルネットワークアーキテクチャ101、およびスケーリングされたニューラルネットワークアーキテクチャ104A~104Nは、パラメータの数によって特徴付けられ得る。これらのパラメータは、スケーリングされたニューラルネットワークアーキテクチャ104A~104Nにおいて様々な程度にスケーリングされる。
図1では、ニューラルネットワーク101、104Aは、ニューラルネットワークにある層の数を示すDと、ニューラルネットワーク層の幅またはニューラルネットワーク層内のニューロンの数を示すWと、ニューラルネットワークによって所与の層において処理される入力のサイズを示すR、という3つのスケーリングパラメータを有すると示されている。
【0034】
本明細書においてさらに詳細に説明するが、LACSを実行するように構成されたシステムは、係数探索空間108を探索してスケーリングパラメータ値の複数のセットを識別できる。各スケーリングパラメータ値は、係数探索空間にある係数であり、たとえば、正の実数のセットであり得る。各ネットワーク候補107A~107Nは、係数探索空間108における探索の一部として識別された係数値候補に応じて基本ニューラルネットワーク101からスケーリングされる。システムは、パレートフロンティア探索またはグリッドサーチなど、係数候補を識別するための任意の様々な探索技術を適用可能である。ネットワーク候補107A~107Nごとに、システムは、ニューラルネットワークタスクを実行する際の当該ネットワーク候補の性能評価指標を評価できる。性能評価指標は、複数の目的に基づき得、入力を受け付けることと、ニューラルネットワークタスクの実行の一部として対応する出力を生成することとの間のネットワーク候補のレイテンシを測定するというレイテンシ目的を含む。
【0035】
係数探索空間108に対してスケーリングパラメータ値探索が実行された後、システムは、スケーリングされたニューラルネットワークアーキテクチャ109を受け付け得る。スケーリングされたニューラルネットワークアーキテクチャ109は、係数探索空間における探索中に識別されたネットワーク候補107A~107Nの最大性能評価指標をもたらすスケーリングパラメータ値を用いて、基本ニューラルネットワーク101からスケーリングされる。
【0036】
スケーリングされたニューラルネットワークアーキテクチャ109から、システムは、スケーリングされたニューラルネットワークアーキテクチャ104A~104Nのファミリー103を生成できる。ファミリー103は、スケーリングされたニューラルネットワークアーキテクチャ109をそれぞれ異なる値に応じてスケーリングすることによって生成できる。スケーリングされたニューラルネットワークアーキテクチャ109の各スケーリングパラメータ値を均一にスケーリングして、ファミリー103に含まれる他のスケーリングされたニューラルネットワークアーキテクチャを生成できる。たとえば、スケーリングされたニューラルネットワークアーキテクチャ109の各スケーリングパラメータ値は、各スケーリングパラメータ値を2倍に増やすことによってスケーリングできる。スケーリングされたニューラルネットワークアーキテクチャ109の各スケーリングパラメータ値に均一に適用されるそれぞれ異なる値-または「複合係数」について、スケーリングされたニューラルネットワークアーキテクチャ109をスケーリングできる。いくつかの実施態様では、スケーリングされたニューラルネットワークアーキテクチャ109を、たとえば各スケーリングパラメータ値を別個にスケーリングすることによってなど別の方法でスケーリングして、ファミリー103に含まれるスケーリングされたニューラルネットワークアーキテクチャを生成する。
【0037】
スケーリングされたニューラルネットワークアーキテクチャ109をそれぞれ異なる値に応じてスケーリングすることによって、様々なユースケースに応じてタスクを実行するためのそれぞれ異なるニューラルネットワークアーキテクチャを素早く生成することができる。当該異なるユースケースは、スケーリングされたニューラルネットワークアーキテクチャ109を識別するために用いられる複数の目的間の異なるトレードオフとして指定され得る。たとえば、あるスケーリングされたニューラルネットワークアーキテクチャは、実行中のレイテンシが大きいという犠牲を伴って、より高い正解率のしきい値を満たすと識別され得る。別のスケーリングされたニューラルネットワークアーキテクチャは、より低い正解率のしきい値を満たすと識別され得るが、ハードウェアアクセラレータ116上で低レイテンシで実行できる。別のスケーリングされたニューラルネットワークアーキテクチャは、ハードウェアアクセラレータ116上の正解率とレイテンシとのトレードオフのバランスを取ると識別され得る。
【0038】
例として、物体認識などのコンピュータビジョンタスクを実行するために、アプリケーションが連続して映像データまたは画像データならびに受信データにある特定のクラスの物体を識別するタスクを受け付けることの一部として、ニューラルネットワークアーキテクチャは、出力をリアルタイムまたはほぼリアルタイムで生成する必要があるであろう。この例示的なタスクでは、正解率の許容値は低い可能性があるので、低レイテンシおよび低正解率についての適切なトレードオフでスケーリングされたニューラルネットワークアーキテクチャがデプロイされてタスクを実行し得る。
【0039】
別の例として、ニューラルネットワークアーキテクチャは、画像データまたは映像データから受信したシーンにあるすべての物体を分類するタスクが課せられ得る。この例では、この例示的なタスクを実行する際のレイテンシが当該タスクを精度高く実行することと同じくらい重要であると考慮されていない場合、レイテンシを犠牲にした正解率の高いスケーリングされたニューラルネットワークがデプロイされ得る。その他の例では、正解率と、レイテンシと、その他の目的との間のトレードオフのバランスを取るスケーリングされたニューラルネットワークアーキテクチャがデプロイされ得る。ここでは、ニューラルネットワークタスクを実行する際、特定のトレードオフは識別されたり所望されたりしない。
【0040】
スケーリングされたニューラルネットワークアーキテクチャ104Nは、スケーリングされたニューラルネットワーク104Aを取得するためにスケーリングされたニューラルネットワークアーキテクチャ109をスケーリングするのに用いられたスケーリングパラメータ値とは異なるスケーリングパラメータ値を用いてスケーリングされ、異なるユースケース、たとえば、推論時にレイテンシよりも正解率が所望されるユースケースを表し得る。
【0041】
本明細書において説明するLACSおよびNAS技術は、ハードウェアアクセラレータ116のファミリー103を生成し、さらなる訓練データと、異なる種類のハードウェアアクセラレータなど複数の異なるコンピューティングリソースを指定する情報とを受信し得る。ハードウェアアクセラレータ116のファミリー103を生成することに加えて、システムは、基本ニューラルネットワークアーキテクチャを探索し、他のハードウェアアクセラレータについて、スケーリングされたニューラルネットワークアーキテクチャのファミリーを生成し得る。たとえば、GPUおよびTPUの場合、システムは、GPUとTPUそれぞれについての正解率とレイテンシとのトレードオフに最適化させた別個のモデルファミリーを生成し得る。いくつかの実施態様では、システムは、同じ基本ニューラルネットワークアーキテクチャから、複数のスケーリングされたファミリーを生成し得る。
【0042】
例示的な方法
図2は、ターゲットコンピューティングリソース上で実行するためのスケーリングされたニューラルネットワークアーキテクチャを生成するための例示的なプロセス200のフロー図である。例示的なプロセス200は、1つ以上の場所にある1つ以上のプロセッサから構成されるシステム上で実行され得る。たとえば、本明細書において説明するNAS-LACS(ニューラルアーキテクチャ探索-レイテンシを意識した複合スケーリング)システムは、プロセス200を実行し得る。
【0043】
ブロック210に示すように、システムは、ニューラルネットワークタスクに対応する訓練データを受信する。ニューラルネットワークタスクは、ニューラルネットワークによって実行され得る機械学習タスクである。スケーリングされたニューラルネットワークは、任意の種類のデータ入力を受け付けて、ニューラルネットワークタスクを実行するための出力を生成するように構成され得る。例として、出力は、入力に基づいて出力される任意の種類のスコア、クラス分類、または回帰であり得る。これに対応して、ニューラルネットワークタスクは、与えられた入力に対する出力を予測するためのスコアリングタスク、クラス分類タスク、および/または回帰タスクであり得る。これらのタスクは、画像、映像、テキスト、音声、またはその他の種類のデータを処理する際の様々なアプリケーションに対応し得る。
【0044】
受け付けた訓練データは、様々な学習技術のうち1つの学習技術に応じて、ニューラルネットワークを訓練するのに適した任意の形式であり得る。ニューラルネットワークを訓練するための学習技術は、教師あり学習技術、教師なし学習技術、および半教師あり学習技術を含み得る。たとえば、訓練データは、ニューラルネットワークが入力として受け付け得る複数の訓練例を含み得る。訓練例は、特定のニューラルネットワークタスクを実行するように適切に訓練されたニューラルネットワークによって生成されることになっている出力に対応する既知の出力でラベル付けされ得る。たとえば、ニューラルネットワークタスクがクラス分類タスクである場合、訓練例は、画像に描かれている被写体を分類分けする1つ以上のクラスでラベル付けされた画像であり得る。
【0045】
ブロック220に示すように、システムは、ターゲットコンピューティングリソースを指定する情報を受け付ける。ターゲットコンピューティングリソースのデータは、ニューラルネットワークの少なくとも一部がデプロイされ得るコンピューティングリソースの特性を指定し得る。コンピューティングリソースは、様々な種類のハードウェアデバイスをホストしている1つ以上のデータセンターまたはその他の物理的位置に収容され得る。ハードウェアの種類として、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、エッジコンピューティングデバイスまたはモバイルコンピューティングデバイス、FGPA(Field Programmable Gate Array)、および様々な種類のASIC(Application-Specific Circuit)などが挙げられる。
【0046】
ハードウェアアクセラレーションのために構成され得るデバイスもあり、特定の種類の演算を効率よく実行するために構成されたデバイスを含み得る。たとえばGPUとTPU(Tensor Processing Unit)とを含むこれらのハードウェアアクセラレータは、ハードウェアアクセラレーションの特殊機能を実施し得る。ハードウェアアクセラレーションの機能として、行列乗算など、機械学習モデルの実行に共通して関連する演算を実行するための構成などを挙げることができる。また、例として、これらの特殊機能は、異なる種類のGPUにおいて利用可能な行列積和ユニット、およびTPUにおいて利用可能な行列積ユニットを含み得る。
【0047】
ターゲットコンピューティングリソースのデータは、1つ以上のターゲットコンピューティングリソースセットについてのデータを含み得る。ターゲットコンピューティングリソースセットは、ニューラルネットワークをデプロイしたいコンピューティングデバイスの集まりを指す。ターゲットコンピューティングリソースセットを指定する情報は、ターゲットセットに含まれるハードウェアアクセラレータまたはその他のコンピューティングデバイスの種類および量を指し得る。ターゲットセットは、同じ種類または異なる種類のデバイスを含み得る。たとえば、ターゲットコンピューティングリソースセットは、処理能力、スループット、およびメモリ容量を含む、特定の種類のハードウェアアクセラレータのハードウェア特性および量を規定し得る。本明細書において説明したように、システムは、ターゲットコンピューティングリソースセットにおいて指定されたデバイスごとに、スケーリングされたニューラルネットワークアーキテクチャのファミリーを生成し得る。
【0048】
これに加えて、ターゲットコンピューティングリソースのデータは、異なるターゲットコンピューティングリソースセットを指定し得、たとえば、データセンターに収容されているコンピューティングリソースのそれぞれ異なる可能な構成を反映している。この訓練およびターゲットコンピューティングリソースのデータから、システムは、ニューラルネットワークアーキテクチャのファミリーを生成し得る。各アーキテクチャは、システムが識別した基本ニューラルネットワークから生成され得る。
【0049】
ブロック230に示すように、システムは、訓練データを用いて、探索空間に対してニューラルアーキテクチャ探索を実行し、基本ニューラルネットワークのアーキテクチャを識別し得る。システムは、強化学習、進化的探索、または微分可能探索に基づく技術など、様々なNAS技術のいずれも使用し得る。いくつかの実施態様では、システムは、たとえば、本明細書において説明するように訓練データを受け付けてNASを実行することなく、基本ニューラルネットワークのアーキテクチャを指定するデータを直接受け付けてもよい。たとえば、特定のニューラルネットワークタスクを実行するのに適したニューラルネットワークアーキテクチャの種類の解析に基づいて、最初のニューラルネットワークアーキテクチャ候補を予め定めることができる。別の例として、ニューラルネットワーク候補から構成される探索空間から、最初のニューラルネットワークアーキテクチャ候補をランダムに選択できる。別の例として、最初のニューラルネットワーク候補の少なくとも一部の特性を、たとえば、同様または同じ数の層、重み値など、以前訓練されたニューラルネットワークの同様の特性に基づいて選択できる。
【0050】
探索空間は、基本ニューラルネットワークアーキテクチャの一部として選択される可能性のあるニューラルネットワーク候補またはニューラルネットワーク候補の一部を指す。ニューラルネットワークアーキテクチャ候補の一部は、ニューラルネットワークのコンポーネントを指し得る。ニューラルネットワークのアーキテクチャは、ニューラルネットワークの複数のコンポーネントに応じて規定され得る。ニューラルネットワークでは、各コンポーネントは、1つ以上のニューラルネットワーク層を含む。コンポーネントレベルのアーキテクチャにおいてニューラルネットワーク層の特性を規定でき、これは、コンポーネントにおける特定の演算を当該アーキテクチャが規定できることを意味し、その結果、コンポーネントにある各ニューラルネットワークが、コンポーネントに対して規定された同じ演算を実施する。また、コンポーネントは、アーキテクチャにおいて、コンポーネントにある層の数で規定され得る。
【0051】
NASを実行することの一部として、システムは、ニューラルネットワーク候補を識別すること、複数の目的に対応するパフォーマンスメトリックを取得すること、これらの各パフォーマンスメトリックに応じてニューラルネットワーク候補を評価することを、繰り返し実行し得る。ニューラルネットワーク候補の正解率およびレイテンシのメトリックなどのパフォーマンスメトリックを取得することの一部として、システムは、受け付けた訓練データを用いてニューラルネットワーク候補を訓練し得る。訓練し終わると、システムは、ニューラルネットワークアーキテクチャ候補を評価し、そのパフォーマンスメトリックを判定し、現在最適な候補に応じてこれらのパフォーマンスメトリックを比較し得る。
【0052】
システムは、ニューラルネットワーク候補を選択し、ネットワークを訓練し、そのパフォーマンスメトリックを比較することによって、停止メトリックに達するまでこの探索プロセスを繰り返し実行し得る。停止メトリックは、現在のネットワーク候補が満たすパフォーマンスの所定の最小しきい値であり得る。これに加えてまたはこれに代えて、停止メトリックは、最大数の探索イテレーション、または探索を実行するために割り当てられる最大期間であり得る。停止メトリックは、ニューラルネットワークのパフォーマンスが収束する条件、たとえば、後続のイテレーションのパフォーマンスが前回のイテレーションのパフォーマンスとは異なるしきい値未満である条件であり得る。
【0053】
正解率およびレイテンシなど、ニューラルネットワークの様々なパフォーマンスメトリックを最適化させるという状況では、停止メトリックは、「最適である」と予め定められたしきい値範囲を指定し得る。たとえば、最適なレイテンシのしきい値範囲は、ターゲットコンピューティングリソースが実現する理論上の最小レイテンシまたは測定された最小レイテンシからのしきい値範囲であり得る。理論上の最小レイテンシまたは測定された最小レイテンシは、コンピューティングリソースのコンポーネントが物理的に受信データを読み込みして処理できるために最低限必要な時間など、コンピューティングリソースの物理的特性に基づき得る。いくつかの実施態様では、レイテンシは、たとえば、物理的に可能な限りゼロ遅延に近い最小値として保持され、ターゲットコンピューティングリソースから測定または算出されたターゲットレイテンシに基づいてはいない。
【0054】
システムは、次のニューラルネットワークアーキテクチャ候補を選択するために機械学習モデルまたはその他の技術を使用するように構成され得る。ここで、選択は、特定のニューラルネットワークタスクの目的を受けてうまく機能する可能性の高いそれぞれ異なるニューラルネットワーク候補の学習済み特性に少なくとも一部基づき得る。
【0055】
いくつかの例では、システムは、基本ニューラルネットワークアーキテクチャを識別するために多目的報酬メカニズムを次のように使用し得る。
【0056】
【0057】
ニューラルネットワーク候補の正解率を測定するために、システムは、訓練セットを用いて、ニューラルネットワークタスクを実行するようにニューラルネットワーク候補を訓練し得る。システムは、たとえば、80/20分割によって訓練データを訓練セットと検証セットとに分割し得る。たとえば、システムは、教師あり学習技術を適用して、ニューラルネットワーク候補が生成する出力と、ネットワークが処理する訓練例の正解ラベルとの誤差を算出し得る。システムは、ニューラルネットワークが訓練されているタスクの種類に適した任意の様々な損失関数または誤差関数を利用でき、クラス分類タスクには交差エントロピー誤差、回帰タスクには平均二乗誤差などがある。ニューラルネットワーク候補の重みを変化させた場合の誤差の勾配を、たとえば逆伝播アルゴリズムを用いて算出し得、ニューラルネットワークの重みを更新し得る。システムは、訓練のためのイテレーション回数、最大期間、収束、または正解率の最小しきい値を満たした場合など、停止メトリックが満たされるまでニューラルネットワーク候補を訓練するように訓練され得る。
【0058】
(1)ターゲットコンピューティングリソース上にデプロイされたときの基本ニューラルネットワーク候補の演算強度、および/またはターゲットコンピューティングリソース上の基本ニューラルネットワーク候補の実行効率を含むその他のパフォーマンスメトリックに加えて、システムは、ターゲットコンピューティングリソース上のニューラルネットワークアーキテクチャ候補の正解率およびレイテンシのパフォーマンスメトリックを生成し得る。いくつかの実施態様では、正解率およびレイテンシに加えて、基本ニューラルネットワーク候補の性能評価指標は、演算強度および/または実行効率の少なくとも一部に基づく。
【0059】
レイテンシ、演算強度、および実行効率は、次のように定義され得る。
【0060】
【0061】
システムは、計算が少ないネットワークのみを探して探索するのではなく、演算強度、実行効率、および計算要件が改善された複数のニューラルネットワークアーキテクチャ候補を同時に探索することによって、基本ニューラルネットワークアーキテクチャを探索し、最終ニューラルネットワークのレイテンシを改善させることができる。システムをこのように動作するように構成して、最終基本ニューラルネットワークアーキテクチャの全体的なレイテンシを軽減させることができる。
【0062】
これに加えて、特に、ターゲットコンピューティングリソースがデータセンターハードウェアアクセラレータである場合、システムが基本ニューラルネットワークアーキテクチャを選択するアーキテクチャ候補探索空間を拡張して、ターゲットコンピューティングリソース上で少ない推論レイテンシで精度高く動作する可能性の高い利用可能なニューラルネットワーク候補の種類を広げることができる。
【0063】
記載のように探索空間を拡張することで、データセンターアクセラレータのデプロイにより適したニューラルネットワークアーキテクチャ候補の数を増やすことができ、その結果、本開示の態様に応じて拡張されなかった探索空間では候補にならなかったであろう基本ニューラルネットワークアーキテクチャを識別できるようになる。ターゲットコンピューティングリソースがGPUおよびTPUのようなハードウェアアクセラレータを指定する実施例では、アーキテクチャ候補、または、演算強度、並列性、および/もしくは実行効率を向上させるコンポーネントまたは演算などのアーキテクチャの一部を用いて探索空間を拡張できる。
【0064】
1つの例示的な拡張方法では、様々な種類の活性化関数のうち1つを実装する層を有するニューラルネットワークアーキテクチャコンポーネントを含むように探索空間を拡張できる。TPUおよびGPUの場合、ReLUまたはswishなどの活性化関数は、通常、演算強度が低く、これらの種類のハードウェアアクセラレータ上のメモリによる制約を受けることが通常であることが分かった。ニューラルネットワークにおいて活性化関数を実行することは、概して、ターゲットコンピューティングリソース上で利用可能なメモリの総量による制約を受けるので、これらの関数の実行は、エンドツーエンドネットワークの推論速度のパフォーマンスに非常にマイナスの影響を与え得る。
【0065】
活性化関数に相対する探索空間の1つの例示的な拡張は、関連する離散畳み込みと融合させた活性化関数を探索空間に導入することである。活性化関数は、概して、要素単位の演算であり、ベクトル演算のために構成されたハードウェアアクセラレータ単位で動作するので、離散畳み込みと並列してこれらの活性化関数を実行できる。離散畳み込みは、通常、ハードウェアアクセラレータの行列単位上で動作する行列ベースの演算である。これらの融合活性化関数-畳み込み演算は、本明細書に記載の基本ニューラルネットワークアーキテクチャ探索の一部として、システムによってニューラルネットワークコンポーネント候補として選択可能である。Swish、ReLU(Rectified Linear Unit)、Sigmoid、Tanh、およびSoftmaxを含む、任意の様々な活性化関数を利用できる。
【0066】
融合活性化関数-畳み込み演算の層を含む様々なコンポーネントを探索空間に付加でき、当該コンポーネントは、使われる活性化関数の種類のよって異なり得る。たとえば、活性化関数-畳み込みの層の1つのコンポーネントがReLU活性化関数を含み得る一方で、別のコンポーネントは、Swish活性化関数を含み得る。異なる活性化関数を用いて異なるハードウェアアクセラレータがより効率よく動作し得るため、複数種類の活性化関数の融合活性化関数-畳み込みを含むように探索空間を拡張させることで、対象のニューラルネットワークタスクを実行するのに最も適した基本ニューラルネットワークアーキテクチャを識別することをさらに向上できることが分かった。
【0067】
本明細書において説明した様々な活性化関数を有するコンポーネントに加えて、その他の融合された畳み込み構造を用いて探索空間を拡張し、異なる形状、種類、および大きさの畳み込みを用いて探索空間をさらに豊かにすることもできる。異なる畳み込み構造は、ニューラルネットワークアーキテクチャ候補の一部として追加されるコンポーネントであり得、1×1畳み込みからなる拡張層、depth-wise(深さ単位)の畳み込み、1×1畳み込みからなる投射層、ならびに活性化関数、バッチ正規化関数、および/またはスキップ接続などその他の演算を含み得る。
【0068】
【0069】
そのため、NASの探索空間をその他の方法で拡張して、ハードウェアアクセラレータ上で利用可能な並列性を利用できる演算を含むようにすることができる。探索空間は、深さ単位の畳み込みを隣接する1×1畳み込みと融合させるための1つ以上の演算と、ニューラルネットワークの入力を整形するための演算とを含み得る。たとえば、ニューラルネットワーク候補への入力は、テンソルであり得る。テンソルは、異なる階数に応じた複数の値を表し得るデータ構造である。たとえば、一階のテンソルは、ベクトルであり得、二階のテンソルは、行列であり得、三階の行列は、3次元行列であり得る…などである。深さ単位の畳み込みを融合させることにはメリットがあるであろう。なぜならば、深さ単位の演算は、概して、演算強度の低い演算であり、この演算を隣接する畳み込みと融合させることで、演算強度をハードウェアアクセラレータの最大能力に近い演算強度に高めることができるためである。
【0070】
【0071】
また、探索空間は、ターゲットコンピューティングリソース上のメモリ内の様々な場所にテンソルの要素を移動させることによって入力テンソルを整形する演算を含み得る。これに加えてまたはこれに代えて、演算は、メモリ内の様々な場所に要素を複製し得る。
【0072】
いくつかの実施態様では、システムは、直接スケーリングするための基本ニューラルネットワークを受信し、基本ニューラルネットワークを識別するためのNASまたはその他の探索を実行しないように構成される。いくつかの実施態様では、1つのデバイス上で基本ニューラルネットワークを識別し、本明細書において説明したように基本ニューラルネットワークを別のデバイス上でスケーリングすることによって、複数のデバイスが個々にプロセス200の少なくとも一部を実行する。
【0073】
図2のブロック240に示すように、システムは、ターゲットコンピューティングリソースを指定する情報と、複数のスケーリングパラメータとに応じて基本ニューラルネットワークをスケーリングするための複数のスケーリングパラメータ値を識別し得る。システムは、基本ニューラルネットワークのスケーリングパラメータ値を探索する目的としてスケーリングされたニューラルネットワーク候補の正解率とレイテンシとを使うために、今回説明したようなレイテンシを意識した複合スケーリングを利用できる。たとえば、システムは、
図2のステップ240において、レイテンシを意識した複合スケーリングのプロセス300を適用し、複数のスケーリングパラメータ値を識別し得る。
【0074】
一般に、スケーリング技術をNASと併せて適用し、ターゲットコンピューティングリソース上でデプロイするためにスケーリングされるニューラルネットワークを識別する。モデルスケーリングをNASと併せて使用し、様々なユースケースをサポートするニューラルネットワークのファミリーをさらに効率よく探索できる。スケーリング手法の下では、様々な技術を用いて、ニューラルネットワークの深さ、幅、および分解能などのスケーリングパラメータについて、様々な値を探索できる。スケーリングパラメータごとに値を別個に探索することによって、または、複数のスケーリングパラメータをまとめて調整するための均一の値セットを探索することによって、スケーリングを行うことができる。前者は、単純スケーリングと称される場合があり、後者は、複合スケーリングと称される場合がある。
【0075】
唯一の目的として正解率を用いるスケーリング技術では、データセンターアクセラレータなど専用ハードウェア上にデプロイされたときのパフォーマンス/速度の影響を適切に考慮してスケーリングされたニューラルネットワークを得ることができない。
図3においてさらに詳細を説明するが、LACSは、基本ニューラルネットワークアーキテクチャを識別するために使われる目的と同じ目的として共有され得る正解率目的およびレイテンシ目的の両方を使用し得る。
【0076】
図3は、基本ニューラルネットワークアーキテクチャのレイテンシを意識した複合スケーリングの例示的なプロセス300である。例示的なプロセス300は、1つ以上の場所にある1つ以上のプロセッサから構成されるシステムまたはデバイス上で実行され得る。たとえば、プロセス300は、本明細書に記載のNAS-LACSシステム上で実行され得る。たとえば、システムは、ステップ240の一部としてプロセス300を実行し、基本ニューラルネットワークをスケーリングするための複数のスケーリングパラメータ値を識別し得る。
【0077】
【0078】
複合スケーリング手法では、スケーリングパラメータごとのスケーリング係数をまとめて探索する。システムは、パレートフロンティア探索またはグリッドサーチなど、係数のタプルを識別するための任意の様々な探索技術を適用できる。システムは、係数のタプルを探索するが、
図2を参照して本明細書において説明した基本ニューラルネットワークアーキテクチャを識別するために用いられる目的と同じ目的に応じて当該タプルを探索し得る。これに加えて、複数の目的は、正解率とレイテンシとの両方を含み得、次のように表すことができる。
【0079】
【0080】
性能評価指標を決定することの一部として、システムは、受信した訓練データを用いて、スケーリングされたニューラルネットワークアーキテクチャ候補をさらに訓練および調整し得る。システムは、訓練済みのスケーリングされたニューラルネットワークの性能評価指標を決定し、ブロック330に従って、性能評価指標がパフォーマンスしきい値を満たすかどうかを判断し得る。性能評価指標およびパフォーマンスしきい値は、それぞれ、複数のパフォーマンスメトリックの複合物および複数のパフォーマンスしきい値であり得る。たとえば、システムは、スケーリングされたニューラルネットワークの正解率および推論レイテンシの両方のメトリックから1つの性能評価指標を決定し得、または、異なる目的について別個のパフォーマンスメトリックを判定し、各メトリックを対応するパフォーマンスしきい値と比較し得る。
【0081】
性能評価指標がパフォーマンスしきい値を満たした場合、プロセス300は終了する。そうでない場合、プロセスは継続し、システムは、ブロック310に従って新しい複数のスケーリングパラメータ値候補を選択する。たとえば、システムは、以前選択したタプル候補およびその対応する性能評価指標に少なくとも一部基づいて、係数探索空間からスケーリング係数から構成される新しいタプルを選択し得る。いくつかの実施態様では、システムは、係数から構成される複数のタプルを探索し、タプル候補の各々の近傍にある複数の目的に応じてより細かい探索を行う。
【0082】
システムは、たとえば、グリッドサーチ、強化学習、進化的探索を用いるなど、係数候補空間を繰り返し探索するために任意の様々な技術を実施し得る。前述したように、システムは、収束またはイテレーションの数などの停止メトリックに達するまで、スケーリングパラメータ値を探索し続け得る。
【0083】
いくつかの実施態様では、システムは、1つ以上のコントローラパラメータ値に応じて調整され得る。コントローラパラメータ値は、手作業で調整され得、機械学習技術によって学習され得、またはこれらの組合せでもあり得る。コントローラパラメータは、タプル候補の全体的な性能評価指標に対する各目的の相対的な効果に影響を与え得る。いくつかの例では、タプル候補に含まれる特定の値または値同士の特定の関係は、コントローラパラメータ値に少なくとも一部が反映された理想的なスケーリング係数の学習済み特性に基づいて、好まれたり好まれなかったりし得る。
【0084】
ブロック340に従って、システムは、1つ以上の目的トレードオフに応じて、選択したスケーリングパラメータ値候補から、1つ以上のスケーリングパラメータ値グループを生成する。目的トレードオフは、正解率およびレイテンシなど、目的ごとのそれぞれ異なるしきい値を表し得、様々なスケーリングされたニューラルネットワークによって満たされ得る。たとえば、1つの目的トレードオフでは、ネットワーク正解率のしきい値は高いが、推論レイテンシのしきい値は低い(すなわち、精度が高いネットワークでレイテンシが高い)。別の例として、目的トレードオフでは、ネットワーク正解率のしきい値は低いが、推論レイテンシのしきい値は高い(すなわち、精度が低いネットワークでレイテンシが低い)。別の例として、目的トレードオフでは、正解率とレイテンシパフォーマンスとの間でバランスが取られている。
【0085】
目的トレードオフごとに、システムは、目的トレードオフを満たすように基本ニューラルネットワークアーキテクチャをスケーリングするためにシステムが使用可能なスケーリングパラメータ値グループを識別し得る。すなわち、システムは、ブロック310に示す選択と、ブロック320に示す性能評価指標の決定と、ブロック330に示す性能評価指標がパフォーマンスしきい値を満たすかどうかの判断とを繰り返し得る(パフォーマンスしきい値が目的トレードオフによって定められるという点は異なる)。いくつかの実施態様では、基本ニューラルネットワークアーキテクチャのタプルを探索するのではなく、システムは、ブロック330に従って複数の目的の性能評価指標を最初に満たした選択したスケーリングパラメータ値の候補に応じてスケーリングされた基本ニューラルネットワークアーキテクチャのスケーリング係数タプル候補を探索し得る。
【0086】
【0087】
図2に戻ると、ブロック250に示すように、NAS-LACSシステムは、複数のスケーリングパラメータ値に応じてスケーリングされた基本ニューラルネットワークのアーキテクチャを用いて、スケーリングされたニューラルネットワークの1つ以上のアーキテクチャを生成し得る。スケーリングされたニューラルネットワークアーキテクチャは、基本ニューラルネットワークアーキテクチャおよび様々なスケーリングパラメータ値から生成されたニューラルネットワークのファミリーであり得る。
【0088】
ターゲットコンピューティングリソースを指定する情報が複数のターゲットコンピューティングリソース、たとえば、複数の様々な種類のハードウェアアクセラレータから構成される1つ以上のセットを含む場合、システムは、ハードウェアアクセラレータごとに、プロセス200およびプロセス300を繰り返し、ターゲットセットに各々が対応するスケーリングされたニューラルネットワークのアーキテクチャを生成し得る。ハードウェアアクセラレータごとに、システムは、レイテンシと正解率との間、またはレイテンシと、正解率と、その他の目的(特に、(3)を参照して説明した演算強度および実行効率を含む)との間の様々な目的トレードオフに応じて、スケーリングされたニューラルネットワークアーキテクチャのファミリーを生成し得る。
【0089】
いくつかの実施態様では、システムは、同じ基本ニューラルネットワークアーキテクチャから複数のスケーリングされたニューラルネットワークアーキテクチャのファミリーを生成し得る。この手法は、様々な対象デバイスが同様のハードウェア特性を共有している状況において有用であり得、デバイスごとの対応するスケーリングされたファミリーをより高速に識別できるようになる。なぜならば、少なくとも、たとえば
図2のプロセスに示すような基本ニューラルネットワークアーキテクチャの探索が、1回しか実行されないためである。
【0090】
例示的なシステム
図4は、本開示の態様に係る、NAS-LACS(ニューラルアーキテクチャ探索-レイテンシを意識した複合スケーリング)システム400のブロック図である。システム400は、ニューラルネットワークタスクを実行するための訓練データ401と、ターゲットコンピューティングリソースを指定するターゲットコンピューティングリソースのデータ402とを受信するように構成される。
図1~
図3を参照して本明細書において説明したように、システム400は、スケーリングされたニューラルネットワークアーキテクチャのファミリーを生成するための技術を実施するように構成され得る。
【0091】
システム400は、ユーザーインタフェースに応じて入力データを受信するように構成され得る。たとえば、システム400は、システム400を公開しているAPI(アプリケーションプログラムインタフェース)に対する呼び出しの一部としてデータを受信し得る。
図5を参照して本明細書に説明するが、システム400は、1つ以上のコンピューティングデバイス上に実装できる。たとえば、ネットワークで1つ以上のコンピューティングデバイスに接続されたリモートストレージを含む記憶媒体を通してシステム400への入力が行われ得、または、システム400に連結されたクライアントコンピューティングデバイス上のユーザーインタフェースを通して入力が行われ得る。
【0092】
システム400は、スケーリングされたニューラルネットワークアーキテクチャのファミリーなど、スケーリングされたニューラルネットワークアーキテクチャ409を出力するように構成され得る。スケーリングされたニューラルネットワークアーキテクチャ409は、たとえばユーザディスプレイ上に表示するための出力として送信され、必要に応じて、アーキテクチャにおいて規定されている各ニューラルネットワーク層の形状およびサイズに従って可視化され得る。いくつかの実施態様では、システム400は、スケーリングされたニューラルネットワークアーキテクチャ409を1つ以上のコンピュータプログラムなど、コンピュータ読み取り可能な命令セットとして提供するように構成され得る。コンピュータ読み取り可能な命令セットは、スケーリングされたニューラルネットワークアーキテクチャ409を実装するために、ターゲットコンピューティングリソースによって実行され得る。
【0093】
コンピュータプログラムは、たとえば、宣言型、手続き型、アセンブリ、オブジェクト指向、データ指向、関数型、または命令型など、任意のプログラミングパラダイムに従って任意の種類のプログラミング言語で書かれ得る。コンピュータプログラムは、1つ以上の異なる関数を実行し、コンピューティング環境内、たとえば物理デバイス上、仮想マシン上、または複数のデバイス間で動作するように書かれ得る。また、コンピュータプログラムは、本明細書に記載の機能、たとえば、システム、エンジン、モジュール、またはモデルによって実行される機能を実施する。
【0094】
いくつかの実施態様では、システム400は、アーキテクチャを(必要に応じて、機械学習モデルを生成するためのフレームワークの一部として)コンピュータプログラミング言語で書かれた実行可能なプログラムに変換するために構成された1つ以上のその他のデバイスに、スケーリングされたニューラルネットワークアーキテクチャ409用のデータを転送するように構成される。また、システム400は、スケーリングされたニューラルネットワークアーキテクチャ409に対応するデータを、格納して後の検索に用いるため記憶装置に送るように構成され得る。
【0095】
システム400は、NASエンジン405を備え得る。NASエンジン405およびシステム400のその他の構成要素は、1つ以上のコンピュータプログラム、特別に構成された電子回路、またはこれらの任意の組合せとして実装され得る。NASエンジン405は、訓練データ401とターゲットコンピューティングリソースのデータ402とを受信し、基本ニューラルネットワークアーキテクチャ407を生成するように構成され得る。基本ニューラルネットワークアーキテクチャ407は、LACSエンジン415に送信され得る。NASエンジン405は、
図1~
図3を参照して本明細書において説明したニューラルアーキテクチャ探索の任意の様々な技術を実装できる。システムは、ターゲットコンピューティングリソース上で実行されたときのニューラルネットワーク候補の推論レイテンシと正解率とを含む複数の目的を用いてNASを実行するよう、本開示の態様に従って構成され得る。NASエンジン405が基本ニューラルネットワークアーキテクチャを探索するために利用できるパフォーマンスメトリックを判定することとの一部として、システム400は、パフォーマンス測定エンジン410を備え得る。
【0096】
パフォーマンス測定エンジン410は、基本ニューラルネットワーク候補のアーキテクチャを受信する、およびNASエンジン405によってNASを実行するために使われる目的に応じてパフォーマンスメトリックを生成するように構成され得る。パフォーマンスメトリックは、複数の目的に応じてニューラルネットワーク候補の全体的な性能評価指標を提供し得る。基本ニューラルネットワーク候補の正解率を判断するために、パフォーマンス測定エンジン410は、たとえば、訓練データ401の一部を残しておくことによって検証用の訓練例セットを取得することによって、当該検証セット上で基本ニューラルネットワーク候補を実行し得る。
【0097】
レイテンシを測定するために、パフォーマンス測定エンジン410は、データ402によって指定されているターゲットコンピューティングリソースに対応するコンピューティングリソースと通信し得る。たとえば、ターゲットコンピューティングリソースのデータ402がTPUを対象リソースと指定している場合、パフォーマンス測定エンジン410は、基本ニューラルネットワーク候補を対応するTPU上で実行するために送信し得る。TPUは、システム400を実装する1つ以上のプロセッサと(たとえば、
図5を参照してさらに詳細を説明するネットワークで)通信しているデータセンターに収容され得る。
【0098】
パフォーマンス測定エンジン410は、ターゲットコンピューティングリソースが入力を受け付けることと、出力を生成することとの間のレイテンシを示すレイテンシ情報を受信し得る。レイテンシ情報は、現地でターゲットコンピューティングリソースに対して直接測定され、パフォーマンス測定エンジン410に送られ得る、または、パフォーマンス測定エンジン410自体によって測定され得る。パフォーマンス測定エンジン410がレイテンシを測定した場合、エンジン410は、基本ニューラルネットワーク候補の処理が原因ではないレイテンシ、たとえば、ターゲットコンピューティングリソースと通信するためのネットワークレイテンシを補償するように構成され得る。別の例として、パフォーマンス測定エンジン410は、ターゲットコンピューティングリソースの以前の測定値、およびターゲットコンピューティングリソースのハードウェア特性に基づいて、基本ニューラルネットワーク候補を通った入力の処理のレイテンシを推定し得る。
【0099】
パフォーマンス測定エンジン410は、演算強度および実行効率など、ニューラルネットワークアーキテクチャ候補のその他の特性のパフォーマンスメトリックを生成し得る。
図1~
図3を参照して本明細書において説明したように、推論レイテンシは、FLOPS(計算要件)、実行効率、および演算強度に応じて判定され得、いくつかの実施態様では、システム400は、これらの追加特性に基づいてニューラルネットワークを探索し、直接または間接的にスケーリングする。
【0100】
パフォーマンスメトリックが生成されると、パフォーマンス測定エンジン410は、メトリックをNASエンジン405に送り得る。そして、NASエンジン405は、
図2を参照して本明細書において説明したように、停止メトリックに達するまで新しい基本ニューラルネットワークアーキテクチャ候補の新しい探索を繰り返し得る。
【0101】
いくつかの例では、NASエンジン405が次の基本ニューラルネットワークアーキテクチャ候補をどのように選択するかについて調整するための1つ以上のコントローラパラメータに応じて、NASエンジン405を調整する。コントローラパラメータは、特定のニューラルネットワークタスクのためのニューラルネットワークの所望の特性に応じて、手作業で調整できる。いくつかの例では、コントローラパラメータを、様々な機械学習技術によって学習でき、NASエンジン405は、レイテンシおよび正解率など、複数の目的に応じて基本ニューラルネットワークアーキテクチャを選択するために訓練された1つ以上の機械学習モデルを実装し得る。たとえば、NASエンジン405は、以前の基本ニューラルネットワーク候補の特徴量および複数の目的を使用するように訓練された再帰型ニューラルネットワークを実装し、これらの目的を満たす可能性がより高い基本ネットワーク候補を予測し得る。ニューラルネットワークタスクに関連する訓練データセット、およびターゲットコンピューティングリソースのデータが与えられたときに選択された最終基本ニューラルアーキテクチャを示すようラベル付けされた訓練データとパフォーマンスメトリックとを用いて、ニューラルネットワークを訓練できる。
【0102】
LACSエンジン415は、本開示の態様に従って説明したように、レイテンシを意識した複合スケーリングを実行するように構成され得る。LACSエンジン415は、基本ニューラルネットワークアーキテクチャを指定するデータ407をNASエンジン405から受信するように構成される。NASエンジン405と同様に、LACSエンジン415は、パフォーマンス測定エンジン410と通信して、スケーリングされたニューラルネットワークアーキテクチャ候補のパフォーマンスメトリックを取得し得る。
図1~
図3を参照して本明細書において説明したように、LACSエンジン415は、スケーリング係数から構成される異なるタプルのメモリに探索空間を保持し得、また、最終のスケーリングされたアーキテクチャをスケーリングして、スケーリングされたニューラルネットワークアーキテクチャのファミリーを素早く取得するように構成され得る。いくつかの実施態様では、LACSエンジン415は、その他の形式のスケーリング、たとえば、単純スケーリングを実行するように構成されるが、NASエンジン405が用いるレイテンシを含む複数の目的を使用する。
【0103】
図5は、NAS-LACSシステム400を実装するための例示的な環境500のブロック図である。システム400は、サーバコンピューティングデバイス515内など1つ以上の場所に1つ以上のプロセッサを有する1つ以上のデバイス上に実装され得る。クライアントコンピューティングデバイス512およびサーバコンピューティングデバイス515は、ネットワーク560で1つ以上の記憶装置530に通信可能に連結され得る。記憶装置(複数可)530は、揮発性メモリと不揮発性メモリとの組合せであり得、コンピューティングデバイス512、515と物理的に同じ位置にあってもよく、物理的に異なる位置にあってもよい。たとえば、記憶装置(複数可)530は、ハードドライブ、ソリッドステートドライブ、テープドライブ、光記憶装置、メモリカード、ROM、RAM、DVD、CD-ROM、書き込み可能メモリ、および読取り専用メモリなど、情報を格納可能な任意の種類の非一時的なコンピュータ読み取り可能な媒体を含み得る。
【0104】
サーバコンピューティングデバイス515は、1つ以上のプロセッサ513と、メモリ514とを備え得る。メモリ514は、プロセッサ(複数可)513がアクセスできる情報を格納し得、この情報は、プロセッサ(複数可)513によって実行され得る命令521を含む。また、メモリ514は、プロセッサ(複数可)513が検索したり、操作したり、格納したりできるデータ523を含み得る。メモリ514は、揮発性メモリおよび不揮発性メモリなど、プロセッサ(複数可)513がアクセスできる情報を格納可能な種類の非一時的なコンピュータ読み取り可能な媒体であり得る。プロセッサ(複数可)513は、1つ以上のCPU(Central Processing Unit)、1つ以上のGPU(Graphic Processing Unit)、1つ以上のFGPA(Field Programmable Gate Array)、および/または、TPU(Tensor Processing Unit)などの1つ以上のASIC(特定用途向け集積回路)を含み得る。
【0105】
命令521は、1つ以上の命令を含み得る。当該1つ以上の命令は、プロセッサ(複数可)513によって実行されると、命令が定める動作を1つ以上のプロセッサに実行させる。命令521は、プロセッサ(複数可)513によって直接処理されるオブジェクトコード形式、または、要求に基づいて解釈されたり予めコンパイルされたりする独立したソースコードモジュールから構成される解釈可能なスクリプトまたはコレクションを含む、その他の形式で格納できる。命令521は、本開示の態様と一致したシステム400を実装するための命令を含み得る。システム400は、プロセッサ(複数可)513を用いて実行でき、および/またはサーバコンピューティングデバイス515から遠隔の場所に置かれているその他のプロセッサを用いて実行できる。
【0106】
データ523は、命令521に従って、プロセッサ(複数可)513によって検索されたり、格納されたり、または修正されたりし得る。データ523は、コンピュータレジスタに格納でき、複数の異なるフィールドおよびレコードを有するテーブルとしてリレーショナルデータベースもしくは非リレーショナルデータベースに格納でき、またはJSON、YAML、proto、もしくはXML文書として格納できる。また、データ523は、バイナリ値、ASCII、またはUnicodeなど、コンピュータスが読み取り可能な形式にフォーマットされ得るが、これらに限定されない。また、データ523は、数字、説明文、プロプライエタリコード、ポインタ、その他のネットワークの場所などその他のメモリに格納されているデータへのリファレンスなど、関連性のある情報を特定するのに十分な情報、または、関連性のあるデータを計算するために関数が用いる情報を含み得る。
【0107】
また、クライアントコンピューティングデバイス512は、サーバコンピューティングデバイス515と同様に、1つ以上のプロセッサ516、メモリ517、命令518、およびデータ519で構成できる。クライアントコンピューティングデバイス512も、ユーザ出力部526と、ユーザ入力部524とを含み得る。ユーザ入力部524は、キーボード、マウス、機械式アクチュエータ、ソフトアクチュエータ、タッチスクリーン、マイクロフォン、およびセンサーなど、ユーザから入力を受け付けるための任意の適切なメカニズムまたは技術を含み得る。
【0108】
サーバコンピューティングデバイス515は、クライアントコンピューティングデバイス512にデータを送信するように構成され得、クライアントコンピューティングデバイス512は、受信データの少なくとも一部を、ユーザ出力部526の一部として実装されたディスプレイに表示するように構成され得る。また、クライアントコンピューティングデバイス512とサーバコンピューティングデバイス515との間のインタフェースを表示するためにユーザ出力部526を用いることができる。これに代えてまたはこれに加えて、ユーザ出力部526は、1つ以上のスピーカー、変換器またはその他の音声出力部、クライアントコンピューティングデバイス512のプラットフォームユーザに非視覚的かつ非可聴式情報を提供する触覚インタフェースまたはその他の触覚フィードバックを含み得る。
【0109】
図5では、プロセッサ513、516およびメモリ514、517がコンピューティングデバイス515、512内にあると図示されているが、プロセッサ513、516およびメモリ514、517を含む本明細書に記載の構成要素は、物理的に異なる位置でそれぞれ動作でき、かつ、同じコンピューティングデバイス内に存在しない複数のプロセッサおよび複数のメモリを含み得る。たとえば、命令521、518およびデータ523、519の一部をリムーバブルSDカード上に格納し、残りを読取り専用コンピュータチップ内に格納できる。命令およびデータの一部またはすべては、プロセッサ513、516から物理的に離れた場所ではあるがプロセッサ513、516がアクセスできる場所に格納できる。同様に、プロセッサ513、516は、同時に動作できるおよび/または逐次動作できるプロセッサの集合を含み得る。コンピューティングデバイス515、512は、各々、タイミング情報を提供する1つ以上の内部クロックを備え得る。タイミング情報は、コンピューティングデバイス515、512によって実行される演算およびプログラムの時間を測定するために用いられ得る。
【0110】
サーバコンピューティングデバイス515は、ハードウェアアクセラレータ551A~551Nが収容されているデータセンター550にネットワーク560で接続され得る。データセンター550は、複数のデータセンターのうち1つであり得、またはハードウェアアクセラレータなど様々な種類のコンピューティングデバイスが置かれているその他の設備のうち1つであり得る。本明細書において説明したように、データセンター550に収容されているコンピューティングリソースは、スケーリングされたニューラルネットワークアーキテクチャをデプロイするためのターゲットコンピューティングリソースの一部として指定され得る。
【0111】
サーバコンピューティングデバイス515は、データセンター550にあるコンピューティングリソース上のクライアントコンピューティングデバイス512から、データを処理する要求を受け付けるように構成され得る。たとえば、環境500は、様々なユーザーインタフェースおよび/またはプラットフォームサービスを公開しているAPIを通して様々なサービスをユーザに提供するように構成されたコンピューティングプラットフォームの一部であり得る。1つ以上のサービスは、機械学習フレームワークであり得、または、指定のタスクおよび訓練データに応じてニューラルネットワークもしくはその他の機械学習モデルを生成するためのツールセットであり得る。クライアントコンピューティングデバイス512は、特定のニューラルネットワークタスクを実行するように訓練されたニューラルネットワークを実行するために割り当てられるターゲットコンピューティングリソースを指定するデータを受送信し得る。
図1~
図4を参照して本明細書において説明した本開示の態様によると、NAS-LACSシステム400は、ターゲットコンピューティングリソースを指定するデータと訓練データとを受信し、それに応答して、ターゲットコンピューティングリソース上にデプロイするためのスケーリングされたニューラルネットワークアーキテクチャのファミリーを生成し得る。
【0112】
環境500を実装するプラットフォームが提供する可能性のあるサービスのその他の例として、サーバコンピューティングデバイス515は、データセンター550において利用可能である可能性のある様々なターゲットコンピューティングリソースに従って様々なスケーリングされたニューラルネットワークアーキテクチャのファミリーを保持し得る。たとえば、サーバコンピューティングデバイス515は、データセンター550に収容されている様々な種類のTPUおよび/またはGPU上にニューラルネットワークをデプロイするための様々なファミリーを保持し得、そうでない場合、処理に使用できる様々なファミリーを保持し得る。
【0113】
デバイス512、515、およびデータセンター550は、ネットワーク560で直接または間接的に通信可能である。たとえば、ネットワークソケットを使用して、クライアントコンピューティングデバイス512は、インターネットプロトコルを通してデータセンター550において動作しているサービスに接続できる。デバイス515、512は、情報を送受信するための開始接続を受け付け得るリスニングソケットをセットアップできる。ネットワーク560自体が、インターネット、World Wide Web、イントラネット、仮想プライベートネットワーク、ワイドエリアネットワーク、ローカルネットワーク、および1つ以上の会社が所有する通信プロトコルを用いたプライベートネットワークを含む、様々な構成およびプロトコルを含み得る。ネットワーク560は、様々な短距離接続および長距離接続をサポートできる。短距離接続および長距離接続は、2.402GHz~2.480GHz(共通してBluetooth(登録商標)規格に対応付けられている)、2.4GHzおよび5GHz(共通してWi-Fi(登録商標)通信プロトコルに対応付けられている)などの様々な帯域幅で行われ得、または、ワイヤレスブロードバンド通信のためのLTE(登録商標)規格など様々な通信規格を用いて行われ得る。また、これに加えてまたはこれに代えて、ネットワーク560は、デバイス512、515とデータセンター550との間で、様々な種類のイーサネット(登録商標)接続での有線接続を含む、有線接続をサポートできる。
【0114】
1つのサーバコンピューティングデバイス515、1つのクライアントコンピューティングデバイス512、および1つのデータセンター550が
図5に示されているが、本開示の態様は、逐次処理または並列処理のためのパラダイムで実装する、または複数のデバイスから構成される分散ネットワーク上で実装するなど、様々な構成および量のコンピューティングデバイスに応じて実装できることを理解されたい。いくつかの実施態様では、本開示の態様は、ニューラルネットワークを処理するために構成された複数のハードウェアアクセラレータに接続された1つのデバイス上で実行できる、または、それらの任意の組合せであり得る。
【0115】
例示的なユースケース
本明細書において説明したように、本開示の態様は、多目的手法に応じて基本ニューラルネットワークからスケーリングされたニューラルネットワークのアーキテクチャの生成を可能にする。ニューラルネットワークタスクの例は、以下の通りである。
【0116】
例として、ニューラルネットワークへの入力は、画像形式、映像形式であり得る。与えられた入力を処理することの一部として、たとえばコンピュータビジョンタスクの一部として、特徴量を抽出、識別、および生成するようにニューラルネットワークを構成できる。この種類のニューラルネットワークタスクを実行するように訓練されたニューラルネットワークを、様々なあり得るクラス分類セットから1つの出力クラス分類を生成するように訓練できる。これに加えてまたはこれに代えて、画像または映像において識別された被写体が特定のクラスに属している可能性があるとの推定に対応するスコアを出力するようにニューラルネットワークを訓練できる。
【0117】
別の例として、ニューラルネットワークへの入力は、特定のフォーマットに対応するデータファイルであり得、たとえば、HTMLファイル、ワープロ文書、または、画像ファイルのメタデータなど、その他の種類のデータから取得したフォーマット済みのメタデータであり得る。この状況におけるニューラルネットワークタスクは、受け付けた入力についての特性を分類すること、スコアリングすること、そうでない場合、予測することであり得る。たとえば、受け付けた入力が特定のテーマに関連するテキストを含んでいる可能性を予測するようにニューラルネットワークを訓練できる。また、特定のタスクを実行することの一部として、たとえば文書を作成中に文書におけるテキストのオートコンプリートのためのツールの一部としてテキスト予測を生成するようにニューラルネットワークを訓練できる。たとえば、メッセージの作成中に入力文書にあるテキストの対象言語への翻訳を予測するためのニューラルネットワークを訓練できる。
【0118】
その他の種類の入力文書は、相互に接続されたデバイスから構成されるネットワークの特性に関連するデータであり得る。これらの入力文書は、アクティビティログ、および、様々なコンピューティングデバイスが機密である可能性のあるデータの様々なソースにアクセスできるアクセス特権に関するレコードを含み得る。現在または将来のネットワークへのセキュリティ侵害を予測するためにこれらの文書およびその他の種類の文書を処理するようにニューラルネットワークを訓練できる。たとえば、悪意のある行為者によるネットワークへの侵入を予測するようにニューラルネットワークを訓練できる。
【0119】
別の例として、ニューラルネットワークへの入力は、ストリーミングオーディオ、予め録音された音声、および映像またはその他のソースもしくはメディアの一部としての音声を含む、音声入力であり得る。音声という状況では、ニューラルネットワークタスクは、その他の識別された音声ソースから音声を分離すること、および/または識別された音声の特性を強調して聞き取りやすくすることを含む音声認識を含み得る。たとえば翻訳ツールの一部として入力音声の対象言語へのリアルタイムな正確な翻訳を予測するようにニューラルネットワークを訓練できる。
【0120】
また、本明細書に記載の様々な種類のデータを含むデータ入力に加えて、与えられた入力に対応する特徴量を処理するようにニューラルネットワークを訓練できる。特徴量とは、値であり、たとえば、入力の特性に関連する数値または明確な値である。たとえば、画像という状況では、画像の特徴量は、画像にある画素ごとのRGB値に関連し得る。画像/映像の状況におけるニューラルネットワークタスクは、たとえば様々な人、場所、または物の存在を対象として画像または映像の内容を分類することであり得る。与えられた入力に対する出力を生成するために処理される関連性のある特徴量を抽出および選択するようにニューラルネットワークを訓練でき、学習した入力データの様々な特性間の関係性に基づいて新しい特徴量を生成するようにも訓練できる。
【0121】
本開示の態様は、デジタル回路、コンピュータ読み取り可能な記憶媒体、1つ以上のコンピュータプログラムとして、またはこれらのうちの1つ以上の組合せとして実装できる。コンピュータ読み取り可能な記憶媒体は、たとえば、プロセッサ(複数可)によって実行可能であり、有形の記憶装置上に格納される1つ以上の命令として、非一時的なコンピュータ読み取り可能な記憶媒体であり得る。
【0122】
本明細書において、「構成される(configured to)」というフレーズが、コンピュータシステム、ハードウェア、またはコンピュータプログラムの一部に関連する様々な状況で使われている。システムは1つ以上の演算を実行するように構成される、と述べられている場合、これは、動作時、システムに1つ以上の演算を実行させる適切なソフトウェア、ファームウェア、および/またはハードウェアがシステムにインストールされていることを意味する。ハードウェアは1つ以上の演算を実行するように構成される、と述べられている場合、これは、動作時、入力を受け付け、入力に応じて1つ以上の演算に対応する出力を生成する1つ以上の回路をハードウェアが備えることを意味する。コンピュータプログラムは1つ以上の演算を実行するように構成される、と述べられている場合、これは、1つ以上のコンピュータによって実行されると1つ以上のコンピュータに1つ以上の演算を実行させる1つ以上のプログラム命令をコンピュータプログラムが含むことを意味する。
【0123】
図面に示されている動作およびクレームに記載されている動作は、特定の順序で示されているが、これらの動作は、示されている順序とは異なる順序で実行できること、一部の動作は省略できること、1回以上実行できること、および/またはその他の動作と並行して実行できることを理解されたい。さらには、様々な動作を実行するために構成された様々なシステム構成要素を分離することは、これらの構成要素を分離する必要があると理解されるべきではない。記載されている構成要素、モジュール、プログラム、およびエンジンは、1つのシステムに統合でき、または複数のシステムの一部とすることができる。
【0124】
特に明示しない限り、上記のその他の実施例のほとんどは、相互に排他的ではない。しかし、様々な組合せで実装してユニークな利点を実現してもよい。上述した機能のこれらのおよびその他の変形例および組合せは、添付の特許請求の範囲によって示される発明の主題を逸脱しない範囲で利用することができるため、上記実施の形態の説明は、添付の特許請求の範囲によって示される発明の主題を限定するものではなく、一例としてとらえるべきである。これに加えて、本明細書に記載した実施例の提供、および「such as」、「including」などの言葉で表現された節の提供は、添付の特許請求の範囲の発明の主題を具体例に限定すると解釈されるべきではない。むしろ、これらの実施例は、多くの可能な実施の形態のうちの1つを例示しているにすぎない。さらには、異なる図面における同一の参照番号は、同一または同様の要素を識別し得る。
【手続補正書】
【提出日】2023-06-07
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ニューラルネットワークのアーキテクチャを決定するための、コンピュータにより実施される方法であって、
1つ以上のプロセッサが、ターゲットコンピューティングリソースを指定する情報を受け付けることと、
前記1つ以上のプロセッサが、基本ニューラルネットワークのアーキテクチャを指定するデータを受信することと、
前記1つ以上のプロセッサが、前記ターゲットコンピューティングリソースを指定する情報と、前記基本ニューラルネットワークの複数のスケーリングパラメータとに応じて前記基本ニューラルネットワークをスケーリングするための複数のスケーリングパラメータ値を識別することとを含み、前記識別することは、
複数のスケーリングパラメータ値候補を選択することと、
前記複数のスケーリングパラメータ値候補に応じてスケーリングされた前記基本ニューラルネットワークの性能評価指標を決定することとを繰り返し実行することを含み、前記性能評価指標は、レイテンシ目的を含む複数の目的に応じて決定され、前記方法は、
前記1つ以上のプロセッサが、前記複数のスケーリングパラメータ値に応じてスケーリングされた前記基本ニューラルネットワークのアーキテクチャを用いて、スケーリングされたニューラルネットワークのアーキテクチャを生成することをさらに含む、方法。
【請求項2】
前記複数の目的は、複数の第2目的であり、
前記基本ニューラルネットワークのアーキテクチャを指定する前記データを受信することは、
1つ以上のプロセッサが、ニューラルネットワークタスクに対応する訓練データを受信することと、
前記1つ以上のプロセッサが、複数の第1目的に従って、前記訓練データを用いて探索空間のニューラルアーキテクチャ探索を実行して前記基本ニューラルネットワークのアーキテクチャを識別することとを含む、請求項1に記載の方法。
【請求項3】
前記探索空間は、ニューラルネットワーク層候補を含み、各ニューラルネットワーク候補層は、1つ以上の演算を実行するように構成され、
前記探索空間は、異なる活性化関数を含むニューラルネットワーク層候補を含む、請求項2に記載の方法。
【請求項4】
前記基本ニューラルネットワークのアーキテクチャは、複数のコンポーネント候補を含み、各コンポーネントは、複数のニューラルネットワーク層を有し、
前記探索空間は、第1の活性化関数を含むネットワーク層候補の第1コンポーネントと、前記第1の活性化関数とは異なる第2の活性化関数を含むネットワーク層候補の第2コンポーネントとを含む、ニューラルネットワーク層候補の複数のコンポーネント候補を含む、請求項3に記載の方法。
【請求項5】
前記ニューラルアーキテクチャ探索を実行するための前記複数の第1目的は、前記複数のスケーリングパラメータ値を識別するための前記複数の第2目的と同じである、請求項2に記載の方法。
【請求項6】
前記複数の第1目的および前記複数の第2目的は、前記訓練データを用いて訓練されたときの前記基本ニューラルネットワークの出力の正解率に対応する正解率目的を含む、請求項2に記載の方法。
【請求項7】
前記性能評価指標は、前記基本ニューラルネットワークが前記複数のスケーリングパラメータ値候補に応じてスケーリングされ、前記ターゲットコンピューティングリソース上にデプロイされたときの前記基本ニューラルネットワークが入力を受け付けることと、出力を生成することとの間のレイテンシの評価指標に少なくとも一部対応する、請求項1
~6のいずれか1項に記載の方法。
【請求項8】
前記レイテンシ目的は、前記基本ニューラルネットワークが前記ターゲットコンピューティングリソース上にデプロイされたときの前記基本ニューラルネットワークが入力を受け付けることと、出力を生成することとの間の最小レイテンシに対応する、請求項1
~7のいずれか1項に記載の方法。
【請求項9】
前記ターゲットコンピューティングリソースを指定する情報は、1つ以上のハードウェアアクセラレータを指定し、
前記スケーリングされたニューラルネットワークを前記1つ以上のハードウェアアクセラレータ上で実行して前記ニューラルネットワークタスクを実行することをさらに含む、請求項1
~8のいずれか1項に記載の方法。
【請求項10】
前記ターゲットコンピューティングリソースは、第1のターゲットコンピューティングリソースであり、前記複数のスケーリングパラメータ値は、複数の第1スケーリングパラメータ値であり、
前記方法は、
前記1つ以上のプロセッサが、前記第1のターゲットコンピューティングリソースとは異なる第2のターゲットコンピューティングリソースを指定する情報を受信することと、
前記第2のターゲットコンピューティングリソースを指定する情報に応じて前記基本ニューラルネットワークをスケーリングするための複数の第2スケーリングパラメータ値を識別することとをさらに含み、前記複数の第2スケーリングパラメータ値は、前記複数の第1スケーリングパラメータ値とは異なる、請求項9に記載の方法。
【請求項11】
前記複数のスケーリングパラメータ値は、複数の第1スケーリングパラメータ値であり、
前記方法は、複数の第2スケーリングパラメータ値を用いてスケーリングされた前記基本ニューラルネットワークアーキテクチャから、スケーリングされたニューラルネットワークアーキテクチャを生成することをさらに含み、前記第2スケーリングパラメータ値は、前記複数の第1スケーリングパラメータ値と、前記第1スケーリングパラメータ値の各々の値を均一に変更する1つ以上の複合係数に応じて生成される、請求項1
~9のいずれか1項に記載の方法。
【請求項12】
前記基本ニューラルネットワークは、畳み込みニューラルネットワークであり、前記複数のスケーリングパラメータは、前記基本ニューラルネットワークの深さ、前記基本ニューラルネットワークの幅、前記基本ニューラルネットワークの入力の分解能のうち、1つ以上を含む、請求項1
~9のいずれか1項に記載の方法。
【請求項13】
システムであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサに連結された、命令を格納した1つ以上の記憶装置とを備え、前記命令は、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、ニューラルネットワークのアーキテクチャを決定するための動作を実行させ、前記動作は、
ターゲットコンピューティングリソースを指定する情報を受け付ける動作と、
基本ニューラルネットワークのアーキテクチャを指定するデータを受信する動作と、
前記ターゲットコンピューティングリソースを指定する情報と、前記基本ニューラルネットワークの複数のスケーリングパラメータとに応じて前記基本ニューラルネットワークをスケーリングするための複数のスケーリングパラメータ値を識別する動作とを含み、前記識別する動作は、
複数のスケーリングパラメータ値候補を選択することと、
前記複数のスケーリングパラメータ値候補に応じてスケーリングされた前記基本ニューラルネットワークの性能評価指標を決定することとを繰り返し実行することを含み、前記性能評価指標は、レイテンシ目的を含む複数の目的に応じて決定され、前記動作は、さらに、
前記複数のスケーリングパラメータ値に応じてスケーリングされた前記基本ニューラルネットワークのアーキテクチャを用いて、スケーリングされたニューラルネットワークのアーキテクチャを生成する動作を含む、システム。
【請求項14】
前記複数の目的は、複数の第2目的であり、
前記基本ニューラルネットワークのアーキテクチャを指定する前記データを受信する動作は、
ニューラルネットワークタスクに対応する訓練データを受信することと、
複数の第1目的に従って、前記訓練データを用いて探索空間のニューラルアーキテクチャ探索を実行して前記基本ニューラルネットワークのアーキテクチャを識別することとを含む、請求項13に記載のシステム。
【請求項15】
前記探索空間は、ニューラルネットワーク層候補を含み、各ニューラルネットワーク候補層は、1つ以上の演算を実行するように構成され、
前記探索空間は、異なる活性化関数を含むニューラルネットワーク層候補を含む、請求項14に記載のシステム。
【請求項16】
前記ニューラルアーキテクチャ探索を実行するための前記複数の第1目的は、前記複数のスケーリングパラメータ値を識別するための前記複数の第2目的と同じである、請求項14に記載のシステム。
【請求項17】
前記複数の第1目的および前記複数の第2目的は、前記訓練データを用いて訓練されたときの前記基本ニューラルネットワークの出力の前記正解率に対応する正解率目的を含む、請求項14に記載のシステム。
【請求項18】
前記性能評価指標は、前記基本ニューラルネットワークが前記複数のスケーリングパラメータ値候補に応じてスケーリングされ、前記ターゲットコンピューティングリソース上にデプロイされたときの前記基本ニューラルネットワークが入力を受け付けることと、出力を生成することとの間のレイテンシの評価指標に少なくとも一部対応する、請求項13
~17のいずれか1項に記載のシステム。
【請求項19】
前記レイテンシ目的は、前記基本ニューラルネットワークが前記ターゲットコンピューティングリソース上にデプロイされたときの前記基本ニューラルネットワークが入力を受け付けることと、出力を生成することとの間の最小レイテンシに対応する、請求項13
~18のいずれか1項に記載のシステム。
【請求項20】
1つ以上のプロセッサに請求項1~12のいずれか1項に記載の方法を実行させる、プログラム。
【国際調査報告】