(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-02-09
(54)【発明の名称】ビッグデータ機械学習ユースケースのための自律クラウドノードスコーピングフレームワーク
(51)【国際特許分類】
G06F 9/44 20180101AFI20230202BHJP
【FI】
G06F9/44
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022533584
(86)(22)【出願日】2020-11-12
(85)【翻訳文提出日】2022-08-02
(86)【国際出願番号】 US2020060083
(87)【国際公開番号】W WO2021113044
(87)【国際公開日】2021-06-10
(32)【優先日】2019-12-04
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-01-02
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ウェザービー,エドワード・アール
(72)【発明者】
【氏名】グロス,ケニー・シィ
(72)【発明者】
【氏名】ワン,グアン・シィ
(72)【発明者】
【氏名】ゲルデス,マシュー,ティ
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA07
5B376AA28
5B376BC76
5B376EA17
5B376FA13
(57)【要約】
ビッグデータ機械学習ユースケースのための自律クラウドノードスコーピングに関連するシステム、方法、およびその他の実施形態が記載される。いくつかの実施形態の例において、自動スコーピングツール、方法、およびシステムが提供され、これは、パラメータ値の複数の組み合わせのうちの各組み合わせごとに、(i)使用シナリオを記述するパラメータ値の組み合わせを設定し、(ii)ターゲットクラウド環境上でパラメータ値の組み合わせに従い機械学習アプリケーションを実行し、(iii)機械学習アプリケーションを実行するための計算コストを測定する。測定した計算コストに基づいて機械学習アプリケーションを実行するためのターゲットクラウド環境の中央処理装置とグラフィックス処理装置とメモリとの構成に関する推奨を生成する。
【特許請求の範囲】
【請求項1】
コンピュータにより実現される方法であって、前記方法は、
パラメータ値の複数の組み合わせのうちの各組み合わせごとに、
(i)使用シナリオを記述するパラメータ値の組み合わせを設定するステップ、
(ii)ターゲットクラウド環境上で前記パラメータ値の組み合わせに従い機械学習アプリケーションを実行するステップ、および
(iii)前記機械学習アプリケーションを実行するための計算コストを測定するステップと、
測定した前記計算コストに基づいて前記機械学習アプリケーションを実行するための前記ターゲットクラウド環境の中央処理装置とグラフィックス処理装置とメモリとの構成に関する推奨を生成するステップとを含む、コンピュータにより実現される方法。
【請求項2】
1つ以上のセンサからの信号のセットをシミュレートするステップと、
前記機械学習アプリケーションの実行中に前記機械学習アプリケーションに対する入力として前記信号のセットを前記機械学習アプリケーションに与えるステップとをさらに含む、請求項1に記載の方法。
【請求項3】
前記パラメータ値の組み合わせは、
1つ以上のセンサからの信号の数の値と、
単位時間当たりにストリーミングされる観察の数の値と、
前記機械学習アプリケーションに与えられる訓練ベクトルの数の値との組み合わせである、請求項1に記載の方法。
【請求項4】
前記機械学習アプリケーションは、前記パラメータ値の組み合わせと前記計算コストとの間に非線形的な関係を生じさせる、請求項1に記載の方法。
【請求項5】
各組み合わせごとの前記計算コストに関連付けられた前記パラメータ値の組み合わせを示す1つ以上のグラフィック表現を生成するステップと、
前記機械学習アプリケーションを実行するための前記ターゲットクラウド環境の中央処理装置とグラフィックス処理装置とメモリとの構成を選択することを可能にする、前記1つ以上のグラフィック表現を、グラフィカルユーザインターフェイス上に表示させる命令を、生成するステップとをさらに含む、請求項1に記載の方法。
【請求項6】
推奨された前記構成に従って前記ターゲットクラウド環境にクラウドコンテナを自動的に構成するステップをさらに含む、請求項1に記載の方法。
【請求項7】
前記パラメータ値の組み合わせは、モンテカルロシミュレーションに従って設定され、前記方法は、前記機械学習アプリケーションの実行中に前記機械学習アプリケーションに対する入力として前記パラメータ値を前記機械学習アプリケーションに与えるステップをさらに含む、請求項1に記載の方法。
【請求項8】
前記ターゲットクラウド環境の中央処理装置とグラフィックス処理装置とメモリとの利用可能な構成のセットのうちの各セットについて、パラメータ値の複数の組み合わせのうちの各組み合わせごとに、前記設定するステップと実行するステップと測定するステップとを繰り返すステップをさらに含む、請求項1に記載の方法。
【請求項9】
コンピュータ実行可能命令を格納する非一時的なコンピュータ読取可能媒体であって、前記命令は、コンピュータの少なくともプロセッサによって実行されると、前記コンピュータに、
パラメータ値の複数の組み合わせのうちの各組み合わせごとに、
(i)使用シナリオを記述するパラメータ値の組み合わせを設定するステップ、
(ii)ターゲットクラウド環境上で前記パラメータ値の組み合わせに従い機械学習アプリケーションを実行するステップ、および
(iii)前記機械学習アプリケーションを実行するための計算コストを測定するステップと、
測定した前記計算コストに基づいて前記機械学習アプリケーションを実行するための前記ターゲットクラウド環境の中央処理装置とグラフィックス処理装置とメモリとの構成に関する推奨を生成するステップとを、実行させる、非一時的なコンピュータ読取可能媒体。
【請求項10】
少なくとも前記プロセッサによって実行されると、前記コンピュータに、
1つ以上のセンサからの信号のセットをシミュレートするステップと、
前記機械学習アプリケーションの実行中に前記機械学習アプリケーションに対する入力として前記信号のセットを前記機械学習アプリケーションに与えるステップとを実行させる命令をさらに含む、請求項9に記載の非一時的なコンピュータ読取可能媒体。
【請求項11】
前記パラメータ値の組み合わせは、
1つ以上のセンサからの信号の数の値と、
単位時間当たりにストリーミングされる観察の数の値と、
前記機械学習アプリケーションに与えられる訓練ベクトルの数の値との組み合わせである、請求項9に記載の非一時的なコンピュータ読取可能媒体。
【請求項12】
少なくとも前記プロセッサによって実行されると、前記コンピュータに、
各組み合わせごとの前記計算コストに関連付けられる前記パラメータ値の組み合わせを示す1つ以上のグラフィック表現を生成するステップと、
前記機械学習アプリケーションを実行するための前記ターゲットクラウド環境の中央処理装置とグラフィックス処理装置とメモリとの構成を選択することを可能にする、前記1つ以上のグラフィック表現を、グラフィカルユーザインターフェイス上に表示させる命令を、生成するステップと、
前記選択を受けたことに応じて、選択された前記構成に従い前記ターゲットクラウド環境にクラウドコンテナを自動的に構成するステップとを実行させる命令をさらに含む、請求項9に記載の非一時的なコンピュータ読取可能媒体。
【請求項13】
コンピューティングシステムであって、
プロセッサと、
前記プロセッサに作動的に結合されたメモリと、
コンピュータ実行可能命令を格納する非一時的なコンピュータ読取可能媒体とを備え、前記命令は、メモリにアクセスした少なくともプロセッサによって実行されると、前記コンピューティングシステムに、
パラメータ値の複数の組み合わせのうちの各組み合わせごとに、
(i)使用シナリオを記述するパラメータ値の組み合わせを設定するステップ、
(ii)ターゲットクラウド環境上で前記パラメータ値の組み合わせに従い機械学習アプリケーションを実行するステップ、および
(iii)前記機械学習アプリケーションを実行するための計算コストを測定するステップと、
測定した前記計算コストに基づいて前記機械学習アプリケーションを実行するための前記ターゲットクラウド環境の中央処理装置とグラフィックス処理装置とメモリとの構成に関する推奨を生成するステップとを、実行させる、コンピューティングシステム。
【請求項14】
前記コンピュータ読取可能媒体は、前記コンピューティングシステムに、
コンテナ形状のセットのうちの各コンテナ形状ごとに、
信号の数の範囲における信号の数の各インクリメントごとに、
サンプリングレートの範囲におけるサンプリングレートの各インクリメントごとに、かつ
訓練ベクトルの数の範囲における訓練ベクトルの数の各インクリメントごとに、
前記コンテナ形状に従って構成されたコンテナにおいて、前記サンプリングレートの前記信号の数と、前記訓練ベクトルの数との組み合わせに従い、前記機械学習アプリケーションを実行させる命令をさらに含む、請求項13に記載のコンピューティングシステム。
【請求項15】
前記コンピュータ読取可能媒体は、前記コンピューティングシステムに、
各組み合わせごとの前記計算コストに関連付けられる前記パラメータ値の組み合わせを示す1つ以上のグラフィック表現を生成するステップと、
前記機械学習アプリケーションを実行するための前記ターゲットクラウド環境の中央処理装置とグラフィックス処理装置とメモリとの構成を選択することを可能にする、前記1つ以上のグラフィック表現を、グラフィカルユーザインターフェイス上に表示させる命令を、生成するステップと、
前記選択を受けたことに応じて、選択された前記構成に従い前記ターゲットクラウド環境にクラウドコンテナを自動的に構成するステップとを実行させる命令をさらに含む、請求項13に記載のコンピューティングシステム。
【発明の詳細な説明】
【背景技術】
【0001】
背景
実業界ではクラウドコンテナの使用が増加している。クラウドコンテナは、アプリケーションおよびその従属物をカプセル化した論理パッケージであり、コンテナ化されたアプリケーションを、Linux(登録商標)、Windows(登録商標)、Mac(登録商標)、オペレーティングシステム、仮想マシン、またはベアメタルサーバ等の多様なホスト環境上で実行できるようにする。そのようなコンテナの一例は、Docker(登録商標)コンテナである。クラウドコンテナ技術は、企業が、インターネット上のサービスとしてソフトウェアを容易にデプロイしそれにアクセスすることを可能にする。コンテナ化は関心の分離(separation of concerns)を提供する、というのも、企業は、デプロイおよび構成の詳細を心配することなくそのソフトウェアアプリケーションロジックおよび従属物に集中することができ、一方、クラウドベンダは、ソフトウェアアプリケーションの詳細に煩わされることなくデプロイおよび構成に集中できるからである。クラウドコンテナによるアプリケーションの実装はまた、高度のカスタマイズを提供し、企業の運用およびインフラストラクチャコストを低減する(自身のデータセンタを運用するための相対的に高いコストに対して)。
【0002】
クラウドコンテナ技術によるソフトウェアアプリケーションの実装は、ソフトウェアが企業のコンピューティングニーズに合わせてスケーリングすることも可能にする。Oracle(登録商標)のようなクラウドコンピューティングサービスベンダは、特定のユースケース、ユーザ数、記憶空間および計算コストに基づいて、クラウドコンテナサービスの費用を請求することができる。したがって、クラウドコンテナサービスを購入する企業は、入手したサービスの代価を支払うだけであり、企業の予算に応じたパッケージを選択することになる。Amazon(登録商標)、Google(登録商標)、Microsoft(登録商標)およびOracle(登録商標)を含む主要なクラウドベンダは、クラウドコンテナサービスを提供する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、機械学習ソフトウェアアプリケーションの実装は、プロビジョニングされた利用可能なメモリと、プロビジョニングされた総GPUおよびCPUパワーと、信号の総数と、スループットおよびレイテンシを支配するセンサストリームのサンプリングレートとの間の、非常に複雑な相互関係が原因で、クラウドコンテナ技術で容易にスケーリングすることはできなかった。
【課題を解決するための手段】
【0004】
概要
一実施形態において、コンピュータにより実現される方法は、パラメータ値の複数の組み合わせのうちの各組み合わせごとに、(i)使用シナリオを記述するパラメータ値の組み合わせを設定するステップ、(ii)ターゲットクラウド環境上でパラメータ値の組み合わせに従い機械学習アプリケーションを実行するステップ、および(iii)機械学習アプリケーションを実行するための計算コストを測定するステップと、測定した計算コストに基づいて機械学習アプリケーションを実行するためのターゲットクラウド環境の中央処理装置とグラフィックス処理装置とメモリとの構成に関する推奨を生成するステップとを含む。
【0005】
一実施形態において、この方法は、1つ以上のセンサからの信号のセットをシミュレートするステップと、機械学習アプリケーションの実行中に機械学習アプリケーションに対する入力として信号のセットを機械学習アプリケーションに与えるステップとをさらに含む。
【0006】
一実施形態において、この方法の、パラメータ値の組み合わせは、1つ以上のセンサからの信号の数の値と、単位時間当たりにストリーミングされる観察の数の値と、機械学習アプリケーションに与えられる訓練ベクトルの数の値との組み合わせである。
【0007】
一実施形態において、この方法の、機械学習アプリケーションは、パラメータ値の組み合わせと計算コストとの間に非線形的な関係を生じさせる。
【0008】
一実施形態において、この方法は、各組み合わせごとの計算コストに関連付けられたパラメータ値の組み合わせを示す1つ以上のグラフィック表現を生成するステップと、機械学習アプリケーションを実行するためのターゲットクラウド環境の中央処理装置とグラフィックス処理装置とメモリとの構成を選択することを可能にする、1つ以上のグラフィック表現を、グラフィカルユーザインターフェイス上に表示させる命令を、生成するステップとをさらに含む。
【0009】
一実施形態において、この方法は、推奨された構成に従ってターゲットクラウド環境にクラウドコンテナを自動的に構成するステップをさらに含む。
【0010】
一実施形態において、この方法の、パラメータ値の組み合わせは、モンテカルロシミュレーションに従って設定され、この方法は、機械学習アプリケーションの実行中に機械学習アプリケーションに対する入力としてパラメータ値を機械学習アプリケーションに与えるステップをさらに含む。
【0011】
一実施形態において、この方法は、ターゲットクラウド環境の中央処理装置とグラフィックス処理装置とメモリとの利用可能な構成のセットのうちの各セットについて、パラメータ値の複数の組み合わせのうちの各組み合わせごとに、設定するステップと実行するステップと測定するステップとを繰り返すステップをさらに含む。
【0012】
一実施形態において、コンピュータ実行可能命令を格納する非一時的なコンピュータ読取可能媒体において、命令は、コンピュータの少なくともプロセッサによって実行されると、コンピュータに、パラメータ値の複数の組み合わせのうちの各組み合わせごとに、(i)使用シナリオを記述するパラメータ値の組み合わせを設定するステップ、(ii)ターゲットクラウド環境上でパラメータ値の組み合わせに従い機械学習アプリケーションを実行するステップ、および(iii)機械学習アプリケーションを実行するための計算コストを測定するステップと、測定した計算コストに基づいて機械学習アプリケーションを実行するためのターゲットクラウド環境の中央処理装置とグラフィックス処理装置とメモリとの構成に関する推奨を生成するステップとを、実行させる。
【0013】
一実施形態において、非一時的なコンピュータ読取可能媒体は、少なくともプロセッサによって実行されると、コンピュータに、1つ以上のセンサからの信号のセットをシミュレートするステップと、機械学習アプリケーションの実行中に機械学習アプリケーションに対する入力として信号のセットを機械学習アプリケーションに与えるステップとを実行させる命令を、さらに含む。
【0014】
一実施形態において、非一時的なコンピュータ読取可能媒体における、パラメータ値の組み合わせは、1つ以上のセンサからの信号の数の値と、単位時間当たりにストリーミングされる観察の数の値と、機械学習アプリケーションに与えられる訓練ベクトルの数の値との組み合わせである。
【0015】
一実施形態において、非一時的なコンピュータ読取可能媒体は、少なくともプロセッサによって実行されると、コンピュータに、各組み合わせごとの計算コストに関連付けられるパラメータ値の組み合わせを示す1つ以上のグラフィック表現を生成するステップと、機械学習アプリケーションを実行するためのターゲットクラウド環境の中央処理装置とグラフィックス処理装置とメモリとの構成を選択することを可能にする、1つ以上のグラフィック表現を、グラフィカルユーザインターフェイス上に表示させる命令を、生成するステップと、選択を受けたことに応じて、選択された構成に従いターゲットクラウド環境にクラウドコンテナを自動的に構成するステップとを実行させる命令を、さらに含む。
【0016】
一実施形態において、コンピューティングシステムは、プロセッサと、プロセッサに作動的に結合されたメモリと、コンピュータ実行可能命令を格納する非一時的なコンピュータ読取可能媒体とを備え、命令は、メモリにアクセスした少なくともプロセッサによって実行されると、コンピューティングシステムに、パラメータ値の複数の組み合わせのうちの各組み合わせごとに、(i)使用シナリオを記述するパラメータ値の組み合わせを設定するステップ、(ii)ターゲットクラウド環境上でパラメータ値の組み合わせに従い機械学習アプリケーションを実行するステップ、および(iii)機械学習アプリケーションを実行するための計算コストを測定するステップと、測定した計算コストに基づいて機械学習アプリケーションを実行するためのターゲットクラウド環境の中央処理装置とグラフィックス処理装置とメモリとの構成に関する推奨を生成するステップとを、実行させる。
【0017】
一実施形態において、コンピュータ読取可能媒体は、コンピューティングシステムに、コンテナ形状のセットのうちの各コンテナ形状ごとに、信号の数の範囲における信号の数の各インクリメントごとに、サンプリングレートの範囲におけるサンプリングレートの各インクリメントごとに、かつ訓練ベクトルの数の範囲における訓練ベクトルの数の各インクリメントごとに、コンテナ形状に従って構成されたコンテナにおいて、サンプリングレートの信号の数と、訓練ベクトルの数との組み合わせに従い、機械学習アプリケーションを実行させる命令をさらに含む。
【0018】
一実施形態において、コンピューティングシステムの、コンピュータ読取可能媒体は、コンピューティングシステムに、各組み合わせごとの計算コストに関連付けられるパラメータ値の組み合わせを示す1つ以上のグラフィック表現を生成するステップと、機械学習アプリケーションを実行するためのターゲットクラウド環境の中央処理装置とグラフィックス処理装置とメモリとの構成を選択することを可能にする、1つ以上のグラフィック表現を、グラフィカルユーザインターフェイス上に表示させる命令を、生成するステップと、選択を受けたことに応じて、選択された構成に従いターゲットクラウド環境にクラウドコンテナを自動的に構成するステップとを実行させる命令をさらに含む。
【0019】
本明細書に組み込まれてその一部を構成する添付の図面は、本開示のさまざまなシステム、方法、および他の実施形態を示す。図面に示される要素の境界線(たとえば、箱、箱のグループ、またはその他の形状)は、境界線の一実施形態を示すことが理解されるであろう。いくつかの実施形態では、1つの要素を複数の要素として実装することがある、または、複数の要素を1つの要素として実装することがある。いくつかの実施形態では、別の要素の内部構成要素として示される要素が、外部構成要素として実装されることがあり、その逆もある。さらに、要素は正確な縮尺でない場合がある。
【図面の簡単な説明】
【0020】
【
図1】ビッグデータ機械学習ユースケースのための自律クラウドノードスコーピングに関連付けられるクラウドコンピューティングシステムの一実施形態を示す図である。
【
図2】ビッグデータ機械学習ユースケースのための自律クラウドノードスコーピングに関連付けられる方法の一実施形態を示す図である。
【
図3】ビッグデータ機械学習ユースケースのための自律クラウドノードスコーピングに関連付けられる方法の一実施形態を示し、パラメータ値の組み合わせのネステッドループトラバースの一実施形態の詳細を示す図である。
【
図4】ビッグデータ機械学習のための自律クラウドノードスコーピングに関連付けられる特定のユースケースのための方法の一例を示す図である。
【
図5A】多変量状態推定技術(MSET)と呼ばれる予測的機械学習技術のための訓練プロセスの計算コストを観察の数および訓練ベクトルの数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図5B】多変量状態推定技術(MSET)と呼ばれる予測的機械学習技術のための訓練プロセスの計算コストを観察の数および訓練ベクトルの数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図5C】多変量状態推定技術(MSET)と呼ばれる予測的機械学習技術のための訓練プロセスの計算コストを観察の数および訓練ベクトルの数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図5D】多変量状態推定技術(MSET)と呼ばれる予測的機械学習技術のための訓練プロセスの計算コストを観察の数および訓練ベクトルの数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図6A】MSETを使用したストリーミング監視の計算コストを観察の数および訓練ベクトルの数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図6B】MSETを使用したストリーミング監視の計算コストを観察の数および訓練ベクトルの数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図6C】MSETを使用したストリーミング監視の計算コストを観察の数および訓練ベクトルの数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図6D】MSETを使用したストリーミング監視の計算コストを観察の数および訓練ベクトルの数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図7A】MSETのための訓練プロセスの計算コストを観察の数および信号の数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図7B】MSETのための訓練プロセスの計算コストを観察の数および信号の数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図7C】MSETのための訓練プロセスの計算コストを観察の数および信号の数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図7D】MSETのための訓練プロセスの計算コストを観察の数および信号の数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図8A】MSETを使用したストリーミング監視の計算コストを観察の数および信号の数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図8B】MSETを使用したストリーミング監視の計算コストを観察の数および信号の数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図8C】MSETを使用したストリーミング監視の計算コストを観察の数および信号の数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図8D】MSETを使用したストリーミング監視の計算コストを観察の数および信号の数の関数として示すために生成された3次元(3D)グラフの例を示す図である。
【
図9】複数の計算形状を評価するためのビッグデータ機械学習ユースケースのための自律クラウドノードスコーピングに関連付けられる方法の一実施形態を示す図である。
【
図10】コンテナ形状、コスト、および3D性能情報曲線、ならびにコンテナ形状推奨を提示するための一例としてのGUI1000一実施形態を示す図である。
【
図11】開示されているシステムおよび/または方法を用いて構成されたコンピューティングシステムのある実施形態を示す図である。
【発明を実施するための形態】
【0021】
詳細な説明
本明細書では、ビッグデータ機械学習ユースケースのための自律クラウドノードスコーピングフレームワークを提供するシステムおよび方法について説明する。
【0022】
機械学習(ML)技術は、モノのインターネット(loT)アプリケーションのための予測的情報を生成するために適用することができる。いくつかの実装形態において、機械学習技術は、高密度センサloTアプリケーションによって生成されたデータセットに適用される。高密度センサアプリケーションは、低レイテンシおよび高スループットのデータ処理を必要とする大量のセンサ生成情報を有する。多くの場合、予測的アプリケーションは、オンプレミス(「on-prem」)データセンタアセットによって実行される。中央処理装置(CPU)、グラフィックス処理装置(GPU)、メモリ、および入出力(I/O)ハンドリング等のデータセンタ内のリソースは、時折再構成され、ユースケース要件とともに増大する。
【0023】
クラウドコンピューティングは、オンプレミスコンピューティングに代わるものを提供する。クラウドコンテナ環境においてその予測的機械学習アプリケーションを実装する企業は、自身のデータセンタを稼働させることに関連する巨大なオーバーヘッドコストを節約する。さらに、企業は、クラウド環境に固有の高度な予測的機械学習パターン認識にアクセスしてストリーミングセンサ信号の異常を識別することができる。しかしながら、クラウドコンピューティング環境において予測的MLアルゴリズム(Oracle(登録商標)MSET2など)を用いて大規模ストリーミング予測的アプリケーションのための低レイテンシおよび高スループット仕様を実現するには、予測的アプリケーションがクラウド環境においてデプロイされる前に、クラウドコンピューティング環境が性能仕様に正確に整合することが必要である。コンピューティング環境のサイズ決定は、正しい数のCPUおよび/またはGPUのコンテナ構成、正しい数のコンピューティングコア、正しい量のストレージ、および/またはGPUからCPUに関するコンテナの「形状」を識別することを伴う。企業のアプリケーションのためのクラウドコンテナの正しいサイズ決定により、企業がリアルタイムストリーミング予測的診断のための良好な性能を確実に有するようにすることは、いくつかの技術的課題を提示する。
【0024】
オンプレミスデータセンタにおいてビッグデータストリーミング分析をすでに有している企業の場合、複数の理由から、オラクルクラウドインフラストラクチャ(OCI)クラウドコンテナにおいて必要なCPU、GPU、メモリ、および/またはストレージフットプリントを近似するようにスケーリングすることは不可能であった。
【0025】
機械学習予測は多くの場合「計算バウンド」であり、これは、タスクの完了に要する時間が主に中央プロセッサの速度によって決まることを意味する。しかしながら、ストリーミング分析を実施する企業は、GPU/CPU性能がリアルタイムに遅れないこと(ストリーミング予測の基本的な仕様)に関心があるだけでなく、スループットおよびレイテンシにも等しく関心がある。ストリーミング機械学習予測の場合、スループットおよびレイテンシは、プロビジョニングされた利用可能なメモリの量、プロビジョニングされた総GPUおよびCPUパワー、ならびにセンサストリーム内の1秒当たりの信号および観察の合計数に、非常に複雑に依存する。一般的に、計算コストは、信号の数とともに2次的に、観察の数とともに線形的にスケーリングする。さらに、機械学習予測の精度に対する企業の期待もクラウドコンテナの構成要件に影響を及ぼし、訓練ベクトルの数は、機械学習モデルの訓練のための計算コストオーバーヘッドを追加することに加えて、コンテナのメモリ要件に直接影響を及ぼす。
【0026】
過去において、機械学習予測に関するこれらの複雑な関係に起因して、企業の典型的なユースケースに最適なクラウド構成を発見するには、企業による多数の試行錯誤の実施、およびコンサルタントの努力が必要であろう。最適なクラウド構成を発見する試行錯誤の性質は、企業が、計算力学によって決まる弾力性(elasticity)を通して、小型で自律的に成長するそれらのクラウドコンテナ機能を開始することを妨げる。予測的機械学習アプリケーションの実際の使用における計算力学に応じてクラウドコンテナ機能が自律的に成長できるようにするために、クラウドコンテナでデプロイされる機械学習技術の性能を評価しなければならない。
【0027】
これらおよびその他の技術的課題を解決するために、本願は、ネステッドループ(nested-loop)モンテカルロベースのシミュレーションを使用して、ターゲットクラウドコンテナスタック内で利用可能なクラウドCPU-GPU「形状」(OCIコンテナ等のクラウドコンテナ内のCPUおよび/またはGPUの構成)の範囲にわたり、任意のサイズの顧客機械学習ユースケースを自律的にスケーリングする、自律コンテナスコーピングツール(または自動スコーピングツール)を提供する。一実施形態において、自律コンテナスコーピングツールは、機械学習アプリケーションのための候補クラウドコンテナを、観察における信号の総数、観察の数、およびネステッドループマルチパラメータアプローチにおける訓練ベクトルの数のパラメータ関数として、ストレステストする。自律コンテナスコーピングツールは、顧客の予想される信号数およびそれらの信号のサンプリングレートの関数として、スループットおよびレイテンシに関する、予想されるクラウドコンテナ性能を生成する。これは、今まで存在しなかった機能である。
【0028】
自律コンテナスコーピングツールは、任意のプラガブル機械学習アルゴリズムのための自動スコーピング評価の実行を可能にする、機械学習に優しいフレームワークである。一実施形態において、自動スコーピングツールは、さまざまな形態の機械学習技術に対応することができるプラガブルフレームワークを使用する。多変量状態推定技術(MSET:multivariate state estimation technique)、ニューラルネット、サポートベクターマシン、自動連想カーネル回帰、および顧客固有の機械学習アプリケーションを含むアプリケーション等の、任意のコンテナ化された機械学習技術は、ユースケースの定められた範囲に従い、評価のために、簡単にツールにプラグインすることができる。このように、自律コンテナスコーピングツールは、指定された任意のタイプのユースケースの下でコンテナ化された機械学習アプリケーションの性能を評価することができる。一実施形態において、自動スコーピングツールは、機械学習技術のためのクラウドコンテナの適切なサイズおよび形状を推定することができる。
【0029】
MSET、ニューラルネット、サポートベクターマシン、および自動連想カーネル回帰機械学習技術の各々は、高度な非線形ノンパラメトリック(NLNP:nonlinear nonparametric)パターン認識の一種である。そのようなNLNPパターン認識のための計算コストおよびメモリフットプリントは、センサの数、単位時間(またはサンプリングレート)当たりの観察またはサンプルの数、訓練に使用されるサンプルの総数、および訓練ベクトルとして選択される訓練データのサブセットに応じて、複雑な非線形にスケーリングする。
【0030】
有利には、一実施形態において、自動スコーピングツールは、関心のあるプラットフォーム、すなわち機械学習アプリケーションがデプロイされるターゲットクラウドコンピューティングプラットフォームに対し、スコーピング分析を実行する。これは重要となる可能性がある、というのも、計算コストオーバーヘッド、ならびにレイテンシおよびスループットメトリクスが、企業のレガシーコンピューティングシステムまたはOracle Exadata(登録商標)データベースマシン等のさまざまなオンプレミスコンピューティングプラットフォームと、Oracle Cloud Infrastructure(OCI)等のクラウドコンピューティングインフラストラクチャにおいて利用可能なコンテナ形状との間で異なるからである。
【0031】
一実施形態において、自動スコーピングツールは、完全に自律的に作製することができ、企業のデータ科学者および/またはコンサルタントを必要としない。これにより、事業体は、その処理需要が増加すると、弾力性を通じて、そのクラウドコンテナ機能を自律的に成長させることが可能になる。さらに、自動スコーピングツールは、事業体が、機械学習アプリケーションをそのオンプレミスデータセンタからクラウドコンピューティング環境内のクラウドコンテナに自律的に移行させることを可能にする。
【0032】
一実施形態において、自動スコーピングツールは、高度な予測的機械学習技術を必要とする新たなユースケースのためにクラウドコンテナのサイズを迅速にスコーピングするために使用することができる。自動スコーピングツールは、CPU、GPU、および/またはさまざまな共有メモリ構成におけるCPUとGPUの両方を含む1つ以上の「形状」を含む、適切なクラウドコンテナ構成の範囲を示すことができる。一実施形態において、結果として得られた構成を、価格設定スケジュールと組み合わせることにより、ソリューションのためのある範囲のコスト推定を、企業に提供することができる。
【0033】
本明細書に記載されている自動スコーピングツール以外に、ビッグデータ機械学習ユースケースのためのクラウドコンテナのサイズ(すなわちCPUの数、GPUの数、メモリの量、および/またはコンテナの適切な「形状」の記述)を推定することができるツール、技術、またはフレームワークは存在しない。
【0034】
-環境の例-
図1は、ビッグデータ機械学習ユースケースのための自律クラウドノードスコーピングに関連付けられるクラウドコンピューティングシステム100の一実施形態を示す。クラウドコンピューティングシステム100は、1つ以上のネットワーク105(たとえばターゲットクラウドコンテナスタック101に関連付けられたインターネットまたはプライベートネットワーク)によって相互接続された、ターゲットクラウドコンテナスタック101と、自動スコーピングツール103とを含む。クラウドコンピューティングシステム100は、企業に関連付けられたエンタープライズネットワーク107内のクライアントコンピュータに、ネットワーク105を介してサービスとして1つ以上のソフトウェアアプリケーションを提供するように構成され得る。
【0035】
一実施形態において、ターゲットクラウドコンテナスタック101は、Oracleクラウドインフラストラクチャスタックであり得る。別の実施形態において、ターゲットクラウドコンテナスタックは、GE Predix(登録商標)スタック、Microsoft Azure(登録商標)スタック、Amazon Web Servicesスタック(たとえば、Amazon Elastic container Serviceを含む)、またはコンテナベースのアプリケーションをサポートすることができる他のスケーラブルなクラウドコンピューティングスタックであり得る。
【0036】
一実施形態において、ターゲットクラウドコンテナスタック101は、インフラストラクチャ層109と、オペレーティングシステム層111と、コンテナランタイムエンジン113と、コンテナ層115とを含む。インフラストラクチャ層109は、インフラストラクチャネットワーク121によって相互接続された1つ以上のサーバ117および1つ以上のストレージデバイス119を含む。サーバ117の各々は、1つ以上の中央処理装置(CPU)123および/またはグラフィックス処理装置(GPU)125、ならびにメモリ127を含む。ストレージデバイスは、ソリッドステートメモリドライブ、ハードドライブディスク、ネットワーク接続ストレージ(NAS)デバイス、または他のストレージデバイスを含み得る。
【0037】
一実施形態において、オペレーティングシステム層111は、Linux(登録商標)、Windows(登録商標)、Mac(登録商標)、Unix(登録商標)、または他のオペレーティングシステムのいずれかである。これらのオペレーティングシステムは、フル機能のオペレーティングシステムであってもよく、またはコンテナランタイムエンジン113によるインフラストラクチャ層109の使用をサポートするために必要な機能のみを含む最小限のオペレーティングシステム構成であり得る。一実施形態において、オペレーティングシステム111はターゲットクラウドコンテナスタック101に含まれず、コンテナランタイムエンジン113は、オラクルクラウドインフラストラクチャベアメタルクラウドによって提供されるようなベアメタルタイプの構成でインフラストラクチャ層109と直接インターフェイスするように構成される。
【0038】
コンテナランタイムエンジン113は、コンテナ化されたアプリケーションのデプロイ、スケーリング、および管理を自動化する。一実施形態において、コンテナランタイムエンジン113は、Oracle Container Cloud Service(登録商標)である。一実施形態において、コンテナランタイムエンジン113は、Kubernets(登録商標)エンジンである。コンテナランタイムエンジン113は、コンテナ層115内のコンテナの動作をサポートする。一実施形態において、コンテナ層内のコンテナ129、131は、Docker(登録商標)コンテナである、すなわち、Dockerイメージフォーマットで構築されたコンテナである。ある環境では、テストアプリケーション133用のコンテナ129がコンテナ層115にデプロイされる。テストアプリケーション127をサポートするバイナリおよびライブラリ135は、コンテナ123に含まれる。一実施形態において、プロダクションアプリケーション137用のコンテナ131がコンテナ層115にデプロイされる。プロダクションアプリケーション137をサポートするバイナリおよびライブラリ139は、コンテナ125に含まれる。
【0039】
コンテナ層115にデプロイされたコンテナ(たとえばテストアプリケーションコンテナ129またはプロダクションアプリケーションコンテナ131)は、コンテナ専用のコンピューティングリソースの「形状」(CPU123、GPU125、およびメモリ127の数で表される)を指定することができる。この「形状」情報は、コンテナ画像ファイルに格納され得る。一実施形態において、「形状」情報は、「docker実行」コマンドのランタイム構成フラグ(または他のコンテナフォーマットの同等のコマンドおよびフラグ)を設定することによってコンテナランタイムエンジンに伝えられる。
【0040】
一実施形態において、自動スコーピングツール103は、コンテナ化モジュール141と、テスト実行モジュール143と、計算コスト記録モジュール145と、インターフェイスモジュール147と、評価モジュール149とを含む。一実施形態において、自動スコーピングツール103は、モジュール141~149で構成された専用コンピューティングデバイスである。一実施形態において、自動スコーピングツールは、ターゲットクラウドコンテナスタック101の一部、たとえばコンテナランタイムエンジン113の構成要素である。
【0041】
一実施形態において、コンテナ化モジュール141は、dockerコンテナを自動的に構築する。コンテナ化モジュール141は、少なくともアプリケーション、アプリケーションをサポートするバイナリおよびライブラリ、ならびにコンテナの「形状」情報を入力として受け付ける。少なくともこれらの入力から、コンテナ化モジュール141は、ターゲットクラウドコンテナスタック101のコンテナ層115へのデプロイに適したコンテナ画像ファイル(Docker画像等)を作成する。一実施形態において、コンテナ化モジュール141は、アプリケーションをスキャンしアプリケーションコードならびに関連するバイナリおよび/またはライブラリを識別する、Docker社から入手可能な自動コンテナ化ツールを含む、および/またはこれとインターフェイスする。次に、コンテナ化モジュール141は、これらのコード、バイナリ、および/またはライブラリに部分的に基づいて、Docker画像ファイルを自動的に生成する。一実施形態において、コンテナ画像ファイルは、テンプレートに少なくとも部分的に基づいて作成される。コンテナ化モジュール141は、1つ以上のテンプレートのライブラリからテンプレートを取り出すことができる。
【0042】
一実施形態において、テスト実行モジュール143は、特定のコンテナ化されたアプリケーションに対し、ベンチマーキングまたはストレステスト動作のシーケンスを操作する。たとえば、テスト実行モジュール143は、少なくとも(i)1観察当たりの信号の数の範囲および信号の数の範囲にわたるインクリメント、(ii)観察の数の範囲および観察の数の範囲にわたるインクリメント、(iii)訓練ベクトルの数の範囲および訓練ベクトルの数の範囲にわたるインクリメント、(iv)特定のコンテナ化されたアプリケーション、および(v)テストデータを、入力として受け付ける。テスト実行モジュールは、ターゲットクラウドコンテナスタック101に、信号の数、観察の数、および訓練ベクトルの数の順列ごとに、特定のコンテナ化されたアプリケーションを、それらがそれぞれの範囲にわたってインクリメントされるときに実行させる。訓練ベクトルの数は訓練データセットのサイズと呼ばれることもある。
【0043】
一実施形態において、コンテナ化された特定のアプリケーションは、テストアプリケーション133である。コンテナ化モジュール141は、テストアプリケーション133およびその関連するバイナリおよび/またはライブラリ135を、たとえば企業に関連付けられたオンプレミスサーバ151からスキャンさせ、エンタープライズネットワーク107からネットワーク105を介して自動スコーピングツール103に送信させることができる。一実施形態において、テストアプリケーション133は、機械学習予測を使用して大規模時系列データベースを分析するための高密度センサloTアプリケーションである。コンテナ化モジュール141は、テストアプリケーション133ならびにその関連するバイナリおよび/またはライブラリ135からテストアプリケーションコンテナ129を作成する。
【0044】
テストアプリケーションコンテナがテストに使用されるという指示に応答して、コンテナ化モジュールは、テストアプリケーションコンテナ129を、(割り当てられたCPU123、割り当てられたGPU125、および割り当てられたメモリ127の)特定の計算形状を有するように構成する。一実施形態において、計算形状は、ターゲットクラウドコンテナスタック101による実装に適した計算形状のセットまたはライブラリから選択される。適切な計算形状は、ターゲットクラウドコンテナスタック101のハードウェア構成および/またはソフトウェア構成等のターゲットクラウドコンテナスタック101の特徴に基づいていてもよい。適切な形状セットは、異なるハードウェアまたはソフトウェア構成を有するターゲットクラウドコンテナスタック間で異なり得る。可能な各ターゲットクラウドコンテナスタックに関連付けられた計算形状のライブラリは、自動スコーピングツール103によって管理されてもよく、ターゲットクラウドコンテナスタック101に関連付けられた計算形状は、テストアプリケーション133をコンテナ化するときにコンテナ化モジュール141によってライブラリから取り出され得る。
【0045】
一実施形態において、ターゲットクラウドコンテナスタック構成とともに使用するのに適した複数の計算形状がある。テストアプリケーションコンテナ129の各々は、プロダクションアプリケーションコンテナ131として選択するための候補であり得る。一実施形態において、テストアプリケーションコンテナがテストに使用されるという指示に応答して、コンテナ化モジュールは、第1の未評価の計算形状を有するようにテストアプリケーションコンテナ129を構成し、テストの次の反復において次の未評価の計算形状にインクリメントする。このようにして、ターゲットクラウドコンテナスタック101に適した計算形状ごとにテストアプリケーションコンテナ129が作成され、候補コンテナ形状が順に評価される。
【0046】
コンテナランタイムエンジン113および自動スコーピングツール103はそれぞれ、情報およびコマンドを受け付けて送信するためのアプリケーションプログラミングインターフェイス(API)とともに構成され得る。たとえば、APIは、表現状態転送(REST)APIであり得る。コンテナ化モジュール141は、コンテナランタイムエンジン113にAPIコマンドを送信して、コンテナランタイムエンジン113にテストアプリケーションコンテナ129をコンテナ層115にデプロイすることを指示することができる。コンテナ化モジュールはまた、テストアプリケーションコンテナ129をデプロイのためにコンテナランタイムエンジン113に送信し得る。
【0047】
一実施形態において、テスト実行モジュール143は、ターゲットクラウドコンテナスタック101による実行中にテストアプリケーション133による使用のためにテストデータのボディにアクセスする。テストデータは、訓練ベクトルおよび観察を含む必要がある。訓練ベクトルは、センサによってモニタリングまたは監視されるシステムの通常動作を表すセンサ観察のためのメモリベクトルである。テストデータは、テストの各訓練順列の実行を可能にするのに十分な量の訓練ベクトルを含む必要がある。観察は、センサによってモニタリングされるシステムの通常動作を表すか否かに関して未知であるセンサ観察のためのメモリベクトルである。テストデータは、テストの各観察順列の実行を可能にするのに十分な量の観察を含む必要がある。一実施形態において、観察および訓練ベクトルにおける信号の数は、現在テストされている信号の数と一致するようにされる。一実施形態において、観察および訓練ベクトルにおける信号の数は、信号の最大数であり、未使用の信号はテストによって無視される。
【0048】
一実施形態において、テストデータのボディは、たとえば1つ以上のモノのインターネット(loT)(または他の)センサ153からの読み取り値からオンプレミスサーバ151によってコンパイルされた履歴データである。センサ153の数は非常に多い場合がある。いくつかの実装形態において、機械学習技術は、高密度センサloTアプリケーションによって生成されたデータセットに適用される。高密度センサアプリケーションは、低レイテンシおよび高スループットのデータ処理を必要とする大量のセンサ生成情報を有する。テスト実行モジュール143は、ネットワーク105を介してオンプレミスサーバ151からテストデータのボディを受け付けるまたは検索する。テスト実行モジュール143は、ターゲットクラウドコンテナスタック101による実行中に、テストデータのボディをテストアプリケーション133に提供させる。
【0049】
一実施形態において、テストデータのボディは、たとえばオンプレミスサーバ151によってコンパイルされた履歴データに基づいて生成された合成データである。自動スコーピングツール103は、信号合成モジュール(図示せず)を含み得る。
【0050】
一実施形態において、計算コスト記録モジュール145は、テストにおける信号の数、観察の数、および訓練ベクトルの数の各順列の計算コストを追跡する。一実施形態において、計算コストは、計算の開始と完了との間に経過したミリ秒で測定される。一実施形態において、計算コストは、ターゲットクラウドコンテナスタック101が順列のためにテストアプリケーション133を実行するのに要する時間で測定される。一実施形態において、テストアプリケーションコンテナ129は、ネットワーク105を介して計算コスト記録モジュール145に、テストアプリケーション133の実行がターゲットクラウドコンテナスタック101上で開始および完了するそれぞれの時間を送信するように構成される。一実施形態において、各順列ごとに、計算コスト記録モジュール145は、自動スコーピングツール103に関連するデータストアに性能を記録するように構成される。性能は、(i)順列に対する観察ごとの信号の数、(ii)順列に対する観察の数、(iii)順列に対する訓練ベクトルの数、および(iv)順列に対してテストアプリケーション133の実行を開始した時間と終了した時間との間の差を示す、タプルを表すデータ構造として、記録され得る。順列のためのテストアプリケーション133の実行を完了するために必要なプロセッササイクルのカウントまたはメモリスワップのカウント等の他の計算コストメトリクスも適切である可能性があり、同様に追跡され、計算コスト記録モジュールに報告され、データストアに記録され得る。
【0051】
一実施形態において、計算コストは、訓練サイクルの計算コストと監視サイクルの計算コストとに分解される。テストアプリケーションコンテナ129は、計算コスト記録モジュール145に、(i)テストアプリケーション133のための訓練サイクルの実行がターゲットクラウドコンテナスタック101で開始および完了するそれぞれの時間、および(ii)テストアプリケーション133のための監視サイクルの実行がターゲットクラウドコンテナスタック101で開始および完了するそれぞれの時間を送信するように構成される。この性能は、自動スコーピングツール103に関連付けられたデータストアに記録され得る。この記録は、(i)順列についての観察ごとの信号の数、(ii)順列についての観察の数、(iii)順列についての訓練ベクトルの数、(iv)順列についてテストアプリケーション133の訓練サイクルの実行の開始時間と完了時間との差、および(v)テストアプリケーション133の監視サイクルの実行の開始時間と完了時間との差を示す、タプルを表すデータ構造であり得る。
【0052】
一実施形態において、インターフェイスモジュール147は、自動スコーピングツール103へのユーザインターフェイスをクライアントコンピューティングデバイス上に表示させる命令を生成および送信するように構成される。たとえば、ユーザインターフェイスは、自動スコーピングツール103および/またはクラウドコンピューティングシステム100のユーザまたは管理者から情報およびコマンドを収集するためのGUI要素を組み込んだグラフィカルユーザインターフェイス(GUI)を含み得る。これらのGUI要素は、さまざまなグラフィカルボタン、ラジオボタン、チェックボックス、テキストボックス、ドロップダウンメニュー等のメニュー、および他の要素を含む。
【0053】
インターフェイスモジュール147は、自動スコーピングツール103に関連付けられるデータストアに記録された性能データの視覚化を表示するように構成され得る。一実施形態において、視覚化は、計算コストと、テストの順列のセットにわたる信号の数、観察の数、および訓練ベクトルの数のうちの1つ以上との間の関係を示すグラフである。一実施形態において、視覚化は、テストの訓練サイクルまたはテストの監視サイクルに固有であり得る。
【0054】
一実施形態において、評価モジュール149は、オンプレミスサーバ151からスキャンされたアプリケーションのプロダクションアプリケーション137バージョンを操作するための推奨コンテナ「形状」(「コンピュータ形状」とも呼ばれる)を決定する。評価モジュール149は、入力として、(i)処理観察のレートに対する最小レイテンシしきい値、または目標レイテンシ、(ii)各観察に含まれる信号の目標数、(iii)単位時間当たりの観察の目標数または目標サンプリングレート、および(iv)訓練ベクトルの目標数を、受け付ける。これらは、機械学習アプリケーションの性能制約と呼ぶこともでき、現実世界で予想される動作条件を表す。評価モジュール149はまた、入力(v)として、計算コスト記録モジュールによって記録された性能データを受け付ける。これらの入力に少なくとも部分的に基づいて、評価モジュール149は、ターゲットクラウドコンテナスタック上にデプロイするための推奨コンテナ形状(CPUの数123、GPUの数125、および割り当てられたメモリで記述される)を作成することができる。この推奨形状は、自動スコーピングツール103のユーザによる検討および確認のために、インターフェイスモジュールによってGUIに提示され得る。GUIはさらに、推奨形状をサポートする性能データの1つ以上の視覚化を表示し得る。一実施形態において、評価モジュール149は、推奨形状を有するプロダクションアプリケーションコンテナ131を形成することを指示する命令を生成し、それをコンテナ化モジュール141に送信して、プロダクションアプリケーションコンテナ131を生成する。一実施形態において、GUIは、推奨形状を使用してプロダクションアプリケーションコンテナの作成を承認する入力を受け付けるように構成されたGUI要素を含む。
【0055】
一実施形態において、評価モジュール149はさらに、入力として、CPUおよびGPUの各々の使用の単位時間当たりの価格を受け付ける。推奨「形状」はさらに、CPUおよびGPUの単位時間当たりの価格に基づいていてもよい。たとえば、推奨形状は、観察のスループットの最小レートを維持するための全体的なコストを最小化する形状であり得る。
【0056】
一実施形態において、評価モジュール149は、コンテナ形状を操作するための金銭的コスト等の基準に従って、可能なコンテナ形状のセットをランク付けする。一実施形態において、評価モジュールは、実現可能なコンテナ形状のリストを作成するために、可能なコンテナ形状のセットから性能制約を満たさないコンテナ形状を除外し、これがさらにランク付けされ得る。
【0057】
オンプレミスサーバ151およびIoTセンサ153に加えて、エンタープライズネットワーク107はまた、多種多様なコンピューティングデバイスおよび/またはネットワークデバイスを含み得る。そのようなコンピューティングデバイスの例は、オンプレミスサーバ151のようなサーバコンピュータ、デスクトップコンピュータ155、ラップトップもしくはノートブックコンピュータ157、タブレットコンピュータもしくは携帯情報端末(PDA)等のパーソナルコンピュータ、携帯電話、スマートフォン159、または他のモバイルデバイス、マシン制御デバイス、IP電話デバイス、および1つ以上の電子プロセッサ、マイクロプロセッサ、中央処理装置(CPU)、またはコントローラ等の1つ以上のコンピューティングデバイスコンポーネントを組み込んだ他の電子デバイスを含む。ターゲットクラウドコンテナスタック101によるプロダクションアプリケーション137の実行中に、エンタープライズネットワーク107のデバイスのうちの1つ以上は、プロダクションアプリケーション137に情報を提供するか、またはプロダクションアプリケーション137に情報を要求しその情報を受信することができる。たとえば、IoTセンサ153は、プロダクションアプリケーション137によって監視またはモニタリングされた観察を提供し得る。または、たとえば、デスクトップコンピュータ155、ラップトップコンピュータ157、および/またはスマートフォン159上で実行されるクライアントアプリケーションは、プロダクションアプリケーション137によって監視またはモニタリングされたシステムに関する情報を要求し得る。
【0058】
-方法の例-
本明細書では、ビッグデータ機械学習ユースケースのための自律クラウドノードスコーピングの、コンピュータにより実現される方法が、説明される。一実施形態において、1つ以上のコンピューティングデバイス(
図11を参照して示され説明されるコンピュータ1105等)であって、作動的に接続されたプロセッサ(プロセッサ1110等)、メモリ(メモリ1115等)、およびその他の構成要素を有するコンピューティングデバイスが、このコンピューティングデバイスに方法のステップを実行させるロジック(自律クラウドノードスコーピングロジック1130等)で構成され得る。たとえば、プロセッサは、メモリにアクセスし、メモリからの読み出しまたはメモリへの書込を行うことにより、
図2を参照して示され説明されるステップを実行する。これらのステップは、(i)任意の必要な情報を取り出すこと、(ii)任意のデータを計算、決定、生成、分類、または作成すること、および(iii)計算、決定、生成、分類、または作成された任意のデータを格納することを含み得る。一実施形態において、本明細書で説明される方法は、自動スコーピングツール103またはターゲットクラウドコンテナスタック101(
図1を参照して示され説明される)によって実行され得る。
【0059】
一実施形態において、方法の後続の各ステップは、少なくとも後続のステップが開始されるのに必要な程度まで前のステップが実行されたことを示す、受信信号または取り出された格納データの解析に応じて開始される。一般的に、取り出された受信信号または格納データは、前のステップの完了を示す。
【0060】
図2は、ビッグデータ機械学習ユースケースのための自律クラウドノードスコーピングに関連する方法200の一実施形態を示す。一実施形態において、コンピュータにより実現される方法が示される。この方法は、パラメータ値の複数の組み合わせのうちの各組み合わせごとに、(i)使用シナリオを記述するパラメータ値の組み合わせを設定するステップ、(ii)ターゲットクラウド環境上でパラメータ値の組み合わせに従い機械学習アプリケーションを実行するステップ、および(iii)機械学習アプリケーションを実行するための計算コストを測定するステップを含む。この方法はまた、測定した計算コストに基づいて機械学習アプリケーションを実行するためのターゲットクラウド環境の中央処理装置、グラフィックス処理装置、およびメモリの推奨構成を生成するステップを含む。一実施形態において、方法200は、自動スコーピングツール103および/またはターゲットクラウドコンテナスタック101によって実行され得る。
【0061】
方法200は、さまざまなトリガに基づいて開始されてもよく、これらのトリガは、たとえば(i)クラウドコンピューティングシステム100のユーザ(または管理者)が方法200を開始したこと、(ii)その方法200が規定時間に開始されることがスケジュールされていること、または(iii)機械学習アプリケーションを第1のコンピュータシステムからターゲットクラウド環境に移行させる自動プロセスが実行されていること、を示す、信号をネットワークを介して受信したこと、またはこれを示す格納データの解析である。方法200は、STARTブロック205において、受信信号または取り出された格納データを解析しこの信号または格納データが方法200を開始すべきことを示していると判断したことに応じて、開始される。処理はプロセスブロック210に進む。
【0062】
プロセスブロック210において、プロセッサは、使用シナリオを記述するパラメータ値の組み合わせを設定する。
【0063】
一実施形態において、プロセッサは、メモリまたはストレージからパラメータ値の次の組み合わせを取り出す。パラメータは、観察ごとの信号の数、観察の数、および訓練ベクトルの数であり得る。プロセッサは、取り出したパラメータ値の組み合わせを用いて、実行すべきテストアプリケーション133(特定の計算形状でコンテナ化された機械学習アプリケーション)に対する命令を生成する。プロセッサは、命令を、たとえばRESTコマンドとして、テストアプリケーション133に送信する。命令は、コンテナランタイムエンジン113を介してテストアプリケーションに送信され得る。プロセスブロック210のステップは、たとえば自動スコーピングツール103のテスト実行モジュール143によって実行され得る。
【0064】
プロセッサがこのようにして使用シナリオを記述するパラメータ値の組み合わせの設定を完了すると、プロセスブロック210の処理は完了し、処理はプロセスブロック215に進む。
【0065】
プロセスブロック215において、プロセッサは、ターゲットクラウド環境上でパラメータ値の組み合わせに従い機械学習アプリケーションを実行する。
【0066】
一実施形態において、テストアプリケーション133は機械学習アルゴリズムを含む。プロセッサは、テストアプリケーション133が実行を開始すべきであるという命令、たとえばRESTコマンドを、テストアプリケーション133に対して生成する。実行開始命令を生成するこのステップは、たとえば自動スコーピングツール103のテスト実行モジュール143によって実行され得る。それに応じて、プロセッサは、パラメータ値の組み合わせによって定められたテストデータのセットを取り出す。プロセッサは、機械学習アルゴリズムを含むテストアプリケーション133をテストデータのセットに対して実行する。一実施形態において、プロセッサは、プロセッサがテストアプリケーション133の実行を開始する第1の時間をメモリに記録し、プロセッサがテストアプリケーションの実行を完了する第2の時間をメモリに記録する。一実施形態において、プロセッサは、プロセッサがテストアプリケーション133の訓練サイクルの実行を開始する第1の時間をメモリに記録し、プロセッサがテストアプリケーションの訓練サイクルの実行を完了する第2の時間をメモリに記録する。一実施形態において、プロセッサは、プロセッサがテストアプリケーション133の監視サイクルの実行を開始する第1の時間をメモリに記録し、プロセッサがテストアプリケーション133の監視サイクルの実行を完了する第2の時間をメモリに記録する。一実施形態において、プロセッサは、テストアプリケーション133の実行中に使用されるプロセッサ(CPUおよび/またはGPU)サイクル、テストアプリケーション133の訓練サイクル、および/またはテストアプリケーション133の監視サイクルを、メモリに記録する。これらの、テストデータのセットを取り出すステップ、テストアプリケーションを実行するステップ、および時間またはプロセッササイクルを記録するステップは、たとえばターゲットクラウドコンテナスタック101によって実行され得る。
【0067】
このようにプロセッサがターゲットクラウド環境上でパラメータ値の組み合わせに従って機械学習アプリケーションの実行を完了すると、プロセスブロック215における処理が完了し、処理はプロセスブロック220に進む。
【0068】
プロセスブロック220において、プロセッサは、機械学習アプリケーションを実行するための計算コストを測定する。
【0069】
一実施形態において、プロセッサは、第1および第2の時間の記録および/またはプロセッササイクルの集計を返すことを求める、テストアプリケーションコンテナ129に対する要求を生成する。この要求は、たとえば、コンテナランタイムエンジン113を介してテストアプリケーションコンテナ129に向けられるREST要求であり得る。この要求はまた、たとえば計算コスト記録モジュール145によって生成され送信され得る。次に、アプリケーションコンテナを実行するプロセッサ(ターゲットクラウドコンテナスタック101の1つ以上のプロセッサ)は、要求された時間および/または集計を計算コスト記録モジュール145に返す。次に、計算コスト記録モジュール145を実行するプロセッサは、パラメータ値と計算コストとの現在の組み合わせを含む計算コスト記録(データ構造)を作成しメモリまたはストレージに格納する。パラメータ値の組み合わせは、信号の数、観察の数、および訓練ベクトルの数を含み得る。計算コストは、返された第1および第2の時間の間の差、および/または返されたプロセッササイクルの集計を含み得る。
【0070】
プロセッサがこのように機械学習アプリケーションの実行のための計算コストの測定を完了すると、処理は、パラメータ値の残りの複数の組み合わせの各々について、残りのパラメータ値の組み合わせがなくなるまで、プロセスブロック210から繰り返される。プロセッサは、パラメータ値のうちの1つをインクリメントして、格納されたインクリメント値について可能なパラメータ値の組み合わせのネステッドループトラバースにおいて、パラメータ値の次の組み合わせに移る。パラメータのインクリメント値は、メモリまたはストレージから取り出され得る。このようにして、各予想ユースケースを記述するようにパラメータ値の組み合わせが設定され、各予想ユースケースのパラメータ値に対して機械学習アプリケーションが実行され、各予想ユースケースの機械学習アプリケーションの性能が測定される。こうしてプロセスブロック220における処理は完了し、処理はプロセスブロック225に進む。
【0071】
プロセスブロック225において、プロセッサは、測定した計算コストに基づいて機械学習アプリケーションを実行するためのターゲットクラウド環境の中央処理装置、グラフィックス処理装置、およびメモリの構成に関する推奨を生成する。
【0072】
一実施形態において、プロセッサは、信号、観察、および訓練ベクトルの数の目標の組み合わせについての計算コスト記録を取り出す。プロセッサは、目標の組み合わせにおける計算コストが、目標の組み合わせにおける機械学習アプリケーションの実行の目標レイテンシを超えるか否かを判断する。目標レイテンシおよび目標の組み合わせは、ユーザから提供される情報である。目標レイテンシを超える場合、テストアプリケーション133内の機械学習アプリケーションに割り当てられた計算形状(ターゲットクラウド環境の中央処理装置、グラフィックス処理装置、およびメモリの構成)は不適切であり、未処理の観察のバックアップを引き起こす。したがって、目標レイテンシを超える場合、プロセッサは、テストアプリケーション133の計算形状に対する推奨を生成する。目標レイテンシを超えない場合、テストアプリケーション133内の機械学習アプリケーションに割り当てられた計算形状は適切であり、テストアプリケーション133に提供される観察を適時に処理することになる。したがって、目標レイテンシを超えない場合、プロセッサは、計算形状に有利な推奨を生成する。プロセッサはさらに、テストアプリケーションの計算形状(ターゲットクラウド環境の中央処理装置、グラフィックス処理装置、およびメモリの構成)を、機械学習アプリケーションをターゲットクラウドコンテナスタックにデプロイするためのコンテナの構成の計算形状として、選択し得る(プロダクションアプリケーションを作成137)。
【0073】
一実施形態において、複数のテストアプリケーションの計算コストが目標レイテンシを超えない場合、プロセッサは、複数のテストアプリケーションのうちのいずれが金銭的に最も高価でない計算形状を有するかをさらに評価し得る(本明細書でさらに説明される)。
【0074】
プロセッサが、このように、測定した計算コストに基づいて機械学習アプリケーションを実行するためのターゲットクラウド環境の中央処理装置、グラフィックス処理装置、およびメモリの構成に関する推奨の生成を完了すると、プロセスブロック225における処理が完了し、処理はENDブロック230に進み、ここでプロセス200は終了する。
【0075】
一実施形態において、パラメータ値の組み合わせは、モンテカルロシミュレーションに従って設定され、機械学習アプリケーションの実行中に機械学習アプリケーションに対する入力としてパラメータ値が機械学習アプリケーションに与えられる。したがって、
図3は、ビッグデータ機械学習ユースケースのための自律クラウドノードスコーピングに関連する方法300の一実施形態を示し、パラメータ値組み合わせのネステッドループトラバースの一実施形態の詳細を示す。方法300は、さまざまなトリガに基づいて開始されてもよく、これらのトリガは、たとえば(i)クラウドコンピューティングシステム100のユーザ(または管理者)が方法300を開始したこと、(ii)その方法300が規定時間に開始されることがスケジュールされていること、または(iii)機械学習アプリケーションを第1のコンピュータシステムからターゲットクラウド環境に移行させる自動プロセスた実行されていること、または(iv)複数の計算形状の評価の一部として特定の計算形状に対して方法300が実行されていること、を示す、信号を、ネットワークを介して受信したこと、またはこれを示す格納データの解析である。方法300は、STARTブロック305において、受信信号または取り出された格納データを解析しこの信号または格納データが方法300を開始すべきことを示していると判断したことに応じて、開始される。処理はプロセスブロック310に進む。
【0076】
プロセスブロック310において、プロセッサは、信号数(numSig)を初期信号数(Sinitial)に等しくなるように設定することによって信号数を初期化する。一実施形態において、プロセッサは、入力としてテスト実行モジュール143によって受け付けられた範囲の初期値等の、信号数の範囲の開始値を、信号の初期数として取り出す。プロセッサは、取り出された値に等しくなるように信号の数を設定する。プロセスブロック310における処理は完了し、処理は決定ブロック315に進む。
【0077】
決定ブロック315で、プロセッサは、信号数(numSig)が最終信号数(Sfinai)未満か否かを判断する。プロセッサは、入力としてテスト実行モジュール143によって受け付けられた範囲の最終値等の、信号数の範囲の終了値を、信号の最終数として取り出す。プロセッサは、信号数を信号の最終数と比較する。信号数が信号の最終数未満であることが真である場合、決定ブロック315における処理は完了し、処理はプロセスブロック320において続行される。
【0078】
プロセスブロック320において、プロセッサは、観察数(numObs)を初期観察数(Oinitial)に等しくなるように設定することによって観察数を初期化する。一実施形態において、プロセッサは、入力としてテスト実行モジュール143によって受け付けられた範囲の初期値等の、観察数の範囲の開始値を、観察の初期数として取り出す。プロセッサは、取り出された数に等しくなるように観察数を設定する。プロセスブロック320における処理は完了し、処理は決定ブロック325に進む。
【0079】
決定ブロック325において、プロセッサは、観察数(numObs)が最終観察数(Ofinai)未満か否かを判断する。一実施形態において、プロセッサは、入力としてテスト実行モジュール143によって受け付けられた範囲の最終値等の、観察数の範囲の終了値を、観察の最終数として取り出す。プロセッサは、観察数を観察の最終数と比較する。観察数が観察の最終数未満であることが真である場合、決定ブロック325における処理は完了し、処理はプロセスブロック330において続行される。
【0080】
プロセスブロック330において、プロセッサは、訓練ベクトル数(numVec)を訓練ベクトルの初期数(Vinitial)に等しくなるように設定することによって訓練ベクトル数を初期化する。一実施形態において、プロセッサは、入力としてテスト実行モジュール143によって受け付けられた範囲の初期値等の、訓練ベクトル数の範囲の開始値を、訓練ベクトルの初期数として取り出す。プロセッサは、取り出された値に等しくなるように訓練ベクトル数を設定する。プロセスブロック330における処理は完了し、処理は決定ブロック335に進む。
【0081】
決定ブロック335において、プロセッサは、訓練ベクトル数(numVec)が訓練ベクトルの最終数(Vfinai)未満か否かを判断する。一実施形態において、プロセッサは、入力としてテスト実行モジュール143によって受け付けられた範囲の最終値等の、訓練ベクトルの数の範囲の最終値を、訓練ベクトルの最終数として取り出す。プロセッサは、訓練ベクトルの数を訓練ベクトルの最終数と比較する。訓練ベクトルの数が訓練ベクトルの最終数未満であることが真である場合、決定ブロック335における処理は完了し、処理はプロセスブロック340において継続する。
【0082】
プロセスブロック340において、プロセッサは、信号数(numSig)、観察数(numObs)、および訓練ベクトル数(numVec)について、コンテナにプラグインされターゲットクラウドコンテナスタックにデプロイされた機械学習アプリケーションを実行する。一実施形態において、プロセッサは、機械学習アプリケーションに対する命令を生成し、テストデータのボディから観察の数および訓練ベクトルの数を引き出すように命令を伝える。観察および訓練ベクトルの各々は、この信号の数の長さに制限される。プロセッサは、描かれた観察および訓練ベクトルから追加の信号列を切り捨てる。プロセッサは、機械学習アプリケーションの訓練が開始される第1の時間を記録する。プロセッサは、描かれた訓練ベクトルを使用して機械学習アプリケーションを訓練する。プロセッサは、機械学習アプリケーションの訓練が終了する第2の時間を記録する。プロセッサは、機械学習アプリケーションによるモニタリング(または監視)が開始される第3の時間を記録する。プロセッサは、描かれた観察を監視(または監視)する。プロセッサは、機械学習アプリケーションのモニタリング(または監視)が終了する第4の時間を記録する。プロセスブロック340における処理は完了し、処理はプロセスブロック345に進む。
【0083】
プロセスブロック345において、プロセッサは、実行された機械学習アプリケーションによる訓練およびモニタリング(または監視)の計算コストを記録する。一実施形態において、プロセッサは(たとえば自動スコーピングツール103の計算コスト記録モジュール145の実行中に)、要求を生成しターゲットクラウドコンテナスタックにデプロイされたコンテナに送信する。要求は、コンテナが第1、第2、第3、および第4の時間を返すためのものである。コンテナは、第1の時間、第2の時間、第3の時間、および第4の時間をメモリから取り出し、これらの時間を含むメッセージを生成する。コンテナは、このメッセージを計算コスト記録モジュール145に送信する。これに応答して、計算コスト記録モジュール145は、第1の時間、第2の時間、第3の時間、および第4の時間、または、第2の時間と第1の時間との差および第4の時間と第3の時間との差を、信号の数、観察の数、および訓練ベクトルの数とともに、データストア内の計算コストデータ構造に書き込む。プロセスブロック345における処理は完了し、処理はプロセスブロック350に進む。
【0084】
プロセスブロック350において、プロセッサは、訓練ベクトルの数をベクトルインクリメント(Vincrement)だけインクリメントする。一実施形態において、プロセッサは、テスト実行モジュール143によって受け付けられた訓練ベクトルの数の範囲にわたるインクリメント等のベクトルインクリメント値を、ベクトルインクリメント値として取り出す。プロセッサは、ベクトルの数を、ベクトルの数の現在の値とベクトルインクリメント値との和である新たな値に割り当てるかまたは設定する。プロセッサがこのようにベクトルの数をベクトルインクリメントだけインクリメントすると、プロセスブロック350の処理は完了し、処理は決定ブロック335に戻る。
【0085】
決定ブロック335と350との間の処理は、ベクトルの数の各インクリメントごとに、訓練ベクトルの数が訓練ベクトルの最終数よりも少ないことが真である間、繰り返される。これは、ネステッドループのセットの最も内側のループを形成する。訓練ベクトルの数が訓練ベクトルの最終数よりも少ないことが偽になると(すなわち訓練ベクトルの数が訓練ベクトルの最終的以上)、ループは終了し、処理はプロセスブロック355に進む。
【0086】
プロセスブロック355において、プロセッサは、観察の数を観察インクリメント(Oincrement)だけインクリメントする。一実施形態において、プロセッサは、テスト実行モジュール143によって受け付けられた観察数の範囲にわたるインクリメント等の観察インクリメント値を、観察インクリメント値として取り出す。プロセッサは、観察数を、観察数の現在の値と観察インクリメント値との和である新たな値に割り当てるかまたは設定する。プロセッサがこのように観察数を観察インクリメントだけインクリメントすると、プロセスブロック355の処理は完了し、処理は決定ブロック325に戻る。
【0087】
決定ブロック325と355との間の処理は、観察数の各インクリメントごとに、観察数が観察の最終数よりも少ないことが真である間、繰り返される。これは、ネステッドループのセットの中央ループを形成する。観察数が最終観察数よりも少ないことが偽になると(すなわち観察数が最終的観察数以上)、ループは終了し、処理はプロセスブロック360に進む。
【0088】
プロセスブロック360において、プロセッサは、信号の数を信号インクリメント(Sincrement)だけインクリメントする。一実施形態において、プロセッサは、テスト実行モジュール143によって受け付けられた信号数の範囲にわたるインクリメント等の信号インクリメント値を、信号インクリメント値として取り出す。プロセッサは、信号数を、信号数の現在の値と信号インクリメント値との和である新たな値に割り当てるかまたは設定する。プロセッサがこのように信号数を信号インクリメントだけインクリメントすると、プロセスブロック360の処理は完了し、処理は決定ブロック315に戻る。
【0089】
判定ブロック315と判定ブロック360との間の処理は、信号数の各インクリメントごとに、信号数が最終信号数よりも少ないことが真である間、繰り返される。これは、ネステッドループのセットの外側ループを形成する。信号数が最終信号数よりも少ないことが偽になると(すなわち信号数は最終信号数以上)、ループは終了し、処理はプロセスブロック365に進む。
【0090】
プロセスブロック365において、プロセッサは、信号の数、観察の数、および訓練ベクトルの数のすべての順列についての計算コストを出力する。一実施形態において、プロセッサ(たとえばインターフェイスモジュール147を実行)は、データストアから各計算コストデータ構造を取り出す。プロセッサは、1つ以上の計算コストデータ構造によって定められた、バープロットおよび/または表面プロットを提示する1つ以上のグラフを表示するための命令を生成する。次に、プロセッサは、1つ以上のグラフを表示させる命令を送信する。次に、プロセスブロック365における処理が完了し、プロセス300が終了する終了ブロック370に進む。
【0091】
-信号のシミュレート-
一実施形態において、方法300は、(i)1つ以上のセンサからの信号のセットをシミュレートするステップと、(ii)機械学習アプリケーションの実行中に機械学習アプリケーションに対する入力として信号のセットを機械学習アプリケーションに与えるステップとを含む。たとえば、プロセッサは、信号合成モジュール(
図1を参照して説明したもの)の機能を実行する。信号合成モジュールは、オンプレミスサーバ151によってコンパイルされた履歴データを分析し、履歴データと統計的に同一であるテストデータのボディを生成し、それによって信号をシミュレートする。信号合成モジュールは、自動スコーピングツール103に関連付けられたデータストアにテストデータのボディを格納する。テスト実行モジュール143は、ターゲットクラウドコンテナスタック101による実行中にテストアプリケーション133による使用のために、合成されたテストデータのボディにアクセスする。
【0092】
一実施形態において、信号合成モジュールは、履歴データを分析し、履歴データと統計的に同一のテストデータを生成するために使用することができる数式を生成する。信号合成モジュールは、自動スコーピングツール103に関連付けられたデータストアに数式を格納する。信号合成モジュールは、ターゲットクラウドコンテナスタック101による実行中のテストアプリケーション133による使用のために、必要に応じて合成テストデータを生成する。必要に応じてデータを合成するための数式を使用することには、必要とされるストレージおよび可搬性の観点から、履歴または合成されたテストデータのボディの使用に勝る利点があり、テストデータのボディは、数テラバイトのデータであり得るが、数式はわずか数キロバイトの可能性がある。
【0093】
合成されたテストデータは、「実際の」履歴データと同じ決定論的および確率的構造、単変量時系列に対する連続相関、多変量時系列に対する相互相関、およびノイズ成分(変動、歪度、尖度)に対する確率的内容を有する。一実施形態において、訓練ベクトルおよび観察のためのデータの合成は、別々に実行される。テストデータのボディに対する訓練ベクトルの合成は、センサによってモニタリングまたは監視されるシステムの通常動作を表す履歴センサ観察に基づく。テストデータのボディについての観察の合成は、センサによってモニタリングされるシステムの通常動作を表すか否かに関して未知である履歴センサ観察に基づく。
【0094】
-パラメータ変数-
一実施形態において、方法300におけるパラメータ値の組み合わせは、(i)1つ以上のセンサからの信号の数の値と、(ii)単位時間当たりにストリーミングされる観察の数の値と、(iii)機械学習アプリケーションに与えられる訓練ベクトルの数の値との組み合わせである。
【0095】
図面において、変数「numSig」は、観察または訓練ベクトルについての信号(または受信された離散センサ出力)の数を表す。変数「numObs」は、監視されているシステムのセンサから所与の時間単位にわたって受信される観察ベクトル(長さnumSigのメモリベクトル)の数を表す(numObsはサンプリングレートと呼ばれることもある)。一実施形態において、観察は、スコーピング動作中にシミュレートされたデータから引き出され、最終デプロイにおいてライブデータから引き出される。変数「numVec」は、機械学習アプリケーションを訓練するために機械学習アプリケーションに提供される訓練ベクトル(長さnumSigのメモリベクトル)の数を表す(numVecは訓練セットのサイズと呼ばれることもある)。一実施形態において、訓練ベクトルは、センサによって監視されているシステムの通常動作を特徴付けるように選択される。
【0096】
-計算コストとの非線形的関係-
一実施形態において、方法300における、機械学習アプリケーションは、パラメータ値の組み合わせと計算コストとの間に非線形的関係を生じさせる。先に述べたように、機械学習予測のストリーミングの計算コストは、単位時間当たりの信号数および観察数に対して線形的な関係でスケールアップしない。一般的に、計算コストは、信号数に対して二次的に、観察数に対して線形的にスケーリングする。また、計算コストは、プロビジョニングされた利用可能なメモリの量、プロビジョニングされた総GPUおよびCPUパワーの影響をさらに受ける。したがって、コンテナ化された機械学習アプリケーションは、パラメータ値の組み合わせと計算コストとの間に非線形的関係を有する。
【0097】
顧客ユースケースは、たとえば10個のセンサおよび遅いサンプリングレートで1つのマシンをモニタリングするための単純な企業ユースケースから、たとえば数万個の高サンプリングレートセンサを用いる多国籍企業のユースケースまで、大きく異なることが多い。以下の例は、クラウド実装のための機械学習予測の典型的な顧客ユースケースシナリオの範囲を示す。
【0098】
・顧客Aは、毎時1回のみの低速でサンプリングされるわずか20の信号のユースケースを有し、典型的な年に相当するデータは数MBである。
【0099】
・顧客Bは、エアバス320の艦隊を有し、各々に75000個のセンサが搭載され、毎秒1回サンプリングされ、すべての航空機が毎月20TBのデータを生成する。
他の企業顧客は、通常、AとBとの間の非常に広いユースケーススペクトルのどこかに入る。
【0100】
一実施形態において、自動スコーピングツール103は(一実施形態ではコンテナ化モジュール141を使用して)、プラガブル機械学習アプリケーションとして非線形ノンパラメトリック(NLNP)パターン認識アプリケーションを受け付ける。一実施形態において、NLNPパターン認識アプリケーションは、MSETアプリケーション、多変量状態推定技術2(MSET2)アプリケーション、ニューラルネットアプリケーション、サポートベクターマシンアプリケーション、および自動連想カーネル回帰アプリケーションのうちの少なくとも1つである。
【0101】
図4は、ビッグデータ機械学習のための自律クラウドノードスコーピングに関連する特定のユースケースのための方法300の一例400を示す。一例としての方法400において、信号の数の範囲は10の信号から100の信号までで、インクリメントは10であり、これは、プロセスブロック405における信号数の10への初期化、決定ブロック410における信号数が100未満か否かの判断、およびプロセスブロック415における信号数への10の加算により、示されている通りである。観察の数(すなわちサンプリングレートまたは単位時間当たりの観察の数)の範囲は10,000の観察から100,000の観察までで、インクリメントは10,000の観察であり、これは、プロセスブロック420における観察数の10,000への初期化、決定ブロック425における観察数が100,000未満で否かについての判断、およびプロセスブロック430における観察数への10,000の加算により、示されている通りである。訓練ベクトルの数の範囲(すなわち訓練データセットのサイズ)は、100の訓練ベクトルから2,500の訓練ベクトルまでで、インクリメントは100の訓練ベクトルであり、これは、プロセスブロック435における訓練ベクトル数の100への初期化、決定ブロック440における訓練ベクトル数が2,500未満であるか否かについての判断、およびプロセスブロック445における訓練ベクトル数への100の加算により、示されている通りである。この一例としての方法400において、機械学習アプリケーションは、プロセスブロック450によって示されるように、MSETアプリケーションである。信号の数、観察の数、および訓練ベクトルの数の各順列に対するMSETアプリケーションの実行のための計算コストは、プロセスブロック455に示されるように、プロセッサによってメモリに記録される。信号の数、観察の数、および訓練ベクトルの数の各順列に対するMSETアプリケーションの実行のための計算コストは、プロセスブロック460に示されるように、プロセッサによってメモリから出力される。たとえば、出力は、
図5A~
図8Dを参照して示され説明されるもののようなグラフィック表現の形態であり得る。
【0102】
一実施形態において、この例400は、自動スコーピングツール103によって実行される。自動スコーピングツール103(一実施形態ではコンテナ化モジュール141を使用する)は、プラガブル機械学習アプリケーションとしてのMSET機械学習アプリケーションの入力を受け付ける。自動スコーピングツール103は、MSET機械学習アプリケーションを候補クラウドコンテナに入れる。自動スコーピングツール103(一実施形態ではテスト実行モジュールを使用する)は、コンテナ化されたMSET機械学習アプリケーションを、信号の数、これらの信号の観察、および訓練データセットのサイズの、可能な組み合わせに対して実行させる。一実施形態において、自動スコーピングツール103は、すべての可能なそのような組み合わせに対して実行される。別の実施形態において、組み合わせは、各パラメータに関連付けられたインクリメントによって指示される、各パラメータの幅にわたる等間隔で選択される。
【0103】
-性能情報のグラフィック表現-
一実施形態において、方法300はさらに、(i)各組み合わせごとの計算コストに関連付けられたパラメータ値の組み合わせを示す1つ以上のグラフィック表現を生成するステップと、(ii)機械学習アプリケーションを実行するためのターゲットクラウド環境の中央処理装置、グラフィックス処理装置、およびメモリの構成の選択を可能にする、1つ以上のグラフィック表現を、グラフィカルユーザインターフェイス上に表示させる命令を生成するステップとを、含み得る。
【0104】
一例において、自動スコーピングツールは、候補クラウドコンテナにおいてMSET機械学習予測技術のために実行され、一例としての方法400の場合のように、MSETがクラウドサービスとして採用される場合の、信号の数、観察の数、および訓練ベクトルの数に対し、計算コストがどのように変動するかを判断する。一実施形態において、結果は、バープロットおよび表面プロット等の情報のグラフィック表現として提示され、実際の計算コスト測定値およびMSETのクラウド実装のスコープアウトの観察された傾向を示す。一実施形態において、結果のさまざまな提示は、自動スコーピングツールのユーザがコンテナの形状を選択するための補助として提示される。
【0105】
図5A~
図5Dは、MSET機械学習技術のための訓練プロセスの計算コストを観察の数および訓練ベクトルの数の関数として示すために生成された一例としての3次元(3D)グラフを示す。図面は、MSET技術のための訓練プロセスについての、計算コストと、メモリベクトルの数と、観察の数との間のパラメトリック経験的関係を示す。信号の数は、各個別の
図5A、
図5B、
図5C、および
図5Dにおいて特定される。グラフの観察に基づいて、MSET機械学習技術の訓練プロセスの計算コストは、主として、メモリベクトルの数および信号の数に依存すると結論付けることができる。
【0106】
図6A~
図6Dは、MSET機械学習技術を用いたストリーミング監視の計算コストを観察数および訓練ベクトル数の関数として示すために生成された、例としての3次元(3D)グラフを示す。図面は、MSET機械学習技術を使用するストリーミング監視のための、計算コストと、メモリベクトルの数と、観察の数との間のパラメトリック経験的関係を示す。信号の数は、各個別の
図6A、
図6B、
図6C、および
図6Dにおいて特定される。ストリーミング監視の計算コストは、主に観察の数および信号の数に依存すると結論付けることができる。
【0107】
図7A~
図7Dは、観察数および信号数の関数としてMSET機械学習技術の訓練プロセスの計算コストを示すために生成された例としての3次元(3D)グラフを示す。よって、
図7A~
図7Dは、MSET機械学習技術のための訓練プロセスにおける計算コスト対信号数および観察数について、
図5A~
図5Dの代替レイアウトを示し、メモリベクトルの数は、各個々の
図7A、
図7B、
図7C、および
図7Dにおいて指定される。
【0108】
図8A~
図8Dは、MSET機械学習技術を用いたストリーミング監視の計算コストを観察数および信号数の関数として示すために生成された例としての3次元(3D)グラフを示す。よって、
図8A~
図8Dは、MSET機械学習技術を使用したストリーミング監視における計算コスト対信号数および観察数について、
図6A~
図6Dの代替レイアウトを示し、メモリベクトルの数は、
図8A、
図8B、
図8C、および
図8Dの各々において指定される。
【0109】
したがって、システムによって示される3Dの結果は、選択された計算形状(中央処理装置、グラフィックス処理装置、およびメモリの構成)にコンテナ化された選択された機械学習アプリケーションのターゲットクラウド環境における性能に関する多くの情報をシステムのユーザに示す。これにより、システムのユーザは、選択された計算形状における機械学習アプリケーションの性能を迅速に評価することができる。たとえば、3D結果は、ユーザに、(i)センサ、(ii)観察(機械学習アプリケーションへの入力のサンプリングレートと同等)、および(iii)訓練ベクトルの各々について、所与の数の特定の計算形状でコンテナ化された機械学習アプリケーションの「計算コスト」(計算のレイテンシ)を視覚的に示す。一実施形態において、システムは、ターゲットクラウドコンピューティングスタックに利用できる(において使用するのに適した)計算形状の各々の3D結果を提示することができる。
【0110】
さらに、これらの計算形状の各々について、システムはまた、形状に関連するドルコストを計算し、ユーザに表示し得る。一実施形態において、価格設定は、計算形状の各アスペクトを使用のために利用可能にされる時間の量に基づく。一実施形態において、サービスが毎時単位で請求される場合、所与の計算形状に対する価格は、SHAPE_Price/hr=(CPU_QTY*CPU_Price/hr)+(GPU_QTY*GPU_Price/hr)+(MEMORY_QTY*MEMORY_Price/hr)として与えられてもよい。たとえば、データセンタは、CPUの使用に対して毎時0.06ドル、GPUの使用に対して毎時0.25ドル、および1ギガバイトのRAMの使用に対して毎時0.02ドルを課金し得る。したがって、データセンタは、8つのCPU、2つのGPU、および8ギガバイトのRAMを有する第1の例の計算形状を動作させるために、毎時$1.14を課金し、16のCPU、6のGPU、および16ギガバイトのRAMを有する第1の例の計算形状を動作させるために、毎時3.28ドルを課金する。
【0111】
最低でも、特定の形状に関連する3D結果およびドルコストをユーザに提示することは、そうでなければ試行錯誤の実行から把握しようと試みるのに非常に長い時間を要するであろう最大の情報を、ユーザに自動的に提示する。
【0112】
-複数のコンピュータ形状の評価-
一実施形態において、システムは、ターゲットクラウドコンピューティングスタックにおいてデプロイされ得る形状のセットの各々について機械学習アプリケーションの性能を評価する。このセットは、データセンタによって提供される形状の選択を含んでもよく、または形状のすべての可能な組み合わせ、またはターゲットクラウドコンピューティングスタックにデプロイするための形状の何らかの他のセットを含み得る。次に、システムのユーザは、機械学習アプリケーションをコンテナ化するための適切な計算形状を選択することができる。たとえば次の通りである。
【0113】
(1)すべての利用可能な計算形状が「計算コスト」制約を満たす場合((i)信号の最大数、(ii)最大サンプリングレート、および(iii)訓練ベクトルの最大数に対する目標レイテンシ機械学習アプリケーションを満たす)、システムは、ユーザが最低金銭コストの計算形状を選択することを推奨し得る。
【0114】
(2) 利用可能な計算形状のうちのいくつかが「計算コスト」制約を満たさない場合、システムは、「計算コスト」制約も満たす最低金銭コストの計算形状を推奨し得る。
【0115】
さらに、提示された3D結果およびコスト情報は、たとえばセンサの数または観察の数(サンプリングレート)を低減することによって、機械学習アプリケーションの再構成を評価するために必要な情報をユーザに与えるか、または訓練ベクトルの数を低減することによって、全体的な予測精度を引き下げる。システムから提供される結果がなければ、ユーザの計算コスト制約を満たすために信号数、または観察数、または訓練ベクトル数の低減間のトレードオフを推測することは、不確実性、当て推量、および数週間の試行錯誤実験を伴う。システムから提供される3D曲線および費用計算情報を用いて、ユーザは、たとえば、「10の最も役に立たないセンサを捨てよう」または「サンプリングレートを8%下げよう」または「予測精度過剰なので訓練ベクトル数を25%低減しよう」と、素早く決定することができる。モデルパラメータをそれらの独自の予測仕様を満たすように調整するこの機会は、以前は、機械学習ユースケースのためにクラウドプロバイダから利用可能ではなかった。
【0116】
一実施形態において、パラメータ値の複数の組み合わせの各々に対して繰り返される、設定するステップ、実行するステップ、および測定するステップ(
図2を参照して説明したステップ210、215および220)は、ターゲットクラウド環境のための利用可能な計算形状のセットの各々に対し、さらに反復される。
【0117】
図9は、複数の計算形状を評価するためのビッグデータ機械学習ユースケースのための自律クラウドノードスコーピングに関連する方法900の一実施形態を示す。一実施形態において、方法900では、追加の最外ループがプロセス300に追加され、計算形状のセットの各々について繰り返される。方法900は、さまざまなトリガに基づいて開始されてもよく、これらのトリガは、たとえば(i)クラウドコンピューティングシステム100のユーザ(または管理者)が方法900を開始したこと、(ii)その方法900が規定時間に開始されることがスケジュールされていること、または(iii)機械学習アプリケーションを第1のコンピュータシステムからターゲットクラウド環境に移行させる自動プロセスが実行されていること、を示す、信号をネットワークを介して受信したこと、またはこれを示す格納データの解析である。方法900は、STARTブロック905において、受信信号または取り出された格納データを解析しこの信号または格納データが方法900を開始すべきことを示していると判断したことに応じて、開始される。処理はプロセスブロック910に進む。
【0118】
プロセスブロック910において、プロセッサは、ターゲットクラウド環境に利用可能な計算形状のセットから次の利用可能な計算形状を取り出す。一実施形態において、プロセッサは、ターゲットクラウドコンピューティング環境での実装に適切な計算形状のライブラリのアドレスを解析する。ライブラリは、ストレージまたはメモリにデータ構造として格納され得る。ライブラリは、計算形状の構成を列挙するテーブルであり得る。プロセッサは、方法900の実行中にまだ評価されていないライブラリ内の次の計算形状を選択する。プロセッサは、計算形状のための取り出された構成をメモリに格納する。プロセスブロック910における処理は完了し、処理はプロセスブロック315に進む。
【0119】
プロセスブロック915において、プロセッサは、取り出された計算形状に従って機械学習アプリケーションをコンテナ化する。一実施形態において、プロセッサは、少なくとも中央処理装置およびグラフィックス処理装置、ならびに割り当てられたメモリの少なくとも量を含む、計算形状の特定の構成を識別するために、取り出された構成を解析する。プロセッサは、次に、計算形状に従って機械学習アプリケーションのためのテストアプリケーションコンテナを構築する。たとえば、プロセッサは、コンテナを自動的に構築するために、コンテナ化モジュール141の機能(
図1を参照して示され説明されたもの)を実行するまたは呼び出すことができる。プロセッサは、少なくとも機械学習アプリケーションおよび取り出された形状を入力としてコンテナ化モジュール141に提供する。次に、プロセッサは、コンテナ化モジュール141に、取り出された計算形状に従って機械学習アプリケーションのコンテナ化バージョンを自動的に生成させる。プロセスブロック915における処理は完了し、処理はプロセスブロック920に進む。
【0120】
プロセスブロック920において、プロセッサは、上で
図3を参照して示され説明されたように、コンテナ化された機械学習アプリケーションのためのプロセスのステップを実行するプロセス300を開始する。プロセスブロック920は完了し、処理は決定ブロック925に進む。
【0121】
決定ブロック925において、プロセッサは、ターゲットクラウド環境に利用可能な計算形状のセットにおいて、任意の計算形状が未評価のままであるか否かを判断する。たとえば、プロセッサは、ライブラリの次のエントリを解析して、次のエントリが別の形状を記述するか否か、または、次のエントリがNULL、空、もしくはさらに他の形状を示さないか否かを、判断し得る。次のエントリが別の形状を記述する場合(決定ブロック925でYES)、処理はステップ910に戻り、方法900は次の計算形状について繰り返される。
【0122】
プロセスブロック365(プロセスブロック920で実行される)は、各計算形状に対する計算コスト情報が出力されるようにすることに留意されたい。一実施形態において、計算コスト情報は、機械学習アプリケーションの実行におけるその計算形状の性能の後の評価のために、特定の計算形状に関連付けられたデータ構造内のメモリに出力される。
【0123】
計算形状のセット内の次のエントリがさらに他の形状を示さない場合(決定ブロック925でNO)、決定ブロック925における処理が完了し、処理は終了ブロック930に進み、方法900が終了する。
【0124】
よって、一実施形態において、コンテナ形状のセットのうちの各コンテナ形状ごとに、信号の数の範囲における信号の数の各インクリメントごとに、サンプリングレートの範囲におけるサンプリングレートの各インクリメントごとに、かつ訓練ベクトルの数の範囲における訓練ベクトルの数の各インクリメントごとに、プロセッサは、コンテナ形状に従って構成されたコンテナにおいて、サンプリングレートの信号の数と、訓練ベクトルの数との組み合わせに従い、機械学習アプリケーションを実行する。
【0125】
一実施形態において、システムおよび方法は、ユーザが、ユーザの性能制約(目標レイテンシ、センサの目標数、観察の目標数または目標サンプリングレート、および訓練ベクトルの目標数)を満たす最低金銭コストの計算形状コンテナを使用することを自動的に所望すると仮定する。ここで、複数の計算形状のテストアプリケーションの性能を評価した後、プロセッサは、性能制約を満たす最低コストオプションを自動的に提示する。たとえば、システムおよび方法は、「n個のCPUおよびm個のGPUを有する形状Cが、1時間当たり8.22ドルの最小コストで性能要件を満たす」ことを示す出力をユーザに提示し得る。この場合、プロセッサは、顧客の計算コスト仕様(性能制約)を満たす実現可能な形状をランク付けし、次に、実現可能な形状のリストから最も低い金銭的コストを有する形状を選択する。一実施形態において、評価およびランク付けのこれらのステップは、プロセッサによる評価モジュール149の実装によって実行され得る。
【0126】
一実施形態において、プロセッサは、推奨構成に従って、ターゲットクラウド環境内のクラウドコンテナを自動的に構成する。たとえば、これは、機械学習アプリケーションのためのプロセッサによるコンテナ化モジュール141の実装、および推奨される構成または形状によって示される、中央処理装置、グラフィックス処理装置、および割り当てられたメモリの量によって実行され得る。
【0127】
一実施形態において、実現可能なコンテナ形状(一部またはすべて)のリストの他のメンバーが、選択のためにユーザに提示される。一実施形態において、これらのプロセスのステップは、プロセッサによるインターフェイスモジュール147および評価モジュール149の実装によって実行され得る。一実施形態において、プロセッサは、各組み合わせの計算コストに関連するパラメータ値の組み合わせを示す1つ以上のグラフィック表現を生成し、グラフィカルユーザインターフェイス上に1つ以上のグラフィック表現を表示させる命令を作成して、機械学習アプリケーションを実行するためのターゲットクラウド環境の、中央処理装置、グラフィックス処理装置、およびメモリの構成の選択を可能にする。
図10は、コンテナ形状、コスト、および3D性能情報曲線、ならびにコンテナ形状推奨を提示するための一例としてのGUI 1000の一実施形態を示す。例としてのGUI 1000は、各実現可能なコンテナ形状を記述する一連の行1005、1010、1015を有する。さらに他のコンテナ形状を記述する追加の行は、GUIにおいて下向きにスクロールすることによって見えるようにされ得る。行1005、1010、1015の各々はまた、その行によって記述される特定のコンテナ形状における機械学習アプリケーションの性能の1つ以上のグラフィック表現1020、1025、1030の行セットも表示する。たとえば、グラフィック表現は、
図5A~
図8Dを参照して示され説明されるもののような3Dグラフであり得る。
【0128】
各行は、その行の構成情報(CPU、GPU、および割り当てられたメモリの数に関する)およびコスト情報(単位時間当たりの請求コストに関する)を記述する。一実施形態において、行は、金銭的コスト等の基準の昇順で表示され、最も低コストの実現可能なコンテナ形状を最上行に配置する。一実施形態において、例としてのGUI 1000は、1つの特定のコンテナ形状が推奨されるという特定の指示1035を示すことができる。
【0129】
行の各々は、ラジオボタン、チェックボックス、または他のボタン等の、その行に関連付けられたコンテナ形状の選択を示すための手段に関連付けられる。たとえば、GUI 1000のユーザは、ラジオボタン1040を選択されないままにすることによって推奨オプションを選択しないことを選択し、ラジオボタン1045を選択することによって(たとえばマウスクリックによって)次の最も高コストのオプションを選択することを選択し得る。次に、ユーザは、「コンテナ形状選択」ボタン1050を選択することによって(たとえばマウスクリックによって)、この選択を最終決定し得る。したがって、一実施形態において、ユーザは、所望のコンテナ形状の記述に隣接するラジオボタンを選択し、次に、「コンテナ形状選択」ボタン1050を選択することによって、構成の選択を入力することができる。
【0130】
一実施形態において、選択の受信に応じて、プロセッサは、選択された構成に従い、ターゲットクラウド環境内のクラウドコンテナを自動的に構成し得る。たとえば、これは、機械学習アプリケーションのためのコンテナ化モジュール141の実装、中央処理装置およびグラフィックス処理装置の数量、ならびに選択された構成または形状によって示される割り当てられたメモリにより、実行され得る。
【0131】
GUI 1000はまた、「ターゲットパラメータおよび再評価調整」ボタン1055を含み得る。このボタン1055の選択(たとえばマウスクリックによる)は、ユーザが目標パラメータを調整することを可能にする調整メニューを表示するようにGUI 1000に指示する。たとえば、ユーザは、目標レイテンシ、信号の目標数、および/または観測の目標数、訓練ベクトルの目標数についての更新された値をテキストフィールドに入力することが、可能にされ得る。代わりに、これらの変数の値は、グラフィカルスライダ、ボタン、ノブ、または他のグラフィカルユーザインターフェイス要素によって調整され得る。調整メニューには、「受付および再評価」ボタンが含まれていてもよい。「受付および再評価」ボタンの選択は、プロセッサに、新しい目標パラメータを考慮して、種々のコンテナ形状のための性能データを再評価させるであろう。一実施形態において、これらのプロセスのステップは、プロセッサによるインターフェイスモジュール147および評価モジュール149の実装によって実行され得る。
【0132】
したがって、本システムおよび方法は、申し分のないコストに到達するように信号、観測、および訓練ベクトルの数を調整することを可能にするために(任意の他のアプローチから入手不可能な)最大の詳細な情報を望む顧客から、最低の金銭的コストで顧客の予測機械学習アプリケーションのすべての必要な性能仕様を満たすのがどの形状であるかを知らされることを単に望む顧客まで、顧客洗練の範囲にわたっている。
【0133】
-クラウドまたは企業の実施形態-
一実施形態において、自動スコーピングツール103および/または本明細書に示され説明される他のシステムは、データベースアプリケーションまたは分散データベースアプリケーションのコレクションを含む、コンピューティング/データ処理システムである。アプリケーションおよびデータ処理システムは、クラウドベースのネットワーキングシステム、サービスとしてのソフトウェア(SaaS)アーキテクチャ、サービスとしてのプラットフォーム(PaaS)アーキテクチャ、サービスとしてのインフラストラクチャ(laaS)アーキテクチャ、または他のタイプのネットワーク化されたコンピューティングソリューションで動作するように構成されてもよく、またはそれらとして実装され得る。一実施形態において、クラウドコンピューティングシステム100は、少なくとも本明細書に開示される機能を提供し、コンピュータネットワークを介してクラウドコンピューティングシステム100(サーバとして機能する)と通信するコンピューティングデバイス/端末を介して、多くのユーザによってアクセス可能である、サーバ側システムである。
【0134】
-ソフトウェアモジュールの実施形態-
一般的に、ソフトウェア命令は、適切にプログラムされたプロセッサによって実行されるように設計される。これらのソフトウェア命令は、たとえば、コンピュータ実行可能コードと、コンピュータ実行可能コードにコンパイルされ得るソースコードとを含み得る。これらのソフトウェア命令はまた、スクリプト言語などの解釈されたプログラミング言語で記述された命令を含み得る。
【0135】
複雑なシステムでは、そのような命令は、典型的に、プログラムモジュール内に配置され、そのような各モジュールは、特定のタスク、プロセス、機能、または動作を実行する。モジュールのセット全体は、オペレーティングシステム(OS)または他の形態の組織化プラットフォームによって、それらの動作において制御または調整され得る。
【0136】
一実施形態において、本明細書に記載される構成要素、機能、方法、またはプロセスのうちの1つ以上は、非一時的なコンピュータ読取可能媒体に格納されたモジュールとして構成される。モジュールは、メモリまたはストレージにアクセスする少なくともプロセッサによって実行されると、コンピューティングデバイスに、本明細書に記載される対応する機能を実行させる、格納されたソフトウェア命令で構成される。
【0137】
-コンピューティングデバイスの実施形態-
図11は、本明細書に記載のシステムおよび方法の例、および/または均等物のうちの1つ以上を用いて構成および/またはプログラムされたコンピューティングデバイスの一例を示す。このコンピューティングデバイスの例は、バス1125によって作動的に接続されたプロセッサ1110とメモリ1115と入出力ポート1120とを含む、コンピュータ1105であり得る。一例において、コンピュータ1105は、
図1~
図10を参照しながら示し説明したロジック、システム、および方法と同様の、ビッグデータ機械学習ユースケースのための自律クラウドノードスコーピング(たとえば機械学習アプリケーションのためのクラウドコンテナの適切な計算形状を決定すること)を容易にするように構成された自律クラウドノードスコーピングロジック1130であり得る。他の例において、ロジック1130は、ハードウェア、格納された命令を有する非一時的なコンピュータ読取可能媒体、ファームウェア、および/またはそれらの組み合わせで実装され得る。ロジック1130はバス1125に装着されたハードウェア構成要素として示されているが、他の実施形態において、ロジック1130を、プロセッサ1110内に実装、メモリ1115に格納、またはディスク1135に格納し得ることを、理解されたい。
【0138】
一実施形態において、ロジック1130またはコンピュータは、説明したアクションを実行するための手段(たとえば構造:ハードウェア、非一時的なコンピュータ読取可能媒体、ファームウェア)である。いくつかの実施形態において、コンピューティングデバイスは、クラウドコンピューティングシステムで動作するサーバ、サービスとしてのソフトウェア(SaaS)アーキテクチャで構成されたサーバ、スマートフォン、ラップトップ、タブレットコンピューティングデバイスなどであり得る。
【0139】
上記手段は、たとえば、プロセスの発見および容易化を自動化するようにプログラムされたASICとして実装され得る。また、この手段は、メモリ1115に一時的に格納されその後プロセッサ1110によって実行されるデータ1140としてコンピュータ1105に提示される、格納されたコンピュータ実行可能命令として実装され得る。
【0140】
ロジック1130は、自動プロセス発見および容易化を実行するための手段(たとえばハードウェア、実行可能命令を格納する非一時的なコンピュータ読取可能媒体、ファームウェア)を提供することもできる。
【0141】
コンピュータ1105の構成の一例を広く説明すると、プロセッサ1110は、デュアルマイクロプロセッサおよびその他のマルチプロセッサアーキテクチャを含む、多様な種々のプロセッサであり得る。メモリ1115は、揮発性メモリおよび/または不揮発性メモリを含み得る。不揮発性メモリは、たとえばROM、PROM、EPROM、EEPROMなどを含み得る。揮発性メモリは、たとえばRAM、SRAM、DRAMなどを含み得る。
【0142】
ストレージディスク1135は、たとえば、少なくとも入出力(I/O)コントローラ1147によって制御される入出力インターフェイス(たとえばカード、デバイス)1145および入出力ポート1120を介して、コンピュータ1105に作動的に接続され得る。ディスク1135は、たとえば磁気ディスクドライブ、ソリッドステートディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、Zipドライブ、フラッシュメモリカード、メモリスティックなどであり得る。さらに、ディスク1135は、CD-ROMドライブ、CD-Rドライブ、CD-RWドライブ、DVD ROMなどであり得る。メモリ1115は、たとえばプロセス1150および/またはデータ1140を格納することができる。ディスク1135および/またはメモリ1115は、コンピュータ1105のリソースを制御し割り当てるオペレーティングシステムを格納することができる。
【0143】
コンピュータ1105は、入出力(I/O)コントローラ1147、入出力(I/O)インターフェイス1145、および入出力ポート1120を介して、入出力デバイスとやり取りし得る。入出力デバイスは、たとえばキーボード、マイクロホン、ポインティング・選択デバイス、カメラ、ビデオカード、ディスプレイ、ディスク1135、ネットワークデバイス1155などであり得る。入出力ポート1120は、たとえばシリアルポート、パラレルポート、およびUSBポートを含み得る。
【0144】
コンピュータ1105は、ネットワーク環境内で動作することができ、そのため、I/Oインターフェイス1145および/またはI/Oポート1120を介してネットワークデバイス1155に接続され得る。コンピュータ1105は、ネットワークデバイス1155を通してネットワーク1160とやり取りし得る。コンピュータ1105は、ネットワーク1160を介してリモートコンピュータ1165に論理的に接続され得る。コンピュータ1105がやり取りできるネットワークは、LAN、WAN、およびその他のネットワークを含むが、これらに限定される訳ではない。
【0145】
コンピュータ1105は、I/Oポート1120を通して、1つ以上の出力デバイスを制御することができる、または、1つ以上の入力デバイスによって制御することができる。出力デバイスは、1つ以上のディスプレイ1170、プリンタ1172(インクジェット、レーザ、または3Dプリンタ等)、および音声出力デバイス1174(スピーカまたはヘッドホン等)を含む。入力デバイスは、1つ以上のテキスト入力デバイス1180(キーボード等)、カーソルコントローラ1182(マウス、タッチパッド、またはタッチスクリーン等)、音声入力デバイス1184(マイクロホン等)、およびビデオ入力デバイス1186(ビデオおよびスチールカメラ等)を含む。
【0146】
-定義およびその他の実施形態-
別の実施形態において、記載されている方法および/またはそれらの均等物は、コンピュータ実行可能命令で実装され得る。したがって、一実施形態において、非一時的なコンピュータ読取可能/記憶媒体が、アルゴリズム/実行可能なアプリケーションの格納されたコンピュータ実行可能命令で構成され、これらの命令は、マシンによって実行されると、このマシン(および/または関連付けられたコンポーネント)に上記方法を実行させる。マシンの例は、プロセッサ、コンピュータ、クラウドコンピューティングシステムで動作するサーバ、サービスとしてのソフトウェア(SaaS)アーキテクチャで構成されたサーバ、スマートフォンなどを含むが、これらに限定されない。一実施形態において、コンピューティングデバイスは、開示されている方法のいずれかを実行するように構成された1つ以上の実行可能なアルゴリズムで実装される。
【0147】
1つ以上の実施形態において、開示されている方法またはそれらの均等物は、この方法を実行するように構成されたコンピュータハードウェア、または、非一時的なコンピュータ読取可能媒体に格納されたモジュールにおいて実施されるコンピュータ命令の、いずれかによって実行され、コンピュータ命令の場合、命令は、コンピューティングデバイスの少なくともプロセッサによって実行されるとこの方法を実行するように構成された実行可能なアルゴリズムとして構成されている。
【0148】
説明を簡潔にするために、図面に示されている方法体系はアルゴリズムの一連のブロックとして示され説明されているが、方法体系はブロックの順序によって限定される訳ではないことを理解されたい。いくつかのブロックが、示され説明されているものと異なる順序で発生する可能性があり、および/またはその他のブロックと同時に生じる可能性がある。加えて、方法体系の一例を実現するために、示されている全ブロックよりも少ないブロックが使用され得る。ブロックを組み合わせてまたは分割して複数のアクション/コンポーネントにされ得る。さらに、追加のおよび/または代替の方法体系が、ブロックに示されていない追加のアクションを採用し得る。
【0149】
以下は、本明細書で使用される選択された用語の定義を含む。定義は、用語の範囲に含まれ実装のために使用し得るコンポーネントのさまざまな例および/または形態を含む。これらの例は限定を意図していない。定義には用語の単数形および複数形の双方が含まれ得る。
【0150】
「一実施形態」、「ある実施形態」、「一例」、「ある例」などの記述は、そのように記載されている実施形態または例が、特定の特徴、構造、特性、性質、要素、または限定を含み得るものの、すべての実施形態または例が、その特定の特徴、構造、特性、性質、要素、または限定を必ずしも含まないことを、示す。さらに、「一実施形態において」という表現が繰り返し使用されている場合、それは必ずしも同一の実施形態を指す訳ではないが、同一の実施形態を指す場合もある。
【0151】
ASIC:特定用途向け集積回路。
CD:コンパクトディスク。
【0152】
CD-R:書込可能なCD。
CD-RW:書換可能なCD。
【0153】
DVD:デジタル多用途ディスクおよび/またはデジタルビデオディスク。
LAN:ローカルエリアネットワーク。
【0154】
RAM:ランダムアクセスメモリ。
DRAM:ダイナミックRAM。
【0155】
SRAM:同期RAM。
ROM:読出専用メモリ。
【0156】
PROM:プログラマブルROM。
EPROM:消去可能なPROM。
【0157】
EEPROM:電気的に消去可能なPROM。
USB:ユニバーサルシリアルバス。
【0158】
WAN:ワイドエリアネットワーク。
本明細書で使用される「データ構造」は、メモリ、記憶装置、または他のコンピュータ化されたシステムに格納される、コンピューティングシステム内のデータの組織である。データ構造は、たとえばデータフィールド、データファイル、データアレイ、データレコード、データベース、データテーブル、グラフ、ツリー、リンクリストなどのうちのいずれか1つであり得る。データ構造は、多数の他のデータ構造から形成されそれらを含むものであり得る(たとえばデータベースは多数のデータレコードを含む)。他の実施形態に従うと、データ構造の他の例も可能である。
【0159】
本明細書で使用される「コンピュータ読取可能媒体」または「コンピュータ記憶媒体」は、実行されると開示された機能のうちの1つ以上を実施するように構成された命令および/またはデータを格納する非一時的な媒体を意味する。いくつかの実施形態において、データは命令として機能し得る。コンピュータ読取可能媒体は、不揮発性媒体および揮発性媒体を含む形態をとり得るが、これらに限定されない。不揮発性媒体は、たとえば光ディスク、磁気ディスクなどを含み得る。揮発性媒体は、たとえば半導体メモリ、ダイナミックメモリなどを含み得る。コンピュータ読取可能媒体の一般的な形態は、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス、コンパクトディスク(CD)、他の光学媒体、ランダムアクセスメモリ(RAM)、読出専用メモリ(ROM)、メモリチップまたはカード、メモリスティック、ソリッドステートストレージデバイス(SSD)、フラッシュドライブ、および、コンピュータ、プロセッサまたは他の電子デバイスがそれによって機能することができる他の媒体を含み得るが、これらに限定されない。各種類の媒体は、一実施形態における実装のために選択される場合、開示および/またはクレームされている機能のうちの1つ以上を実行するように構成されたアルゴリズムの、格納された命令を含み得る。
【0160】
本明細書で使用される「ロジック」は、コンピュータもしくは電気的ハードウェア、実行可能なアプリケーションもしくはプログラムモジュールの格納された命令を有する非一時的な媒体、および/またはこれらの組み合わせによって実装されて、本明細書に開示されている機能もしくはアクションのうちのいずれかを実行する、および/または本明細書に開示されている別のロジック、方法、および/またはシステムの機能もしくはアクションを実行させる、コンポーネントを表す。等価のロジックは、ファームウェア、アルゴリズムでプログラムされたマイクロプロセッサ、離散的ロジック(たとえばASIC)、少なくとも1つの回路、アナログ回路、デジタル回路、プログラムされたロジックデバイス、アルゴリズムの命令を含むメモリデバイスなどを含み得るものであって、これらのうちのいずれも、開示されている機能のうちの1つ以上を実行するように構成することができる。一実施形態において、ロジックは、1つ以上のゲート、ゲートの組み合わせ、または開示されている機能のうちの1つ以上を実行するように構成された他の回路構成要素を含み得る。複数のロジックが記載されている場合、これらの複数のロジックを1つのロジックに統合することが可能な場合がある。同様に、単一のロジックが記載されている場合、その単一のロジックを複数のロジックに分散させることが可能な場合がある。一実施形態において、これらのロジックのうちの1つ以上が、開示および/またはクレームされている機能の実行に関連付けられた対応する構造である。どのタイプのロジックを実装するかという選択は、所望のシステム条件または仕様に基づき得る。たとえば、より速い速度を考慮すべき場合は、機能を実装するためにハードウェアが選択される。より低いコストを考慮すべき場合、格納された命令/実行可能なアプリケーションが、機能を実装するために選択されるであろう。
【0161】
「作動的接続」またはエンティティが「作動的に接続される」接続は、信号、物理的通信、および/または論理的通信を送信および/または受信することができる接続である。作動的接続は、物理的インターフェイス、電気的インターフェイス、および/またはデータインターフェイスを含み得る。作動的接続は、作動的制御を可能にするのに十分なインターフェイスおよび/または接続のさまざまな組み合わせを含み得る。たとえば、2つのエンティティを作動的に接続することにより、信号を、直接、または1つ以上の中間エンティティ(たとえばプロセッサ、オペレーティングシステム、ロジック、非一時的なコンピュータ読取可能媒体)を通して、互いにやり取りすることができる。論理的および/または物理的通信チャネルを用いて作動的接続を形成することができる。
【0162】
本明細書で使用される「ユーザ」は、1人以上の人、1つ以上のコンピュータもしくは他のデバイス、またはこれらの組み合わせを含むが、これらに限定されない。
【0163】
開示されている実施形態は、かなり詳細に示され説明されているが、添付の請求項の範囲をそのような詳細に制限することまたはいかなる方法でも限定することを意図していない。当然ながら、主題のさまざまな局面を説明するという目的で、構成要素または方法体系の考えられるすべての組み合わせを記載することは、不可能である。そのため、本開示は、示され説明されている特定の詳細または説明のための例に限定されない。よって、本開示は、添付の請求項の範囲に含まれる、変更、修正、および変形を包含することを意図している。
【0164】
「含む(「includes」または「including」)」という用語は、詳細な説明または請求項で使用されている限りにおいて、「comprising(備える)」という用語が請求項におけるつなぎの単語として使用されるときの解釈と同様に、包括的であることを意図している。「または」という用語は、詳細な説明または請求項で使用されている限りにおいて(たとえばAまたはB)、「AまたはBまたはその両方」を意味することを意図している。出願人が「AまたはBのみであって両方ではない」ことを示すことを意図する場合は、「AまたはBのみであって両方ではない」という表現が使用される。したがって、本明細書における「または」という用語の使用は包括的使用であって排他的使用ではない。
【国際調査報告】