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

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

▶ グーグル インコーポレイテッドの特許一覧

特表2024-521136機械学習モデルのハードウェアを意識したプログレッシブトレーニング
<>
  • 特表-機械学習モデルのハードウェアを意識したプログレッシブトレーニング 図1
  • 特表-機械学習モデルのハードウェアを意識したプログレッシブトレーニング 図2
  • 特表-機械学習モデルのハードウェアを意識したプログレッシブトレーニング 図3A
  • 特表-機械学習モデルのハードウェアを意識したプログレッシブトレーニング 図3B
  • 特表-機械学習モデルのハードウェアを意識したプログレッシブトレーニング 図4
  • 特表-機械学習モデルのハードウェアを意識したプログレッシブトレーニング 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-28
(54)【発明の名称】機械学習モデルのハードウェアを意識したプログレッシブトレーニング
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240521BHJP
   G06N 3/08 20230101ALI20240521BHJP
   G06N 3/082 20230101ALI20240521BHJP
【FI】
G06N20/00
G06N3/08
G06N3/082
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023572179
(86)(22)【出願日】2022-09-21
(85)【翻訳文提出日】2023-11-21
(86)【国際出願番号】 US2022044201
(87)【国際公開番号】W WO2023059439
(87)【国際公開日】2023-04-13
(31)【優先権主張番号】63/252,743
(32)【優先日】2021-10-06
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/899,728
(32)【優先日】2022-08-31
(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)【要約】
機械学習モデルのハードウェアを意識したプログレッシブトレーニングが提供される。ハードウェアレベルとモデルレベルのパフォーマンス設定につき、トレーニングスケジュールで指定されるトレーニングプロセスと異なる値に従ってモデルがトレーニングされる。ハードウェアレベルのパフォーマンス設定は、トレーニングに使用されるコンピューティングリソースのハードウェア上の特徴をトレーニング中の様々な点において有効化/無効化/修正できる。モデルレベルのパフォーマンス設定は、トレーニングの異なる段階でトレーニングされているモデルまたはトレーニングプロセスの特性の調節のために多種多様な値をとり得る。トレーニングの後の段階でのモデル品質を改善しつつ、トレーニングの早い段階でのトレーニング速度を改善するトレーニングスケジュールの生成のために、ハードウェアレベルとモデルレベルのパフォーマンス設定の補完値が識別/適用される。
【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサであって、
機械学習モデルをトレーニングする要求を受信することと、
1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定についての複数の値を指定するトレーニングスケジュールを受信することと、
トレーニングプロセス、1つまたは複数のハードウェアレベルのパフォーマンス設定、およびトレーニング中の異なる時点における前記トレーニングスケジュールの前記複数の値のうちの異なる値に設定される1つまたは複数のモデルレベルのパフォーマンス設定にしたがって前記機械学習モデルをトレーニングすることと、
前記要求の受信に応答して、トレーニング済み前記機械学習モデルを1つまたは複数のコンピューティングデバイスに送信することと、を行うように構成された、1つまたは複数のプロセッサを備える、システム。
【請求項2】
前記1つまたは複数のモデルレベルのパフォーマンス設定が、
前記機械学習モデルへの入力データについての入力データサイズと、
前記機械学習モデルのサイズまたは形状を指定する1つまたは複数のモデルハイパーパラメータと、
前記機械学習モデルをトレーニングするために前記1つまたは複数のプロセッサによって実施される前記トレーニングプロセスを修正する1つまたは複数のトレーニングプロセスハイパーパラメータとのうちの1つまたは複数を含む、請求項1に記載のシステム。
【請求項3】
前記1つまたは複数のハードウェアレベルのパフォーマンス設定が、前記1つまたは複数のプロセッサのプロセッサ内データ通信またはプロセッサ間データ通信を調節するための設定を含む、請求項1に記載のシステム。
【請求項4】
前記1つまたは複数のプロセッサが、複数のグループに論理的または物理的にグループ化された複数のプロセッサを含み、
前記1つまたは複数のハードウェアレベルのパフォーマンス設定が、異なるグループ内のプロセッサ間データ通信の速度についての設定を含む、
請求項3に記載のシステム。
【請求項5】
前記1つまたは複数のハードウェアレベルのパフォーマンス設定が、前記トレーニングプロセスにしたがって前記機械学習モデルをトレーニングしながら、前記1つまたは複数のプロセッサによって実行される動作の数値精度を調節するための設定を含む、請求項3に記載のシステム。
【請求項6】
前記1つまたは複数のハードウェアレベルのパフォーマンス設定が、前記トレーニングプロセスにしたがって前記機械学習モデルをトレーニングしながら、前記1つまたは複数のプロセッサ間におけるハードウェア並列性を有効化または無効化するための設定を含む、請求項3に記載のシステム。
【請求項7】
前記機械学習モデルのトレーニングの際に、前記1つまたは複数のプロセッサが、
前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定を、前記トレーニングスケジュールの前記複数の値のうちの第1の値に設定することと、
前記機械学習モデルの前記トレーニングの開始後の第1の時点において、前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定を、前記第1の値とは異なる前記複数の値のうちの第2の値に調節することと、を行うようにさらに構成された、請求項1に記載のシステム。
【請求項8】
前記トレーニングスケジュールを受信する際に、前記1つまたは複数のプロセッサが、トレーニングスケジュール機械学習モデルを使用してトレーニングスケジュールを生成するようにさらに構成されており、前記トレーニングスケジュール機械学習モデルが、
前記機械学習モデル、機械学習タスク、および前記機械学習モデルをトレーニングするために利用可能なコンピューティングリソースの1つまたは複数を少なくとも部分的に記述する1つまたは複数の入力パラメータからトレーニングスケジュールを生成するようにトレーニングされ、
各例示的なトレーニングスケジュールが、前記例示的なトレーニングスケジュールを生成するために使用された1つまたは複数のそれぞれの入力パラメータを少なくとも部分的に記述するそれぞれのデータと、トレーニング速度と、前記トレーニングプロセスおよび前記例示的なトレーニングスケジュールにしたがってトレーニングされたそれぞれの機械学習モデルのモデル品質とでラベル付けされる、トレーニングスケジュールの1つまたは複数のトレーニング例を使用してトレーニングされる、請求項1に記載のシステム。
【請求項9】
前記機械学習モデルが、複数の候補ニューラルアーキテクチャから選択されたニューラルアーキテクチャを有するニューラルネットワークであり、前記ニューラルアーキテクチャの前記選択が、ニューラルネットワークの推定されたそれぞれのトレーニング速度とそれぞれのモデル品質との比較に少なくとも部分的に基づいており、前記ニューラルネットワークが、前記トレーニングプロセスおよびそれぞれのトレーニングスケジュールにしたがってトレーニングされ、前記複数の候補ニューラルアーキテクチャのそれぞれの候補ニューラルアーキテクチャを有する、請求項1に記載のシステム。
【請求項10】
前記トレーニングスケジュールを受信する際に、前記1つまたは複数のプロセッサが、
前記機械学習モデル、機械学習タスク、前記機械学習モデルをトレーニングするために利用可能なコンピューティングリソースの1つまたは複数を少なくとも部分的に記述するデータを含むクエリを、複数の候補トレーニングスケジュールを記憶する1つまたは複数のメモリデバイスに送信することと、
前記クエリに応答して、前記複数の候補トレーニングスケジュールから前記トレーニングスケジュールを受信することと、を行うようにさらに構成された、請求項1に記載のシステム。
【請求項11】
方法であって、
1つまたは複数のプロセッサによって、機械学習モデルをトレーニングする要求を受信することを含み、前記1つまたは複数のプロセッサが、1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定にしたがって、前記機械学習モデルをトレーニングするように構成され、
前記方法がさらに、
前記1つまたは複数のプロセッサによって、前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定についての複数の値を指定するトレーニングスケジュールを受信することと、
前記1つまたは複数のプロセッサによって、トレーニングプロセス、ならびに前記1つまたは複数のハードウェアレベルのパフォーマンス設定およびトレーニング中の異なる時点における前記トレーニングスケジュールの前記複数の値のうちの異なる値に設定される前記1つまたは複数のモデルレベルのパフォーマンス設定にしたがって前記機械学習モデルをトレーニングすることと、
前記要求の受信に応答して、前記1つまたは複数のプロセッサによって、トレーニング済み前記機械学習モデルを1つまたは複数のコンピューティングデバイスに送信することと、
を含む、方法。
【請求項12】
前記1つまたは複数のモデルレベルのパフォーマンス設定が、
前記機械学習モデルへの入力データについての入力データサイズと、
前記機械学習モデルのサイズまたは形状を指定する1つまたは複数のモデルハイパーパラメータと、
前記機械学習モデルをトレーニングするために前記1つまたは複数のプロセッサによって実施される前記トレーニングプロセスを修正する1つまたは複数のトレーニングプロセスハイパーパラメータとのうちの1つまたは複数を含む、請求項11に記載の方法。
【請求項13】
前記1つまたは複数のハードウェアレベルのパフォーマンス設定が、前記1つまたは複数のプロセッサのプロセッサ内データ通信またはプロセッサ間データ通信を調節するための設定を含む、請求項11に記載の方法。
【請求項14】
前記1つまたは複数のプロセッサが、複数のグループに論理的または物理的にグループ化された複数のプロセッサを含み、
前記1つまたは複数のハードウェアレベルのパフォーマンス設定が、異なるグループ内のプロセッサ間データ通信の速度についての設定を含む、
請求項13に記載の方法。
【請求項15】
前記1つまたは複数のハードウェアレベルのパフォーマンス設定が、前記トレーニングプロセスにしたがって前記機械学習モデルをトレーニングしながら、前記1つまたは複数のプロセッサ間におけるハードウェア並列性を有効化または無効化するための設定を含む、請求項13に記載の方法。
【請求項16】
前記トレーニングスケジュールを受信することが、前記1つまたは複数のプロセッサによって、トレーニングスケジュール機械学習モデルを使用してトレーニングスケジュールを生成することを含み、前記トレーニングスケジュール機械学習モデルが、
前記機械学習モデル、機械学習タスク、および前記機械学習モデルをトレーニングするために利用可能なコンピューティングリソースの1つまたは複数を少なくとも部分的に記述する1つまたは複数の入力パラメータからトレーニングスケジュールを生成するようにトレーニングされ、
各例示的なトレーニングスケジュールが、前記例示的なトレーニングスケジュールを生成するために使用された1つまたは複数のそれぞれの入力パラメータを少なくとも部分的に記述するそれぞれのデータと、トレーニング速度と、前記トレーニングプロセスおよび前記例示的なトレーニングスケジュールにしたがってトレーニングされたそれぞれの機械学習モデルのモデル品質とでラベル付けされる、トレーニングスケジュールの1つまたは複数のトレーニング例を使用してトレーニングされる、請求項11に記載の方法。
【請求項17】
前記機械学習モデルが、複数の候補ニューラルアーキテクチャから選択されたニューラルアーキテクチャを有するニューラルネットワークであり、前記ニューラルアーキテクチャの前記選択が、ニューラルネットワークの推定されたそれぞれのトレーニング速度とそれぞれのモデル品質との比較に少なくとも部分的に基づいており、前記ニューラルネットワークが、前記トレーニングプロセスおよびそれぞれのトレーニングスケジュールにしたがってトレーニングされ、前記複数の候補ニューラルアーキテクチャのそれぞれの候補ニューラルアーキテクチャを有する、請求項11に記載の方法。
【請求項18】
前記トレーニングスケジュールを受信することが、
前記1つまたは複数のプロセッサによって、前記機械学習モデル、機械学習タスク、前記機械学習モデルをトレーニングするために利用可能なコンピューティングリソースの1つまたは複数を少なくとも部分的に記述するデータを含むクエリを、複数の候補トレーニングスケジュールを記憶する1つまたは複数のメモリデバイスに送信することと、
前記1つまたは複数のプロセッサによって、前記クエリに応答して、前記複数の候補トレーニングスケジュールから前記トレーニングスケジュールを受信することと、を含む、請求項11に記載の。
【請求項19】
前記機械学習モデルをトレーニングすることが、
前記1つまたは複数のプロセッサによって、前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定を、前記トレーニングスケジュールの前記複数の値のうちの第1の値に設定することと、
前記機械学習モデルの前記トレーニングの開始後の第1の時点において、前記1つまたは複数のプロセッサによって、前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定を、前記第1の値とは異なる前記複数の値のうちの第2の値に調節することと、をさらに含む、請求項11に記載の方法。
【請求項20】
命令で符号化される1つまたは複数の非一時的コンピュータ可読記憶媒体であって、前記命令は、1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定にしたがって機械学習モデルをトレーニングするように構成された1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
第1の機械学習モデルをトレーニングする要求を受信することと、
前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定についての複数の値を指定するトレーニングスケジュールを受信することと、
トレーニングプロセス、ならびに前記1つまたは複数のハードウェアレベルのパフォーマンス設定およびトレーニング中の異なる時点における前記トレーニングスケジュールの前記複数の値のうちの異なる値に設定される前記1つまたは複数のモデルレベルのパフォーマンス設定にしたがって、前記第1の機械学習モデルをトレーニングすることと、
前記要求の受信に応答して、トレーニング済み前記第1の機械学習モデルを1つまたは複数のコンピューティングデバイスに送信することと、を含む動作を実行させる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願との相互参照
本出願は、2022年8月31日出願の米国特許出願第17/899,728号の継続出願であり、2021年10月6日出願の米国特許仮出願第63/252,743号の出願日の利益を主張するものであり、その開示は、ここで参照によって本明細書に組み込まれる。
【背景技術】
【0002】
背景
ニューラルネットワークは、受信された入力に対する出力を予測する非線形動作の1つまたは複数の層を含む機械学習モデルである。入力層および出力層に加えて、いくつかのニューラルネットワークは、1つまたは複数の隠れ層を含む。各隠れ層の出力は、ニューラルネットワークの別の隠れ層または出力層に入力可能である。ニューラルネットワークの各層は、その層についての1つまたは複数のモデルパラメータについての値にしたがって、受信された入力からそれぞれの出力を生成できる。モデルパラメータは、ニューラルネットワークに、パフォーマンス関数または損失関数を使用して評価されるときに正確な出力を生成させるトレーニングプロセスを通して決定された重みおよび/またはバイアス値であり得る。
【0003】
トレーニングプロセスの速度の増加は、機械学習モデルを改善する上で不可欠である。トレーニング速度と品質との間のトレードオフを実現し得るいくつかのプラットフォーム/ハードウェア最適化が存在する。ただし、機械学習モデルの品質は非常に重要であるため、品質の損失がない限り、トレーニングプロセスの速度向上のためにハードウェア技術が適用されず、これが、多くのパフォーマンス最適化の機会が利用不可能になることにつながる。
【発明の概要】
【0004】
簡単な概要
本開示の態様は、機械学習モデルのハードウェアを意識したプログレッシブトレーニングを提供する。プログレッシブラーニングまたはトレーニングは、機械学習モデルをトレーニングしながら、モデルまたはモデルをトレーニングするためのトレーニングプロセスを調節することによってモデルをトレーニングするための技法である。プログレッシブトレーニングシステムは、プログレッシブトレーニングシステムがモデルをトレーニングする速度を改善しながら、所定の最小閾値にしたがってモデル品質を維持するために、トレーニングプロセスの異なる段階においてモデルレベルおよびハードウェアレベルの両方のパフォーマンス設定の異なる値を生成および適用できる。
【0005】
モデルレベルのパフォーマンス設定は、トレーニングされている機械学習モデルまたは適用されたトレーニングプロセスのパラメータの特性に対応する。トレーニングシステムは、モデルをトレーニングするために使用されたコンピューティングリソースに依存せずに、トレーニング中のモデルレベルのパフォーマンス設定の異なる値へ調節できる。ハードウェアレベルのパフォーマンス設定は、機械学習モデルをトレーニングするために使用されたコンピューティングリソースのハードウェア上の特徴に対応する。ハードウェアレベルのパフォーマンス設定は、トレーニングシステムによって適用される、トレーニング中の異なるハードウェア上の特徴を有効化、無効化、または修正するために異なる値をとり得る。
【0006】
トレーニングシステムは、既存のハードウェア上の特徴を利用して、トレーニングプロセスの異なる段階における機械学習モデルのトレーニング中のハードウェアレベルおよびモデルレベルのパフォーマンス設定の両方を調節する。トレーニングシステムは、トレーニングの後の段階におけるモデル品質を維持または改善しながら、トレーニングの早い段階におけるモデルトレーニング速度を改善するトレーニングスケジュールを生成するために、ハードウェアレベルおよびモデルレベルのパフォーマンス設定の補完値を識別および適用できる。
【0007】
本開示の態様は、プログレッシブトレーニングのみと比較して、モデルがトレーニングされる速度を改善するために、ハードウェア並列性、オペランド数値精度、およびデバイス内およびデバイス間通信の可変レベルなど、利用可能なコンピューティングリソースおよびそれらのそれぞれの利用可能なハードウェア上の特徴を使用することによってトレーニング速度を改善することを実現する。トレーニングシステムは、トレーニングプロセスが実行される速度をさらに改善するために、接続されたデバイスのコンピューティングプラットフォームのコンピューティングリソースについてのハードウェア上の特徴を利用するために、必要に応じてスケーリングされ得る。
【0008】
トレーニングシステムは、他の機械学習モデルまたは以前にトレーニングされたモデルをトレーニングする際の再利用のために後で照会されるトレーニングスケジュールを生成および記憶できる。トレーニングシステムは、新規トレーニングデータに関してモデルを再トレーニングするために、以前に生成されたトレーニングスケジュール、例えば、トレーニング速度を増加させる前のモデル品質の改善に焦点を当てたトレーニングスケジュールの一部分を使用できる。
【0009】
本開示の態様はまた、例えば他の候補アーキテクチャを修正することよりも少ない計算オーバーヘッドで、および/またはハードウェアを意識したプログレッシブトレーニングをより多く利用して他のアーキテクチャと比べてトレーニング速度の増加を実現するために、トレーニングスケジュールにしたがってトレーニング中に修正可能なニューラルアーキテクチャを探索することを実現する。
【0010】
本開示の一態様は、1つまたは複数のプロセッサを含み、1つまたは複数のプロセッサは、機械学習モデルをトレーニングする要求を受信することと、1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定についての複数の値を指定するトレーニングスケジュールを1つまたは複数のプロセッサによって受信することと、トレーニングプロセス、1つまたは複数のハードウェアレベルのパフォーマンス設定、およびトレーニング中の異なる時点におけるトレーニングスケジュールの複数の値のうちの異なる値に設定される1つまたは複数のモデルレベルのパフォーマンス設定にしたがって機械学習モデルをトレーニングすることと、要求の受信に応答して、トレーニング済み機械学習モデルを1つまたは複数のコンピューティングデバイスに送信することと、を行うように構成される、システムに関する。
【0011】
本開示の一態様は、方法に関し、方法は、1つまたは複数のプロセッサによって、機械学習モデルをトレーニングする要求を受信することを含み、1つまたは複数のプロセッサが、1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定にしたがって、機械学習モデルをトレーニングするように構成され、方法がさらに、1つまたは複数のプロセッサによって、1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定についての複数の値を指定するトレーニングスケジュールを受信することと、1つまたは複数のプロセッサによって、トレーニングプロセス、ならびに1つまたは複数のハードウェアレベルのパフォーマンス設定およびトレーニング中の異なる時点におけるトレーニングスケジュールの複数の値のうちの異なる値に設定される1つまたは複数のモデルレベルのパフォーマンス設定にしたがって機械学習モデルをトレーニングすることと、要求の受信に応答して、1つまたは複数のプロセッサによって、トレーニング済み機械学習モデルを1つまたは複数のコンピューティングデバイスに送信することと、を含む。
【0012】
本開示の一態様は、命令で符号化される1つまたは複数の非一時的コンピュータ可読記憶媒体に関し、命令は、1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定にしたがって機械学習モデルをトレーニングするように構成された1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、第1の機械学習モデルをトレーニングする要求を受信することと、1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定についての複数の値を指定するトレーニングスケジュールを受信することと、トレーニングプロセス、ならびに1つまたは複数のハードウェアレベルのパフォーマンス設定およびトレーニング中の異なる時点におけるトレーニングスケジュールの複数の値のうちの異なる値に設定される1つまたは複数のモデルレベルのパフォーマンス設定にしたがって、第1の機械学習モデルをトレーニングすることと、要求の受信に応答して、トレーニング済み第1の機械学習モデルを1つまたは複数のコンピューティングデバイスに送信することと、を含む動作を実行させる。
【0013】
本開示の態様は、以下の特徴のうちの1つまたは複数を含み得る。いくつかの例では、本開示の一態様は、以下の特徴の全てを組み合わせて含む。
【0014】
1つまたは複数のモデルレベルのパフォーマンス設定が、機械学習モデルへの入力データについての入力データサイズと、機械学習モデルのサイズまたは形状を指定する1つまたは複数のモデルハイパーパラメータと、機械学習モデルをトレーニングするために1つまたは複数のプロセッサによって実施されるトレーニングプロセスを修正する1つまたは複数のトレーニングプロセスハイパーパラメータとのうちの1つまたは複数を含み得る。
【0015】
1つまたは複数のハードウェアレベルのパフォーマンス設定が、1つまたは複数のプロセッサのプロセッサ内データ通信またはプロセッサ間データ通信を調節するための設定を含み得る。
【0016】
1つまたは複数のプロセッサが、複数のグループに論理的または物理的にグループ化された複数のプロセッサを含み得、1つまたは複数のハードウェアレベルのパフォーマンス設定が、異なるグループ内のプロセッサ間データ通信の速度についての設定を含み得る。
【0017】
1つまたは複数のハードウェアレベルのパフォーマンス設定が、トレーニングプロセスにしたがって機械学習モデルをトレーニングしながら、1つまたは複数のプロセッサによって実行される動作の数値精度を調節するための設定を含み得る。
【0018】
機械学習モデルのトレーニングの際に、1つまたは複数のプロセッサが、1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定を、トレーニングスケジュールの複数の値のうちの第1の値に設定することと、機械学習モデルのトレーニングの開始後の第1の時点において、1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定を、第1の値とは異なる複数の値のうちの第2の値に調節することと、を行うようにさらに構成され得る。
【0019】
トレーニングスケジュールを受信する際に、1つまたは複数のプロセッサが、トレーニングスケジュール機械学習モデルを使用してトレーニングスケジュールを生成するようにさらに構成され得、トレーニングスケジュール機械学習モデルが、機械学習モデル、機械学習タスク、および機械学習モデルをトレーニングするために利用可能なコンピューティングリソースの1つまたは複数を少なくとも部分的に記述する1つまたは複数の入力パラメータからトレーニングスケジュールを生成するようにトレーニングされ、各例示的なトレーニングスケジュールが、例示的なトレーニングスケジュールを生成するために使用された1つまたは複数のそれぞれの入力パラメータを少なくとも部分的に記述するそれぞれのデータと、トレーニング速度と、トレーニングプロセスおよび例示的なトレーニングスケジュールにしたがってトレーニングされたそれぞれの機械学習モデルのモデル品質とでラベル付けされる、トレーニングスケジュールの1つまたは複数のトレーニング例を使用してトレーニングされる。
【0020】
機械学習モデルが、複数の候補ニューラルアーキテクチャから選択されたニューラルアーキテクチャを有するニューラルネットワークであり、ニューラルアーキテクチャの選択が、ニューラルネットワークの推定されたそれぞれのトレーニング速度とそれぞれのモデル品質との比較に少なくとも部分的に基づいており、ニューラルネットワークが、トレーニングプロセスおよびそれぞれのトレーニングスケジュールにしたがってトレーニングされ、複数の候補ニューラルアーキテクチャのそれぞれの候補ニューラルアーキテクチャを有する。
【0021】
トレーニングスケジュールを受信する際に、1つまたは複数のプロセッサが、機械学習モデル、機械学習タスク、機械学習モデルをトレーニングするために利用可能なコンピューティングリソースの1つまたは複数を少なくとも部分的に記述するデータを含むクエリを、複数の候補トレーニングスケジュールを記憶する1つまたは複数のメモリデバイスに送信することと、クエリに応答して、複数の候補トレーニングスケジュールからトレーニングスケジュールを受信することと、を行うようにさらに構成され得る。
【0022】
本開示の一態様は、1つまたは複数のプロセッサによって、ターゲットニューラルアーキテクチャを識別するために複数の候補ニューラルアーキテクチャにわたってニューラルアーキテクチャ探索を実行することを含む方法であって、複数の候補ニューラルアーキテクチャのうちの第1の候補ニューラルアーキテクチャを有し、かつトレーニングプロセス、ならびにトレーニング中に第1の複数の値のうちの異なる値に設定された1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定にしたがってトレーニングされた第1のニューラルネットワークの少なくともトレーニング速度およびモデル品質を推定することと、第1のニューラルネットワークの推定トレーニング速度および推定モデル品質と、各々が、第2の候補ニューラルアーキテクチャをそれぞれ有し、トレーニングプロセス、ならびにトレーニング中にそれぞれの第2の複数の値のうちの異なる値に設定された1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定にしたがってトレーニングされた1つまたは複数の第2のニューラルネットワークのそれぞれの推定トレーニング速度およびそれぞれの推定モデル品質との比較に少なくとも基づいて、ターゲットニューラルアーキテクチャとして第1の候補ニューラルアーキテクチャを選択することとを含む、方法に関する。
【0023】
本方法は、1つまたは複数のプロセッサによって、トレーニングスケジュールの第3の複数の値にしたがって第1のニューラルネットワークをトレーニングすることと、1つまたは複数のプロセッサによって、トレーニングされた第1のニューラルネットワークを1つまたは複数のコンピューティングデバイスに送信することとをさらに含み得る。
【図面の簡単な説明】
【0024】
図1】本開示の態様による例示的なトレーニングシステムのブロック図である。
図2】本開示の態様による、機械学習モデルのハードウェアを意識したプログレッシブトレーニングのための例示的なプロセスのフローチャートである。
図3A】本開示の態様による、ハードウェアを意識したプログレッシブトレーニングのためのトレーニングスケジュールを生成するように機械学習モデルをトレーニングするための例示的なプロセスのフローチャートである。
図3B】本開示の態様による、複数のトレーニングスケジュールを記憶する1つまたは複数のメモリデバイスからの事前に生成されたトレーニングスケジュールを照会および適用するための例示的なプロセスのフローチャートである。
図4】本開示の態様による、ニューラルアーキテクチャを探索するための例示的なプロセスのフローチャートである。
図5】本開示の態様による、例示的なトレーニングシステムを実施する例示的なコンピューティング環境のブロック図である。
【発明を実施するための形態】
【0025】
詳細な説明
概要
本開示の態様は、機械学習モデルのハードウェアを意識したプログレッシブトレーニング(hardware-aware progressive training of machine learning models)を提供する。ハードウェアを意識したプログレッシブトレーニングは、機械学習モデルのトレーニング中に、トレーニングの過程にわたって異なる値になるように調節される多種多様な異なる値をモデルレベルおよびハードウェアレベルのパフォーマンス設定の両方に適用することを指す。トレーニングシステムは、トレーニング中の異なる点において適用されるモデルレベルおよびハードウェアレベルのパフォーマンス設定の複数の値を指定するトレーニングスケジュールを生成および適用できる。本明細書で説明するように、ハードウェアを意識したプログレッシブトレーニング用に構成されたトレーニングシステムは、ハードウェアを意識したプログレッシブトレーニングが適用されない他の手法と比較して、トレーニングプロセスの早い点においてトレーニングシステムがモデルをトレーニングする速度を改善でき、ならびにトレーニングプロセスの後の点においてトレーニングされるモデルのモデル品質を改善できる。
【0026】
ハードウェアレベルのパフォーマンス設定は、機械学習モデルをトレーニングするために使用されたコンピューティングリソースのパフォーマンスを調節するための設定を含み得る。ハードウェアレベルのパフォーマンス設定についての値は、コンピューティングリソース上で利用可能な特定のハードウェア上の特徴を有効化、無効化、または修正するために調節されることができる。コンピューティングリソースは、例えばコンピューティングプラットフォームの一部であり得るコンピューティングデバイスおよびメモリデバイスの多種多様な組み合わせのうちのいずれかであり得る。コンピューティングプラットフォームは、デバイスが相互間でどのように通信するかを論理的に編成でき、その編成もまた、対応するハードウェアレベルのパフォーマンス設定の異なる値によって修正され得る。
【0027】
これらのハードウェア上の特徴は、トレーニングプロセスの一部として動作を実行する際にコンピューティングリソースのパフォーマンスを調節するために、トレーニングシステムによって選択的に適用され得る。例えば、対応するハードウェアレベルのパフォーマンス設定の異なる値にしたがって適用されるハードウェア上の特徴は、コンピューティングリソースに、それらの動作を実行する際に、正確率を犠牲として、処理サイクル、クロックタイムなどで測定したときに動作をより迅速に実行させることができる。ハードウェアレベルのパフォーマンス設定についての他の値は、コンピューティングリソースに、追加の処理サイクル、処理/メモリ利用率、および/または時間などを犠牲にして、異なる数値計算などの動作を正確に実行させることができる。その結果、トレーニングされたモデルは、例えばモデルの正確率または再現率で測定されたときに、改善されたモデル品質を有する。
【0028】
トレーニングシステムによって異なる値において適用されたモデルレベルのパフォーマンス設定は、機械学習モデルまたはトレーニングプロセス自体を修正する。モデルレベルのパフォーマンス設定は、トレーニング中にトレーニングシステムによって使用されるハードウェアまたはハードウェア上の特徴に影響しないが、それらの設定のために使用された値に応じて、結果として得られたトレーニング済みモデルの品質およびモデルがトレーニングされる速度に影響する場合がある。ハードウェアを意識したプログレッシブトレーニングは、プログレッシブトレーニング単独では到達し得ないより高いトレーニング速度およびトレーニングの異なる段階におけるモデル品質の維持または改善に到達するために、モデルをトレーニングする際にプラットフォーム上で利用可能なモデルレベルおよびハードウェアレベル両方の特徴の使用可能な構成のより効果的な使用を実現する。
【0029】
トレーニングシステムは、多段階にわたって機械学習モデルをトレーニングできる。トレーニング段階は、いくつかのトレーニングステップとして定義でき、各トレーニングステップは、算出された誤差に基づいたモデルパラメータ値を更新する完全なフォワードパスおよびバックワードパスを表す。トレーニング段階におけるトレーニングステップの数は、可変でもよく、例えば数千から数百万であってもよい。トレーニングステップの数は、例えば、トレーニングの段階の全ておよび/またはトレーニングデータセットのサイズについてのトレーニングステップの総数に基づいて可変でもよい。いくつかの例では、段階は、モデルをトレーニングするための総トレーニング時間、トレーニングセット全体がそのモデルによって処理されるエポック数または回数、および/または、閾値再現率またはモデル正確率を測定するためのメトリクスに基づく任意の閾値など、達成された特定のモデルパフォーマンスのマイルストーンよりも短い期間として定義され得る。
【0030】
例えば、トレーニングシステムは、より小さいネットワーク規模、より小さい入力サイズ、より低い正則化および/またはより低い正規化などに対応するモデルレベルのパフォーマンス設定についての値を適用でき、結果として、モデル品質を犠牲としたより高速のトレーニングをもたらし得る。トレーニングシステムは、より大きいネットワーク規模、より大きい入力サイズ、より高い正則化、および/またはより高い正規化に対応する異なる値を用いてモデルレベルのパフォーマンス設定を適用でき、結果として、パフォーマンスオーバーヘッドに起因してより遅いトレーニングとなるが、より高いモデル品質をもたらし得る。
【0031】
トレーニング速度は、例えばトレーニングデータのエポック全体にわたって機械学習モデルをトレーニングするために必要な処理サイクル数において、個々のトレーニング例またはトレーニング例のミニバッチを処理するのにどの程度の時間がかかるか、および/またはトレーニングの1つまたは複数の段階を完了するために必要な処理サイクルの数によって測定されることができる。モデル品質は、機械学習モデルが、例えば、実行するトレーニングされたタスクをどの程度良好に実行するかにしたがって、測定されることができる。モデル品質を測定するための例示的なメトリクスは、機械学習タスクの実行における、再現率、モデル予測と対応するグランドトゥルースラベルとの間の損失、モデル正確率、および/またはモデル精度を含み得る。
【0032】
トレーニング中に、トレーニングシステムは、ハードウェアレベルおよびモデルレベルの両方のパフォーマンス設定について異なる値を適用し、トレーニング速度とモデル品質との間の異なるトレードオフを達成するために、トレーニング中の異なる点におけるそれらの値を調節する。トレーニングシステムが異なる値を適用する例示的な点は、例えば時間にしたがって定義されたトレーニングの異なる段階の先頭、トレーニング反復回数、またはモデル品質のための最小マイルストーンを満たすことなどを含む。他の例は、トレーニング中に経過する毎分または毎時の間隔など、時間に基づく間隔を含む。
【0033】
本明細書で説明するようなトレーニングスケジュールに基づいて、トレーニングシステムは、高いトレーニング速度におけるトレーニング例とそれらのラベルとの間のハイレベルパターンおよびそれらの関係を学習するために、モデル品質よりもトレーニング速度を重視するようにモデルのトレーニングを調節するための値を、パフォーマンス設定に対して最初に適用する。トレーニングが進むにつれて、トレーニングシステムは、トレーニングスケジュールにおいて指定可能な変化率にしたがって速度オーバーヘッドを有するモデル品質改善を重視するように、パフォーマンス設定の値を徐々に調節する。トレーニングがその最終段階に達するとき、トレーニングシステムは、パフォーマンスオーバーヘッドを低減するために与えられた皆無かそれに近い重視度を有するモデル品質を強調するためにハードウェアレベルおよびモデルレベルのパフォーマンス設定の値を適用し、結果としてトレーニング速度の低下をもたらす。
【0034】
トレーニングシステムは、様々なハードウェアレベルおよびモデルレベルのパフォーマンス設定についての補完値を用いてトレーニングスケジュールを生成できる。モデルレベルのパフォーマンス設定についての補完値によって、特定のハードウェア上の特徴がより効率的に適用可能になり、例えば、結果として、トレーニングプロセス実施の一部としての動作を実行するための処理サイクルの減少をもたらし、または最適化プロセスがモデル品質を向上可能にする。例えば、トレーニング中の二次最適化方法を有効化するためのモデルレベルのパフォーマンス設定の値は、より低い数値精度で、例えば、64ビット未満の浮遊点または整数精度を使用して動作を実行することに対応するハードウェアレベルのパフォーマンス設定について値を補完する。
【0035】
トレーニングシステムは、トレーニングスケジュールの生成の一部として、トレーニングシステムによって、パフォーマンス設定の補完値を識別できる。例えば、トレーニングシステムは、コンピューティングリソースのセット上でトレーニングされる機械学習モデル、機械学習タスク、およびモデルをトレーニングするために利用可能なコンピューティングリソースのセットの1つまたは複数を少なくとも部分的に記述する1つまたは複数の入力パラメータからトレーニングスケジュールを生成するようにトレーニングされるトレーニングスケジュール機械学習モデルを実施できる。いくつかの例では、トレーニングシステムは、本明細書で説明するように、異なる最適化パラメータまたは探索基準にしたがって候補トレーニングスケジュールの空間を探索できる。
【0036】
補完値の例は、ローカルなノード通信および勾配累積のためのハードウェアレベルのパフォーマンス設定およびより低い精度の計算と対にされる、より低い分解能、より弱い正則化、およびより小さいモデルについての値を含む。トレーニングの後の段階において、より高い解像度、より強い正則化、およびより大きいモデルは、グローバルな通信および勾配累積、ならびにより高精度の計算のためのハードウェアレベルのパフォーマンス値と対にされ得る。
【0037】
トレーニング中の異なる点において例えばより高いトレーニング速度および/またはより高いモデル品質を観察することによって、より良好なトレーニングスケジュール実行が識別されるため、それらのトレーニングスケジュールは、さらなる例として、トレーニングスケジュール機械学習モデルを再トレーニングするために、または入力パラメータのセットを与えられた場合のトレーニングスケジュールの探索のための探索基準を更新するために、提供され得る。概して、より高い実施トレーニングスケジュールは、より低い実施トレーニングスケジュールを上回るハードウェアレベルおよびモデルレベルのパフォーマンス設定の補完値を含む。
【0038】
本開示の態様は、少なくとも以下の技術的利点を提供する。機械学習モデルは、ハードウェアを意識したプログレッシブトレーニングを使用してトレーニングされていない他のモデルに対して、より高速に、例えばより短いクロックタイムで、および/またはより少ない処理サイクルを使用してトレーニングされることができる。トレーニングの後の段階において、モデル品質は、パフォーマンスオーバーヘッドを犠牲にしてモデル品質を重視するように、パフォーマンス設定を徐々に調節することによって、認定可能である。トレーニングされた機械学習モデルの改善されたモデル品質は、例えばモデル上のデータを処理するクエリまたは要求に対する応答がより正確に生成可能なため、推論でモデルを展開するコンピューティングデバイスの機能を改善できる。
【0039】
トレーニングは、本明細書で説明するようなトレーニングスケジュールを使用しない場合に対して、例えば、トレーニングプロセスの実施の一部として動作を加速するためのより多くの利用可能な特徴を使用してより効率的に実行可能である。このトレーニングシステムは、トレーニングを禁止し得るハードウェアレベルおよびモデルレベルのパフォーマンス設定の競合する値を減少させるため、またはそれを回避するための補完値を用いてトレーニングスケジュールを生成するように構成されている。
【0040】
トレーニングシステムによって適用および生成されるトレーニングスケジュールは、トレーニングプロセスおよび所与のトレーニングスケジュールを使用してモデルをトレーニングするために設計されたコンピューティングリソースについての利用可能なハードウェア上の特徴にしたがって調整される。例えば、コンピューティングプラットフォームは、機械学習モデルをトレーニングするために利用可能な多種多様な異なるコンピューティングデバイスを含み得、異なるデバイスは、利用可能なハードウェア上の特徴および/またはデータ処理能力に関連して可変である。
【0041】
トレーニングシステムが特定のハードウェア上の特徴と、割り当てられたコンピューティングリソースによって利用可能な処理能力に基づくハードウェアレベルのパフォーマンス設定値を有するトレーニングスケジュールを適用可能であるため、トレーニングシステムは、特定の機械学習モデルをトレーニングするために割り当てられたコンピューティングリソースをより効率的に使用可能である。トレーニングセッション中またはセッション間にコンピューティングリソースをスケールアップまたはスケールダウンするためにさらなる処理オーバーヘッドをプラットフォーム動作に追加しないように、トレーニングシステムは、同じトレーニングスケジュールを異なるスケールの同じコンピューティングリソースのセットに適用できる。
【0042】
モデルレベルおよびハードウェアレベルのパフォーマンス設定を調節する際のオーバーヘッドは、機械学習モデルのトレーニングおよび実行を目的とした僅かな量または無視できるほどのオーバーヘッドを発生させる。その結果、モデル品質とトレーニング速度とのトレードオフを変化させるために、モデルレベルおよびハードウェアレベルのパフォーマンス設定の両方に変更が適用可能であることが多い。モデルレベルおよびハードウェアレベルのパフォーマンス設定の多数の可能な組み合わせにかかわらず、本開示の態様は、ハードウェアを意識したプログレッシブトレーニングが適用されない他の手法と比較して、より高いトレーニング速度でモデル品質を改善または維持するためのモデルレベルおよびハードウェアレベルのパフォーマンス設定の組み合わせを識別するために、候補トレーニングスケジュールの空間を探索することを実現する。
【0043】
例示的なシステム
図1は、本開示の態様による例示的なトレーニングシステム100のブロック図である。トレーニングシステム100は、1つまたは複数の物理的場所の1つまたは複数のコンピューティングデバイス上に実装可能である。トレーニングシステム100は、コンピューティングプラットフォーム101の一部として図1に示されている。コンピューティングプラットフォーム101は、ネットワークを介して1つまたは複数の他のコンピューティングデバイス、例えばコンピューティングデバイス105と通信するコンピューティングデバイスのコレクションであり得る。
【0044】
トレーニングシステム100は、トレーニングエンジン110を含み、トレーニングスケジュールエンジン115およびトレーニングスケジュールライブラリ120をさらに含み得る。いくつかの例では、トレーニングシステム100は、ニューラルアーキテクチャサーチエンジン125をさらに含み得る。
【0045】
トレーニングシステム100は、機械学習モデルをトレーニングするための要求を、例えばコンピューティングデバイス105から受信するように構成されている。一例として、コンピューティングデバイス105は、例えば、コンピューティングデバイス105のディスプレイ上に提示されたブラウザまたはモバイルアプリケーション上のAPIまたはwebインターフェースなどの何らかのインターフェースを介して、要求をトレーニングシステム100に送信できる。
【0046】
コンピューティングデバイス105は、ユーザによって操作されるユーザのコンピューティングデバイスおよび/またはトレーニングシステム100と自動的に通信するように構成されたデバイスであり得る。例えば、コンピューティングデバイス105は、トレーニングされた機械学習モデルを受信および展開するように構成され得る。コンピューティングデバイス105は、展開されたモデルによって入力を処理してそれぞれの出力データを生成するための要求を、他のコンピューティングデバイス(図示せず)から受信するようにさらに構成され得る。他のコンピューティングデバイスは、別個で、またはプラットフォーム101をコンピューティングデバイス105と接続するネットワークの一部として、コンピューティングデバイス105に接続され得る。
【0047】
コンピューティングデバイス105からのこの要求は、機械学習モデル、機械学習タスク、および/またはモデルをトレーニングするために利用可能なコンピューティングリソースを少なくとも部分的に記述する入力パラメータを指定できる。機械学習モデルを記述する入力パラメータは、ニューラルネットワーク、サポートベクタマシン、回帰モデルなどのモデルタイプを含み得る。入力パラメータは、特定の幅または深さを有するニューラルネットワークなど、所望の機械学習モデルの特定の特性をさらに含み得る。
【0048】
入力パラメータは、回帰または分類タスクなど、機械学習モデルが実行するようにトレーニングされる機械学習タスクのタイプをさらに指定し得る。例示的な機械学習タスクが本明細書で提供されており、概して、機械学習タスクは、タスクを実行するようにトレーニングされた機械学習モデルによって学習される入力および対応する出力のセット間の関数の近似化のために定義され得る。入力パラメータは、二項分類、マルチクラス分類、線形回帰、ロジスティック回帰など、機械学習モデルが実行するためにトレーニングされる機械学習タスクのサブタイプをさらに指定できる。
【0049】
トレーニングシステム100は、タスクが入力パラメータ内で指定されている場合に機械学習モデルのタイプを自動的に選択するように構成され得るが、モデルタイプを選択するようには構成されていない。例えば、トレーニングシステム100は、自動機械学習(AutoML)システム(図1では図示せず)の一部でもよい。AutoMLシステムは、任意選択的に入力パラメータのうちでもとりわけ、実行されるタスクを指定する入力パラメータに基づいて実施するための機械学習モデルを自動的に選択するように構成され得る。入力パラメータがモデルタイプを指定する場合でも、いくつかの例では、トレーニングシステム100を実施するAutoMLシステムは、他の受信されたパラメータに基づいて1つまたは複数のモデルタイプを示唆するように構成され得る。図4に関してより詳細に説明するように、トレーニングシステム100は、いくつかの例では、それらのアーキテクチャを有し、かつハードウェアを意識したプログレッシブトレーニングを使用してトレーニングされ得るニューラルネットワークをトレーニングするためにニューラルアーキテクチャを識別するように構成されたニューラルアーキテクチャサーチ(NAS)エンジン125を実施する。
【0050】
ニューラルアーキテクチャは、ニューラルネットワークの形状またはトポロジを記述する値のセットを指す。ニューラルアーキテクチャの一部となり得る例示的な値は、例えば、アーキテクチャが有する層数、各層の幅、各層のノードまたはニューロンの数、入力のセットが与えられたときの各層で実行される動作のタイプ、およびネットワークの層のうちの1つまたは複数について適用される活性化関数のタイプを含む。各ニューラルネットワークは、それぞれのニューラルアーキテクチャを有するものとする。
【0051】
入力パラメータはまた、トレーニングシステム100が機械学習モデルをトレーニングするべきコンピューティングリソースを指定することもできる。コンピューティングプラットフォーム101のコンピューティングリソース130は、図5を参照して本明細書で説明するように、多種多様な異なるタイプおよび構成のプロセッサおよびメモリデバイスを含む多種多様な異なるコンピューティングデバイスを含み得る。コンピューティングリソース130は、コンピューティングデバイス上でのデータ処理および記憶を改善するための様々なハードウェア上の特徴を有するいくつかのコンピューティングデバイスを含み得る。これらのハードウェア上の特徴は、トレーニングシステム100によって調節されるハードウェアレベルのパフォーマンス設定の異なる値にしたがって有効化、無効化、または修正され得る。
【0052】
入力パラメータは、どの位の量で、どの種類の、および/またはどの特定のコンピューティングリソースが、機械学習モデルをトレーニングする際にトレーニングシステム100によって使用されるべきかを指定できる。例えば、コンピューティングデバイス105は、コンピューティングリソース105の一部分が割り当てられたユーザに関連付けられてもよい。他の例では、プラットフォーム101は、例えば、利用可能な時間の長さ、処理サイクル数、または異なる処理速度もしくは処理能力を有するより多くのデバイスまたはより少ないデバイスにおいて測定された、より多いまたはより少ないコンピューティングリソースを提供し得る。処理能力は、例えば、クロック速度、データ帯域幅、キャッシュメモリサイズなどにおいて測定可能である。例えば、中央処理装置(CPU)などの他の特化性が低いデバイスの使用と比較して、要求は、機械学習モデルのトレーニングを加速するためにグラフィックスプロセッシングユニット(GPU)の使用を指定し得る。
【0053】
この要求はまた、機械学習モデルをトレーニングするために使用されるトレーニングデータまたはトレーニングデータの位置を指定することもできる。例えば、トレーニングデータは、トレーニングシステム100を実施するデバイスと同じまたはそれと異なってもよい、プラットフォーム101の1つまたは複数のコンピューティングデバイス上に記憶されることができる。トレーニングデータは、例えば、モデルが処理してそれぞれの出力を生成するようにトレーニングされる入力の1つまたは複数のトレーニング例を含み得る。トレーニング例のいくつかまたは全ては、ラベル付けされた例に対応するグランドトゥルース出力のラベルを含み得る。
【0054】
トレーニングエンジン110は、コンピューティングデバイス105から要求を受信し、その要求にしたがって機械学習モデルをトレーニングするためのハードウェアレベルおよびモデルレベルのパフォーマンス設定の値を指定するトレーニングスケジュールを受信する。図3A図3Bを参照してより詳細に説明するように、トレーニングエンジン110は、例えば、本開示の態様によるトレーニングスケジュールを生成するように構成されたトレーニングスケジュールエンジン115からトレーニングスケジュールを受信できる。他の例では、トレーニングエンジン110は、事前に生成されたトレーニングスケジュールのコレクションを記憶するトレーニングスケジュールライブラリ120に照会することによってトレーニングスケジュールを受信する。
【0055】
トレーニングエンジン110は、トレーニング期間にわたって機械学習モデルをトレーニングするためのトレーニングプロセスを実施する。トレーニングプロセスは、トレーニング期間にわたって1回または複数回反復可能である、機械学習モデルをトレーニングするための任意の動作セットを含み得る。このトレーニングプロセスは、例えばトレーニングされるべきモデルのタイプおよび/またはモデルが実行するようにトレーニングされるべき機械学習タスクの性質に応じて可変であり得る。例示的なプロセスは、教師あり、教師なし、または半教師あり学習手法に基づき得る。例えば、トレーニングエンジン110は、勾配降下を伴う逆伝播を使用し、さらに計算された勾配と、任意選択的に、1つまたは複数の他のパラメータとにしたがって機械学習モデルについての1つまたは複数の重みまたはモデルパラメータ値を更新して、機械学習モデルをニューラルネットワークとしてトレーニングするように構成され得る。本明細書で説明するように、異なる値に設定されるいくつかのモデルレベルのパフォーマンス設定は、トレーニングエンジン110に、モデルをトレーニングするためにトレーニングプロセスを修正させることができる。
【0056】
トレーニングエンジン110はまた、トレーニングの一部として、例えば適応モーメント推定(adaptive moment estimation、Adam)最適化、確率的またはミニバッチの勾配降下、モーメンタムを用いた勾配降下を含む様々な最適化プロセス、ならびに、例えばドロップアウトを使用して、トレーニングされたモデルにおける過学習を減少させるためのプロセスを実行するように構成され得る。
【0057】
例えば、クラスタリングまたはサポートベクタマシンに基づくモデルなどの異なるモデルアーキテクチャに基づく他のトレーニングプロセスはまた、トレーニングエンジン110によって適用されることが可能である。加えて、他のタイプのトレーニングプロセス、例えば教師なしまたは半教師あり手法に基づくプロセスはまた、本開示の態様により機械学習モデルをトレーニングするためにトレーニングエンジン110によって実行され得る。
【0058】
トレーニング期間は、例えば、受信された要求の一部としての追加の入力パラメータとして提供可能である、または事前に決定可能である1つまたは複数の終了基準にしたがって定義され得る。トレーニングエンジン110は、終了基準が満たされたときにトレーニングを停止する。この基準は、例えば、トレーニングエンジン110によって実施されるトレーニングプロセスの最大反復数、トレーニング開始からの最大経過時間量、トレーニングされたモデルによる最小モデル品質パフォーマンス閾値を満たすこと、および/または特定の反復回数または経過時間後のモデル品質への最小所定改善の不満足であり得る。
【0059】
トレーニングシステム100は、多段階にわたって機械学習モデルをトレーニングできる。トレーニング段階は、いくつかのトレーニングステップに対応でき、各トレーニングステップは、算出された誤差に基づいたモデルパラメータ値を更新する完全なフォワードパスおよびバックワードパスを表す。トレーニング段階におけるトレーニングステップの数は、可変でもよく、例えば数千から数百万であってもよい。トレーニングステップの数は、例えば、トレーニングの段階の全ておよび/またはトレーニングデータセットのサイズについてのトレーニングステップの総数に基づいて可変でもよい。いくつかの例では、段階は、モデルをトレーニングするための総トレーニング時間、トレーニングセット全体がそのモデルによって処理されるエポック数または回数、および/または、閾値再現率またはモデル正確率を測定するためのメトリクスに基づく任意の閾値など、達成された特定のモデルパフォーマンスのマイルストーンよりも短い期間として定義され得る。
【0060】
各段階において、トレーニングエンジン110は、その段階中にトレーニングプロセスを調節するためにハードウェアレベルおよびモデルレベルのパフォーマンス設定についての異なる値を適用できる。ハードウェアレベルおよびモデルレベルのパフォーマンス設定は、トレーニング速度と、トレーニングされた機械学習モデルのモデル品質との間に可変トレードオフを有する値の範囲をとり得る。トレーニングエンジン110は、ハードウェアレベルおよびモデルレベルのトレーニング最適化の組み合わせを一緒に行うことと、ハードウェアレベルおよびモデルレベルのパフォーマンスのパラメータの両方についての値を調節してトレーニング速度と、結果として得られるトレーニングされたモデルのモデル品質との間の異なるバランスを実現することとを行うように構成され得る。トレーニングスケジュールは、様々なハードウェアレベルおよびモデルレベルのパフォーマンス設定について値が調節される比率を指定できる。例えば、この値が数値で、モデル品質よりもトレーニング速度を重視する値の範囲の一端から開始する場合、トレーニングスケジュールは、特定のパフォーマンス設定についての値が、トレーニング速度よりもモデル品質を重視する値、またはその逆の値へ遷移するために調節される比率を指定できる。
【0061】
トレーニングの早い段階で、トレーニングスケジュールは、モデル品質を犠牲にしてより高いトレーニング速度を重視するハードウェアレベルおよびモデルレベルのパフォーマンス設定を指定できる。トレーニングスケジュールは、トレーニング速度よりもモデル品質を重視するようにシステムによって実行されるトレーニングプロセスに遷移するために、ハードウェアレベルおよびモデルレベル両方のパフォーマンス設定のいくつかの中間値を含み得る。トレーニングスケジュールは、中間値がパフォーマンス設定に適用されるべき点を指定し、トレーニングシステムは、その指定された点においてそれらの設定についての値を適用するように構成されている。これらの点は後続のトレーニング段階の開始、および/または時間などの他の条件にしたがった間隔であり得る。例えば、トレーニングスケジュールは、毎分の間隔においてパフォーマンス設定についての異なる値を指定し得る。トレーニングの後の段階で、トレーニングスケジュールは、より低いトレーニング速度を犠牲にしてより高いモデル品質を重視するハードウェアレベルおよびモデルレベルのパフォーマンス設定についての値またはスキームを指定できる。
【0062】
様々なハードウェアレベルおよびモデルレベルのパフォーマンス設定についての値の範囲は、少なくとも、トレーニング中に利用可能なパフォーマンス設定のタイプにしたがって可変である。例えば、あるモデルレベルのパフォーマンス設定は、機械学習モデルをトレーニングするための学習率である。学習率の調節は、最初は、例えば0.1~0.01など、非常に小刻みに行われ得る。段階またはトレーニングステップの特定の数の後、学習率は、ある量だけ、例えば、現在の値の10倍など、減少させられ得る。
【0063】
別の例示的なモデルレベルのパフォーマンス設定は、正則化である。数値を調節することとは逆に、パフォーマンス設定が異なるタイプまたは分類の最適化を含む正則化などのパフォーマンス設定の場合、パフォーマンス設定についての値は、パフォーマンス設定によって有効とされるスキームのタイプに対応できる。データ増強などのモデル正則化の場合、増強のための方法は、異なるモデルレベルのパフォーマンス設定値に応じて、単一の歪からより進んだぼけおよび歪へ変化させる場合がある。
【0064】
様々な異なるハードウェアレベルおよびモデルレベルのパフォーマンス設定についての値の範囲は整数であり得る。別の例として、ハードウェアレベルのパフォーマンス設定は、チップ、ノード、または機械学習モデルをトレーニングする他のデバイス間の勾配などのデータを伝送する通信可能半径であり得る。最初に、通信可能半径は、互いに隣接したローカルデバイス間で通信するために小さくてもよく、例えば2×2でもよい。この通信可能半径は、データセンタ内および/またはデータセンタ間で、異なるハードウェア相互接続を介して数百または数千のチップと通信するために、例えば16×16以上まで増加させるように調節され得る。
【0065】
トレーニングエンジン110は、コンピューティングリソース130に、ハードウェアレベルおよびモデルレベルのパフォーマンス設定の現在の値にしたがって機械学習モデルをトレーニングするための動作を行わせるように構成されている。
【0066】
例えば、トレーニングエンジン110は、コンピューティングリソース130によって実行されると、コンピューティングリソース130に、プログラムまたは命令のシーケンスで指定されているパフォーマンス設定についての値にしたがって動作を実行させるプログラムまたは命令のシーケンスを生成できる。いくつかの例では、トレーニングエンジン110は、コンピューティングリソースのデバイスへの1つまたは複数の制御信号を介してハードウェア上の特徴の実行を有効化、無効化、または修正するように構成されている。例えば、トレーニングエンジン110は、異なるハードウェア上の特徴が、コンピューティングリソース130の制御しているオペレーティングシステムまたは他のソフトウェアまたはファームウェアによって有効化されるようにできる。他の例では、トレーニングエンジン110は、ハードウェア上の特徴を有効化または無効化するために、デバイスが制御信号を受信するように構成されたバスまたは通信チャネルを介して直接信号を送信し得る。
【0067】
ハードウェアレベルのパフォーマンス設定の異なる値によって調節可能なハードウェア上の特徴のいくつかの例は、コンピューティングデバイス間のデータの相互通信または内部通信の有効化/無効化、トレーニングプロセスの一部としてそれぞれの動作を実行するためにコンピューティングデバイスが適用する数値精度のレベル、および/またはコンピューティングデバイス上のハードウェア並列性の有効化/無効化を含む。いくつかの例では、データの相互通信または内部通信は、デバイス間で送信されるデータの比率、ボリューム、またはタイプなど、さらに調節され得る。
【0068】
ハードウェアレベルのパフォーマンス設定は、それらのコンピューティングデバイス間の論理経路を用いて、コンピューティングデバイスのソフトウェア的に定義されたクラスタまたは仮想的に定義されたクラスタを調節するための設定を含み得る。トレーニング中にコンピューティングリソース130によって実行される例示的な動作は、入力値のベクトルと、ニューラルネットワーク層の重みの行列またはテンソルのドット積、行列乗算を算出することと、活性化関数を算出することと、畳み込み動作を実行することと、特徴マップの複数の値をプールすることなどを含み得る。
【0069】
モデルレベルのパフォーマンス設定は、モデルが受け取る入力のサイズを含む、機械学習モデルのサイズまたはニューラルネットワークのトポロジもしくは形状などのモデルハイパーパラメータを含み得る。モデルレベルのパフォーマンス設定はまた、学習率またはバッチサイズなど、機械学習モデルをトレーニングする際にトレーニングエンジンによって使用されているトレーニングプロセスを修正するためのトレーニングプロセスハイパーパラメータも含み得る。トレーニングプロセスハイパーパラメータはまた、モデルのどの程度の量の機能部分が正則化されるか、またはどの程度の量のデータが正規化されるかについての二次最適化方法またはプロセスなど、モデルをさらに改善するためにトレーニングプロセスの一部として実行可能な様々な最適化プロセスの適用を制御する値を有するパラメータを含み得る。トレーニングプロセスハイパーパラメータの例はまた、例えばトレーニングプロセスがミニバッチ勾配降下のときの学習率またはミニバッチサイズを含み得る。
【0070】
モデルレベルのパフォーマンス設定の場合、トレーニングエンジン110は、トレーニング期間全体を通してトレーニングスケジュールにしたがってモデルレベルのパフォーマンス設定を調節するために、コンピューティングリソース130によって解釈可能な信号を送信できる。例えば、トレーニングエンジン110は、トレーニング中にモデルおよび/またはトレーニングプロセスに対する調節を指定するプログラムまたは命令のシーケンスを生成し得、その点または段階において、その調節がトレーニングスケジュールのモデルレベルのパフォーマンス設定値にしたがってなされるべきである。
【0071】
トレーニングエンジン110は、システムを実施するプラットフォーム上で利用可能なハードウェアレベルまたはモデルレベルの特徴についてのハードウェアレベルおよびモデルレベルのパフォーマンス設定についての値の調節を探索することによってトレーニングスケジュールを生成できる。生成の一部として、トレーニングエンジン110は、設定が適用されるトレーニング中の点に応じて、より高いトレーニング速度またはモデル品質を実現する際に補完するモデルレベルおよびハードウェアレベルのパフォーマンス設定を識別できる。
【0072】
例えば、クラスタ内で近接したコンピューティングデバイスのローカルのみの通信についてのハードウェアレベルのパフォーマンス設定の異なる値は、トレーニングの早い段階におけるモデル品質を犠牲にしてトレーニングを加速するために、トレーニングエンジン110がバッチ正規化またはクロスレプリカ勾配和を適用するモデルレベルのパフォーマンス設定の異なる値と対にされ得る。コンピューティングリソース130のデバイスは、デバイス間通信を容易にするために、クラスタ内のデバイスの少なくともいくつかの間における相互接続を用いて、コンピューティングリソースのクラスタまたはグループとして論理的および/または物理的に編成され得る。トレーニングエンジン110がトレーニング中に調節可能なハードウェアレベルのパフォーマンス設定は、クラスタ内のデバイス間の通信オーバーヘッドを調節するための設定を含み得る。
【0073】
さらに別の例として、トレーニング中のより高い数値精度についてのハードウェアレベルのパフォーマンス設定の値は、モデルレベルのパフォーマンス設定についての値と対にされ得、これは、トレーニングエンジン110に、トレーニング速度を犠牲にしてより良好なモデル品質のための多種多様な二次最適化方法のいずれかを適用させる。
【0074】
さらに別の例として、GPUまたはTPUなど、特定タイプのアクセラレータ上で並列演算を有効化するためのハードウェアレベルのパフォーマンス設定は、特定のニューラルネットワークのトレーニングの際に使用される活性化関数を選択するための特定のモデルレベルのパフォーマンス設定と対にされ得る。例えば、ReLUは、並列演算が低モデル品質でより高速なトレーニングのために選択されるときの活性化関数として選択され得るが、減少したハードウェア実行並列性に起因して減少したトレーニング速度を犠牲として、向上したモデル品質のために、トレーニング中の後で活性化関数としてswishが選択され得る。
【0075】
モデルアーキテクチャの大空間およびハードウェア設定に起因して、本明細書で説明するトレーニングシステム100などのシステムは、ハードウェア設定をプログレッシブトレーニングと組み合わせることを可能にし得る。例えば、ハードウェアレベルおよびモデルレベルプログレッシブトレーニングを単純に組み合わせることは、壊滅的な品質損失を引き起こし、モデル品質が低くなりすぎて有用にはならなくなる場合がある。別の例として、トレーニングの開始時に、モデルレベルでより低い正則化およびハードウェアレベルでより低い精度を適用することは、正則化および数値精度がトレーニング中の後で著しく増加する場合でも、初期品質損失が低すぎて回復できなくする場合がある。
【0076】
いくつかの例では、モデルは、モデルをトレーニングする際にトレーニングエンジンによって以前に使用されたトレーニングスケジュールまたはトレーニングスケジュールの一部分にしたがって再トレーニングされ得る。再トレーニングは、新規トレーニングデータを使用して、トレーニングプロセスのある数の反復を実行することを含み得る。例示的な再トレーニングは、勾配降下を伴う逆伝播と、より早いトレーニングから以前に設定されたニューラルネットワークについてのモデル重みを更新することを含み得る。トレーニングの初期段階から同じトレーニングスケジュールを再利用する代わりに、トレーニングエンジン110は、トレーニング中の後の段階または点のために、以前に使用されたトレーニングスケジュールのハードウェアレベルおよびモデルレベルのパフォーマンス設定の値を適用可能である。このように、モデル(既にトレーニング済み)の現在のパフォーマンスに対応するパフォーマンス設定についての値は、トレーニング速度よりもモデル品質の改善を重視するためにトレーニングエンジン110によって使用可能である。
【0077】
トレーニングスケジュールの一部分が再トレーニングの一部として使用され得る1つの例示的な場合は、オンラインのサーチエンジン用のモデルなど、生成機械学習モデルを再トレーニングする場合である。このモデルは、生成機械学習モデルの展開後に展開され得る新規トレーニングデータおよび/またはモデルレベルの最適化を考慮して、場合によっては再トレーニングされ得る。このトレーニングシステムは、生成機械学習モデルを最初にトレーニングするために以前に使用されたトレーニングスケジュールを再利用するが、モデル品質がトレーニング速度よりも強調される点または段階にしたがって再トレーニングを開始することができる。
【0078】
トレーニングスケジュールライブラリ120は、例えば照会可能なデータベースの一部として1つまたは複数のメモリデバイス上に記憶される、事前に生成されたトレーニングスケジュールのコレクションである。このトレーニングスケジュールライブラリ120は、図2を参照してより詳細に説明されるように、トレーニングシステムによって生成されたトレーニングスケジュールが入力され得る。いくつかの例では、トレーニングスケジュールエンジン115は、生成されたトレーニングスケジュールをライブラリ120に追加し、それを、生成されたトレーニングスケジュールを使用してモデルをトレーニングするための要求の一部として受信された入力パラメータを少なくとも部分的に記述するメタデータでタグ付けする。他の例では、トレーニングスケジュールエンジン115は、システム100によってトレーニングされることが要求された、共通して受信された機械学習モデルについての1つまたは複数のトレーニングスケジュールをトレーニングスケジュールライブラリ120に入力できる。図3Bを参照してより詳細に説明するように、トレーニングエンジン110は、トレーニングされることがエンジン110によって現在要求されているモデルと同一または類似した機械学習モデルについて以前に生成された記憶済みトレーニングスケジュールを識別するために、トレーニングスケジュールライブラリ120に照会できる。
【0079】
いくつかの例では、トレーニングシステム100は、ニューラルアーキテクチャサーチ(NAS)エンジン125をさらに含み得る。図4を参照してより詳細に説明するように、NASエンジン125は、本明細書で説明するようなトレーニングスケジュールにしたがって、トレーニングからの利益を有するニューラルネットワークのためのニューラルアーキテクチャを探索するように構成されている。
【0080】
例えば、トレーニングシステム100は、特定のモデルタイプを指定することなく、実行する機械学習タスクを指定する、機械学習モデルをトレーニングするための入力パラメータを受信できる。他の例では、トレーニングシステム100は、NASエンジン125によって識別されたニューラルネットワークアーキテクチャに基づいてニューラルネットワークを生成するための要求を受信できる。
【0081】
例示的な方法
図2は、機械学習モデルのハードウェアを意識したプログレッシブトレーニングのための例示的なプロセス200のフローチャートである。図1のトレーニングシステム100などのトレーニングシステムは、プロセス200を実行するように構成され得る。
【0082】
トレーニングシステムは、ブロック210にしたがって、機械学習モデルをトレーニングする要求を受信する。この要求は、1つまたは複数の入力パラメータを含む様々なタイプのデータまたはメタデータを含み得る。これらの入力パラメータは、機械学習モデル、機械学習タスク、および機械学習モデルをトレーニングするために利用可能なコンピューティングリソースの1つまたは複数を少なくとも部分的に記述する、図1を参照して本明細書で説明される入力パラメータを含み得る。
【0083】
トレーニングシステムは、ブロック220にしたがって、1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定についての複数の値を指定するトレーニングスケジュールを受信する。例えば、このトレーニングシステムは、図1および図3Aを参照して本明細書で説明するように、トレーニングスケジュールを生成できる。別の例として、トレーニングシステムは、図1および図3Bを参照して本明細書で説明するように、複数の事前に生成されたトレーニングスケジュールを記憶する1つまたは複数のメモリデバイスに照会を行うことができる。
【0084】
トレーニングシステムは、ブロック230にしたがって、トレーニングプロセス、1つまたは複数のハードウェアレベルのパフォーマンス設定、およびトレーニング中の異なる時点におけるトレーニングスケジュールの複数の値のうちの異なる値に設定される1つまたは複数のモデルレベルのパフォーマンス設定にしたがって機械学習モデルをトレーニングする。図1を参照して本明細書で説明するように、トレーニングシステムは、トレーニング中の様々な点においてハードウェアレベルおよびモデルレベルのパフォーマンス設定の両方の異なる値を適用するように構成されている。このトレーニングスケジュールは、例えば段階または他の定義された間隔としてそれらの点を指定でき、トレーニングスケジュールは、値が範囲の一端から他端へ変更される比率をさらに指定できる。
【0085】
トレーニングシステムは、ブロック240にしたがって、トレーニング済み機械学習モデルを1つまたは複数のコンピューティングデバイスに送信する。1つまたは複数のコンピューティングデバイスは、一例として、機械学習モデルがトレーニングされることを最初に要求したデバイスであり得る。他の例では、1つまたは複数のコンピューティングデバイスは、例えば、ネットワークのエッジ上のデバイスまたはコンピューティングプラットフォームの別のデバイスの上のモデル展開の一部として、トレーニング済み機械学習モデルを受信するために事前に決定され得る。
【0086】
図3Aは、ハードウェアを意識したプログレッシブトレーニングのためのトレーニングスケジュールを生成するように機械学習モデルをトレーニングするための例示的なプロセス300Aのフローチャートである。説明の目的上、トレーニング済み機械学習モデルは、トレーニングスケジュール機械学習モデルと呼ばれる。
【0087】
トレーニングシステムは、ブロック310にしたがって、トレーニングスケジュールの1つまたは複数のトレーニング例を受信する。各例示的なトレーニングスケジュールが、例示的なトレーニングスケジュールを生成するために使用された1つまたは複数のそれぞれの入力パラメータを少なくとも部分的に記述するそれぞれのデータと、それぞれのトレーニング速度と、例示的なトレーニングスケジュールを使用してトレーニングされたそれぞれのモデルのそれぞれのモデル品質とでラベル付けされ得る。このトレーニングデータは、手動、自動、またはその両方の手法の組み合わせによって生成され得る。
【0088】
例えば、トレーニングシステムは、受信された入力パラメータにしたがって生成されたトレーニングスケジュールについてのメタデータを記憶し、モデルをトレーニングした後、そのトレーニング速度およびモデル品質を記録できる。トレーニング速度およびモデル品質はトレーニング全体を通して可変であるため、トレーニングシステムは、トレーニングスケジュールからの値がパフォーマンス設定に適用される異なる間隔で、速度および品質をそれぞれ表す個別の値を記憶できる。追加的または代替的に、トレーニングシステムは、例えば平均または和として、個別のトレーニング速度およびモデル品質値の関数を計算できる。
【0089】
1つまたは複数のトレーニング例を使用して、トレーニングシステムは、ブロック320にしたがって、1つまたは複数の入力パラメータからトレーニングスケジュールを生成するように機械学習モデル、すなわちトレーニングスケジュール機械学習モデルをトレーニングする。入力パラメータは、図1図2を参照して本明細書で説明するように、モデルをトレーニングする要求の一部として受信可能な入力パラメータである。トレーニングシステムは、多種多様な異なるやり方で、例えば勾配降下およびモデル重み更新による逆伝播の何らかの形態を使用して、トレーニングスケジュール機械学習モデルをトレーニングできる。トレーニングスケジュール機械学習モデルをトレーニングするための損失関数またはパフォーマンス関数は、トレーニング期間中の様々な点におけるトレーニング速度またはモデル品質が、トレーニング中のそれらの同じ点におけるグランドトゥルースのトレーニング速度またはモデル品質とどの程度近接しているかの関数であり得る。
【0090】
他の例では、トレーニングシステムは、候補トレーニングスケジュールのセットにわたる最適化手法にしたがってトレーニングスケジュールを探索するように構成され得る。この探索は、入力パラメータにしたがって設定され得る様々な制約下にある、トレーニングの過程を通して最も高いモデル品質およびトレーニング速度を有するトレーニングスケジュールを識別するように定義され得る。例えば、この制約は、所与のトレーニングプロセスおよび識別されたトレーニングスケジュールを使用してモデルをトレーニングする際に使用されるコンピューティングリソースのセットに対して利用可能なハードウェアレベルおよびパフォーマンスレベルのパフォーマンス設定の特定のサブセットにわたって存在し得る。
【0091】
図3Bは、本開示の態様による、複数のトレーニングスケジュールを記憶する1つまたは複数のメモリデバイスからの事前に生成されたトレーニングスケジュールを照会および適用するための例示的なプロセスのフローチャートである。
【0092】
トレーニングシステムは、ブロック330にしたがって、複数の候補トレーニングスケジュールを記憶する1つまたは複数のメモリデバイスにクエリを送信し、そのクエリが、機械学習モデル、機械学習タスク、機械学習モデルをトレーニングするために利用可能なコンピューティングリソースの1つまたは複数を少なくとも部分的に記述するデータを含む。図1を参照して本明細書で説明するように、トレーニングシステムは、モデルをトレーニングする要求の一部として入力パラメータを受信し、それらの入力パラメータのうちの少なくともいくつかでタグ付けされた、以前に生成されたトレーニングスケジュールについて、メモリデバイスのトレーニングスケジュールライブラリに照会するように構成されたトレーニングエンジンを含み得る。
【0093】
トレーニングシステムは、ブロック340にしたがって、そのクエリに応答して、複数の候補トレーニングスケジュールからトレーニングスケジュールを受信する。例えば、受信されたトレーニングスケジュールは、そのクエリにあるような入力パラメータと同一または最も類似したメタデータを有するトレーニングスケジュールであり得る。入力パラメータは、1つまたは複数の入力パラメータに対応する所定の類似度と比較され得る。
【0094】
図4は、本開示の態様による、ニューラルアーキテクチャを探索するための例示的なプロセスのフローチャートである。
【0095】
本開示の態様はまた、ハードウェアを意識したプログレッシブトレーニングが適用可能なターゲットアーキテクチャのための候補ニューラルネットワークアーキテクチャのセットを探索するように構成されたトレーニングシステムを提供する。例えば、トレーニングシステムは、トレーニング速度とモデル品質のトレードオフのための異なる値において、コンピューティングリソースの指定されたセットについてのハードウェア上の特徴の全てまたは大部分がトレーニング中に適用され得るターゲットアーキテクチャを識別できる。トレーニングシステムは、トレーニング中のパフォーマンス設定の調節の一部として、コンピューティングリソースに、調節された値にしたがってモデルをトレーニングさせるように実行される動作にわたるパフォーマンスオーバーヘッドを発生させ得る。別の例として、トレーニングシステムは、モデルレベルのパフォーマンス設定が他の候補アーキテクチャに対して最小パフォーマンスオーバーヘッドをもって調節可能であるターゲットアーキテクチャを識別できる。
【0096】
トレーニングシステムは、トレーニング中にハードウェアレベルおよびモデルレベルのパフォーマンス設定の連続的調節の利益を有するニューラルアーキテクチャを探索する。例えばニューラルネットワーク層の数および/または各層におけるノードの数によって測定されたモデルサイズ、またはそれを有する入力サイズにおいて拡張可能であり、増加したモデルまたは入力サイズを収容するようにスケーリングされ得る対応コンピューティングリソース上でトレーニングされることが可能な、例えばニューラルアーキテクチャは、本明細書で説明するように、例えば、パフォーマンス設定値を変更するトレーニングスケジュールを使用してより高いトレーニング速度およびモデル品質で測定されたときに、トレーニング中により利益を有する。
【0097】
プロセス400のブロック410にしたがって、トレーニングシステムは、複数の候補ニューラルアーキテクチャのうちの第1の候補ニューラルアーキテクチャを有し、かつハードウェアを意識したプログレッシブラーニングを使用してトレーニングされた第1のニューラルネットワークの少なくともトレーニング速度およびモデル品質を推定する。この推定は、ニューラルアーキテクチャの探索空間内の候補ニューラルアーキテクチャのパフォーマンスを測定することの一部であり得る。この探索空間は、提供された異なる入力パラメータに基づいてフィルタリングまたは調節され得る多種多様な異なる候補アーキテクチャを含み得る。例えば、トレーニングシステムが畳み込みニューラルネットワークとなるようにモデルタイプを指定する入力パラメータを受信する場合、トレーニングシステムは、少なくとも1つの畳み込み層を含むニューラルアーキテクチャの探索空間を探索できる。
【0098】
トレーニングシステムは、第1のニューラルネットワークの推定トレーニング速度および推定モデル品質と、1つまたは複数の第2のニューラルネットワークのそれぞれの推定トレーニング速度およびそれぞれの推定モデル品質との比較に少なくとも基づいて第1の候補ニューラルアーキテクチャを選択する。各第2のニューラルネットワークは、ブロック420にしたがって、それぞれの候補ニューラルアーキテクチャを有する。第2のニューラルネットワークは、それぞれのトレーニング速度およびモデル品質を識別するために、本明細書で説明するように、ハードウェアを意識したプログレッシブラーニングにしたがってトレーニングされ得る。追加的または代替的に、トレーニングシステムは、トレーニング速度およびモデル品質を推定できる。
【0099】
トレーニングシステムによる選択は、候補ニューラルアーキテクチャを選択することと、そのニューラルアーキテクチャを現在の最も良く知られているアーキテクチャと比較することとの複数の反復の一部であり得る。探索は、異なる候補モデルのパフォーマンスのインジケータとして少なくともハードウェアを意識したプログレッシブトレーニングからのトレーニング速度およびモデル品質を使用することによって、増大され得る。反復数にわたる、または閾値パフォーマンス値を満たす候補ニューラルアーキテクチャを発見するまでのランダム探索など、多種多様なニューラルアーキテクチャ探索プロセスのうちの任意のプロセスは、そのトレーニング速度およびモデル品質に少なくとも基づいて適用され得る。
【0100】
第1の候補ニューラルアーキテクチャがターゲットニューラルアーキテクチャとして識別されると、トレーニングシステムは、例えば図1図2を参照して本明細書で説明するように、ターゲットニューラルアーキテクチャを有するニューラルネットワークのトレーニングに進むことができる。
【0101】
本開示の態様は、少なくとも以下の技術的利点を提供できる。本明細書で説明するようにNASから選択されたニューラルアーキテクチャを有するニューラルネットワークを生成することは、本明細書で説明するようにハードウェアを意識したプログレッシブトレーニングの改善された利用を可能にする。ニューラルアーキテクチャは、それらがトレーニングされたコンピューティングリソース環境に合わせて調整可能であり、実施されるトレーニングプロセスの動作を加速するためのハードウェア上の特徴とは不適合であり得る、本明細書で説明するように識別されていないニューラルアーキテクチャとは対照的に、それらのハードウェア上の特徴に対するアクセスの増加を可能にする。
【0102】
例示的なコンピューティング環境
図5は、トレーニングシステム100を実施するための例示的な環境500のブロック図である。システム100は、1つまたは複数のサーバコンピューティングデバイス515および1つまたは複数のメモリデバイス530を有するコンピューティングプラットフォーム101など、1つまたは複数の場所に1つまたは複数のプロセッサを有する1つまたは複数のデバイス上に実装可能である。ユーザコンピューティングデバイス512およびサーバコンピューティングデバイス515は、ネットワーク560を介してメモリデバイス530に通信可能に結合可能である。メモリデバイス530は、揮発性メモリと不揮発性メモリの組み合わせであり得、コンピューティングデバイス512、515と同じまたは異なる物理的場所に存在し得る。例えば、メモリデバイス530は、ハードドライブ、ソリッドステートドライブ、テープドライブ、光学記憶装置、メモリカード、ROM、RAM、DVD、CD-ROM、書き込み可能メモリ、および読み出し専用メモリなど、情報を記憶できる任意のタイプの非一時的コンピュータ可読媒体を含み得る。
【0103】
サーバコンピューティングデバイス515は、1つまたは複数のプロセッサ513と、メモリ514とを含み得る。メモリ514は、プロセッサ513によって実行可能な命令521を含む、プロセッサ513によってアクセス可能な情報を記憶可能である。メモリ514はまた、プロセッサ513によって検索、操作、または記憶可能なデータ523を含み得る。メモリ514は、揮発性メモリまたは不揮発性メモリなど、プロセッサ513によってアクセス可能な情報を記憶可能なあるタイプの非一時的コンピュータ可読媒体であり得る。プロセッサ513は、1つまたは複数の中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、および/またはテンソル処理ユニット(TPU)などの特定用途向け集積回路(ASIC)を含み得る。
【0104】
プラットフォーム101のための利用可能なコンピューティングリソースは、プロセッサ513、および/またはメモリ514もしくはメモリデバイス530のうちの1つまたは複数を含み得る。本明細書で説明するように、プラットフォーム101のためのコンピューティングリソースは、1つまたは複数のハードウェアレベルのパフォーマンス設定にしたがって有効化または修正可能な、データ処理中の1つまたは複数のハードウェア上の特徴を実施するように構成され得る。トレーニングシステム100は、プラットフォーム101のコンピューティングリソース上で本開示の態様による機械学習モデルをトレーニングするように構成されている。
【0105】
命令521は、プロセッサ513によって実行されると、プロセッサ513に、その命令によって定義されたアクションを実行させる1つまたは複数の命令を含み得る。命令521は、要求に応じて解釈される、または前もってコンパイルされるソースコードモジュールとは独立した解釈可能なスクリプトもしくはコレクションを含む、プロセッサ513によって直接処理されるオブジェクトコード形式または他の形式で記憶され得る。命令521は、本開示の態様によるトレーニングシステム100を実施するための命令を含み得る。トレーニングシステム100は、プロセッサ513を使用して、および/またはサーバコンピューティングデバイス515からリモートに位置する他のプロセッサを使用して実行され得る。
【0106】
データ523は、命令521にしたがってプロセッサ513によって、検索、記憶または修正可能である。データ523は、複数の異なるフィールドおよびレコードを有するテーブルとして、またはJSON、YAML、プロト、またはXML文書として、コンピュータレジスタ、リレーショナルまたは非リレーショナルデータベースに記憶され得る。データ523はまた、2進値、ASCII、またはUnicodeなどであるがそれに限定されないコンピュータ可読形式で書式化され得る。さらに、データ523は、他のネットワーク位置を含む、他のメモリに記憶されているデータに対する番号、説明テキスト、独自コード、ポインタ、参照など、関連情報を識別するのに十分な情報または関連データを計算するために使用される情報を含み得る。
【0107】
ユーザコンピューティングデバイス512はまた、1つまたは複数のプロセッサ516、メモリ517、命令518、およびデータ519を用いて、サーバコンピューティングデバイス515と同様に構成され得る。ユーザコンピューティングデバイス512はまた、ユーザ出力526およびユーザ入力524を含み得る。ユーザ入力524は、キーボード、マウス、機械的アクチュエータ、ソフトアクチュエータ、タッチスクリーン、マイクロフォン、およびセンサなど、ユーザからの入力を受信するための任意の適切な機構または技術を含み得る。
【0108】
サーバコンピューティングデバイス515は、データをユーザコンピューティングデバイス512へ送信するように構成され得、ユーザコンピューティングデバイス512は、ユーザ出力526の一部として実施されるディスプレイ上で、受信されたデータの少なくとも一部分を表示するように構成され得る。ユーザ出力526はまた、ユーザコンピューティングデバイス512とサーバコンピューティングデバイス515との間のインターフェースを表示するために使用され得る。ユーザ出力526は、代替的または追加的に、1つまたは複数のスピーカ、トランスデューサもしくは他の音声出力、触覚インターフェース、または非視覚および非可聴情報をコンピューティングデバイス512のユーザに提供する他の触感フィードバックを含み得る。
【0109】
図5は、プロセッサ513、516およびメモリ514、517をコンピューティングデバイス515、512内に存在するとして図示しているが、プロセッサ513、516およびメモリ514、517を含む本明細書に記載の構成要素は、異なる物理的場所にあり、同じコンピューティングデバイス内でなく動作可能である複数のプロセッサおよびメモリを含み得る。例えば、命令521、518およびデータ523、519のいくつかは、取り外し可能SDカードおよび読み出し専用コンピュータチップ内の他のものに記憶され得る。命令およびデータの一部または全部は、プロセッサ513、516から物理的にリモートであるが依然としてアクセス可能である場所に記憶され得る。同様に、プロセッサ513、516は、同時および/または連続動作を実行可能なプロセッサのコレクションを含み得る。コンピューティングデバイス515、512は、各々が、動作についての時間計測のために使用可能なタイミング情報を提供する1つまたは複数の内部クロックと、コンピューティングデバイス515、512によって実行されるプログラムとを含み得る。
【0110】
サーバコンピューティングデバイス515は、ユーザコンピューティングデバイス512からのデータを処理する要求を受信するように構成され得る。例えば、プラットフォーム101は、プラットフォームサービスを提示する様々なユーザインターフェースおよび/またはAPIを介してユーザに多種多様なサービスを提供するように構成され得る。1つまたは複数のサービスは、指定されたタスクおよびトレーニングデータにしたがってニューラルネットワークまたは他の機械学習モデルを生成するためのツールの機械学習フレームワークまたはツールのセットであり得る。ユーザコンピューティングデバイス512は、特定の機械学習タスクを実行するようにニューラルネットワークをトレーニングおよび展開するために割り当てられるターゲットコンピューティングリソースを指定するデータを受信および送信し得る。
【0111】
例えば、サーバコンピューティングデバイス515は、例えば、トレーニングデータのセット、深層ニューラルネットワーク、リカレント型ニューラルネットワーク、および畳み込みニューラルネットワークなどのトレーニングされるモデルのタイプ、ならびにモデルが実行するようにトレーニングされる機械学習タスクのタイプを指定する要求を受信するように構成され得る。この要求は、任意選択的に、本明細書で説明するように、より多くのパラメータまたはより少ないパラメータを指定できる。
【0112】
デバイス512、515は、ネットワーク560を介した直接および間接の通信が可能であり得る。デバイス515、512は、情報を送信および受信するための接続開始を受容し得るリスニングソケットをセットアップ可能である。ネットワーク560自体は、様々な構成およびプロトコルを含むことができ、インターネット、World Wide Web、イントラネット、仮想私設網、ワイドエリアネットワーク、ローカルネットワーク、および1つまたは複数の企業独自の通信プロトコルを使用する私設ネットワークを含む。ネットワーク560は、多種多様な短距離および長距離接続をサポート可能である。短距離および長距離接続は、2.402GHz~2.480GHz、2.4GHzおよび5GHzなどの異なる帯域幅にわたって、または無線ブロードバンド通信のための標準などの多種多様な通信標準を用いて実現され得る。ネットワーク560は、追加的または代替的に、様々なタイプのイーサネット接続を介することを含む、デバイス512、515間の有線接続もサポート可能である。
【0113】
本開示の態様が、連続または並列処理のためのパラダイムを含むコンピューティングデバイスの多種多様な異なる構成および品質にしたがって、または複数デバイスの分散ネットワークを介して実施可能であることを理解されたい。いくつかの実施態様では、本開示の態様は、単一のデバイスまたはデバイスの任意の組み合わせ上で実行され得る。
【0114】
例示的な機械学習タスク
本明細書で説明するように、本開示の態様は、それぞれの機械学習タスクを実行する、機械学習モデルのハードウェアを意識したプログレッシブトレーニングを提供する。機械学習タスクの例を以下に述べる。
【0115】
一例として、トレーニングされる機械学習モデルへの入力は、画像または動画の形態を有し得る。機械学習モデルは、例えばコンピュータビジョンタスクの一部としての所与の入力を処理する一部として特徴を抽出、識別、および生成するようにトレーニング可能である。このタイプの機械学習タスクを実行するようにトレーニングされた機械学習モデルは、異なる可能な分類のセットから出力分類を生成するようにトレーニングされ得る。追加的または代替的に、機械学習モデルは、画像または動画における識別された対象が特定のクラスに属する推定確率に対応するスコアを出力するようにトレーニングされ得る。
【0116】
別の例として、機械学習モデルへの入力は、HTMLもしくはXMLファイル、ワードプロセッシング文書、または画像ファイルのためのメタデータなどの他のタイプのデータから得られた書式化されたメタデータなど、特定の形式に対応するデータファイルであり得る。この文脈における機械学習タスクは、受信された入力に関する何らかの特性を分類、スコア付け、または別様に予測することであり得る。例えば、機械学習モデルは、受信された入力が特定の対象に関連するテキストを含む確率を予測するようにトレーニングされ得る。また、特定のタスクを実行することの一部として、機械学習モデルは、例えば、文書が作成されている時に文書中のテキストの自動補完のためのツールの一部として、テキスト予測を生成するようにトレーニングされ得る。機械学習モデルはまた、例えばメッセージが作成されているときに、入力文書中のテキストのターゲット言語への翻訳を予測するようにトレーニングされ得る。
【0117】
他のタイプの入力文書は、相互接続されたデバイスのネットワークの特性に関連するデータであり得る。これらの入力文書は、アクティビティログとともに、場合によっては機密データの異なるソースにアクセスするための異なるコンピューティングデバイスへのアクセス権に関する記録を含み得る。機械学習モデルは、ネットワークに対する進行中および将来的なセキュリティ侵害を予測するために上記および他のタイプの文書を処理するようにトレーニングされ得る。例えば、機械学習モデルは、悪意のある行為者によるネットワークへの進入を予測するようにトレーニングされ得る。
【0118】
別の例として、機械学習モデルへの入力は、ストリーミングされている音声、事前に録音された音声、および動画または他のソースまたは媒体の一部としての音声を含む音声入力であり得る。音声の文脈における機械学習タスクは、他の識別された音声源から音声を分離すること、および/または識別された音声の特性を聞き取りやすくするために強調することとを含む音声認識を含み得る。機械学習モデルは、翻訳ツールの一部として、例えばリアルタイムに入力音声のターゲット言語への正確な翻訳を予測するようにトレーニングされ得る。
【0119】
本明細書で説明する様々なタイプのデータを含むデータ入力に加えて、機械学習モデルはまた、所与の入力に対応する特徴を処理するようにトレーニングされ得る。特徴は、入力の何らかの特性に関連する、数値またはカテゴリ値などの値である。例えば、画像の文脈において、画像の特徴は、画像中の各画素についてのRGB値に関係し得る。画像/動画の文脈における機械学習タスクは、例えば、異なる人、場所、またはモノの存在について、画像または動画のコンテンツを分類することであり得る。機械学習モデルは、所与の入力についての出力を生成するように処理するための関連特徴を抽出および選択するようにトレーニングされ得、さらに、入力データの様々な特性間の学習済みの関係に基づいて新規特徴を生成するようにトレーニングされ得る。
【0120】
本開示の態様は、1つまたは複数のコンピュータプログラムまたはそれらのうちの1つまたは複数のコンピュータプログラムの組み合わせとして、デジタル回路、コンピュータ可読記憶媒体において実施され得る。このコンピュータ可読記憶媒体は、例えば、1つまたは複数のコンピューティングデバイスによって実行可能で、1つまたは複数の有形メモリデバイス上に記憶される1つまたは複数の命令として、非一時的であり得る。
【0121】
本明細書において、「~ように構成」という表現は、コンピュータシステム、ハードウェア、またはコンピュータプログラムの一部、エンジン、またはモジュールに関連した異なる文脈で使用される。システムが1つまたは複数の動作を行うように構成されていると記載されている場合、これは、そのシステムが、動作時において、システムに1つまたは複数の動作を行わせる、システム上にインストールされた適切なソフトウェア、ファームウェア、および/またはハードウェアを有することを意味する。何らかのハードウェアが1つまたは複数の動作を行うように構成されていると記載されている場合、これは、そのハードウェアが、動作時において、入力を受信し、その入力にしたがっており、かつ1つまたは複数の動作に対応する出力を生成する1つまたは複数の回路を含むことを意味する。コンピュータプログラム、エンジン、またはモジュールが1つまたは複数の動作を行うように構成されていると記載されている場合、これは、そのコンピュータプログラム、エンジンまたはモジュールが、1つまたは複数のプロセッサなどの1つまたは複数のコンピューティングデバイスによって実行されると、その1つまたは複数のコンピューティングデバイスに、その1つまたは複数の動作を行わせる1つまたは複数のプログラム命令を含むことを意味する。
【0122】
図面に図示され、特許請求の範囲に記載された動作は、特定の順序で示されているが、それらの動作は、示されている順序とは異なる順序で実行可能であること、およびいくつかの動作が省略される、複数回実行される、および/または他の動作と並列で実行されることを理解されたい。さらに、異なる動作を行うために構成された異なるシステムコンポーネントの分離は、そのコンポーネントを分離することが必須であると理解されるべきではない。説明されたコンポーネント、モジュール、プログラム、およびエンジンは、単一のシステムとして統合可能であり、または複数システムの一部であり得る。
【0123】
特段の記載がない限り、上述した代替態様例は、相互排他的ではなく、独特の利点を達成するために様々な組み合わせにおいて実施され得る。上記で説明した特徴の上記および他の変形ならびに組み合わせは、特許請求の範囲によって定義された主題から逸脱しない範囲で利用可能であるため、それらの例の上記記載は、特許請求の範囲によって定義された主題の限定ではなく例として解釈されるべきである。加えて、本明細書に記載する例の提示、ならびに「など」、「~を含む」、および同様のものとして表現された語句は、特許請求の範囲の主題を特定の例に限定するとして解釈されるべきではなく、むしろ、それらの例は、多くの可能な実施態様のうちの1つのみを例解することが意図されている。さらに、異なる図面における同じ参照番号は、同一または類似の要素を識別できる。
図1
図2
図3A
図3B
図4
図5
【手続補正書】
【提出日】2023-11-21
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサであって、
機械学習モデルをトレーニングする要求を受信することと、
1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定についての複数の値を指定するトレーニングスケジュールを受信することと、
トレーニングプロセス、1つまたは複数のハードウェアレベルのパフォーマンス設定、および1つまたは複数のモデルレベルのパフォーマンス設定にしたがって前記機械学習モデルをトレーニングすることと、を行うように構成され、前記1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定は、トレーニング中の異なる時点における前記トレーニングスケジュールの前記複数の値のうちの異なる値に設定され、
前記要求の受信に応答して、トレーニング済み前記機械学習モデルを1つまたは複数のコンピューティングデバイスに送信すること、を行うように構成された、1つまたは複数のプロセッサを備える、システム。
【請求項2】
前記1つまたは複数のモデルレベルのパフォーマンス設定が、
前記機械学習モデルへの入力データについての入力データサイズと、
前記機械学習モデルのサイズまたは形状を指定する1つまたは複数のモデルハイパーパラメータと、
前記機械学習モデルをトレーニングするために前記1つまたは複数のプロセッサによって実施される前記トレーニングプロセスを修正する1つまたは複数のトレーニングプロセスハイパーパラメータとのうちの1つまたは複数を含む、請求項1に記載のシステム。
【請求項3】
前記1つまたは複数のハードウェアレベルのパフォーマンス設定が、前記1つまたは複数のプロセッサのプロセッサ内データ通信またはプロセッサ間データ通信を調節するための設定を含む、請求項1に記載のシステム。
【請求項4】
前記1つまたは複数のプロセッサが、複数のグループに論理的または物理的にグループ化された複数のプロセッサを含み、
前記1つまたは複数のハードウェアレベルのパフォーマンス設定が、異なるグループ内のプロセッサ間データ通信の速度についての設定を含む、
請求項3に記載のシステム。
【請求項5】
前記1つまたは複数のハードウェアレベルのパフォーマンス設定が、前記トレーニングプロセスにしたがって前記機械学習モデルをトレーニングしながら、前記1つまたは複数のプロセッサによって実行される動作の数値精度を調節するための設定を含む、請求項3に記載のシステム。
【請求項6】
前記1つまたは複数のハードウェアレベルのパフォーマンス設定が、前記トレーニングプロセスにしたがって前記機械学習モデルをトレーニングしながら、前記1つまたは複数のプロセッサ間におけるハードウェア並列性を有効化または無効化するための設定を含む、請求項3に記載のシステム。
【請求項7】
前記機械学習モデルのトレーニングの際に、前記1つまたは複数のプロセッサが、
前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定を、前記トレーニングスケジュールの前記複数の値のうちの第1の値に設定することと、
前記機械学習モデルの前記トレーニングの開始後の第1の時点において、前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定を、前記第1の値とは異なる前記複数の値のうちの第2の値に調節することと、を行うようにさらに構成された、請求項1に記載のシステム。
【請求項8】
前記トレーニングスケジュールを受信する際に、前記1つまたは複数のプロセッサが、トレーニングスケジュール機械学習モデルを使用してトレーニングスケジュールを生成するようにさらに構成されており、前記トレーニングスケジュール機械学習モデルが、
前記機械学習モデル、機械学習タスク、および前記機械学習モデルをトレーニングするために利用可能なコンピューティングリソースの1つまたは複数を少なくとも部分的に記述する1つまたは複数の入力パラメータからトレーニングスケジュールを生成するようにトレーニングされ、
各例示的なトレーニングスケジュールが、前記例示的なトレーニングスケジュールを生成するために使用された1つまたは複数のそれぞれの入力パラメータを少なくとも部分的に記述するそれぞれのデータと、トレーニング速度と、前記トレーニングプロセスおよび前記例示的なトレーニングスケジュールにしたがってトレーニングされたそれぞれの機械学習モデルのモデル品質とでラベル付けされる、トレーニングスケジュールの1つまたは複数のトレーニング例を使用してトレーニングされる、請求項1に記載のシステム。
【請求項9】
前記機械学習モデルが、複数の候補ニューラルアーキテクチャから選択されたニューラルアーキテクチャを有するニューラルネットワークであり、前記ニューラルアーキテクチャの前記選択が、ニューラルネットワークの推定されたそれぞれのトレーニング速度とそれぞれのモデル品質との比較に少なくとも部分的に基づいており、前記ニューラルネットワークが、前記トレーニングプロセスおよびそれぞれのトレーニングスケジュールにしたがってトレーニングされ、前記複数の候補ニューラルアーキテクチャのそれぞれの候補ニューラルアーキテクチャを有する、請求項1に記載のシステム。
【請求項10】
前記トレーニングスケジュールを受信する際に、前記1つまたは複数のプロセッサが、
前記機械学習モデル、機械学習タスク、前記機械学習モデルをトレーニングするために利用可能なコンピューティングリソースの1つまたは複数を少なくとも部分的に記述するデータを含むクエリを、複数の候補トレーニングスケジュールを記憶する1つまたは複数のメモリデバイスに送信することと、
前記クエリに応答して、前記複数の候補トレーニングスケジュールから前記トレーニングスケジュールを受信することと、を行うようにさらに構成された、請求項1に記載のシステム。
【請求項11】
方法であって、
1つまたは複数のプロセッサによって、機械学習モデルをトレーニングする要求を受信することを含み、前記1つまたは複数のプロセッサが、1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定にしたがって、前記機械学習モデルをトレーニングするように構成され、
前記方法がさらに、
前記1つまたは複数のプロセッサによって、前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定についての複数の値を指定するトレーニングスケジュールを受信することと、
前記1つまたは複数のプロセッサによって、トレーニングプロセス前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定にしたがって前記機械学習モデルをトレーニングすることと、を含み、前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定は、トレーニング中の異なる時点における前記トレーニングスケジュールの前記複数の値のうちの異なる値に設定され、
前記要求の受信に応答して、前記1つまたは複数のプロセッサによって、トレーニング済み前記機械学習モデルを1つまたは複数のコンピューティングデバイスに送信すること、
を含む、方法。
【請求項12】
前記1つまたは複数のモデルレベルのパフォーマンス設定が、
前記機械学習モデルへの入力データについての入力データサイズと、
前記機械学習モデルのサイズまたは形状を指定する1つまたは複数のモデルハイパーパラメータと、
前記機械学習モデルをトレーニングするために前記1つまたは複数のプロセッサによって実施される前記トレーニングプロセスを修正する1つまたは複数のトレーニングプロセスハイパーパラメータとのうちの1つまたは複数を含む、請求項11に記載の方法。
【請求項13】
前記1つまたは複数のハードウェアレベルのパフォーマンス設定が、前記1つまたは複数のプロセッサのプロセッサ内データ通信またはプロセッサ間データ通信を調節するための設定を含む、請求項11に記載の方法。
【請求項14】
前記1つまたは複数のプロセッサが、複数のグループに論理的または物理的にグループ化された複数のプロセッサを含み、
前記1つまたは複数のハードウェアレベルのパフォーマンス設定が、異なるグループ内のプロセッサ間データ通信の速度についての設定を含む、
請求項13に記載の方法。
【請求項15】
前記1つまたは複数のハードウェアレベルのパフォーマンス設定が、前記トレーニングプロセスにしたがって前記機械学習モデルをトレーニングしながら、前記1つまたは複数のプロセッサ間におけるハードウェア並列性を有効化または無効化するための設定を含む、請求項13に記載の方法。
【請求項16】
前記トレーニングスケジュールを受信することが、前記1つまたは複数のプロセッサによって、トレーニングスケジュール機械学習モデルを使用してトレーニングスケジュールを生成することを含み、前記トレーニングスケジュール機械学習モデルが、
前記機械学習モデル、機械学習タスク、および前記機械学習モデルをトレーニングするために利用可能なコンピューティングリソースの1つまたは複数を少なくとも部分的に記述する1つまたは複数の入力パラメータからトレーニングスケジュールを生成するようにトレーニングされ、
各例示的なトレーニングスケジュールが、前記例示的なトレーニングスケジュールを生成するために使用された1つまたは複数のそれぞれの入力パラメータを少なくとも部分的に記述するそれぞれのデータと、トレーニング速度と、前記トレーニングプロセスおよび前記例示的なトレーニングスケジュールにしたがってトレーニングされたそれぞれの機械学習モデルのモデル品質とでラベル付けされる、トレーニングスケジュールの1つまたは複数のトレーニング例を使用してトレーニングされる、請求項11に記載の方法。
【請求項17】
前記機械学習モデルが、複数の候補ニューラルアーキテクチャから選択されたニューラルアーキテクチャを有するニューラルネットワークであり、前記ニューラルアーキテクチャの前記選択が、ニューラルネットワークの推定されたそれぞれのトレーニング速度とそれぞれのモデル品質との比較に少なくとも部分的に基づいており、前記ニューラルネットワークが、前記トレーニングプロセスおよびそれぞれのトレーニングスケジュールにしたがってトレーニングされ、前記複数の候補ニューラルアーキテクチャのそれぞれの候補ニューラルアーキテクチャを有する、請求項11に記載の方法。
【請求項18】
前記トレーニングスケジュールを受信することが、
前記1つまたは複数のプロセッサによって、前記機械学習モデル、機械学習タスク、前記機械学習モデルをトレーニングするために利用可能なコンピューティングリソースの1つまたは複数を少なくとも部分的に記述するデータを含むクエリを、複数の候補トレーニングスケジュールを記憶する1つまたは複数のメモリデバイスに送信することと、
前記1つまたは複数のプロセッサによって、前記クエリに応答して、前記複数の候補トレーニングスケジュールから前記トレーニングスケジュールを受信することと、を含む、請求項11に記載の方法
【請求項19】
前記機械学習モデルをトレーニングすることが、
前記1つまたは複数のプロセッサによって、前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定を、前記トレーニングスケジュールの前記複数の値のうちの第1の値に設定することと、
前記機械学習モデルの前記トレーニングの開始後の第1の時点において、前記1つまたは複数のプロセッサによって、前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定を、前記第1の値とは異なる前記複数の値のうちの第2の値に調節することと、をさらに含む、請求項11に記載の方法。
【請求項20】
命令を含むコンピュータプログラムであって、前記命令は、1つまたは複数のハードウェアレベルのパフォーマンス設定および1つまたは複数のモデルレベルのパフォーマンス設定にしたがって機械学習モデルをトレーニングするように構成された1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
第1の機械学習モデルをトレーニングする要求を受信することと、
前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定についての複数の値を指定するトレーニングスケジュールを受信することと、
トレーニングプロセス、前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定にしたがって、前記第1の機械学習モデルをトレーニングすることと、を含み、前記1つまたは複数のハードウェアレベルのパフォーマンス設定および前記1つまたは複数のモデルレベルのパフォーマンス設定は、トレーニング中の異なる時点における前記トレーニングスケジュールの前記複数の値のうちの異なる値に設定され、
前記要求の受信に応答して、トレーニング済み前記第1の機械学習モデルを1つまたは複数のコンピューティングデバイスに送信すること、を含む動作を実行させる、コンピュータプログラム
【国際調査報告】