JP7629257B2 - アプリケーション・ベースのプロファイリングを用いた機械学習ワークロードの弾力的な実行 - Google Patents

アプリケーション・ベースのプロファイリングを用いた機械学習ワークロードの弾力的な実行 Download PDF

Info

Publication number
JP7629257B2
JP7629257B2 JP2022538947A JP2022538947A JP7629257B2 JP 7629257 B2 JP7629257 B2 JP 7629257B2 JP 2022538947 A JP2022538947 A JP 2022538947A JP 2022538947 A JP2022538947 A JP 2022538947A JP 7629257 B2 JP7629257 B2 JP 7629257B2
Authority
JP
Japan
Prior art keywords
execution
resource
application
profile
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022538947A
Other languages
English (en)
Other versions
JP2023508076A (ja
Inventor
フォン,リアーナ
シーラム,シーザラミ
ヴェンカタラマン,ガネッシュ
サハ,デバシッシュ
ウム,ポウンレーク
ヴェルマ,アーチット
レディ,プラブハット,マディクンタ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2023508076A publication Critical patent/JP2023508076A/ja
Application granted granted Critical
Publication of JP7629257B2 publication Critical patent/JP7629257B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/5072Grid computing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Electrically Operated Instructional Devices (AREA)

Description

本実施形態は、機械学習モデルをトレーニングして、機械学習ワークロードの実行をプロファイルすることに関する。より詳細には、本実施形態は、アプリケーション実行およびリソース使用の結合プロファイルを生成することと、トレーニングされた機械学習モデルにカプセル化された実行モデルを利用して、機械学習アプリケーション実行および対応するパフォーマンスをサポートするためにリソース管理システムと相互作用することに関する。
人工知能(AI)は、人間に関連した、コンピュータおよびコンピュータの挙動に向けられたコンピュータ科学の分野に関する。AIは、マシンが、情報に基づいて、所与のトピックにおける成功の機会を最大にするような決定を行うことが可能なインテリジェンスを意味する。より具体的には、AIは、データセットから学習して、問題を解決し、関連するレコメンデーションを提供することができる。例えば、人工知能コンピュータ・システムの分野では、自然言語システム(IBM(登録商標)Watson(登録商標)人工知能コンピュータ・システムまたは他の自然言語質問応答システム)は、システムが獲得した知識に基づいて自然言語を処理する。自然言語を処理するために、システムは、知識のコーパスから導出されたデータを用いてトレーニングされ得るが、もたらされる結果は、様々な理由で様々な程度の精度を有する可能性がある。
人工知能(AI)のサブセットである機械学習(ML)は、アルゴリズムを利用してデータから学習し、このデータに基づいて予見を生成する。MLは、明示的にプログラムされていないタスクを実行することによって学習の挙動を実証することができるニューラル・ネットワークを含むモデルの作成を介したAIの応用である。MLワークロードは、大きなデータセット、データに対する高速かつ並列なアクセス、および学習をサポートするためのトレーニング用アルゴリズムを必要とする。MLワークロードをサポートするハードウェアの例には、これらに限定されるものではないが、グラフィック処理ユニット(GPU)などのアクセラレータ、中央処理ユニット(CPU)インフラストラクチャおよびストレージ・ソリューションが含まれる。MLワークロードに対するリソース使用の特性は、通常、デバッグおよび実行タイミングの調査のために収集されるリソース・プロファイリングを有する。リソース・プロファイリング収集は、現在、アプリケーションまたはワークロード実行とは独立した、タイミング・フレームワークを使用する。ワークロード実行とリソース使用との相関を改善するために、同一のタイミング・フレームワークを使用して、ワークロード実行およびリソース使用の結合プロファイリングを有することは有利であろう。さらに、結合プロファイリングは、異なる組のMLパラメータを用いて、タスクレベルまたは反復レベルでのような粒度の細かい相関を可能にするであろう。したがって、MLワークロードをサポートするために適切な量のリソースを用いて、結合プロファイリングは、効果的で効率的なリソースの使用およびワークロード実行をサポートするための手段となり得る。
実施形態は、効果的で効率的なMLアプリケーション実行を計算リソース割り当てと融合するための人工知能プラットフォームを採用するためのシステム、コンピュータ・プログラム製品および方法を含む。
一実施形態において、システムは、人工知能(AI)プラットフォームとともに使用して、MLアプリケーション実行モデラーをトレーニングし、維持し、アプリケーション・ベースのプロファイリングを使用して機械学習ワークロードを弾力的に実行するために提供される。図示されるように、システムは、メモリに動作可能に結合された、例えばプロセッサなどの処理ユニットおよび処理ユニットと通信するAIプラットフォームを有して提供される。AIプラットフォームは、プロファイル・マネージャ、MLマネージャおよびディレクタの形態のツールを埋め込まれている。プロファイル・マネージャは、MLアプリケーション実行データおよびリソース使用データの両方から構成される結合プロファイルを生成するように機能する。MLマネージャは、結合プロファイルから、1または複数の特徴およびシグネチャを識別し、MLアプリケーション実行およびリソース使用のためのML実行モデルを構築するように機能する。ML実行モデルは、特徴(単数または複数)およびシグネチャ(単数または複数)を利用する。ディレクタは、ML実行モデルを適用し、後続のアプリケーション実行への1または複数の指令を提供するように機能する。ディレクタによるアプリケーションは、ML実行が、弾力的な割り当てがアプリケーション実行をサポートしながら、リソース管理コンポーネントからの1または複数のリソースを弾力的に割り当て、また、要求することをサポートしかつ可能にする。
別の実施形態においては、アプリケーション・ベースのプロファイリングを使用してMLワークロードの弾力的な実行をサポートするコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、そこに具現化されたプログラム・コードを有するコンピュータ可読ストレージ媒体を含み、プログラム・コードは、プロセッサによって実行可能であり、MLアプリケーション実行モデラーをトレーニングしてかつ維持し、アプリケーション・ベースのプロファイリングを使用してMLワークロードを弾力的に実行する。プログラム・コードは、MLアプリケーション実行データおよびリソース使用データの両方から構成される結合プロファイルを生成するために提供される。プログラム・コードは、結合プロファイルから1または複数の特徴およびシグネチャを識別し、MLアプリケーション実行およびリソース使用のためのML実行モデルを構築するために提供される。ML実行モデルは、特徴(単数または複数)およびシグネチャ(単数または複数)を利用する。プログラム・コードは、ML実行モデルを適用し、その後のアプリケーション実行への1または複数の指令を提供する。プログラム・コードの適用は、ML実行が、弾力割り当てがアプリケーションの実行をサポートしながら、リソース管理コンポーネントから1または複数のリソースを弾力的に割り当て、要求することをサポートしかつ可能にする。
さらに別の実施形態においては、アプリケーション・ベースのプロファイリングを用いてMLワークロードを弾力的に実行するためにML実行モデルをトレーニングおよび維持することを含む、アプリケーション・ベースのプロファイリングを使用してMLワークロードの弾力的実行をサポートする方法が提供される。MLアプリケーション実行データおよびリソース使用データの両方から構成される結合プロファイルが生成される。結合プロファイルからの1または複数の特徴および1または複数のシグネチャが識別され、MLアプリケーション実行およびリソース使用のためのML実行モデルが構築される。ML実行モデルは、特徴(単数または複数)およびシグネチャ(単数または複数)を利用する。ML実行モデルが適用され、その後のアプリケーション実行への1または複数の指令を提供する。ML実行モデルの適用は、ML実行が、弾力割り当てがアプリケーション実行をサポートしながら、リソース管理コンポーネントから1または複数のリソースを弾力的に割り当て、かつ要求することをサポートし、可能とする。
1つの側面によれば、メモリに動作可能に結合された処理ユニットと、アプリケーション・ベースのプロファイリングを用いて1または複数の機械学習ワークロードを弾力的に実行するツールを有する、処理ユニットと通信する人工知能(AI)プラットフォームとを含むコンピュータ・システムが提供され、ここで、ツールは、機械学習(ML)アプリケーション実行およびリソース使用で構成される結合プロファイルを生成するプロファイル・マネージャと、生成された結合プロファイルから1または複数の特徴および1または複数のシグネチャを識別し、MLアプリケーション実行パフォーマンスおよびリソース使用のためのML実行モデルを構築する機械学習マネージャであって、ML実行モデルは、識別された1または複数の特徴および1または複数のシグネチャを利用する、機械学習マネージャと、ML実行モデルを適用し、アプリケーション実行をサポートするために、ML実行モデルが、リソース管理コンポーネントからの1または複数のリソースを弾力的に割り当てることおよび要求することを含む、後続のアプリケーション実行への1または複数の指令を提供するディレクタとを含む。
別の側面によれば、アプリケーション・ベースのプロファイリングを用いて機械学習ワークロードの弾力的な実行をサポートするためのコンピュータ・プログラム製品が提供され、コンピュータ・プログラム製品は、そこに具現化されたプログラム・コードを有するコンピュータ可読ストレージ媒体を含み、プログラム・コードは、プロセッサによって、機械学習(ML)アプリケーション実行およびリソース使用で構成される結合プロファイルを生成することと、生成された結合プロファイルから1または複数の特徴および1または複数のシグネチャを識別し、MLアプリケーション実行パフォーマンスおよびリソース使用のためのML実行モデルを構築することであって、ML実行モデルは、識別された1または複数の特徴および1または複数のシグネチャを利用する、構築することと、ML実行モデルを適用し、アプリケーション実行をサポートするために、リソース管理コンポーネントからの1または複数のリソースを弾力的に割り当てることおよび要求することを含む、後続のアプリケーション実行への1または複数の指令を提供することとを行うように実行可能である。
別の側面によれば、方法が提供され、方法は、機械学習(ML)アプリケーション実行およびリソース使用で構成される結合プロファイルを生成することと、生成された結合プロファイルから1または複数の特徴および1または複数のシグネチャを識別し、MLアプリケーション実行パフォーマンスおよびリソース使用のためのML実行モデルを構築することであって、ML実行モデルは、識別された1または複数の特徴および1または複数のシグネチャを利用する、構築することと、ML実行モデルを適用し、アプリケーション実行をサポートするために、リソース管理コンポーネントからの1または複数のリソースを弾力的に割り当てることおよび要求することを含む、後続のアプリケーション実行への1または複数の指令を提供することとを含む。
これらおよび他の特徴および利点は、添付の図面と関連して以下の現時点で好ましい実施形態の詳細な説明から、明らかになるであろう。
以下の図面を参照しながら、本発明の好適な実施形態について、単なる例示として説明する。
好適な実施形態による、リソースを有効に使用してMLアプリケーションの効率的な実行をサポートするML結合プロファイルの概要を説明するためのブロック図。 好適な実施形態による、MLプログラムの効率的な実行および計算リソースの有効な割り当ておよび使用をサポートするための人工知能プラットフォームを有するコンピュータ・システムの概略図。 好ましい実施形態による、図2に示すような人工知能プラットフォームおよび対応するツール、並びに、それらに関連するアプリケーション・プログラム・インタフェースを示すブロック図。 好ましい実施形態による、MLモデリングおよび計算リソース割り当ての弾力性のためのプロセスを示すフロー図。 好ましい実施形態による、図1~図4に関して上述したシステムおよびプロセスを実現するためのクラウド・ベースのサポート・システムのコンピュータ・システム/サーバの一例を示すブロック図。 好ましい実施形態による、クラウド・コンピュータ環境を示すブロック図。 好ましい実施形態による、クラウド・コンピューティング環境によって提供される機能抽象モデル層のセットを示すブロック図。
図面に示される特徴は、他に明示的に示されない限り、いくつかの実施形態のみであり、すべての実施形態を例示するものではないことを意味する。
本実施形態の構成要素は、本明細書において図面中に一般的に説明され、また記載されるが、多種多様な構成で配置され、また設計されてもよいことが容易に理解されるであろう。よって、図面に示されるような、本実施形態の装置、システム、方法およびコンピュータ・プログラム製品の実施形態についての以下の詳細な説明は、特許請求されるように、実施形態の範囲を限定することを意図するものではなく、単に選択された実施形態を表すに過ぎない。
本明細書全体を通して、「選択された実施形態」、「一実施形態」または「実施形態」との言及は、その実施形態に関連して説明された特定の特徴、構造または特性が、少なくとも1つの実施形態に含まれることを意味する。よって、本明細書全体にわたる種々の箇所での「選択された実施形態」、「一実施形態においては」という語句の出現は、必ずしも同一の実施形態を参照するとは限らない。
図示された実施形態は、同様の部分が同様の数字によって一貫して指定される図面を参照することによって、最もよく理解されるであろう。以下の説明は、例としてのみ意図され、特許請求される実施形態に一致する、デバイス、システムおよびプロセスのある選択された実施形態を単に例示する。
機械学習は、データを準備し、アルゴリズムをトレーニングし、機械学習モデルを生成し、次いで予測を作成および改良するプロセスに従う。機械学習モデルは、概して、教師あり機械学習、教師なし機械学習、強化機械学習および深層学習といった基本的なカテゴリの1つに分類される。例えば、深層学習は、人間の脳が情報を処理するやり方のモデルとしてニューラル・ネットワークを採用する。ニューラル・ネットワークの基本ユニットは、ニューロンと参照され、これは、典型的には層に編成される。ニューラル・ネットワークは、ニューロンの抽象バージョンと共通点がある多数の相互接続された処理ユニットをシミュレートすることによって動作する。ニューラル・ネットワークには、典型的には、入力フィールドを表すユニットを有する入力層と、1または複数の隠れ層と、ターゲットフィールドを表す単一のユニットまたは複数のユニットを有する出力層とを含む、3つの部分がある。これらのユニットは、様々な接続強度または重みをもって接続されている。入力データが第1層に与えられ、各ニューロンから次の層のすべてのニューロンに値が伝播される。最終的には、出力層から結果が配信される。深層学習複素ニューラル・ネットワーク(Deep learning complex neural networks)は、人間の脳がどのように機能するかをエミュレートするように設計されているため、コンピュータは、不完全に定義された抽象概念および問題をサポートするようにトレーニングされ得る。ニューラル・ネットワークおよび深層学習は、画像認識、音声およびコンピュータ・ビジョンのアプリケーションにおいてしばしば使用される。機械学習は、データに基づいて、学習し、予測を生成することができる。機械学習は、また、効率的なワークロードの実行に影響を与えるために、結合プロファイリング・データを使用して、細粒度の間隔でのリソースの有効な割り当てに関する洞察を得ることができる。
MLモデルは、モデルの処理ニーズを適切にサポートするために広範なハードウェア要件を有することが理解される。このようなハードウェア・リソース要件の例には、これらに限定されるものではないが、RAM、ディスク空間、GPUおよびCPUが含まれる。リソースの管理は、複数のMLモデル間でのリソースの共有をサポートするために割り当てられてもよい。本明細書において示され、また説明されるように、また、図面において実証されるように、MLワークロード情報は、アプリケーション実行をサポートするためにリソースを適切に割り当てるために、リソース情報に相関される。MLルーチン上でのリソース使用は、実行中に、監視され、また収集され、その後、後続のMLワークロードに対するリソースの予測および割り当てのために使用される。よって、ML技術は、後続のMLワークロードのためのリソース割り当てのために利用される。
図1を参照すると、リソースの有効な使用とともにMLアプリケーションの効率的な実行をサポートするためのML結合プロファイルの概要を示すブロック図100が提供される。図示されるように、ML実行モデル110は、MLアプリケーション実行およびリソース使用のために開発される。ML実行モデル110は、学習し、予測し、他のMLアプリケーションにリソースを割り当てるために機械学習技術を用いる。より具体的には、ML実行モデル110は、ML技術に基づくパフォーマンス予測モデルである。実行モデルは、MLアプリケーションの以前の実行からの履歴データ120と、以前のML実行モデル反復の最近収集されたデータ130とを用いて構築される。ML実行モデル110の機能性は、アプリケーション実行パフォーマンスを適切な計算リソースに相関させることである。本明細書に示すように、ML実行モデル110は、リソース管理システム140と相互作用し、アプリケーション実行のためにリソースを効果的かつ効率的に1または複数のMLモデル150に誘導する。したがって、本明細書で示されるように、ML実行モデル110は、アプリケーションおよびリソース管理の結合プロファイルを生成または収集するためのコンポーネントとして機能する。
図2を参照すると、MLプログラムの効率的な実行および計算リソースの有効な割り当ておよび使用をサポートするための人工知能プラットフォームを有するコンピュータ・システム200の概略図が示されている。図示されるように、サーバ210は、ネットワーク接続205を横断して、複数のコンピューティング・デバイス280,282,284,286,288および290と通信して提供される。サーバ210は、バス214を介してメモリ216と通信する、例えばプロセッサなどの処理ユニット212で構成される。プロセッサは、CPUまたはGPUであってもよい。サーバ210は、機械学習モデルを、アプリケーション実行およびリソース使用の結合プロファイルとしてトレーニングするためのコラボレーションをサポートする人工知能(AI)プラットフォーム250を有して示される。コンピューティング・デバイス280,282,284,286,288および290は、1または複数の有線もしくは無線またはその両方のデータ通信リンクを介して互いに、および他のデバイスまたはコンポーネントと通信することができ、ここで、各通信リンクは、1または複数の配線、ルータ、スイッチ、送信機、受信機などを含んでもよい。このネットワーク化された配置において、サーバ210およびネットワーク接続205は、通信検出、認識および解決を可能にする。サーバ210の他の実施形態は、本明細書で示されているもの以外のコンポーネント、システム、サブシステムもしくはデバイスまたはその組み合わせと共に使用されてもよい。
AIプラットフォーム250は、種々のソースから入力202を受け取るように構成されて本明細書に示される。例えば、AIプラットフォーム250は、ネットワーク205からの入力を受信し、本明細書においてコーパスまたは知識ベースとも参照されるデータソース270を利用して、出力または応答内容を生成してもよい。AIプラットフォーム250は、機械学習コラボレーションをサポートおよび可能とし、アプリケーション・ベースのプロファイリングを使用した機械学習ワークロードを弾力的に実行するツールとともに提供される。
AIプラットフォーム250は、アプリケーション実行、並びにリソース割り当ておよび管理の間のコラボレーションを可能にするためおよびサポートするためのプラットフォームとして機能する。一実施形態においては、AIプラットフォーム250は、ネットワーク205を横断した1または複数のコンピューティング・デバイス280~290のような、サーバ210に動作可能に結合されたメンバに応答出力を通信する。
AIプラットフォーム250は、プロファイル・マネージャ252と、機械学習(ML)マネージャ254と、ディレクタ256と、リソース・マネージャ258とを含む、ニューラル・モデル・コラボレーションをサポートするためのいくつかのツールを有するように本明細書において示されている。プロファイル・マネージャ252は、MLアプリケーション実行およびリソース使用から構成される結合プロファイル(joint profile)を生成または収集するように機能する。結合プロファイルは、MLアプリケーション実行の詳細とML実行に対応するリソース使用データとを組み合わせる。MLアプリケーション実行の詳細の例には、これらに限定されるものではないが、バッチサイズ、学習率、反復回数、モデル精度などが含まれる。リソースの例には、これらに限定されるものではないが、利用されたCPUの数量、CPUタイプ、利用されたGPUの数量、GPUタイプなどが含まれる。プロファイル・マネージャ252は、MLプロファイルからの信号を監視または受信し、対応するMLモデルおよび一実施形態においてはMLモデルの一部であるMLルーチンによるリソース使用を収集する。より詳細には、MLモデルの構築またはトレーニングおよびMLモデル内の対応するMLルーチンは、ルーチンの機能性および対応する処理をサポートするために、物理リソースおよび仮想リソースを含む計算リソースの使用を必要とすることが当該技術分野において理解される。プロファイル・マネージャ252は、対応するMLモデルおよびMLモデルの一部であるMLルーチンから、これらのリソースおよび関連するリソース消費に関連するデータを収集する。収集されたデータは、後続のMLアプリケーション実行のためのリソース割り当て、つまり、後続のアプリケーションが、現在のワークロードと、比較する際に同一であるか、増加されるかまたは減少されるか、あるいは、パラメータのセットまたは構成が異なるかを予測するために使用される。本明細書に示されるように、プロファイル・マネージャ252は、本明細書においてコールバック関数A252Aとして示される少なくとも1つのコールバックを利用して、1または複数の関連するパラメータでアプリケーション実行をプロファイルし、リソース使用情報をプロファイルする。一実施形態においては、リソース使用情報のプロファイルの作成は、アプリケーションの実行をサポートするために使用されまたは必要とされる計算リソースの識別であり、1つの実施形態においては、アウトラインである。したがって、プロファイル・マネージャ252は、そのパラメータのセットでのアプリケーション実行に沿った使用される計算リソースおよび使用の特性を捕捉するように機能する。
本明細書で示されるように、サーバ210は、データソース270に動作可能に結合される。データソース270は、MLアプリケーションに由来するMLモデルのライブラリ272と有して本明細書に示されている。ただ1つのライブラリが示されるが、データソース270は、複数のライブラリで構成されてもよく、ライブラリ272は、例示のためのものであることが理解される。ライブラリ272は、MLモデルA274AおよびMLモデルB274B含むMLモデルを有して示されている。MLモデルの数量は、例示の目的のためであり、限定的であるとみなすべきではない。一実施形態においては、MLモデルは、主題または機能性に基づいてライブラリにおいて編成される。MLモデルの各々は、本明細書において結合プロファイルとも参照される、動作可能に結合されたまたは関連付けられたプロファイルを有して示される。より具体的には、MLモデルA274Aが、プロファイルA276Aとともに示され、MLモデルB274BがプロファイルB276Bとともに示される。ライブラリ272におけるMLモデル274Aおよび274Bは、必ずしも1つの特定のプロファイルと結合しない。MLモデルは、複数の結合プロファイルを用いて構築されてもよい。例えば、図示されているように、MLモデルN274Nは、例えば、プロファイルC276C、プロファイルD276DおよびプロファイルN276Nの組み合わせなど、プロファイルの組み合わせとして示される。各プロファイルは、対応するまたは動作可能なように結合されたモデルの実行と、動作可能に結合されたモデルの実行をサポートするためのリソース使用または要件とを組み合わせる。例えば、一実施形態においては、MLモデルは、同じパラメータを有するが、計算リソースの異なるセットで構築されてもよい。結果として得られるモデルは同じであるが、最終的にモデルが収束するタイミングは、リソースの制約に起因して異なるであろう。
本明細書で示されているMLマネージャ254は、プロファイル・マネージャ252に動作可能に結合され、プロファイル、例えば276Aおよび276Bから、1または複数の特徴およびシグネチャを識別するように機能する。特徴およびシグネチャの例は、機械学習フレームワーク、学習バッチサイズ、割り当てられたCPUの数、使用されるメモリのサイズ、各反復についての実行時間またはアルゴリズム収束時間である。MLマネージャ254は、動作可能に結合されたML実行モデル254Aとともに本明細書において示されている。より具体的には、モデル254Aは、ML技術を使用してMLアプリケーション実行のための計算リソース使用を予測するMLモデルである。MLマネージャ254は、モデル254Aを構築し、管理し、モデル254Aを実行して、対応するプロファイル、例えば276A、からの1または複数の特徴およびシグネチャを利用することによって、対応するMLモデル、例えば274Aに対する計算リソースの要件を評価し、かつ、予測する。一実施形態においては、結合プロファイルの生成およびMLモデル254Aの構築のための特徴および特性、例えばシグネチャなどの識別は、ユーザ入力を用いて導出される。したがって、MLマネージャ254は、モデル274Aおよび274Bなどの、他のMLモデルの機能および処理をモデル化するMLモデルを作成するように機能して、MLモデル処理をサポートするための計算リソース割り当てを容易にする。
ディレクタ256は、ML実行モデル254Aを適用するように機能し、モデルからの出力254Bを利用して、その後のアプリケーション実行への指令を提供する。出力254Bは、1または複数のMLアプリケーションの効率的かつ効果的な実行をサポートするのに必要な計算リソースの形態である。リソースの割り当ては、弾力的、例えば動的であり、実行中に変更される可能性がある。ディレクタ256は、ML実行モデル254Aに基づく出力254Bを利用して、アプリケーション実行をサポートするためにリソース管理コンポーネントから1または複数の計算リソースを弾力的に割り当て、また、要求する。本明細書に示すように、リソース・マネージャ258は、ディレクタ256に動作可能に結合されるように示される。一実施形態においては、出力254Bは、リソース・マネージャ258に、アプリケーション実行をサポートするための計算リソースおよびリソースの指定を示す指令とともに転送される。本明細書で説明されるように、リソース割り当ては、弾力的、例えば、非静的であるとして定義される。同様に、出力254Bに対応する指令は、リソース割り当てアクションの形式である。ML実行モデル254Aは、リソース割り当てアクション、例えば、指令、を実行して、アプリケーション処理をサポートするために利用可能なリソースを要求する。リソース割り当てアクションは、従前のアプリケーション処理および実行に対してリソースを削減または拡張してもよく、または、1つの実施形態においては、リソース割り当てアクションは、リソース要求を維持してもよい。同様に、要求されたリソースは、対応する属性を有する。リソース割り当てアクションは、アプリケーション処理および実行をサポートするリソース属性を識別し、これは、リソース割り当てに類似して弾力的である。したがって、ディレクタ256は、MLモデル254Aからの出力をサポートおよび処理するように機能する。
反復は、MLアプリケーションで使用される用語であり、アルゴリズムのパラメータが更新される回数を示す。対応するニューラル・ネットワークのトレーニングは、複数回の反復を必要とする。本明細書に記載される機能性に関して、計算リソース割り当ては、ML実行モデルの要件およびリソースの利用可能性に基づいて、反復にわたって変化する可能性がある。ML実行モデル254Aは、MLモデルの動的特性および反復に応答し、対応する出力254Bは、この動的な性質を反映する。ディレクタ256は、MLアプリケーションの反復にわたって計算リソースの割り当てを変更してもよい。一実施形態においては、リソース割り当ての変更は、アプリケーション実行パターン、リソース使用パターンまたは両者の組み合わせに基づいてもよい。リソース割り当てに対する任意の変更が、MLモデル反復にわたる出力254Bおよび対応するリソース割り当てアクション、例えば、指令において反映される。
いくつかの例示的な実施形態においては、サーバ210は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能なIBM(登録商標)Watson(登録商標)システムであってもよく、以下に説明する例示的な実施形態のメカニズムを用いて拡張されてもよい。本明細書で示されかつ説明されるシステムは、反復的な最適化アルゴリズムに基づく機械学習を実装するためのツールを含む。ツールは、アプリケーション・ベースのプロファイリングを使用してMLワークロードを弾力的に実行することを可能にし、それによって、MLアプリケーションおよびそれらに対応するニューラル・ネットワークに、またモデル構築またはトレーニングの複数回の反復を横断して、計算リソースを効果的かつ効率的に割り当てる。
プロファイル・マネージャ252、MLマネージャ254、ディレクタ256およびリソース・マネージャ258(以下、総称してAIツールまたはAIプラットフォーム・ツールと参照する)は、サーバ210のAIプラットフォーム250内で具体化または統合されるものとして示される。AIツールは、ネットワーク205越しにサーバ210に接続された別個のコンピューティング・システム(例えば、290)で実装してもよい。具体化されるところでは、AIツールは、反復的なやり方で、MLアプリケーション実行モデリングおよび対応するリソース割り当ての弾力性をサポートし、かつ、可能とするように機能する。ML実行モデル254からの出力254Aは、リソース・マネージャ258に転送される実行可能な指令の形態で、1または複数のモデル274Aおよび274Bによる実行をサポートするための計算リソースを指示また指定してもよい。
AIプラットフォーム250を利用できる情報ハンドリング・システムのタイプとしては、ハンドヘルド・コンピュータ/携帯電話280のような小型のハンドヘルド・デバイスから、メインフレーム・コンピュータ282のような大型のメインフレーム・システムまで及ぶ。ハンドヘルド・コンピュータ280の例には、パーソナル・デジタル・アシスタント(PDA)、および、MP4プレーヤやポータブル・テレビやコンパクトディスク・プレーヤのようなパーソナル・エンターテイメント・デバイスが含まれる。情報ハンドリング・システムの他の例には、ペンまたはタブレット・コンピュータ284、ラップトップまたはノートブック・コンピュータ286、パーソナル・コンピュータ・システム288およびサーバ290が含まれる。図示されるように、種々の情報ハンドリング・システムは、コンピュータ・ネットワーク205を使用して一緒にネットワーク化されてもよい。種々の情報処理システムを相互接続するために使用することができるコンピュータ・ネットワーク205のタイプには、ローカル・エリア・ネットワーク(LAN)、無線ローカル・エリア・ネットワーク(WLAN)、インターネット、公衆交換電話ネットワーク(PSTN)、他の無線ネットワーク、その他、情報処理システムを相互接続するために使用することができる任意のネットワークトポロジーが含まれる。情報ハンドリング・システムの多くは、ハード・ドライブもしくは不揮発性メモリまたはその両方のような不揮発性データ・ストアを含む。情報ハンドリング・システムのいくつかは、別個の不揮発性データ・ストア(例えば、サーバ290が不揮発性データ・ストア290Aを利用し、メインフレーム・コンピュータ282が不揮発性データ・ストア282Aを利用する)を使用してもよい。不揮発性データ・ストア282Aは、種々の情報ハンドリング・システムの外部のコンポーネントであってもよいし、情報ハンドリング・システムのうちの1つの内部のものであってもよい。
AIプラットフォーム250をサポートするために使用される情報ハンドリング・システムは、多くの形態をとってもよく、そのいくつかが図2に示される。例えば、情報ハンドリング・システムは、デスクトップ、サーバ、ポータブル、ラップトップ、ノートブックまたは他のフォーム・ファクタのコンピュータまたはデータ処理システムの形態をとってもよい。加えて、情報ハンドリング・システムは、パーソナル・デジタル・アシスタント(PDA)、ゲーム・デバイス、ATMマシン、ポータブル電話デバイス、通信デバイスまたはプロセッサおよびメモリを含む他のデバイスなどの他のフォーム・ファクタをとってもよい。
アプリケーション・プログラム・インタフェース(API)は、当該技術分野では、2以上のアプリケーション間のソフトウェア中間手段として理解される。図2に示され、説明されたAIプラットフォーム250に関して、ツール252~258の1つまたは複数および関連する機能性をサポートするために1または複数のAPIを利用することができる。図3を参照すると、ツール252~258およびそれらの関連付けられるAPIを示すブロック図300が提供される。図示されるように、APIプラットフォーム305内に、API312に関連付けられるプロファイル・マネージャ352と、API322に関連付けられるMLマネージャ354と、API332に関連付けられるディレクタ356と、API342に関連付けられるリソース・マネージャ358とを含んで、複数のツールが具現化されている。APIの各々は、1または複数の言語およびインタフェース仕様で実装されてもよい。API312は、アプリケーション実行の詳細およびアプリケーション実行リソース使用の組み合わせとして結合プロファイルを生成するための機能サポートを提供し、API322は、MLアプリケーション実行および計算リソース使用を特徴付け、また識別することを対象にML実行モデルを構築および維持するための機能サポートを提供し、API332は、弾力的にアプリケーションおよびML実行モデルからの出力に基づいて計算リソースを要求するための機能サポートを提供し、API342は、モデルおよびそれらの対応するニューラル・ネットワークのうちの1つまたは複数による実行をサポートするために計算リソースを指示および指定するための機能的サポートを提供する。
図示されるように、API312、322、332および342の各々は、APIオーケストレータ360(さもなければオーケストレイション層として知られている)に動作可能に結合されており、これは、当該技術分野では、個別のAPIを透過的に一緒にスレッド化する抽象化層として機能するものと理解されている。一実施形態においては、別個のAPIの機能性は、結合または組み合わせられてもよい。それゆえ、本明細書に示されるAPIの構成は、限定するものと考えるべきではない。したがって、本明細書に示されるように、ツールの機能性は、それらのそれぞれのAPIによって具現化またはサポートされてもよい。別の実施形態においては、別個のAPIを分散計算リソースにおいて処理し、弾力性、スケーラビリティおよび可用性を達成することができる。
図4を参照すると、MLモデリングのためのプロセスおよび計算リソース割り当ての弾力性を示すためにフロー図400が提供される。図示されるように、アプリケーションを実行するための要求は、本明細書では実行要求として知られており、アプリケーション特有およびシステム・プロファイリング特有のパラメータとともに受信される(402)。実行指令が、ステップ402からの受信された要求に基づいて、およびモデルのアプリケーション・パラメータおよび履歴処理を必然的に伴うML実行モデラー450に基づいて、生成される(404)。一実施形態においては、履歴実行が未知であるか、利用可能ではない場合、ユーザ指定入力のみが利用されてもよい。可能性のある実行指令には、特に限定されるものではないが、メモリ使用の設定限界、および、使用のためのリソースの割り当てが含まれる。メモリ使用に関しては、1以上の以前の反復または1または複数の以前の実行からの履歴データに基づいて、アプリケーションのインスタンスに対して制限が設定されてもよい。リソースの利用に関しては、以前の履歴データには、トレーニングモデルの同一の調整パラメータであるが、異なるコンピューティング・プラットフォーム、例えば、異なるCPUの数量、CPUタイプ、異なるGPUの数量、GPUタイプおよびNVLink(有線ベースの通信プロトコル)接続性上でのリソース利用に関する情報を包含し得る。これらの指令は、例示の目的のためであり、限定であるとみなすべきではない。よって、指令は、ML実行モデルおよび実行要求に対応するパラメータに基づいて生成される。
ステップ404で生成された指令が用いられて、リソース管理と相互作用して実行要求をサポートするための所望のリソースを取得し、また、要求パラメータの範囲内でリソース割り当てを実行する(406)。より具体的には、ステップ404で得られる指令は、計算リソースを割り当てるために使用される。例えば、一実施形態においては、割り当ては、CPUコアの数量、CPUメモリ、GPUタイプおよびGPUの数量に対する潜在的な動的拡張のための弾力的な実行のための指定されたサイズのコンテナに向けられてもよい。同様に、一実施形態においては、割り当ては、可能である場合、あるいは望ましい場合には、同一マシン上のコンテナをパッケージングすることに向けられてもよい。別の実施形態においては、割り当ては、GPU共有に向けられてもよい。リソースが割り当てられた後、1または複数のMLアプリケーションが実行され(408)、実行されたMLアプリケーションのプロファイル情報が収集される(410)。一実施形態においては、収集は、MLアプリケーションの詳細およびリソース使用情報に関するコールバック関数を使用する。収集されたMLアプリケーション実行データは、本明細書では、動的アプリケーション情報と参照され、ML実行モデラー450に通信される。ステップ410およびプロファイル情報収集に続いて、終了閾値に達したかどうかが判定される(412)。ステップ412での判定に対する否定的な応答に続いて、ステップ404へ戻り、肯定的な応答は、プロファイル収集および展開処理を終了させる。
ML実行モデラー450は、アプリケーション実行からの入力およびリソース管理との相互作用を受信する。ML実行モデラー450は、静的入力データ460および動的入力データ470の両方を受信する。静的入力データは、入力データ情報462、調整パラメータ範囲464およびCPU、GPUアーキテクチャ、メモリおよびストレージ466などの静的計算情報の形態である。動的入力データ470は、パラメータのセッティング472およびリソース使用情報474の形態である。したがって、ML実行モデラー450は、アプリケーション実行情報およびリソース情報を利用して、最適なリソースを識別し、MLアプリケーションをサポートするための要件の予測を構築する。
図4に示されるように、コールバック関数が、実行された、または実行しているMLアプリケーションによって使用され、MLアプリケーション・データおよびMLアプリケーション・リソース使用を識別し、これによって、MLワークロードおよびリソース使用の結合プロファイルを生成する。一実施形態においては、結合プロファイルは、MLアプリケーション特有の特徴またはシグネチャおよびリソース使用を有する、タイムスタンプされたデータを含んでもよい。ML実行モデラーにおいて構築されたML実行モデルは、アプリケーション実行詳細を包含する、生成された結合プロファイルを利用する。より具体的には、ML実行モデルは、結合プロファイルから更新を受信し、適用するという点で動的である。ML実行モデルは、以前の実行からのデータを使用して構築されるか、または、同一の実行における以前の反復から最近収集されたデータから構築される。結合プロファイルに含まれる特徴およびシグネチャ並びに結合プロファイル内で動的に適用される更新は、その後の反復のアプリケーション実行に対する指令を提供し、アプリケーション実行パフォーマンスを、適切な、一実施形態においては異種の、計算リソースと相関させる。一実施形態においては、実行されたまたは実行しているMLアプリケーションからのコールバック関数をサポートするために、APIのセットが採用される。APIのセットは、任意のMLフレームワークにおけるアプリケーションから呼び出し可能である。したがって、結合プロファイルは、ML実行モデラーにおけるML実行モデルを構築するための両方で使用され、一度結合ファイルが構築されると、ML実行モデラーによって適用されて、リソース管理コンポーネントから、種々の反復でMLアプリケーションを効率的に実行するためにリソースを有効に要求する。
以下は、アプリケーションがどのように実行されているかの詳細を捉えるためのAPIからのトレース出力の一例である。
図示されているように、APIは、バッチサイズ、入力情報、データ・タイプ、メモリ利用およびMLアプリケーションの反復実行のために費やした時間を含む、アプリケーションがどのように実行されるかの詳細を捕捉する。APIは、時間駆動またはロジック駆動であってもよい。したがって、この例で示されるAPIは、MLアプリケーション実行データおよびリソース使用を捕捉し、後続のMLアプリケーション反復のためのMLアプリケーション指令のために、キャプチャされたデータをML実行モデラーに通信する。
機能ツール252~258の側面およびそれらの関連する機能性は、単一の位置におけるコンピュータ・システム/サーバ内で具現化されてもよく、または、一実施形態においては、計算リソースを共有するクラウド・ベースのシステムで構成されてもよい。図5を参照すると、ブロック図500は、図1~図4に関連して上述した処理を実装するための、クラウド・ベースのサポート・システムと通信する、ホスト502と参照されるコンピュータ・システム/サーバ502の一例を示すものである。ホスト502は、多数の他の汎用的なまたは特定用途のコンピューティング・システム環境または構成とともに動作可能である。ホスト502と共に使用するのに適した周知のコンピューティング・システム、環境もしくは構成またはその組み合わせの例には、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、上記のシステム、デバイス、およびそれらの等価物のいずれかを含むファイル・システム(例えば、分散型ストレージ環境および分散型クラウド・コンピューティング環境)を含む。
ホスト502は、コンピュータ・システムによって実行されるプログラム・モジュールのようなコンピュータ・システム実行可能な命令の一般的な文脈において説明され得る。概して、プログラム・モジュールは、ルーチン、特定のタスクを実行するか、または、特定の抽象データ・タイプを実装する、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含む。ホスト502は、通信ネットワークを介してリンクされた遠隔の処理デバイスによってタスクが実行される、分散型クラウド・コンピューティング環境580において実現してもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモートのコンピュータ・システム・ストレージ媒体の両方に配置されてもよい。
図5に示すように、ホスト502は、汎用コンピューティング・デバイスの形態で示される。ホスト502のコンポーネントは、これらに限定されるものではないが、例えばハードウェア・プロセッサなどのプロセッサまたは処理ユニット504と、システム・メモリ506と、システム・メモリ506を含む種々のシステム・コンポーネントをプロセッサ504に結合するバス508とを含んでもよい。バス508は、メモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、種々のバス・アーキテクチャの任意のものを使用するプロセッサまたはローカル・バスを含むいくつかのタイプのバス構造のうちの1以上を表す。例として、このようなアーキテクチャには、限定されるものではないが、インダストリ・スタンダード・アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バスおよびペリフェラル・コンポーネント・インターコネクト(PCI)バスが含まれる。ホスト502は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、ホスト502によってアクセス可能な任意の利用可能な媒体であってよく、それは、揮発性媒体と不揮発性媒体の両方、リムーバブル媒体と非リムーバブル媒体の両方を含む。
メモリ506は、ランダム・アクセス・メモリ(RAM)530もしくはキャッシュ・メモリ532またはその両方などの揮発性メモリの形式のコンピュータ・システム可読媒体を含むことができる。単に例として、ストレージ・システム534が、非リムーバブル、不揮発性の磁気媒体(図示しないが、通常「ハード・ドライブ」と呼ばれる)に対する読み取りと書込みを行うために提供されてもよい。図示しないが、リムーバブル、不揮発性の磁気ディスク(たとえば、「フロッピー(登録商標)ディスク」)に対する読み取りと書込みを行うための磁気ディスク・ドライブおよびCD-ROM、DVD-ROMまたは他の光媒体などのリムーバブル、不揮発性の光ディスクに対する読み取りと書込みを行うための光ディスク・ドライブが提供されてもよい。そのような例において、各々は、1以上のデータ媒体インタフェースによってバス508に接続されてもよい。
プログラム・モジュール542のセット(少なくとも1つ)を有するプログラム/ユーティリティ540が、限定ではなく例として、メモリ506に記憶されてもよく、オペレーティング・システム、1以上のアプリケーション・プログラム、他のプログラム・モジュールおよびプログラム・データも同様である。オペレーティング・システム、1以上のアプリケーション・プログラム、他のプログラム・モジュールおよびプログラム・データの各々またはこれらの任意の組み合せは、ネットワーク環境の実装を含んでよい。プログラム・モジュール542は、概して、動的なコミュニケーション評価の質問識別と処理(dynamically communication evaluation interrogatory identification and processing)の実施形態の機能もしくは方法論またはその両方を実行する。例えば、プログラム・モジュール542のセットは、図1に説明されるツール252~258を含んでもよい。
ホスト502は、キーボード、ポインティング・デバイスなどの外部デバイス514;ディスプレイ524;ユーザがホスト502と対話できるようにする1以上のデバイス;もしくはホスト502が1以上の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(たとえば、ネットワーク・カード、モデムなど)またはその組み合わせと通信してもよい。このような通信は、入力/出力(I/O)インタフェース522を介して行うことができる。さらに、ホスト502は、ネットワーク・アダプタ520を介して、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)もしくはパブリック・ネットワーク(たとえば、インターネット)またはその組み合わせなどの1以上のネットワークと通信することができる。図示されるように、ネットワーク・アダプタ520は、バス508を介してホスト502の他のコンポーネントと通信する。一実施形態においては、分散ファイルシステム(図示せず)の複数のノードが、ホスト502とI/Oインタフェース522を介して、または、ネットワーク・アダプタ520を介して通信可能とされる。図示されていないが、他のハードウェア・コンポーネントもしくはソフトウェア・コンポーネントまたはその両方がホスト502とともに使用されてもよいことを理解されたい。具体例には、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブおよびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらに限定されない。
この文書においては、「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、「コンピュータ可読媒体」という用語は、概して、RAM530を含むメイン・メモリ506、キャッシュ532、および、リムーバブル・ストレージ・ドライブおよびハードディスク・ドライブにインストールされたハード・ディスクなどのストレージ・システム534のような媒体を参照して使用される。
コンピュータ・プログラム(コンピュータ制御ロジックと参照される)は、メモリ506に格納される。コンピュータ・プログラムは、また、ネットワーク・アダプタ520のような通信インタフェースを介して受信されてもよい。このようなコンピュータ・プログラムは、実行された場合、コンピュータ・システムが、本明細書で説明されるような本実施形態の機能を実行することを可能にする。特に、コンピュータ・プログラムは、実行された場合に、処理ユニット504が、コンピュータ・システムの機能を実行することを可能にする。したがって、このようなコンピュータ・プログラムは、コンピュータ・システムのコントローラを表す。
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持し格納する有形のデバイスであってよい。コンピュータ可読ストレージ媒体は、例えば、これに限定されるものではないが、電子的ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは上記の任意の適切な組み合わせであってよい。コンピュータ可読ストレージ媒体のより具体的な例示の非網羅的リストとしては、ポータブルなコンピュータ・ディスケット、ハード・ディスク、ダイナミックまたはスタティック・ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュ・メモリ)、磁気ストレージ・デバイス、ポータブルなコンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリースティック、フロッピー(登録商標)ディスク、パンチカードまたは記録された命令を有する溝内の隆起構造のような機械的エンコードされたデバイス、および上記の任意の適切な組み合わせが含まれる。コンピュータ可読ストレージ媒体は、本明細書で使用されるように、電波、自由伝搬する電磁波、導波路または他の伝送媒体を伝搬する電磁波(たとえば、ファイバ光ケーブルを通過する光パルス)または、ワイヤを通して伝送される電気信号のような、それ自体が一時的な信号として解釈されるものではない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピュータ/処理デバイスに、または、外部コンピュータまたは外部ストレージ・デバイスに、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組み合わせといったネットワークを介してダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジサーバまたはその組み合わせを含んでもよい。各コンピュータ/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
本実施形態の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、1以上のプログラミング言語の任意の組み合わせで書かれたソース・コードあるいはオブジェクト・コードであってよく、1以上のプログラミング言語は、Java(登録商標)、Smalltalk(登録商標)、C++またはこれらに類するもなどのオブジェクト指向言語、Cプログラミング言語または類似のプログラミング言語などの従来型の手続型言語を含む。コンピュータ可読プログラム命令は、スタンド・アローンのソフトウェア・パッケージとして、全体としてユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上かつ部分的に遠隔のコンピュータ上で、または、完全に遠隔のコンピュータまたはサーバ上、またはサーバのクラスタ上で実行されてもよい。後者のシナリオでは、遠隔のコンピュータは、ユーザのコンピュータに、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じて接続されてもよく、あるいは接続は、(例えば、インターネット・サービス・プロバイダを用いてインターネットを通じて)外部コンピュータになされてもよい。いくつかの実施形態においては、電気的回路は、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含むが、本実施形態の側面を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、電気的回路を個別化することによって、コンピュータ可読プログラム命令を実行してもよい。
一実施形態においては、ホスト502は、クラウド・コンピューティング環境のノードである。当該技術分野において知られるように、クラウド・コンピューティングは、最小の管理労力またはサービス・プロバイダとの対話で迅速にプロビジョニングおよびリリースされ得る、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシンおよびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能とする、サービス配布のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデルおよび少なくとも4つのデプロイメント・モデルを含んでもよい。これらの特性の例は、以下の通りである。
オンデマンド・セルフ・サービス:クラウド・コンシューマは、サービス・プロバイダとの人的な対話を必要とせずに自動的に必要なだけ、サーバ時間およびネットワーク・ストレージなどのコンピュータ能力を一方的にプロビジョニングすることができる。
広帯域ネットワーク・アクセス:能力は、ネットワーク越しに利用可能であり、異種シン・クライアントまたはシック・クライアント・プラットフォーム(例えば、モバイルフォン、ラップトップ、PDA)による使用を促進する標準的なメカニズムを介して、アクセスされる。
リソース・プーリング:プロバイダの計算リソースは、マルチ・テナント・モデルを用いて複数のコンシューマに提供するためにプールされ、種々の物理的および仮想的リソースが需要に従って動的に割り当てられ、また、再割り当てられる。コンシューマは、一般的に、提供されるリソースの正確な場所を管理したり、知識を有したりせず、しかし、より高度な抽象レベル(例えば国、州、またはデータセンタ)にて場所を指定することが可能であるという意味で、場所の独立感がある。
迅速な弾力性:能力は、迅速かつ柔軟に、いくつかの場合では自動的に、プロビジョニングされて素早くスケール・アウトすることができ、また、迅速にリリースされて素早くスケール・インすることができる。コンシューマにとって、プロビジョニング利用可能な能力は、しばしば外面的には無制限のように見え、任意の時間に任意の量を購入することができる。
測量されたサービス:クラウドシステムは、サービスのタイプにとって適切なある抽象レベル(例えば、ストレージ、処理、帯域幅、アクティブ・ユーザ数)での計量能力を利用することによって、自動的にリソース使用を制御し、また最適化する。リソース使用量は、監視され、制御されおよび報告されて、利用サービスのプロバイダおよびコンシューマの双方に対する透明性を提供する。
サービス・モデルは、以下の通りである。
ソフトウェア・アズ・ア・サービス(SaaS):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えばウェブベースの電子メール)などのシン・クライアント・インタフェースを介して種々のクライアント・デバイスからアクセス可能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または、限定されたユーザ固有のアプリケーション構成設定の潜在的な例外を除いて個々のアプリケーション能力すらも含む下層のインフラストラクチャを管理または制御しない。
プラットフォーム・アズ・ア・サービス(PaaS):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを用いて作成された、コンシューマ作成または獲得のアプリケーションをクラウド・インフラストラクチャ上にデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティング・システムまたはストレージを含む下層のクラウド・インフラストラクチャを管理または制御しないが、デプロイされたアプリケーションおよび場合によってはアプリケーション・ホスティング環境の構成への制御を有する。
インフラストラクチャ・アズ・ア・サービス(IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、および、コンシューマが、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアをデプロイし、稼働させることができる他の基本的な計算リソースを提供することである。コンシューマは、下層のクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションに対する制御、および、場合によっては、選択したネットワーキング・コンポーネント(例えば、ホストファイアウォール)の限定された制御を有する。
デプロイメント・モデルは、以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、1つの組織のためだけに使用される。これは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスが存在し得る。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織により共有され、共通の懸念(例えば、ミッション、セキュリティ要件、ポリシーおよびコンプライアンスに関する考慮事項)を有する特定のコミュニティをサポートする。これは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスが存在し得る。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆、または、大きな業界団体が利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2以上のクラウド(プライベート、コミュニティまたはパブリック)の混成であり、これらのクラウドは、固有のエンティティのままであるが、しかし、データおよびアプリケーションのポータビリティを可能とする標準化されたまたは独自の技術(例えばクラウド間の負荷分散のためのクラウド・バースティング)によって結合される。
クラウド・コンピューティング環境は、ステートレス性、低結合、モジュール性および意味論的な相互運用性に重点を置いたサービス指向である。クラウド・コンピューティングの核心は、相互接続された複数のノードのネットワークを含むインフラストラクチャである。
ここで、図6を参照すると、例示的なクラウド・コンピューティング・ネットワーク600が示されている。図示されるように、クラウド・コンピューティング・ネットワーク600は、1以上のクラウド・コンピューティング・ノード610を有するクラウド・コンピューティング環境650を含み、1以上のクラウド・コンピューティング・ノード610と、例えば、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信してもよい。これらのローカル・コンピューティング・デバイスの例には、これらに限定されないが、パーソナル・デジタル・アシスタント(PDA)または携帯電話654A、デスクトップ・コンピュータ654B、ラップトップ・コンピュータ654Cもしくは自動車コンピュータ・システム654Nまたはその組み合わせが含まれる。ノード610内の個々のノードは、さらに、互いに通信してもよい。これらは、プライベート、コミュニティ、パブリックもしくはハイブリッド・クラウドなど上述したような、またはその組み合わせなどの1以上のネットワークにおいて、物理的にまたは仮想的にグループ化(図示しない)されてもよい。これは、クラウド・コンピューティング環境600が、インフラストラクチャ、プラットフォームもしくはソフトウェアまたはその組み合わせをサービスとして提供することを可能とし、これらについては、クラウド・コンシューマは、リソースをローカル・コンピューティング・デバイス上で維持する必要がない。図6に示されるコンピューティング・デバイス654A~654Nのタイプは、説明する目的のみであり、クラウド・コンピューティング環境650が、任意のタイプのネットワーク、ネットワークアドレス可能な接続(例えば、ウェブ・ブラウザを使用して)またはその両方を介して、任意のタイプのコンピュータ化されたデバイスと通信することができることが理解される。
ここで、図7を参照すると、図6のクラウド・コンピューティング・ネットワークによって提供される機能抽象層のセット700が示される。図7に示すコンポーネント、層および機能が、説明する目的のみであり、本実施形態は、これらに限定されないことを事前に理解されるべきである。図示すように、ハードウェアおよびソフトウェア層710、仮想化層720、管理層730およびワークロード層740の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層710は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム、一例においては、IBM(登録商標)zSeries(登録商標)System、RISC(縮約命令セットコンピュータ)アーキテクチャに基づくサーバ、一例においてはIBM(登録商標)pSeries(登録商標)System、IBM(登録商標)xSeries(登録商標)System、IBM(登録商標)BladeCenter(登録商標)System、ストレージ・デバイスおよびネットワークおよびネットワーキング・コンポーネントを含む。ソフトウェア・コンポーネントの例には、ネットワーク・アプリケーション・サーバ・ソフトウェア、一例においてはIBM(登録商標)WebSphere(登録商標)アプリケーション・サーバ・ソフトウェア、および、データベース・ソフトウェア、一例においては、IBM(登録商標)DB2(登録商標)データベース・ソフトウェアを含む(IBM、zSeries、pSeries,xSeries、BladeCenter、WebSphereおよびDB2は、世界の多くの管轄区域において登録されたインターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である)。
仮想化層720は、そこから仮想化サーバ、仮想化ストレージ、バーチャル・プライベート・ネットワークを含む仮想化ネットワーク、仮想化アプリケーションおよびオペレーティング・システム、および仮想クライアントなどの仮想化エンティティの例が提供される、抽象化層を提供する。
一例においては、管理層730は、リソース・プロビジョニング、メータリングおよびプライシング、ユーザ・ポータル、サービス・レベル・マネジメント、SLAの計画と履行の機能を提供してもよい。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよび他のリソースの動的な調達を提供する。メータリングおよびプライシングは、リソースがクラウド・コンピューティング環境内で利用されるコストの追跡およびこれらのリソースの消費に対する請求またはインボイスの送付を提供する。一例においては、これらのリソースは、アプリケーション・ソフトウェアのライセンスを含んでもよい。セキュリティは、クラウド・コンシューマおよびタスクについての本人確認、並びに、データおよび他のリソースに対する保護を提供する。ユーザ・ポータルは、コンシューマおよびシステム管理者に対しクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル・マネジメントは、要求されるサービス・レイヤを満たすようにクラウド・計算リソースの割り当ておよび管理を提供する。サービス・レベル合意(SLA)の計画と履行は、SLAに従って、将来の要求が予期されるクラウド・コンピューティグ・リソースの事前配置および調達を提供する。
ワークロード層740は、クラウド・コンピューティング環境が利用される機能性の例を提供する。この層から提供されるワークロードおよび機能の例には、これに限定されるものではないが、マッピングおよびナビゲ―ション、ソフトウェア開発およびライフサイクル管理、仮想クラスルーム教育配信、データ・アナリティクス処理、トランザクション処理、および、ML実行モデリングが含まれる。
本明細書では、自然言語入力を評価し、対応する通信における質問を検出し、検出された質問を応答もしくはサポート内容またはその両方で解決するためのシステム、方法、装置およびコンピュータ・プログラム製品が開示されることが理解される。
本実施形態の特定の実施形態が図示され、説明されたが、当業者には、本明細書の教示に基づいて、実施形態およびそのより広い側面から逸脱することなく、変更および修正を行うことができることが明らかであろう。したがって、添付の特許請求の範囲は、本実施形態の真の精神および範囲内にあるような全てのそのような変更および修正をその範囲内に包含するものとする。さらに、これらの実施形態は、特許請求の範囲によってのみ定義されることが理解されるべきである。特定の数の導入された請求項の要素が意図される場合には、そのような意図は、請求項において明示的に記述され、そのような記載が欠如する場合、そのような限定がないということが当業者には理解されるであろう。非限定的な例について、理解を助けるために、以下の特許請求の範囲は、請求項の要素を導入するために、「少なくとも1つ」および「1または複数の」というフレーズの使用を含む。しかしながら、そのようなフレーズの使用は、「1または複数の」または「少なくとも1つ」というフレーズおよび「a」または「an」といった不定詞を含む同一クレームでさえも、不定詞「a」または「an」による請求項の要素の導入が、そのような要素を1つだけを含む実施形態に限定することを暗に示すものと解釈されるべきではなく、特許請求の範囲中の定冠詞の使用についても当てはまる。
本実施形態は、システム、方法もしくはコンピュータ・プログラム製品またはその組み合わせであってもよい。加えて、本実施形態の選択された側面は、全体としてハードウェアの実施形態、全体としてソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、または本明細書では全て一般的に「回路」、「モジュール」または「システム」と参照されるソフトウェアもしくはハードウェアまたはその両方の態様を組み合わせた実施形態の形式をとることができる。さらに、本実施形態の側面は、プロセッサに本実施形態の側面を実行させるようにコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体(または複数の媒体)に具現化されたコンピュータ・プログラム製品の形態をとることができる。したがって、開示されたシステム、方法もしくはコンピュータ・プログラム製品またはその組み合わせは、効率的で効果的なMLアプリケーションのパフォーマンスおよびリソース管理を含む、MLアプリケーション実行およびリソース使用をモデル化するための人工知能プラットフォームの機能および動作を改善するように動作する。
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持し格納する有形のデバイスであってよい。コンピュータ可読ストレージ媒体は、例えば、これに限定されるものではないが、電子的ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは上記の任意の適切な組み合わせであってよい。コンピュータ可読ストレージ媒体のより具体的な例示の非網羅的リストとしては、ポータブルなコンピュータ・ディスケット、ハード・ディスク、ダイナミックまたはスタティック・ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュ・メモリ)、磁気ストレージ・デバイス、ポータブルなコンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリースティック、フロッピー(登録商標)ディスク、パンチカードまたは記録された命令を有する溝内の隆起構造のような機械的エンコードされたデバイス、および上記の任意の適切な組み合わせが含まれる。コンピュータ可読ストレージ媒体は、本明細書で使用されるように、電波、自由伝搬する電磁波、導波路または他の伝送媒体を伝搬する電磁波(たとえば、ファイバ光ケーブルを通過する光パルス)または、ワイヤを通して伝送される電気信号のような、それ自体が一時的な信号として解釈されるものではない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピュータ/処理デバイスに、または、外部コンピュータまたは外部ストレージ・デバイスに、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組み合わせといったネットワークを介してダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジサーバまたはその組み合わせを含んでもよい。各コンピュータ/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
本実施形態の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、1以上のプログラミング言語の任意の組み合わせで書かれたソース・コードあるいはオブジェクト・コードであってよく、1以上のプログラミング言語は、Java(登録商標)、Smalltalk(登録商標)、C++またはこれらに類するもなどのオブジェクト指向言語、Cプログラミング言語または、Haskell,Lispなどの機能プログラミング言語、類似のプログラミング言語などの従来型の手続型言語を含む。コンピュータ可読プログラム命令は、スタンド・アローンのソフトウェア・パッケージとして、全体としてユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上かつ部分的に遠隔のコンピュータ上で、または、完全に遠隔のコンピュータまたはサーバ上、またはサーバのクラスタ上で実行されてもよい。後者のシナリオでは、遠隔のコンピュータは、ユーザのコンピュータに、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じて接続されてもよく、あるいは接続は、(例えば、インターネット・サービス・プロバイダを用いてインターネットを通じて)外部コンピュータになされてもよい。いくつかの実施形態においては、電気的回路は、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含むが、本実施形態の側面を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、電気的回路を個別化することによって、コンピュータ可読プログラム命令を実行してもよい。
本実施形態の側面は、実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャートもしくはブロック図またはその両方を参照しながら本明細書において説明される。フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されてもよいことが理解されよう。
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、特定用途コンピュータのプロセッサまたは他のプログラマブル・データ処理装置に提供され、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置を介して実行される命令が、フローチャート図もしくはブロック図またはその両方のブロックまたは複数のブロックにおいて特定される機能/作用を実装するための手段を作成するように、マシンを生成する。これらのコンピュータ可読プログラム命令は、また、コンピュータ、プログラマブル・データ処理装置もしくは他のデバイスまたはその組み合わせに特定のやり方で機能するよう指示できるコンピュータ可読ストレージ媒体に格納され、それに格納された命令を有するコンピュータ可読ストレージ媒体に、フローチャート図もしくはブロック図またはその両方ブロックまたは複数のブロックで特定される機能/作用の側面を実装する命令を含む製品が含まれるようにする。
コンピュータ可読プログラム命令は、また、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で一連の動作ステップを実行させて、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で実行される命令が、フローチャート図もしくはブロック図またはその両方のブロックまたは複数のブロックで特定される機能/作用の側面を実装するように、コンピュータ実装処理を生成することもできる。
図面におけるフローチャート図およびブロック図は、本実施形態の種々の実施形態に従ったシステム、方法およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性および動作を示す。この点に関して、フローチャート図またはブロック図の各ブロックは、特定の論理機能を実装するための1以上の実行可能な命令を含む、モジュール、セグメントまたは命令の部分を表してもよい。いくつかの代替の実装では、ブロックにおいて言及された機能は、図面に示された順序から外れて生じる可能性がある。例えば、連続して示される2つのブロックは、実際には、同時に、実質的に同時に実行されてもよく、あるいは、複数のブロックは、関与する機能性に応じて逆の順序で実行されてもよい。ブロック図もしくはフローチャート図またはその両方の各ブロックおよびブロック図もしくはフローチャート図またはその両方の複数のブロックの組み合わせが、特定の機能または作用を実行し、または、特別な目的のハードウェアおよびコンピュータ命令の組み合わせを実施する、特定目的ハードウェアベースのシステムによって実装されてもよいことに留意されたい。
本明細書において説明のために特定の実施形態が説明されたが、実施形態の精神および範囲から逸脱することなく種々の変形が可能であることが理解されるであろう。したがって、実施形態の保護の範囲は、以下の特許請求の範囲およびそれらの均等物によってのみ限定される。

Claims (16)

  1. コンピュータ・システムであって、
    処理ユニットと、
    前記処理ユニットに動作可能に結合されたメモリと
    を含み、前記メモリは、
    1または複数の機械学習(ML)アプリケーションについてMLアプリケーション実行データおよびリソース使用データを含み構成されるプロファイルを生成することと、
    生成された前記プロファイルから1または複数の特徴および1または複数のシグネチャを識別することと、
    MLアプリケーション実行パフォーマンスを1または複数の計算リソースに相関させるよう構成されたML実行モデルを構築することであって、前記ML実行モデルは、識別された前記1または複数の特徴および1または複数のシグネチャを利用する、構築することと、
    前記ML実行モデルによって、アプリケーション実行をサポートするためにリソース管理コンポーネントから前記1または複数のMLアプリケーションのうちの少なくも1つに1または複数のリソースを動的に割り当てることおよび要求することを行うように、後続のアプリケーション実行への1または複数の指令を適用することであって、前記ML実行モデルは、生成された前記プロファイルからの更新を受信して適用し、前記1または複数のMLアプリケーションの実行中に割り当てを変更するように構成される、適用すること
    前記処理ユニットに実行するようにさせる命令を格納する、コンピュータ・システム。
  2. 前記ML実行モデルは、1または複数のML技術を使用して、前記1または複数のMLアプリケーションの少なくとも1つに対する1または複数のリソース要件を評価し、前記1または複数のMLアプリケーションの実行をサポートするための1または複数の計算リソースを識別するための出力を生成するように構成され、前記1または複数の指令は、生成された前記出力に一致する、請求項1に記載のコンピュータ・システム。
  3. 前記動的に割り当てることは、前記ML実行モデルが、リソース利用可能性およびアプリケーション処理サポートに関してリソース割り当てアクションを実行することを含み、
    前記リソース割り当てアクションは、任意のリソースを削減しまたは拡張するためのものであり、1または複数の削減または拡張された前記リソースは、同一または異なる属性を有する、請求項1または2に記載のコンピュータ・システム。
  4. 前記プロファイルを生成することは、1または複数のMLルーチンに関するリソース使用データを監視し、収集し、監視した前記リソース使用データを使用して将来のMLアプリケーションのための割り当てを予測する、請求項1~3のいずれか1項に記載のコンピュータ・システム。
  5. 前記プロファイルを生成するためおよび実行モデルを構築するための前記1または複数の特徴および1または複数のシグネチャの識別は、ユーザ入力で導出される、請求項1~のいずれか1項に記載のコンピュータ・システム。
  6. コンピュータ・システムであって、
    メモリに動作可能に結合された処理ユニットと、
    アプリケーション・ベースのプロファイリングを用いて1または複数の機械学習ワークロードを動的に実行するためのツールを有する、前記処理ユニットと通信する人工知能(AI)プラットフォームと
    を含み、前記ツールは、
    機械学習(ML)アプリケーション実行データおよびリソース使用データを含み構成される結合プロファイルを生成するプロファイル・マネージャと、
    生成された前記結合プロファイルから1または複数の特徴および1または複数のシグネチャを識別し、MLアプリケーション実行パフォーマンスおよびリソース使用のためのML実行モデルを構築する機械学習マネージャであって、前記ML実行モデルは、識別された前記1または複数の特徴および1または複数のシグネチャを利用する、機械学習マネージャと、
    前記ML実行モデルを適用し、前記ML実行モデルが、アプリケーション実行をサポートするためにリソース管理コンポーネントからの1または複数のリソースを動的に割り当てることおよび要求することを含む、後続のアプリケーション実行への1または複数の指令を提供するディレクタと
    を含み、前記動的に割り当てることは、前記ML実行モデルが、リソース利用可能性およびアプリケーション処理サポートに関してリソース割り当てアクションを実行することを含み、
    前記リソース割り当てアクションは、任意のリソースを削減しまたは拡張するためのものであり、1または複数の削減または拡張された前記リソースは、同一または異なる属性を有し、前記コンピュータ・システムは、
    アプリケーション実行パターンおよびリソース使用パターンに基づいて前記リソース割り当てアクションを呼び出すことを含む、1または複数のMLアプリケーションの反復にわたり計算リソースの割り当てを変更する前記ディレクタを含むコンピュータ・システム。
  7. コンピュータ・システムであって、
    メモリに動作可能に結合された処理ユニットと、
    アプリケーション・ベースのプロファイリングを用いて1または複数の機械学習ワークロードを動的に実行するためのツールを有する、前記処理ユニットと通信する人工知能(AI)プラットフォームと
    を含み、前記ツールは、
    機械学習(ML)アプリケーション実行データおよびリソース使用データを含み構成される結合プロファイルを生成するプロファイル・マネージャと、
    生成された前記結合プロファイルから1または複数の特徴および1または複数のシグネチャを識別し、MLアプリケーション実行パフォーマンスおよびリソース使用のためのML実行モデルを構築する機械学習マネージャであって、前記ML実行モデルは、識別された前記1または複数の特徴および1または複数のシグネチャを利用する、機械学習マネージャと、
    前記ML実行モデルを適用し、前記ML実行モデルが、アプリケーション実行をサポートするためにリソース管理コンポーネントからの1または複数のリソースを動的に割り当てることおよび要求することを含む、後続のアプリケーション実行への1または複数の指令を提供するディレクタと
    を含み、前記プロファイル・マネージャは、1または複数のコールバック関数を利用して、1または複数のアプリケーション関連パラメータを用いてアプリケーション実行をプロファイルし、リソース使用情報をプロファイルするコンピュータ・システム。
  8. 1または複数の機械学習(ML)アプリケーションについてMLアプリケーション実行データおよびリソース使用データを含み構成されるプロファイルを生成することと、
    生成された前記プロファイルから1または複数の特徴および1または複数のシグネチャを識別することと、
    MLアプリケーション実行パフォーマンスを1または複数の計算リソースに相関させるように構成されたML実行モデルを構築することであって、前記ML実行モデルは、識別された前記1または複数の特徴および1または複数のシグネチャを利用する、構築することと、
    前記ML実行モデルによって、アプリケーション実行をサポートするために、リソース管理コンポーネントから前記1または複数のMLアプリケーションのうちの少なくも1つに1または複数のリソースを動的に割り当てることおよび要求することを行うように、後続のアプリケーション実行への1または複数の指令を適用することであって、前記ML実行モデルは、生成された前記プロファイルからの更新を受信して適用し、前記1または複数のMLアプリケーションの実行中に割り当てを変更するように構成される、適用することと
    を含む、方法。
  9. 前記ML実行モデルは、1または複数のML技術を使用して、前記1または複数のMLアプリケーションの少なくとも1つに対する1または複数のリソース要件を評価し、前記1または複数のMLアプリケーションの実行をサポートするための1または複数の計算リソースを識別するための出力を生成するように構成され、前記1または複数の指令は、生成された前記出力に一致する、請求項8に記載の方法。
  10. 前記動的に割り当てることは、リソース利用可能性およびアプリケーション処理サポートに関してリソース割り当てアクションを実行することを含み、
    前記リソース割り当てアクションは、任意のリソースを削減しまたは拡張するためのものであり、1または複数の削減または拡張された前記リソースは、同一または異なる属性を有する、請求項8または9に記載の方法。
  11. 前記プロファイルを生成することは、1または複数のMLルーチンに関するリソース使用データを監視し、収集することと、監視した前記リソース使用データを使用して将来のMLアプリケーションのための割り当てを予測することとを含む、請求項8~10のいずれか1項に記載の方法。
  12. 前記プロファイルを生成するためおよび実行モデルを構築するための前記1または複数の特徴および1または複数のシグネチャの識別は、ユーザ入力で導出される、請求項8~11のいずれか1項に記載の方法。
  13. 機械学習(ML)アプリケーション実行データおよびリソース使用データを含み構成される結合プロファイルを生成することと、
    生成された前記結合プロファイルから1または複数の特徴および1または複数のシグネチャを識別し、MLアプリケーション実行パフォーマンスおよびリソース使用のためのML実行モデルを構築することであって、前記ML実行モデルは、識別された前記1または複数の特徴および1または複数のシグネチャを利用する、構築することと、
    前記ML実行モデルを適用し、アプリケーション実行をサポートするために、リソース管理コンポーネントからの1または複数のリソースを動的に割り当てることおよび要求することを含む、後続のアプリケーション実行への1または複数の指令を提供することと
    を含む方法であり、
    前記動的に割り当てることは、リソース利用可能性およびアプリケーション処理サポートに関してリソース割り当てアクションを実行することを含み、
    前記リソース割り当てアクションは、任意のリソースを削減しまたは拡張するためのものであり、1または複数の削減または拡張された前記リソースは、同一または異なる属性を有し、前記方法は、
    アプリケーション実行パターンおよびリソース使用パターンに基づいて前記リソース割り当てアクションを呼び出すことを含む、1または複数のMLアプリケーションの反復にわたり計算リソース割り当てを変更すること
    をさらに含む方法。
  14. 機械学習(ML)アプリケーション実行データおよびリソース使用データを含み構成される結合プロファイルを生成することと、
    生成された前記結合プロファイルから1または複数の特徴および1または複数のシグネチャを識別し、MLアプリケーション実行パフォーマンスおよびリソース使用のためのML実行モデルを構築することであって、前記ML実行モデルは、識別された前記1または複数の特徴および1または複数のシグネチャを利用する、構築することと、
    前記ML実行モデルを適用し、アプリケーション実行をサポートするために、リソース管理コンポーネントからの1または複数のリソースを動的に割り当てることおよび要求することを含む、後続のアプリケーション実行への1または複数の指令を提供することと
    を含み、前記結合プロファイルを生成することは、1または複数のコールバック関数を利用して、1または複数のアプリケーション関連パラメータを用いてアプリケーション実行をプロファイルし、リソース使用情報をプロファイルする方法。
  15. プログラムがコンピュータ上で実行されたとき、請求項8~14のいずれか1項に記載の方法を実行するように適合されたプログラム・コード手段を含む、コンピュータ・プログラム。
  16. アプリケーション・ベースのプロファイリングを用いて機械学習ワークロードの動的な実行をサポートするためのコンピュータ・プログラムを格納した記録媒体であって、前記コンピュータ・プログラムは、プロセッサに、請求項8~14のいずれか1項に記載の方法を実行させるためのものである、記録媒体。
JP2022538947A 2019-12-23 2020-12-14 アプリケーション・ベースのプロファイリングを用いた機械学習ワークロードの弾力的な実行 Active JP7629257B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/724,613 US11429434B2 (en) 2019-12-23 2019-12-23 Elastic execution of machine learning workloads using application based profiling
US16/724,613 2019-12-23
PCT/IB2020/061886 WO2021130596A1 (en) 2019-12-23 2020-12-14 Elastic execution of machine learning workloads using application based profiling

Publications (2)

Publication Number Publication Date
JP2023508076A JP2023508076A (ja) 2023-02-28
JP7629257B2 true JP7629257B2 (ja) 2025-02-13

Family

ID=76437475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022538947A Active JP7629257B2 (ja) 2019-12-23 2020-12-14 アプリケーション・ベースのプロファイリングを用いた機械学習ワークロードの弾力的な実行

Country Status (6)

Country Link
US (1) US11429434B2 (ja)
JP (1) JP7629257B2 (ja)
CN (1) CN114667507B (ja)
DE (1) DE112020005323B4 (ja)
GB (1) GB2605922B (ja)
WO (1) WO2021130596A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11947989B2 (en) * 2020-02-14 2024-04-02 SparkCognition, Inc. Process flow for model-based applications
US11605147B2 (en) * 2020-03-27 2023-03-14 Tata Consultancy Services Limited Method and system for tuning graphics processing unit (GPU) parameters of a GPU kernel
EP4136559B1 (en) * 2020-05-08 2024-07-10 Ecole Polytechnique Federale De Lausanne (Epfl) System and method for privacy-preserving distributed training of machine learning models on distributed datasets
US11516311B2 (en) * 2021-01-22 2022-11-29 Avago Technologies International Sales Pte. Limited Distributed machine-learning resource sharing and request routing
US11789774B2 (en) * 2021-02-22 2023-10-17 International Business Machines Corporation Optimization of workload scheduling in a distributed shared resource environment
US12117917B2 (en) * 2021-04-29 2024-10-15 International Business Machines Corporation Fair simultaneous comparison of parallel machine learning models
US11928518B2 (en) * 2021-08-10 2024-03-12 Kyndryl, Inc. Noisy-neighbor detection and remediation
US20230107221A1 (en) * 2021-10-05 2023-04-06 Cisco Technology, Inc. Simplifying machine learning workload composition
KR102944923B1 (ko) * 2021-12-09 2026-03-27 국민대학교산학협력단 인공지능 기반 클라우드 서비스 서버 결정 장치 및 방법
US12327145B2 (en) * 2022-04-20 2025-06-10 Dell Products L.P. Automated dynamic resource configuration for hard provisioned virtual machines
US20240111992A1 (en) * 2022-09-30 2024-04-04 Dell Products, L.P. Artificial intelligence (ai) model characterization and offloading in a heterogeneous computing platform
CN115904740B (zh) * 2023-02-23 2023-05-30 青岛创新奇智科技集团股份有限公司 一种gpu资源调用方法及系统
US12294529B2 (en) * 2023-06-27 2025-05-06 Adobe Inc. Transferable clustering of contextual bandits for cloud service resource allocation
DE102024200495A1 (de) * 2024-01-19 2025-07-24 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Allokieren von Rechenleistung in einem System mit wenigstens einem Maschinenlernmodell

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010533924A (ja) 2007-07-16 2010-10-28 マイクロソフト コーポレーション リソース割り当てを拡大および縮小することによるスケジューリング
JP2012022558A (ja) 2010-07-15 2012-02-02 Hitachi Ltd 分散計算システム
JP2017182114A (ja) 2016-03-28 2017-10-05 ソニー株式会社 情報処理装置、情報処理方法および情報提供方法
US20190325307A1 (en) 2018-04-20 2019-10-24 EMC IP Holding Company LLC Estimation of resources utilized by deep learning applications
JP2019192207A (ja) 2018-04-25 2019-10-31 富士通株式会社 アプリケーションプログラム生成のための深層ニューラルネットワーク訓練

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560465B2 (en) 2009-07-02 2013-10-15 Samsung Electronics Co., Ltd Execution allocation cost assessment for computing systems and environments including elastic computing systems and environments
US8631458B1 (en) 2011-09-29 2014-01-14 Symantec Corporation Method and apparatus for elastic (re)allocation of enterprise workloads on clouds while minimizing compliance costs
US8732291B2 (en) * 2012-01-13 2014-05-20 Accenture Global Services Limited Performance interference model for managing consolidated workloads in QOS-aware clouds
WO2014019980A2 (en) 2012-08-03 2014-02-06 Syddansk Universitet Elastic execution of continuous mapreduce jobs over data streams
US9323577B2 (en) * 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9760351B2 (en) * 2013-04-02 2017-09-12 Google Inc. Framework for user-directed profile-driven optimizations
US9645848B2 (en) 2013-05-20 2017-05-09 International Business Machines Corporation Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment
CN103338163B (zh) * 2013-07-16 2016-03-23 清华大学 支持动态弹性资源调度的软件定义网络控制器
GB2519517A (en) 2013-10-22 2015-04-29 Ibm Managing virtual appliances supporting multiple profiles
CN105095230A (zh) * 2014-04-29 2015-11-25 国际商业机器公司 确定目标数据分析应用的性能预测模型的方法及装置
US9715663B2 (en) * 2014-05-01 2017-07-25 International Business Machines Corporation Predicting application performance on hardware accelerators
US10171313B2 (en) 2015-01-23 2019-01-01 International Business Machines Corporation Managing workload to meet execution criterion in a hybrid cloud environment
US20170017576A1 (en) 2015-07-16 2017-01-19 Qualcomm Incorporated Self-adaptive Cache Architecture Based on Run-time Hardware Counters and Offline Profiling of Applications
US9972063B2 (en) 2015-07-30 2018-05-15 International Business Machines Corporation Pipelined approach to fused kernels for optimization of machine learning workloads on graphical processing units
US10412155B2 (en) * 2015-10-29 2019-09-10 Capital One Services, Llc Automated server workload management using machine learning
US11449365B2 (en) 2016-01-04 2022-09-20 Trilio Data Inc. Ubiquitous and elastic workload orchestration architecture of hybrid applications/services on hybrid cloud
US10733531B2 (en) 2016-01-27 2020-08-04 Bonsai AI, Inc. Artificial intelligence engine having an architect module
US10063493B2 (en) 2016-05-16 2018-08-28 International Business Machines Corporation Application-based elastic resource provisioning in disaggregated computing systems
US10140164B2 (en) * 2016-07-25 2018-11-27 Accenture Global Solutions Limited Computer resource allocation to workloads in an information technology environment
US10176550B1 (en) 2017-03-20 2019-01-08 Nutanix, Inc. GPU resource usage display and dynamic GPU resource allocation in a networked virtualization system
US11397887B2 (en) * 2017-09-26 2022-07-26 Amazon Technologies, Inc. Dynamic tuning of training parameters for machine learning algorithms
JP6947981B2 (ja) * 2017-12-21 2021-10-13 富士通株式会社 推定方法、推定装置および推定プログラム
US11200512B2 (en) * 2018-02-21 2021-12-14 International Business Machines Corporation Runtime estimation for machine learning tasks
US11567807B2 (en) 2018-03-30 2023-01-31 EMC IP Holding Company LLC Allocation of shared computing resources using source code feature extraction and machine learning
EP3557418B1 (en) 2018-04-17 2022-03-16 Nokia Solutions and Networks Oy Resource management of resource-controlled system
US10452441B1 (en) * 2018-10-15 2019-10-22 Accenture Global Solutions Limited Determining an allocation of computing resources for a job
US12067009B2 (en) * 2018-12-10 2024-08-20 Teradata Us, Inc. Predictive query parsing time and optimization
US11429895B2 (en) * 2019-04-15 2022-08-30 Oracle International Corporation Predicting machine learning or deep learning model training time

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010533924A (ja) 2007-07-16 2010-10-28 マイクロソフト コーポレーション リソース割り当てを拡大および縮小することによるスケジューリング
JP2012022558A (ja) 2010-07-15 2012-02-02 Hitachi Ltd 分散計算システム
JP2017182114A (ja) 2016-03-28 2017-10-05 ソニー株式会社 情報処理装置、情報処理方法および情報提供方法
US20190325307A1 (en) 2018-04-20 2019-10-24 EMC IP Holding Company LLC Estimation of resources utilized by deep learning applications
JP2019192207A (ja) 2018-04-25 2019-10-31 富士通株式会社 アプリケーションプログラム生成のための深層ニューラルネットワーク訓練

Also Published As

Publication number Publication date
GB202209994D0 (en) 2022-08-24
WO2021130596A1 (en) 2021-07-01
GB2605922B (en) 2023-04-26
CN114667507A (zh) 2022-06-24
CN114667507B (zh) 2025-01-07
DE112020005323B4 (de) 2024-10-10
DE112020005323T5 (de) 2022-08-18
JP2023508076A (ja) 2023-02-28
US11429434B2 (en) 2022-08-30
US20210191759A1 (en) 2021-06-24
GB2605922A (en) 2022-10-19

Similar Documents

Publication Publication Date Title
JP7629257B2 (ja) アプリケーション・ベースのプロファイリングを用いた機械学習ワークロードの弾力的な実行
JP7590088B2 (ja) パイプライン・アーティファクトの選択の動的自動化
US11237806B2 (en) Multi objective optimization of applications
US11409564B2 (en) Resource allocation for tuning hyperparameters of large-scale deep learning workloads
US11614963B2 (en) Machine learning based runtime optimization
US11568242B2 (en) Optimization framework for real-time rendering of media using machine learning techniques
JP7620112B2 (ja) マルチパーティ対話における談話解析のための構造自己認識モデル
US20170010774A1 (en) Usability analysis for user interface based systems
JP7744720B2 (ja) 機械学習を用いたシフトレフトトポロジ構築および情報拡張
US11789774B2 (en) Optimization of workload scheduling in a distributed shared resource environment
CN112102095A (zh) 一种基金产品推荐方法、装置及设备
CN117716373A (zh) 基于期望的度量值提供机器学习模型
US20220122038A1 (en) Process Version Control for Business Process Management
JP2023549661A (ja) パーティション化されたニューラル・ネットワークのための省電力及び暗号化機能を有するメディア・キャプチャ・デバイス
US20210357781A1 (en) Efficient techniques for determining the best data imputation algorithms
US20230325256A1 (en) Deep neural network management of overbooking in a multi-tenant computing environment
JP7684763B2 (ja) マイクロサービス識別を向上させるためにリファクタリングを識別および優先順位付するためのコンピュータシステム、コンピュータプログラムおよび方法(マイクロサービス識別を向上させるためにリファクタリングを識別および優先順位付するための方法およびシステム)
US10171341B2 (en) Software defined storage stack problem diagnosis and optimization
US12423591B2 (en) Annotation of a machine learning pipeline with operational semantics to support distributed lineage tracking
JP7649439B2 (ja) データアナリティクスにおけるデータアクセスポリシの自動調整
US11164088B2 (en) Interactive feedback and assessment experience
US20190130776A1 (en) Interactive Learning Experience
US12386664B2 (en) Determining optimal data access for deep learning applications on a cluster
JP7796764B2 (ja) プログラム・コンテキストの移行
US20220405631A1 (en) Data quality assessment for unsupervised machine learning

Legal Events

Date Code Title Description
RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20220624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220629

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230525

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240903

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250114

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20250115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250128

R150 Certificate of patent or registration of utility model

Ref document number: 7629257

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150