JP6790286B2 - 強化学習を用いたデバイス配置最適化 - Google Patents

強化学習を用いたデバイス配置最適化 Download PDF

Info

Publication number
JP6790286B2
JP6790286B2 JP2019552038A JP2019552038A JP6790286B2 JP 6790286 B2 JP6790286 B2 JP 6790286B2 JP 2019552038 A JP2019552038 A JP 2019552038A JP 2019552038 A JP2019552038 A JP 2019552038A JP 6790286 B2 JP6790286 B2 JP 6790286B2
Authority
JP
Japan
Prior art keywords
embedding
placement
sequence
neural network
operations
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019552038A
Other languages
English (en)
Other versions
JP2020512639A5 (ja
JP2020512639A (ja
Inventor
サミュエル・ベンジオ
モハマド・ノルージー
ブノワ・スタイナー
ジェフリー・アドゲート・ディーン
ヒュ・ヒ・ファム
アザリア・ミルホセイニ
クォク・ヴィー・レ
ナヴィーン・クマール
ユエフェン・ジョウ
ラスムス・ムンク・ラーセン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2020512639A publication Critical patent/JP2020512639A/ja
Publication of JP2020512639A5 publication Critical patent/JP2020512639A5/ja
Application granted granted Critical
Publication of JP6790286B2 publication Critical patent/JP6790286B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/08Learning methods
    • 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/044Recurrent networks, e.g. Hopfield networks
    • 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/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Description

関連出願の相互参照
本出願は、2017年3月24日に出願された米国仮出願第62/476,618号の優先権を主張する。先行出願の開示は、本出願の開示の一部とみなされ、参照により本開示に組み込まれる。
本明細書は、複数のデバイスにわたる機械学習モデルオペレーション(machine learning model operation)の配置を決定することに関する。
ニューラルネットワークは、受け取った入力に対する出力を予測するために非線形ユニットの1つまたは複数の層を用いる機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在の値に従って、受け取った入力から出力を生成する。
いくつかのニューラルネットワークは、リカレントニューラルネットワークである。リカレントニューラルネットワークは、入力シーケンスを受け取り、入力シーケンスから出力シーケンスを生成するニューラルネットワークである。詳細には、リカレントニューラルネットワークは、現在の時間ステップで出力を計算する際に、前の時間ステップからネットワークの内部状態の一部または全部を使用することができる。リカレントニューラルネットワークの一例は、長短期記憶(LSTM)ニューラルネットワークであり、LSTMニューラルネットワークは1つまたは複数のLSTMメモリブロックを含む。各LSTMメモリブロックは、1つまたは複数のセルを含むことができ、セルは各々が、入力ゲートと、忘却ゲートと、出力ゲートとを含み、これらはたとえば現在の活性化を生成する際に使用するために、またはLSTMニューラルネットワークの他の構成要素に提供されるように、セルについての前の状態をセルが記憶することを可能にする。
Sutskeverら、「Sequence to sequence learning with neural networks」、Neural Information Processing Systems、2014 Bahdanau, Dzmitryら、「Neural machine translation by jointly learning to align and translate」、International Conference on Learning Representations、2015
本明細書は、複数のハードウェアデバイスにわたる機械学習モデルオペレーションの配置を決定する、1つまたは複数の位置における1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムについて述べる。
本明細書で説明する主題は、以下の利点のうちの1つまたは複数を実現するために、特定の実施形態で実装することができる。複数のデバイスにわたる機械学習モデルオペレーションの配置を決定するためにリカレントニューラルネットワークを使用することによって、デバイスを使用する機械学習モデルのオペレーションを実行する効率は向上する。詳細には、処理のために利用可能なハードウェア構成に適合する配置であって、モデルの処理のための実行時間がより短いものとなる配置を生成することができる。実行時間から導出される報酬のある強化学習を使用してニューラルネットワークを訓練することによって、リカレントニューラルネットワークは、ハードウェアにおける計算と通信との複雑なトレードオフを含む、現在のハードウェア環境の特性を学習し、訓練されたニューラルネットワークが、利用可能なリソースをより効率的に利用するより良く動作する配置を生成することを可能にする。すなわち、システムは、環境におけるデバイスの計算能力に対応するために、およびデバイス間の通信によって引き起こされる遅延を最小にし、オペレーションの性能を最大にするために、配置を現在のハードウェア環境に効果的に適応させることができる。
本明細書は、機械学習モデルオペレーションを配置することについて説明するが、本明細書において説明する技法は、複数のハードウェアデバイスにわたって計算グラフによって説明できるオペレーションの任意の集まりを配置するために使用することができる。
本明細書の主題の1つまたは複数の実施形態の詳細について、添付の図面および以下の説明に示す。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかとなるであろう。
機械学習モデルオペレーションのための配置を決定する例示的なデバイス配置システムを示す図である。 配置リカレントニューラルネットワークの例示的なアーキテクチャを示す図である。 訓練中に配置リカレントニューラルネットワークのネットワークパラメータの値を更新するための例示的なプロセスの流れ図である。 例示的な計算グラフおよび複数のデバイス上でのグラフの計算グラフオペレーションの例示的な配置を示す図である。
様々な図面における同じ参照番号および名称は、同じ要素を示す。
図1は、複数のハードウェアデバイスにわたる機械学習モデルのオペレーションのための配置を決定するデバイス配置システム100を示す。デバイス配置システム100は、1つまたは複数の位置における1つまたは複数のコンピュータ上にコンピュータプログラムとして実装することができる。
配置される機械学習モデルは、任意の種類のデジタルデータ入力を受け取ることと、入力に基づいて任意の種類のスコア、分類、または回帰出力を生成することとを行うように構成することができる。
たとえば、機械学習モデルへの入力が、画像または画像から抽出された特徴である場合、所与の画像に対して機械学習モデルによって生成される出力は、物体カテゴリのセットの各々に対するスコアであってもよく、各スコアは、画像がカテゴリに属する物体の画像を含んでいる推定尤度(estimated likelihood)を表す。
別の例として、機械学習モデルへの入力がインターネットリソース(たとえば、ウェブページ)、文書、または文書の一部、またはインターネットリソース、文書、もしくは文書の一部から抽出された特徴である場合、所与のインターネットリソース、文書、または文書の一部に対して機械学習モデルによって生成される出力は、トピックのセットの各々に対するスコアであってもよく、各スコアは、インターネットリソース、文書、または文書一部分がトピックに関するものである推定尤度を表す。
別の例として、機械学習モデルへの入力が、ユーザに対する個人化された推薦の特徴、たとえば、推薦のためのコンテキストを特徴づける特徴、たとえば、ユーザがとった前のアクションを特徴づける特徴である場合、機械学習モデルによって生成される出力は、コンテンツ項目のセットの各々に対するスコアであってもよく、各スコアは、ユーザがコンテンツ項目の推薦に好意的に反応する推定尤度を表す。
別の例として、機械学習モデルへの入力が1つの言語でのテキストのシーケンスである場合、機械学習モデルによって生成される出力は、別の言語でのいくつかのテキストのセットの各々に対するスコアであってもよく、各スコアは、その別の言語でのテキストが、入力されたテキストを別の言語に適切に翻訳したものである推定尤度を表す。
別の例として、機械学習モデルへの入力が、口頭発話を表すシーケンスである場合、機械学習モデルによって生成される出力は、いくつかのテキストのセットの各々に対するスコアであってもよく、各スコアは、テキストが発話に対する正しい文字起こしである推定尤度を表す。
詳細には、デバイス配置システム100は、複数のハードウェアデバイス上での分散処理のために配置されるべき機械学習モデルを指定する入力データ110を受け取る。ハードウェアデバイスは、一般的には異種混在であり、任意の適切なハードウェアデバイス、たとえば、CPU、GPU、ASICまたは他の専用ハードウェア、FPGAなどのいずれかの組合せを含むことができる。
機械学習モデルを指定する入力データ110は、計算グラフを表すデータを含んでよい。計算グラフは、オペレーションを表す頂点(vertex)と、オペレーション間のデータ通信を表すエッジ(edge)とを有する。
たとえば、入力データ110は、M個のオペレーション{o1,o2,...oM}を表す頂点を有する計算グラフGを表すデータを含む。M個のオペレーションは、機械学習モデルを訓練するためのオペレーション、または機械学習モデルがすでに訓練されていれば、機械学習モデルを使用して、受け取られた入力から出力を生成するためのオペレーションとすることができる。M個のオペレーションを仮定すると、デバイス配置システム100は、配置P={p1,p2,...,pM}を決定することを目指す。配置Pは、D個の利用可能なハードウェアデバイスのセットに属するデバイスpi、すなわちpi∈{1,...,D}への、各オペレーションoi∈Gの割当てである。
例示的な計算グラフおよび複数のハードウェアデバイスに関するグラフの計算グラフオペレーションの例示的な配置について、図4に関して詳細に説明する。
配置を決定するために、システム100は、デバイスにわたってオペレーションの配置を定義する出力を生成する配置リカレントニューラルネットワーク102を訓練する。配置リカレントニューラルネットワーク102が訓練されると、システム100は、最終的な配置を生成すことができる。一例として、システム100は、訓練された配置リカレントニューラルネットワーク102を実行し、最終的な配置を決定するために、訓練された配置リカレントニューラルネットワーク102の出力を使用してよい。別の例では、システム100は、訓練中に最終的な配置と見なされる最良の配置を使用してよい。
システム100は、次いで、複数のハードウェアデバイスによる処理のために機械学習モデルをスケジュールすることができ、すなわち、機械学習モデルのオペレーションを最終的な配置に従って実行させることができる。いくつかの他の場合では、システム100は、機械学習モデルの実行を管理する別のシステムに、最終的な配置を識別するデータを提供することができ、別のシステムが、最終的な配置に従ってデバイスにわたってオペレーションを配置できるようにする。
配置リカレントニューラルネットワークの訓練の一部として、システム100は、入力データ110から、オペレーション埋込み(operation embedding)のシーケンス108を生成する。シーケンスの各オペレーション埋込み108は、機械学習モデルの処理を行うために必要な1つまたは複数のそれぞれのオペレーションを特徴づける。埋込みは、数値の順序付き集まり、たとえば、浮動小数点値、または量子化された浮動小数点値のベクトルまたは行列である。
いくつかの場合では、システムは、シーケンス中の各オペレーションに対して単一のオペレーション埋込みを生成するために、複数の異なる埋込みを結合する。
より詳細には、特定のオペレーションを特徴づけるオペレーション埋込みを生成するために、システム100は、特定のオペレーションのオペレーションタイプのタイプ埋込み(type embedding)を生成する。たとえば、オペレーションタイプは、オペレーションの基礎をなす計算(たとえば、行列乗算、または2次元畳み込みもしくは1次元畳み込み、または非線形活性化関数)を記述してよく、タイプ埋込みは、オペレーションタイプの調整可能な埋込みベクトルであってよく、すなわち、同じタイプの各オペレーションが、同じタイプ埋込みを共有するようにする。
システム100は、特定のオペレーションによって生成される出力のサイズを特徴づける出力サイズ埋込み(output size embedding)を生成する。たとえば、システム100は、特定のオペレーションによって生成された出力(たとえば、出力テンソル)の各々のサイズを記録し、出力形状(たとえば、固定サイズのゼロ埋めリスト)にするために、記録されたサイズを連結してよい。出力形状は、特定のオペレーションの出力サイズ埋込みである。
システム100は、入力を提供し、特定のオペレーションによって生成された出力を受け取るオペレーションを識別する隣接性埋込み(adjacency embedding)(たとえば、one-hotエンコーディングベクトル)を生成する。
システム100は、埋込みの組合せから特定のオペレーションを特徴づけるオペレーション埋込みを生成する。システム100によって使用される埋込みの組合せは、変わることがある。たとえば、いくつかの場合では、システム100は、特定のオペレーションを特徴づけるオペレーション埋込みを生成するために、上記の3種類の埋込み、たとえば、タイプ埋込み、出力サイズ埋込み、および隣接性埋込みを組み合わせてよい。たとえば、システム100は、オペレーション埋込みを生成するために、タイプ埋込み、出力サイズ埋込み、および隣接性埋込みを連結してよい。いくつかの他の場合では、システム100は、オペレーション埋込みを生成するために、上記の3種類の埋込みのうちの2つを結合してよい。いくつかの他の場合では、システム100は、オペレーション埋込みを生成するために、上記の3種類の埋込みのうちの1つまたは複数を、新しい種類の埋込みと結合してよい。
いくつかの実装形態では、オペレーション埋込みのシーケンスの生成の一部として、システム100は、計算グラフ中の頂点によって表されるオペレーションの2つ以上が、同じデバイス上に併置されるべきであることを決定し、それに応じて、システム100は、2つ以上のオペレーションを特徴づける単一のオペレーション埋込みを生成する。
配置リカレントニューラルネットワーク102の訓練の各反復の間、システム100は、配置リカレントニューラルネットワーク102のネットワークパラメータの現在の値に従って、配置リカレントニューラルネットワーク102を使用して、オペレーション埋込みのシーケンス108を処理する。配置リカレントニューラルネットワーク102は、ネットワーク出力112を生成するために現在の値に従ってオペレーション埋込みのシーケンス108を処理するように構成される。ネットワーク出力112は、複数のデバイスにわたるシーケンスのオペレーション埋込みによって特徴づけられるオペレーションの配置を定義する。
詳細には、配置リカレントニューラルネットワーク102は、シーケンスでのオペレーション埋込み108の各々に対して、利用可能なハードウェアデバイスのセットでの各ハードウェアデバイスに対するそれぞれのスコアを含むスコアのセットを生成するように構成される。各ハードウェアデバイスに対するそれぞれのスコアは、ハードウェアデバイスがオペレーション埋込みによって特徴づけられるオペレーションを割り当てるのに最良のデバイスである可能性の程度を表す尤度である。ニューラルネットワーク102は、次いで、オペレーション埋込みのためのスコアのセットを使用してオペレーションの各々に対してデバイスを選択するように構成される。いくつかの場合では、ニューラルネットワーク102は、オペレーション埋込みのためのスコアのセットに従って最も高いスコアを有するデバイスを選択してよい。いくつかの他の場合では、ニューラルネットワーク102は、オペレーションを特徴づけるオペレーション埋込みのためのスコアのセットによって定義された確率に従って、複数のデバイスからデバイスをサンプリングしてよい。
オペレーションの各々に対してデバイスが選択されると、ニューラルネットワーク102は、複数のハードウェアデバイスにわたってオペレーションの配置を定義するネットワーク出力112を出力する。
システム100は、ネットワーク出力112によって定義された配置に従って複数のハードウェアデバイス上にオペレーションを配置することによって、複数のデバイスによる処理のために機械学習モデルをスケジュールしてよい。
一般的に、配置リカレントニューラルネットワーク102は、長短期記憶(LSTM)ニューラルネットワーク層を有するシーケンスツーシーケンス(sequence-to-sequence)モデルおよびコンテンツベースのアテンション(attention)メカニズムを含むリカレントニューラルネットワークとすることができる。例示的なシーケンスツーシーケンスモデル(sequence-to-sequence model)は、Sutskeverらの「Sequence to sequence learning with neural networks」、Neural Information Processing Systems、2014に記載されている。例示的なコンテンツベースのアテンションメカニズムは、Bahdanau, Dzmitryらの「Neural machine translation by jointly learning to align and translate」、International Conference on Learning Representations、2015に記載されている。
配置リカレントニューラルネットワーク102のアーキテクチャは、2つの部分、すなわちエンコーダリカレントニューラルネットワーク104と、デコーダニューラルネットワーク106とに分割することができる。
エンコーダリカレントニューラルネットワーク104は、入力としてオペレーション埋込みのシーケンスを受け取るように構成される。エンコーダリカレントニューラルネットワーク104は、オペレーション埋込みの各々に対してそれぞれのエンコーダ隠れ状態を生成するためにオペレーション埋込みのシーケンスを処理する。
オペレーション埋込みの各々に対して、デコーダニューラルネットワーク106は、デコーダ入力を受け取ることと、オペレーション埋込みのためのスコアのセットを生成するために、デコーダ入力およびエンコーダ隠れ状態を処理することとを行うように構成される。シーケンスでの第1のオペレーション埋込み後のオペレーション埋込みの各々に対するデコーダ入力は、シーケンスでの先行するオペレーション埋込みによって表される1つまたは複数のオペレーションに選択されるデバイスを識別する。第1のオペレーション埋込みに対して、デコーダニューラルネットワーク106は、第1のオペレーション埋込みのためのスコアのセットを生成するために、エンコーダ隠れ状態のみを処理してよい。
配置リカレントニューラルネットワーク102の例示的なアーキテクチャについては、図2に関して以下でより詳細に説明する。
システム100は、図3に関して以下で詳細に説明するプロセスを使用して、実行時間に基づいて配置リカレントニューラルネットワーク102のネットワークパラメータの値を更新することができる。
図2は、配置リカレントニューラルネットワークの例示的なアーキテクチャを示す。配置リカレントニューラルネットワークは、エンコーダ292と、デコーダ294とを含む。
エンコーダリカレントニューラルネットワーク292は、入力として、オペレーション埋込みのシーケンス(たとえば、埋込み211、212...、220)を受け取るように構成される。オペレーション埋込みのシーケンスは、複数のハードウェアデバイス上で機械学習モデルの処理を行うために必要なオペレーションを特徴づける。エンコーダリカレントニューラルネットワーク292は、オペレーション埋込みの各々に対してそれぞれのエンコーダ隠れ状態を生成するためにオペレーション埋込みのシーケンスを処理する。たとえば、図2に示すように、エンコーダリカレントニューラルネットワーク292は、オペレーション埋込みx1、x2、...、xMに対するエンコーダ隠れ状態e1、e2、...eMのリストを生成し、ここでMは、機械学習モデルの処理を行うために必要なオペレーションの数である。
デコーダニューラルネットワーク294は、LSTM隠れ状態d1、d2、...、dMを維持し、各復号時間ステップにおいてそれぞれのオペレーション埋込みのためのデバイスを出力するように構成される。各復号時間ステップは、1つのオペレーション埋込みに対応する。
具体的には、オペレーション埋込みの各々に対して、デコーダニューラルネットワーク294は、デコーダ入力を受け取ることと、オペレーション埋込みのためのスコアのセットを生成するために、デコーダ入力および適切なエンコーダ隠れ状態のセットを処理することとを行うように構成される。デコーダニューラルネットワーク294は、ソフトマックスニューラルネットワーク層を使用してオペレーション埋込みのためのスコアのセットを生成してよい。オペレーション埋込みのためのスコアのセットは、複数のハードウェアデバイス中の各ハードウェアデバイスに対するそれぞれのスコアを含む。各ハードウェアデバイスに対するそれぞれのスコアは、そのハードウェアデバイスがオペレーション埋込みによって特徴づけられるオペレーションを割り当てるのに最良のデバイスである可能性の程度を表す尤度である。デコーダニューラルネットワーク294は、次いで、オペレーション埋込みのためのスコアのセットを使用してオペレーションの各々に対してデバイスを選択するように構成される。いくつかの場合では、デコーダ294は、オペレーション埋込みのためのスコアのセットに従って最も高いスコアを有するデバイスを選択してよい。いくつかの他の場合では、デコーダ294は、オペレーションを特徴づけるオペレーション埋込みのためのスコアのセットによって定義された確率に従って、複数のデバイスからデバイスをサンプリングしてよい。
デコーダニューラルネットワーク294は、各復号時間ステップにおいて使用されるべき適切なエンコーダ隠れ状態のセットを決定するために、アテンションメカニズムを使用することができる。シーケンスでの第1のオペレーション埋込み後のオペレーション埋込みの各々に対するデコーダ入力は、シーケンスでの先行するオペレーション埋込みによって表される1つまたは複数のオペレーションに選択されるデバイスを識別する。たとえば、シーケンスでの第2のオペレーション埋込みに対するデコーダ入力262は、第1のオペレーション埋込みに選択されるデバイス251を識別するデバイス埋込みである。第1のオペレーション埋込みに対して、デコーダニューラルネットワーク106は、第1のオペレーション埋込みのためのスコアのセットを生成するために、適切なエンコーダ隠れ状態のみを処理してよい。
図3は、配置リカレントニューラルネットワーク(たとえば、図1の配置リカレントニューラルネットワーク102)のネットワークパラメータの値を更新するために配置リカレントニューラルネットワークを訓練するための例示的なプロセス300の流れ図である。便宜上、プロセス300は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって行われるものとして説明する。たとえば、本明細書に従って適切にプログラムされたデバイス配置システム、たとえば、図1のデバイス配置システム100は、プロセス300を行うことができる。
一般的に、複数のハードウェアデバイス上で機械学習モデルの処理(または訓練)を行うために必要なM個のオペレーション{o1,o2,...oM}を表す頂点を有する計算グラフG(computational graph G)を仮定すると、訓練された配置リカレントニューラルネットワークが、その配置の下での機械学習モデルの処理を行うのに最小時間を必要とする配置を決定することが望ましい。配置(placement)P={p1,p2,...,pM}は、D個のハードウェアデバイスのセットに属するデバイスpi、すなわちpi∈{1,...,D}へのオペレーションoi∈Gの割当てである。r(P)は、配置Pの下での計算グラフGにおいてM個のオペレーションの完全な実行を行うのにかかる時間を指す(以下、実行時間(running time)と呼ぶ)。システムは、実行時間r(P)が最小化されるようなPを見つけるために、配置リカレントニューラルネットワークを訓練する。
配置リカレントニューラルネットワークのネットワークパラメータの値を(たとえば、ネットワークパラメータの初期値または現在の値から)更新するために、システムは、以下のようにステップ302〜306を繰り返して行う。
システムは、複数のデバイスにわたるオペレーションの1つまたは複数の配置(たとえば、K個の配置)を選択するために、配置リカレントニューラルネットワークのネットワークパラメータの現在の値に従って、配置リカレントニューラルネットワークを使用して、オペレーション埋込みの現在のシーケンスを処理する。
たとえば、K個の配置を選択するために、システムは、配置リカレントニューラルネットワークによって定義される配置の確率分布からK個の配置を引き出すために、配置リカレントニューラルネットワークをK回実行することができる。すなわち、システムは、K個の同一の入力例のバッチを配置リカレントニューラルネットワークに与える。バッチ中の各入力例は、オペレーション埋込みの同じ現在のシーケンスである。バッチ中の各入力例に対して、配置リカレントニューラルネットワークは、図1に関して上記で詳細に説明したような方法で、配置リカレントニューラルネットワークによって定義される(すなわち、配置リカレントニューラルネットワークのソフトマックスニューラルネットワーク層によって定義される)配置の確率分布に従って配置を生成するために、エンコーダリカレントニューラルネットワークおよびデコーダニューラルネットワークを介してオペレーション埋込みの現在のシーケンスを処理するように構成される。
システムは、各選択された配置に対してステップ304を行う。詳細には、システムは、配置に従って複数のデバイスにわたるオペレーションを有する機械学習モデルの処理を行い、次いで、処理が完了するのに必要な時間を決定する。すなわち、各選択された配置に対して、システムは、選択された配置に従ってオペレーションが配置された機械学習モデルの処理を監視し、処理が完了するのに必要な時間を識別することができる。
システムは、選択された配置の各々に対して処理が完了するために必要な時間から導出される報酬を使用する強化学習技法を使用してパラメータの現在の値を調整する(ステップ306)。一般的に、配置ニューラルネットワークがより短い実行時間を有する配置を生成するよう促すために、報酬は、実行時間がより短いとき、より高くなる。
詳細には、システムは、報酬の負数を定義する以下の目的関数を最小にすることによって報酬を最大にするために、配置リカレントニューラルネットワークを訓練する。
Figure 0006790286
ここでθは、配置リカレントニューラルネットワークのネットワークパラメータを指し、
Figure 0006790286
は、配置リカレントニューラルネットワークによって定義される配置の確率分布を指し、
Figure 0006790286
は、実行時間
Figure 0006790286
の平方根である。目的関数は、計算グラフ
Figure 0006790286
を仮定すると、システムによって(たとえば、配置の確率分布
Figure 0006790286
からK個の配置を引き出すために配置リカレントニューラルネットワークをK回実行することによって)選択されたK個の配置に対するK個の実行時間の平方根の期待値を計算する。
システムは、強化学習技法、たとえば、REINFORCE技法を使用して、目的関数の勾配を決定する。REINFORCE技法を使用すると、目的関数の勾配は、以下のように表すことができる。
Figure 0006790286
ここでpは、配置リカレントニューラルネットワークによって配置に割り当てられた確率であり、すなわち、個々の配置に対して配置リカレントニューラルネットワークによって生成されたスコアの積である。
勾配の変化を減少させるために、システムは、K個の実行時間の移動平均であるベースライン項Bを使用して、以下のように勾配の近似値を求めることができる。
Figure 0006790286
システムは、配置リカレントニューラルネットワークのネットワークパラメータの各々に対するそれぞれの更新された値を決定するために、目的関数の勾配を逆伝播することができる。
ネットワークパラメータの現在の値を調整すると同時に、システムは、場合によっては、強化学習技法の一部として、すなわち、オペレーション埋込みに勾配を逆伝播することによって、現在のシーケンスのオペレーション埋込みを調整することができる。
図4は、例示的な計算グラフ452、およびシステム454の複数のデバイス上でのグラフ452の計算グラフオペレーションの例示的な配置を示す。計算グラフ452は、オペレーション402〜416を表す頂点を含む。計算グラフ452は、オペレーション402〜416間で通信されるデータを表すエッジ432〜450をさらに含む。たとえば、計算グラフ452は、TensorFlow計算グラフであることがあり、その頂点はオペレーションを表し、エッジはオペレーション間で通信される多次元データアレイ(テンソル)を表す。
オペレーション402〜416の各々が、特定の配置、たとえば配置リカレントニューラルネットワーク(たとえば、図1の配置リカレントニューラルネットワーク102)を使用してデバイス配置システム(たとえば、図1のデバイス配置システム100)によって決定された配置に従って、システム454のデバイス418〜424の1つに割り当てられることがある。図4は、オペレーション402および410がデバイス418に割り当てられ、オペレーション404、406、および412がデバイス420に割り当てられ、オペレーション408がデバイス422に割り当てられ、オペレーション414および416がデバイス424に割り当てられる例示的な配置を示す。
デバイス418〜424は、一般的には異種混在であり、任意の適切なハードウェアデバイス、たとえば、CPU、GPU、ASICまたは他の専用ハードウェア、FPGAなどのいずれかの組合せを含むことができる。たとえば、いくつかの実装形態では、システム454は、1つまたは複数のCPUと、1つまたは複数のGPUとを有する単一の機械であることがあり、オペレーション402〜416の各々を、特定の配置に従って、CPUおよびGPUのうちの1つに割り当てることができる。いくつかの他の実装形態では、システム454は、GPUと、ASICまたはFPGAとを有する複数の機械を含むことができ、オペレーション402〜416の各々を、特定の配置に従って機械のうちの1つのデバイスに割り当てることができる。
1つまたは複数のコンピュータのシステムが特定のオペレーションまたはアクションを行うように構成されるとは、オペレーション時にシステムにオペレーションまたはアクションを行わせるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをシステムがインストールしていることを意味する。1つまたは複数のコンピュータが特定のオペレーションまたはアクションを行うように構成されるとは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置にオペレーションまたはアクションを行わせる命令を含むことを意味する。
本明細書で説明する主題および機能的オペレーションの実施形態は、デジタル電子回路において、有形に具現化されたコンピュータソフトウェアもしくはファームウェアにおいて、本明細書で開示する構造およびそれらの構造的に同等のものを含む、コンピュータハードウェアにおいて、またはそれらの1つもしくは複数の組合せにおいて、実装されることがある。本明細書で説明する主題の実装形態は、1つまたは複数のコンピュータプログラムとして実装されることがあり、すなわち、データ処理装置によって実行されるように、またはデータ処理装置のオペレーションを制御するために、有形の非一時的プログラムキャリア上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることがある。代替的にまたは追加として、プログラム命令は、人為的に生成された伝搬信号、たとえば、データ処理装置による実行のために好適な受信装置に送信するための情報を符号化するために生成される機械生成の電気、光、または電磁信号上で符号化されることがある。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることがある。しかしながら、コンピュータ記憶媒体は伝搬信号ではない。
「データ処理装置」という用語は、例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つもしくは複数の組合せを構成するコードを含むことができる。
(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれる、もしくは説明される場合もある)コンピュータプログラムは、コンパイラ型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、プログラム言語の任意の形態で書くことができ、またコンピュータプログラムは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境で使用するのに適した他のユニットとしてなど、任意の形態で配備されることがある。コンピュータプログラムは、ファイルシステム内のファイルに対応する場合があるが、対応する必要はない。プログラムは、他のプログラムまたはデータ、たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプトを入れたファイルの一部分に、当該プログラムに専用の単一ファイルに、あるいは複数の協調ファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイルに、記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに配置され、もしくは複数のサイトにわたって分散し、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配備することができる。
本明細書において使用される、「エンジン」または「ソフトウェアエンジン」は、入力とは異なる出力を提供するソフトウェア実装入出力システムを指す。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット(「SDK」)、またはオブジェクトなど、機能の符号化されたブロックであることがある。各エンジンは、1つまたは複数のプロセッサと、コンピュータ可読媒体とを含む任意の適切なタイプのコンピューティングデバイス、たとえば、サーバ、携帯電話、タブレットコンピュータ、ノートブックコンピュータ、音楽プレーヤ、電子ブックリーダー、ラップトップもしくはデスクトップコンピュータ、PDA、スマートフォン、または他の据置型もしくは携帯型デバイス上に実装することができる。加えて、エンジンの2つ以上が、同じコンピューティングデバイス上に、または異なるコンピューティングデバイス上に実装される場合がある。
本明細書で説明するプロセスおよび論理フローは、入力データで動作し、出力を生成することによって機能を行うために1つまたは複数のコンピュータプログラムを1つまたは複数のプログラマブルコンピュータが実行することによって実行可能である。プロセスおよび論理フローはまた、専用の論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行可能であり、装置もまたこれらとして実装可能である。たとえば、プロセスおよび論理フローは、グラフィックス処理ユニット(GPU)によって実行されることがあり、また装置は、GPUとして実装されることがある。
コンピュータプログラムの実行に好適なコンピュータは、一例として、汎用もしくは専用マイクロプロセッサ、または両方、または他の種類の中央処理ユニットを含み、これらに基づくことがある。一般的に中央処理ユニットは、読取り専用メモリ、またはランダムアクセスメモリ、または両方から命令およびデータを受け取ることになる。コンピュータの必須要素は、命令を行うまたは実行するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般的にコンピュータはまた、データを記憶するための1つもしくは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むことになり、またはこれらからデータを受け取ること、もしくはこれらにデータを転送すること、もしくはその両方を行うために動作可能に結合されることになる。しかしながら、コンピュータがそのようなデバイスを有する必要はない。さらに、コンピュータが別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)レシーバ、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュデバイスに埋め込まれることがある。
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含み、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMおよびDVD-ROMディスクを含む。プロセッサおよびメモリは、専用論理回路によって補われる、または専用論理回路に組み込まれることがある。
ユーザとの対話を可能にするために、本明細書で説明する主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがそれによってコンピュータへの入力を行うことができるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールを有するコンピュータに実装されることがある。ユーザとの対話を可能にするために他の種類のデバイスが使用されることもあり、たとえばユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響入力、音声入力、または」触覚入力など、任意の形態で受け取ることができる。加えて、コンピュータが、ユーザによって使用されるデバイスに文書を送り、そのデバイスから文書を受け取ることによって、たとえば、ウェブブラウザから受け取られる要求に応じてユーザのクライアントデバイス上のウェブブラウザにウェブページを送ることによって、ユーザと対話することができる。
本明細書で説明する主題の実施形態は、たとえばデータサーバとして、バックエンド構成要素を含むコンピューティングシステム、あるいはミドルウェア構成要素、たとえばアプリケーションサーバを含むコンピューティングシステム、あるいはフロントエンド構成要素、たとえば、それによりユーザが本明細書で説明する主題の実装形態と対話することができるグラフィカルユーザインタフェース、もしくはウェブブラウザを有するクライアントコンピュータを含む、コンピューティングシステム、あるいは1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装可能である。システムの構成要素は、デジタルデータ通信の任意の形態または媒体、たとえば通信ネットワークによって、相互接続可能である。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)、およびワイドエリアネットワーク(「WAN」)、たとえばインターネットが含まれる。
コンピューティングシステムは、クライアントと、サーバとを含むことができる。クライアントおよびサーバは、一般的に互いから遠くにあり、典型的には通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータで実行している、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
本明細書は、多くの特定の実装形態の詳細を含むが、これらは任意の発明の範囲への、または特許請求される可能性のあるものの範囲への制限として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に固有である場合がある特徴の説明として解釈されるべきである。本明細書で別個の実施形態の文脈で説明されるいくつかの特徴は、単一の実施形態において組み合わせて実装されることもある。逆に、単一の実施形態の文脈で説明される様々な特徴は、複数の実施形態において別々に、または任意の適切な部分的組合せで実装されることもある。さらに、特徴は、ある組合せで機能するものとして上記で説明され、さらに当初はそのように特許請求される場合があるが、特許請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除されることがあり、特許請求される組合せは、部分的組合せ、または部分的組合せの変形を対象とすることがある。
同様に、オペレーションは、特定の順序で図面に示されるが、これは、望ましい結果を達成するために、このようなオペレーションが図示された特定の順序でもしくは順次に行われること、または例示したすべてのオペレーションが行われることを必要とするものと理解されるべきではない。いくつかの環境では、マルチタスクおよび並列処理が有利である場合がある。さらに、上記で説明した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とすると理解されるべきではなく、記載するプログラム構成要素およびシステムは、一般的に単一のソフトウェア製品に統合される、または複数のソフトウェア製品にパッケージ化されることがあると理解されるべきである。
主題の特定の実施形態について説明してきた。他の実施形態も、以下の特許請求の範囲内である。たとえば、特許請求の範囲に記載するアクションは、異なる順序で行われ、やはり望ましい結果を実現することがある。一例として、添付図に示すプロセスは、望ましい結果を達成するために、図示した特定の順序、または一連の順序を必ずしも必要としない。いくつかの実装形態では、マルチタスクおよび並列処理が有利である場合がある。
100 デバイス配置システム
102 配置リカレントニューラルネットワーク
104 エンコーダリカレントニューラルネットワーク
106 デコーダニューラルネットワーク
108 オペレーション埋込み
110 入力データ110
112 ネットワーク出力
211〜220 埋込み
251 デバイス
262 デコーダ入力
292 エンコーダ
294 デコーダ
402〜416 オペレーション
418〜424 デバイス
432〜450 エッジ
452 計算グラフ
454 システム

Claims (20)

  1. コンピュータ実装方法であって、
    複数のハードウェアデバイス上での分散処理のために配置されるべき機械学習モデルを指定するデータを受け取るステップと、
    前記機械学習モデルを指定する前記データから、オペレーション埋込みのシーケンスを生成するステップであって、前記シーケンスでの各オペレーション埋込みが、前記機械学習モデルの前記分散処理を行うことの一部である1つまたは複数のそれぞれのオペレーションを特徴づける、ステップと、
    配置リカレントニューラルネットワークの複数のネットワークパラメータの第1の値に従って、前記配置リカレントニューラルネットワークを使用して、オペレーション埋込みの前記シーケンスを処理するステップであって、
    前記配置リカレントニューラルネットワークが、前記複数のデバイスにわたる前記シーケンスでの前記オペレーション埋込みによって特徴づけられた前記オペレーションの配置を定義するネットワーク出力を生成するために、前記第1の値に従ってオペレーション埋込みの前記シーケンスを処理するように構成される、ステップと、
    前記ネットワーク出力によって定義された前記配置に従って前記複数のデバイスに前記オペレーションを配置することによって、前記複数のハードウェアデバイスによる処理のために前記機械学習モデルをスケジュールするステップと
    を含む、方法。
  2. 前記オペレーション埋込みによって特徴づけられた前記オペレーションが、前記機械学習モデルを訓練することの一部であるオペレーションである、請求項1に記載の方法。
  3. 前記オペレーション埋込みによって特徴づけられた前記オペレーションが、前記機械学習モデルを使用して推論を行うことの一部であるオペレーションである、請求項1に記載の方法。
  4. 前記機械学習モデルを指定する前記データが、オペレーションを表す頂点と、前記オペレーション間のデータ通信を表すエッジとを有する計算グラフを表すデータである、請求項1に記載の方法。
  5. オペレーション埋込みの前記シーケンスを生成するステップが、
    前記計算グラフ中の頂点によって表される前記オペレーションの2つ以上が、同じデバイス上に併置されるべきであることを決定するステップと、
    それに応じて、前記2つ以上のオペレーションを特徴づける単一のオペレーション埋込みを生成するステップと
    を含む、請求項4に記載の方法。
  6. 特定のオペレーションを特徴づけるオペレーション埋込みを生成するステップが、
    前記特定のオペレーションのオペレーションタイプのタイプ埋込みを生成するステップと、
    前記特定のオペレーションによって生成される出力のサイズを特徴づける出力サイズ埋込みを生成するステップと、
    入力を提供し、前記特定のオペレーションによって生成された出力を受け取るオペレーションを識別する隣接性埋込みを生成するステップと、
    前記特定のオペレーションを特徴づける前記オペレーション埋込みを生成するために、前記タイプ埋込み、前記出力サイズ埋込み、および前記隣接性埋込みを結合するステップと
    を含む、請求項1に記載の方法。
  7. 前記配置リカレントニューラルネットワークが、前記シーケンスでの前記オペレーション埋込みの各々に対して、前記複数のデバイスの各々に対するそれぞれのスコアを含むスコアのセットを生成するように構成され、
    オペレーション埋込みの前記シーケンスを処理するステップが、前記オペレーションを特徴づける前記オペレーション埋込みのためのスコアの前記セットを使用して前記オペレーションの各々に対してデバイスを選択するステップを含む、
    請求項1に記載の方法。
  8. 前記オペレーションの各々に対して前記デバイスを選択するステップが、前記オペレーションを特徴づける前記オペレーション埋込みのためのスコアの前記セットに従って、最も高いスコアを有する前記デバイスを選択するステップを含む、請求項7に記載の方法。
  9. 前記オペレーションの各々に対して前記デバイスを選択するステップが、前記オペレーションを特徴づける前記オペレーション埋込みのためのスコアの前記セットによって定義された確率に従って、前記複数のデバイスからデバイスをサンプリングするステップを含む、請求項7に記載の方法。
  10. 前記配置リカレントニューラルネットワークが、
    前記オペレーション埋込みの各々に対してそれぞれのエンコーダ隠れ状態を生成するために、オペレーション埋込みの前記シーケンスを処理するように構成されたエンコーダリカレントニューラルネットワークと、
    前記オペレーション埋込みの各々に対して、
    デコーダ入力を受け取ることと、
    前記オペレーション埋込みのためのスコアの前記セットを生成するために、前記デコーダ入力および前記エンコーダ隠れ状態を処理することと
    を行うように構成された、デコーダニューラルネットワークと
    を備える、請求項7に記載の方法。
  11. 前記シーケンスでの第1のオペレーション埋込み後の前記オペレーション埋込みの各々に対する前記デコーダ入力が、前記シーケンスでの先行するオペレーション埋込みによって表される前記1つまたは複数のオペレーションに選択されるデバイスを識別する、請求項10に記載の方法。
  12. 前記ネットワークパラメータの初期値から、前記ネットワークパラメータの前記第1の値を決定するステップであって、
    前記複数のデバイスにわたる前記オペレーションの1つまたは複数の配置を選択するために、配置リカレントニューラルネットワークの複数のネットワークパラメータの現在の値に従って、前記配置リカレントニューラルネットワークを使用して、オペレーション埋込みの現在のシーケンスを処理することと、
    各選択された配置に対して、
    前記配置に従って前記複数のデバイスにわたる前記オペレーションで前記機械学習モデルの前記処理を行い、
    前記処理が完了するために必要な時間を決定することと、
    前記選択された配置の各々に対して前記処理が完了するために必要な前記時間から導出される報酬を使用する強化学習技法を使用して前記複数のネットワークのパラメータの前記現在の値を調整することと
    を繰り返し行うことによって、前記ネットワークパラメータの前記第1の値を決定するステップ
    をさらに含む、請求項1に記載の方法。
  13. 前記強化学習技法がREINFORCE技法である、請求項12に記載の方法。
  14. 前記強化学習技法が、前記必要な時間の移動平均であるベースラインを含む、請求項12に記載の方法。
  15. 前記パラメータの前記現在の値を調整するステップが、前記強化学習技法の一部として前記現在のシーケンスでの前記オペレーション埋込みを調整することをさらに含む、請求項12に記載の方法。
  16. 1つまたは複数のコンピュータと、
    前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに
    複数のハードウェアデバイス上での分散処理のために配置されるべき機械学習モデルを指定するデータを受け取るステップと、
    前記機械学習モデルを指定する前記データから、オペレーション埋込みのシーケンスを生成するステップであって、前記シーケンスでの各オペレーション埋込みが、前記機械学習モデルの前記分散処理を行うことの一部である1つまたは複数のそれぞれのオペレーションを特徴づける、ステップと、
    配置リカレントニューラルネットワークの複数のネットワークパラメータの第1の値に従って、前記配置リカレントニューラルネットワークを使用して、オペレーション埋込みの前記シーケンスを処理するステップであって、
    前記配置リカレントニューラルネットワークが、前記複数のデバイスにわたる前記シーケンスでの前記オペレーション埋込みによって特徴づけられた前記オペレーションの配置を定義するネットワーク出力を生成するために、前記第1の値に従ってオペレーション埋込みの前記シーケンスを処理するように構成される、ステップと、
    前記ネットワーク出力によって定義された前記配置に従って前記複数のデバイスに前記オペレーションを配置することによって、前記複数のハードウェアデバイスによる処理のために前記機械学習モデルをスケジュールするステップと
    行わせる命令を記憶した1つまたは複数のストレージデバイスと
    を備える、システム。
  17. 1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに
    複数のハードウェアデバイス上での分散処理のために配置されるべき機械学習モデルを指定するデータを受け取るステップと、
    前記機械学習モデルを指定する前記データから、オペレーション埋込みのシーケンスを生成するステップであって、前記シーケンスでの各オペレーション埋込みが、前記機械学習モデルの前記分散処理を行うことの一部である1つまたは複数のそれぞれのオペレーションを特徴づける、ステップと、
    配置リカレントニューラルネットワークの複数のネットワークパラメータの第1の値に従って、前記配置リカレントニューラルネットワークを使用して、オペレーション埋込みの前記シーケンスを処理するステップであって、
    前記配置リカレントニューラルネットワークが、前記複数のデバイスにわたる前記シーケンスでの前記オペレーション埋込みによって特徴づけられた前記オペレーションの配置を定義するネットワーク出力を生成するために、前記第1の値に従ってオペレーション埋込みの前記シーケンスを処理するように構成される、ステップと、
    前記ネットワーク出力によって定義された前記配置に従って前記複数のデバイスに前記オペレーションを配置することによって、前記複数のハードウェアデバイスによる処理のために前記機械学習モデルをスケジュールするステップと
    行わせる命令を記憶した1つまたは複数のコンピュータ記憶媒体。
  18. 特定のオペレーションを特徴づけるオペレーション埋込みを生成するステップが、
    前記特定のオペレーションのオペレーションタイプのタイプ埋込みを生成するステップと、
    前記特定のオペレーションによって生成される出力のサイズを特徴づける出力サイズ埋込みを生成するステップと、
    入力を提供し、前記特定のオペレーションによって生成された出力を受け取るオペレーションを識別する隣接性埋込みを生成するステップと、
    前記特定のオペレーションを特徴づける前記オペレーション埋込みを生成するために、前記タイプ埋込み、前記出力サイズ埋込み、および前記隣接性埋込みを結合するステップと
    を含む、請求項17に記載の1つまたは複数のコンピュータ記憶媒体。
  19. 前記配置リカレントニューラルネットワークが、前記シーケンスでの前記オペレーション埋込みの各々に対して、前記複数のデバイスの各々に対するそれぞれのスコアを含むスコアのセットを生成するように構成され、
    オペレーション埋込みの前記シーケンスを処理するステップが、前記オペレーションを特徴づける前記オペレーション埋込みのためのスコアの前記セットを使用して前記オペレーションの各々に対してデバイスを選択するステップを含む、
    請求項17に記載の1つまたは複数のコンピュータ記憶媒体。
  20. 前記オペレーションの各々に対して前記デバイスを選択するステップが、前記オペレーションを特徴づける前記オペレーション埋込みのためのスコアの前記セットに従って、最も高いスコアを有する前記デバイスを選択するステップを含む、請求項19に記載の1つまたは複数のコンピュータ記憶媒体。
JP2019552038A 2017-03-24 2018-03-23 強化学習を用いたデバイス配置最適化 Active JP6790286B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762476618P 2017-03-24 2017-03-24
US62/476,618 2017-03-24
PCT/US2018/024155 WO2018175972A1 (en) 2017-03-24 2018-03-23 Device placement optimization with reinforcement learning

Publications (3)

Publication Number Publication Date
JP2020512639A JP2020512639A (ja) 2020-04-23
JP2020512639A5 JP2020512639A5 (ja) 2020-07-27
JP6790286B2 true JP6790286B2 (ja) 2020-11-25

Family

ID=61913686

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019552038A Active JP6790286B2 (ja) 2017-03-24 2018-03-23 強化学習を用いたデバイス配置最適化

Country Status (6)

Country Link
US (3) US10692003B2 (ja)
EP (1) EP3559868A1 (ja)
JP (1) JP6790286B2 (ja)
KR (1) KR102208989B1 (ja)
CN (2) CN110268422B (ja)
WO (1) WO2018175972A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556520B2 (en) 2017-11-13 2023-01-17 Lendingclub Corporation Techniques for automatically addressing anomalous behavior
US11354301B2 (en) 2017-11-13 2022-06-07 LendingClub Bank, National Association Multi-system operation audit log
SG11202105629SA (en) * 2018-12-04 2021-06-29 Google Llc Generating integrated circuit floorplans using neural networks
JP7050023B2 (ja) * 2019-03-22 2022-04-07 Kddi株式会社 ネットワーク障害復旧システム、コンピュータプログラム及びネットワーク障害復旧方法
KR102371927B1 (ko) * 2019-10-17 2022-03-11 (주)유밥 학습 콘텐츠 추천 방법 및 장치
KR102272501B1 (ko) 2020-04-24 2021-07-01 연세대학교 산학협력단 분산 강화 학습 장치 및 방법
US11288097B2 (en) 2020-06-12 2022-03-29 Disney Enterprises, Inc. Automated hardware resource optimization
US20200327392A1 (en) * 2020-06-26 2020-10-15 Intel Corporation Methods, systems, articles of manufacture, and apparatus to optimize layers of a machine learning model for a target hardware platform
US20220083824A1 (en) * 2020-09-11 2022-03-17 Actapio, Inc. Execution control apparatus, execution control method, and a non-transitory computer-readable storage medium
KR20220045800A (ko) * 2020-10-06 2022-04-13 삼성전자주식회사 인공지능 모델을 분산 처리하는 시스템 및 그 동작 방법
KR102257028B1 (ko) * 2020-10-06 2021-05-27 주식회사 딥이티 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법
JP2023020264A (ja) * 2021-07-30 2023-02-09 株式会社Screenホールディングス スケジュール作成方法、スケジュール作成装置、基板処理装置、基板処理システム、記録媒体、及びスケジュール作成プログラム
KR102573644B1 (ko) * 2021-08-24 2023-09-01 주식회사 에너자이 실행 엔진 최적화 방법, 실행 엔진 최적화 장치, 및 실행 엔진 최적화 시스템
US11509836B1 (en) 2021-12-29 2022-11-22 Insight Direct Usa, Inc. Dynamically configured processing of a region of interest dependent upon published video data selected by a runtime configuration file
US11704891B1 (en) 2021-12-29 2023-07-18 Insight Direct Usa, Inc. Dynamically configured extraction, preprocessing, and publishing of a region of interest that is a subset of streaming video data
WO2023163453A1 (ko) * 2022-02-23 2023-08-31 주식회사 에너자이 임베디드 장치에서 실행될 신경망 모델 최적화 방법, 신경망 모델 최적화 장치, 및 신경망 모델 최적화 시스템
WO2023243896A1 (ko) * 2022-06-17 2023-12-21 삼성전자 주식회사 인공신경망의 추론 분산 비율 결정 전자 장치 및 그 동작 방법
US11778167B1 (en) 2022-07-26 2023-10-03 Insight Direct Usa, Inc. Method and system for preprocessing optimization of streaming video data
WO2024053910A1 (ko) * 2022-09-08 2024-03-14 삼성전자주식회사 기계학습 모델에 적합한 가속기를 선택하는 장치 및 방법
KR102603130B1 (ko) 2022-12-27 2023-11-17 주식회사 애자일소다 강화학습 기반의 면적 및 매크로 배치 최적화를 위한 설계 시스템 및 방법
KR102645072B1 (ko) 2023-05-31 2024-03-08 주식회사 애자일소다 매크로의 핀 방향 최적화를 위한 후처리 장치 및 방법
KR102634706B1 (ko) 2023-05-31 2024-02-13 주식회사 애자일소다 데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법
CN117058491B (zh) * 2023-10-12 2024-04-02 深圳大学 基于递归神经网络的结构化网格布局生成方法及设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108595A (ja) * 1991-10-17 1993-04-30 Hitachi Ltd ニユーラルネツトワークの分散学習装置
KR100676863B1 (ko) 2004-08-31 2007-02-02 주식회사 코난테크놀로지 음악 검색 서비스 제공 시스템 및 방법
US7870556B2 (en) * 2006-05-16 2011-01-11 Ab Initio Technology Llc Managing computing resources in graph-based computations
KR20100067174A (ko) 2008-12-11 2010-06-21 한국전자통신연구원 음성 인식을 이용한 메타데이터 검색기, 검색 방법, iptv 수신 장치
KR20120034378A (ko) 2010-10-01 2012-04-12 엔에이치엔(주) 사운드 인식을 통한 광고 정보 제공 시스템 및 방법
US9189730B1 (en) * 2012-09-20 2015-11-17 Brain Corporation Modulated stochasticity spiking neuron network controller apparatus and methods
US9767419B2 (en) * 2014-01-24 2017-09-19 Microsoft Technology Licensing, Llc Crowdsourcing system with community learning
US10102480B2 (en) * 2014-06-30 2018-10-16 Amazon Technologies, Inc. Machine learning service
EP3204896A1 (en) * 2014-10-07 2017-08-16 Google, Inc. Training neural networks on partitioned training data
CN110443351B (zh) * 2014-11-14 2021-05-28 谷歌有限责任公司 生成映像的自然语言描述
US11080587B2 (en) * 2015-02-06 2021-08-03 Deepmind Technologies Limited Recurrent neural networks for data item generation
US10373054B2 (en) * 2015-04-19 2019-08-06 International Business Machines Corporation Annealed dropout training of neural networks
US10515307B2 (en) * 2015-06-05 2019-12-24 Google Llc Compressed recurrent neural network models
US9652712B2 (en) * 2015-07-27 2017-05-16 Google Inc. Analyzing health events using recurrent neural networks
US11151446B2 (en) * 2015-10-28 2021-10-19 Google Llc Stream-based accelerator processing of computational graphs

Also Published As

Publication number Publication date
US11803747B2 (en) 2023-10-31
US20190303761A1 (en) 2019-10-03
US20240062062A1 (en) 2024-02-22
CN110268422A (zh) 2019-09-20
WO2018175972A1 (en) 2018-09-27
KR102208989B1 (ko) 2021-01-28
KR20190113928A (ko) 2019-10-08
US20200279163A1 (en) 2020-09-03
CN110268422B (zh) 2023-12-01
EP3559868A1 (en) 2019-10-30
JP2020512639A (ja) 2020-04-23
CN117648971A (zh) 2024-03-05
US10692003B2 (en) 2020-06-23

Similar Documents

Publication Publication Date Title
JP6790286B2 (ja) 強化学習を用いたデバイス配置最適化
JP7157154B2 (ja) 性能予測ニューラルネットワークを使用したニューラルアーキテクチャ探索
US11669744B2 (en) Regularized neural network architecture search
JP6758406B2 (ja) ワイドアンドディープマシンラーニングモデル
JP7043596B2 (ja) ニューラルアーキテクチャ検索
JP6671515B2 (ja) 比較セットを使用する入力例の分類
CN110663049B (zh) 神经网络优化器搜索
CN110476173B (zh) 利用强化学习的分层设备放置
CA3155320A1 (en) Generating audio using neural networks
CN109478254A (zh) 使用合成梯度来训练神经网络
CN110402445A (zh) 使用递归神经网络处理序列数据
JP7293729B2 (ja) 学習装置、情報出力装置、及びプログラム
JP2022523666A (ja) ニューラルネットワークのための複合モデルスケーリング
JP2023533631A (ja) ハードウェア用に最適化されたニューラルアーキテクチャ検索
US20230124177A1 (en) System and method for training a sparse neural network whilst maintaining sparsity

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200612

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200612

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200923

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201104

R150 Certificate of patent or registration of utility model

Ref document number: 6790286

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250