JP2023544904A - 機械学習パイプラインの分散型リソースアウェアトレーニング - Google Patents

機械学習パイプラインの分散型リソースアウェアトレーニング Download PDF

Info

Publication number
JP2023544904A
JP2023544904A JP2023522493A JP2023522493A JP2023544904A JP 2023544904 A JP2023544904 A JP 2023544904A JP 2023522493 A JP2023522493 A JP 2023522493A JP 2023522493 A JP2023522493 A JP 2023522493A JP 2023544904 A JP2023544904 A JP 2023544904A
Authority
JP
Japan
Prior art keywords
computer
features
pipeline
pipelines
resources
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023522493A
Other languages
English (en)
Inventor
サテ、サケット
ブランブル、グレゴリー
ヴ、ロン
サロニディス、テオドロス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023544904A publication Critical patent/JP2023544904A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction

Abstract

機械学習パイプラインの分散型リソースアウェアトレーニングパイプライントレーニング要件を予測するための方法、構造、およびコンピュータシステム。例示的な実施形態は、1または複数のワーカノードから1または複数のワーカノード特徴を受信すること、トレーニングされる対象の1または複数のパイプラインから1または複数のパイプライン特徴を抽出すること、および上記1または複数のパイプラインをトレーニングするのに使用される1または複数のデータセットから1または複数のデータセット特徴を抽出することを含み得る。例示的な実施形態はさらに、上記1または複数のワーカノード特徴、1または複数のパイプライン特徴、および1または複数のデータセット特徴を上記1または複数のリソースに関連付ける1または複数のモデルに基づいて、上記1または複数のデータセットを使用して上記1または複数のパイプラインをトレーニングするために上記1または複数のワーカノードの各々について必要な1または複数のリソースの量を予測することを含み得る。最後に、例示的な実施形態は、上記1または複数のパイプラインをトレーニングするための1または複数のワーカノードの1または複数のリソースの必要な量が最小であるワーカノードを識別することを含み得る。

Description

例示的な実施形態は、一般に、機械学習パイプライン、より具体的には、自動化機械学習パイプラインの分散型のリソースアウェアトレーニングに関する。
自動化機械学習は、多くの場合、いくつかのパイプラインのトレーニングを含む。これらのパイプラインは、最適なパイプラインを見出すために様々な変圧器および推定器を探索および配置するパイプライン最適化フレームワークによって生成される。分散環境においてこれらのパイプラインをトレーニングすることは、パイプラインのトレーニングのためにどれほど多くの時間およびリソースがかかるかを事前に知ることが不可能であるので、難題である。したがって、パイプラインは、現在はワーカノードにインテリジェントに割り当てることができない。
例示的な実施形態は、パイプライントレーニングのための方法、構造、およびコンピュータシステムを開示する。例示的な実施形態は、1または複数のワーカノードから1または複数のワーカノード特徴を受信すること、トレーニングされる対象の1または複数のパイプラインから1または複数のパイプライン特徴を抽出すること、および上記1または複数のパイプラインをトレーニングするのに使用される1または複数のデータセットから1または複数のデータセット特徴を抽出することを含み得る。例示的な実施形態はさらに、上記1または複数のワーカノード特徴、1または複数のパイプライン特徴、および1または複数のデータセット特徴を上記1または複数のリソースに関連付ける1または複数のモデルに基づいて、上記1または複数のデータセットを使用して上記1または複数のパイプラインをトレーニングするために上記1または複数のワーカノードの各々について必要な1または複数のリソースの量を予測することを含み得る。最後に、例示的な実施形態は、上記1または複数のパイプラインをトレーニングするための1または複数のワーカノードの1または複数のリソースの必要な量が最小であるワーカノードを識別することを含み得る。
以下の詳細な説明は、例示的な実施形態をそれのみに限定することを意図するものではなく例として与えられるものであり、添付図面と併せると最も良好に理解されるであろう。
例示的な実施形態に従って、パイプライントレーニングシステム100の例示的な模式図を示す。 例示的な実施形態に従って、パイプライントレーニングシステム100のジョイントオプティマイザ132の動作を例示する例示的なフローチャート200を示す。 例示的な実施形態に従って、パイプライントレーニングシステム100のジョイントオプティマイザ132の動作を例示する一例を示す。 例示的な実施形態に従って、図1のパイプライントレーニングシステム100のハードウェアコンポーネントを示す例示的なブロック図を示す。 例示的な実施形態に従って、クラウドコンピューティング環境を示す。 例示的な実施形態に従って、抽象化モデル層を示す。
図面は、必ずしも原寸に比例していない。図面は単に概略図であり、例示的な実施形態の特定のパラメータを描写するように意図するものではない。図面は単に典型的な例示的な実施形態を示すように意図されている。図面において、同様の番号は同様の要素を表す。
特許請求の範囲における構造および方法の詳細な実施形態を本明細書に開示するが、しかしながら、開示の実施形態は、様々な形態で具現化されてもよい、単に特許請求の範囲における構造および方法の例示であるものと理解することができる。例示的な実施形態は単なる例示であるが、多くの異なる形態で具現化されてもよく、本明細書に記載される例示的な実施形態に限定されるものと解釈されるべきではない。それよりもむしろ、これらの例示的な実施形態は、本開示が十分かつ完全なものであるように、また例示的な実施形態によって網羅される範囲を当業者に完全に伝達するように提供されるものである。説明では、提示された実施形態を不必要に不明瞭にすることを回避するために、周知の特徴および技法の詳細を省略し得る。
本明細書における「一実施形態」、「実施形態」、「例示的な実施形態」等の記載は、説明される実施形態が、特定の機能、構造、または特性を含んでよいが、各実施形態が当該特定の機能、構造、または特性を必ずしも含むものではないことを示す。さらに、かかる語句は、必ずしも同じ実施形態に言及しているわけではない。さらに、特定の特徴、構造、または特性がある実施形態と関連して記載される場合、明示的に記載されるか否かにかかわらず他の実施形態と関連して、かかる特徴、構造、または特性を実装する、当業者の知識の範囲内で提示される。
例示的な実施形態の提示を不明瞭にしないという利益のため、以下の詳細な説明において、当該技術分野で知られているいくつかの処理段階または動作が、提示のため、および例示の目的で共に組み合わされていることがあり、いくつかの例では詳細に説明されていないことがある。他の例では、当該技術分野で知られているいくつかの処理段階または動作は、全く記載されないことがある。以下の説明は、様々な例示的な実施形態による固有の特徴または要素に注目していることが理解されるべきである。
自動化機械学習は、多くの場合、いくつかのパイプラインのトレーニングを含む。これらのパイプラインは、最適なパイプラインを見出すために様々な変圧器および推定器を探索および配置するパイプライン最適化フレームワークによって生成される。分散環境においてこれらのパイプラインをトレーニングすることは、パイプラインのトレーニングのためにどれほど多くの時間およびリソースがかかるかを事前に知ることが不可能であるので、難題である。したがって、パイプラインは、現在はワーカノードにインテリジェントに割り当てることができない。
機械学習パイプラインは、推定器によってフォローされる(データ前処理、外れ値検出、特徴量エンジニアリングなどといった)一連の動作である。そのようなパイプラインは、1)共に様々なパイプラインを組み立てる;2)交差検証を使用して、上記組み立てられたパイプラインの各1つをトレーニングする;3)結果を解析する;および4)どのパイプラインが次を実行するかを決定することを担当するジョイントオプティマイザとして知られているアルゴリズムによって管理され得る。ジョイントオプティマイザは、最も良いパイプラインを見出すまで、プロセスを継続し得る。ジョイントオプティマイザによって実行されるタスクのうち、組み立てられたパイプラインの各々の交差検証を使用したトレーニングが、最も計算的にやっかいな段階、ならびに、機械学習パイプラインのリソースアウェアトレーニングの新たな方法を開示する本明細書において特許請求される本発明の焦点である。
方法はパイプラインをトレーニングするために存在するが、しかしながら、各技法はそれぞれの欠点を有する。例えば、現在のAutoAI(登録商標)システム(AutoAIは、IBM Corp.の登録商標である)において、全ての組み立てられたパイプラインは、単一のワーカノード上で実行される。別の例において、knapsack/bin-packing技法は、パイプラインを定量化するためにパイプラインの長さを使用する。代替的に、greedy bin-packing近似アルゴリズム、例えば、第1フィットbinpackingは、使用されるビンの数を最小限に抑える方法で、異なるボリュームの項目を、有限数のビンまたは各々が固定の所定のボリュームのコンテナにパッキングする。パイプラインが特定の繰り返すような順序で分散されているラウンドロビン技術がさらに存在する。
しかしながら、先行のアプローチにはいくつかの問題が存在する。まず、それらは、様々な機械学習アルゴリズムが異なる複雑性を有するので、特定のパイプライントレーニングにどれほど多くの時間がかかるかを推定しない。第2に、ラウンドロビンなどの技法は、機械がどれほどビジーであるか、および、それらが特定のパイプラインのトレーニングを処理可能であるかどうかを考慮しない。
本明細書において特許請求される本発明は、過去のパフォーマンスを考慮したデータ駆動型アプローチを使用するとともに、パイプライントレーニングの予測モデルを構築することで、先行のアプローチの欠陥を解決する。より具体的には、特許請求される発明は、パイプラインのトレーニングのリソース要件を予測し得、以前のパイプライン実行のデータを使用して予測を向上するように継続的に学習する。
図1は、例示的な実施形態に従って、パイプライントレーニングシステム100を示す。例示的な実施形態によると、パイプライントレーニングシステム100は、1または複数のワーカノード120A-K、およびパイプライントレーニングサーバ130を含に得、これらは全てがネットワーク108を介して相互接続され得る。例示的な実施形態のプログラミングおよびデータがネットワーク108を介していくつかのサーバにわたってリモートで記憶およびアクセスされ得る一方、代替的にまたは追加的に、例示的な実施形態のプログラミングおよびデータは、わずか1つの物理コンピューティングデバイスにまたは示されたもの以外の他のコンピューティングデバイス間で、ローカルに記憶され得る。
例示的な実施形態では、ネットワーク108は、接続デバイス間でデータを転送することができる通信チャネルであってもよい。例示的な実施形態では、ネットワーク108はインターネットであってもよく、インターネットに接続されたデバイス間の通信をサポートするネットワークおよびゲートウェイの世界規模の集合体を表す。また、ネットワーク108は、有線、無線、光ファイバなどといった様々なタイプの接続を利用し得、これは、イントラネットネットワーク、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、またはそれらの組み合わせとして実装され得る。さらなる実施形態において、ネットワーク108は、Bluetooth(登録商標)ネットワーク、Wi-Fi(登録商標)ネットワーク、またはそれらの組み合わせであり得る。ネットワーク108は、2.4GHzおよび5GHzインターネット、近距離無線通信、Z-Wave(登録商標)、ZigBee(登録商標)などを含む周波数において動作し得る。別のさらなる実施形態では、ネットワーク108は、地上ネットワーク、無線ネットワーク、クローズドネットワーク、衛星ネットワーク、またはそれらの組み合わせを備える2またはそれより多くの当事者間での通話を容易にするのに使用される、電気通信ネットワークであってもよい。一般的に、ネットワーク108は、接続デバイス間の通信をサポートするであろう接続およびプロトコルの任意の組み合わせを表し得る。
例示的な実施形態において、1または複数のワーカノード120A-Kはそれぞれ、企業サーバ、ラップトップコンピュータ、ノートブック、タブレットコンピュータ、ネットブックコンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、サーバ、携帯情報端末(PDA(登録商標))、ダイヤル式電話、プッシュ式電話、スマートフォン、携帯電話、仮想デバイス、シンクライアント、IoTデバイス、または、他のコンピューティングデバイスとの間でデータを送信および受信することが可能な任意の他の電子デバイスまたはコンピューティングシステムであり得る。1または複数のワーカノード120A-Kの各々は、1または複数の機械学習パイプラインをトレーニングするように構成され得る。例示的な実施形態において、1または複数のワーカノード120A-Kの各々が同じデータセットへのアクセスを有するとともに、各パイプラインが上記1または複数のワーカノード120A-Kの単一のワーカノード120上でトレーニングされ得ると仮定する。上記1または複数のワーカノード120A-Kは、図4を参照してハードウェア実装として、図5を参照してクラウド実装の一部として、および/または図6を参照して処理のための機能抽象化層を利用してより詳細に説明される。
例示的な実施形態において、パイプライントレーニングサーバ130は、ジョイントオプティマイザ132、パフォーマンス予測器134、およびロードバランサ136を含む。パイプライントレーニングサーバ130は、企業サーバ、ラップトップコンピュータ、ノートブック、タブレットコンピュータ、ネットブックコンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、サーバ、携帯情報端末(PDA(登録商標))、ダイヤル式電話、プッシュ式電話、スマートフォン、携帯電話、仮想デバイス、シンクライアント、IoTデバイス、または、他のコンピューティングデバイスとの間でデータを送信および受信することが可能な任意の他の電子デバイスまたはコンピューティングシステムであり得る。パイプライントレーニングサーバ130は単一のデバイスとして示されている一方、他の実施形態において、パイプライントレーニングサーバ130は、共に動作するまたは独立して動作するモジュール方式などで、クラスタまたは複数のコンピューティングデバイスで構成され得る。パイプライントレーニングサーバ130、図4を参照してハードウェア実装として、図5を参照してクラウド実装の一部として、および/または図6を参照して処理のための機能抽象化層を利用してより詳細に説明される。
実施形態において、ジョイントオプティマイザ132は、様々なパイプラインを共に組み立てること、組み立てられたパイプラインの各々を交差検証を使用してトレーニングすること、結果を分析すること、およびどのパイプラインが次を実行するかを決定することが可能はソフトウェアおよび/またはハードウェアプログラムであり得る。特に、かつ組み立てられたパイプラインの各1つを交差検証を使用してトレーニングすることに関して、ジョイントオプティマイザ132はさらに、1または複数のワーカノードのハートビート特徴を受信すること、および1または複数のパイプライン特徴および1または複数のデータセット特徴を抽出することが可能であり得る。ジョイントオプティマイザ132はさらに、1または複数のモデルを生成することによって必要なパイプライントレーニングリソースを予測すること、およびそれに基づく1または複数のワーカノードを選択することが可能であり得る。最後に、ジョイントオプティマイザ132は、フィードバックループに基づいてモデルを調整することが可能であり得る。ジョイントオプティマイザ132は、図2から図6を参照してより詳細に説明されている。
パフォーマンス予測器134は、パイプラインをトレーニングするのに必要なリソースの量、例えば、所要時間を予測することが可能なソフトウェアおよび/またはハードウェアプログラムであり得る。パフォーマンス予測器134は、図2から6を参照してより詳細に説明されている。
ロードバランサ136は、それらの全体的な処理をより効率的にすることを目的として、タスクのセットをリソースのセットに分散することが可能なソフトウェアおよび/またはハードウェアプログラムであり得る。パフォーマンス予測器134は、図2から6を参照してより詳細に説明されている。
図2は、例示的な実施形態に従って、パイプライントレーニングシステム100のジョイントオプティマイザ132の動作を例示する例示的なフローチャート200を示す。以下の詳細な説明において、上記1または複数のワーカノード120A-Kの各々はデータセットへのアクセスを有するとともに、任意のパイプラインをトレーニングし得ると仮定する。1つのデータセットのみが参照されている一方、当業者であれば、特許請求される発明は任意の数のデータセットに適用可能であることが理解されるであろう。
パフォーマンス予測器134は、1または複数のワーカノード120A-Kからハートビート特徴を受信し得る(段階202)。実施形態において、ハートビート特徴は、ワーカノード120A-Kの各々のビジーさおよび電力を定量化するとともに、多数のCPUおよびその内部のコア、多数のGPUおよびその内部のコア、CPUおよびGPU利用率、CPUおよびGPUメモリおよびスワップ使用率、およびvmstatおよびiostatコマンドの出力など、ワーカノードデータから抽出された特徴を含み得る。例示的な実施形態において、ハートビート特徴は、ネットワーク108を介して、事前定義された間隔で、ジョイントオプティマイザ132のロードバランサ136によって受信され得る。しかしながら、ジョイントオプティマイザ132が1または複数のワーカノード120A-Kのうちいずれかからハートビート特徴を受信することに失敗した場合、ジョイントオプティマイザ132は、1または複数の未応答ワーカノード120A-Kを未応答としてマークし、それのためのトレーニング予測を、ハートビート特徴が再び受信されるまで省略する。実施形態において、ジョイントオプティマイザ132は、以下で説明されるパイプライン特徴およびデータセット特徴とともに、本明細書において収集されるハートビート特徴に基づいて、ワーカノード120A-Kのうちどれが最小量のリソースにおいてパイプラインをトレーニングし得るかを決定するために、モデルをトレーニングし得る。
ジョイントオプティマイザ132の動作をより良く例示するために、図3によって示された例示的な例をここで参照し、ここで、上記ジョイントオプティマイザ132は、1)主成分解析(PCA)からランダムフォレスト(RF);および2)外れ値検出(OD)からサポートベクタマシン(SVM)といった2つのパイプラインを、4つのワーカノード120A、120B、120Cおよび120Dのうちいずれかにおいてトレーニングするように構成されている。ジョイントオプティマイザ132は、多数のCPUおよびその内部のコア、多数のGPUおよびその内部のコア、CPUおよびGPU利用率、CPUおよびGPUメモリおよびスワップ使用率、およびvmstatおよびiostatコマンドの出力を含むハートビート特徴H1、H2、H3、H4をそれぞれ受信する。
ジョイントオプティマイザ132は、パイプライン特徴を抽出し得る(段階204)。実施形態において、パイプライン特徴は、推定器のタイプ、プリプロセッサのタイプ、特徴量エンジニアリングのタイプ、およびそれらのパラメータ設定を含み得、ジョイントオプティマイザ132は、トレーニングされる対象の1または複数のパイプラインのスパース符号化を実行することによって、パフォーマンス予測器134を介してパイプライン特徴を抽出し得る。特に、ジョイントオプティマイザ132は、使用済の変圧器および推定器の入力を1にセットし得、その一方、未使用の変圧器および推定器は0にセットされる。ジョイントオプティマイザ132はさらに、個々のパイプラインコンポーネントの各々のパラメータを符号化し、上記パイプラインの符号化されたバージョンを作成し得る。上記のように、ジョイントオプティマイザ132は、ハートビート特徴およびデータセット特徴とともにパイプライン特徴を利用して、ワーカノード120A-Kのうちどれが最小量のリソースを使用してパイプラインをトレーニングし得るかを予測することが可能な1または複数のモデルを構築し得る。
上記において紹介され図3によって示された例示的な例に戻ると、ジョイントオプティマイザ132は、推定器のタイプ、プリプロセッサのタイプ、特徴量エンジニアリングのタイプ、およびそれらのパラメータ設定を、上記の第1および第2のパイプラインから抽出する。
ジョイントオプティマイザ132は、1または複数のデータセット特徴を抽出し得る(段階206)。実施形態において、データセット特徴は、データセットの様々な高レベル次元をキャプチャし、抽出されたデータセット特徴は、多数のデータ点、多数の特徴、多数の交差検証分割(fold)、カテゴリー値を有する多数の特徴、実数値を有する多数の特徴、多数の欠落した値、および多数のスパース値を含み得る。上記のように、ジョイントオプティマイザ132は、ハートビート特徴およびパイプライン特徴とともにデータセット特徴を利用して、ワーカノード120A-Kのうちどれが最小量のリソースを使用してパイプラインをトレーニングし得るかを予測することが可能な1または複数のモデルを構築し得る。
図3によって例示された既に紹介された例に続いて、ジョイントオプティマイザ132は、データセットからの、データ点の数、特徴の数、CV分割の数、カテゴリー値を有する特徴の数、実数値を有する特徴の数、欠落した値の数、スパース特徴の数を含むデータセットから、データセット特徴を抽出し得る。
ジョイントオプティマイザ132は、必要なパイプライントレーニングリソースを予測し得る(段階208)。実施形態において、ジョイントオプティマイザ132は、1または複数のワーカノード120A-Kの各々について必要なパフォーマンス測定値を予測して、パフォーマンス予測器134を介してそれぞれのパイプラインをトレーニングし得る。そのような必要なパフォーマンス測定値は、時間、消費電力、ピークメモリ使用率、ピークCPU利用率などを含み得る。実施形態において、ジョイントオプティマイザ132は、機械学習または深層学習モデルを使用して、必要なパイプライントレーニングリソースを予測し得る。そのような実施形態において、ジョイントオプティマイザ132は、ランダムフォレスト、GBM、ロジスティック回帰、ディープニューラルネットワーク、およびオートエンコーダなどのアルゴリズムを使用してモデルがトレーニングされるパイプライン特徴、データセット特徴、およびハートビート特徴を入力として受信し得る。モデルは、前述の特徴の各々が、パイプラインをトレーニングするためにワーカノード120A-Kの各々に必要なリソースの量にどのように影響するかをキャプチャする。モデルがトレーニングされると、ジョイントオプティマイザ132は、パイプラインのトレーニングに関する各ワーカノードの予測されたパフォーマンス測定値を出力するために、トレーニング済みモデルを、ハートビート特徴、パイプライン特徴、およびデータセット特徴の新たなセットに適用することが可能になる。ジョイントオプティマイザ132は次に、やがてより詳細に説明されるように、予測されたパフォーマンス測定値を実際のパフォーマンス測定値と比較することに基づいてモデルを微調整(tweak)し得る。
図3によって例示されている既に紹介された例を発展させると、上記ジョイントオプティマイザ132は、上記ワーカノード120A-Dが第1のパイプラインをそれぞれA、B、C、およびD分でトレーニングさせ、第2のパイプラインをそれぞれW、X、Y、およびZ分で得ることを予測する。ジョイントオプティマイザ132はさらに、ピークCPU使用率などを予測し得る。
ジョイントオプティマイザ132は、ワーカノードを選択し得る(段階210)。実施形態において、ジョイントオプティマイザ132は、予測された必要なパイプライントレーニングリソースに基づいて、パイプラインを実行するための1または複数のワーカノード120A-Kのうちの少なくとも1つを選択し得る。実施形態において、ジョイントオプティマイザ132は、ε-Greedyまたは多腕バンディット問題アプローチに基づいて、1または複数のワーカノード120A-Kを選択し得る。ε-Greedy、またはepsilon-greedyアプローチにおいて、ジョイントオプティマイザ132は、確率(1~ε)で、最も良い予測されたワーカノード120A-Kを、確率εでランダムワーカノード120A-Kを選択する。例えば、ジョイントオプティマイザ132は次に、上位3つの予測ワーカ(1~ε)を選択し得、ここでεは0.05から0.1の間で設定され、確率εで3つのランダムワーカを選択する。ほとんどの場合において、ジョイントオプティマイザ132は、最も良い予測されたワーカノード120A-Kを選択するが、しかしながら、ジョイントオプティマイザ132がランダムワーカノード120A-Kを選択する可能性が少しある。多腕バンディットアプローチにおいて、ジョイントオプティマイザ132は、まず3つのランダムワーカを選択して、パイプラインをn回反復(例えば、n=1000)して実行することによって、モデルをトレーニングし得る。性能が最も良いワーカノード120A-Kを識別するのに十分な評価をジョイントオプティマイザ132が行うと、ジョイントオプティマイザ132は次に、性能が最も良いワーカノード120A-Kに全てのパイプラインを送信し得る。性能が最も良い動作ノード120A-Kのパフォーマンスが結果として悪化するとジョイントオプティマイザ132が決定した場合、ジョイントオプティマイザ132は次に、性能が最も良いワーカノード120A-Kをランダムで識別し、プロセスを繰り返すことに戻り得る。
既に紹介された例を参照すると、ジョイントオプティマイザ132は、第1のパイプラインをトレーニングするためのワーカノード120Aおよび第2のパイプラインをトレーニングするためのワーカノード120Bを選択する。
ジョイントオプティマイザ132は、フィードバックループに基づいてモデルを調整し得る(段階212)。実施形態において、ジョイントオプティマイザ132は、1または複数のワーカノード120A-Kによる1または複数のパイプラインのトレーニングに続く損失を決定することによって、モデルを調整し得る。特に、ジョイントオプティマイザ132は、予測された必要なパイプライントレーニングリソース、および実際の消費されたパイプライントレーニングリソースを受信し、次に、式1に基づいて損失を出力し得る。
損失=(予測されたリソース-実際のリソース) [式1]
ジョイントオプティマイザ132は、次に、勾配降下を使用して損失を逆に伝播し得る。
図3によって示された前述の例を結論付けると、ジョイントオプティマイザ132は、ワーカノード120Aが第1のパイプラインをトレーニングし、ワーカノード120Bが第2のパイプラインをトレーニングしたときの損失の識別に基づいて、モデルを調整する。
特許請求される発明の重要な特徴は、損失の逆伝播を介したパフォーマンスの経時的向上、多腕バンディットアプローチを使用した様々なトレーニングデータの生成、トレーニングデータを継続的に予測および収集し、学習し、より良い予測を行うランダムフォレストシステムの使用を含む。
当業者にとっては、前述の発明は、例えば、自動化機械学習および人工知能、分散型パイプライントレーニング、迅速かつ継続的なデータ科学パイプラインの共同最適化(data science pipeline joint optimizing)、および機械学習トレーニングパイプラインの負荷分散などの分野内で実装され得ることが理解されるであろう。特許請求されるシステムは、例えば、KubernetesおよびDockerプラットフォームにおいて実装され得、ここで、1または複数のワーカノード120A-KはDockerコンテナであり、ハートビート特徴はkubectlを使用して取得され得る。加えて、機械学習/深層学習モデルおよびε-Greedyモデルは、クラスタにおいてプライマリでまたはマイクロサービスとして実行され得る。また、上記システムは、AutoScalerを使用してスケールされること、または、ML/DLモデルの出力を使用してポッドを手動で作成することができ、上記コンテナは、各パイプライントレーニングの出力を共有クラウドまたはネットワークストレージに書き込み得、その結果、モデルはストレージからデータをピックアップしてそれらの損失を勾配降下し得る。
図3は、例示的な実施形態に従って、パイプライントレーニングシステム100のジョイントオプティマイザ132の動作を例示する一例を示す。
図4は、例示的な実施形態に従って、図1のパイプライントレーニングシステム100内において使用されるデバイスのブロック図を示す。図4は、1つの実装の例示のみを提供し、異なる実施形態が実装され得る環境に関していかなる制限も示唆しないことが理解されるべきである。示されている環境に対して多くの修正が行われてよい。
本明細書において使用されるデバイスは、1または複数のプロセッサ02と、1または複数のコンピュータ可読RAM04と、1または複数のコンピュータ可読ROM06と、1または複数のコンピュータ可読記憶媒体08と、デバイスドライバ12と、読み出し/書き込みドライブまたはインタフェース14と、ネットワークアダプタまたはインタフェース16とを含んでよく、全て通信ファブリック18を通じて相互接続される。通信ファブリック18は、プロセッサ(例えば、マイクロプロセッサ、通信およびネットワークプロセッサなど)、システムメモリ、周辺デバイス、およびシステム内の任意の他のハードウェアコンポーネント間でデータもしくは制御情報またはその両方を渡すために設計された任意のアーキテクチャで実装されてよい。
1または複数のオペレーティングシステム10、および1または複数のアプリケーションプログラム11は、それぞれのRAM 04(典型的には、キャッシュメモリを含む)のうちの1または複数を介したプロセッサ02のうちの1または複数による実行のためにコンピュータ可読記憶媒体08のうちの1または複数の上に記憶される。例示された実施形態では、コンピュータ可読記憶媒体08の各々は、内部ハードドライブの磁気ディスクストレージデバイス、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光学ディスク、半導体ストレージデバイス、例えば、RAM、ROM、EPROM、フラッシュメモリまたはコンピュータプログラムおよびデジタル情報を記憶することができる任意の他のコンピュータ可読有形ストレージデバイスであってよい。
本明細書において使用されるデバイスは、1または複数のポータブルコンピュータ可読記憶媒体26に対して読み出しおよび書き込みを行うR/Wドライブまたはインタフェース14も含んでよい。上記デバイス上のアプリケーションプログラム11は、ポータブルコンピュータ可読記憶媒体26のうちの1または複数の上に記憶され、それぞれのR/Wドライブまたはインタフェース14を介して読み出され、それぞれのコンピュータ可読記憶媒体08にロードされてよい。
本明細書において使用されるデバイスは、TCP/IPアダプタカードまたは無線通信アダプタ(OFDMA技術を使用する4G無線通信アダプタ等)等のネットワークアダプタまたはインタフェース16も含んでよい。上記コンピューティングデバイス上のアプリケーションプログラム11は、ネットワーク(例えば、インターネット、ローカルエリアネットワークまたは他のワイドエリアネットワークまたは無線ネットワーク)およびネットワークアダプタまたはインタフェース16を介して、外部コンピュータまたは外部ストレージデバイスからコンピューティングデバイスにダウンロードされてよい。ネットワークアダプタまたはインタフェース16から、プログラムがコンピュータ可読記憶媒体08にロードされてよい。ネットワークは、銅ワイヤ、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバ、またはその組み合わせを備えてよい。
本明細書において使用されるデバイスは、ディスプレイスクリーン20、キーボードまたはキーパッド22、およびコンピュータマウスまたはタッチパッド24も含んでよい。デバイスドライバ12は、画像形成するディスプレイスクリーン20、キーボードもしくはキーパッド22、コンピュータマウスもしくはタッチパッド24、もしくは英数字入力およびユーザ選択を圧力感知するディスプレイスクリーン20、またはその組み合わせに、インタフェース接続する。デバイスドライバ12、R/Wドライブまたはインタフェース14およびネットワークアダプタまたはインタフェース16は、ハードウェアおよびソフトウェア(コンピュータ可読記憶媒体08、もしくはROM06、またはその両方の上に記憶される)を含んでよい。
本明細書において説明されたプログラムは、それらが例示的な実施形態のうちの特定の1つにおいて実装される用途に基づいて識別される。しかしながら、本明細書における任意の特定のプログラム名称は、単に便宜上使用されているものであり、それゆえ、例示的な実施形態は、そのような名称によって識別もしくは示唆されるかまたはその両方が行われる任意の特定の用途のみにおいて使用することに限定されるべきでないことが理解されるべきである。
前述に基づいて、コンピュータシステム、方法、およびコンピュータプログラム製品が開示された。しかしながら、例示的な実施形態の範囲から逸脱することなく、多数の修正および置換を行うことができる。したがって、例示的な実施形態は、限定ではなく例として開示されている。
本開示はクラウドコンピューティングについての詳細な説明を含むが、本明細書で記載される教示内容の実装は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、例示的な実施形態は、現在既知の、または今後開発される任意の他のタイプのコンピューティング環境と併せて実装されることが可能である。
クラウドコンピューティングは、最小限の管理労力またはサービスのプロバイダとの対話で迅速にプロビジョニングおよびリリースできる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールに対する便利なオンデマンドネットワークアクセスを可能にするための、サービス提供モデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および、少なくとも4つの展開モデルを含み得る。
特性は以下の通りである。
オンデマンドセルフサービス:クラウドコンシューマは、サービスプロバイダとの人的対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワークストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
幅広いネットワークアクセス:各機能がネットワークを介して利用可能であり、異種のシンククライアントプラットフォームまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA(登録商標))による使用を促進する標準的なメカニズムを通じてアクセスされる。
リソースプーリング:プロバイダのコンピューティングリソースが、マルチテナントモデルを使用して複数のコンシューマにサービスを提供するようにプールされ、様々な物理リソースおよび仮想リソースの、需要に従った動的な割り当ておよび再割り当てが行われる。コンシューマは概して提供されたリソースの正確なロケーションに対して制御または知識を有していないが、より高いレベルの抽象化(例えば、国、州、またはデータセンタ)においてロケーションを指定することが可能である場合があるという点で、ロケーションの独立性がある。
迅速な拡張性:能力を迅速にかつ伸縮自在に、場合によっては自動的にプロビジョニングし、即座にスケールアウトすることも、迅速にリリースして即座にスケールインすることもできる。コンシューマにとっては、多くの場合、プロビジョニングに利用可能な能力が無制限にあるように感じられ、また、いつでもどんな量でも購入可能である。
計測サービス:サービスの種類(例えば、格納、処理、帯域幅、およびアクティブなユーザアカウント)に適したある抽象化レベルで計量能力を活用することにより、クラウドシステムはリソースの使用を自動的に制御および最適化する。リソース使用率が、モニタリング、制御、および、報告され、こうすることで、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供することができる。
サービスモデルは以下の通りである。
サービスとしてのソフトウェア(Software as a Service)(SaaS):コンシューマに提供される能力は、クラウドインフラストラクチャ上で実行しているプロバイダのアプリケーションを使用することである。アプリケーションには、ウェブブラウザ(例えば、ウェブベースのメール)等のシンクライアントインタフェースを介して様々なクライアントデバイスからアクセスできる。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージ、または、個々のアプリケーション能力さえも含む基礎となるクラウドインフラストラクチャを管理することも、制御することもない。ただし、限定されたユーザ固有のアプリケーション構成設定は例外となる場合がある。
サービスとしてのプラットフォーム(Platform as a Service)(PaaS):コンシューマに提供される能力は、プロバイダによりサポートされるプログラミング言語およびツールを使用して作成される、コンシューマが作成または取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、または、ストレージを含む基礎となるクラウドインフラストラクチャを管理することも、制御することもないが、展開されたアプリケーション、また場合によっては、アプリケーションホスティング環境構成を制御することができる。
サービスとしてのインフラストラクチャ(Infrastructure as a Service)(IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、および、他の基本的なコンピューティングリソースをプロビジョニングすることであり、コンシューマは、オペレーティングシステムおよびアプリケーションを含み得る任意のソフトウェアを展開して実行することができる。コンシューマは、基礎となるクラウドインフラストラクチャを管理することも、制御することもないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御することができ、場合によっては、選択されたネットワーキングコンポーネント(例えば、ホストファイアウォール)を限定された形で制御することができる。
展開モデルは以下の通りである。
プライベートクラウド:クラウドインフラストラクチャが、一組織のためだけに運用される。それは、組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
コミュニティクラウド:このクラウドインフラストラクチャは、いくつかの組織によって共有されており、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。これは、組織または第三者により管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリッククラウド:クラウドインフラストラクチャが、一般大衆または大きな業界団体により利用可能になり、クラウドサービスを販売する組織により所有される。
ハイブリッドクラウド:このクラウドインフラストラクチャは、2またはそれより多くのクラウド(プライベート、コミュニティ、またはパブリック)の複合体であり、2またはそれより多くのクラウドは、独自のエンティティのままであるが、データおよびアプリケーションのポータビリティ(例えば、クラウド間の負荷分散のためのクラウドバースト)を可能にする標準技術または独自技術によってともに結合される。
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性、およびセマンティック相互運用性を重視したサービス指向型である。クラウドコンピューティングの中核には、相互接続されたノードからなるネットワークを含むインフラストラクチャが存在する。
ここで図5を参照すると、例示的なクラウドコンピューティング環境50が示される。示されているように、クラウドコンピューティング環境50は、例えば、携帯情報端末(PDA)もしくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54N、またはその組み合わせ等の、クラウドコンシューマによって使用されるローカルコンピューティングデバイスが通信し得る、1または複数のクラウドコンピューティングノード40を備える。ノード40は、互いに通信してよい。それらは、上記で説明されたようなプライベートクラウド、コミュニティクラウド、パブリッククラウドまたはハイブリッドクラウド、または、それらの組み合わせなどの1または複数のネットワーク内で物理的にまたは仮想的にグループ分け(図示せず)することができる。これにより、クラウドコンピューティング環境50は、インフラストラクチャ、プラットフォーム、もしくはソフトウェア、またはその組み合わせを、クラウドコンシューマがそのためにローカルコンピューティングデバイス上にリソースを維持する必要がないサービスとして提供することが可能になる。図5に示されたコンピューティングデバイス54A~Nの種類は例示のみを意図しており、コンピューティングノード40およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能な接続またはその両方を介して(例えば、ウェブブラウザを使用して)、任意の種類のコンピュータ化デバイスと通信できることを理解されたい。
ここで図6を参照すると、クラウドコンピューティング環境50(図5)により提供される機能抽象化層のセットが示される。図6に示されるコンポーネント、層、および機能は、単に例示であることが意図され、例示的な実施形態はそれらに限定されないことが事前に理解されるべきである。図示されているように、以下の層および対応する機能が設けられている。
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェアコンポーネントを備える。ハードウェアコンポーネントの例としては、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースサーバ62、サーバ63、ブレードサーバ64、ストレージデバイス65、ならびに、ネットワークおよびネットワーキングコンポーネント66が挙げられる。いくつかの実施形態では、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を備える。
仮想化層70は、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75である、仮想エンティティの例が提供され得る抽象化層を提供する。
一実施例では、管理層80は、以下で説明する機能を提供してもよい。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を提供する。計量および価格設定82は、リソースがクラウドコンピューティング環境内で利用される際のコスト追跡と、これらのリソースの消費に対する勘定または請求を提供する。一実施例では、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティでは、クラウドコンシューマおよびタスクについての身元確認、ならびに、データおよび他のリソースについての保護が行われる。ユーザポータル83は、コンシューマおよびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービス水準管理84は、要求されるサービス水準が満たされるように、クラウドコンピューティングリソース割り当ておよび管理を提供する。サービスレベルアグリーメント(SLA)の計画および履行85は、SLAに従って将来の要件が予測されるクラウドコンピューティングリソースの事前調整および調達を提供する。
ワークロード層90は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の提供93、データ解析処理94、トランザクション処理95、およびパイプライントレーニング処理96が含まれる。
例示的な実施形態は、任意の可能な技術詳細レベルの統合におけるシステム、方法、もしくはコンピュータプログラム製品またはその組み合わせであり得る。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含んでよい。
コンピュータ可読記憶媒体は、命令実行デバイスにより使用される命令を保持および格納し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、または上述のものの任意の好適な組み合わせであり得るが、これらに限定されるものではない。コンピュータ可読記憶媒体のより具体的な例の非包括的リストは、以下の、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、パンチカードまたは命令が記録されている溝内の隆起構造などの機械的にエンコードされたデバイス、および、上述のものの任意の好適な組み合わせを含む。本明細書において使用されるコンピュータ可読記憶媒体は、電波または他の自由に伝播する電磁波、導波路または他の伝送媒体を通って伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号等、それ自体が一時的な信号であると解釈されるべきではない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされてもよく、または、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくは無線ネットワーク、またはその組み合わせを介して、外部コンピュータまたは外部ストレージデバイスにダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバ、またはその組み合わせを備え得る。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
本発明の動作を実行するコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データであってもよく、Smalltalk(登録商標)またはC++等のようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語のような手続き型プログラミング言語を含む1または複数のプログラミング言語の任意の組み合わせで記述したソースコードまたはオブジェクトコードであってもよい。コンピュータ可読プログラム命令は、スタンドアロンソフトウェアパッケージとして、ユーザのコンピュータ上で全体を実行すること、ユーザのコンピュータ上で一部分を実行することができ、ユーザのコンピュータ上で一部分を、リモートコンピュータ上で一部分を実行すること、または、リモートコンピュータもしくはサーバ上で全体を実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、またはその接続は、外部コンピュータに対して(例えば、インターネットサービスプロバイダを使用してインターネットを介して)行われてもよい。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズしてよい。
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して、説明されている。フローチャート図もしくはブロック図またはその組み合わせの各々のブロックと、フローチャート図もしくはブロック図またはその組み合わせにおけるブロックの組み合わせとが、コンピュータ可読プログラム命令によって実装できることが理解されよう。
これらのコンピュータ可読プログラム命令をコンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供してマシンを生成してよく、それにより、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャートもしくはブロック図、またはその両方の単数または複数のブロックで指定された機能/動作を実装する手段を作成するようになる。また、これらのコンピュータ可読プログラム命令は、コンピュータ、プログラマブルデータ処理装置、もしくは、他のデバイス、または、その組み合わせに特定の方式で機能するように指示することが可能なコンピュータ可読記憶媒体にも記憶することができ、これにより、命令を記憶したコンピュータ可読記憶媒体が、フローチャートもしくはブロック図の、またはこれらの両方の単数または複数のブロックで指定される機能/動作の態様を実装する命令を含む製品を含むようになる。
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブルデータ処理装置、または、他のデバイスにロードして、コンピュータ、他のプログラマブル装置、または、他のデバイス上で一連の動作段階を実行させることでコンピュータ実装プロセスを生成することもでき、これにより、コンピュータ、他のプログラマブル装置、または、他のデバイス上で実行される命令が、フローチャートもしくはブロック図の、またはこれらの両方の単数または複数のブロックで指定される機能/動作を実装するようになる。
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品の考えられる実装のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実装する1または複数の実行可能命令を含む命令のモジュール、セグメント、または部分を表し得る。いくつかの代替的な実装形態において、ブロックに記されている機能は、図面に記されている順序とは異なる順序で行われ得る。例えば、連続して示されている2つのブロックが、実際には、1つの段階として実現されてもよく、同時に、実質的に同時に、部分的にもしくは全体的に時間重複する方式で実行されてもよく、または、ブロックは、場合によっては、関与する機能性に依存して逆の順序で実行されてもよい。また、ブロック図もしくはフローチャート図、またはその両方の各ブロック、およびブロック図もしくはフローチャート図、またはその両方のブロックの組み合わせは、指定された機能または動作を実行する、または専用ハードウェアとコンピュータ命令との組み合わせを実行する専用ハードウェアベースシステムによって実装できることにも留意されたい。

Claims (20)

  1. パイプライントレーニング要件を予測するためのコンピュータ実装方法であって、前記コンピュータ実装方法は、
    1または複数のワーカノードから1または複数のワーカノード特徴を受信する段階;
    トレーニングされる対象の1または複数のパイプラインから1または複数のパイプライン特徴を抽出する段階;
    前記1または複数のパイプラインをトレーニングするのに使用される1または複数のデータセットから1または複数のデータセット特徴を抽出する段階;
    前記1または複数のワーカノード特徴、前記1または複数のパイプライン特徴、および前記1または複数のデータセット特徴を前記1または複数のリソースに関連付ける1または複数のモデルに基づいて、前記1または複数のデータセットを使用して前記1または複数のパイプラインをトレーニングするために前記1または複数のワーカノードの各々について必要な1または複数のリソースの量を予測する段階;および
    前記1または複数のパイプラインをトレーニングするための前記1または複数のワーカノードの前記1または複数のリソースの必要な量が最小であるワーカノードを識別する段階
    を備える、コンピュータ実装方法。
  2. 前記1または複数のパイプラインをトレーニングするために前記ワーカノードによって必要とされるリソースの実際の量を決定する段階;および
    前記リソースの予測された量および前記リソースの実際の量の比較に基づいて前記1または複数のモデルを調整する段階
    をさらに備える、請求項1に記載のコンピュータ実装方法。
  3. 前記1または複数のワーカノード特徴はそれぞれ、多数のCPUおよびその内部のコア、多数のGPUおよびその内部のコア、CPU利用率、GPU利用率、CPUメモリ、GPUメモリ、CPUおよびGPUスワップ使用率、および、vmstatおよびiostatコマンドの出力を含む、請求項1に記載のコンピュータ実装方法。
  4. 前記1または複数のパイプライン特徴は、推定器のタイプ、プリプロセッサのタイプ、特徴量エンジニアリングのタイプ、およびそれらのパラメータ設定を含む、請求項1に記載のコンピュータ実装方法。
  5. 前記1または複数のデータセット特徴は、多数のデータ点、多数の特徴、多数の交差検証分割、カテゴリー値を有する多数の特徴、実数値を有する多数の特徴、多数の欠落値、および多数のスパース値を含む、請求項1に記載のコンピュータ実装方法。
  6. 前記1または複数のモデルは、ランダムフォレスト、GBM、ロジスティック回帰、ディープニューラルネットワーク、およびオートエンコーダを介してトレーニングされる、請求項1に記載のコンピュータ実装方法。
  7. 前記1または複数のリソースは、トレーニング時間、消費電力、ピークCPU利用率、およびピークメモリ利用率を含む、請求項1に記載のコンピュータ実装方法。
  8. パイプライントレーニング要件を予測するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、
    1または複数の非一時的コンピュータ可読記憶媒体、および、方法を実行することが可能な前記1または複数の非一時的コンピュータ可読記憶媒体に記憶されたプログラム命令
    を備え、前記方法は、
    1または複数のワーカノードから1または複数のワーカノード特徴を受信する段階;
    トレーニングされる対象の1または複数のパイプラインから1または複数のパイプライン特徴を抽出する段階;
    前記1または複数のパイプラインをトレーニングするのに使用される1または複数のデータセットから1または複数のデータセット特徴を抽出する段階;
    前記1または複数のワーカノード特徴、前記1または複数のパイプライン特徴、および前記1または複数のデータセット特徴を前記1または複数のリソースに関連付ける1または複数のモデルに基づいて、前記1または複数のデータセットを使用して前記1または複数のパイプラインをトレーニングするために前記1または複数のワーカノードの各々について必要な1または複数のリソースの量を予測する段階;および
    前記1または複数のパイプラインをトレーニングするための前記1または複数のワーカノードの前記1または複数のリソースの必要な量が最小であるワーカノードを識別する段階
    を含む、コンピュータプログラム製品。
  9. 前記1または複数のパイプラインをトレーニングするために前記ワーカノードによって必要とされるリソースの実際の量を決定する段階;および
    前記リソースの予測された量および前記リソースの実際の量の比較に基づいて前記1または複数のモデルを調整する段階
    をさらに備える、請求項8に記載のコンピュータプログラム製品。
  10. 前記1または複数のワーカノード特徴はそれぞれ、多数のCPUおよびその内部のコア、多数のGPUおよびその内部のコア、CPU利用率、GPU利用率、CPUメモリ、GPUメモリ、CPUおよびGPUスワップ使用率、および、vmstatおよびiostatコマンドの出力を含む、請求項8に記載のコンピュータプログラム製品。
  11. 前記1または複数のパイプライン特徴は、推定器のタイプ、プリプロセッサのタイプ、特徴量エンジニアリングのタイプ、およびそれらのパラメータ設定を含む、請求項8に記載のコンピュータプログラム製品。
  12. 前記1または複数のデータセット特徴は、多数のデータ点、多数の特徴、多数の交差検証分割、カテゴリー値を有する多数の特徴、実数値を有する多数の特徴、多数の欠落値、および多数のスパース値を含む、請求項8に記載のコンピュータプログラム製品。
  13. 前記1または複数のモデルは、ランダムフォレスト、GBM、ロジスティック回帰、ディープニューラルネットワーク、およびオートエンコーダを介してトレーニングされる、請求項8に記載のコンピュータプログラム製品。
  14. 前記1または複数のリソースは、トレーニング時間、消費電力、ピークCPU利用率、およびピークメモリ利用率を含む、請求項8に記載のコンピュータプログラム製品。
  15. パイプライントレーニング要件を予測するためのコンピュータシステムであって、前記コンピュータシステムは、
    1または複数のコンピュータプロセッサ、1または複数のコンピュータ可読記憶媒体、および、方法を実行することが可能な前記1または複数のプロセッサのうちの少なくとも1つによって実行されるために前記コンピュータ可読記憶媒体のうちの1または複数に記憶されたプログラム命令
    を備え、前記方法は、
    1または複数のワーカノードから1または複数のワーカノード特徴を受信する段階;
    トレーニングされる対象の1または複数のパイプラインから1または複数のパイプライン特徴を抽出する段階;
    前記1または複数のパイプラインをトレーニングするのに使用される1または複数のデータセットから1または複数のデータセット特徴を抽出する段階;
    前記1または複数のワーカノード特徴、前記1または複数のパイプライン特徴、および前記1または複数のデータセット特徴を前記1または複数のリソースに関連付ける1または複数のモデルに基づいて、前記1または複数のデータセットを使用して前記1または複数のパイプラインをトレーニングするために前記1または複数のワーカノードの各々について必要な1または複数のリソースの量を予測する段階;および
    前記1または複数のパイプラインをトレーニングするための前記1または複数のワーカノードの前記1または複数のリソースの必要な量が最小であるワーカノードを識別する段階
    を含む、コンピュータシステム。
  16. 前記1または複数のパイプラインをトレーニングするために前記ワーカノードによって必要とされるリソースの実際の量を決定する段階;および
    前記リソースの予測された量および前記リソースの実際の量の比較に基づいて前記1または複数のモデルを調整する段階
    をさらに備える、請求項15に記載のコンピュータシステム。
  17. 前記1または複数のワーカノード特徴はそれぞれ、多数のCPUおよびその内部のコア、多数のGPUおよびその内部のコア、CPU利用率、GPU利用率、CPUメモリ、GPUメモリ、CPUおよびGPUスワップ使用率、および、vmstatおよびiostatコマンドの出力を含む、請求項15に記載のコンピュータシステム。
  18. 前記1または複数のパイプライン特徴は、推定器のタイプ、プリプロセッサのタイプ、特徴量エンジニアリングのタイプ、およびそれらのパラメータ設定を含む、請求項15に記載のコンピュータシステム。
  19. 前記1または複数のデータセット特徴は、多数のデータ点、多数の特徴、多数の交差検証分割、カテゴリー値を有する多数の特徴、実数値を有する多数の特徴、多数の欠落値、および多数のスパース値を含む、請求項15に記載のコンピュータシステム。
  20. 前記1または複数のモデルは、ランダムフォレスト、GBM、ロジスティック回帰、ディープニューラルネットワーク、およびオートエンコーダを介してトレーニングされる、請求項15に記載のコンピュータシステム。
JP2023522493A 2020-10-13 2021-09-16 機械学習パイプラインの分散型リソースアウェアトレーニング Pending JP2023544904A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/068,890 US11829799B2 (en) 2020-10-13 2020-10-13 Distributed resource-aware training of machine learning pipelines
US17/068,890 2020-10-13
PCT/IB2021/058455 WO2022079517A1 (en) 2020-10-13 2021-09-16 Distributed resource-aware training of machine learning pipelines

Publications (1)

Publication Number Publication Date
JP2023544904A true JP2023544904A (ja) 2023-10-25

Family

ID=81077705

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023522493A Pending JP2023544904A (ja) 2020-10-13 2021-09-16 機械学習パイプラインの分散型リソースアウェアトレーニング

Country Status (8)

Country Link
US (1) US11829799B2 (ja)
JP (1) JP2023544904A (ja)
KR (1) KR20230061423A (ja)
CN (1) CN116368504A (ja)
AU (1) AU2021359236A1 (ja)
DE (1) DE112021004663T5 (ja)
GB (1) GB2614475B (ja)
WO (1) WO2022079517A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829799B2 (en) 2020-10-13 2023-11-28 International Business Machines Corporation Distributed resource-aware training of machine learning pipelines
CN114816758B (zh) * 2022-05-10 2023-01-06 北京百度网讯科技有限公司 资源分配方法和装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140215471A1 (en) * 2013-01-28 2014-07-31 Hewlett-Packard Development Company, L.P. Creating a model relating to execution of a job on platforms
US10614361B2 (en) 2015-09-09 2020-04-07 Intel Corporation Cost-sensitive classification with deep learning using cost-aware pre-training
US11087234B2 (en) * 2016-01-29 2021-08-10 Verizon Media Inc. Method and system for distributed deep machine learning
CN107784364B (zh) 2016-08-25 2021-06-15 微软技术许可有限责任公司 机器学习模型的异步训练
US11410024B2 (en) 2017-04-28 2022-08-09 Intel Corporation Tool for facilitating efficiency in machine learning
US10832094B2 (en) * 2018-04-10 2020-11-10 International Business Machines Corporation Generating hyperspectral image database by machine learning and mapping of color images to hyperspectral domain
US11184247B2 (en) * 2018-06-19 2021-11-23 International Business Machines Corporation Workload management for computing cluster
CN108887440A (zh) 2018-08-23 2018-11-27 张成革 一种食疗保健茶及其生产方法
US11244242B2 (en) * 2018-09-07 2022-02-08 Intel Corporation Technologies for distributing gradient descent computation in a heterogeneous multi-access edge computing (MEC) networks
US11823073B2 (en) * 2018-11-14 2023-11-21 Sap Se Declarative debriefing for predictive pipeline
CN109559734B (zh) 2018-12-18 2022-02-18 百度在线网络技术(北京)有限公司 声学模型训练的加速方法和装置
US11443234B2 (en) * 2019-09-25 2022-09-13 Sap Se Machine learning data processing pipeline
CN111260073A (zh) * 2020-01-09 2020-06-09 京东数字科技控股有限公司 数据处理方法、装置和计算机可读存储介质
US11829799B2 (en) 2020-10-13 2023-11-28 International Business Machines Corporation Distributed resource-aware training of machine learning pipelines

Also Published As

Publication number Publication date
DE112021004663T5 (de) 2023-08-03
US11829799B2 (en) 2023-11-28
GB2614475B (en) 2023-12-27
GB202304310D0 (en) 2023-05-10
US20220114019A1 (en) 2022-04-14
GB2614475A (en) 2023-07-05
CN116368504A (zh) 2023-06-30
AU2021359236A1 (en) 2023-04-20
KR20230061423A (ko) 2023-05-08
WO2022079517A1 (en) 2022-04-21

Similar Documents

Publication Publication Date Title
US11805076B2 (en) Microservice placement in hybrid multi-cloud using graph matching
JP7372012B2 (ja) 所望の特性を有する材料を見つけるための機械学習フレームワーク
JP2023549655A (ja) コンテナ・スケーリングおよび移動を実施する方法、システム
US10891547B2 (en) Virtual resource t-shirt size generation and recommendation based on crowd sourcing
KR20230002702A (ko) 파이프라인 아티팩트들 선정의 동적 자동화
JP2023508076A (ja) アプリケーション・ベースのプロファイリングを用いた機械学習ワークロードの弾力的な実行
US20200278863A1 (en) Mapping components of a non-distributed environment to a distributed environment
US11829496B2 (en) Workflow for evaluating quality of artificial intelligence (AI) services using held-out data
JP2023544904A (ja) 機械学習パイプラインの分散型リソースアウェアトレーニング
US20200302350A1 (en) Natural language processing based business domain modeling
US20230077708A1 (en) Microservice measurement and merging
US11082520B2 (en) Process broker for executing web services in a system of engagement and system of record environments
US11410023B2 (en) Lexicographic deep reinforcement learning using state constraints and conditional policies
US10635579B2 (en) Optimizing tree pruning for decision trees
US20220083876A1 (en) Shiftleft topology construction and information augmentation using machine learning
CN117716373A (zh) 基于期望的度量值提供机器学习模型
JP2023538941A (ja) コンテナ化された環境のインテリジェントバックアップ及び復元
US10902046B2 (en) Breaking down a high-level business problem statement in a natural language and generating a solution from a catalog of assets
Ahmad et al. Towards establishing a catalogue of patterns for architecting mobile cloud software
CN114424216A (zh) 域特定模型压缩
US20190373110A1 (en) Predicting 'usefullness' of a call by analysing digital footprint of a person
US20220012220A1 (en) Data enlargement for big data analytics and system identification
TWI822290B (zh) 相關於用於訓練機器學習模型之聯合學習之電腦實施方法、電腦系統及電腦程式產品
US20230297705A1 (en) Contextualization of organization data and handling storage quantification
JP2023157843A (ja) コンピュータ実装方法、コンピュータプログラムおよびコンピュータシステム(動的なマスキングを用いたリソース制限のある連合学習)

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230424

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240215