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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

<>
  • 特表-実行環境のインテリジェントな識別 図1
  • 特表-実行環境のインテリジェントな識別 図2
  • 特表-実行環境のインテリジェントな識別 図3
  • 特表-実行環境のインテリジェントな識別 図4
  • 特表-実行環境のインテリジェントな識別 図5
  • 特表-実行環境のインテリジェントな識別 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-21
(54)【発明の名称】実行環境のインテリジェントな識別
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240313BHJP
【FI】
G06F9/50 150Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023542713
(86)(22)【出願日】2022-04-07
(85)【翻訳文提出日】2023-07-13
(86)【国際出願番号】 CN2022085558
(87)【国際公開番号】W WO2022214029
(87)【国際公開日】2022-10-13
(31)【優先権主張番号】17/225,427
(32)【優先日】2021-04-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】チャン、アーペン
(72)【発明者】
【氏名】ガオ、レイ
(72)【発明者】
【氏名】ワン、ジン
(72)【発明者】
【氏名】シュウ、ジン
(72)【発明者】
【氏名】ワン、ジュン
(72)【発明者】
【氏名】ユ、ドンハイ
(57)【要約】
コンピューティング・ジョブを実行するための実行環境をインテリジェントに識別するためのメカニズムを提供する。コンピューティング・ジョブの実行コンテキスト情報および主要パラメータと、実行環境の実行環境情報とに一致する既存の機械学習モデルのセットを適用することによって、複数の実行環境のうちの各実行環境におけるコンピューティング・ジョブの実行時間が予測される。機械学習モデルの予測された実行時間が集約される。複数の実行環境に関するコンピューティング・ジョブの集約された予測された実行時間がまとめられる。コンピューティング・ジョブの集約された予測された実行時間のまとめに基づく複数の実行環境からの実行環境の選択に応答して、選択された実行環境においてコンピューティング・ジョブが実行される。選択された実行環境におけるコンピューティング・ジョブの実行中に関連データが収集される。
【特許請求の範囲】
【請求項1】
データ処理システムにおいて、コンピューティング・ジョブを実行するための実行環境をインテリジェントに識別するための方法であって、
複数の実行環境のうちの各実行環境について、
前記コンピューティング・ジョブの実行コンテキスト情報および主要パラメータと、前記実行環境の実行環境情報とに一致する既存の機械学習モデルのセットを適用することによって、前記実行環境における前記コンピューティング・ジョブの実行時間を予測することと、
前記機械学習モデルの前記予測された実行時間を集約することによって、前記実行環境における前記コンピューティング・ジョブの集約された予測された実行時間を形成することと、
前記複数の実行環境に関する前記コンピューティング・ジョブの前記集約された予測された実行時間をまとめることと、
前記コンピューティング・ジョブの前記集約された予測された実行時間の前記まとめに基づく前記複数の実行環境からの実行環境の選択に応答して、前記選択された実行環境において前記コンピューティング・ジョブを実行することと、
前記選択された実行環境における前記コンピューティング・ジョブの前記実行中に関連データを収集することと、
を含む、方法。
【請求項2】
前記コンピューティング・ジョブの集約された予測された実行時間の前記まとめに基づく前記複数の実行環境からの前記実行環境の前記選択は、ユーザ選択または事前定義されたユーザ設定に基づく自動選択のいずれかである、請求項1に記載の方法。
【請求項3】
前記実行コンテキスト情報は、入力データのサイズ、フィールドの数、カテゴリ・フィールドの数、連続フィールドの数、カテゴリ・フィールドの単変量統計、連続フィールドの単変量統計、メタデータ、およびパラメータを含むグループから選択される、請求項1に記載の方法。
【請求項4】
前記主要パラメータは、前記コンピューティング・ジョブに関する前記実行コンテキスト情報に関連付けられた値に基づいて識別される、請求項1に記載の方法。
【請求項5】
前記実行環境情報は、プロセッサの数、前記プロセッサの特徴、メモリ・サイズ、ソフトウェア開発情報、およびオペレーティング・システム情報を含むグループから選択される、請求項1に記載の方法。
【請求項6】
前記既存の機械学習モデルのセットは、
複数のテスト・ケースに関する実行コンテキスト情報を収集することと、
前記複数のテスト・ケースに関する前記実行コンテキスト情報のそれぞれに関連付けられた前記値を使用して主要パラメータを識別することと、
前記複数の実行環境のそれぞれに関する実行環境情報を収集することと、
前記複数のテスト・ケースのそれぞれに関する前記収集された実行コンテキスト情報と、前記複数の実行環境のそれぞれに関する前記実行環境情報とを利用して、前記複数の実行環境のうちの各実行環境において前記複数のテスト・ケース内の各テスト・ケースを実行することと、
関連する実行環境における各テスト・ケースの実行時間と、前記関連するテスト・ケースの実行コンテキストとの間の関係に基づいて前記機械学習モデルのセットを生成することと、
前記機械学習モデルのセット内の各機械学習モデルに初期重みを割り当てることと、
を含む前記方法によって生成される、請求項1に記載の方法。
【請求項7】
前記複数の実行環境のうちの各実行環境のための前記機械学習モデルのセットは、
前記テスト・ケースの前記実行コンテキスト情報、前記テスト・ケースの前記実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てを使用する1つのベース機械学習モデルと、
前記テスト・ケースの前記実行コンテキスト情報、前記テスト・ケースの前記実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てではなく一部を含む、少なくとも1つのライト機械学習モデルと、
を含む、請求項6に記載の方法。
【請求項8】
前記コンピューティング・ジョブを実行するための実行環境を識別する際に利用される前記機械学習モデルのセットを更新することは、
前記選択された実行環境に関して収集された前記関連データをデータ・キャッシュに追加することと、
前記データ・キャッシュ内のレコードの数が第1の所定の値より大きいことに応答して、
前記キャッシュされたデータに基づいてモデル精度を計算することと、
前記計算されたモデル精度に基づいて前記ライト機械学習モデルの重みを調整することによって、前記機械学習モデルのセット内の少なくとも1つのライト機械学習モデルを再トレーニングすることと、
前記データ・キャッシュ内のレコードの前記数が第2の所定の値より大きいことに応答して、
前記機械学習モデルのセット内のベース・モデルの精度が事前定義された閾値(Tacc)未満であるか否かを判定することと、
前記ベース・モデルの前記精度が前記事前定義された閾値(Tacc)未満であることに応答して、前記キャッシュされたデータを使用して新しいベース機械学習モデルを生成することと、
前記関連する実行環境のための既存のベース機械学習モデルを、前記機械学習モデルのセット内の前記関連する実行環境のための前記新しく生成されたベース機械学習モデルに置き換えることと、
を含む、請求項1に記載の方法。
【請求項9】
前記実行環境に関連付けられた前記新しく生成されたベース機械学習モデルおよび前記ライト機械学習モデルのそれぞれを、新しい重みを割り当てることによって再トレーニングすること
をさらに含む、請求項8に記載の方法。
【請求項10】
コンピューティング・ジョブを実行するための実行環境をインテリジェントに識別するためのコンピュータ可読プログラムが記憶されたコンピュータ可読記憶媒体を備えるコンピュータ・プログラム製品であって、前記コンピュータ可読プログラムは、コンピューティング・デバイス上で実行された場合に、前記コンピューティング・デバイスに、
複数の実行環境のうちの各実行環境について、
前記コンピューティング・ジョブの実行コンテキスト情報および主要パラメータと、前記実行環境の実行環境情報とに一致する既存の機械学習モデルのセットを適用することによって、前記実行環境における前記コンピューティング・ジョブの実行時間を予測することと、
前記機械学習モデルの前記予測された実行時間を集約することによって、前記実行環境における前記コンピューティング・ジョブの集約された予測された実行時間を形成することと、
前記複数の実行環境に関する前記コンピューティング・ジョブの前記集約された予測された実行時間をまとめることと、
前記コンピューティング・ジョブの前記集約された予測された実行時間の前記まとめに基づく前記複数の実行環境からの実行環境の選択に応答して、前記選択された実行環境において前記コンピューティング・ジョブを実行することと、
前記選択された実行環境における前記コンピューティング・ジョブの前記実行中に関連データを収集することと、
を実行させる、コンピュータ・プログラム製品。
【請求項11】
前記コンピューティング・ジョブの集約された予測された実行時間の前記まとめに基づく前記複数の実行環境からの前記実行環境の前記選択は、ユーザ選択または事前定義されたユーザ設定に基づく自動選択のいずれかである、請求項10に記載のコンピュータ・プログラム製品。
【請求項12】
前記実行コンテキスト情報は、入力データのサイズ、フィールドの数、カテゴリ・フィールドの数、連続フィールドの数、カテゴリ・フィールドの単変量統計、連続フィールドの単変量統計、メタデータ、およびパラメータを含むグループから選択され、
前記主要パラメータは、前記コンピューティング・ジョブに関する前記実行コンテキスト情報に関連付けられた値に基づいて識別され、
前記実行環境情報は、プロセッサの数、前記プロセッサの特徴、メモリ・サイズ、ソフトウェア開発情報、およびオペレーティング・システム情報を含むグループから選択される、
請求項10に記載のコンピュータ・プログラム製品。
【請求項13】
前記既存の機械学習モデルのセットは、前記コンピュータ可読プログラムが前記コンピューティング・デバイスに、
複数のテスト・ケースに関する実行コンテキスト情報を収集することと、
前記複数のテスト・ケースに関する前記実行コンテキスト情報のそれぞれに関連付けられた前記値を使用して主要パラメータを識別することと、
前記複数の実行環境のそれぞれに関する実行環境情報を収集することと、
前記複数のテスト・ケースのそれぞれに関する前記収集された実行コンテキスト情報と、前記複数の実行環境のそれぞれに関する前記実行環境情報とを利用して、前記複数の実行環境のうちの各実行環境において前記複数のテスト・ケース内の各テスト・ケースを実行することと、
関連する実行環境における各テスト・ケースの実行時間と、前記関連するテスト・ケースの実行コンテキストとの間の関係に基づいて前記機械学習モデルのセットを生成することと、
前記機械学習モデルのセット内の各機械学習モデルに初期重みを割り当てることと、
をさらに実行させることによって生成される、請求項10に記載のコンピュータ・プログラム製品。
【請求項14】
前記複数の実行環境のうちの各実行環境のための前記機械学習モデルのセットは、
前記テスト・ケースの前記実行コンテキスト情報、前記テスト・ケースの前記実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てを使用する1つのベース機械学習モデルと、
前記テスト・ケースの前記実行コンテキスト情報、前記テスト・ケースの前記実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てではなく一部を含む、少なくとも1つのライト機械学習モデルと、
を含む、請求項13に記載のコンピュータ・プログラム製品。
【請求項15】
前記コンピュータ可読プログラムは、前記コンピューティング・ジョブを実行するための実行環境を識別する際に利用される前記機械学習モデルのセットを更新することを、前記コンピューティング・デバイスに、
前記選択された実行環境に関して収集された前記関連データをデータ・キャッシュに追加することと、
前記データ・キャッシュ内のレコードの数が第1の所定の値より大きいことに応答して、
前記キャッシュされたデータに基づいてモデル精度を計算することと、
前記計算されたモデル精度に基づいて前記ライト機械学習モデルの重みを調整することによって、前記機械学習モデルのセット内の少なくとも1つのライト機械学習モデルを再トレーニングすることと、
前記データ・キャッシュ内のレコードの前記数が第2の所定の値より大きいことに応答して、
前記機械学習モデルのセット内のベース・モデルの精度が事前定義された閾値(Tacc)未満であるか否かを判定することと、
前記ベース・モデルの前記精度が前記事前定義された閾値(Tacc)未満であることに応答して、前記キャッシュされたデータを使用して新しいベース機械学習モデルを生成することと、
前記関連する実行環境のための既存のベース機械学習モデルを、前記機械学習モデルのセット内の前記関連する実行環境のための前記新しく生成されたベース機械学習モデルに置き換えることと、
をさらに実行させることによって行う、請求項10に記載のコンピュータ・プログラム製品。
【請求項16】
前記コンピュータ可読プログラムは、前記コンピューティング・デバイスに、
前記実行環境に関連付けられた前記新しく生成されたベース機械学習モデルおよび前記ライト機械学習モデルのそれぞれを、新しい重みを割り当てることによって再トレーニングすること
をさらに実行させる、請求項15に記載のコンピュータ・プログラム製品。
【請求項17】
コンピューティング・ジョブを実行するための実行環境をインテリジェントに識別するための装置であって、
プロセッサと、
前記プロセッサに結合されたメモリと、
を備え、前記メモリは命令を含み、前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
複数の実行環境のうちの各実行環境について、
前記コンピューティング・ジョブの実行コンテキスト情報および主要パラメータと、前記実行環境の実行環境情報とに一致する既存の機械学習モデルのセットを適用することによって、前記実行環境における前記コンピューティング・ジョブの実行時間を予測することと、
前記機械学習モデルの前記予測された実行時間を集約することによって、前記実行環境における前記コンピューティング・ジョブの集約された予測された実行時間を形成することと、
前記複数の実行環境に関する前記コンピューティング・ジョブの前記集約された予測された実行時間をまとめることと、
前記コンピューティング・ジョブの前記集約された予測された実行時間の前記まとめに基づく前記複数の実行環境からの実行環境の選択に応答して、前記選択された実行環境において前記コンピューティング・ジョブを実行することと、
前記選択された実行環境における前記コンピューティング・ジョブの前記実行中に関連データを収集することと、
を実行させる、装置。
【請求項18】
前記コンピューティング・ジョブの集約された予測された実行時間の前記まとめに基づく前記複数の実行環境からの前記実行環境の前記選択は、ユーザ選択または事前定義されたユーザ設定に基づく自動選択のいずれかである、請求項17に記載の装置。
【請求項19】
前記実行コンテキスト情報は、入力データのサイズ、フィールドの数、カテゴリ・フィールドの数、連続フィールドの数、カテゴリ・フィールドの単変量統計、連続フィールドの単変量統計、メタデータ、およびパラメータを含むグループから選択され、
前記主要パラメータは、前記コンピューティング・ジョブに関する前記実行コンテキスト情報に関連付けられた値に基づいて識別され、
前記実行環境情報は、プロセッサの数、前記プロセッサの特徴、メモリ・サイズ、ソフトウェア開発情報、およびオペレーティング・システム情報を含むグループから選択される、
請求項17に記載の装置。
【請求項20】
前記既存の機械学習モデルのセットは、前記命令が前記プロセッサに、
複数のテスト・ケースに関する実行コンテキスト情報を収集することと、
前記複数のテスト・ケースに関する前記実行コンテキスト情報のそれぞれに関連付けられた前記値を使用して主要パラメータを識別することと、
前記複数の実行環境のそれぞれに関する実行環境情報を収集することと、
前記複数のテスト・ケースのそれぞれに関する前記収集された実行コンテキスト情報と、前記複数の実行環境のそれぞれに関する前記実行環境情報とを利用して、前記複数の実行環境のうちの各実行環境において前記複数のテスト・ケース内の各テスト・ケースを実行することと、
関連する実行環境における各テスト・ケースの実行時間と、前記関連するテスト・ケースの実行コンテキストとの間の関係に基づいて前記機械学習モデルのセットを生成することと、
前記機械学習モデルのセット内の各機械学習モデルに初期重みを割り当てることと、
をさらに実行させることによって生成される、請求項17に記載の装置。
【請求項21】
前記複数の実行環境のうちの各実行環境のための前記機械学習モデルのセットは、
前記テスト・ケースの前記実行コンテキスト情報、前記テスト・ケースの前記実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てを使用する1つのベース機械学習モデルと、
前記テスト・ケースの前記実行コンテキスト情報、前記テスト・ケースの前記実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てではなく一部を含む、少なくとも1つのライト機械学習モデルと、
を含む、請求項20に記載の装置。
【請求項22】
前記命令は、前記コンピューティング・ジョブを実行するための実行環境を識別する際に利用される前記機械学習モデルのセットを更新することを、前記プロセッサに、
前記選択された実行環境に関して収集された前記関連データをデータ・キャッシュに追加することと、
前記データ・キャッシュ内のレコードの数が第1の所定の値より大きいことに応答して、
前記キャッシュされたデータに基づいてモデル精度を計算することと、
前記計算されたモデル精度に基づいて前記ライト機械学習モデルの重みを調整することによって、前記機械学習モデルのセット内の少なくとも1つのライト機械学習モデルを再トレーニングすることと、
前記データ・キャッシュ内のレコードの前記数が第2の所定の値より大きいことに応答して、
前記機械学習モデルのセット内のベース・モデルの精度が事前定義された閾値(Tacc)未満であるか否かを判定することと、
前記ベース・モデルの前記精度が前記事前定義された閾値(Tacc)未満であることに応答して、前記キャッシュされたデータを使用して新しいベース機械学習モデルを生成することと、
前記関連する実行環境のための既存のベース機械学習モデルを、前記機械学習モデルのセット内の前記関連する実行環境のための前記新しく生成されたベース機械学習モデルに置き換えることと、
をさらに実行させることによって行う、請求項17に記載の装置。
【請求項23】
前記命令は、前記プロセッサに、
前記実行環境に関連付けられた前記新しく生成されたベース機械学習モデルおよび前記ライト機械学習モデルのそれぞれを、新しい重みを割り当てることによって再トレーニングすること
をさらに実行させる、請求項22に記載の装置。
【請求項24】
データ処理システムにおいて、コンピューティング・ジョブを実行するための実行環境をインテリジェントに識別するための方法であって、
複数の実行環境のうちの各実行環境における前記コンピューティング・ジョブの集約された予測された実行時間を特定することと、
コンピューティング・ジョブの集約された予測された実行時間のまとめに基づく前記複数の実行環境からの実行環境の選択に応答して、前記選択された実行環境において前記コンピューティング・ジョブを実行することと、
前記選択された実行環境における前記コンピューティング・ジョブの前記実行中に関連データを収集することと、
を含む、方法。
【請求項25】
コンピューティング・ジョブを実行するための実行環境をインテリジェントに識別するためのコンピュータ可読プログラムが記憶されたコンピュータ可読記憶媒体を備えるコンピュータ・プログラム製品であって、前記コンピュータ可読プログラムは、コンピューティング・デバイス上で実行された場合に、前記コンピューティング・デバイスに、
複数の実行環境のうちの各実行環境における前記コンピューティング・ジョブの集約された予測された実行時間を特定することと、
コンピューティング・ジョブの集約された予測された実行時間のまとめに基づく前記複数の実行環境からの実行環境の選択に応答して、前記選択された実行環境において前記コンピューティング・ジョブを実行することと、
前記選択された実行環境における前記コンピューティング・ジョブの前記実行中に関連データを収集することと、
を実行させる、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は一般に改良されたデータ処理装置および方法に関し、より詳細には、コンピューティング・ジョブの実行のための実行環境をインテリジェントに識別するためのメカニズムに関する。
【背景技術】
【0002】
コンピューティングにおいて、ジョブは作業の単位または(その作業を行う)実行の単位である。(作業の単位としての)ジョブのコンポーネントは、タスクまたはステップ(ジョブ・ストリームのように順次的な場合)と呼ばれる。実行の単位として、ジョブは具体的には単一のプロセスによって識別され得、プロセスは、ジョブの作業を構成するタスクまたはステップを行うサブプロセス(子プロセスであり、各サブプロセスは親プロセスのジョブに対応する)を有し得、またはジョブはプロセス・グループによって識別され得、あるいはジョブはプロセスまたはプロセス・グループへの抽象的な参照によって識別され得る。
【0003】
ジョブは、コマンド・ラインなどから対話的に開始され、またはジョブ・スケジューラによる非対話的な実行の場合はスケジューリングされ、その後自動もしくは手動のジョブ制御によって制御され得る。入力に限りがあるジョブは、成功もしくは不成功にかかわらず完了し、または完了に失敗して最終的に終了させられ得る。対照的に、サーバなどによるオンライン処理は、入力に終わりがない(サーバが動作している限り、要求に対してサービス提供する)ので、完了することはなく、終了させられた場合にのみ停止する(「キャンセル」と呼ばれることもある)。
【0004】
コンピューティング・ジョブが実行されるデータ処理システムの実行環境には、通常、実行フロー内にいくつかのノードが存在し、各ノードは入力データに対して特定の動作を実行し、出力データを生成し、出力データは下流のノードによって利用されるか、または最終的な結果として提示され得る。現在、ユーザは、コンピューティング・ジョブの実行を完了するのに必要なノードに基づいてコンピューティング・ジョブの実行フローを識別し、次いで、コンピューティング・ジョブの実行環境を経験および予想に基づいて選択して、コンピューティング・ジョブの実行フローを実行している。しかしながら、ユーザの経験が不足している場合、またはコンピューティング・ジョブの実行フローが複雑である場合、コンピューティング・ジョブの実行環境を正しく選択することが困難になり得る。たとえば、コンピューティング・ジョブの実行フローが軽量である場合、選択された実行環境が大規模であれば、リソースの無駄が発生し、コストが増加し得る。さらなる例として、コンピューティング・ジョブの実行フローが重く、選択された実行環境が小規模である場合、コンピューティング・ジョブの実行時間は長すぎになり得る。
【発明の概要】
【0005】
この概要は、本明細書の詳細な説明でさらに説明する概念から選択したものを簡略化した形で紹介するために提供する。この概要は、特許請求する主題の主要な要素または不可欠な特徴を識別することを意図しておらず、特許請求する主題の範囲を限定するために使用されることも意図していない。
【0006】
1つの例示的な実施形態では、データ処理システムにおいて、コンピューティング・ジョブを実行するための実行環境をインテリジェントに識別するための方法を提供する。複数の実行環境のうちの各実行環境について、例示的な実施形態は、コンピューティング・ジョブの実行コンテキスト情報および主要パラメータと、実行環境の実行環境情報とに一致する既存の機械学習モデルのセットを適用することによって、実行環境におけるコンピューティング・ジョブの実行時間を予測し、機械学習モデルの予測された実行時間を集約することによって、実行環境におけるコンピューティング・ジョブの集約された予測された実行時間を形成する。例示的な実施形態は、複数の実行環境に関するコンピューティング・ジョブの集約された予測された実行時間をまとめる。例示的な実施形態は、コンピューティング・ジョブの集約された予測された実行時間のまとめに基づく複数の実行環境からの実行環境の選択に応答して、選択された実行環境においてコンピューティング・ジョブを実行する。例示的な実施形態は、選択された実行環境におけるコンピューティング・ジョブの実行中に関連データを収集する。このように、全ての利用可能な候補実行環境におけるコンピューティング・ジョブの推定実行時間を提供することにより、例示的な実施形態は、リソースの無駄も追加コストもなしで、適切な実行環境を性能に基づいて選択するための方法を提供する。
【0007】
例示的な実施形態では、複数の実行環境からの実行環境の選択は、ユーザ選択または事前定義されたユーザ設定に基づく自動選択のいずれかによる、コンピューティング・ジョブの集約された予測された実行時間のまとめに基づくものである。これにより、ユーザによって制御されるシステムまたは完全に自動化されたシステムの利点が提供される。さらに、例示的な実施形態では、実行コンテキスト情報は、入力データのサイズ、フィールドの数、カテゴリ・フィールドの数、連続フィールドの数、カテゴリ・フィールドの単変量統計(univariate statistics)、連続フィールドの単変量統計、メタデータ、およびパラメータを含むグループから選択され、主要パラメータは、コンピューティング・ジョブに関する実行コンテキスト情報に関連付けられた値に基づいて識別され、実行環境情報は、プロセッサの数、プロセッサの特徴、メモリ・サイズ、ソフトウェア開発情報、およびオペレーティング・システム情報を含むグループから選択される。コンピューティング・ジョブの実行時間を予測するためのコンポーネントに幅広い柔軟性を提供することにより、適切な実行環境を識別する際のユーザの柔軟性がもたらされる。
【0008】
例示的な実施形態では、既存の機械学習モデルのセットは、複数のテスト・ケースに関する実行コンテキスト情報を収集することと、複数のテスト・ケースに関する実行コンテキスト情報のそれぞれに関連付けられた値を使用して主要パラメータを識別することと、複数の実行環境のそれぞれに関する実行環境情報を収集することと、複数のテスト・ケースのそれぞれに関する収集された実行コンテキスト情報と、複数の実行環境のそれぞれに関する実行環境情報とを利用して、複数の実行環境のうちの各実行環境において複数のテスト・ケース内の各テスト・ケースを実行することと、関連する実行環境における各テスト・ケースの実行時間と、関連するテスト・ケースの実行コンテキストとの間の関係に基づいて機械学習モデルのセットを生成することと、機械学習モデルのセット内の各機械学習モデルに初期重みを割り当てることと、によって生成される。さらに、例示的な実施形態では、複数の実行環境のうちの各実行環境のための機械学習モデルのセットは、テスト・ケースの実行コンテキスト情報、テスト・ケースの実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てを使用する1つのベース機械学習モデルと、テスト・ケースの実行コンテキスト情報、テスト・ケースの実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てではなく一部を含む、少なくとも1つのライト(lite)機械学習モデルと、を含む。このように機械学習モデルを生成することにより、リアルタイムに利用される場合の、コンピューティング・ジョブの実行時間を予測する際の精度が高まる。
【0009】
例示的な実施形態では、コンピューティング・ジョブを実行するための実行環境を識別する際に利用される機械学習モデルのセットを更新することは、選択された実行環境に関して収集された関連データをデータ・キャッシュに追加することと、データ・キャッシュ内のレコードの数が第1の所定の値より大きいことに応答して、キャッシュされたデータに基づいてモデル精度を計算することと、計算されたモデル精度に基づいてライト機械学習モデルの重みを調整することによって、機械学習モデルのセット内の少なくとも1つのライト機械学習モデルを再トレーニングすることと、データ・キャッシュ内のレコードの数が第2の所定の値より大きいことに応答して、機械学習モデルのセット内のベース・モデルの精度が事前定義された閾値(Tacc)未満であるか否かを判定することと、ベース・モデルの精度が事前定義された閾値(Tacc)未満であることに応答して、キャッシュされたデータを使用して新しいベース機械学習モデルを生成することと、関連する実行環境のための既存のベース機械学習モデルを、機械学習モデルのセット内の関連する実行環境のための新しく生成されたベース機械学習モデルに置き換えることと、によって実行される。例示的な実施形態では、実行環境に関連付けられた新しく生成されたベース機械学習モデルおよびライト機械学習モデルのそれぞれは、新しい重みを割り当てることによって再トレーニングされる。このように機械学習モデルを再トレーニングすることにより、コンピューティング・ジョブの実行時間の予測が時間の経過と共により正確になる。
【0010】
他の例示的な実施形態では、コンピュータ可読プログラムを有するコンピュータ使用可能または可読媒体を含むコンピュータ・プログラム製品を提供する。コンピュータ可読プログラムは、コンピューティング・デバイス上で実行された場合に、コンピューティング・デバイスに、この例示的な実施形態では、複数の実行環境のうちの各実行環境について、コンピューティング・ジョブの実行コンテキスト情報および主要パラメータと、実行環境の実行環境情報とに一致する既存の機械学習モデルのセットを適用することによって、実行環境におけるコンピューティング・ジョブの実行時間を予測することと、機械学習モデルの予測された実行時間を集約することによって、実行環境におけるコンピューティング・ジョブの集約された予測された実行時間を形成することと、を実行させる。この例示的な実施形態では、複数の実行環境に関するコンピューティング・ジョブの集約された予測された実行時間がまとめられる。この例示的な実施形態は、コンピューティング・ジョブの集約された予測された実行時間のまとめに基づく複数の実行環境からの実行環境の選択に応答して、選択された実行環境においてコンピューティング・ジョブを実行する。この例示的な実施形態は、選択された実行環境におけるコンピューティング・ジョブの実行中に関連データを収集する。このように、全ての利用可能な候補実行環境におけるコンピューティング・ジョブの推定実行時間を提供することにより、この例示的な実施形態は、リソースの無駄も追加コストもなしで、適切な実行環境を性能に基づいて選択するためのコンピュータ・プログラム製品を提供する。
【0011】
この例示的な実施形態では、複数の実行環境からの実行環境の選択は、ユーザ選択または事前定義されたユーザ設定に基づく自動選択のいずれかによる、コンピューティング・ジョブの集約された予測された実行時間のまとめに基づくものである。これにより、ユーザによって制御されるシステムまたは完全に自動化されたシステムの利点が提供される。さらに、この例示的な実施形態では、実行コンテキスト情報は、入力データのサイズ、フィールドの数、カテゴリ・フィールドの数、連続フィールドの数、カテゴリ・フィールドの単変量統計、連続フィールドの単変量統計、メタデータ、およびパラメータを含むグループから選択され、主要パラメータは、コンピューティング・ジョブに関する実行コンテキスト情報に関連付けられた値に基づいて識別され、実行環境情報は、プロセッサの数、プロセッサの特徴、メモリ・サイズ、ソフトウェア開発情報、およびオペレーティング・システム情報を含むグループから選択される。コンピューティング・ジョブの実行時間を予測するためのコンポーネントに幅広い柔軟性を提供することにより、適切な実行環境を識別する際のユーザの柔軟性がもたらされる。
【0012】
この例示的な実施形態では、既存の機械学習モデルのセットは、コンピュータ可読プログラムがコンピューティング・デバイスに、複数のテスト・ケースに関する実行コンテキスト情報を収集することと、複数のテスト・ケースに関する実行コンテキスト情報のそれぞれに関連付けられた値を使用して主要パラメータを識別することと、複数の実行環境のそれぞれに関する実行環境情報を収集することと、複数のテスト・ケースのそれぞれに関する収集された実行コンテキスト情報と、複数の実行環境のそれぞれに関する実行環境情報とを利用して、複数の実行環境のうちの各実行環境において複数のテスト・ケース内の各テスト・ケースを実行することと、関連する実行環境における各テスト・ケースの実行時間と、関連するテスト・ケースの実行コンテキストとの間の関係に基づいて機械学習モデルのセットを生成することと、機械学習モデルのセット内の各機械学習モデルに初期重みを割り当てることと、をさらに実行させることによって生成される。さらに、この例示的な実施形態では、複数の実行環境のうちの各実行環境のための機械学習モデルのセットは、テスト・ケースの実行コンテキスト情報、テスト・ケースの実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てを使用する1つのベース機械学習モデルと、テスト・ケースの実行コンテキスト情報、テスト・ケースの実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てではなく一部を含む、少なくとも1つのライト機械学習モデルと、を含む。このように機械学習モデルを生成することにより、リアルタイムに利用される場合の、コンピューティング・ジョブの実行時間を予測する際の精度が高まる。
【0013】
例示的な実施形態では、コンピュータ可読プログラムは、コンピューティング・ジョブを実行するための実行環境を識別する際に利用される機械学習モデルのセットを更新することを、コンピューティング・デバイスに、選択された実行環境に関して収集された関連データをデータ・キャッシュに追加することと、データ・キャッシュ内のレコードの数が第1の所定の値より大きいことに応答して、キャッシュされたデータに基づいてモデル精度を計算することと、計算されたモデル精度に基づいてライト機械学習モデルの重みを調整することによって、機械学習モデルのセット内の少なくとも1つのライト機械学習モデルを再トレーニングすることと、データ・キャッシュ内のレコードの数が第2の所定の値より大きいことに応答して、機械学習モデルのセット内のベース・モデルの精度が事前定義された閾値(Tacc)未満であるか否かを判定することと、ベース・モデルの精度が事前定義された閾値(Tacc)未満であることに応答して、キャッシュされたデータを使用して新しいベース機械学習モデルを生成することと、関連する実行環境のための既存のベース機械学習モデルを、機械学習モデルのセット内の関連する実行環境のための新しく生成されたベース機械学習モデルに置き換えることと、をさらに実行させることによって行う。例示的な実施形態では、実行環境に関連付けられた新しく生成されたベース機械学習モデルおよびライト機械学習モデルのそれぞれは、新しい重みを割り当てることによって再トレーニングされる。このように機械学習モデルを再トレーニングすることにより、コンピューティング・ジョブの実行時間の予測が時間の経過と共により正確になる。
【0014】
さらに他の例示的な実施形態では、システム/装置を提供する。このシステム/装置は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合されたメモリとを含み得る。メモリは命令を含み得、命令は、1つまたは複数のプロセッサによって実行された場合に、1つまたは複数のプロセッサに、この例示的な実施形態では、複数の実行環境のうちの各実行環境について、コンピューティング・ジョブの実行コンテキスト情報および主要パラメータと、実行環境の実行環境情報とに一致する既存の機械学習モデルのセットを適用することによって、実行環境におけるコンピューティング・ジョブの実行時間を予測することと、機械学習モデルの予測された実行時間を集約することによって、実行環境におけるコンピューティング・ジョブの集約された予測された実行時間を形成することと、を実行させる。この例示的な実施形態では、複数の実行環境に関するコンピューティング・ジョブの集約された予測された実行時間がまとめられる。この例示的な実施形態は、コンピューティング・ジョブの集約された予測された実行時間のまとめに基づく複数の実行環境からの実行環境の選択に応答して、選択された実行環境においてコンピューティング・ジョブを実行する。この例示的な実施形態では、選択された実行環境におけるコンピューティング・ジョブの実行中に関連データが収集される。このように、全ての利用可能な候補実行環境におけるコンピューティング・ジョブの推定実行時間を提供することにより、この例示的な実施形態は、リソースの無駄も追加コストもなしで、適切な実行環境を性能に基づいて選択するためのシステム/装置を提供する。
【0015】
この例示的な実施形態では、複数の実行環境からの実行環境の選択は、ユーザ選択または事前定義されたユーザ設定に基づく自動選択のいずれかによる、コンピューティング・ジョブの集約された予測された実行時間のまとめに基づくものである。これにより、ユーザによって制御されるシステムまたは完全に自動化されたシステムの利点が提供される。さらに、この例示的な実施形態では、実行コンテキスト情報は、入力データのサイズ、フィールドの数、カテゴリ・フィールドの数、連続フィールドの数、カテゴリ・フィールドの単変量統計、連続フィールドの単変量統計、メタデータ、およびパラメータを含むグループから選択され、主要パラメータは、コンピューティング・ジョブに関する実行コンテキスト情報に関連付けられた値に基づいて識別され、実行環境情報は、プロセッサの数、プロセッサの特徴、メモリ・サイズ、ソフトウェア開発情報、およびオペレーティング・システム情報を含むグループから選択される。コンピューティング・ジョブの実行時間を予測するためのコンポーネントに幅広い柔軟性を提供することにより、適切な実行環境を識別する際のユーザの柔軟性がもたらされる。
【0016】
この例示的な実施形態では、既存の機械学習モデルのセットは、命令がプロセッサに、複数のテスト・ケースに関する実行コンテキスト情報を収集することと、複数のテスト・ケースに関する実行コンテキスト情報のそれぞれに関連付けられた値を使用して主要パラメータを識別することと、複数の実行環境のそれぞれに関する実行環境情報を収集することと、複数のテスト・ケースのそれぞれに関する収集された実行コンテキスト情報と、複数の実行環境のそれぞれに関する実行環境情報とを利用して、複数の実行環境のうちの各実行環境において複数のテスト・ケース内の各テスト・ケースを実行することと、関連する実行環境における各テスト・ケースの実行時間と、関連するテスト・ケースの実行コンテキストとの間の関係に基づいて機械学習モデルのセットを生成することと、機械学習モデルのセット内の各機械学習モデルに初期重みを割り当てることと、をさらに実行させることによって生成される。さらに、この例示的な実施形態では、複数の実行環境のうちの各実行環境のための機械学習モデルのセットは、テスト・ケースの実行コンテキスト情報、テスト・ケースの実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てを使用する1つのベース機械学習モデルと、テスト・ケースの実行コンテキスト情報、テスト・ケースの実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てではなく一部を含む、少なくとも1つのライト機械学習モデルと、を含む。このように機械学習モデルを生成することにより、リアルタイムに利用される場合の、コンピューティング・ジョブの実行時間を予測する際の精度が高まる。
【0017】
この例示的な実施形態では、命令は、コンピューティング・ジョブを実行するための実行環境を識別する際に利用される機械学習モデルのセットを更新することを、プロセッサに、選択された実行環境に関して収集された関連データをデータ・キャッシュに追加することと、データ・キャッシュ内のレコードの数が第1の所定の値より大きいことに応答して、キャッシュされたデータに基づいてモデル精度を計算することと、計算されたモデル精度に基づいてライト機械学習モデルの重みを調整することによって、機械学習モデルのセット内の少なくとも1つのライト機械学習モデルを再トレーニングすることと、データ・キャッシュ内のレコードの数が第2の所定の値より大きいことに応答して、機械学習モデルのセット内のベース・モデルの精度が事前定義された閾値(Tacc)未満であるか否かを判定することと、ベース・モデルの精度が事前定義された閾値(Tacc)未満であることに応答して、キャッシュされたデータを使用して新しいベース機械学習モデルを生成することと、関連する実行環境のための既存のベース機械学習モデルを、機械学習モデルのセット内の関連する実行環境のための新しく生成されたベース機械学習モデルに置き換えることと、をさらに実行させることによって行う。例示的な実施形態では、実行環境に関連付けられた新しく生成されたベース機械学習モデルおよびライト機械学習モデルのそれぞれは、新しい重みを割り当てることによって再トレーニングされる。このように機械学習モデルを再トレーニングすることにより、コンピューティング・ジョブの実行時間の予測が時間の経過と共により正確になる。
【0018】
さらに他の例示的な実施形態では、データ処理システムにおいて、コンピューティング・ジョブを実行するための実行環境をインテリジェントに識別するための方法を提供する。例示的な実施形態は、複数の実行環境のうちの各実行環境におけるコンピューティング・ジョブの集約された予測された実行時間を特定する。例示的な実施形態は、コンピューティング・ジョブの集約された予測された実行時間のまとめに基づく複数の実行環境からの実行環境の選択に応答して、選択された実行環境においてコンピューティング・ジョブを実行する。例示的な実施形態は、選択された実行環境におけるコンピューティング・ジョブの実行中に関連データを収集する。このように、全ての利用可能な候補実行環境におけるコンピューティング・ジョブの推定実行時間を提供することにより、例示的な実施形態は、リソースの無駄も追加コストもなしで、適切な実行環境を性能に基づいて選択するための方法を提供する。
【0019】
他の例示的な実施形態では、コンピュータ可読プログラムを有するコンピュータ使用可能または可読媒体を含むコンピュータ・プログラム製品を提供する。コンピュータ可読プログラムは、コンピューティング・デバイス上で実行された場合に、コンピューティング・デバイスに、この例示的な実施形態では、複数の実行環境のうちの各実行環境におけるコンピューティング・ジョブの集約された予測された実行時間を特定させる。この例示的な実施形態では、コンピューティング・ジョブの集約された予測された実行時間のまとめに基づく複数の実行環境からの実行環境の選択に応答して、選択された実行環境においてコンピューティング・ジョブが実行される。この例示的な実施形態では、選択された実行環境におけるコンピューティング・ジョブの実行中に関連データが収集される。このように、全ての利用可能な候補実行環境におけるコンピューティング・ジョブの推定実行時間を提供することにより、例示的な実施形態は、リソースの無駄も追加コストもなしで、適切な実行環境を性能に基づいて選択するためのコンピュータ・プログラム製品を提供する。
【0020】
本発明のこれらおよび他の特徴および利点は、本発明の例示的な実施形態の以下の詳細な説明に記載することにし、またはそれを考慮すれば当業者に明らかになるであろう。
【0021】
本発明のみならず、その好ましい使用形態ならびにさらなる目的および利点は、例示的な実施形態の以下の詳細な説明を参照して、添付の図面と併せて読んだ場合に最もよく理解されよう。
【図面の簡単な説明】
【0022】
図1】例示的な実施形態の態様が実装され得る分散データ処理システムの例示的な図である。
図2】例示的な実施形態の態様が実装され得るコンピューティング・デバイスの例示的なブロック図である。
図3】1つの例示的な実施形態による、コンピューティング・ジョブの実行のための実行環境をインテリジェントに識別するためのデータ処理システムの機能ブロック図の一例を示す図である。
図4】1つの例示的な実施形態による、新しいコンピューティング・ジョブの実行のための実行環境を識別する際にインテリジェント実行環境識別メカニズムによって実行される動作のフロー図の一例を示す図である。
図5】1つの例示的な実施形態による、実行環境の実行時間を予測する際にインテリジェント実行環境識別メカニズムの実行時間推定エンジンによって使用される既存の機械学習モデルのセットを生成する際に実行される動作のフロー図の一例を示す図である。
図6】1つの例示的な実施形態による、新しいコンピューティング・ジョブの実行のための実行環境を識別する際に実行環境選択エンジンによって利用される機械学習モデルを更新する際に機械学習モデル更新エンジンによって実行される動作のフロー図の一例を示す図である。
【発明を実施するための形態】
【0023】
前述のように、データ処理システムの実行環境には、通常、実行フロー内にいくつかのノードが存在し、各ノードは入力データに対して特定の動作を実行し、出力データを生成し、出力データは下流のノードによって利用されるか、または最終的な結果として提示され得る。現在、ユーザは、コンピューティング・ジョブの実行を完了するのに必要なノードに基づいてコンピューティング・ジョブの実行フローを識別し、次いで、コンピューティング・ジョブの実行環境を経験および予想に基づいて選択して、コンピューティング・ジョブの実行フローを実行している。しかしながら、ユーザの経験が不足している場合、またはコンピューティング・ジョブの実行フローが複雑である場合、コンピューティング・ジョブの実行環境を正しく選択することが困難になり得る。たとえば、コンピューティング・ジョブの実行フローが軽量である場合、選択された実行環境が大規模であれば、リソースの無駄が発生し、コストが増加し得る。さらなる例として、コンピューティング・ジョブの実行フローが重く、選択された実行環境が小規模である場合、コンピューティング・ジョブの実行時間は長すぎになり得る。
【0024】
したがって、例示的な実施形態は、コンピューティング・ジョブを実行するための実行環境をインテリジェントに識別するためのメカニズムを提供する。このメカニズムは、ジョブの実行時間および実行コンテキスト、たとえば、実行環境、入力データ情報、主要パラメータなどの間の関係を反映するように機械学習モデルを構築する。次いで、このメカニズムは、実際のコンピューティング・ジョブの実行の前に、実行環境と実行時間とのいくつかの組合せを選択用のオプションとして提供するために、複数の実行環境内の各実行環境の機械学習モデルに基づいて、複数の実行環境のうちの各候補実行環境におけるコンピューティング・ジョブの実行フローを実行するための実行時間を推定する。すなわち、このメカニズムは、ジョブの規模(重いか軽いか)と、全ての利用可能な候補実行環境での推定実行時間とをユーザに通知して、ユーザが適切な実行環境を性能に基づいて選択し得るようにし、またはこのメカニズムが事前定義されたユーザ設定に基づいて実行環境を自動的に選択し得るようにしてもよい。選択された実行環境における各コンピューティング・ジョブの実行後に、このメカニズムは実行情報を収集し、関連付けられた機械学習モデルをリフレッシュする。
【0025】
例示的な実施形態の様々な態様と、例示的な実施形態によって実行される改良されたコンピュータ動作との議論を始める前に、本説明全体を通して、「メカニズム」という用語は、様々な動作、機能などを実行する本発明の要素を指すために使用することを最初に理解されたい。「メカニズム」とは、この用語を本明細書で使用する場合、装置、手順、またはコンピュータ・プログラム製品の形態での例示的な実施形態の機能または態様の実装であり得る。手順の場合、手順は1つまたは複数のデバイス、装置、コンピュータ、データ処理システムなどによって実装される。コンピュータ・プログラム製品の場合、コンピュータ・プログラム製品内またはコンピュータ・プログラム製品上に具現化されるコンピュータ・コードまたは命令によって表されるロジックは、機能を実装するか、または特定の「メカニズム」に関連する動作を実行するために、1つまたは複数のハードウェア・デバイスによって実行される。このように、本明細書に記載のメカニズムは、専用ハードウェア、ハードウェア上で実行されることによって、ハードウェアが本来実行できない本発明の特別な機能を実装するようにハードウェアを構成するソフトウェア、命令をハードウェアですぐに実行できるようにして、本明細書に記載した列挙した機能および特定のコンピュータ動作を実行するようにハードウェアを特別に構成する、媒体に記憶されたソフトウェア命令、機能を実行するための手順または方法、あるいは上記のいずれかの組合せとして実装され得る。
【0026】
本説明および特許請求の範囲では、例示的な実施形態の特定の特徴および要素に関して、「1つの(a)」、「のうちの少なくとも1つ(at least one of)」、および「のうちの1つまたは複数(one or more of)」という用語を使用し得る。これらの用語および句は、特定の例示的な実施形態に存在する特定の特徴または要素のうちの少なくとも1つが存在するが、2つ以上が存在することもできるということを述べることを意図していることを理解されたい。すなわち、これらの用語/句は、本説明または特許請求の範囲を単一の特徴/要素の存在に限定することも、複数のそのような特徴/要素の存在を必要とすることも意図するものではない。反対に、これらの用語/句は、少なくとも単一の特徴/要素のみを必要とし、本説明および特許請求の範囲内で複数のそのような特徴/要素が存在する可能性がある。
【0027】
さらに、「エンジン」という用語の使用は、本発明の実施形態および特徴の説明に関して本明細書で使用する場合、エンジンに起因する、またはエンジンによって実行される、あるいはその両方であるアクション、ステップ、プロセスなどを実現または実行あるいはその両方を行うための特定の実装を限定することを意図していないことを理解されたい。エンジンは、機械可読メモリにロードまたは記憶され、プロセッサによって実行される適切なソフトウェアと組み合わせた汎用または専用あるいはその両方であるプロセッサの使用を含むがこれに限定されない指定された機能を実行するソフトウェア、ハードウェア、および/またはファームウェア、あるいはそれらの任意の組合せであり得るが、これらに限定されない。さらに、特定のエンジンに関連付けられた名前は、特に明記していない限り、参照の便宜を目的としたものであり、特定の実装に限定することを意図したものではない。さらに、エンジンに起因する機能は、複数のエンジンによって同等に実行され、同じまたは異なるタイプの他のエンジンの機能に組み込まれ、もしくはこれと組み合わせられ、またはその両方が行われ、あるいは様々な構成の1つまたは複数のエンジンに分散され得る。
【0028】
さらに、以下の説明では、例示的な実施形態の様々な要素に関する複数の様々な例を使用して、例示的な実施形態の例示的な実装をさらに説明し、例示的な実施形態のメカニズムの理解を支援することを理解されたい。これらの例は、非限定的であることを意図しており、例示的な実施形態のメカニズムを実装するための様々な可能性を網羅するものではない。本説明に照らして、これらの様々な要素には、本発明の範囲から逸脱することなく、本明細書で提供する例に加えて、またはそれらの代わりに利用され得る他の多くの代替的実装が存在することが当業者には明らかであろう。
【0029】
このように、例示的な実施形態は、多くの異なるタイプのデータ処理環境で利用され得る。例示的な実施形態の特定の要素および機能の説明用のコンテキストを提供するために、以下、例示的な実施形態の態様が実装され得る例示的な環境として図1および図2を提供する。図1および図2は例にすぎず、本発明の態様または実施形態が実装され得る環境に関するいかなる限定も主張または暗示することを意図していないことを理解されたい。本発明の範囲から逸脱することなく、図示した環境に対する多くの修正が行われ得る。
【0030】
図1は、例示的な実施形態の態様が実装され得る例示的な分散データ処理システムの図解を示している。分散データ処理システム100は、例示的な実施形態の態様が実装され得るコンピュータのネットワークを含み得る。分散データ処理システム100は少なくとも1つのネットワーク102を含み、これは分散データ処理システム100内で相互に接続された様々なデバイスおよびコンピュータの間に通信リンクを提供するために使用される媒体である。ネットワーク102は、たとえば、ワイヤ、無線通信リンク、光ファイバ・ケーブルなどの接続を含み得る。
【0031】
図示の例では、サーバ104およびサーバ106が、ストレージ・ユニット108と共にネットワーク102に接続されている。さらに、クライアント110、112、および114もネットワーク102に接続されている。これらのクライアント110、112、および114は、たとえば、パーソナル・コンピュータ、ネットワーク・コンピュータなどであり得る。図示の例では、サーバ104は、たとえば、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーション、すなわち実行環境などのデータをクライアント110、112、および114に提供する。クライアント110、112、および114は、図示の例では、サーバ104のクライアントである。分散データ処理システム100は、追加のサーバ、クライアント、ならびに図示していない他のデバイスを含み得る。
【0032】
図示の例では、分散データ処理システム100はインターネットであり、ネットワーク102は、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)のプロトコル・スイートを使用して相互に通信するネットワークおよびゲートウェイの世界規模の集合体を表す。インターネットの中心には、データおよびメッセージをルーティングする数千の商用の、政府の、教育の、および他のコンピュータ・システムからなる主要なノードまたはホスト・コンピュータ間の高速データ通信回線のバックボーンがある。当然ながら、分散データ処理システム100はまた、たとえば、イントラネット、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)などの、いくつかの異なるタイプのネットワークを含むように実装され得る。上記のように、図1は本発明の異なる実施形態に対するアーキテクチャ上の限定としてではなく、一例として意図しており、したがって、図1に示す特定の要素は、本発明の例示的な実施形態が実装され得る環境に関する限定と見なされるべきではない。
【0033】
図1に示すように、コンピューティング・デバイスのうちの1つまたは複数、たとえば、サーバ104は、インテリジェント実行環境識別メカニズムを実装するように特別に構成され得る。コンピューティング・デバイスを構成することは、例示的な実施形態に関して本明細書で説明する動作の実行および出力の生成を容易にするために、特定用途向けのハードウェア、ファームウェアなどを提供することを含み得る。コンピューティング・デバイスを構成することはさらに、または代わりに、例示的な実施形態に関して本明細書に説明する動作を実行し、出力を生成するようにプロセッサを構成するソフトウェア・アプリケーションをコンピューティング・デバイスの1つまたは複数のハードウェア・プロセッサに実行させるための、1つまたは複数のストレージ・デバイスに記憶され、サーバ104などのコンピューティング・デバイスのメモリにロードされるソフトウェア・アプリケーションを提供することを含み得る。さらに、例示的な実施形態の範囲から逸脱することなく、特定用途向けのハードウェア、ファームウェア、ハードウェア上で実行されるソフトウェア・アプリケーションなどの任意の組合せが使用され得る。
【0034】
コンピューティング・デバイスがこれらの方法のうちの1つで構成されると、コンピューティング・デバイスは、例示的な実施形態のメカニズムを実装するように特別に構成される専用のコンピューティング・デバイスになり、汎用コンピューティング・デバイスではないことを理解されたい。さらに、後述するように、例示的な実施形態のメカニズムを実装することにより、コンピューティング・デバイスの機能が改善し、コンピューティング・ジョブの実行のための実行環境をインテリジェントに識別することを容易にする有用で具体的な成果が提供される。
【0035】
上記のように、例示的な実施形態のメカニズムは、特別に構成されるコンピューティング・デバイスまたはデータ処理システムを利用して、コンピューティング・ジョブの実行のための実行環境をインテリジェントに識別するための動作を行う。これらのコンピューティング・デバイスまたはデータ処理システムは、本明細書に記載のシステム/サブシステムのうちの1つまたは複数を実装するように、ハードウェア構成、ソフトウェア構成、またはハードウェアおよびソフトウェア構成の組合せのいずれかによって、特別に構成される様々なハードウェア要素を含み得る。図2は、例示的な実施形態の態様が実装され得る、ほんの一例のデータ処理システムのブロック図である。データ処理システム200は、図1のサーバ104などのコンピュータの一例であり、本発明の例示的な実施形態のプロセスおよび態様を実装するコンピュータ使用可能コードまたは命令が、本明細書に記載の例示的な実施形態の動作、出力、および外部効果を実現するように配置され、または実行され、あるいはその両方が行われ得る。
【0036】
図示の例では、データ処理システム200は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)202と、サウスブリッジおよび入力/出力(I/O)コントローラ・ハブ(SB/ICH)204とを含むハブ・アーキテクチャを利用している。処理ユニット206、メイン・メモリ208、およびグラフィック・プロセッサ210は、NB/MCH202に接続されている。グラフィック・プロセッサ210は、アクセラレーテッド・グラフィック・ポート(AGP)を介してNB/MCH202に接続され得る。
【0037】
図示の例では、ローカル・エリア・ネットワーク(LAN)アダプタ212はSB/ICH204に接続する。オーディオ・アダプタ216、キーボードおよびマウス・アダプタ220、モデム222、読み取り専用メモリ(ROM)224、ハード・ディスク・ドライブ(HDD)226、CD-ROMドライブ230、ユニバーサル・シリアル・バス(USB)ポートおよび他の通信ポート232、ならびにPCI/PCIe(R)デバイス234は、バス238およびバス240を介してSB/ICH204に接続する。PCI/PCIe(R)デバイスには、たとえば、Ethernet(R)アダプタ、アドイン・カード、およびノートブック・コンピュータ用のPCカードが含まれ得る。PCIはカード・バス・コントローラを使用するが、PCIe(R)は使用しない。ROM224は、たとえば、フラッシュ基本入力/出力システム(BIOS)であり得る。
【0038】
HDD226およびCD-ROMドライブ230は、バス240を介してSB/ICH204に接続する。HDD226およびCD-ROMドライブ230は、たとえば、統合ドライブ・エレクトロニクス(IDE)またはシリアル・アドバンスト・テクノロジー・アタッチメント(SATA)インターフェースを使用し得る。スーパーI/O(SIO)デバイス236は、SB/ICH204に接続され得る。
【0039】
オペレーティング・システムは、処理ユニット206上で動作する。オペレーティング・システムは、図2のデータ処理システム200内の様々なコンポーネントを調整し、それらの制御を提供する。クライアントとして、オペレーティング・システムは、Microsoft(R)Windows(R)10(R)などの市販のオペレーティング・システムであり得る。Java(R)(TM)プログラミング・システムなどのオブジェクト指向プログラミング・システムは、オペレーティング・システムと連動して動作し得、データ処理システム200上で実行されるJava(R)(TM)プログラムまたはアプリケーションからオペレーティング・システムへの呼び出しを提供する。
【0040】
サーバとして、データ処理システム200は、たとえば、アドバンスト・インタラクティブ・エグゼクティブ(AIX(R))オペレーティング・システムまたはLINUX(R)オペレーティング・システムを動作させるIBM(R)eServer(TM)System p(R)コンピュータ・システム、Power(TM)プロセッサ・ベースのコンピュータ・システムなどであり得る。データ処理システム200は、処理ユニット206内に複数のプロセッサを含む対称型マルチプロセッサ(SMP:symmetric multiprocessor)システムであり得る。あるいは、単一のプロセッサ・システムが利用され得る。
【0041】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムに関する命令は、HDD226などのストレージ・デバイス上に配置され、処理ユニット206による実行のためにメイン・メモリ208にロードされ得る。本発明の例示的な実施形態のプロセスは、たとえば、メイン・メモリ208、ROM224などのメモリに、あるいは1つまたは複数の周辺デバイス226および230に配置され得るコンピュータ使用可能プログラム・コードを使用して、処理ユニット206によって実行され得る。
【0042】
図2に示すバス238またはバス240などのバス・システムは、1つまたは複数のバスで構成され得る。当然ながら、バス・システムは、任意のタイプの通信ファブリックまたはアーキテクチャを使用して実装され得、これにより、ファブリックまたはアーキテクチャに接続された異なるコンポーネントまたはデバイス間でのデータの転送が提供される。図2のモデム222またはネットワーク・アダプタ212などの通信ユニットは、データを送信および受信するために使用される1つまたは複数のデバイスを含み得る。メモリは、たとえば、メイン・メモリ208、ROM224、または図2のNB/MCH202に見られるようなキャッシュであり得る。
【0043】
上記のように、いくつかの例示的な実施形態では、例示的な実施形態のメカニズムは、特定用途向けのハードウェア、ファームウェアなど、HDD226などのストレージ・デバイスに記憶され、メイン・メモリ208などのメモリにロードされ、処理ユニット206などの1つまたは複数のハードウェア・プロセッサによって実行されるアプリケーション・ソフトウェアなどとして実装され得る。したがって、図2に示すコンピューティング・デバイスは、例示的な実施形態のメカニズムを実装するように特別に構成され、コンピューティング・ジョブの実行のための実行環境をインテリジェントに識別するためのメカニズムに関して本明細書に記載した動作を実行し、出力を生成するように特別に構成されるようになる。
【0044】
当業者は、図1および図2のハードウェアが実装によって異なり得ることを理解するであろう。図1および図2に示すハードウェアに加えて、またはその代わりに、フラッシュ・メモリ、同等の不揮発性メモリ、または光学ディスク・ドライブなどの他の内蔵ハードウェアまたは周辺デバイスが使用され得る。また、例示的な実施形態のプロセスは、本発明の範囲から逸脱することなく、前述のSMPシステム以外のマルチプロセッサ・データ処理システムに適用され得る。
【0045】
さらに、データ処理システム200は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、電話または他の通信デバイス、パーソナル・デジタル・アシスタント(PDA)などを含むいくつかの異なるデータ処理システムのうちのいずれかの形態をとり得る。いくつかの例示的な例では、データ処理システム200は、たとえば、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方を記憶するための不揮発性メモリを提供するようにフラッシュ・メモリを用いて構成されるポータブル・コンピューティング・デバイスであり得る。本質的に、データ処理システム200は、アーキテクチャ上の制限のない、任意の知られているまたは今後開発されるデータ処理システムであり得る。
【0046】
例示的な実施形態は、多くの異なるタイプのデータ処理環境で利用され得る。例示的な実施形態の特定の要素および機能の説明用のコンテキストを提供するために、例示的な実施形態の態様が実装され得る例示的な環境として図1および図2を提供する。図1および図2は例にすぎず、本発明の態様または実施形態が実装され得る環境に関するいかなる限定も主張または暗示することを意図していないことを理解されたい。本発明の範囲から逸脱することなく、図示した環境に対する多くの修正が行われ得る。
【0047】
1つの例示的な実施形態によれば、図1および図2は、例示的な実施形態のメカニズムが実装される要求処理パイプライン、要求処理方法論、および要求処理コンピュータ・プログラム製品を実装する、コンピューティング・ジョブの実行のための実行環境をインテリジェントに識別するための例示的なコグニティブ・システムを説明することを目的としている。これらの要求は、構造化もしくは非構造化要求メッセージ、自然言語の質問、またはコグニティブ・システムによって実行される動作を要求するための他の任意の適切な形式として提供され得る。以降でより詳細に説明するように、本発明のコグニティブ・システムで実装される特定のアプリケーションは、コンピューティング・ジョブの実行のための実行環境をインテリジェントに識別するためのアプリケーションである。
【0048】
概要として、コグニティブ・システムは、(ソフトウェアがその上で実行されるハードウェア・ロジックと組み合わせた)ハードウェアまたはソフトウェアあるいはその両方のロジックで構成される専用のコンピュータ・システムまたはコンピュータ・システムのセットである。コグニティブ・システムは、たとえば、自然言語処理(NLP)ベースのロジックなどの人工知能ロジックと、専用のハードウェア、ハードウェア上で実行されるソフトウェア、または専用のハードウェアとハードウェア上で実行されるソフトウェアとの任意の組合せとして提供され得る機械学習ロジックとを含む。コグニティブ・システムのロジックは認知動作を実装し、その例には、要求処理、実行環境およびそれらの能力の識別、インテリジェント検索アルゴリズムなどが含まれるが、これらに限定されない。
【0049】
図3は、1つの例示的な実施形態による、コンピューティング・ジョブの実行のための実行環境をインテリジェントに識別するためのデータ処理システムの機能ブロック図の一例を示している。図1のクライアント110、112、または114などのクライアント・デバイス上で動作する図2のデータ処理システム200などのデータ処理システムであるデータ処理システム300は、図1のサーバ104または106などの複数の実行環境304a、304b、...、304nに通信可能に結合されたインテリジェント実行環境識別メカニズム302を含む。複数の実行環境304a~304nから最適な実行環境を識別するために、インテリジェント実行環境識別メカニズム302は、機械学習モデル生成メカニズム306、実行時間推定エンジン314、実行環境選択エンジン316、および機械学習モデル更新エンジン318を含む。
【0050】
インテリジェント実行環境識別メカニズム302が初期化されると、機械学習モデル生成メカニズム306は、複数の実行環境304a~304nのそれぞれのための複数の機械学習モデル320を生成する。複数の実行環境304a~304n内の各実行環境のための複数の機械学習モデル320内の各機械学習モデルは、特定のコンピューティング・ジョブの入力データの特徴と、実行環境の特徴とに基づいて、実行環境における特定のコンピューティング・ジョブの実行をモデル化する。各実行環境のための各機械学習モデルを生成するために、機械学習モデル生成メカニズム306内の実行コンテキスト識別エンジン308は、複数のテスト・ケースに関する実行コンテキスト情報を収集する。複数のテスト・ケースは、実行環境を形成するノードの全てまたは一部分を使用して実行環境の機能を正確にテストするために各実行環境内のノードの能力の全てまたは一部分をテストする様々な入力データをカバーする。このため、実行コンテキスト識別エンジン308は、入力データのサイズ、フィールドの数、カテゴリ・フィールドの数、連続フィールドの数、カテゴリ数、各カテゴリの割合などのカテゴリ・フィールドの単変量統計、最小値、最大値、平均値、標準偏差、分散、標準誤差などの連続フィールドの単変量統計、メタデータ、パラメータなどが含まれ得るがこれらに限定されないテスト・ケースのそれぞれに関する実行コンテキスト情報を収集する。収集されると、実行コンテキスト識別エンジン308は、必要に応じて、入力データとも呼ばれ得る実行コンテキスト情報を変換し得る。一実施形態では、実行コンテキスト識別エンジン308は、特徴スケーリングを実行し、次いで、等幅間隔内の値の数をカウントし得る。他の実施形態では、実行コンテキスト識別エンジン308は、連続変数をカテゴリ変数に変換するためにビニングを実行し得る。一実施形態では、実行コンテキスト識別エンジン308は、カテゴリ変数のカテゴリの数を減らすためにマージを実行し得る。次いで、実行コンテキスト識別エンジン308は、実行コンテキスト情報のそれぞれに関連付けられた値を特定して、機械学習モデルの生成における主要パラメータを提供する。
【0051】
さらに、各実行環境のための各機械学習モデルを生成するために、機械学習モデル生成メカニズム306内の実行環境識別エンジン310は、複数の実行環境304a~304nのそれぞれに関する実行環境情報を収集する。このため、実行環境識別エンジン310は、プロセッサの数、プロセッサの特徴、メモリ・サイズ、ソフトウェア開発情報、オペレーティング・システム情報などが含まれ得るがこれらに限定されない、テスト・ケースのそれぞれに関する実行環境情報を収集する。
【0052】
複数のテスト・ケースのそれぞれに関する収集された実行コンテキスト情報と、複数の実行環境304a~304nのそれぞれに関する実行環境情報とを利用して、機械学習モデル生成メカニズム306内の機械学習モデル生成エンジン312は、複数のテスト・ケース内の各テスト・ケースを、そのテスト・ケースを実行する可能性のある複数の実行環境304a~304nのうちの各実行環境において実施する。すなわち、特定の実行環境の能力と、実行コンテキスト情報の要件とに基づいて、複数の実行環境304a~304nのうちの1つまたは複数は特定のテスト・ケースを実行できない場合がある。このため、その特定の実行環境のための機械学習モデルは、そのテスト・ケースの下では確立されない。しかしながら、複数のテスト・ケース内のテスト・ケースを実行することができる複数の実行環境304a~304n内の各実行環境について、機械学習モデル生成メカニズム306は、テスト・ケースを実施し、テスト・ケースの実行時間を記録する。
【0053】
全てのテスト・ケースが実行されると、機械学習モデル生成エンジン312は、実行環境におけるテスト・ケースの実行時間と、関連するテスト・ケースの実行コンテキストとの間の関係について、線形回帰モデル、回帰木モデルなどの機械学習モデルのセットを生成する。1つの例示的な実施形態では、モデルは、
Y=f(X)
であり得、ここで、Yは実行時間であり、Xは実行情報(実行コンテキスト情報および実行環境情報)であり、f(X)はモデルである。機械学習モデル生成エンジン312は、収集された全ての情報、すなわち、実行コンテキスト情報、実行コンテキスト情報のそれぞれに関連付けられた値、および実行環境情報の全てを予測子(predictor)として使用して、1つのベース機械学習モデルBMを生成する。1つのベース機械学習モデルBMを生成することに加えて、機械学習モデル生成エンジン312は、収集された情報の一部分、すなわち、実行コンテキスト情報、実行コンテキスト情報のそれぞれに関連付けられた値、および実行環境情報の全てではなく一部を予測子として使用して、N個のライト機械学習モデルLMを生成する(たとえば、N=5の場合、機械学習モデル生成エンジン312は、LM1、LM2、LM3、LM4、およびLM5を生成する)。1つの例示的な実施形態では、数Nは、予測子の数の平方根を取ることによって決定され得る。1つの例示的な実施形態では、収集された情報の一部分には、プロセッサの数、メモリ・サイズなどの固定の主要予測子、およびメタデータ、パラメータなどの任意選択の予測子が含まれ得る。
【0054】
ベース機械学習モデルBMおよびライト機械学習モデルLM1~LMのそれぞれについて、機械学習モデル生成エンジン312は、BMに対して初期重みWBMを割り当て、LMに対してWLMを割り当てる。一例では、機械学習モデル生成エンジン312は、以下のような重みを割り当て得る。
・WBM=w1 ここで、0<w1<1
・WLMn=(1-w1)/N
この例では、N=5およびw1=0.5の場合、重みは次のようになる。
・WBM=0.5
・WLM1=0.1
・WLM2=0.1
・WLM3=0.1
・WLM4=0.1
・WLM5=0.1
他の例示的な実施形態では、機械学習モデル生成エンジン312は、モデル精度に基づいて重みを割り当てるまたは修正し得る。機械学習モデル生成エンジン312は、機械学習モデルのそれぞれを機械学習モデル320としてストレージ322に記憶する。
【0055】
さらに、インテリジェント実行環境識別メカニズム302がコンピューティング・ジョブの実行のための実行環境を最初にインテリジェントに識別するために、機械学習モデル320のそれぞれはテスト・ケースに基づく。したがって、ユーザが新しいコンピューティング・ジョブを実行したい場合、実行時間推定エンジン314は、入力データのサイズ、フィールドの数、カテゴリ・フィールドの数、連続フィールドの数、カテゴリ数、各カテゴリの割合などのカテゴリ・フィールドの単変量統計、最小値、最大値、平均値、標準偏差、分散、標準誤差などの連続フィールドの単変量統計、メタデータ、パラメータなどが含まれ得るがこれらに限定されない、新しいコンピューティング・ジョブに関する実行コンテキスト情報を収集する。次いで、実行時間推定エンジン314は、新しいコンピューティング・ジョブに関する実行コンテキスト情報のそれぞれに関連付けられた値を特定して、機械学習モデルの生成における主要パラメータを提供する。実行時間推定エンジン314はまた、プロセッサの数、プロセッサの特徴、メモリ・サイズ、ソフトウェア開発情報、オペレーティング・システム情報などが含まれ得るがこれらに限定されない、複数の実行環境304a~304nのそれぞれに関する実行環境情報を収集する。
【0056】
複数の実行環境304a~304nのうちの各実行環境に対して、実行時間推定エンジン314は、新しいコンピューティング・ジョブの実行コンテキスト情報および主要パラメータと、関連する実行環境の実行環境情報とに一致する機械学習モデル320のうちの特定のものを適用して、関連する実行環境のベース機械学習モデルのうちの特定のものごとの予測された実行時間ETBと、関連する実行環境のライト機械学習モデルのうちの特定のものごとの予測された実行時間ETLnとを特定することによって、実行環境の実行時間を予測する。各実行環境について、実行時間推定エンジン314は、ベース機械学習モデルおよびライト機械学習モデルの予測された実行時間を集約して、実行環境の集約された実行時間を以下のように提供する。
【数1】
【0057】
実行時間推定エンジン314が複数の実行環境304a~304nのそれぞれについて集約された実行時間を決定すると、実行環境選択エンジン316は、各実行環境における新しいコンピューティング・ジョブの実行時間をまとめる。1つの例示的な実施形態では、実行環境選択エンジン316は、実行時間のまとめをユーザ・インターフェースでユーザに提示して、ユーザが新しいコンピューティング・ジョブに適切な実行環境を選択し得るようにする。他の例示的な実施形態では、実行環境選択エンジン316は、事前定義されたユーザ設定、すなわち、コンピューティング・ジョブの実行のための実行環境のインテリジェントな識別を要求する前にユーザが識別したルールのセットに基づいて、新しいコンピューティング・ジョブを実行するための適切な実行環境を選択する。ユーザが実行環境の選択を提供するか、または実行環境選択エンジン316が事前定義されたユーザ設定に基づいて実行環境を選択すると、実行環境選択エンジン316は、選択された実行環境において新しいコンピューティング・ジョブを実行し、実行中に関連データを収集する。
【0058】
選択された実行環境に関して収集される関連データは、テスト・ケースの実施以降の、または最後にユーザが送信したコンピューティング・ジョブの実行以降の実行環境の変化、たとえば、仮想マシンか物理ハードウェアか、ハード・ディスク・ドライブかソリッド・ステート・ドライブか、などのハードウェアの違い、最適化、中央処理装置かグラフィック処理装置か、などの依存関係ライブラリの更新、ハードウェアの交換および改善などを示し得る。このため、実行環境で発生し得る変化によって、機械学習モデル更新エンジン318は、選択された実行環境に関連付けられた機械学習モデルを再トレーニングする。機械学習モデル更新エンジン318は、関連する実行環境のベース機械学習モデルと、関連する実行環境のライト機械学習モデルのそれぞれとの両方を更新する。
【0059】
関連する実行環境のベース機械学習モデルと、関連する実行環境のライト機械学習モデルのそれぞれとを更新するために、機械学習モデル更新エンジン318は、選択された実行環境に関して収集された関連データ、すなわち、新しいコンピューティング・ジョブに関する収集された実行コンテキスト情報、主要パラメータ、選択された実行環境に関する実行環境情報、および観測された実行時間をデータ・キャッシュに追加する。機械学習モデル更新エンジン318は、データ・キャッシュ内のレコードの数が第1の事前定義された閾値Sより大きいか否かを判定する。データ・キャッシュ内のレコードの数がSより大きい場合、機械学習モデル更新エンジン318は、キャッシュされたデータに基づいてモデル精度Rを計算する。次いで、機械学習モデル更新エンジン318は、次の式を使用して、計算された精度(R)に基づいてライト・モデルの重みを調整することによって、各ライト機械学習モデルを再トレーニングする。
【数2】

このように、機械学習モデル更新エンジン318は、各ライト機械学習モデルに関連付けられた重みを調整することによって、ライト機械学習モデルのそれぞれを再トレーニングする。
【0060】
ライト・モデルがその精度に基づいて常に新鮮になるようにするために、機械学習モデル更新エンジン318は、キャッシュされたデータに基づいて「使用中」の各ライト・モデルの精度を計算し続ける。機械学習モデル更新エンジン318はまた、キャッシュされたデータに基づいて新しいライト機械学習モデルを構築し、第1の事前定義された閾値(Tacc1)よりも高い精度を有するライト機械学習モデルをキャッシュする。「使用中」のライト機械学習モデルの精度が第1の事前定義された閾値(Tacc1)未満であると判定された場合、機械学習モデル更新エンジン318は、全ての「使用中」のライト機械学習モデルおよびキャッシュされたライト機械学習モデルを取り出し、混合されたライト機械学習モデルを精度でソートし、上位N個のライト機械学習モデルを選択し、これらはその後、「使用中」のライト機械学習モデルの新しいセットとして使用される。機械学習モデル更新エンジン318は、「使用中」のライト機械学習モデルの新しいセットに対して以前に決定された重みを再使用するか、または前述の重み調整式を使用して選択されたライト機械学習モデルに新しい重みを割り当てることによって、「使用中」のライト機械学習モデルの新しいセットを再トレーニングし得る。
【0061】
ベース機械学習モデルに関して、キャッシュされたデータ内のレコードの数が第2の事前定義された閾値Sより大きく、ベース・モデルの精度が第2の事前定義された閾値(Tacc2)未満である場合、機械学習モデル更新エンジン318は、キャッシュされたデータを使用して新しいベース機械学習モデルを生成する。この場合、機械学習モデル更新エンジン318は、前述の重み調整式を使用して、または特定の実行環境のためのベース機械学習モデルおよびライト機械学習モデルの初期トレーニング中に使用された、初期重みの決定のために以前に使用された式を使用して、選択された機械学習モデルに新しい重みを割り当てることによって、特定の実行環境に関連付けられたベース機械学習モデルおよびライト機械学習モデルのそれぞれを再トレーニングし得る。
【0062】
このように、インテリジェント実行環境識別メカニズム302は、各コンピューティング・ジョブの実行後に機械学習モデルを再トレーニングすることによって、次の各コンピューティング・ジョブの実行のための実行環境をインテリジェントに識別する際の精度を向上させるので、インテリジェント実行環境識別メカニズム302は、従来の実行環境の選択に対する改善を提供する。また、インテリジェント実行環境識別メカニズム302は、ドメインの知識も経験も必要ないので、使用しやすい。さらに、インテリジェント実行環境識別メカニズム302は、各実行環境ノードが独自の別個の機械学習モデルのセット、すなわち、ベース機械学習モデルとライト機械学習モデルのセットとを有するので、拡張可能である。
【0063】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組合せであり得る。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0064】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持および記憶可能な有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、限定はしないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリー・スティック(R)、フロッピー(R)・ディスク、命令が記録されたパンチ・カードまたは溝の隆起構造などの機械的にコード化されたデバイス、およびこれらの任意の適切な組合せが含まれる。コンピュータ可読記憶媒体は、本明細書で使用する場合、たとえば、電波または他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を伝搬する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、または有線で伝送される電気信号などの一過性の信号自体であると解釈されるべきではない。
【0065】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、たとえば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはそれらの組合せなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを含み得る。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶する。
【0066】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモート・コンピュータ上で、あるいは完全にリモート・コンピュータまたはサーバ上で実行され得る。最後のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され得、または(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータへの接続がなされ得る。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してコンピュータ可読プログラム命令を実行することによって、電子回路を個人向けにし得る。
【0067】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書で説明している。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せが、コンピュータ可読プログラム命令によって実装できることは理解されよう。
【0068】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定された機能/動作を実装する手段を作り出すべく、コンピュータまたは他のプログラム可能データ処理装置のプロセッサに提供されてマシンを作り出すものであってもよい。また、これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定された機能/動作の態様を実装する命令を含む製品を構成するように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはそれらの組合せに特定の方式で機能するように指示するものであってもよい。
【0069】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定された機能/動作を実装するように、コンピュータ実装処理を作出するべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0070】
図4は、1つの例示的な実施形態による、新しいコンピューティング・ジョブの実行のための実行環境を識別する際の、図3のインテリジェント実行環境識別メカニズム302などのインテリジェント実行環境識別メカニズムによって実行される動作のフロー図の一例を示している。動作が開始すると、ユーザが新しいコンピューティング・ジョブの実行要求を送信した場合、インテリジェント実行環境識別メカニズムの実行時間推定エンジンは、新しいコンピューティング・ジョブに関する実行コンテキスト情報を収集する(ステップ402)。実行コンテキスト情報には、入力データのサイズ、フィールドの数、カテゴリ・フィールドの数、連続フィールドの数、カテゴリ数、各カテゴリの割合などのカテゴリ・フィールドの単変量統計、最小値、最大値、平均値、標準偏差、分散、標準誤差などの連続フィールドの単変量統計、メタデータ、パラメータなどが含まれ得るが、これらに限定されない。次いで、実行時間推定エンジンは、新しいコンピューティング・ジョブに関する実行コンテキスト情報のそれぞれに関連付けられた値を特定して、機械学習モデルの生成における主要パラメータを提供する(ステップ404)。実行時間推定エンジンはまた、複数の実行環境のそれぞれに関する実行環境情報を収集する(ステップ406)。実行環境情報には、プロセッサの数、プロセッサの特徴、メモリ・サイズ、ソフトウェア開発情報、オペレーティング・システム情報などが含まれ得るがこれらに限定されない。
【0071】
複数の実行環境のうちの各実行環境に対して、実行時間推定エンジンは、実行環境の実行時間を予測する(ステップ408)。実行時間推定エンジンは、新しいコンピューティング・ジョブの実行コンテキスト情報および主要パラメータと、関連する実行環境の実行環境情報とに一致する既存の機械学習モデルのセットのうちの特定のものを適用して、関連する実行環境のベース機械学習モデルのうちの特定のものごとの予測された実行時間ETBと、関連する実行環境のライト機械学習モデルのうちの特定のものごとの予測された実行時間ETLnとを特定することによって、これを行う。各実行環境について、実行時間推定エンジンは、ベース機械学習モデルおよびライト機械学習モデルの予測された実行時間を集約して、実行環境の集約された実行時間を以下のように提供する(ステップ410)。
【数3】
【0072】
実行時間推定エンジンが複数の実行環境のそれぞれについて集約された実行時間を決定すると、実行環境選択エンジンは、各実行環境における新しいコンピューティング・ジョブの実行時間をまとめる(ステップ412)。1つの例示的な実施形態では、実行環境選択エンジンは、実行時間のまとめをユーザ・インターフェースでユーザに提示して、ユーザが新しいコンピューティング・ジョブに適切な実行環境を選択し得るようにする。他の例示的な実施形態では、実行環境選択エンジンは、事前定義されたユーザ設定、すなわち、コンピューティング・ジョブの実行のための実行環境のインテリジェントな識別を要求する前にユーザが識別したルールのセットに基づいて、新しいコンピューティング・ジョブを実行するための適切な実行環境を選択する。ユーザが実行環境の選択を提供するか、または実行環境選択エンジンが事前定義されたユーザ設定に基づいて実行環境を選択すると、実行環境選択エンジンは、選択された実行環境において新しいコンピューティング・ジョブを実行し(ステップ414)、実行中に関連データを収集し(ステップ416)、その後動作は終了する。
【0073】
図5は、1つの例示的な実施形態による、実行環境の実行時間を予測する際にインテリジェント実行環境識別メカニズムの実行時間推定エンジンによって使用される既存の機械学習モデルのセットを生成する際に実行される動作のフロー図の一例を示している。動作が開始すると、インテリジェント実行環境識別メカニズムの機械学習モデル生成メカニズム内の実行コンテキスト識別エンジンは、複数のテスト・ケースに関する実行コンテキスト情報を収集する(ステップ502)。テスト・ケースのそれぞれに関する収集された実行コンテキスト情報には、入力データのサイズ、フィールドの数、カテゴリ・フィールドの数、連続フィールドの数、カテゴリ数、各カテゴリの割合などのカテゴリ・フィールドの単変量統計、最小値、最大値、平均値、標準偏差、分散、標準誤差などの連続フィールドの単変量統計、メタデータ、パラメータなどが含まれ得るが、これらに限定されない。次いで、実行コンテキスト識別エンジンは、実行コンテキスト情報のそれぞれに関連付けられた値を特定して、機械学習モデルの生成における主要パラメータを提供する(ステップ504)。
【0074】
さらに、インテリジェント実行環境識別メカニズムの機械学習モデル生成メカニズム内の実行環境識別エンジンは、複数の実行環境のそれぞれに関する実行環境情報を収集する(ステップ506)。テスト・ケースのそれぞれに関する収集された実行環境情報には、プロセッサの数、プロセッサの特徴、メモリ・サイズ、ソフトウェア開発情報、オペレーティング・システム情報などが含まれ得るがこれらに限定されない。
【0075】
複数のテスト・ケースのそれぞれに関する収集された実行コンテキスト情報と、複数の実行環境のそれぞれに関する実行環境情報とを利用して、インテリジェント実行環境識別メカニズムの機械学習モデル生成メカニズム内の機械学習モデル生成エンジンは、複数の実行環境のうちの各実行環境において複数のテスト・ケース内の各テスト・ケースを実施する(ステップ508)。全てのテスト・ケースが実行されると、機械学習モデル生成エンジンは、実行環境におけるテスト・ケースの実行時間と、関連するテスト・ケースの実行コンテキストとの間の関係について、線形回帰モデル、回帰木モデルなどの機械学習モデルのセットを生成する(ステップ510)。1つの例示的な実施形態では、モデルは、
Y=f(X)
であり得、ここで、Yは実行時間であり、Xは実行情報(実行コンテキスト情報および実行環境情報)であり、f(X)はモデルである。機械学習モデル生成エンジンは、収集された全ての情報、すなわち、実行コンテキスト情報、実行コンテキスト情報のそれぞれに関連付けられた値、および実行環境情報の全てを予測子として使用して、1つのベース機械学習モデルBMを生成する。1つのベース機械学習モデルBMを生成することに加えて、機械学習モデル生成エンジンは、収集された情報の一部分、すなわち、実行コンテキスト情報、実行コンテキスト情報のそれぞれに関連付けられた値、および実行環境情報の全てではなく一部を予測子として使用して、N個のライト機械学習モデルLMを生成する(たとえば、N=5の場合、機械学習モデル生成エンジン312は、LM1、LM2、LM3、LM4、およびLM5を生成する)。1つの例示的な実施形態では、数Nは、予測子の数の平方根を取ることによって決定され得る。1つの例示的な実施形態では、収集された情報の一部分には、プロセッサの数、メモリ・サイズなどの固定の主要予測子、およびメタデータ、パラメータなどの任意選択の予測子が含まれ得る。
【0076】
ベース機械学習モデルBMおよびライト機械学習モデルLM1~LMのそれぞれについて、機械学習モデル生成エンジンは、BMに対して初期重みWBMを割り当て、LMに対してWLMを割り当てる(ステップ512)。一例では、機械学習モデル生成エンジン312は、以下のような重みを割り当て得る。
・WBM=w1 ここで、0<w1<1
・WLMn=(1-w1)/N
この例では、N=5およびw1=0.5の場合、重みは次のようになる。
・WBM=0.5
・WLM1=0.1
・WLM2=0.1
・WLM3=0.1
・WLM4=0.1
・WLM5=0.1
他の例示的な実施形態では、機械学習モデル生成エンジンは、モデル精度に基づいて重みを割り当てるまたは修正し得る。機械学習モデル生成エンジンは、機械学習モデルのそれぞれを機械学習モデルとしてストレージに記憶し(ステップ514)、その後動作は終了する。
【0077】
図6は、1つの例示的な実施形態による、新しいコンピューティング・ジョブの実行のための実行環境を識別する際に実行環境選択エンジンによって利用される機械学習モデルを更新する際に機械学習モデル更新エンジンによって実行される動作のフロー図の一例を示している。この場合も、図4のステップ416の選択された実行環境に関して収集される関連データは、テスト・ケースの実施以降の、または最後にユーザが送信したコンピューティング・ジョブの実行以降の実行環境の変化、たとえば、仮想マシンか物理ハードウェアか、ハード・ディスク・ドライブかソリッド・ステート・ドライブか、などのハードウェアの違い、最適化、中央処理装置かグラフィック処理装置か、などの依存関係ライブラリの更新、ハードウェアの交換および改善などを示し得る。このため、実行環境で発生し得る変化を考慮するために、動作が開始すると、機械学習モデル更新エンジンは、選択された実行環境に関して収集された関連データ、すなわち、新しいコンピューティング・ジョブに関する収集された実行コンテキスト情報、主要パラメータ、選択された実行環境に関する実行環境情報、および観測された実行時間をデータ・キャッシュに追加する(ステップ602)。機械学習モデル更新エンジンは、データ・キャッシュ内のレコードの数が第1の所定の値より大きいか否かを判定する(ステップ604)。ステップ604において、データ・キャッシュ内のレコードの数が第1の所定の値よりも大きくならない場合、動作は終了する。ステップ604において、データ・キャッシュ内のレコードの数が第1の所定の値より大きい場合、機械学習モデル更新エンジンは、キャッシュされたデータに基づいてモデル精度Rを計算する(ステップ606)。次いで、機械学習モデル更新エンジンは、次の式を使用して、計算された精度(R)に基づいてライト・モデルの重みを調整することによって、各ライト機械学習モデルを再トレーニングする(ステップ608)。
【数4】
【0078】
ベース機械学習モデルに関して、機械学習モデル更新エンジンは、データ・キャッシュ内のレコードの数が第2の所定の値より大きいか否かを判定する(ステップ610)。ステップ610において、データ・キャッシュ内のレコードの数が第2の所定の値よりも大きくならない場合、動作は終了する。ステップ610において、データ・キャッシュ内のレコードの数が第2の所定の値より大きい場合、機械学習モデル更新エンジンは、ベース・モデルの精度が第2の事前定義された閾値(Tacc2)未満であるか否かを判定する(ステップ612)。ステップ612において、ベース・モデルの精度が第2の事前定義された閾値(Tacc2)以上である場合、動作は終了する。ステップ612において、ベース・モデルの精度が第2の事前定義された閾値(Tacc2)未満である場合、機械学習モデル更新エンジンは、キャッシュされたデータを使用して新しいベース機械学習モデルを生成する(ステップ614)。次いで、機械学習モデル更新エンジンは、特定の実行環境のための既存のベース機械学習モデルを、機械学習モデルのセット内の特定の実行環境のための新しく生成されたベース機械学習モデルに置き換える(ステップ616)。また、機械学習モデル更新エンジンは、前述の重み調整式を使用して、または特定の実行環境のためのベース機械学習モデルおよびライト機械学習モデルの初期トレーニング中に使用された、初期重みの決定のために以前に使用された式を使用して、選択された機械学習モデルに新しい重みを割り当てることによって、特定の実行環境に関連付けられた新しく生成されたベース機械学習モデルおよびライト機械学習モデルのそれぞれを再トレーニングし得(ステップ618)、その後動作は終了する。
【0079】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理的機能を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の一部分を表し得る。いくつかの代替的実装形態では、ブロックに記載した機能は、図示した順序以外で行われ得る。たとえば、関与する機能に応じて、連続して示した2つのブロックは、実際には実質的に同時に実行され得、またはそれらのブロックは、場合により逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を実行するか、または専用ハードウェアおよびコンピュータ命令の組合せを実行する専用のハードウェア・ベースのシステムによって実装できることにも気付くであろう。
【0080】
したがって、例示的な実施形態は、コンピューティング・ジョブを実行するための実行環境をインテリジェントに識別するためのメカニズムを提供する。このメカニズムは、ジョブの実行時間および実行コンテキスト、たとえば、実行環境、入力データ情報、主要パラメータなどの間の関係を反映するように機械学習モデルを構築する。次いで、このメカニズムは、実際のコンピューティング・ジョブの実行の前に、実行環境と実行時間とのいくつかの組合せを選択用のオプションとして提供するために、複数の実行環境内の各実行環境の機械学習モデルに基づいて、複数の実行環境のうちの各候補実行環境におけるコンピューティング・ジョブの実行フローを実行するための実行時間を推定する。すなわち、このメカニズムは、ジョブの規模(重いか軽いか)と、全ての利用可能な候補実行環境での推定実行時間とをユーザに通知して、ユーザが適切な実行環境を性能に基づいて選択し得るようにし、またはこのメカニズムが事前定義されたユーザ設定に基づいて実行環境を自動的に選択し得るようにしてもよい。選択された実行環境における各コンピューティング・ジョブの実行後に、このメカニズムは実行情報を収集し、関連付けられた機械学習モデルをリフレッシュする。
【0081】
上記のように、例示的な実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェア要素およびソフトウェア要素の両方を含む実施形態の形をとり得ることを理解されたい。1つの例示的な実施形態では、例示的な実施形態のメカニズムは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアまたはプログラム・コードで実装される。
【0082】
プログラム・コードを記憶または実行あるいはその両方を行うのに適したデータ処理システムは、たとえば、システム・バスなどの通信バスを介してメモリ素子に直接または間接的に結合された少なくとも1つのプロセッサを含む。メモリ素子には、プログラム・コードの実際の実行中に利用されるローカル・メモリと、バルク・ストレージと、実行中にバルク・ストレージからコードが取り出される必要がある回数を削減するために少なくとも一部のプログラム・コードの一時的なストレージを提供するキャッシュ・メモリと、を含めることができる。メモリは、ROM、PROM、EPROM、EEPROM、DRAM、SRAM、フラッシュ・メモリ、ソリッド・ステート・メモリなどを含むがこれらに限定されない様々なタイプであり得る。
【0083】
入力/出力またはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定されない)は、直接的に、あるいは介在する有線または無線のI/Oインターフェースもしくはコントローラまたはその両方などを介して、システムに結合することができる。I/Oデバイスは、たとえば、スマート・フォン、タブレット・コンピュータ、タッチ・スクリーン・デバイス、音声認識デバイスなどを含むがこれらに限定されない有線または無線接続を介して結合された通信デバイスなど、従来のキーボード、ディスプレイ、ポインティング・デバイスなど以外の多くの異なる形態をとり得る。任意の知られているまたは今後開発されるI/Oデバイスは、例示的な実施形態の範囲内にあるものとする。
【0084】
また、ネットワーク・アダプタをシステムに結合して、データ処理システムを、介在するプライベートまたはパブリック・ネットワークを介して、他のデータ処理システムもしくはリモート・プリンタまたはストレージ・デバイスに結合可能にし得る。モデム、ケーブル・モデム、およびEthernet(R)カードは、有線通信用に現在利用可能なタイプのネットワーク・アダプタのほんの一部である。802.11a/b/g/n無線通信アダプタ、Bluetooth(R)無線アダプタなどを含むがこれらに限定されない無線通信ベースのネットワーク・アダプタも利用され得る。任意の知られているまたは今後開発されるネットワーク・アダプタは、本発明の範囲内にあるものとする。
【0085】
本発明の説明は、例示および説明の目的で提示しており、網羅的であることも、開示した形態の発明に限定されることも意図したものではない。記載した実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本発明の原理および実際の適用を最もよく説明し、企図した特定の用途に適した様々な修正を有する様々な実施形態について本発明を当業者が理解できるようにするために、実施形態を選択し、説明している。本明細書で使用する用語は、実施形態の原理、実際の適用、または市場に見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示した実施形態を理解できるようにするために選択している。
図1
図2
図3
図4
図5
図6
【手続補正書】
【提出日】2023-12-27
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
データ処理システムにおいて、コンピューティング・ジョブを実行するための実行環境をインテリジェントに識別するための方法であって、
複数の実行環境のうちの各実行環境について、
前記コンピューティング・ジョブの実行コンテキスト情報および主要パラメータと、前記実行環境の実行環境情報とに一致する既存の機械学習モデルのセットを適用することによって、前記実行環境における前記コンピューティング・ジョブの実行時間を予測することと、
前記機械学習モデルの予測された実行時間を集約することによって、前記実行環境における前記コンピューティング・ジョブの集約された予測された実行時間を形成することと、
前記複数の実行環境に関する前記コンピューティング・ジョブの前記集約された予測された実行時間をまとめることと、
前記コンピューティング・ジョブの前記集約された予測された実行時間のまとめに基づく前記複数の実行環境からの実行環境の選択に応答して、選択された実行環境において前記コンピューティング・ジョブを実行することと、
前記選択された実行環境における前記コンピューティング・ジョブの実行中に関連データを収集することと、
を含む、方法。
【請求項2】
前記コンピューティング・ジョブの集約された予測された実行時間の前記まとめに基づく前記複数の実行環境からの前記実行環境の前記選択は、ユーザ選択または事前定義されたユーザ設定に基づく自動選択のいずれかである、請求項1に記載の方法。
【請求項3】
前記実行コンテキスト情報は、入力データのサイズ、フィールドの数、カテゴリ・フィールドの数、連続フィールドの数、カテゴリ・フィールドの単変量統計、連続フィールドの単変量統計、メタデータ、およびパラメータを含むグループから選択される、請求項1に記載の方法。
【請求項4】
前記主要パラメータは、前記コンピューティング・ジョブに関する前記実行コンテキスト情報に関連付けられた値に基づいて識別される、請求項1に記載の方法。
【請求項5】
前記実行環境情報は、プロセッサの数、前記プロセッサの特徴、メモリ・サイズ、ソフトウェア開発情報、およびオペレーティング・システム情報を含むグループから選択される、請求項1に記載の方法。
【請求項6】
前記既存の機械学習モデルのセットは、
複数のテスト・ケースに関する実行コンテキスト情報を収集することと、
前記複数のテスト・ケースに関する前記実行コンテキスト情報のそれぞれに関連付けられた値を使用して主要パラメータを識別することと、
前記複数の実行環境のそれぞれに関する実行環境情報を収集することと、
前記複数のテスト・ケースのそれぞれに関する収集された実行コンテキスト情報と、前記複数の実行環境のそれぞれに関する前記実行環境情報とを利用して、前記複数の実行環境のうちの各実行環境において前記複数のテスト・ケース内の各テスト・ケースを実行することと、
関連する実行環境における各テスト・ケースの実行時間と、関連するテスト・ケースの実行コンテキストとの間の関係に基づいて前記機械学習モデルのセットを生成することと、
前記機械学習モデルのセット内の各機械学習モデルに初期重みを割り当てることと、
を含む前記方法によって生成される、請求項1に記載の方法。
【請求項7】
前記複数の実行環境のうちの各実行環境のための前記機械学習モデルのセットは、
前記テスト・ケースの前記実行コンテキスト情報、前記テスト・ケースの前記実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てを使用する1つのベース機械学習モデルと、
前記テスト・ケースの前記実行コンテキスト情報、前記テスト・ケースの前記実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てではなく一部を含む、少なくとも1つのライト機械学習モデルと、
を含む、請求項6に記載の方法。
【請求項8】
前記コンピューティング・ジョブを実行するための実行環境を識別する際に利用される前記機械学習モデルのセットを更新することは、
前記選択された実行環境に関して収集された前記関連データをデータ・キャッシュに追加することと、
前記データ・キャッシュ内のレコードの数が第1の所定の値より大きいことに応答して、
ャッシュされたデータに基づいてモデル精度を計算することと、
算されたモデル精度に基づいて前記機械学習モデルのセット内の少なくとも1つのライト機械学習モデルの重みを調整することによって、前記ライト機械学習モデルを再トレーニングすることと、
前記データ・キャッシュ内のレコードの前記数が第2の所定の値より大きいことに応答して、
前記機械学習モデルのセット内のベース・モデルの精度が事前定義された閾値(Tacc)未満であるか否かを判定することと、
前記ベース・モデルの前記精度が前記事前定義された閾値(Tacc)未満であることに応答して、前記キャッシュされたデータを使用して新しいベース機械学習モデルを生成することと、
連する実行環境のための既存のベース機械学習モデルを、前記機械学習モデルのセット内の前記関連する実行環境のための新しく生成されたベース機械学習モデルに置き換えることと、
を含む、請求項1に記載の方法。
【請求項9】
前記実行環境に関連付けられた前記新しく生成されたベース機械学習モデルおよび前記ライト機械学習モデルのそれぞれを、新しい重みを割り当てることによって再トレーニングすること
をさらに含む、請求項8に記載の方法。
【請求項10】
コンピューティング・ジョブを実行するための実行環境をインテリジェントに識別するためのコンピュータプログラムであって、コンピュータに、
複数の実行環境のうちの各実行環境について、
前記コンピューティング・ジョブの実行コンテキスト情報および主要パラメータと、前記実行環境の実行環境情報とに一致する既存の機械学習モデルのセットを適用することによって、前記実行環境における前記コンピューティング・ジョブの実行時間を予測することと、
前記機械学習モデルの予測された実行時間を集約することによって、前記実行環境における前記コンピューティング・ジョブの集約された予測された実行時間を形成することと、
前記複数の実行環境に関する前記コンピューティング・ジョブの前記集約された予測された実行時間をまとめることと、
前記コンピューティング・ジョブの前記集約された予測された実行時間のまとめに基づく前記複数の実行環境からの実行環境の選択に応答して、選択された実行環境において前記コンピューティング・ジョブを実行することと、
前記選択された実行環境における前記コンピューティング・ジョブの実行中に関連データを収集することと、
を実行させる、コンピュータ・プログラム。
【請求項11】
前記コンピューティング・ジョブの集約された予測された実行時間の前記まとめに基づく前記複数の実行環境からの前記実行環境の前記選択は、ユーザ選択または事前定義されたユーザ設定に基づく自動選択のいずれかである、請求項10に記載のコンピュータ・プログラム。
【請求項12】
前記実行コンテキスト情報は、入力データのサイズ、フィールドの数、カテゴリ・フィールドの数、連続フィールドの数、カテゴリ・フィールドの単変量統計、連続フィールドの単変量統計、メタデータ、およびパラメータを含むグループから選択され、
前記主要パラメータは、前記コンピューティング・ジョブに関する前記実行コンテキスト情報に関連付けられた値に基づいて識別され、
前記実行環境情報は、プロセッサの数、前記プロセッサの特徴、メモリ・サイズ、ソフトウェア開発情報、およびオペレーティング・システム情報を含むグループから選択される、
請求項10に記載のコンピュータ・プログラム。
【請求項13】
前記既存の機械学習モデルのセットは、前記コンピュータに、
複数のテスト・ケースに関する実行コンテキスト情報を収集することと、
前記複数のテスト・ケースに関する前記実行コンテキスト情報のそれぞれに関連付けられた値を使用して主要パラメータを識別することと、
前記複数の実行環境のそれぞれに関する実行環境情報を収集することと、
前記複数のテスト・ケースのそれぞれに関する収集された実行コンテキスト情報と、前記複数の実行環境のそれぞれに関する前記実行環境情報とを利用して、前記複数の実行環境のうちの各実行環境において前記複数のテスト・ケース内の各テスト・ケースを実行することと、
関連する実行環境における各テスト・ケースの実行時間と、関連するテスト・ケースの実行コンテキストとの間の関係に基づいて前記機械学習モデルのセットを生成することと、
前記機械学習モデルのセット内の各機械学習モデルに初期重みを割り当てることと、
をさらに実行させることによって生成される、請求項10に記載のコンピュータ・プログラム。
【請求項14】
前記複数の実行環境のうちの各実行環境のための前記機械学習モデルのセットは、
前記テスト・ケースの前記実行コンテキスト情報、前記テスト・ケースの前記実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てを使用する1つのベース機械学習モデルと、
前記テスト・ケースの前記実行コンテキスト情報、前記テスト・ケースの前記実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てではなく一部を含む、少なくとも1つのライト機械学習モデルと、
を含む、請求項13に記載のコンピュータ・プログラム。
【請求項15】
前記コンピュータプログラムは、前記コンピューティング・ジョブを実行するための実行環境を識別する際に利用される前記機械学習モデルのセットを更新することを、前記コンピュータに、
前記選択された実行環境に関して収集された前記関連データをデータ・キャッシュに追加することと、
前記データ・キャッシュ内のレコードの数が第1の所定の値より大きいことに応答して、
ャッシュされたデータに基づいてモデル精度を計算することと、
算されたモデル精度に基づいて前記機械学習モデルのセット内の少なくとも1つのライト機械学習モデルの重みを調整することによって、前記ライト機械学習モデルを再トレーニングすることと、
前記データ・キャッシュ内のレコードの前記数が第2の所定の値より大きいことに応答して、
前記機械学習モデルのセット内のベース・モデルの精度が事前定義された閾値(Tacc)未満であるか否かを判定することと、
前記ベース・モデルの前記精度が前記事前定義された閾値(Tacc)未満であることに応答して、前記キャッシュされたデータを使用して新しいベース機械学習モデルを生成することと、
連する実行環境のための既存のベース機械学習モデルを、前記機械学習モデルのセット内の前記関連する実行環境のための新しく生成されたベース機械学習モデルに置き換えることと、
をさらに実行させることによって行う、請求項10に記載のコンピュータ・プログラム。
【請求項16】
前記コンピュータプログラムは、前記コンピュータに、
前記実行環境に関連付けられた前記新しく生成されたベース機械学習モデルおよび前記ライト機械学習モデルのそれぞれを、新しい重みを割り当てることによって再トレーニングすること
をさらに実行させる、請求項15に記載のコンピュータ・プログラム。
【請求項17】
コンピューティング・ジョブを実行するための実行環境をインテリジェントに識別するための装置であって、
プロセッサと、
前記プロセッサに結合されたメモリと、
を備え、前記メモリは命令を含み、前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
複数の実行環境のうちの各実行環境について、
前記コンピューティング・ジョブの実行コンテキスト情報および主要パラメータと、前記実行環境の実行環境情報とに一致する既存の機械学習モデルのセットを適用することによって、前記実行環境における前記コンピューティング・ジョブの実行時間を予測することと、
前記機械学習モデルの予測された実行時間を集約することによって、前記実行環境における前記コンピューティング・ジョブの集約された予測された実行時間を形成することと、
前記複数の実行環境に関する前記コンピューティング・ジョブの前記集約された予測された実行時間をまとめることと、
前記コンピューティング・ジョブの前記集約された予測された実行時間のまとめに基づく前記複数の実行環境からの実行環境の選択に応答して、選択された実行環境において前記コンピューティング・ジョブを実行することと、
前記選択された実行環境における前記コンピューティング・ジョブの実行中に関連データを収集することと、
を実行させる、装置。
【請求項18】
前記コンピューティング・ジョブの集約された予測された実行時間の前記まとめに基づく前記複数の実行環境からの前記実行環境の前記選択は、ユーザ選択または事前定義されたユーザ設定に基づく自動選択のいずれかである、請求項17に記載の装置。
【請求項19】
前記実行コンテキスト情報は、入力データのサイズ、フィールドの数、カテゴリ・フィールドの数、連続フィールドの数、カテゴリ・フィールドの単変量統計、連続フィールドの単変量統計、メタデータ、およびパラメータを含むグループから選択され、
前記主要パラメータは、前記コンピューティング・ジョブに関する前記実行コンテキスト情報に関連付けられた値に基づいて識別され、
前記実行環境情報は、プロセッサの数、前記プロセッサの特徴、メモリ・サイズ、ソフトウェア開発情報、およびオペレーティング・システム情報を含むグループから選択される、
請求項17に記載の装置。
【請求項20】
前記既存の機械学習モデルのセットは、前記命令が前記プロセッサに、
複数のテスト・ケースに関する実行コンテキスト情報を収集することと、
前記複数のテスト・ケースに関する前記実行コンテキスト情報のそれぞれに関連付けられた値を使用して主要パラメータを識別することと、
前記複数の実行環境のそれぞれに関する実行環境情報を収集することと、
前記複数のテスト・ケースのそれぞれに関する収集された実行コンテキスト情報と、前記複数の実行環境のそれぞれに関する前記実行環境情報とを利用して、前記複数の実行環境のうちの各実行環境において前記複数のテスト・ケース内の各テスト・ケースを実行することと、
関連する実行環境における各テスト・ケースの実行時間と、関連するテスト・ケースの実行コンテキストとの間の関係に基づいて前記機械学習モデルのセットを生成することと、
前記機械学習モデルのセット内の各機械学習モデルに初期重みを割り当てることと、
をさらに実行させることによって生成される、請求項17に記載の装置。
【請求項21】
前記複数の実行環境のうちの各実行環境のための前記機械学習モデルのセットは、
前記テスト・ケースの前記実行コンテキスト情報、前記テスト・ケースの前記実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てを使用する1つのベース機械学習モデルと、
前記テスト・ケースの前記実行コンテキスト情報、前記テスト・ケースの前記実行コンテキスト情報のそれぞれに関連付けられた値、および全ての関連する実行環境情報の全てではなく一部を含む、少なくとも1つのライト機械学習モデルと、
を含む、請求項20に記載の装置。
【請求項22】
前記命令は、前記コンピューティング・ジョブを実行するための実行環境を識別する際に利用される前記機械学習モデルのセットを更新することを、前記プロセッサに、
前記選択された実行環境に関して収集された前記関連データをデータ・キャッシュに追加することと、
前記データ・キャッシュ内のレコードの数が第1の所定の値より大きいことに応答して、
ャッシュされたデータに基づいてモデル精度を計算することと、
算されたモデル精度に基づいて前記機械学習モデルのセット内の少なくとも1つのライト機械学習モデルの重みを調整することによって、前記ライト機械学習モデルを再トレーニングすることと、
前記データ・キャッシュ内のレコードの前記数が第2の所定の値より大きいことに応答して、
前記機械学習モデルのセット内のベース・モデルの精度が事前定義された閾値(Tacc)未満であるか否かを判定することと、
前記ベース・モデルの前記精度が前記事前定義された閾値(Tacc)未満であることに応答して、前記キャッシュされたデータを使用して新しいベース機械学習モデルを生成することと、
連する実行環境のための既存のベース機械学習モデルを、前記機械学習モデルのセット内の前記関連する実行環境のための新しく生成されたベース機械学習モデルに置き換えることと、
をさらに実行させることによって行う、請求項17に記載の装置。
【請求項23】
前記命令は、前記プロセッサに、
前記実行環境に関連付けられた前記新しく生成されたベース機械学習モデルおよび前記ライト機械学習モデルのそれぞれを、新しい重みを割り当てることによって再トレーニングすること
をさらに実行させる、請求項22に記載の装置。
【請求項24】
データ処理システムにおいて、コンピューティング・ジョブを実行するための実行環境をインテリジェントに識別するための方法であって、
複数の実行環境のうちの各実行環境における前記コンピューティング・ジョブの集約された予測された実行時間を特定することと、
コンピューティング・ジョブの集約された予測された実行時間のまとめに基づく前記複数の実行環境からの実行環境の選択に応答して、選択された実行環境において前記コンピューティング・ジョブを実行することと、
前記選択された実行環境における前記コンピューティング・ジョブの実行中に関連データを収集することと、
を含む、方法。
【請求項25】
コンピューティング・ジョブを実行するための実行環境をインテリジェントに識別するためのコンピュータプログラムであって、コンピュータに、
複数の実行環境のうちの各実行環境における前記コンピューティング・ジョブの集約された予測された実行時間を特定することと、
コンピューティング・ジョブの集約された予測された実行時間のまとめに基づく前記複数の実行環境からの実行環境の選択に応答して、選択された実行環境において前記コンピューティング・ジョブを実行することと、
前記選択された実行環境における前記コンピューティング・ジョブの実行中に関連データを収集することと、
を実行させる、コンピュータ・プログラム。
【国際調査報告】