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

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

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

特許7614700コンピュータ実装方法、システム、およびコンピュータプログラム(工業過程におけるバッチベイズ最適化のための早期実験停止)
<>
  • 特許-コンピュータ実装方法、システム、およびコンピュータプログラム(工業過程におけるバッチベイズ最適化のための早期実験停止) 図1
  • 特許-コンピュータ実装方法、システム、およびコンピュータプログラム(工業過程におけるバッチベイズ最適化のための早期実験停止) 図2
  • 特許-コンピュータ実装方法、システム、およびコンピュータプログラム(工業過程におけるバッチベイズ最適化のための早期実験停止) 図3
  • 特許-コンピュータ実装方法、システム、およびコンピュータプログラム(工業過程におけるバッチベイズ最適化のための早期実験停止) 図4
  • 特許-コンピュータ実装方法、システム、およびコンピュータプログラム(工業過程におけるバッチベイズ最適化のための早期実験停止) 図5
  • 特許-コンピュータ実装方法、システム、およびコンピュータプログラム(工業過程におけるバッチベイズ最適化のための早期実験停止) 図6
  • 特許-コンピュータ実装方法、システム、およびコンピュータプログラム(工業過程におけるバッチベイズ最適化のための早期実験停止) 図7
  • 特許-コンピュータ実装方法、システム、およびコンピュータプログラム(工業過程におけるバッチベイズ最適化のための早期実験停止) 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-07
(45)【発行日】2025-01-16
(54)【発明の名称】コンピュータ実装方法、システム、およびコンピュータプログラム(工業過程におけるバッチベイズ最適化のための早期実験停止)
(51)【国際特許分類】
   G06Q 10/04 20230101AFI20250108BHJP
   G06Q 50/04 20120101ALI20250108BHJP
【FI】
G06Q10/04
G06Q50/04
【請求項の数】 20
(21)【出願番号】P 2021174076
(22)【出願日】2021-10-25
(65)【公開番号】P2022071852
(43)【公開日】2022-05-16
【審査請求日】2024-03-19
(31)【優先権主張番号】17/082,663
(32)【優先日】2020-10-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】パイザー-クナップ エドワード オリバー
(72)【発明者】
【氏名】フェア クライド
【審査官】渡邉 加寿磨
(56)【参考文献】
【文献】特開2020-27370(JP,A)
【文献】特開2007-233676(JP,A)
【文献】特開2018-10475(JP,A)
【文献】国際公開第2019/244474(WO,A1)
【文献】特開2019-152986(JP,A)
【文献】特開2018-73360(JP,A)
【文献】米国特許出願公開第2020/0111018(US,A1)
【文献】特開2012-113744(JP,A)
【文献】特開2020-68038(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G05B 23/02
G06N 3/00
G06N 7/00
(57)【特許請求の範囲】
【請求項1】
工業過程のリアルタイム介入のコンピュータ実装方法であって、
前記工業過程で使用する候補構成のバッチを検索する段階であって、前記候補構成のバッチは、バッチベイズ最適化(BBO)を実施することにより検索される、検索する段階と、
前記工業過程に前記候補構成のバッチを伝送して前記工業過程の実行時に使用する段階と、
前記工業過程から前記実行の結果を受信する段階と、
前記BBOにおける前記結果を使用して次の候補構成のバッチを検索する段階と、
前記次の候補構成のバッチに基づいて、かつ、BBO取得スコアに関数を適用することにより、停止基準が満たされているかどうかを判断する段階と、
前記停止基準が満たされているという判断に応答して、前記次の候補のバッチの検索を終了し、かつ、実行を停止するよう前記工業過程を制御する段階と、
前記停止基準が満たされていないという判断に応答して、前記工業過程に前記次の候補構成のバッチを伝送して前記工業過程の実行時に使用し、かつ、前記BBOにおける前記結果を使用して次の候補構成のバッチを検索する前記段階、および、前記停止基準が満たされているかどうかを判断する前記段階を繰り返す段階と
を備える方法。
【請求項2】
前記関数は、前記次の候補のバッチに関連付けられるデータを目標基準およびバッチパーセンテージ基準に基づいて評価することを含み、前記目標基準は、前記検索の終了に必要とされる統計的有意水準を表し、前記バッチパーセンテージ基準は、前記検索の終了に失敗する必要があるバッチの量を表す、請求項1に記載の方法。
【請求項3】
前記次の候補構成のバッチに基づいて、停止基準が満たされているかどうかを判断する前記段階は、
前記バッチ内の前記候補構成の各々について、文脈的改善確率スコア(cPIスコア)を計算する段階と、
前記cPIスコアが前記目標基準よりも低い前記候補構成のパーセンテージが前記バッチパーセンテージ基準よりも高いと判断する段階と
を有する、請求項2に記載の方法。
【請求項4】
前記cPIスコアは、サンプリングされた事後分布に含まれる分散の平均と、候補からの予測値と、BBOの反復の中から発見された最良の候補値との組み合わせの標準正規分布の累積分布関数(CDF)として決定される、請求項3に記載の方法。
【請求項5】
前記停止基準が満たされているという判断に応答して、前記検索で見つかった複数の構成のバッチのうち最適な構成のバッチを前記工業過程に送信する段階
を更に備える請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記停止基準が満たされているという判断に応答して、前記検索で見つかった複数の構成のバッチのうち最適な構成のバッチをユーザインタフェースを介してユーザに送信する段階
を更に備える請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記目標基準および前記バッチパーセンテージ基準は構成可能である、請求項2から4のいずれか一項に記載の方法。
【請求項8】
ハードウェアプロセッサと、
前記ハードウェアプロセッサと結合されるメモリデバイスと
を備える、工業過程のリアルタイム介入のためのシステムであって、
前記ハードウェアプロセッサは、少なくとも、
前記工業過程で使用する候補構成のバッチを検索することであって、前記候補構成のバッチは、バッチベイズ最適化(BBO)を実施することにより検索される、検索することと、
前記工業過程に前記候補構成のバッチを伝送して前記工業過程の実行時に使用することと、
前記工業過程から前記実行の結果を受信することと、
前記BBOにおける前記結果を使用して次の候補構成のバッチを検索することと、
前記次の候補構成のバッチに基づいて、かつ、BBO取得スコアに関数を適用することにより、停止基準が満たされているかどうかを判断することと、
前記停止基準が満たされているという判断に応答して、前記次の候補のバッチの検索を終了し、かつ、実行を停止するよう前記工業過程を制御することと、
前記停止基準が満たされていないという判断に応答して、前記工業過程に前記次の候補構成のバッチを伝送して前記工業過程の実行時に使用し、かつ、前記BBOにおける前記結果を使用した次の候補構成のバッチの検索、および、前記停止基準が満たされているかどうかの判断を繰り返すことと
を行うように構成される、
システム。
【請求項9】
前記ハードウェアプロセッサが関数を適用することは、前記次の候補のバッチに関連付けられるデータを目標基準およびバッチパーセンテージ基準に基づいて評価することを含み、前記目標基準は、前記検索の終了に必要とされる統計的有意水準を表し、前記バッチパーセンテージ基準は、前記検索の終了に失敗する必要があるバッチの量を表す、請求項8に記載のシステム。
【請求項10】
前記次の候補構成のバッチに基づいて、停止基準が満たされているかどうかを判断するために、前記ハードウェアプロセッサは、
前記バッチ内の前記候補構成の各々について、文脈的改善確率スコア(cPIスコア)を計算し、
前記cPIスコアが前記目標基準よりも低い前記候補構成のパーセンテージが前記バッチパーセンテージ基準よりも高いと判断する
ように構成される、請求項9に記載のシステム。
【請求項11】
前記cPIスコアは、サンプリングされた事後分布に含まれる分散の平均と、候補からの予測値と、BBOの反復の中から発見された最良の候補値との組み合わせの標準正規分布の累積分布関数(CDF)として決定される、請求項10に記載のシステム。
【請求項12】
前記ハードウェアプロセッサは更に、
前記停止基準が満たされているという判断に応答して、前記検索で見つかった複数の構成のバッチのうち最適な構成のバッチを前記工業過程に送信する
ように構成される、請求項8から11のいずれか一項に記載のシステム。
【請求項13】
前記ハードウェアプロセッサは更に、
前記停止基準が満たされているという判断に応答して、前記検索で見つかった複数の構成のバッチのうち最適な構成のバッチをユーザインタフェースを介してユーザに送信する
ように構成される、請求項8から12のいずれか一項に記載のシステム。
【請求項14】
前記目標基準および前記バッチパーセンテージ基準は構成可能である、請求項9から11のいずれか一項に記載のシステム。
【請求項15】
デバイスに、
工業過程で使用する候補構成のバッチを検索する手順であって、前記候補構成のバッチは、バッチベイズ最適化(BBO)を実施することにより検索される、検索する手順と、
前記工業過程に前記候補構成のバッチを伝送して前記工業過程の実行時に使用する手順と、
前記工業過程から前記実行の結果を受信する手順と、
前記BBOにおける前記結果を使用して次の候補構成のバッチを検索する手順と、
前記次の候補構成のバッチに基づいて、かつ、BBO取得スコアに関数を適用することにより、停止基準が満たされているかどうかを判断する手順と、
前記停止基準が満たされているという判断に応答して、前記次の候補のバッチの検索を終了し、かつ、実行を停止するよう前記工業過程を制御する手順と、
前記停止基準が満たされていないという判断に応答して、前記工業過程に前記次の候補構成のバッチを伝送して前記工業過程の実行時に使用し、かつ、前記BBOにおける前記結果を使用した次の候補構成のバッチの検索、および、前記停止基準が満たされているかどうかの判断を繰り返す手順と
を実行させるためのコンピュータプログラム。
【請求項16】
前記デバイスに、前記次の候補のバッチに関連付けられるデータを目標基準およびバッチパーセンテージ基準に基づいて評価することにより前記関数を適用する手順を実行させ、前記目標基準は、前記検索の終了に必要とされる統計的有意水準を表し、前記バッチパーセンテージ基準は、前記検索の終了に失敗する必要があるバッチの量を表す、請求項15に記載のコンピュータプログラム。
【請求項17】
前記次の候補構成のバッチに基づいて、停止基準が満たされているかどうかを判断するために、前記デバイスに、
前記バッチ内の前記候補構成の各々について、文脈的改善確率スコア(cPIスコア)を計算する手順と、
前記cPIスコアが前記目標基準よりも低い前記候補構成のパーセンテージが前記バッチパーセンテージ基準よりも高いと判断する手順と、
を実行させる、請求項16に記載のコンピュータプログラム。
【請求項18】
前記cPIスコアは、サンプリングされた事後分布に含まれる分散の平均と、候補からの予測値と、BBOの反復の中から発見された最良の候補値との組み合わせの標準正規分布の累積分布関数(CDF)として決定される、請求項17に記載のコンピュータプログラム。
【請求項19】
前記デバイスに更に、
前記停止基準が満たされているという判断に応答して、前記検索で見つかった複数の構成のバッチのうち最適な構成のバッチを前記工業過程に送信手順を実行させる、
請求項15から18のいずれか一項に記載のコンピュータプログラム。
【請求項20】
前記目標基準および前記バッチパーセンテージ基準は構成可能である、請求項16から18のいずれか一項に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は概して、コンピュータおよびコンピュータアプリケーションに関するものであり、より具体的には、所望の結果を検索する量産試作と試験的生産の早期停止とに関する。
【背景技術】
【0002】
ベイズ最適化ベースの技術は、関数の評価コストが高い最適化に関連するタスクに対して強力な実績を示している。これらの関数の例には、創薬における分子の合成、機械学習システムの構成、および電子チップの設計が含まれる。バッチベイズ最適化(BBO)によって、この技術が拡大し、複数の候補を同時に評価できるようになる。BBOでは、配分されたバジェットが使い果たされたとき、または、選択基準が、サンプリングする新しい候補の識別に失敗したときに、最適化が完了したものと見なされる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
ただし、バジェットが使い果たされる前に最適な候補の観測が観測される場合があり、その結果、実験を実施するエンティティに対して不必要な費用が発生する。
【課題を解決するための手段】
【0004】
工業過程のリアルタイム介入のコンピュータ実装方法およびシステムが提供され得る。ある態様では、この方法は、工業過程で使用する候補構成のバッチを検索する段階であって、候補構成のバッチは、バッチベイズ最適化(BBO)を実施することにより検索される、検索する段階を含むことができる。この方法は、工業過程に候補構成のバッチを伝送して工業過程の実行時に使用する段階を含むこともできる。この方法は、工業過程から実行の結果を受信する段階を含むこともできる。この方法は、BBOにおける結果を使用して次の候補構成のバッチを検索する段階を含むこともできる。この方法は、次の候補構成のバッチに基づいて、かつ、BBO取得スコアに関数を適用することにより、停止基準が満たされているかどうかを判断する段階を含むこともできる。この方法は更に、停止基準が満たされているという判断に応答して、次の候補のバッチの検索を終了する段階を含むことができる。この方法は更に、停止基準が満たされていないという判断に応答して、工業過程に次の候補構成のバッチを伝送して工業過程の実行時に使用し、かつ、BBOにおける結果を使用した次の候補構成のバッチの検索、および、停止基準が満たされているかどうかの判断を繰り返す段階を含むことができる。
【0005】
一態様では、工業過程のリアルタイム介入のためのシステムが、ハードウェアプロセッサと、ハードウェアプロセッサと結合されるメモリデバイスとを含むことができる。ハードウェアプロセッサは、工業過程で使用する候補構成のバッチを検索することであって、候補構成のバッチは、バッチベイズ最適化(BBO)を実施することにより検索される、検索することを行うように構成され得る。ハードウェアプロセッサは、工業過程に候補構成のバッチを伝送して工業過程の実行時に使用するように構成されてもよい。ハードウェアプロセッサは、工業過程から実行の結果を受信するように構成されてもよい。ハードウェアプロセッサは、BBOにおける結果を使用して次の候補構成のバッチを検索するように構成されてもよい。ハードウェアプロセッサは、次の候補構成のバッチに基づいて、停止基準が満たされているかどうかを判断するように構成されてもよい。ハードウェアプロセッサは、停止基準が満たされているという判断に応答して、次の候補のバッチの検索を終了するように構成されてもよい。ハードウェアプロセッサは、停止基準が満たされていないという判断に応答して、工業過程に次の候補構成のバッチを伝送して工業過程の実行時に使用し、かつ、BBOにおける結果を使用した次の候補構成のバッチの検索、および、停止基準が満たされているかどうかの判断を繰り返すように構成されてもよい。
【0006】
本明細書に記載の1または複数の方法を実施するために機械で実行可能な命令のプログラムを記憶するコンピュータ可読記憶媒体が提供されてもよい。
【0007】
以下では、添付図面を参照しながら、更なる特徴並びに様々な実施形態の構造および動作について詳細に説明する。これらの図面では、同様の参照番号が同一の要素または機能的に同様の要素を示す。
【図面の簡単な説明】
【0008】
図1】ある実施形態における、BBO検索の早期停止を実装するシステムを示したダイアグラムである。
【0009】
図2】ある実施形態における、BBO検索を早期に終了するかどうかを判断する方法を示したフロー図である。
【0010】
図3】ある実施形態におけるシステムコンポーネントを示したブロック図である。
【0011】
図4】ある実施形態における方法を示したフロー図である。
【0012】
図5】ある過程のリアルタイムでの早期停止介入を提供する、一実施形態におけるシステムのコンポーネントを示したダイアグラムである。
【0013】
図6】一実施形態に係るシステムを実装し得る例示的なコンピュータシステムまたは処理システムの概略を示す。
【0014】
図7】一実施形態におけるクラウドコンピューティング環境を示す。
【0015】
図8】本開示の一実施形態における、クラウドコンピューティング環境により提供される関数抽象化層のセットを示す。
【発明を実施するための形態】
【0016】
ある態様では、製造システムまたは別のものなどの現実の物理システムにおける、例えば、製品または過程を生産する、実験的または試験的な生産ランの早期停止介入またはリアルタイム介入が提供され得る。1または複数の実施形態では、例えば、現実の物理システムを実行する、バッチベイズ最適化(BBO)システムにおけるリアルタイム介入のための方法およびシステムを提供して、例えば、特定の基準が満たされている場合に、所定の閾値に達した場合にBBO検索を早期に終了するかどうかを自動的に判断または決定することができる。例えば、製造システムを制御して、生産における最適な結果を探す際に実験的または試験的な生産ランを早期に停止することができる。実験の示すところによると、そのような方法では、例えば、現実の物理マシンまたは物理システムの反復的な実行を伴い得る、BBO検索に関連付けられる平均コストが削減される。
【0017】
例えば、ある方法は、次のバッチを評価することで大きな価値が提供される可能性を決定するバッチベイズ最適化(BBO)取得スコアに対して関数を適用することにより、閾値が満たされているかどうかを判断する段階を含むことができる。関数は、目標変数およびバッチパーセンテージ変数を含み、目標変数は、検索の終了に必要とされる統計的有意水準を表し、パーセンテージ変数は、検索の終了に失敗する必要があるバッチの量を決定する。この方法は、閾値が満たされているか、閾値に達した場合に、バッチベイズ最適化システムに信号を送信して検索を早期に終了する段階を含むこともできる。
【0018】
ベイズ最適化は、ブラックボックス関数または未知の関数を最適化する際に使用される。ベイズ最適化によって、未知の目的関数の最小値または最大値を見つけるように、検索が方向付けられる。ブラックボックス関数の代理モデルまたは確率表現(例えば、確率モデル)を構築して、利用可能なパラメータ値と、関連付けられる観測値とに基づいて真の関数を近似してよく、例えば、利用可能なデータを使用してガウス過程に適合させてよい。ガウス過程からの平均を使用して、ブラックボックス関数をモデル化することができる。取得関数、例えば、代理モデルの関数によって、モデル化されたパラメータ空間で次にサンプリングするのに最適な位置が決定される。例えば、次のサンプルは、取得関数が最大化される位置にあってよい。新しいサンプルへの対応する出力が取得される。この対応する出力は、新しいサンプルの使用に基づいて取得される実際の観測値または真の観測値であってよい。例えば、実際の観測値または真の観測値は、現実の実験的または試験的な製造生産過程を実行することで取得され得る。その後、新しいサンプルおよび対応する出力(観測値)は、代理モデルを更新するために使用される。次のサンプルを見つけるか検索し、当該次のサンプルを使用して実際の観測値を取得し、かつ、代理モデルを更新するこの過程は、例えば、バジェットが満たされるまで、繰り返され得る。バッチベイズ最適化(BBO)によって、バッチ内の最適なサンプルが見つかる。
【0019】
本明細書で開示する方法は、ある基準に基づいてBBO検索を時期尚早に終了するために介入する段階を含む。ある実施形態では、コストが高くつく可能性のある次のバッチの評価を行うことで大きな価値が提供される可能性を決定するBBO取得スコアに更なる関数を適用することにより、この基準が満たされているかどうかを判断することができる。例えば、ある実施形態では、BBO検索を終了する基準を、BBO取得関数の関数またはBBO取得関数値の関数として決定することができる。
【0020】
ある実施形態では、BBO検索を早期に終了する基準によって、2つの変数、目標基準、およびバッチパーセンテージ基準が考慮される。目標基準は、検索の終了に必要とされる統計的有意性を表し(例えば、目標基準は、0:完全な有意性、1:有意性なし、などのバイナリ形式を取ることができる)、パーセンテージ基準は、検索の終了に失敗する必要があるバッチの量を決定する(例えば、0%:バッチなし、100%:バッチ全体)。ある実施形態では、これらの基準は、バッチを取得するコスト(例えば、コストが高い場合は、より積極的な戦略が使用され得る)と、完全な最適化の重要度(例えば、完全な最適化が必須でない場合は、より積極的な戦略が使用され得る)とに基づいて、設定または事前決定され得る。終了の基準が満たされている場合は、信号をBBOエンジンに送信して検索を早期に終了することができるため、更なるバッチを評価するコストを節約することができる。
【0021】
そのような方法は、以下に限定されるわけではないが、実験室ベースの実験的計画、製造過程、高性能コンピューティング、および/または、他の物理過程もしくは工業過程と統合され得る。図1は、ある実施形態における、BBO検索の早期停止を実装するシステムを示したダイアグラムである。示されているコンポーネントは、例えば、ハードウェアプロセッサなどの1または複数のプロセッサ上で実装および/または実行されるか、1または複数のハードウェアプロセッサと結合される、コンピュータ実装コンポーネントを含む。1または複数のハードウェアプロセッサは、例えば、プログラマブルロジックデバイス、マイクロコントローラ、メモリデバイス、もしくは、本開示に記載のそれぞれの対応するタスクを実施するように構成され得る他のハードウェアコンポーネント、またはその組み合わせなどのコンポーネントを含んでよい。結合されるメモリデバイスは、1または複数のハードウェアプロセッサで実行可能な命令を選択的に記憶するように構成されてよい。
【0022】
プロセッサは、中央処理装置(CPU)、グラフィックス処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、別の適切な処理コンポーネントもしくはデバイス、または、その1または複数の組み合わせであってよい。プロセッサはメモリデバイスと結合されてよい。メモリデバイスは、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、または別のメモリデバイスを含んでよく、本明細書に記載の方法もしくはシステムまたはその両方に関連付けられる様々な機能を実装するためのデータもしくはプロセッサ命令またはその両方を記憶してよい。プロセッサは、メモリに記憶されるか、別のコンピュータデバイスまたは媒体から受信される、コンピュータ命令を実行してよい。
【0023】
ベイズ最適化システム104は、例えば、1または複数のプロセッサを含むコンピュータシステム上に実装されてよく、通信モジュール108、決定モジュール112、終了モジュール110、および記憶モジュール114などのコンピュータ実装モジュールを含むことができる。通信モジュール108は、1または複数のコンピュータシステムもしくはプロセッサまたはその両方との間でデータを送受信できるネットワークインタフェースなどを含んでよく、例えば、ユーザまたはクライアントコンピュータと通信してよく、製造過程または同様の過程を制御する1または複数のコントローラ(データ取得ソースとも呼ばれる)と通信してよい。記憶モジュール114は、データを記憶するためのメモリデバイスまたは記憶デバイスと結合されてよく、データの記憶およびデータへのアクセスを行うためのデータベースを含んでよい。
【0024】
ユーザコンピュータは、ベイズ最適化システム104と通信できるユーザインタフェースまたはフロントエンドアプリケーション102を有することができる。最適化ユーザは、例えば、ユーザインタフェースまたはフロントエンドアプリケーション102を介して、ベイズ最適化システム104に最適化基準を伝達することで、例えば、製造過程などの過程で複数の異なるパラメータ値で実験過程または試験的ランを開始して、成果または結果として生まれた製品を取得してよい。他の例には、分子の発見、創薬などの製薬用途における過程と、その過程で使用される1または複数のパラメータまたは値が最適化によって求められるか、決定される、任意の他の過程とが含まれ得る。別の例には、ベイズ最適化を使用して取得される複数の異なるハイパーパラメータ値を使用したニューラルネットワークのトレーニングなどの機械学習モデルのトレーニングが含まれ得る。
【0025】
ユーザインタフェース102の例には、ウェブポータルもしくはウェブブラウザインタフェース、および/または、ベイズ最適化システム104のために実装されるフロントエンドユーザインタフェースなどが含まれ得る。最適化ユーザは、そのようなコンピュータ実装ユーザインタフェース102を実行してベイズ最適化システム104と通信し、最適化基準を提供し、実験的計画過程、製造過程もしくは別の過程またはその組み合わせなどの過程を開始することができる。最適化基準の例には、バジェット(例えば、最適化の際に実施する反復の回数)のバッチサイズ、早期終了の攻撃性(aggression)が含まれ得る。例えば、「早期終了の攻撃性」は、数値形式(例えば、0から1までの浮動小数点数、別の数値、0(攻撃性なし)または1(攻撃性)などのバイナリ値、または、複数の異なる攻撃性の程度(例えば、0、1、2、3、4、5)を表す幾つかの値設定)または任意の他の表現で表され得る。ある実施形態では、そのような設定は、BBO検索を早期に終了する基準を決定する際に、BBO取得関数スコアに関数を適用する際に使用される1または複数の値(例えば、目標基準およびバッチパーセンテージ基準にマッピングされる)へと変換または転換され得る。ある実施形態では、ユーザにより入力される「早期終了の攻撃性」は、特定の値、例えば、目標基準およびバッチパーセンテージ基準を含むことができる。「早期終了の攻撃性」は、他のやり方または方式で入力されるか、示されてもよい。通信モジュール108は、ユーザインタフェース102からの通信を受信することができる。
【0026】
別の態様では、ベイズ最適化システム104は、例えば、ユーザインタフェースを介して開始する最適化ユーザの明示的なコマンドなしで、初期の基準セット(例えば、バジェット、バッチサイズ、早期終了の攻撃性)から開始するよう自動的にプログラムまたはトリガされ得る。
【0027】
ベイズ最適化システム104の決定モジュール112は、構成のバッチを生成し、データ取得ソース106にこれらの構成を伝達する、例えば、次に試行する候補構成について決定する。例えば、決定モジュール112は、バッチベイズ最適化を実行または実施し、それによって、構成のバッチが生成される。構成のバッチは、所望の結果または特性を取得するために、データ取得ソース106が試行または実験する際に用いることができる複数の異なるパラメータ値を含む。例えば、通信モジュール108は、データ取得ソース106に構成のバッチを送信することで、過程またはラン(例えば、実験的過程または試験的ラン)を実施して、伝達されたパラメータを使用して実際の出力を生成する(例えば、製品を製造する)。
【0028】
データ取得ソース106は、現実の過程を実施または有効化する物理システムを含むことができる。そのようなデータ取得ソースの例には、製造過程、例えば、塗料などの製品を製造するための工業過程などの物理過程を実施するロボットまたはコントローラと、アッセイなどのタスクもしくは分子の発見またはその両方を実施するロボットまたはコントローラと、機械学習モデル、例えば、ニューラルネットワークをトレーニングする機械学習システムとが含まれ得る。実験するために決定モデルから受信される構成またはパラメータの例には、例えば、化学製造における、成分の濃度、成分の混合率、成分が混合される温度、成分が混合される混合の時間または期間が含まれ得る。結果または戻り値の例には、これらの構成を使用した化学製造過程の実施によってもたらされる過程の収率が含まれてよい。別の例は、ニューラルネットワークをトレーニングする際に使用するハイパーパラメータ値のバッチであってよい。
【0029】
データ取得ソース106は、(例えば、現実の過程を実施した結果として)構成の結果を生成し、例えば、通信モジュール108を介して、ベイズ最適化システム104にその結果を伝達する。結果は、過程の実際の実行から取得される成果の1または複数の特性を含む。特性は、決定モジュール112から受信される構成を使用してデータ取得ソースが製品または最終製品をいかに良く生産したかを示すことができる。ベイズ最適化システム104の記憶モジュール114は、例えば、記憶デバイスに、構成の結果を記憶する。
【0030】
ベイズ最適化システム104の決定モジュール112は、その結果を使用し、BBO方法を使用して別の(次の)構成のバッチを生成する。例えば、結果は、代理モデルを更新するために使用され、活性化関数は、次の構成のバッチを見つけるために使用される。決定モジュール112は、このバッチについてBBOから取得される値を終了モジュール110に伝達する。終了モジュール110は、これらの値を使用して、バジェットが使い果たされる前により適した構成を探す検索を終了するかどうかを評価する。例えば、終了モジュール110は、例えば、ユーザ入力に基づいて設定されるか、事前定義され得る、「早期終了の攻撃性」に関連付けられる1または複数の値を使用して、BBO取得関数に関数を適用して、検索が早期に終了するかどうかを判断する。改善確率、予想される改善もしくは他のものまたはその組み合わせなど、複数の異なる取得関数が使用され得る。停止の基準が満たされていると終了モジュール110が判断した場合は、終了モジュール110は、最適化の実施を停止するよう決定モジュール112に信号を送って、より多くの構成の検索を停止する。ベイズ最適化システム104はまた、例えば、決定モジュール112および通信モジュール108を介して、最適なパラメータの検索が停止したという信号をデータ取得ソース106に送信する。ある実施形態では、そのような停止信号を送信することで、データ取得ソース106を制御して、過程、例えば、製品を生産する過程の試験的ランを停止することができる。決定モジュール112は、通信モジュール108を介してデータ取得ソース106に、および/または、ユーザインタフェース102を介して最適化ユーザに、これらの異なるBBOの反復実行からの構成のセットまたはバッチの中から最も適したセットを反映する最終的な構成を送信することもできる。
【0031】
停止の基準が満たされていないと終了モジュール110が判断した場合は、決定モジュール112は、BBOの別の反復を実施し、このバッチについてBBOから取得されるパラメータ値(構成のバッチ)を終了モジュール110に送信することで、バッチが使い果たされる前に停止の基準が満たされているかどうかを再び評価する。これらの値は、これらのパラメータ値を使用して過程を再び実施するために、データ取得ソース106にも送信される。最適化は、基準が満たされていると終了モジュール110が判断するか、バジェットが使い果たされるまで、その反復から決定される構成を使用して実験の実施を反復するデータ取得ソース106で反復されるか、繰り返される。バジェットが使い果たされた場合は、最終的な最適化された構成(例えば、最も適した構成セット)が、通信モジュール108を介してユーザインタフェース102経由で最適化ユーザに送信され得る。
【0032】
図2は、ある実施形態における、BBO検索を早期に終了するかどうかを判断する方法を示したフロー図である。この方法は、1または複数のハードウェアプロセッサにより実装、実施されてもよいし、1または複数のハードウェアプロセッサ上で実行されてもよい。
【0033】
202では、検索の目標基準とバッチパーセンテージ基準とが設定または事前決定され得る。ある実施形態では、目標基準は、0と1との間の浮動小数(浮動小数点値)で表され得る。ある実施形態では、バッチパーセンテージ基準は、0~100のパーセンテージ(%)で表され得る。目標基準およびバッチパーセンテージ基準は、モデル化を実施するコストと、モデル化に基づいて実施される実験とに基づいて事前決定または事前定義されてよく、構成可能である。例えば、実験(例えば、現実のシステムの実行)のコストが高いか、高くつく場合は、目標基準もしくはバッチパーセンテージ基準またはその両方をより積極的に設定することで、例えば、あまり積極的でない値に設定した場合よりも早期に検索を停止することができる。例えば、目標基準およびバッチパーセンテージ基準は、ユーザから受信される、および/または、早期停止をどのくらい積極的に追求するかを示すユーザ入力データからマッピングされる、ユーザ定義パラメータであってよい。
【0034】
204では、バッチベイズ最適化(BBO)方法を使用して、評価のための候補のバッチが取得される。例えば、利用可能なパラメータ値と、関連付けられる観測値(例えば、結果または出力)とに基づいて、代理モデル(応答曲面モデルとも呼ばれる)または確率モデルが構築され得る。代理モデルに関連付けられる取得関数を使用して、候補のバッチを見つけることができる。
【0035】
206では、例えば、バッチ内の候補ごとに、文脈的改善確率(cPI:contextual probability)が評価される。ここで、cPIは以下のように定式化される。
【数1】
ここで、
【数2】
であり、ここで、
【数3】
は、サンプリングされた事後分布に含まれる分散の平均であり、事後の特定のポイントに関する予測の個々の分散であるσと区別され、
【数4】
は、候補からの予測値(ベイズモデルが所与の構成の候補について予測する値)を表し、
【数5】
は、これまでに発見された最良の候補(例えば、これまでに評価された最良の候補についてデータ取得ソースにより生成される値)を表し、
【数6】
は、標準正規分布の累積分布関数(CDF)である。ある実施形態では、これらの値は全てBBO方法から抽出される。
【0036】
その後、208では、cPIの計算値が目標基準と比較される。例えば、各候補のcPIスコアまたは値が目標基準と比較される。cPIスコアが目標基準よりも低いバッチ内の候補の数が決定される。バッチ内の全ての候補のうち、cPIスコアが目標基準よりも低いバッチ内の候補の数のパーセンテージまたは割合が決定される。
【0037】
210では、cPIスコアが停止基準(目標基準)よりも低い候補のパーセンテージが所定のパーセンテージ(バッチパーセンテージ基準)よりも高い場合、信号を生成して、および/または、例えば、204でBBOを実施したBBOエンジンに送信して、検索を終了する、例えば、BBOを実施してより多くの候補を取得することができる。
【0038】
図3は、ある実施形態におけるシステムコンポーネントを示したブロック図である。示されているコンポーネントは、例えば、1または複数のハードウェアプロセッサ上で実装および/または実行されるか、1または複数のハードウェアプロセッサと結合される、コンピュータ実装コンポーネントを含む。バッチベイズ最適化エンジン304は、例えば、ユーザインタフェース302を介して、バジェット、バッチサイズ、および終了設定などの最適化基準をユーザから受信することができる。バッチベイズ最適化エンジン304は、バッチベイズ最適化方法を実施し、データ取得ソース308による製造過程などの過程で試行する構成のバッチを決定する。データ取得ソース308は、構成のバッチを使用して実験またはテストを実施し、バッチベイズ最適化エンジン304に結果を送信する。例えば、ある実施形態では、構成のバッチの送信によって、製造過程を自動的に制御して、製造を実施する、例えば、動かす製造機器を起動する。別の例として、ある実施形態では、構成のバッチの送信によって、ロボットを自動的に制御または起動して、アッセイなどのタスクを実施する。バッチベイズ最適化エンジン304は、生産の結果、例えば、製造過程などの過程の実施によってもたらされる製品または過程の1または複数の特性を、データ取得ソース308から受信する。例えば、結果は、これらの構成を使用して生産された製品がいかに良くバクテリアを除去したかであってよい。別の例として、結果は、これらの構成を使用してトレーニングされたニューラルネットワークがいかに正確に分類タスクを実施したかであってよい。バッチベイズ最適化エンジン304は、結果と、関連付けられる構成とを記憶する。複数の異なる構成のバッチの結果に基づいて、バッチベイズ最適化エンジン304は、テストされた構成の中からどの構成が最も適しているかを判断することができる。
【0039】
バッチベイズ最適化エンジン304は、例えば、データ取得ソース308から受信される結果を使用して代理モデルを更新し、かつ、更新された代理モデルの関数として取得関数を適用することにより、次の構成のバッチを取得する。バッチベイズ最適化エンジン304は、停止基準評価器306に次の構成のバッチを送信する。停止基準評価器306は、例えば、バッチベイズ最適化エンジン304の取得関数に関数を適用することにより、次の構成のバッチの検索を停止するかどうかを判断する。例えば、停止基準評価器306は、図2を参照して説明した方法を実施してよい。停止基準評価器306は、検索を停止するかどうかを示す信号をバッチベイズ最適化エンジン304に戻すか、送信する。例えば、停止基準が満たされている場合は、停止基準評価器306は、検索を停止すべきであることを示す信号を送信する。さもなければ、停止基準評価器306は、検索を継続すべきであるという信号または指示を送信することができる。
【0040】
終了信号も停止信号も受信されない場合は、バッチベイズ最適化エンジン304は、データ取得ソース308に次の構成のバッチを送信して、現実または実際の過程で使用する。データ取得ソース308は、この次の構成のバッチを使用して過程を実施し、バッチベイズ最適化エンジン304に結果を戻す。結果は記憶される。ベイズ最適化エンジン304は、結果に基づいて代理モデルを再び更新し、取得関数を適用して、次の構成のバッチを見つける。
【0041】
304で次の構成のバッチを見つけ、306で停止基準が満たされているかどうかを評価し、データ取得ソース308に次の構成のバッチを送信する。ここで、データ取得ソース308は、テスト過程を実施し、停止基準が満たされているか、指定されたバジェット(例えば、反復の回数)が使い果たされたと停止基準評価器306が判断するまで、データ取得ソース308から受信される結果の記憶が繰り返される。最適化検索の完了(例えば、停止基準が満たされているか、指定されたバジェットが使い果たされている)に応答して、バッチベイズ最適化エンジン304は、例えば、ユーザインタフェース302を介して、最適であると判断された構成のバッチ、例えば、最適な結果を生成したものをユーザに送信してよい。ある態様では、バッチベイズ最適化エンジン304は、データ取得ソース308を制御して、実験過程または試験過程を停止してもよい。例えば、バッチベイズ最適化エンジン304は、製造過程などの物理過程を制御または無効化して、製造における手順を停止してよい。例えば、バッチベイズ最適化エンジン304は、物理過程または機器を制御して、過程を停止または継続してよい。別の例として、バッチベイズ最適化エンジン304は、ニューラルネットワークを制御して、ニューラルネットワークをトレーニングする過程を停止してもよく、例えば、ニューラルネットワークをトレーニングする際の複数の異なるハイパーパラメータを用いた実験を停止してもよい。
【0042】
図4は、ある実施形態における方法を示したフロー図である。この方法は、1または複数のハードウェアプロセッサ上で実行されるコンピュータ実装方法であってよい。この方法では、バッチベイズ最適化(BBO)システムにおけるリアルタイム介入を実施して、所定の閾値に達した場合にBBO検索を早期に終了するかどうかを自動的に判断する。ある態様では、製造過程もしくはロボットまたはその両方などのデータ取得ソースを例えば、リアルタイムで実行すると、費用がかかる可能性がある。例えば、新しい構成または次の構成でデータ取得ソースを反復的に実行すると、電力、機器、およびコンピュータリソースが消費され得る。ある実施形態における方法では、リアルタイムで介入して、データ取得ソース、例えば、製造過程、もしくはタスクを実施するロボット、またはその両方の早期の反復的な実行を停止する。例えば、この方法は、過程において物理マシンをリアルタイムで制御する段階、もしくは物理マシンのそのような制御を引き起こす段階、またはその両方を含んでよい。そのような早期停止によって、電力消費と、以下に限定されるわけではないが、メモリデバイスおよび記憶デバイスの空間を含む、機器およびコンピュータリソースの消費とが削減され得る。
【0043】
402では、BBO検索の早期停止をいかに積極的に追求するかを示すデータなどの終了設定が受信され得る。例えば、目標基準およびバッチパーセンテージ基準が受信され得る。別の例として、そのような基準にマッピングされ得る情報が受信され得る。ある実施形態では、そのようなデータ、例えば、目標基準およびバッチパーセンテージ基準は構成可能である。ある実施形態では、目標基準およびバッチパーセンテージ基準はユーザから受信され得る。ある実施形態では、目標基準は、検索の終了に必要とされる統計的有意水準を表し、バッチパーセンテージ基準は、検索の終了に失敗する必要があるバッチの量を表す。
【0044】
404では、工業過程で使用するための候補構成のバッチが検索される。ある実施形態では、候補構成のバッチは、例えば、上記のように、バッチベイズ最適化(BBO)を実施することにより検索される。
【0045】
406では、候補構成のバッチが工業過程に伝送されて、工業過程の実行時に使用される。ある実施形態では、候補のバッチの伝送によって、工業過程に関連付けられるロボットなどの機械がタスクまたはランを実施するよう制御されて、例えば、製品が製造または生産される。408では、ランまたは生産の結果が工業過程から受信される。例えば、この結果は、製造された製品の1または複数の特性を含むことができる。
【0046】
410では、この結果が、次の候補構成のバッチを検索するためにBBOで使用される。412では、例えば、BBO検索の早期停止をいかに積極的に追求するかを示す受信されたデータを使用して、例えば、次の候補構成のバッチに基づいて、かつ、BBO取得スコアに関数を適用することにより、停止基準が満たされているかどうかが判断される。
【0047】
ある実施形態では、関数を適用することは、次の候補のバッチに関連付けられるデータを目標基準およびバッチパーセンテージ基準に基づいて評価することを含む。ある実施形態では、例えば、図2を参照して以上で説明したように、次の候補構成のバッチに基づいて、停止基準が満たされているかどうかを判断する段階は、バッチ内の候補構成の各々について、文脈的改善確率スコア(cPIスコア)を計算する段階と、cPIスコアが目標基準よりも低い候補構成のパーセンテージがバッチパーセンテージ基準よりも高いと判断する段階とを含むことができる。例えば、図2を参照して以上で説明したように、cPIスコアは、例えば、サンプリングされた事後分布に含まれる分散の平均と、候補からの予測値と、BBOの反復の中から発見された最良の候補値との組み合わせの標準正規分布の累積分布関数(CDF)として決定され得る。
【0048】
414では、停止基準が満たされているという判断に応答して、次の候補のバッチの検索が停止または終了する。ある実施形態では、工業過程は、実行を停止するよう制御され得る。例えば、BBOを実施するプロセッサが、停止基準が満たされているという判断に応答して、工業過程に信号を送信するか、工業過程を自動的に制御して実行の反復を停止してよい。見つかった複数の構成のバッチのうち、最適な構成のバッチが工業過程に送信され得る。例えば、工業過程は、生産における最適な構成のバッチを使用するよう制御され得る。そのような最適な構成のバッチは、例えば、ユーザインタフェースを介して、ユーザに送信されてもよい。
【0049】
416では、停止基準が満たされていないという判断に応答して、次の候補構成のバッチが工業過程に伝送されて、工業過程の実行時に使用される。例えば、停止基準が満たされていないという判断に応答して、BBOを実施するプロセッサが、実行の別の反復のために工業過程に次の候補構成のバッチを送信してよい。例えば、次の候補構成のバッチを伝送することで、工業過程がリアルタイムで実行されるよう自動的に制御される。BBOで結果を使用して次の候補構成のバッチを検索し、かつ、停止基準が満たされているかどうかを判断する過程またはステップは、繰り返されても反復されてもよい。ある態様では、上記の方法は、製造過程または工業過程などの現実の実行過程のリアルタイムでの早期停止介入を提供することができる。ある態様では、ある実施形態における方法は、製造過程または工業過程に関連付けられるロボットなどの物理マシンをリアルタイムで自動的に制御して、生産反復を継続もしくは停止またはその両方をすることができる。
【0050】
図5は、ある過程のリアルタイムでの早期停止介入を提供する、一実施形態におけるシステムのコンポーネントを示したダイアグラムである。中央処理装置(CPU)、グラフィックス処理装置(GPU)、および/もしくはフィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、並びに/または別のプロセッサなどの1または複数のハードウェアプロセッサ502が、メモリデバイス504と結合されてよく、バッチベイズ最適化を実施してよく、その過程で使用する候補構成を推奨してよい。メモリデバイス504は、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、または別のメモリデバイスを含んでよく、本明細書に記載の方法もしくはシステムまたはその両方に関連付けられる様々な機能を実装するためのデータもしくはプロセッサ命令またはその両方を記憶してよい。1または複数のプロセッサ502は、メモリ504に記憶されるか、別のコンピュータデバイスまたは媒体から受信される、コンピュータ命令を実行してよい。メモリデバイス504は、例えば、1または複数のハードウェアプロセッサ502の機能のための命令もしくはデータまたはその両方を記憶してよく、オペレーティングシステムと、命令もしくはデータまたはその両方の他のプログラムとを含んでよい。1または複数のハードウェアプロセッサ502は、バッチベイズ最適化を実施するためのデータ、バッチサイズ、目標基準、バッチパーセンテージ基準、バジェット(例えば、反復の回数)を含み得る入力を受信してよい。例えば、少なくとも1つのハードウェアプロセッサ502が、推奨(候補構成)を生成し、現実の過程における試験的ランのための候補構成をリアルタイムで送信してよい。候補構成はまた、停止基準が満たされているかどうかを判断するために使用される。実験的ランは、満たされている停止基準に基づいて早期に停止され得る。推奨と、その推奨に基づく試験的な実験的ランの結果とが、記憶デバイス506に記憶され得る。ある実施形態では、入力データは、リモートデバイスからネットワークインタフェース508を介して受信されてよく、バッチベイズ最適化を実施するためにメモリデバイス504に一時的にロードされてよい。1または複数のハードウェアプロセッサ502は、例えば、ネットワークを介して、リモートシステムと通信するためのネットワークインタフェース508、並びに、キーボード、マウス、ディスプレイ、および/または他のものなどの入力デバイスおよび/または出力デバイスと通信するための入出力インタフェース510などの、インタフェースデバイスと結合されてよい。
【0051】
図6は、一実施形態におけるシステムを実装し得る例示的なコンピュータシステムまたは処理システムの概略を示す。このコンピュータシステムは、適切な処理システムの一例に過ぎず、本明細書に記載されている方法の実施形態の使用範囲または機能に関するいかなる限定の示唆も意図するものではない。示されている処理システムは、他の多数の汎用コンピューティングシステムまたは特殊用途向けコンピューティングシステムの環境または構成で動作可能であってよい。図6に示す処理システムとの使用に適切であり得る周知のコンピューティングシステム、環境もしくは構成またはその組み合わせの例には、以下に限定されるわけではないが、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家電製品、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、および、上記のシステムまたはデバイスなどのいずれかを含む分散型クラウドコンピューティング環境が含まれてよい。
【0052】
コンピュータシステムは、コンピュータシステムにより実行される、プログラムモジュールなどのコンピュータシステム実行可能命令の一般的な文脈で説明されてよい。概して、プログラムモジュールは、特定のタスクを実施するか、特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含んでよい。コンピュータシステムは、通信ネットワークを介してリンクされるリモート処理デバイスによりタスクが実施される分散型クラウドコンピューティング環境で実践されてよい。分散型クラウドコンピューティング環境では、メモリ記憶デバイスを含むローカルコンピュータシステム記憶媒体およびリモートコンピュータシステム記憶媒体の両方にプログラムモジュールが配置されてよい。
【0053】
コンピュータシステムのコンポーネントは、以下に限定されるわけではないが、1または複数のプロセッサまたは処理装置12と、システムメモリ16と、システムメモリ16を含む様々なシステムコンポーネントをプロセッサ12に結合するバス14とを含んでよい。プロセッサ12は、本明細書に記載の方法を実施するモジュール30を含んでよい。モジュール30は、プロセッサ12の集積回路中にプログラムされても、メモリ16、記憶デバイス18もしくはネットワーク24またはその組み合わせからロードされてもよい。
【0054】
バス14は、メモリバスまたはメモリコントローラ、ペリフェラルバス、アクセラレイティッドグラフィックスポート、および、様々なバスアーキテクチャのいずれかを使用するプロセッサまたはローカルバスを含む、幾つかのタイプのバス構造のいずれかのうちの1または複数を表してよい。限定ではなく例として、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンスドISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、およびペリフェラルコンポーネントインターコネクト(PCI)バスを含む。
【0055】
コンピュータシステムは、様々なコンピュータシステム可読媒体を含んでよい。そのような媒体は、コンピュータシステムでアクセス可能な任意の利用可能な媒体であってよく、取り外し可能媒体および取り外し不可能媒体、揮発性媒体および不揮発性媒体の両方を含んでよい。
【0056】
システムメモリ16は、ランダムアクセスメモリ(RAM)および/もしくはキャッシュメモリまたは他のものなどの、揮発性メモリの形態のコンピュータシステム可読媒体を含むことができる。コンピュータシステムは更に、他の取り外し可能/取り外し不可能な揮発性/不揮発性のコンピュータシステム記憶媒体を含んでよい。単なる例として、取り外し不可能な不揮発性の磁気媒体(例えば、「ハードドライブ」)からの読み取り、およびそれへの書き込みのために、記憶システム18が提供され得る。示されてはいないが、取り外し可能な不揮発性の磁気ディスク(例えば、「フロッピーディスク」)からの読み取り、およびそれへの書き込みのための磁気ディスクドライブと、CD-ROM、DVD-ROM、または他の光媒体などの取り外し可能な不揮発性の光ディスクからの読み取り、またはそれへの書き込みのための光ディスクドライブとが提供され得る。そのような場合は、各々が1または複数のデータ媒体インタフェースによりバス14へ接続され得る。
【0057】
コンピュータシステムは、キーボード、ポインティングデバイス、ディスプレイ28などといった1または複数の外部デバイス26、ユーザがコンピュータシステムと相互作用できるようにする1または複数のデバイス、もしくは、コンピュータシステムが1または複数の他のコンピューティングデバイスと通信できるようにする任意のデバイス(例えば、ネットワークカード、モデムなど)またはその両方と通信してもよい。そのような通信は、入出力(I/O)インタフェース20を介して行われ得る。
【0058】
なおも更に、コンピュータシステムは、ネットワークアダプタ22を介して、ローカルエリアネットワーク(LAN)、一般的なワイドエリアネットワーク(WAN)もしくはパブリックネットワーク(例えば、インターネット)またはその組み合わせなどの1または複数のネットワーク24と通信することができる。図示されているように、ネットワークアダプタ22は、バス14を介してコンピュータシステムの他のコンポーネントと通信する。示されてはいないが、他のハードウェアコンポーネントもしくはソフトウェアコンポーネントまたはその両方をコンピュータシステムと組み合わせて使用できることを理解されたい。例には、以下に限定されるわけではないが、マイクロコード、デバイスドライバ、冗長処理装置、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、およびデータアーカイバル記憶システムなどが含まれる。
【0059】
本開示はクラウドコンピューティングに関する説明を含み得るが、本明細書に列挙される教示の実装がクラウドコンピューティング環境に限定されるわけではないことが予め解る。むしろ、本発明の実施形態は、現在知られているか、後ほど開発される、任意の他のタイプのコンピューティング環境と組み合わせて実装され得る。クラウドコンピューティングは、最小限の管理努力またはサービスプロバイダとの相互作用で早急にプロビジョニングおよび解放され得る構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシン、およびサービス)の、共有プールへの便利なオンデマンドネットワークアクセスを可能にするためのサービス提供のモデルである。このクラウドモデルは、少なくとも5つの特性と、少なくとも3つのサービスモデルと、少なくとも4つの展開モデルとを含んでよい。
【0060】
特性は以下の通りである。
【0061】
オンデマンドセルフサービス:クラウド消費者は、サービスプロバイダとの人間相互作用を必要とすることなく必要に応じて自動的に、サーバ時間およびネットワーク記憶装置などのコンピューティング能力を一方的にプロビジョニングすることができる。
【0062】
幅広いネットワークアクセス:能力はネットワーク経由で利用可能であり、異種のシンクライアントプラットフォームまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準メカニズムを介してアクセスされる。
【0063】
リソースのプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者に役立つようプーリングされ、複数の異なる物理リソースおよび仮想リソースが、需要に従って動的に割り当てられ、再び割り当てられる。消費者は概して、提供されたリソースの正確な位置を制御することも認識することもないが、より高いレベルの抽象的概念(例えば、国、州、またはデータセンタ)で位置を指定できる場合があるという点で、位置独立性がある。
【0064】
早急な順応性:能力は、早急かつ順応的に、場合によっては自動的に、プロビジョニングされて迅速にスケールアウトし、早急に解放されて迅速にスケールインすることができる。消費者には、プロビジョニングに利用可能な能力が無制限に見えることが多く、任意の時間に任意の量が購入され得る。
【0065】
測定されたサービス:クラウドシステムは、サービスのタイプ(例えば、記憶装置、処理、帯域幅、およびアクティブなユーザのアカウント)に適したある抽象化レベルで計測能力を利用することにより、リソースの使用を自動的に制御および最適化する。リソースの使用を監視、制御、および報告して、利用されたサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
【0066】
サービスモデルは以下の通りである。
【0067】
Software as a Service(SaaS):消費者に提供される能力は、クラウドインフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションには、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインタフェースを介して様々なクライアントデバイスからアクセス可能である。消費者は、場合によっては、限られたユーザ固有のアプリケーション構成設定を例外として、ネットワーク、サーバ、オペレーティングシステム、記憶装置、または更には個々のアプリケーション能力を含む、土台となるクラウドインフラストラクチャの管理も制御も行わない。
【0068】
Platform as a Service(PaaS):消費者に提供される能力は、プロバイダによりサポートされるプログラミング言語およびツールを使用して作成される、消費者が作成または取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、または記憶装置を含む、土台となるクラウドインフラストラクチャの管理も制御も行わないが、展開されたアプリケーションと、場合によっては、アプリケーションホスティング環境の構成とを制御する。
【0069】
Infrastructure as a Service(IaaS):消費者に提供される能力は、処理と、記憶装置と、ネットワークと、オペレーティングシステムおよびアプリケーションを含み得る、消費者が任意のソフトウェアを展開および実行できる他の基本的なコンピューティングリソースとをプロビジョニングすることである。消費者は、土台となるクラウドインフラストラクチャの管理も制御も行わないが、オペレーティングシステム、記憶装置、展開されたアプリケーションを制御し、場合によっては、厳選のネットワーキングコンポーネント(例えば、ホストファイアウォール)を限定的に制御する。
【0070】
展開モデルは以下の通りである。
【0071】
プライベートクラウド:クラウドインフラストラクチャは、組織のためだけに運用される。それは、組織またはサードパーティにより管理されてよく、オンプレミスまたはオフプレミスに存在してよい。
【0072】
コミュニティクラウド:クラウドインフラストラクチャは、幾つかの組織により共有され、懸念事項(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンスの考慮事項)を共有している特定のコミュニティをサポートする。それは、組織またはサードパーティにより管理されてよく、オンプレミスまたはオフプレミスに存在してよい。
【0073】
パブリッククラウド:クラウドインフラストラクチャは、一般人または大規模な業界団体が利用できるようになっており、クラウドサービスを販売する組織により所有される。
【0074】
ハイブリッドクラウド:クラウドインフラストラクチャは、一意のエンティティのままであるが、データおよびアプリケーションの移植性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する標準技術または特許技術により結び付けられている、2つまたはそれより多くのクラウド(プライベート、コミュニティ、またはパブリック)の構成である。
【0075】
クラウドコンピューティング環境は、ステートレス状態、低結合、モジュール性、および意味相互運用性に重点を置いたサービス指向型である。クラウドコンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【0076】
ここで図7を参照すると、例示的なクラウドコンピューティング環境50が図示されている。示されているように、クラウドコンピューティング環境50は、例えば、携帯用情報端末(PDA)もしくはセルラ電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54Cもしくは自動車コンピュータシステム54Nまたはその組み合わせなどの、クラウド消費者により使用されるローカルコンピューティングデバイスが通信し得る1または複数のクラウドコンピューティングノード10を含む。ノード10は互いに通信してよい。それらは、上記のようなプライベートクラウド、コミュニティクラウド、パブリッククラウドもしくはハイブリッドクラウド、またはその組み合わせなどの、1または複数のネットワークで、物理的または仮想的にグループ化(不図示)されてよい。これによって、クラウドコンピューティング環境50は、クラウド消費者がローカルコンピューティングデバイス上でリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォームもしくはソフトウェアまたはその組み合わせを提供することができる。図7に示すコンピューティングデバイス54A~Nのタイプは、単に例示を意図するものであり、コンピューティングノード10およびクラウドコンピューティング環境50は、任意のタイプのネットワークもしくはネットワークアドレス可能接続またはその両方を介して(例えば、ウェブブラウザを使用して)、任意のタイプのコンピュータ化されたデバイスと通信できることが解る。
【0077】
ここで図8を参照すると、クラウドコンピューティング環境50(図7)により提供される関数抽象化層のセットが示されている。図8に示すコンポーネント、層、および機能は単に例示を意図するものであり、本発明の実施形態はそれに限定されないことを予め理解されたい。図示されているように、以下の層および対応する機能が提供される。
【0078】
ハードウェアおよびソフトウェア層60が、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶デバイス65、および、ネットワークおよびネットワーキングコンポーネント66が含まれる。幾つかの実施形態では、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0079】
仮想化層70は、仮想サーバ71、仮想記憶装置72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、および仮想クライアント75といった、仮想エンティティの例の提供元であり得る抽象化層を提供する。
【0080】
一例では、管理層80が下記の機能を提供してよい。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実施するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を提供する。計測および価格設定82は、リソースがクラウドコンピューティング環境内で利用される際のコスト追跡と、これらのリソースの消費に対する請求または送り状作成とを提供する。一例では、これらのリソースは、アプリケーションソフトウェアライセンスを含んでよい。セキュリティは、クラウド消費者およびタスクのアイデンティティ検証、並びに、データおよび他のリソースの保護を提供する。ユーザポータル83は、消費者およびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービス水準管理84は、必要なサービス水準が満たされるように、クラウドコンピューティングリソースの配分および管理を提供する。サービス水準合意(SLA)の計画および履行85は、SLAに従って将来の要件が予想されるクラウドコンピューティングリソースに関する事前の取り決めおよびその調達を提供する。
【0081】
作業負荷層90は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得る作業負荷および機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の提供93、データ分析処理94、トランザクション処理95、およびバッチベイズ最適化処理のための早期実験停止96が含まれる。
【0082】
本発明は、任意の考えられる技術的詳細レベルの統合における、システム、方法もしくはコンピュータプログラム製品またはその組み合わせであってよい。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する1または複数のコンピュータ可読記憶媒体を含んでよい。
【0083】
コンピュータ可読記憶媒体は、命令実行デバイスで使用する命令を保持および記憶し得る有形のデバイスであってよい。コンピュータ可読記憶媒体は、例えば、以下に限定されるわけではないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または前述のものの任意の適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な例の非包括的な列挙には、ポータブルコンピュータディスケットと、ハードディスクと、ランダムアクセスメモリ(RAM)と、リードオンリメモリ(ROM)と、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)と、スタティックランダムアクセスメモリ(SRAM)と、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)と、デジタル多用途ディスク(DVD)と、メモリスティックと、フロッピーディスクと、パンチカード、または命令を記録した溝内の隆起構造などの、機械的に暗号化されたデバイスと、前述のものの任意の適切な組み合わせとが含まれる。コンピュータ可読記憶媒体は、本明細書で使用するとき、電波または他の自由に伝搬する電磁波、導波路または他の伝送媒体を介して伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または、ワイヤを介して伝送される電気信号など、それ自体が一時的な信号であると解釈されるべきではない。
【0084】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれの対応するコンピューティング/処理デバイスにダウンロードされてもよいし、インターネット、ローカルエリアネットワーク、ワイドエリアネットワークもしくは無線ネットワークまたはその組み合わせなどのネットワークを介して、外部コンピュータまたは外部記憶デバイスにダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはその組み合わせを備えてよい。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれの対応するコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためのコンピュータ可読プログラム命令を転送する。
【0085】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Smalltalk(登録商標)またはC++などといったオブジェクト指向型プログラミング言語と、「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語とを含む、1または複数のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で実行されてもよいし、スタンドアロンのソフトウェアパッケージとして部分的にユーザのコンピュータ上で実行されてもよいし、部分的にユーザのコンピュータ上で、かつ、部分的にリモートコンピュータ上で実行されてもよいし、全体的にリモートコンピュータまたはサーバ上で実行されてもよい。後者のシナリオでは、リモートコンピュータが、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよいし、その接続が、(例えば、インターネットサービスプロバイダを使用するインターネットを介して)外部コンピュータに対して行われてもよい。幾つかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路が、本発明の態様を実施すべく、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行してよい。
【0086】
本明細書では、発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品の、フローチャート図もしくはブロック図またはその両方を参照して、本発明の態様が説明されている。フローチャート図もしくはブロック図またはその両方の各ブロックと、フローチャート図もしくはブロック図またはその両方のブロックの組み合わせとは、コンピュータ可読プログラム命令により実装され得ることが解るであろう。
【0087】
これらのコンピュータ可読プログラム命令をコンピュータのプロセッサまたは他のプログラマブルデータ処理装置に提供して機械を生産することで、コンピュータのプロセッサまたは他のプログラマブルデータ処理装置を介して実行される命令が、フローチャートもしくはブロック図またはその両方の1または複数のブロックで指定された機能/行為を実装するための手段を作成するようにしてよい。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラマブルデータ処理装置もしくは他のデバイスまたはその組み合わせを特定の方式で機能するよう方向付けることができる、コンピュータ可読記憶媒体に記憶することで、命令を記憶したコンピュータ可読記憶媒体が、フローチャートもしくはブロック図またはその両方の1または複数のブロックで指定された機能/行為の態様を実装する命令を含む製造品を備えるようにしてもよい。
【0088】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイス上にロードして、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作可能なステップを実施させて、コンピュータ実装過程を生成することで、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートもしくはブロック図またはその両方の1または複数のブロックで指定された機能/行為を実装するようにしてもよい。
【0089】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態に係るシステム、方法、およびコンピュータプログラム製品の考えられる実装のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1または複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表してよい。幾つかの代替的な実装では、ブロックに記す機能が、図に記す順序とは異なる順序で行われてもよい。例えば、連続して示される2つのブロックが、実際には1つのステップとして達成され、部分的または全体的に時間的に重複する方式で、同時に、実質的に同時に実行されてもよいし、これらのブロックが、関連する機能に応じて、時として逆の順序で実行されてもよい。なお、また、ブロック図もしくはフローチャート図またはその両方の各ブロックと、ブロック図もしくはフローチャート図またはその両方のブロックの組み合わせとは、指定された機能または行為を実施するか、特殊用途向けハードウェアとコンピュータ命令との組み合わせを実行する、特殊用途向けハードウェアベースのシステムにより実装され得る。
【0090】
本明細書で使用する専門用語は、単に特定の実施形態の説明を目的としたものであり、本発明の限定を意図するものではない。本明細書で使用するとき、「1つの(a、an)」および「その(the)」という単数形は、文脈による別段の明確な指示がない限り、複数形を含むことも意図している。本明細書で使用するとき、「または」という用語は、包括的な演算子であり、文脈による別段の明示的または明確な指示がない限り、「および/または」を意味することができる。本明細書で使用するとき、「含む(comprise、comprises、comprising、include、includes、includingもしくはhavingまたはその組み合わせ)」という用語は、述べられている特徴、整数、ステップ、動作、要素もしくはコンポーネントまたはその組み合わせの存在を指定することができるが、1または複数の他の特徴、整数、ステップ、動作、要素、コンポーネントもしくはグループまたはその組み合わせの存在または追加を除外するものではないことが更に解るであろう。本明細書で使用するとき、「ある実施形態では」という言い回しは、必ずしも同じ実施形態を指すとは限らないが、指す場合もある。本明細書で使用するとき、「一実施形態では」という言い回しは、必ずしも同じ実施形態を指すとは限らないが、指す場合もある。本明細書で使用するとき、「別の実施形態では」という言い回しは、必ずしも異なる実施形態を指すとは限らないが、指す場合もある。更に、実施形態もしくは実施形態のコンポーネントまたはその両方は、それらが相互に排他的でない限り、互いに自由に組み合わされ得る。
【0091】
以下の特許請求の範囲における全ての手段またはステップ並びに(もしあれば)機能要素の対応する構造、材料、行為、および同等物は、具体的に請求されているような他の請求された要素との組み合わせで機能を実施するための任意の構造、材料、または行為を含むことを意図している。本発明の説明は、例示および説明を目的として提示されているが、包括的であることを意図するものでも、開示されている形態の発明に限定されることを意図するものでもない。本発明の範囲および主旨から逸脱することのない多くの修正および変形が、当業者には明らかであろう。これらの実施形態は、本発明の原理と実際の適用とを最も良く説明し、かつ、企図されている特定の使用に適した様々な修正を伴う様々な実施形態について当業者が本発明を理解できるようにするために、選択および説明された。
図1
図2
図3
図4
図5
図6
図7
図8