JP2023533631A - ハードウェア用に最適化されたニューラルアーキテクチャ検索 - Google Patents

ハードウェア用に最適化されたニューラルアーキテクチャ検索 Download PDF

Info

Publication number
JP2023533631A
JP2023533631A JP2022552370A JP2022552370A JP2023533631A JP 2023533631 A JP2023533631 A JP 2023533631A JP 2022552370 A JP2022552370 A JP 2022552370A JP 2022552370 A JP2022552370 A JP 2022552370A JP 2023533631 A JP2023533631 A JP 2023533631A
Authority
JP
Japan
Prior art keywords
neural network
architecture
network architecture
candidate neural
target set
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022552370A
Other languages
English (en)
Inventor
リー,ション
ジョピー,ノーマン・ポール
リー,コック・ブイ
タン,ミンキシン
パン,ルオミン
チェン,リグン
リー,アンドリュー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2023533631A publication Critical patent/JP2023533631A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

ハードウェアリソースのターゲットセット上で特定の機械学習タスクを実行するように構成されたタスクニューラルネットワークのためのアーキテクチャを決定するための、コンピュータ記憶媒体上で符号化されたコンピュータプログラムを含む方法、システム、および装置を開示する。タスクニューラルネットワークは、データセンタアクセラレータの集合などのハードウェアのターゲットセット上に展開されると、高精度および高速で特定の機械学習タスクを実行することが可能となり得る。

Description

関連出願の相互参照
本願は、2020年7月16日に出願された米国仮出願第63/052,927号に対する優先権を主張する、2020年9月30日に出願された米国出願第17/039,178号に対する優先権を主張するものである。先行出願の各々の開示は、本願の開示の一部とみなされ、引用により本願の開示に援用されている。
背景
本明細書は、ニューラルネットワークアーキテクチャを修正することに関する。
ニューラルネットワークは、受信された入力についての出力を予測するために非線形ユニットの1つ以上の層を採用する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つ以上の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層(すなわち、次の隠れ層または出力層)への入力として用いられる。ネットワークの各層は、パラメータのそれぞれのセットの現在値に従って、受信された入力から出力を生成する。
いくつかのニューラルネットワークは再帰型ニューラルネットワークである。再帰型ニューラルネットワークは、入力シーケンスを受信するとともに当該入力シーケンスから出力シーケンスを生成するニューラルネットワークである。特に、再帰型ニューラルネットワークは、現在の時間ステップで出力を計算する際に、前の時間ステップからのネットワークの内部状態のいくつかまたはすべてを用いることができる。再帰型ニューラルネットワークの一例として、1つ以上の長・短期記憶(LSTM)メモリブロックを含むLSTMニューラルネットワークが挙げられる。各LSTMメモリブロックは1つ以上のセルを含み得る。当該1つ以上のセルは各々、入力ゲート、忘却ゲート、および出力ゲートを含み、これらゲートは、セルが、たとえば、電流活性化を発生させる際に用いるために、または、LSTMニューラルネットワークの他のコンポーネントに提供するために、当該セルについての以前の状態を記憶することを可能にする。
概要
本明細書は、1つ以上のロケーションにおける1つ以上のコンピュータ上でコンピュータプログラムとして実装されるシステムが、特定のニューラルネットワークタスクを実行するように構成されたニューラルネットワークのためのアーキテクチャをどのように決定することができるかについて説明する。
本明細書で説明する主題の特定の実施形態は、以下の利点のうち1つ以上を実現するように実施することができる。
ニューラルアーキテクチャ検索(Neural Architecture Search:NAS)システムは、効果的かつ自動的に、すなわち、ユーザの介入なしで、特定のタスクのための高性能ニューラルネットワークをもたらすであろうニューラルネットワークアーキテクチャを選択することができる。このようにするために、これらのシステムは、強化学習、進化的検索、差別化可能な検索等に基づいた検索技術を含む、多種多様な検索技術のうちのいずれかを採用し得る。NASシステムは、特定のタスクに適合された新規のニューラルネットワークアーキテクチャを効果的に決定することができ、これにより、結果として得られるニューラルネットワークがタスクに対して改善された性能を有することを可能にする。一般に、これらのシステムは、起こり得るアーキテクチャの広い空間を効果的に探索して、特定のタスクに適合されたニューラルネットワークのためのアーキテクチャを識別することができる。
これらのシステムは、比較的高い精度で特定のタスクを実行するニューラルネットワークアーキテクチャをもたらすことができるが、このようなアーキテクチャは、ハードウェアリソースのターゲットセット上に展開されたときに、これらのタスクを比較的高速で実行することまたはこれらのタスクを効率的に実行することが必ずしも可能であるとは限らない。したがって、NASシステムによって生成されるニューラルネットワークアーキテクチャは、非常に正確であるにもかかわらず、それらの意図される用途のために必ずしも十分であるとは限らない可能性もある。いくつかの状況では、これは、少なくとも部分的には、このようなニューラルネットワークアーキテクチャが動作するであろうハードウェアリソースのターゲットセット向けに当該ニューラルネットワークアーキテクチャの設計が最適化されていないことに起因する可能性もある。
たとえば、いくつかの例では、このようなハードウェアリソースのターゲットセットは、1つ以上のテンソル処理ユニット(tensor processing unit:TPU)、1つ以上のグラフィックス処理ユニット(graphics processing unit:GPU)、またはそれらの組合せを含む1つ以上のデータセンタアクセラレータに対応し得る。TPUおよびGPUを含む新しく出現したデータセンタアクセラレータは、ニューラルネットワークなどの機械学習モデルからの計算能力についての増え続ける需要に追いついて行くために革新的なハードウェアアーキテクチャを採用している。このようなアクセラレータは、ニューラルネットワークにおけるコア演算として見なされ得る行列乗算を実行するように構成された行列積和ユニットまたは「行列ユニット」を含むので、機械学習用途に特に良く適している可能性もある。ニューラルネットワークアーキテクチャは、このようなアクセラレータ(たとえば、TPUおよびGPU)上では、中央処理装置(central processing unit:CPU)などのいくつかの他のタイプのハードウェアリソース上で達成できるよりもはるかに高い計算レート(Op/秒またはFLOP/秒)を達成することができる。しかしながら、このようなアクセラレータ上でピーク計算レートを達成するためには、ニューラルネットワークアーキテクチャの演算強度(Op/Byte、またはより具体的には、単位サイズのメモリにアクセスするときに実行される演算の平均数、たとえば、アクセスされるメモリバイト当たりのFLOP)は、他のタイプのハードウェアリソース(たとえば、CPU)上でピーク計算レートを達成するために、それよりもはるかに高くなければならない。このようなアクセラレータはまた、ニューラルネットワークアーキテクチャにおける乗算および加算演算が順次実行される場合、またはサイクル当たりの乗算および加算演算が少なすぎる場合、このようなアクセラレータの行列ユニットがアイドル状態になり得るので、他のタイプのハードウェアリソース(たとえば、CPU)よりも高い実行効率を達成するために、ニューラルネットワークアーキテクチャからのはるかに高い並列度を必要とする。このため、CPU上で比較的高速でタスクを実行することができるニューラルネットワークアーキテクチャは、必ずしもTPUまたはGPU上で比較的高速で同じタスクを実行することができるとは限らず、その逆の場合も同様であり得る。
いくつかの実現例では、本明細書で説明するNASシステムおよび技術のうちの1つ以上は、それらが実行されるであろうハードウェアリソースのターゲットセットに対して最適化されるニューラルネットワークアーキテクチャを選択しようとする可能性がある。そのようにするために、本明細書で説明するシステムおよび技術は、ニューラルネットワークアーキテクチャを選択するときに精度およびレイテンシの両方を考慮に入れた、ハードウェアリソースのターゲットセットと多目的性能メトリックとに特有の演算で増強された検索空間を用い得る。ハードウェアリソースのターゲットセットが、1つ以上のTPUおよび/またはGPUを含む1つ以上のデータセンタアクセラレータに対応する例の場合、本明細書で説明するNASシステムおよび技術のうちの1つ以上によって利用される検索空間は、増強された演算強度、並列性および/または実行効率を備えたニューラルネットワークアーキテクチャを提供し得る1つ以上の「アクセラレータフレンドリ」な演算を含み得る。たとえば、深度に関する畳み込みでは演算強度がより低くなってしまうので、いくつかの実現例では、本明細書で説明するNASシステムおよび技術のうちの1つ以上によって利用される検索空間は、演算強度を改善するために深度に関する畳み込みを隣接する1×1畳み込みと融合するための1つ以上の演算を含み得る。さらに、より大きい入力および出力深度であれば、データセンタアクセラレータ(たとえば、TPUおよび/またはGPU)においてより高度な並列性を提供し得るので、いくつかの実現例では、本明細書で説明するNASシステムおよび技術のうちの1つ以上によって利用される検索空間は、並列性を向上させるように入力テンソルを再形成するためにn×nカーネルでの畳み込みを用いる1つ以上の演算を含み得る。ここで、nは1よりも大きい整数値(たとえば、n=2)を表わしている。いくつかの例では、これらの演算のうちの1つ以上は、ストライド-2の2×2畳み込みなどの、ストライド-nのn×n畳み込みを用いる。このような畳み込み演算はまた、ニューラルネットワークアーキテクチャの容量および精度に利益をもたらす役割を果たし得る。加えて、いくつかの実現例では、本明細書で説明するNASシステムおよび技術のうちの1つ以上によって利用される検索空間は、データセンタアクセラレータ(たとえば、TPUおよび/またはGPU)における並列性の向上をもたらすアクティブ化機能を含み得る。
ニューラルネットワークアーキテクチャにおいて必要とされる計算の総数(FLOPS)はニューラルネットワークアーキテクチャの速度に比例しており、このため、計算がより少なければより高速のニューラルネットワークアーキテクチャが得られると一般に考えられているが、本明細書で説明するNASシステムおよび技術の開発時に、ニューラルネットワークアーキテクチャがデータセンタアクセラレータ(たとえばTPUおよび/またはGPU)上で動作する場合にその逆のことが当てはまることが判明した。このため、ニューラルネットワークアーキテクチャにおいて必要とされる計算の総数(FLOPS)は、単独では、このようなアクセラレータ上に展開されたときのニューラルネットワークアーキテクチャの性能の完全または正確な状態を表現し得ない可能性がある。少なくともこの理由のために、ハードウェアリソースのターゲットセット上に展開されたときの各候補ニューラルネットワークアーキテクチャの速度の実際の尺度は、本明細書で説明するシステムおよび技術のうちの1つ以上において決定および利用される多目的性能メトリックに組み入れられてもよい。たとえば、いくつかの実現例では、本明細書で説明するシステムおよび技術は、候補ニューラルネットワークアーキテクチャがタスクを実行する際の精度の尺度を取得し、ハードウェアリソースのターゲットセット(たとえば、1つ以上のTPUおよび/またはGPU)上で候補ニューラルネットワークアーキテクチャを実行して、ハードウェアリソースのターゲットセット上に展開されたときの候補ニューラルネットワークがタスクを実行する速度(たとえば、レイテンシ)の実際の尺度および/またはこのようなタスクの性能(たとえば、演算強度、実行効率など)を取得し、このような尺度に少なくとも部分的に基づいて最終的なニューラルネットワークアーキテクチャを選択するように動作し得る。このようにして、本明細書で説明するシステムおよび技術は、比較的高レベルの精度および比較的高速でタスクを実行するように構成された最終的なニューラルネットワークアーキテクチャの選択を提供し得る。これは、このようなニューラルネットワークアーキテクチャのエンドユーザに利益をもたらし得るだけでなく、これらのニューラルネットワークアーキテクチャが動作するハードウェアリソースのターゲットセットの所有者および/またはオペレータに有意なコスト削減をももたらし得る。
本明細書に記載される主題の1つ以上の実施形態の詳細は、添付の図面および以下の説明に記載される。当該主題の他の特徴、局面、および利点は、以下の説明、添付の図面、および添付の特許請求の範囲から明らかになるだろう。
例示的なニューラルアーキテクチャ検索システムを示す図である。 例示的なニューラルネットワークアーキテクチャを示す図である。 ハードウェアリソースのターゲットセット上に展開されたときに特定の機械学習タスクを実行するように構成されたタスクニューラルネットワークのためのアーキテクチャを決定するための例示的なプロセスを示すフロー図である。 1つ以上の候補ニューラルネットワークアーキテクチャを識別するために候補ニューラルネットワークアーキテクチャの空間内で検索を実行するためのプロセスの反復を表わす例示的なプロセスを示すフロー図である。 特定の機械学習タスクについてネットワーク入力のための出力を生成するためにタスクニューラルネットワークを用いるための例示的なプロセスを示すフロー図である。
さまざまな図面における同様の参照番号および符号は同様の要素を示す。
詳細な説明
本明細書は、1つ以上のロケーションにおける1つ以上のコンピュータ上にコンピュータプログラムとして実装されるシステムであって、ハードウェアリソースのターゲットセット上で特定の機械学習タスクを実行するように構成されたタスクニューラルネットワークのためのアーキテクチャを決定するシステムについて説明する。
タスクニューラルネットワークは、任意の種類のデジタルデータ入力を受信するとともに、当該入力に基づいて任意の種類のスコア、分類、または回帰出力を生成するように構成することができる。言い換えれば、タスクニューラルネットワークが実行するように構成された特定の機械学習タスクは、スコアリングタスク、分類タスク、および/または回帰タスクを含む多種多様なタスクのいずれかに対応し得る。以下で説明するように、このようなタスクは、画像、テキスト、音声、および他のデータの処理を伴う応用例等の広範囲の応用例において有用であり得る。
たとえば、タスクニューラルネットワークへの入力が画像であるかまたは画像から抽出された特徴である場合、所与の画像についてタスクニューラルネットワークによって生成される出力は、オブジェクトカテゴリのセットの各々についてのスコアであり得る。ここで、各スコアは、画像がそのカテゴリに属するオブジェクトの画像を含む推定尤度を表わす。
別の例として、タスクニューラルネットワークへの入力がインターネットリソース(たとえば、ウェブページ)、ドキュメント、もしくはドキュメントの部分、または、インターネットリソース、ドキュメント、もしくはドキュメントの部分から抽出された特徴である場合、所与のインターネットリソース、ドキュメント、またはドキュメントの部分についてタスクニューラルネットワークによって生成される出力は、トピックのセットの各々についてのスコアであり得る。ここで、各スコアは、インターネットリソース、ドキュメント、またはドキュメント部分がトピックに関するものである推定尤度を表わす。
別の例として、タスクニューラルネットワークへの入力が特定の広告についての印象コンテキストの特徴である場合、タスクニューラルネットワークによって生成される出力は、特定の広告がクリックされるであろう推定尤度を表わすスコアであり得る。
別の例として、タスクニューラルネットワークへの入力が、ユーザについての個人化された推奨の特徴、たとえば、推奨についてのコンテキストを特徴付ける特徴、たとえば、ユーザによって行われた以前のアクションを特徴付ける特徴である場合、タスクニューラルネットワークによって生成される出力は、コンテンツアイテムのセットの各々についてのスコアであり得る。ここで、各スコアは、コンテンツアイテムが推奨されることに対してユーザが好意的に応答するであろう推定尤度を表わす。
別の例として、タスクニューラルネットワークへの入力が1つの言語のテキストのシーケンスである場合、タスクニューラルネットワークによって生成される出力は、別の言語のテキスト部分のセットの各々についてのスコアであり得る。ここで、各スコアは、他の言語のテキスト部分が当該他の言語への入力テキストの適切な翻訳である推定尤度を表わす。
別の例として、タスクニューラルネットワークへの入力が発話を表わすシーケンスである場合、タスクニューラルネットワークによって生成される出力は、テキスト部分のセットの各々についてのスコアであり得る。ここで、各スコアは、テキスト部分が発話についての正確な写しである推定尤度を表わす。
いくつかの例では、タスクニューラルネットワークのためのアーキテクチャを決定するシステムは、図1を参照して以下でさらに詳細に説明するように、システム100に対応し得る。同様に、いくつかの例では、タスクニューラルネットワークのアーキテクチャは、それぞれ図1および図2を参照して以下でさらに詳細に説明するように、ニューラルネットワークアーキテクチャ150および200の一方または両方に対応し得る。
図1は、例示的なニューラルアーキテクチャ検索(NAS)システム100を示す。ニューラルアーキテクチャ検索システム100は、以下で説明されるシステム、コンポーネントおよび技術が実装され得る、1つ以上のロケーションにおける1つ以上のコンピュータ上でコンピュータプログラムとして実装されるシステムの一例である。
ニューラルアーキテクチャ検索システム100は、ハードウェアリソースのターゲットセット上で特定の機械学習タスクを実行するように構成されたタスクニューラルネットワークのためのアーキテクチャを決定するシステムである。当該アーキテクチャは、ニューラルネットワーク内の層の数、層の各々によって実行される演算、およびニューラルネットワーク内の層間の接続性、すなわち、どの層がニューラルネットワーク内の他のどの層から入力を受信するか、を定義している。上述したように、タスクニューラルネットワークは、デジタルデータ入力を受信するとともに、当該入力に基づいて出力を生成するために特定の機械学習タスク(たとえば、スコアリング、分類、回帰など)を実行するように構成され得る。システム100によって決定されるアーキテクチャは、ニューラルネットワーク内の層の数、層の各々によって実行される演算、およびニューラルネットワーク内の層間の接続性、すなわち、どの層がニューラルネットワーク内の他のどの層から入力を受信するか、を定義する。
ニューラルアーキテクチャ検索システム100は、コントローラ110と、トレーニングエンジン120と、ターゲットハードウェア展開エンジン130と、性能測定エンジン140とを含む。簡潔に述べると、以下でさらに詳細に説明するように、コントローラ110は、事前に選択された候補ニューラルネットワークアーキテクチャの性能尺度(たとえば、多目的性能メトリック142)に基づいて、候補アーキテクチャ検索空間111から候補ニューラルネットワークアーキテクチャを繰返し選択する。トレーニングエンジン120は、トレーニングデータ102および検証セット104を用いて、コントローラ110によって選択された各候補ニューラルネットワークアーキテクチャをトレーニングして、特定の機械学習タスクを実行するとともに、特定の機械学習タスクに対するそれぞれのトレーニング済み候補ニューラルネットワークアーキテクチャの性能に基づいて、各々のトレーニング済み候補ニューラルネットワークアーキテクチャについての第1の性能メトリック122を決定する。ターゲットハードウェア展開エンジン130は、ハードウェアリソースのターゲットセット(たとえば、データセンタ内の集合ハードウェアアクセラレータ)上で各々のトレーニング済み候補ニューラルネットワークアーキテクチャを実行し、ハードウェアリソースのターゲットセット上に展開されたときのそれぞれのトレーニング済み候補ニューラルネットワークアーキテクチャの性能に基づいて、各々のトレーニング済み候補ニューラルネットワークアーキテクチャについての第2の性能メトリック132を決定する。性能測定エンジン140は、それぞれのトレーニング済み候補ニューラルネットワークアーキテクチャについて決定された第1の性能メトリック122および第2の性能メトリック132に基づいて、各々のトレーニング済み候補ニューラルネットワークアーキテクチャについての多目的性能メトリック142を決定する。いくつかの例では、性能測定エンジン140はさらに、各々のトレーニング済み候補ニューラルネットワークアーキテクチャについて決定された多目的性能メトリック142をコントローラ110に提供し、次いで、当該コントローラ110は、当該多目的性能メトリック142に少なくとも部分的に基づいて候補アーキテクチャ検索空間111から1つ以上の追加の候補ニューラルネットワークアーキテクチャを選択する。
一例として、コントローラ110は、1つ以上の事前に選択された候補ニューラルネットワークアーキテクチャについて決定された多目的性能メトリック142に少なくとも部分的に基づいて、候補アーキテクチャ検索空間111からk番目の候補ニューラルネットワークアーキテクチャを選択し得る。たとえば、k番目の候補ニューラルネットワークアーキテクチャの選択は、コントローラ110によって選択された(k-1)番目の候補ニューラルネットワークアーキテクチャについて決定された多目的性能メトリック142、コントローラ110によって選択された(k-2)番目の候補ニューラルネットワークアーキテクチャについて決定された多目的性能メトリック142、などに少なくとも部分的に基づいている。(多目的性能メトリック142について、以下でより詳細に説明する。)この例では、トレーニングエンジン120は、次いで、トレーニングデータ102および検証セット104を用いて、コントローラ110によって選択されるk番目の候補ニューラルネットワークアーキテクチャのインスタンスをトレーニングして、特定の機械学習タスクを実行するとともに、特定の機械学習タスクのその性能に基づいて、k番目の候補ニューラルネットワークアーキテクチャのトレーニング済みインスタンスについて第1の性能メトリック122を決定し得る。さらに、この例では、ターゲットハードウェア展開エンジン130は、ハードウェアリソースのターゲットセット(たとえば、データセンタ内の集合ハードウェアアクセラレータ)上でk番目の候補ニューラルネットワークアーキテクチャのトレーニング済みインスタンスを実行し、ハードウェアリソースのターゲットセット上に展開されたときのその性能に基づいて、k番目の候補ニューラルネットワークアーキテクチャのトレーニング済みインスタンスについての第2の性能メトリック132を決定し得る。次いで、性能測定エンジン140は、この例では、k番目の候補ニューラルネットワークアーキテクチャのトレーニング済みインスタンスについて、トレーニングエンジン120およびターゲットハードウェア展開エンジン130によって決定された第1の性能メトリック122および第2の性能メトリック132に基づいて、コントローラ110によって選択されたk番目の候補ニューラルネットワークアーキテクチャについての多目的性能メトリック142を決定し得る。この例では、性能測定エンジン140は、コントローラ110によって選択されたk番目の候補ニューラルネットワークアーキテクチャについて決定された多目的性能メトリック142を提供してもよく、次いで、コントローラ110によって選択されたk番目の候補ニューラルネットワークアーキテクチャについて決定された多目的性能メトリック142、コントローラ110によって選択された(k-1)番目の候補ニューラルネットワークアーキテクチャについて決定された多目的性能メトリック142、コントローラ110によって選択された(k-2)番目の候補ニューラルネットワークアーキテクチャについて決定された多目的性能メトリック142などに少なくとも部分的に基づいて、候補アーキテクチャ検索空間111から(k+1)番目の候補ニューラルネットワークアーキテクチャを選択し得る。
概して、トレーニングデータ102および検証セット104はともに、ニューラルネットワーク入力のセットと、各ネットワーク入力ごとに、特定のタスクを実行するためにニューラルネットワークによって生成されるべきそれぞれのターゲット出力とを含む。たとえば、トレーニングデータのより大きなセットは、トレーニングデータ102および検証セット104を生成するためにランダムに区分けされていてもよい。
システム100は、さまざまな方法のいずれかでトレーニングデータ102および検証セット104を受信し得る。たとえば、システム100は、たとえば、当該システム100によって利用可能にされるアプリケーションプログラミングインターフェイス(application programming interface:API)を用いて、データ通信ネットワークを介して、システムの遠隔ユーザからのアップロードとしてトレーニングデータを受信し得るとともに、当該アップロードされたデータをトレーニングデータ102および検証セット104にランダムに分割し得る。別の例として、システム100は、ニューラルネットワークをトレーニングするために、システム100によって既に維持されているどのデータを用いるべきかを指定する入力をユーザから受信し、次いで、当該指定されたデータをトレーニングデータ102と検証セット104とに分割することができる。
コントローラ110は、候補アーキテクチャ検索空間111から候補ニューラルネットワークアーキテクチャを選択し、選択された候補ニューラルネットワークアーキテクチャを定義する出力112を生成するように構成される。候補アーキテクチャ検索空間111は、候補ニューラルネットワークアーキテクチャのコンポーネントによって実行され得る演算のセットまたはリストを含み得る。候補アーキテクチャ検索空間111において反映される演算は、システム100が候補ニューラルネットワークアーキテクチャを構築、設計、または開発し得る基となる構築ブロックとして見なされてもよい。いくつかの例では、候補アーキテクチャ検索空間111から各候補ニューラルネットワークアーキテクチャを選択するために、コントローラ110は、各候補ニューラルネットワークアーキテクチャの1つ以上のコンポーネントの各々について、候補アーキテクチャ検索空間111において反映された演算のセットまたはリストから、それぞれのコンポーネントによって実行されるべき演算を選択するように構成される。
いくつかの実現例では、候補アーキテクチャ検索空間111において反映される演算のセットまたはリストは、候補ニューラルネットワークアーキテクチャがハードウェアリソースのターゲットセットのいくつかの属性を活用するように動作するかまたは機能するように意図されている対象のハードウェアリソースのターゲットセットに固有の演算を含み得る。このため、ハードウェアリソースのターゲットセットが1つ以上のTPUおよび/またはGPUに対応する例では、候補アーキテクチャ検索空間111において反映される演算のセットまたはリストは、改善された演算強度、並列性、および/または実行効率を促進する演算を含み得る。このようにして、候補アーキテクチャ検索空間111を用いてコントローラ110によって選択される候補ニューラルネットワークアーキテクチャは、ハードウェアリソースのターゲットセット上に展開されたときに比較的高速で特定のタスクを実行することができる可能性がより高くなり得る。特に、ハードウェアリソースのターゲットセットが1つ以上のTPUおよび/またはGPUに対応する例では、候補アーキテクチャ検索空間111において反映される演算のセットまたはリストは、深度に関する畳み込みを隣接する1×1畳み込みと融合するための1つ以上の演算、入力テンソルの空間的広がりを減少させつつ入力テンソルの深度を増大させることによって当該入力テンソルを再形成する1つ以上の空間-深度間の畳み込み演算(たとえば、2×2畳み込み)、または、それらの組合せを含み得る。いくつかの実現例では、候補アーキテクチャ検索空間111において反映される演算のセットまたはリストに含まれる1つ以上の空間-深度間の演算は、ストライド-nのn×n畳み込み(たとえば、n×nカーネルでの畳み込みを用いる演算)を用いる1つ以上の演算を含み得る(ここで、nは1よりも大きい整数値(たとえば、2または4)を表わす)とともに、
H×W×Cテンソル入力を、
Figure 2023533631000002
に再形成する役割を果たし得る。いくつかの例では、候補アーキテクチャ検索空間111において反映される演算のセットまたはリストはさらに、ハードウェアリソースのターゲットセットの1つ以上のメモリにおいて1つ以上のメモリ演算を実行することによって入力テンソルの形状を各々が修正する1つ以上の他のタイプの畳み込み演算および/または1つ以上の再形成演算を含む1つ以上の追加の演算を含み得る。たとえば、候補アーキテクチャ検索空間111の検索空間は、テンソルの要素をメモリ内の別のメモリロケーションに移動させることによって、もしくは、要素を或るメモリロケーションから別のメモリロケーションにコピーすることによって、またはこれら両方によって、入力テンソルを再形成する演算(たとえば、空間-バッチ間の演算)を含み得る。特定の例として、当該演算は、空間データのブロックを深度方向に再配置するものであり得る。より具体的には、この演算は、高さ寸法および幅寸法からの値を深度寸法に移動させた入力テンソルのコピーを出力する。いくつかの実現例では、この演算は空間-バッチ間の演算に対応する。
いくつかの例では、コントローラ110は、コントローラ110の動作を管理するパラメータ(本明細書では「コントローラパラメータ」と称される)に従って出力112を生成するように構成される。いくつかの実現例では、コントローラ110は、システム100の性能測定エンジン140および/またはシステム100内で生成される他のフィードバックを参照して以下でさらに詳細に説明するように、多目的性能メトリック142に少なくとも部分的に基づいて、候補アーキテクチャ検索空間111から少なくともいくつかの候補ニューラルネットワークアーキテクチャを選択するように構成される。前述の実現例のうちの少なくともいくつかでは、コントローラ110のコントローラパラメータのうちの1つ以上は、多目的性能メトリック142および/またはシステム100内で生成される他のフィードバックに少なくとも部分的に基づいて調節または調整され得る。コントローラ110は、強化学習、進化的探索、差別化可能な検索などに基づいて、NAS技術などの多種多様なNAS技術のいずれかを用いて、候補ニューラルネットワークアーキテクチャを選択してもよく、および/またはこのような候補ニューラルネットワークアーキテクチャを指定する出力112を生成してもよい。いくつかの例では、コントローラ110は、コントローラパラメータに従って出力シーケンスを生成するように構成された、再帰型ニューラルネットワーク(recurrent neural network:RNN)などのニューラルネットワークを表わすかまたは含む。概して、これらの例では、システム100は、コントローラパラメータの値を調節するようにコントローラ110をトレーニングすることによって、ニューラルネットワークのためのアーキテクチャを決定する。
コントローラ110によって選択されるとともにコントローラ110によって生成された出力112で表される各候補ニューラルネットワークアーキテクチャについて、トレーニングエンジン120は、トレーニングデータ102に関して出力112によって定義されるアーキテクチャを有するニューラルネットワークのインスタンスをトレーニングするとともに、検証セット104に関して当該トレーニング済みインスタンスの性能(たとえば、精度)を評価する。いくつかの実現例では、出力112によって定義されるアーキテクチャを有するニューラルネットワークのトレーニング済みインスタンスの性能を評価するために、トレーニングエンジン120は、特定の機械学習タスクに関して当該トレーニング済みインスタンスの性能の第1の性能メトリック122または尺度を決定する。いくつかの例では、所与の候補ニューラルネットワークアーキテクチャについて決定された第1の性能メトリック122は、候補ニューラルネットワークアーキテクチャが特定の機械学習タスクを実行することが可能であり得る精度のレベルを示し得る。
トレーニングエンジン120は、コントローラ110によって選択された候補ニューラルネットワークアーキテクチャについて決定された第1の性能メトリック122を、さらなる評価のために性能測定エンジン140に提供し得る。加えて、トレーニングエンジン120はまた、コントローラ110によって選択された候補ニューラルネットワークアーキテクチャのトレーニング済みインスタンス124をターゲットハードウェア展開エンジン130に提供し得る。
ターゲットハードウェア展開エンジン130は、ハードウェアリソースのターゲットセット上に展開されたときのコントローラ110によって選択された(かつ出力112によって定義された)各ニューラルネットワークアーキテクチャの各トレーニング済みインスタンスの第2の性能メトリック132または性能の尺度を決定するために1つ以上の演算を実行する。いくつかの例では、所与の候補ニューラルネットワークアーキテクチャについて決定された第2の性能メトリック132は、候補ニューラルネットワークアーキテクチャがハードウェアリソースのターゲットセット上に展開されたときに特定の機械学習タスクを実行することが可能であり得る速度またはレイテンシのレベルを示し得る。所与の候補ニューラルネットワークアーキテクチャについての第2の性能メトリック132を決定するために、ターゲットハードウェア展開エンジン130は、ハードウェアリソースのターゲットセット上で候補ニューラルネットワークアーキテクチャを実行するための1つ以上の演算を実行し得る。
上述したように、いくつかの実現例では、ハードウェアリソースのターゲットセットは1つ以上のTPUおよび/またはGPUに対応し得る。例のうちいくつかにおいては、ハードウェアリソースのターゲットセットは、1つ以上のTPU、GPU、他のタイプの行列マシンおよび/もしくはベクトルマシン、またはそれらの組合せを含み得る、データセンタ内のハードウェアアクセラレータの集合に対応し得る。主に1つ以上のTPUおよび/またはGPUに関して説明されるが、いくつかの例では、ハードウェアリソースのターゲットセットが1つ以上のCPU、エッジもしくはモバイルコンピューティングデバイス、または他のコンピューティングユニットに対応し得ることが理解されるはずである。このような例では、候補アーキテクチャ検索空間111において反映される演算のセットまたはリストは、ハードウェアリソースのターゲットセットに固有であるかまたはハードウェアリソースのターゲットセットのいくつかの属性を活用する役割を果たす演算を含み得る。いくつかの実現例では、ハードウェアリソースのターゲットセットは、上述のタイプのハードウェアリソース(たとえば、TPU、GPU、CPU、エッジまたはモバイルコンピューティングデバイスなど)のうちの2つ以上の組合せに対応し得る。
いくつかの例では、ハードウェアリソースのターゲットセットは、システム100の一部として含まれ得るが、ターゲットハードウェア展開エンジン130に関連する演算を実行するために予約され得る。他の例では、ハードウェアリソースのターゲットセットは、ターゲットハードウェア展開エンジン130および/またはシステム100の1つ以上の他のコンポーネントに通信可能に結合され得る。いずれの場合も、ターゲットハードウェア展開エンジン130は、コントローラ110によって選択された候補ニューラルネットワークアーキテクチャのトレーニング済みインスタンスをハードウェアリソースのターゲットセット上に展開し、それに基づいて第2の性能メトリック132を決定するように構成される。
より具体的には、所与の候補ニューラルネットワークのトレーニング済みインスタンスをハードウェアリソースのターゲットセット上に展開すると、ターゲットハードウェア展開エンジン130は、(i)ハードウェアリソースのターゲットセット上に展開されたときの、候補ニューラルネットワークを用いて出力を生成するレイテンシ、(ii)ハードウェアリソースのターゲットセット上に展開されたときの候補ニューラルネットワークの演算強度、および/または、(iii)ハードウェアリソースのターゲットセット上に展開されたときの候補ニューラルネットワークの実行効率、を測定または決定し得る。いくつかの実現例では、第2の性能メトリック132は、前述のパラメータ(i)、(ii)、および(iii)のうちの1つ以上に少なくとも部分的に基づいている。いくつかの実現例では、ターゲットハードウェア展開エンジン130は、前述のパラメータ(i)、(ii)、および(iii)のうちの1つ以上に少なくとも部分的に基づいて、候補ニューラルネットワークアーキテクチャについての第2の性能メトリック132を決定し得る。これらの実現例のうちの少なくともいくつかでは、ターゲットハードウェア展開エンジン130は、候補ニューラルネットワークについての第2の性能メトリック132として前述のパラメータ(i)、(ii)、および(iii)のうちの1つ以上を用い得る。いくつかの例では、前述のパラメータ(i)、(ii)、および(iii)の各々は、第2の性能メトリック132に直接的または間接的に反映される。他の構成も実現可能である。
いくつかの実現例では、ハードウェアリソースのターゲットセットは、システム100の一部として含まれ得るとともに、ターゲットハードウェア展開エンジン130に加えて、システム100の1つ以上のコンポーネントに関連する演算を実行するために活用され得る。いくつかのこのような実現例では、ターゲットハードウェア展開エンジン130の機能のいくつかまたはすべては、トレーニングエンジン120にまとめられ得るか、またはその逆も同様であり得る。たとえば、いくつかのこのような実現例では、システム100は、第1の性能メトリック122および第2の性能メトリック132を同時にまたはほぼ同時に決定してもよい。さらに、いくつかの例では、ターゲットハードウェア展開エンジン130は、候補ニューラルネットワークアーキテクチャについての第2の性能メトリック132を決定するために、コントローラ110によって選択された候補ニューラルネットワークアーキテクチャのトレーニング済みインスタンスをハードウェアリソースのターゲットセット上に必ずしも展開しない可能性もあるが、代わりに、第2の性能メトリック132を概算または予測するために1つ以上の演算を実行する可能性がある。たとえば、いくつかのこのような例では、ターゲットハードウェア展開エンジン130は、第2の性能メトリック132を計算するかまたはハードウェアリソースのターゲットセット上に展開されたときの所与の候補ニューラルネットワークの性能をシミュレートして、その1つ以上の尺度を取得するために、1つ以上のモデルとともに、ハードウェアリソースのターゲットセットの既知または所定のパラメータを活用してもよい。他の構成も実現可能である。
いくつかの実現例では、本明細書で説明するレイテンシ、演算強度、および実行効率は以下のように定義され得る。
Figure 2023533631000003
ここで、W(FLOP)は、ニューラルネットワークアーキテクチャにおいて必要とされる計算の量であり、Q(バイト)は、ニューラルネットワークアーキテクチャの実行中に受けるメモリトラフィック(メモリ転送のバイト)であり、Iは、ニューラルネットワークアーキテクチャの演算強度であり、C(FLOP/秒)は、ニューラルネットワークアーキテクチャによって達成される計算レートであり、CIdealは、ニューラルネットワークアーキテクチャによって達成される理想的な計算レートであり、Eは、ニューラルネットワークの実行効率であり、bは、ハードウェアリソースのターゲットセットのメモリ帯域幅であり、CMaxは、ハードウェアリソースのターゲットセット上で実現可能なピーク計算レートであり、Rは、ハードウェアリソースのターゲットセット上でピーク計算レートを達成するためにニューラルネットワークアーキテクチャに必要とされる「隆起点」または最小演算強度である。上記の式にて実証されるように、CはCIdealおよびE(たとえば、Eは、C/CIdealとして定義される)によって決定され、CIdealはI、b、CMaxおよびRによって決定される。パラメータb、CMaxおよびRは、ハードウェアリソースのターゲットセットに関連する定数値であり得る。実際には、ニューラルネットワークアーキテクチャのエンドツーエンド推論レイテンシは、W、I、およびEの関数である。このため、データセンタアクセラレータに関するレイテンシ(たとえば、TPU、GPUなど)を最適化するために、システム100は、W(FLOP)の低減のみを試みるのではなく、W、IおよびEを全体的にかつ同時に最適化しようと試みることもある。システム100はこのように動作するように構成され得る。なぜなら、IおよびEを考慮せずにW(FLOP)を低減することにより、CがWよりもはるかに急速に低下する可能性があり、これによりレイテンシの低下を引起こす可能性があるからである。
トレーニングエンジン120と同様に、ターゲットハードウェア展開エンジン130は、コントローラ110によって選択された候補ニューラルネットワークアーキテクチャについて決定された第2の性能メトリック132を、さらなる評価のために性能測定エンジン140に提供し得る。次いで、性能測定エンジン140は、第1の性能メトリック122および第2の性能メトリック132を用いて、多目的性能メトリック142を決定する。所与の候補ニューラルネットワークアーキテクチャについて性能測定エンジン140によって決定される多目的性能メトリック142は、候補ニューラルネットワークアーキテクチャについてトレーニングエンジン120によって決定された第1の性能メトリック122を、候補ニューラルネットワークアーキテクチャについてターゲットハードウェア展開エンジン130によって決定された第2の性能メトリック132と組合わせてもよい。一例として、所与の候補ニューラルネットワークアーキテクチャが特定の機械学習タスクを実行することが可能であり得る精度のレベルを第1の性能メトリック122が示しており、かつ、ハードウェアリソースのターゲットセット上に展開されたときの、候補ニューラルネットワークアーキテクチャによって特定の機械学習タスクを実行するレイテンシを第2の性能メトリック132が示しているいくつかの実現例の場合、コントローラ110によって選択されたm番目の候補ニューラルネットワークアーキテクチャについて決定される多目的性能メトリック142は、以下のように精度とレイテンシとを組合わせ得る。
Figure 2023533631000004
ここで、ACCURACY(m)は、m番目の候補ニューラルネットワークアーキテクチャが、m番目の候補ニューラルネットワークアーキテクチャについてトレーニングエンジン120によって決定される第1の性能メトリック122によって示されるように特定の機械学習タスクを実行することが可能であり得る精度の測定されたレベルであり、LATENCYActual(m)は、m番目の候補ニューラルネットワークアーキテクチャについてターゲットハードウェア展開エンジン130によって決定される第2の性能メトリック132によって示されるように、ハードウェアリソースのターゲットセット上に展開されたときの、m番目の候補ニューラルネットワークアーキテクチャによる特定の機械学習タスクを実行する場合の測定されたレイテンシであり、LATENCYTarget(m)は、ハードウェアリソースのターゲットセットの既知のまたは概算された属性、ニューラルネットワークアーキテクチャ(たとえば、ユーザによって指定されるターゲットレイテンシ)を検索しているユーザによって提供される入力、および/または、現在の演算条件に基づいて決定されるような、ハードウェアリソースのターゲットセット上に展開されたときの、m番目の候補ニューラルネットワークアーキテクチャによって特定の機械学習タスクを実行するターゲットのまたは理想的なレイテンシであり、ωは、多目的性能メトリック142においてレイテンシ性能が与えられる重みを決定するために用いられる因子である。いくつかの例では、ωの値は調節可能であり得る。たとえば、これらの例のうちのいくつかでは、ωの値は、ニューラルネットワークアーキテクチャを探索しているユーザによって提供される入力に基づいて決定されてもよい。
同様に、第1の性能メトリック122および第2の性能メトリック132が、前述の例におけるものとほぼ同じように、それぞれ精度およびレイテンシを示すとともに、第2の性能メトリック132がさらに、ハードウェアリソースのターゲットセット上に展開されたときの所与の候補ニューラルネットワークアーキテクチャの演算強度と、ハードウェアリソースのターゲットセット上に展開されたときの候補ニューラルネットワークアーキテクチャの実行効率とを示すいくつかの実現例の場合、コントローラ110によって選択されるm番目の候補ニューラルネットワークアーキテクチャについて決定される多目的性能メトリック142は、精度、レイテンシ、演算強度、および実行効率を以下のとおり組合わせ得る。
Figure 2023533631000005
ここで、IActual(m)は、m番目の候補ニューラルネットワークアーキテクチャについてターゲットハードウェア展開エンジン130によって決定される第2の性能メトリック132によって示されるように、ハードウェアリソースのターゲットセット上に展開されたときのm番目の候補ニューラルネットワークアーキテクチャの測定された演算強度であり、ITarget(m)は、ハードウェアリソースのターゲットセットの既知であるかまたは概算された属性、ニューラルネットワークアーキテクチャ(たとえば、ユーザによって指定されるターゲット演算強度)を検索しているユーザによって提供される入力、および/または、現在の演算条件に基づいて決定されるような、ハードウェアリソースのターゲットセット上に展開されたときのm番目の候補ニューラルネットワークアーキテクチャについてのターゲットのまたは理想的な演算強度であり、θは、演算強度が多目的性能メトリック142において与えられる重みを決定するために用いられる因子であり、EActual(m)は、m番目の候補ニューラルネットワークアーキテクチャについてターゲットハードウェア展開エンジン130によって決定される第2の性能メトリック132によって示されるように、ハードウェアリソースのターゲットセット上に展開されたときのm番目の候補ニューラルネットワークアーキテクチャの測定された実行効率であり、ETarget(m)は、ハードウェアリソースのターゲットセットの既知であるかまたは概算された属性、ニューラルネットワークアーキテクチャ(たとえば、ユーザによって指定されるターゲット演算強度)を検索しているユーザによって提供される入力、および/または、現在の演算条件に基づいて決定されるような、ハードウェアリソースのターゲットセット上に展開されたときのm番目の候補ニューラルネットワークアーキテクチャのターゲットのまたは理想的な実行効率であり、γは、多目的性能メトリック142において実行効率が与えられる重みを決定するために用いられる因子である。ここで、ωの値と同様に、いくつかの例では、θの値およびγの値の一方または両方が調節可能であり得る。たとえば、これらの例のうちのいくつかでは、θの値およびγの値の一方または両方は、ニューラルネットワークアーキテクチャを探索しているユーザによって提供される入力に基づいて決定され得る。第2の性能メトリック132によって示されているパラメータまたは示されていないパラメータに応じて、項が必要に応じて上述の式に挿入されるかまたは上述の式から削除され得ることを理解されたい。たとえば、多目的性能メトリック142を管理する式は、第2の性能メトリック132が(レイテンシおよび演算強度ではなく)実行効率に基づいて決定される状況では、レイテンシ項および演算強度項を省略してもよい。多目的性能メトリック142のための他の構成も実現可能である。より具体的には、ω、γ、θの値は、それぞれの検索要件に従ってそれぞれの値として決定することができる。多目的性能メトリック142における1つ以上の因子(たとえば、レイテンシ、演算強度、および実行効率)は、ω、γ、θの1つ以上の値をゼロに調整することによって省略することができる。
上述したように、いくつかの実現例では、多目的性能メトリック142がコントローラ110に提供され得るとともに、いくつかのこのような実現例では、追加の候補ニューラルネットワークアーキテクチャを選択するためにコントローラ110によって活用され得る。いくつかの例では、システム100は、多目的性能メトリック142を用いて、コントローラパラメータの現在値を更新して、タスクに関してコントローラ110によって生成される出力112によって定義されるアーキテクチャの予想性能を改善する。たとえば、システム100は、(たとえば、近接ポリシー最適化を用いて)多目的メトリック142の値を最大化するような態様でコントローラパラメータを更新してもよい。コントローラ110がニューラルネットワークを含む実現例の場合、多目的性能メトリック142は、コントローラ110のニューラルネットワークをトレーニングするために用いられる「報酬」として有効に機能し得る。このような態様でコントローラパラメータの値を繰返し更新することにより、システム100は、特定のタスクに対して高い性能を有するニューラルネットワークをもたらす出力112を最終的に生成するように、すなわち、コントローラ110によって提案されるアーキテクチャの検証セット104に対する予想される精度、ならびに、ハードウェアリソースのターゲットセット上に展開されるときの高い性能を最大化するように、すなわち、特定のタスクが実行されると予想される速度を最大化するように、コントローラ110に実行させるかまたは当該コントローラ110をトレーニングすることができる。
コントローラ110がトレーニングされる(たとえば、コントローラパラメータが収束する)と、候補アーキテクチャ検索空間111を使い果たすと、最大数の候補ニューラルネットワークアーキテクチャを生成すると、1つ以上の基準のセット(たとえば、1つ以上の閾値)を満たす多目的性能メトリック142で1つ以上の候補ニューラルネットワークアーキテクチャを生成すると、および/または、他のいくつかの終了基準が満たされると、システム100は、ニューラルネットワークのための最終的なアーキテクチャを選択することができる。最終的なアーキテクチャを選択するために、システム100は、コントローラパラメータのトレーニングされた値に従って新しい出力112を生成し、新しい出力112によって定義されるアーキテクチャをニューラルネットワークの最終的なアーキテクチャとして用いることができるか、または、トレーニングされた値に従って複数の新しい出力112を生成し、次いで、複数の新しい出力112によって定義される複数の候補ニューラルネットワークアーキテクチャのうちの1つを選択することができる。いくつかの例では、1つ以上の最終的なアーキテクチャを選択するために、システム100は、最大の第1の性能メトリック122、第2の性能メトリック132、および/または多目的性能メトリック142をもたらした1つ以上の候補ニューラルネットワークアーキテクチャを選択し得る。複数の新しい出力112が生成される実現例では、システム100は、検証セット104上の新しい各出力112によって定義されるアーキテクチャの性能を評価し、次いで、最高性能アーキテクチャ(たとえば、システム100によって考慮される他のすべての候補ニューラルネットワークアーキテクチャの値よりも大きい値の多目的性能メトリック142をもたらす候補ニューラルネットワークアーキテクチャ)を最終的なアーキテクチャとして選択することができる。代替的には、システム100はさらに、選択された各々のアーキテクチャをトレーニングし、次いで、さらなるトレーニング後にアーキテクチャの各々の性能を評価することができる。
次いで、ニューラルネットワーク検索システム100は、ニューラルネットワークの最終的なアーキテクチャを指定するアーキテクチャデータ150、すなわち、ニューラルネットワークの一部である層を指定するデータ、層間の接続性、および層によって実行される演算、を出力することができる。たとえば、ニューラルネットワーク検索システム100は、トレーニングデータを提出したユーザに対してアーキテクチャデータ150を出力することができる。場合によっては、データ150はまた、アーキテクチャを有していたニューラルネットワークのトレーニング済みインスタンスのトレーニングからの、ニューラルネットワークのパラメータについてのトレーニングされた値を含む。
いくつかの実現例では、アーキテクチャデータ150を出力する代わりに、または、アーキテクチャデータ150を出力することに加えて、システム100は、たとえば、最初から、またはアーキテクチャを有するニューラルネットワークのインスタンスをトレーニングした結果として生成されるパラメータ値を微調整するために、当該決定されたアーキテクチャを有するニューラルネットワークのインスタンスをトレーニングし、次いで、トレーニングされたニューラルネットワークを用いて、たとえば、システムによって提供されるAPIを介して、ユーザによって受信された要求を処理する。すなわち、システム100は、処理されるべき入力を受信し、トレーニングされたニューラルネットワークを用いて入力を処理するとともに、トレーニングされたニューラルネットワークによって生成される出力、または受信された入力に応答して生成される出力から導出されたデータを提供することができる。いくつかの例では、システム100は、上述の技術のうちの1つ以上を用いて最終的なアーキテクチャを選択し、次いで、モデルスケーリング技術を用いてアーキテクチャのサイズをスケールアップして、データ150において指定される最終的なアーキテクチャを生成してもよい。他の例では、1つ以上のシステムは、システム100からデータ150を受信し、このようなモデルスケーリング技術を用いて、データ150内で指定されるアーキテクチャのサイズをスケールアップしてもよい。
コントローラ110がRNNなどのニューラルネットワークを含むいくつかの実現例の場合、システム100は、分散方式でコントローラ110のニューラルネットワークをトレーニングし得る。すなわち、システム100は、コントローラ110のニューラルネットワークの複数のレプリカを含む。トレーニングが分散されているこれらの実現例のうちのいくつかでは、各レプリカは、レプリカによって出力される出力112のバッチについての性能メトリックを生成する専用トレーニングエンジンと、性能メトリックを用いてコントローラパラメータへの更新を決定する専用コントローラパラメータ更新エンジンとを有する。コントローラパラメータ更新エンジンが更新を決定すると、コントローラパラメータ更新エンジンは、コントローラパラメータ更新エンジンのすべてにとってアクセス可能な中央パラメータ更新サーバに更新を送信することができる。中央パラメータ更新サーバは、サーバによって維持されるコントローラパラメータの値を更新し、更新された値をコントローラパラメータ更新エンジンに送信することができる。場合によっては、複数のレプリカの各々ならびにそれらの対応するトレーニングエンジンおよびパラメータ更新エンジンは、トレーニングエンジンおよびパラメータ更新エンジンの他の各セットとは非同期的に動作することができる。
いくつかの例では、システム100によってニューラルネットワークのために選択されるとともに、ニューラルネットワーク検索システム100によって出力されるアーキテクチャデータ150によって指定される最終的なアーキテクチャは、図2を参照して以下でさらに詳細に説明されるように、ニューラルネットワークアーキテクチャ200の最終的なアーキテクチャと同様または同等であり得る。ニューラルネットワークのためのこのような最終的なアーキテクチャは、1つ以上のTPUおよび/またはGPU上での展開に特によく適している可能性がある。
図2は、例示的なニューラルネットワークアーキテクチャ200を示す。より具体的には、ニューラルネットワークアーキテクチャ200は、初期畳み込みサブネットワーク210と、空間-深度間の畳み込みサブネットワーク220と、1つ以上の追加のサブネットワーク230とを含む。上述したように、いくつかの例では、ニューラルネットワークアーキテクチャ200は、図1を参照して上述したように、システム100によって選択される最終的なニューラルネットワークアーキテクチャに対応し得る。
ニューラルネットワークアーキテクチャ200は、1つ以上のTPU、1つ以上のGPU、および/または1つ以上の他の行列マシンもしくはベクトルマシン上に展開されたときの最適化された性能のために設計される。このため、システム100は、システム100に関連付けられたハードウェアリソースのターゲットセットが1つ以上のTPUおよび/またはGPUを含む状況において、ニューラルネットワークアーキテクチャ200と同様または同等である最終的なニューラルネットワークアーキテクチャを選択する可能性がより高くなり得る。ニューラルネットワークアーキテクチャ200が、システム100によって選択される最終的なニューラルネットワークアーキテクチャに対応し得ると仮定すると、ニューラルネットワークアーキテクチャ200のコンポーネントは、図1を参照して上述したように、候補アーキテクチャ検索空間111において反映される演算のセットまたはリストからの演算を実行するように構成され得ることとなる。簡潔に述べると、以下でさらに詳細に説明するように、ニューラルネットワークアーキテクチャ200は、ネットワーク入力202を受信および処理して、特定の機械学習タスクについてネットワーク入力202のためのネットワーク出力232を生成するように構成される。たとえば、ニューラルネットワークアーキテクチャ200が実行するように構成される特定の機械学習タスクは画像処理タスクであり得る。この例では、ネットワーク入力202は、1つ以上の画像、すなわち、画像のピクセルの強度値を表わすデータに対応し得る。画像処理タスクの例は、画像分類、オブジェクト検出、画像セグメンテーションなどを含む。
ニューラルネットワークアーキテクチャ200の初期畳み込みサブネットワーク210は、ネットワーク入力202を受信するとともにネットワーク入力202の初期の特徴表現212を生成するように構成された1つ以上の畳み込み層を含み得る。初期畳み込みサブネットワーク210によって生成されるネットワーク入力202の初期の特徴表現212は、第1の空間的広がりおよび第1の数の深度チャネルを有する。初期畳み込みサブネットワーク210は、ネットワーク入力202の初期の特徴表現212を空間-深度間の畳み込みサブネットワーク220に出力するように構成され得る。
ニューラルネットワークアーキテクチャ200の空間-深度間の畳み込みサブネットワーク220は、初期畳み込みサブネットワーク210から初期の特徴表現212を受信し、初期の特徴表現212に対して空間-深度間の畳み込み演算を実行してネットワーク入力202の第2の特徴表現222を生成するように構成された1つ以上の畳み込み層を含み得る。空間-深度間の畳み込みサブネットワーク220によって生成されるネットワーク入力202の第2の特徴表現222は、第1の空間的広がりよりも小さい第2の空間的広がりと、第1の数の深度チャネルよりも大きい第2の数の深度チャネルとを有する。言い換えれば、空間-深度間の畳み込みサブネットワーク220が実行する空間-深度間の畳み込み演算は、入力テンソルの空間的広がりを減少させつつ入力テンソルの深度を増大させるものである。このような態様で畳み込みの入力テンソルを再形成することにより、この演算は、アクセラレータ(たとえば、TPUおよび/またはGPU)における並列性を改善させる役割を果たし得る。加えて、この演算はまた、ニューラルネットワークアーキテクチャの容量および精度に利益をもたらす役割を果たし得る。このような演算は、図1を参照して上述したように、候補アーキテクチャ検索空間111において反映される演算のセットまたはリストからの演算(たとえば、「アクセラレータフレンドリ」な演算)を表わし得る。
いくつかの実現例では、空間-深度間の畳み込みサブネットワーク220が実行する空間-深度間の畳み込み演算は、ストライド-nのn×n畳み込み(たとえば、n×nカーネルでの畳み込み)であり、ここで、nは、2または4などの1よりも大きい整数値を表わす。このような演算は、H×W×Cテンソルを
Figure 2023533631000006
に再形成する役割を果たし得る。重要なこととして、この演算は、精度を損なうことなく全体的な速度を改善させ得るように、総テンソル体積を変更することなく深度を増大させる。入力テンソルは、1つ以上のメモリ演算を実行することによって入力テンソルの形状を修正する空間-バッチ演算または他の再成形演算を用いて同様の態様で再成形され得るが、空間-深度間の畳み込みサブネットワーク220が実行する空間-深度間の畳み込み演算は以下の2つの利点を有する。すなわち、(i)畳み込みは、比較的高い演算強度および実行効率に関連付けられており、このため、TPUおよび/またはGPU上への展開に有利に変換され、(ii)演算強度および実行効率を改善するために入力テンソルを再形成することに加えて、ストライドnのn×n畳み込みはまた、対応するニューラルネットワークの容量に寄与するようにトレーニングされ得る。この演算は、1つ以上のメモリ演算を実行することによって入力テンソルの形状を修正する空間-バッチ間の演算または他の再形成演算の挙動を模倣するようにトレーニングすることができるとともに、並列性を高めることによってニューラルネットワークアーキテクチャの速度を改善しながらニューラルネットワークアーキテクチャの精度を改善するようにさらにトレーニングすることができる。
空間-深度間の畳み込みサブネットワーク220は、ネットワーク入力202の第2の特徴表現222をニューラルネットワークアーキテクチャ200の1つ以上の追加のサブネットワーク230に出力するように構成され得る。ニューラルネットワークアーキテクチャ200の1つ以上のサブネットワーク230は、空間-深度間の畳み込みサブネットワーク220から第2の特徴表現222を受信するとともにネットワーク入力202のためのネットワーク出力232を生成するように構成された1つ以上の層(たとえば、畳み込み層)を含み得る。
図3は、ハードウェアリソースのターゲットセット上に展開されたときに特定の機械学習タスクを実行するように構成されたタスクニューラルネットワークのためのアーキテクチャを決定するための例示的なプロセス300のフロー図である。便宜上、当該プロセス300は、1つ以上のロケーションに配置された1つ以上のコンピュータのシステムによって実行されるものとして説明されるだろう。たとえば、ニューラルアーキテクチャ検索システム、たとえば、本明細書に従って適切にプログラムされる図1のニューラルアーキテクチャ検索システム100は、プロセス300を実行することができる。
当該システムは、特定の機械学習タスクを実行するためのトレーニングデータを受信する(ステップ302)。たとえば、これは、図1を参照して上述したように、システム100がトレーニングデータ102および/または検証セット104を受信することに対応し得る。いくつかの例では、特定の機械学習タスクは画像処理タスクに対応し得る。
当該システムは、トレーニングデータを用いて、候補ニューラルネットワークアーキテクチャの空間内で検索を実行して、1つ以上の候補ニューラルネットワークアーキテクチャを識別する(ステップ304)。たとえば、これは、図1を参照して上述したように、システム100のコントローラ110が候補アーキテクチャ検索空間111内で検索を実行することに対応し得る。上述したように、候補ニューラルネットワークアーキテクチャを選択するために、および/または、このような候補ニューラルネットワークアーキテクチャを指定する出力を生成するために、コントローラ110は、強化学習、進化的検索、差別化可能な検索などに基づくNAS技術などの、多種多様なNAS技術のいずれかを用い得る。いくつかの実現例では、ステップ304の動作を実行するために、システムは、図4を参照して以下でさらに詳細に説明するように、プロセス400を繰返し実行する。
図4は、1つ以上の候補ニューラルネットワークアーキテクチャを識別するために候補ニューラルネットワークアーキテクチャの空間内で検索を実行するためのプロセスの繰返しを表わす例示的なプロセス400のフロー図である。便宜上、当該プロセス400は、1つ以上のロケーションに配置された1つ以上のコンピュータのシステムによって実行されるものとして説明されるだろう。たとえば、ニューラルアーキテクチャ検索システム、たとえば、本明細書に従って適切にプログラムされる図1のニューラルアーキテクチャ検索システム100は、プロセス400を実行することができる。上述したように、いくつかの実現例では、当該システムは、プロセス400をプロセス300のステップ304の一部として繰返し実行する。
当該システムは、候補ニューラルネットワークアーキテクチャの空間から候補ニューラルネットワークアーキテクチャを選択する(ステップ402)。たとえば、これは、図1を参照して上述したように、システム100のコントローラ110が候補アーキテクチャ検索空間111から或る候補ニューラルネットワークアーキテクチャを選択することに対応し得る。より具体的には、ステップ402において、当該システムは、候補ニューラルネットワークアーキテクチャの1つ以上のコンポーネントの各々について、空間-深度間の畳み込み演算を含む演算のセットから、それぞれのコンポーネントによって実行されるべき演算を選択する。演算のセットに含まれる空間-深度間の畳み込み演算は、入力テンソルの空間的広がりを減少させながら当該入力テンソルの深度を増大させる演算であり得る。加えて、当該演算のセットはさらに、1つ以上の他のタイプの畳み込み演算を含み得る。たとえば、当該演算のセットは、図1を参照して上述したように、候補アーキテクチャ検索空間111において反映された演算に対応していてもよく、これは、候補ニューラルネットワークアーキテクチャが、ハードウェアリソースのターゲットセットのいくつかの属性を利用するように動作するかまたは機能する役割を果たすことが意図されているハードウェアリソースのターゲットセットに特有の演算を含み得る。いくつかの例では、空間-深度間の畳み込み演算は、このような演算の一例を表わし得る。いくつかの実現例では、空間-深度間の畳み込み演算は、ストライド-nのn×n畳み込みであってよく、この場合、nは1よりも大きい整数値である。たとえば、いくつかのこのような実現例では、空間-深度間の畳み込み演算はストライド-2の2×2畳み込みであり得る。上述したように、この演算は、入力テンソルの形状を修正するためのハードウェアアクセラレータ上に有利に展開され得る。チャネル深度を増加させるための再形成演算により、畳み込みのためにより速い計算レート(Op/秒)をもたらすことができるとともに、このような再形成演算により、計算精度に影響を及ぼすことなく計算速度を向上させることができることが周知である。再形成演算の代替例としてストライド-2の2×2畳み込みを用いるアプローチは、TPUにおいて高い演算強度で畳み込みを効率的に計算することができるので有利である。加えて、当該システムはまた、モデル容量を改善するとともに実質的に同じテンソル再形成演算を模倣するためのトレーニングセットを前提として、ストライド2-の2×2畳み込みをトレーニングすることもできる。いくつかの実現例では、当該演算のセットがさらに含み得る1つ以上の再形成演算は各々が、ハードウェアリソースのターゲットセットの1つ以上のメモリにおいて1つ以上のメモリ演算を実行することによって入力テンソルの形状を修正する。たとえば、このような1つ以上のメモリ演算(たとえば、空間-バッチ間の演算)が含み得る1つ以上の演算は各々が、入力テンソルの要素をハードウェアリソースのターゲットセットの1つ以上のメモリ内のさまざまなメモリロケーションに移動させることによって、もしくは、要素を1つのメモリロケーションから別のメモリロケーションにコピーすることによって、または、これらの両方によって、入力テンソルを再形成する。特定の例として、これらの1つ以上の演算は、空間データのブロックを深度方向に再配置する1つ以上の演算を含み得る。より具体的には、これらの1つ以上の演算の各々は、高さ寸法および幅寸法からの値を深さ寸法に移動させる入力テンソルのコピーを出力し得る。
いくつかの例では、当該システムは、1つ以上の事前に選択された候補ニューラルネットワークアーキテクチャについて決定された性能の尺度に少なくとも部分的に基づいて、候補ニューラルネットワークアーキテクチャの空間から候補ニューラルネットワークアーキテクチャを選択する(ステップ402)。たとえば、これは、図1を参照して上述したように、コントローラ110が、当該コントローラ110によって選択された(k-1)番目の候補ニューラルネットワークアーキテクチャについて決定された多目的性能メトリック142や、当該コントローラ110によって選択された(k-2)番目の候補ニューラルネットワークアーキテクチャについて決定された多目的性能メトリック142などに少なくとも部分的に基づいて、候補アーキテクチャ検索空間111からk番目の候補ニューラルネットワークアーキテクチャを選択することに対応し得る。
当該システムは、選択された候補ニューラルネットワークアーキテクチャの性能の尺度を、その(i)特定の機械学習タスクに対する性能と、(ii)ハードウェアリソースのターゲットセット上に展開されたときの性能とに基づいて決定する(ステップ404)。たとえば、これは、図1を参照して上述したように、性能測定エンジン140が、コントローラ110によって選択された候補ニューラルネットワークアーキテクチャについての多目的メトリック142を決定することに対応し得る。
さらに、いくつかの例では、(i)特定の機械学習タスクに関する選択された候補ニューラルネットワークの性能は、選択された候補ニューラルネットワークアーキテクチャについてトレーニングエンジン120によって決定された第1の性能メトリック122に反映される、選択された候補ニューラルネットワークアーキテクチャの性能に対応し得る。このため、いくつかの実現例では、プロセス400は、システムがトレーニングデータを用いて候補ニューラルネットワークをトレーニングする1つ以上の追加のステップを含む。たとえば、これは、図1を参照して上述したように、トレーニングエンジン120が、トレーニングデータ102および/または検証セット104を用いて、選択された候補ニューラルネットワークアーキテクチャのインスタンスをトレーニングすることに対応し得る。いくつかの例では、このような1つ以上の追加のステップは、ステップ402の後に実行され得るが、ステップ404の前に実行されてもよい。
同様に、いくつかの例では、(ii)ハードウェアリソースのターゲットセット上に展開されたときの選択された候補ニューラルネットワークの性能は、選択された候補ニューラルネットワークアーキテクチャについてターゲットハードウェア展開エンジン130によって決定される第2の性能メトリック132に反映される、選択された候補ニューラルネットワークアーキテクチャの性能に対応し得る。このため、いくつかの実現例では、当該プロセス400は、当該システムがハードウェアリソースのターゲットセット上で候補ニューラルネットワークのトレーニング済みインスタンスを実行する、1つ以上の追加のステップを含む。たとえば、これは、図1を参照して上述したように、ターゲットハードウェア展開エンジン130が、システム100に関連付けられたハードウェアリソースのターゲットセット上で候補ニューラルネットワークのトレーニング済みインスタンスを実行することに対応し得る。いくつかの実現例では、ハードウェアリソースのターゲットセットは、1つ以上のTPU、GPU、他の行列マシンもしくはベクトルマシン、またはそれらの組合せに対応し得る。
いくつかの実現例では、(ii)ハードウェアリソースのターゲットセット上に展開されたときの選択された候補ニューラルネットワークアーキテクチャの性能は、ハードウェアリソースのターゲットセット上に展開されたときの選択された候補ニューラルネットワークアーキテクチャを用いて出力を生成するレイテンシに少なくとも部分的に基づいている。たとえば、このようなレイテンシは、以下のような選択された候補ニューラルネットワークアーキテクチャのレイテンシに対応し得る。この選択された候補ニューラルネットワークアーキテクチャのレイテンシは、ターゲットハードウェア展開エンジン130がハードウェアリソースのターゲットセット上で当該選択された候補ニューラルネットワークアーキテクチャを実行するときにターゲットハードウェア展開エンジン130によって測定されるとともに、当該選択された候補ニューラルネットワークアーキテクチャについてターゲットハードウェア展開エンジン130によって決定される第2の性能メトリック132に反映されるものである。
いくつかの実現例では、(ii)ハードウェアリソースのターゲットセット上に展開されたときの選択された候補ニューラルネットワークアーキテクチャの性能は、ハードウェアリソースのターゲットセット上に展開されたときの当該選択された候補ニューラルネットワークアーキテクチャの演算強度に少なくとも部分的に基づいている。たとえば、このような演算強度は、以下のような選択された候補ニューラルネットワークアーキテクチャの演算強度に対応し得る。この選択された候補ニューラルネットワークアーキテクチャの演算強度とは、ターゲットハードウェア展開エンジン130がハードウェアリソースのターゲットセット上で当該選択された候補ニューラルネットワークアーキテクチャを実行するときにターゲットハードウェア展開エンジン130によって測定されるとともに、当該選択された候補ニューラルネットワークアーキテクチャについてターゲットハードウェア展開エンジン130によって決定される第2の性能メトリック132に反映されるものである。いくつかの例では、このような演算強度は、図1を参照して上述したように、「I」パラメータに対応する。
いくつかの実現例では、(ii)ハードウェアリソースのターゲットセット上に展開されたときの選択された候補ニューラルネットワークアーキテクチャの性能は、ハードウェアリソースのターゲットセット上に展開されたときの当該選択された候補ニューラルネットワークアーキテクチャの実行効率に少なくとも部分的に基づいている。たとえば、このような実行効率は、以下のような選択された候補ニューラルネットワークアーキテクチャの実行効率に対応し得る。この選択された候補ニューラルネットワークアーキテクチャの実行効率とは、ターゲットハードウェア展開エンジン130がハードウェアリソースのターゲットセット上で当該選択された候補ニューラルネットワークアーキテクチャを実行するときにターゲットハードウェア展開エンジン130によって測定されるとともに、当該選択された候補ニューラルネットワークアーキテクチャについてターゲットハードウェア展開エンジン130によって決定された第2の性能メトリック132に反映されるものである。いくつかの例では、このような実行効率は、図1を参照して上述したように、「E」パラメータに対応する。
再び図3を参照すると、ステップ306において、当該システムは、識別された候補ニューラルネットワークアーキテクチャを用いて特定のタスクを実行するように構成されたタスクニューラルネットワークのためのアーキテクチャを生成する。たとえば、これは、図1を参照して上述したように、システム100が出力のためのデータ150を生成することに対応し得る。いくつかの例では、これは、システム100または当該システム100と通信する別のシステムが、タスクニューラルネットワークのためのアーキテクチャを生成するためにモデルスケーリング技術を用いて選択された最終的なアーキテクチャのサイズをスケールアップすることに対応し得る。
いくつかの実現例では、プロセス300は、当該システムが、生成されたアーキテクチャを有するタスクニューラルネットワークを用いて新しい入力に対して特定の機械学習タスクを実行する、1つ以上の追加のステップを含む。たとえば、これは、図1を参照して上述したようなデータ150に反映されたニューラルネットワークを用いる1つ以上のシステム、または、図2を参照して上述したようなニューラルネットワークアーキテクチャ200と同様または同等のアーキテクチャを有するニューラルネットワークが、特定の機械学習タスクを実行することに対応し得る。たとえば、このようなタスクは画像処理タスクに対応し得る。
いくつかの実現例では、当該プロセス300は、当該システムが特定の機械学習タスクを実行する際に用いるために当該生成されたアーキテクチャを指定するデータを提供する1つ以上の追加のステップを含む。たとえば、これは、図1を参照して上述したように、システム100が出力のためのデータ150を提供することに対応し得る。
図5は、特定の機械学習タスクについてのネットワーク入力についての出力を生成するためにタスクニューラルネットワークを用いるための例示的なプロセス500のフロー図である。便宜上、プロセス500は、1つ以上のロケーションに配置された1つ以上のコンピュータのシステムによって実行されるものとして説明されるだろう。便宜上、プロセス500は、1つ以上のロケーションに配置された1つ以上のコンピュータのシステムによって実行されるものとして説明されるだろう。たとえば、図1のニューラルネットワークアーキテクチャ150および/または図2のニューラルネットワークアーキテクチャ200と同様または同等のアーキテクチャを有するニューラルネットワークが展開されるシステムは、本明細書に従って適切にプログラムされるとともに、プロセス500を実行することができる。
当該システムはネットワーク入力を受信する(ステップ502)。たとえば、これは、図2を参照して上述したように、当該システムがネットワーク入力202を受信することに対応し得る。当該システムは、タスクニューラルネットワークを用いてネットワーク入力を処理して、特定の機械学習タスクについてのネットワーク入力についての出力を生成する(ステップ504~508)。たとえば、これは、システムが、図2を参照して上述したように、ニューラルネットワークアーキテクチャ200と同様または同等のアーキテクチャを有するタスクニューラルネットワークを用いて、ネットワーク入力202のためのネットワーク出力232を生成することに対応し得る。
より具体的には、ステップ504において、当該システムは、タスクニューラルネットワークを用いて、ネットワーク入力の初期の特徴表現を生成する。たとえば、これは、図2を参照して上述したように、初期畳み込みサブネットワーク210を用いて、ネットワーク入力202の初期の特徴表現212を生成することに対応し得る。
ステップ506において、当該システムは、タスクニューラルネットワークを用いて、初期の特徴表現に対して空間-深度間の演算を実行して、ネットワーク入力の第2の特徴表現を生成する。たとえば、これは、図2を参照して上述したように、空間-深度間の畳み込みサブネットワーク220を用いて、初期の特徴表現212に基づいてネットワーク入力202の第2の特徴表現222を生成することに対応し得る。いくつかの実現例では、空間-深度間の畳み込み演算はストライド-nのn×n畳み込みであり得る。ここで、nは1よりも大きい整数値である。たとえば、いくつかのこのような実現例では、空間-深度間の畳み込み演算はストライド-2の2×2畳み込みであってもよい。上述したように、この演算は、入力テンソルの形状を修正するためのハードウェアアクセラレータ上に有利に展開され得る。
次いで、ステップ508において、当該システムは、タスクニューラルネットワークを用いて、第2の特徴表現を処理して、ネットワーク入力についての出力を生成する。たとえば、これは、図2を参照して上述したように、1つ以上の追加のサブネットワーク230を用いて第2の特徴表現222に基づいてネットワーク出力232を生成することに対応し得る。
いくつかの例では、1つ以上の追加のサブネットワークは1つ以上の畳み込み層を含み得る。いくつかの実現例では、タスクニューラルネットワークを用いてネットワーク入力を処理することは、1つ以上のハードウェアアクセラレータのセットを用いて、タスクニューラルネットワークを用いてネットワーク入力を処理することを含む。これらの実現例のうちの少なくともいくつかでは、1つ以上のハードウェアのセットは、1つ以上のテンソル処理ユニット(TPU)、1つ以上のグラフィックス処理ユニット(GPU)、またはそれらの組合せを含み得る。
本明細書は、システムおよびコンピュータプログラムコンポーネントに関連して「構成された」という用語を用いる。1つ以上のコンピュータのシステムが特定の動作またはアクションを実行するように構成されるという場合、当該システムが、動作時にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つ以上のコンピュータプログラムが特定の動作またはアクションを実行するように構成されているという場合、1つ以上のプログラムが、データ処理装置によって実行されると、当該装置に動作またはアクションを実行させる命令を含むことを意味する。
本明細書に記載されている主題および機能的動作の実施形態は、デジタル電子回路で実現されてもよく、有形的に具体化されたコンピュータソフトウェアもしくはファームウェアで実現されてもよく、本明細書に開示されている構造およびそれらの構造的等価物を含むコンピュータハードウェアで実現されてもよく、またはそれらのうちの1つ以上の組合せで実現されてもよい。本明細書中に記載される主題の実施形態は、1つ以上のコンピュータプログラムとして、すなわちデータ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的な記憶媒体上で符号化されるコンピュータプログラム命令の1つ以上のモジュールとして実現されてもよい。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはこれらの1つ以上の組合せであり得る。代替的または付加的には、プログラム命令は、データ処理装置によって実行されるように好適な受信機装置に送信される情報を符号化するために生成される人為的に生成された伝搬信号、たとえば機械によって生成される電気信号、光学信号または電磁気信号、で符号化することができる。
「データ処理装置」という語は、データ処理ハードウェアを指すとともに、データを処理するためのあらゆる種類の装置、デバイスおよびマシンを包含し、一例として、プログラム可能なプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む。当該装置はまた、専用論理回路類、たとえばフィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)、特定用途向け集積回路(application-specific integrated circuit:ASIC)であり得るとともにこれらを含み得る。当該装置は、任意には、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステムまたはこれらのうち1つ以上の組合せを構成するコード、を含み得る。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプトまたはコードとも称され得るかまたは記載され得る)は、コンパイラ型言語もしくはインタープリタ型言語または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で書込まれてもよく、スタンドアロンのプログラムとして、またはコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチンまたは他のユニットとして任意の形態で展開されてもよい。プログラムは、ファイルシステム内のファイルに対応していてもよいが、必ずしも対応している必要はない。プログラムは、他のプログラムもしくはデータ(たとえばマークアップ言語文書に格納された1つ以上のスクリプト)を保持するファイルの一部に格納されてもよく、当該プログラムに専用の単一のファイルに格納されてもよく、または複数の調整されたファイル(たとえば1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に格納されてもよい。コンピュータプログラムは、1つのコンピュータ上で、または、一箇所に位置するかもしくは複数の箇所にまたがって分散されてデータ通信ネットワークによって相互接続されている複数のコンピュータ上で実行されるように展開されてもよい。
本明細書では、「データベース」という語は、データの任意の集合を指すために広く用いられるものであって、データは、任意の特定の方法で構造化される必要はなく、または、構造化される必要もなく、1つ以上のロケーションにある記憶デバイス上に格納することができる。したがって、たとえば、インデックスデータベースはデータの複数の集合を含み得る。これら複数の集合の各々はさまざまに編成およびアクセスされ得る。
同様に、本明細書では、「エンジン」という語は、1つ以上の特定の機能を実行するようにプログラムされたソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く用いられている。一般に、エンジンは、1つ以上のロケーションにある1つ以上のコンピュータにインストールされた1つ以上のソフトウェアモジュールまたはコンポーネントとして実装されることとなる。場合によっては、1つ以上のコンピュータは、特定のエンジン専用であり得るとともに、他の場合には、複数のエンジンが、同じコンピュータまたは複数のコンピュータにインストールされて実行され得る。
本明細書中に記載されるプロセスおよび論理フローは、入力データ上で演算して出力を生成することによって機能を実行するように1つ以上のコンピュータプログラムを実行する1つ以上のプログラム可能なプロセッサによって実行され得る。また、プロセスおよび論理フローは、特殊用途論理回路、たとえばFPGAもしくはASICによって、または、特殊用途論理回路と1つ以上のプログラムされたコンピュータとの組合せによって実行されてもよい。
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサ、特殊用途マイクロプロセッサもしくはこれら両方に基づいているか、または、他の任意の種類の中央処理装置に基づいていてもよい。概して、中央処理装置は、読取り専用メモリまたはランダムアクセスメモリまたはそれら両方から命令およびデータを受信するだろう。コンピュータの必須の要素は、命令を実行または実施するための中央処理装置と、命令およびデータを格納するための1つ以上のメモリデバイスとである。中央処理装置およびメモリは、特殊用途論理回路によって補完され得るか、または特殊用途論理回路に組み込まれ得る。一般に、コンピュータはまた、データを格納するための1つ以上の大容量記憶装置、たとえば磁気ディスク、光磁気ディスクまたは光ディスクを含み得るか、または、当該1つ以上の大容量記憶装置からデータを受信するもしくは当該1つ以上の大容量記憶装置にデータを転送するように、もしくは受信も転送も行なうように動作可能に結合されるであろう。しかし、コンピュータは、このようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば数例を挙げると、携帯電話、携帯情報端末(personal digital assistant:PDA)、携帯型オーディオまたはビデオプレーヤ、ゲームコンソール、グローバル・ポジショニング・システム(Global Positioning System:GPS)受信機、またはポータブルストレージデバイス、たとえばユニバーサル・シリアル・バス(universal serial bus:USB)フラッシュドライブ、に組込まれてもよい。
コンピュータプログラム命令およびデータを格納するのに適したコンピュータ可読媒体は、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含み、一例としてたとえばEPROM、EEPROMおよびフラッシュメモリデバイスといった半導体メモリデバイス、たとえば内蔵ハードディスクまたは取外し可能なディスクといった磁気ディスク、光磁気ディスク、ならびに、CD-ROMディスクおよびDVD-ROMディスクを含む。
ユーザと対話できるようにするために、この明細書中に記載される主題の実施形態は、情報をユーザに表示するための表示装置、たとえば陰極線管(cathode ray tube:CRT)または液晶表示(liquid crystal display:LCD)モニタと、ユーザがコンピュータに入力することを可能にするキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールとを有するコンピュータ上で実現され得る。ユーザと対話できるようにするために他の種類のデバイスが使用されてもよく、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックといった形態であってもよく、ユーザからの入力は、音響入力、音声入力または触知入力を含む任意の形態で受取ることができる。加えて、コンピュータは、ユーザが使用するデバイスとの間で文書を送受信することによって、たとえばウェブブラウザから受取った要求に応答してユーザのデバイス上でウェブブラウザにウェブページを送ることによって、ユーザと対話し得る。また、コンピュータは、テキストメッセージまたは他の形式のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送信し、返答としてユーザから応答メッセージを受信することによって、ユーザと対話することができる。
機械学習モデルを実現するためのデータ処理装置はまた、たとえば、機械学習トレーニングまたは作成の共通かつ計算集約的な部分(すなわち、推論作業負荷)を処理するための専用のハードウェアアクセラレータユニットを含み得る。
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft(登録商標)Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを用いて実装および展開することができる。
本明細書に記載の主題の実施形態は、たとえばデータサーバとしてバックエンドコンポーネントを含むか、または、ミドルウェアコンポーネント、たとえばアプリケーションサーバを含むか、または、フロントエンドコンポーネント、たとえば本明細書に記載の主題の実現例とユーザがやり取りできるようにするグラフィカルユーザインターフェイス、ウェブブラウザもしくはアプリを有するクライアントコンピュータを含むか、または、1つ以上のそのようなバックエンド、ミドルウェア、もしくはフロントエンドのコンポーネントの任意の組合わせを含む、コンピューティングシステムにおいて実現することができる。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体、たとえば通信ネットワークにより、相互に接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(local area network:LAN)およびワイドエリアネットワーク(wide area network:WAN)、たとえばインターネットを含む。
コンピューティングシステムはクライアントおよびサーバを含み得る。クライアントおよびサーバは、一般的には互いから離れており、典型的には通信ネットワークを通して対話する。クライアントとサーバとの関係は、各コンピュータ上で実行されるとともにクライアントとサーバとの相互の関係を有するコンピュータプログラムにより生じるものである。いくつかの実施形態では、サーバは、たとえば、クライアントとして機能するデバイスと対話するユーザに対してデータを表示するとともに当該ユーザからユーザ入力を受信する目的で、データ、たとえば、HTMLページをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、たとえばユーザ対話の結果は、サーバにおいてデバイスから受信することができる。
本明細書は多くの具体的な実現例の詳細を含んでいるが、これらは、いずれかの発明の範囲、またはクレームされ得るものの範囲を限定するものとして解釈されるべきではなく、特定の発明の特定の実施形態に特有となり得る特徴の説明であると解釈されるべきである。別個の実施形態の文脈において本明細書に記載されている特定の特徴は、単一の実施形態において組合せて実現されてもよい。逆に、単一の実施形態の文脈において記載されているさまざまな特徴は、複数の実施形態において別々に、または任意の好適な副次的組合せで実現されてもよい。さらに、特徴は特定の組合せで作用するものとして上述され得るとともに、さらにはそのようなものとして最初にクレームされ得るが、クレームされている組合せのうちの1つ以上の特徴は、場合によっては、当該組合せから削除されてもよく、クレームされている組合せは、副次的組合せまたは副次的組合せの変形例に向けられてもよい。
同様に、動作は特定の順序で図面に示されるとともに請求項に記載されているが、これは、このような動作が、望ましい結果を達成するために、示されている特定の順序もしくは連続的な順序で実行されなければならないと理解されるべきではなく、または、望ましい結果を達成するために、示されているすべての動作が実行されなければならないと理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利となる可能性もある。さらに、上述の実施形態におけるさまざまなシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてこのような分離が必要であると理解されるべきではなく、記載されているプログラムコンポーネントおよびシステムが、一般に単一のソフトウェア製品に一体化され得ること、または複数のソフトウェア製品にパッケージングされ得ることが理解されるべきである。
主題の特定の実施形態が説明されてきた。他の実施形態は添付の特許請求の範囲内である。たとえば、特許請求の範囲に記載されている動作は、異なる順序で実行されて、依然として望ましい結果を達成することができる。一例として、添付の図面に示されているプロセスは、所望の結果を達成するために、必ずしも、図示される特定の順序または連続的順序を必要とするものではない。場合によっては、マルチタスクおよび並列処理が有利である可能性もある。

Claims (20)

  1. ハードウェアリソースのターゲットセット上に展開されたときに特定の機械学習タスクを実行するように構成されたタスクニューラルネットワークのためのアーキテクチャを決定する方法であって、前記方法は、
    前記特定の機械学習タスクを実行するためのトレーニングデータを受信するステップと、
    1つ以上の候補ニューラルネットワークアーキテクチャを識別するために、前記トレーニングデータを用いて、候補ニューラルネットワークアーキテクチャの空間内で検索を実行するステップとを含み、前記検索を実行するステップは、以下のステップを繰返し実行するステップを含み、前記以下のステップは、
    前記空間から候補ニューラルネットワークアーキテクチャを選択するステップを含み、前記候補ニューラルネットワークアーキテクチャを選択するステップは、前記候補ニューラルネットワークアーキテクチャの1つ以上のコンポーネントの各々について、(1)入力テンソルの空間的広がりを減少させつつ前記入力テンソルの深度を増大させる空間-深度間の畳み込み演算と、(2)1つ以上の他のタイプの畳み込み演算とを含む演算のセットから前記コンポーネントによって実行されるべき演算を選択するステップと、
    (i)前記特定の機械学習タスクに関して選択された候補ニューラルネットワークアーキテクチャの性能と、(ii)前記ハードウェアリソースのターゲットセット上に展開されたときの前記選択された候補ニューラルネットワークアーキテクチャの性能とに基づいて、前記選択された候補ニューラルネットワークアーキテクチャの性能の尺度を決定するステップとを含み、前記方法はさらに、
    前記識別された候補ニューラルネットワークアーキテクチャを用いて前記タスクニューラルネットワークのためのアーキテクチャを生成するステップを含む、方法。
  2. 前記生成されたアーキテクチャを有する前記タスクニューラルネットワークを用いて新しい入力に関して前記特定の機械学習タスクを実行するステップをさらに含む、請求項1に記載の方法。
  3. 前記特定の機械学習タスクを実行する際に用いるために前記生成されたアーキテクチャを指定するデータを提供するステップをさらに含む、請求項1に記載の方法。
  4. 前記空間-深度間の畳み込みは、ストライド-nのn×n畳み込みであり、nは1よりも大きい整数値である、請求項1に記載の方法。
  5. 前記演算はさらに、1つ以上の再形成演算を含み、前記1つ以上の再形成演算は各々、前記ハードウェアリソースのターゲットセットのうちの1つ以上のメモリにおいて1つ以上のメモリ演算を実行することによって入力テンソルの形状を修正する、請求項1に記載の方法。
  6. 前記ハードウェアリソースのターゲットセット上に展開されたときの前記選択された候補ニューラルネットワークアーキテクチャの性能は、前記ハードウェアリソースのターゲットセット上に展開されたときの、前記選択された候補ニューラルネットワークアーキテクチャを用いて出力を生成するレイテンシに少なくとも部分的に基づいている、請求項1に記載の方法。
  7. 前記ハードウェアリソースのターゲットセット上に展開されたときの前記選択された候補ニューラルネットワークアーキテクチャの性能は、前記ハードウェアリソースのターゲットセット上に展開されたときの前記選択された候補ニューラルネットワークアーキテクチャの演算強度に少なくとも部分的に基づいている、請求項1に記載の方法。
  8. 前記ハードウェアリソースのターゲットセット上に展開されたときの前記選択された候補ニューラルネットワークアーキテクチャの性能は、前記ハードウェアリソースのターゲットセット上に展開されたときの前記選択された候補ニューラルネットワークアーキテクチャの実行効率に少なくとも部分的に基づいている、請求項1に記載の方法。
  9. 前記リソースのターゲットセットは、1つ以上の行列マシン、1つ以上のベクトルマシン、またはそれらの組合せを含むコンピューティングデバイスのセットを備える、請求項1に記載の方法。
  10. 前記リソースのターゲットセットは、データセンタ内の1つ以上のハードウェアアクセラレータの集合を含む、請求項1に記載の方法。
  11. 前記1つ以上のハードウェアアクセラレータは、1つ以上のテンソル処理ユニット(tensor processing unit:TPU)、1つ以上のグラフィックス処理ユニット(graphics processing unit:GPU)、またはそれらの組合せを含む、請求項10に記載の方法。
  12. 前記空間から前記候補ニューラルネットワークアーキテクチャを選択した後、前記トレーニングデータを用いて、前記選択された候補ニューラルネットワークアーキテクチャのインスタンスをトレーニングするステップをさらに含み、前記選択された候補ニューラルネットワークアーキテクチャの前記性能の尺度を決定するステップは、
    前記選択された候補ニューラルネットワークアーキテクチャの前記トレーニング済みインスタンスの性能の尺度を決定するステップをさらに含む、請求項1に記載の方法。
  13. 前記選択された候補ニューラルネットワークアーキテクチャの前記トレーニング済みインスタンスを前記ハードウェアリソースのターゲットセット上で実行するステップをさらに含み、前記ハードウェアリソースのターゲットセット上に展開されたときの前記選択された候補ニューラルネットワークアーキテクチャの前記性能は、前記ハードウェアリソースのターゲットセット上で実行されたときの前記ハードウェアリソースのターゲットセット上の前記選択された候補ニューラルネットワークアーキテクチャの前記トレーニング済みインスタンスの性能を含む、請求項12に記載の方法。
  14. 前記空間から前記候補ニューラルネットワークアーキテクチャを選択するステップは、
    1つ以上の事前に選択された候補ニューラルネットワークアーキテクチャのそれぞれの性能についての1つ以上の尺度に少なくとも部分的に基づいて、前記空間から候補ニューラルネットワークアーキテクチャを選択するステップを含む、請求項1に記載の方法。
  15. 命令を格納する1つ以上の非一時的な記憶媒体であって、前記命令は、1つ以上のコンピュータによって実行されると、前記1つ以上のコンピュータに、ハードウェアリソースのターゲットセット上に展開されたときに特定の機械学習タスクを実行するように構成されたタスクニューラルネットワークのためのアーキテクチャを決定するための動作を実行させ、前記動作は、
    前記特定の機械学習タスクを実行するためのトレーニングデータを受信する動作と、
    1つ以上の候補ニューラルネットワークアーキテクチャを識別するために、前記トレーニングデータを用いて、候補ニューラルネットワークアーキテクチャの空間内で検索を実行する動作とを含み、前記検索を実行する動作は、以下の動作を繰返し実行する動作を含み、前記以下の動作は、
    前記空間から候補ニューラルネットワークアーキテクチャを選択する動作を含み、前記候補ニューラルネットワークアーキテクチャを選択する動作は、前記候補ニューラルネットワークアーキテクチャの1つ以上のコンポーネントの各々について、(1)入力テンソルの空間的広がりを減少させつつ前記入力テンソルの深度を増大させる空間-深度間の畳み込み演算と、(2)1つ以上の他のタイプの畳み込み演算とを含む演算のセットから前記コンポーネントによって実行されるべき演算を選択する動作と、
    (i)前記特定の機械学習タスクに関して選択された候補ニューラルネットワークアーキテクチャの性能と、(ii)前記ハードウェアリソースのターゲットセット上に展開されたときの前記選択された候補ニューラルネットワークアーキテクチャの性能とに基づいて、前記選択された候補ニューラルネットワークアーキテクチャの性能の尺度を決定する動作とを含み、前記動作はさらに、
    前記識別された候補ニューラルネットワークアーキテクチャを用いて前記タスクニューラルネットワークのためのアーキテクチャを生成する動作を含む、非一時的な記憶媒体。
  16. 方法であって、
    ネットワーク入力を受信するステップと、
    特定の機械学習タスクについて前記ネットワーク入力のための出力を生成するためにタスクニューラルネットワークを用いて前記ネットワーク入力を処理するステップとを含み、前記タスクニューラルネットワークを用いて前記ネットワーク入力を処理するステップは、
    初期畳み込みニューラルネットワークサブネットワークを用いて前記ネットワーク入力を処理するステップを含み、前記初期畳み込みニューラルネットワークサブネットワークは、1つ以上の畳み込み層を備えるとともに、第1の空間的広がりと第1の数の深度チャネルとを有する前記ネットワーク入力の初期の特徴表現を生成するように構成され、前記タスクニューラルネットワークを用いて前記ネットワーク入力を処理するステップはさらに、
    前記ネットワーク入力の前記初期の特徴表現に対して空間-深度間の畳み込み演算を実行して、(i)前記第1の空間的広がりよりも小さい第2の空間的広がりと、(ii)前記第1の数よりも大きい第2の数の深度チャネルとを有する第2の特徴表現を生成するステップと、
    前記ネットワーク入力のための前記出力を生成するために、1つ以上の追加のサブネットワークを用いて前記第2の特徴表現を処理するステップとを含む、方法。
  17. 前記空間-深度間の畳み込みは、ストライド-nのn×n畳み込みであり、nは1よりも大きい整数値である、請求項16に記載の方法。
  18. 前記1つ以上の追加のサブネットワークは1つ以上の畳み込み層を備える、請求項16に記載の方法。
  19. 前記タスクニューラルネットワークを用いて前記ネットワーク入力を処理するステップは、
    1つ以上のハードウェアアクセラレータのセットを用いることで、前記タスクニューラルネットワークを用いて前記ネットワーク入力を処理するステップを含む、請求項16に記載の方法。
  20. 前記1つ以上のハードウェアアクセラレータのセットは、1つ以上のテンソル処理ユニット(TPU)、1つ以上のグラフィックス処理ユニット(GPU)、またはそれらの組合せを備える、請求項19に記載の方法。
JP2022552370A 2020-07-16 2021-04-28 ハードウェア用に最適化されたニューラルアーキテクチャ検索 Pending JP2023533631A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063052927P 2020-07-16 2020-07-16
US63/052,927 2020-07-16
US17/039,178 US20220019869A1 (en) 2020-07-16 2020-09-30 Hardware-optimized neural architecture search
US17/039,178 2020-09-30
PCT/US2021/029619 WO2022015390A1 (en) 2020-07-16 2021-04-28 Hardware-optimized neural architecture search

Publications (1)

Publication Number Publication Date
JP2023533631A true JP2023533631A (ja) 2023-08-04

Family

ID=79292628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022552370A Pending JP2023533631A (ja) 2020-07-16 2021-04-28 ハードウェア用に最適化されたニューラルアーキテクチャ検索

Country Status (6)

Country Link
US (1) US20220019869A1 (ja)
EP (1) EP4182850A1 (ja)
JP (1) JP2023533631A (ja)
KR (1) KR20220134627A (ja)
CN (1) CN115210717A (ja)
WO (1) WO2022015390A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220147680A1 (en) * 2020-11-12 2022-05-12 Samsung Electronics Co., Ltd. Method for co-design of hardware and neural network architectures using coarse-to-fine search, two-phased block distillation and neural hardware predictor

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10438117B1 (en) * 2015-05-21 2019-10-08 Google Llc Computing convolutions using a neural network processor
US11741342B2 (en) * 2018-05-18 2023-08-29 Baidu Usa Llc Resource-efficient neural architects
US11531861B2 (en) * 2018-11-06 2022-12-20 Google Llc Neural architecture search with factorized hierarchical search space
US11610117B2 (en) * 2018-12-27 2023-03-21 Tesla, Inc. System and method for adapting a neural network model on a hardware platform
US11494616B2 (en) * 2019-05-09 2022-11-08 Shenzhen Malong Technologies Co., Ltd. Decoupling category-wise independence and relevance with self-attention for multi-label image classification
US11153762B1 (en) * 2020-05-11 2021-10-19 At&T Mobility Ii Llc Spectrum access optimization including for 5G or other next generation user equipment

Also Published As

Publication number Publication date
EP4182850A1 (en) 2023-05-24
KR20220134627A (ko) 2022-10-05
CN115210717A (zh) 2022-10-18
US20220019869A1 (en) 2022-01-20
WO2022015390A1 (en) 2022-01-20

Similar Documents

Publication Publication Date Title
US11651259B2 (en) Neural architecture search for convolutional neural networks
US11669744B2 (en) Regularized neural network architecture search
US20210334624A1 (en) Neural architecture search using a performance prediction neural network
JP6790286B2 (ja) 強化学習を用いたデバイス配置最適化
CN110651280B (zh) 投影神经网络
US10984319B2 (en) Neural architecture search
US20240127058A1 (en) Training neural networks using priority queues
EP3673419A1 (en) Population based training of neural networks
EP3602419A1 (en) Neural network optimizer search
CN115335830A (zh) 利用权重共享的神经架构搜索
US20220383119A1 (en) Granular neural network architecture search over low-level primitives
JP2023533631A (ja) ハードウェア用に最適化されたニューラルアーキテクチャ検索

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230118

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240422