(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022189805
(43)【公開日】2022-12-22
(54)【発明の名称】コンピュータ実装方法、情報処理システム、コンピュータプログラム(IT環境向けのアノマリ検出ドメインにおけるパフォーマンスモニタリング)
(51)【国際特許分類】
G06F 11/07 20060101AFI20221215BHJP
G06F 16/903 20190101ALI20221215BHJP
【FI】
G06F11/07 151
G06F16/903
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2022094053
(22)【出願日】2022-06-10
(31)【優先権主張番号】17/344,751
(32)【優先日】2021-06-10
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ハン シャーリー エム.
(72)【発明者】
【氏名】シュ アンバン
(72)【発明者】
【氏名】アキラジュ ラマ カルヤニ ティー.
(72)【発明者】
【氏名】アフジャ サリル
(72)【発明者】
【氏名】リウ シャオトン
【テーマコード(参考)】
5B042
5B175
【Fターム(参考)】
5B042JJ29
5B042MA08
5B042MA14
5B042MC22
5B042MC40
5B175DA10
5B175HA02
(57)【要約】
【課題】IT環境向けのアノマリ検出ドメインにおけるパフォーマンスモニタリング
【解決手段】コンピュータシステムに対応した現在のシステムデータのセットと、コンピュータシステムをモニタリングしているアノマリ検出モデルからの現在の出力のセットとを、取得する手法が開示される。現在のシステムデータおよびアノマリ検出モデルの出力は、訓練済みアノマリ検出スーパーバイザモデルに対する入力である。訓練済みアノマリ検出スーパーバイザモデルは、入力を処理し、アノマリ検出モデルに対応したパフォーマンスデータのセットを提供する。次いで、アノマリ検出モデルのパフォーマンスが閾値を下回っていることをパフォーマンスデータのセットが示すとき、アノマリ検出モデルが調整される。
【選択図】
図3
【特許請求の範囲】
【請求項1】
プロセッサおよびメモリを含む情報処理システムによって実装されるコンピュータ実装方法であって、
コンピュータシステムに対応した現在のシステムデータのセットと、前記コンピュータシステムをモニタリングしているアノマリ検出モデルからの現在の出力のセットとを、取得する段階と、
前記現在のシステムデータのセットおよび前記アノマリ検出モデルからの前記現在の出力のセットを、訓練済みアノマリ検出スーパーバイザモデルに入力する段階と、
前記訓練済みアノマリ検出スーパーバイザモデルから、前記アノマリ検出モデルに対応したパフォーマンスデータのセットを受信する段階と、
前記アノマリ検出モデルのパフォーマンスが閾値を下回っていることを示す前記パフォーマンスデータのセットに応答して、前記アノマリ検出モデルを調整する段階と
を含む方法。
【請求項2】
アノマリ検出スーパーバイザモデルを訓練する段階であって、前記訓練により、前記訓練済みアノマリ検出スーパーバイザモデルがもたらされる、段階をさらに含み、前記訓練が、
前記アノマリ検出スーパーバイザモデルに訓練推論データセットを入力する段階であって、前記訓練推論データセットが、前記コンピュータシステムをモニタリングしている前記アノマリ検出モデルの出力である、段階をさらに含み、
前記アノマリ検出モデルの前記調整が、前記アノマリ検出モデルの再訓練、前記アノマリ検出モデルによって使用される1つまたは複数のメトリックの変更、および前記アノマリ検出モデルによって使用される1つまたは複数の閾値の変更から成るグループから選択される、請求項1に記載の方法。
【請求項3】
前記コンピュータシステムをモニタリングしている前記アノマリ検出モデルからの出力である現在の推論データセットを受信する段階と、
前記訓練済みアノマリ検出スーパーバイザモデルを使用して、前記現在の推論データセットと1つまたは複数の旧推論データセットとを比較する段階であって、前記1つまたは複数の旧推論データセットのうちの1つが、前記訓練推論データセットであり、前記比較により、前記アノマリ検出モデルのパフォーマンスが前記閾値を下回っているかどうかを示す前記パフォーマンスデータのうちの1つがもたらされる、段階と
をさらに含んでいる、請求項2に記載の方法。
【請求項4】
アノマリ検出スーパーバイザモデルを訓練する段階であって、前記訓練により、前記訓練済みアノマリ検出スーパーバイザモデルがもたらされる、段階をさらに含み、前記訓練が、
所定の時間枠に対応した訓練参照カウントベクトルを前記アノマリ検出スーパーバイザモデルに入力する段階であって、前記訓練参照カウントベクトルが、前記コンピュータシステムをモニタリングしている前記アノマリ検出モデルの出力である、段階をさらに含む、請求項1に記載の方法。
【請求項5】
前記コンピュータシステムをモニタリングしている前記アノマリ検出モデルから出力された参照カウントベクトルを受信する段階と、
前記訓練済みアノマリ検出スーパーバイザモデルを使用して、現在の参照カウントベクトルと1つまたは複数の旧参照カウントベクトルとを比較する段階であって、前記1つまたは複数の旧参照カウントベクトルのうちの1つが、前記訓練参照カウントベクトルであり、前記比較により、前記アノマリ検出モデルのパフォーマンスが前記閾値を下回っているかどうかを示す前記パフォーマンスデータのうちの1つがもたらされる、段階と
をさらに含む、請求項4に記載の方法。
【請求項6】
現在のシステムメトリックデータのセットと旧システムメトリックデータの1つまたは複数のセットとを比較する前記訓練済みアノマリ検出スーパーバイザモデルに、前記現在のシステムメトリックデータのセットを入力する段階であって、前記比較により、前記アノマリ検出モデルにおけるデータドリフトの分析がもたらされ、前記データドリフトの前記分析が、前記アノマリ検出モデルのパフォーマンスが前記閾値を下回っているかどうかを示す前記パフォーマンスデータのうちの1つである、段階をさらに含む、請求項1に記載の方法。
【請求項7】
現在のシステムログテンプレートのセットと旧システムログテンプレートの1つまたは複数のセットとを比較する前記訓練済みアノマリ検出スーパーバイザモデルに、前記現在のシステムログテンプレートのセットを入力する段階であって、前記比較により、前記アノマリ検出モデルのパフォーマンスが前記閾値を下回っているかどうかを示す前記パフォーマンスデータのうちの1つがもたらされる、段階をさらに含む、請求項1から6のいずれか一項に記載の方法。
【請求項8】
情報処理システムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサのうちの少なくとも1つに結合されたメモリと、
前記メモリに記憶されていて、
コンピュータシステムに対応した現在のシステムデータのセットと、前記コンピュータシステムをモニタリングしているアノマリ検出モデルからの現在の出力のセットとを、取得する段階と、
前記現在のシステムデータのセットおよび前記アノマリ検出モデルからの前記現在の出力のセットを、訓練済みアノマリ検出スーパーバイザモデルに入力する段階と、
前記訓練済みアノマリ検出スーパーバイザモデルから、前記アノマリ検出モデルに対応したパフォーマンスデータのセットを受信する段階と、
前記アノマリ検出モデルのパフォーマンスが閾値を下回っていることを示す前記パフォーマンスデータのセットに応答して、前記アノマリ検出モデルを調整する段階と
を含むアクションを実施するために、前記1つまたは複数のプロセッサのうちの少なくとも1つによって実行されるコンピュータプログラム命令のセットと
を備える情報処理システム。
【請求項9】
前記アクションが、
アノマリ検出スーパーバイザモデルを訓練する段階であって、前記訓練により、前記訓練済みアノマリ検出スーパーバイザモデルがもたらされる、段階をさらに含み、前記訓練が、
前記アノマリ検出スーパーバイザモデルに訓練推論データセットを入力する段階であって、前記訓練推論データセットが、前記コンピュータシステムをモニタリングしている前記アノマリ検出モデルの出力である、段階をさらに含み、
前記アノマリ検出モデルの前記調整が、前記アノマリ検出モデルの再訓練、前記アノマリ検出モデルによって使用される1つまたは複数のメトリックの変更、および前記アノマリ検出モデルによって使用される1つまたは複数の閾値の変更から成るグループから選択される、請求項8に記載の情報処理システム。
【請求項10】
前記アクションが、
前記コンピュータシステムをモニタリングしている前記アノマリ検出モデルから出力された現在の推論データセットを受信する段階と、
前記訓練済みアノマリ検出スーパーバイザモデルを使用して、前記現在の推論データセットと1つまたは複数の旧推論データセットとを比較する段階であって、前記1つまたは複数の旧推論データセットのうちの1つが、前記訓練推論データセットであり、前記比較により、前記アノマリ検出モデルのパフォーマンスが前記閾値を下回っているかどうかを示す前記パフォーマンスデータのうちの1つがもたらされる、段階と
をさらに含む、請求項9に記載の情報処理システム。
【請求項11】
前記アクションが、
アノマリ検出スーパーバイザモデルを訓練する段階であって、前記訓練により、前記訓練済みアノマリ検出スーパーバイザモデルがもたらされる、段階をさらに含み、前記訓練が、
所定の時間枠に対応した訓練参照カウントベクトルを前記アノマリ検出スーパーバイザモデルに入力する段階であって、前記訓練参照カウントベクトルが、前記コンピュータシステムをモニタリングしている前記アノマリ検出モデルの出力である、段階をさらに含む、請求項8に記載の情報処理システム。
【請求項12】
前記アクションが、
前記コンピュータシステムをモニタリングしている前記アノマリ検出モデルから出力された参照カウントベクトルを受信する段階と、
前記訓練済みアノマリ検出スーパーバイザモデルを使用して、現在の参照カウントベクトルと1つまたは複数の旧参照カウントベクトルとを比較する段階であって、前記1つまたは複数の旧参照カウントベクトルのうちの1つが、前記訓練参照カウントベクトルであり、前記比較により、前記アノマリ検出モデルのパフォーマンスが前記閾値を下回っているかどうかを示す前記パフォーマンスデータのうちの1つがもたらされる、段階と
をさらに含む、請求項11に記載の情報処理システム。
【請求項13】
前記アクションが、
現在のシステムメトリックデータのセットと旧システムメトリックデータの1つまたは複数のセットとを比較する前記訓練済みアノマリ検出スーパーバイザモデルに、前記現在のシステムメトリックデータのセットを入力する段階であって、前記比較により、前記アノマリ検出モデルにおけるデータドリフトの分析がもたらされ、前記データドリフトの前記分析が、前記アノマリ検出モデルのパフォーマンスが前記閾値を下回っているかどうかを示す前記パフォーマンスデータのうちの1つである、段階をさらに含む、請求項8に記載の情報処理システム。
【請求項14】
前記アクションが、
現在のシステムログテンプレートのセットと旧システムログテンプレートの1つまたは複数のセットとを比較する前記訓練済みアノマリ検出スーパーバイザモデルに、前記現在のシステムログテンプレートのセットを入力する段階であって、前記比較により、前記アノマリ検出モデルのパフォーマンスが前記閾値を下回っているかどうかを示す前記パフォーマンスデータのうちの1つがもたらされる、段階をさらに含む、請求項8から13のいずれか一項に記載の情報処理システム。
【請求項15】
コンピュータプログラムであって、情報処理システムによって実行されたときに、
コンピュータシステムに対応した現在のシステムデータのセットと、前記コンピュータシステムをモニタリングしているアノマリ検出モデルからの現在の出力のセットとを、取得する手順と、
前記現在のシステムデータのセットおよび前記アノマリ検出モデルからの前記現在の出力のセットを、訓練済みアノマリ検出スーパーバイザモデルに入力する手順と、
前記訓練済みアノマリ検出スーパーバイザモデルから、前記アノマリ検出モデルに対応したパフォーマンスデータのセットを受信する手順と、
前記アノマリ検出モデルのパフォーマンスが閾値を下回っていることを示す前記パフォーマンスデータのセットに応答して、前記アノマリ検出モデルを調整する手順と
を含むアクションを実施するコンピュータプログラムコードを備えるコンピュータプログラム。
【請求項16】
前記アクションが、
アノマリ検出スーパーバイザモデルを訓練する段階であって、前記訓練により、前記訓練済みアノマリ検出スーパーバイザモデルがもたらされる、段階をさらに含み、前記訓練が、
前記アノマリ検出スーパーバイザモデルに訓練推論データセットを入力する段階であって、前記訓練推論データセットが、前記コンピュータシステムをモニタリングしている前記アノマリ検出モデルの出力である、段階をさらに含み、
前記アノマリ検出モデルの前記調整が、前記アノマリ検出モデルの再訓練、前記アノマリ検出モデルによって使用される1つまたは複数のメトリックの変更、および前記アノマリ検出モデルによって使用される1つまたは複数の閾値の変更から成るグループから選択される、請求項15に記載のコンピュータプログラム。
【請求項17】
前記アクションが、
前記コンピュータシステムをモニタリングしている前記アノマリ検出モデルから出力された現在の推論データセットを受信する段階と、
前記訓練済みアノマリ検出スーパーバイザモデルを使用して、前記現在の推論データセットと1つまたは複数の旧推論データセットとを比較する段階であって、前記1つまたは複数の旧推論データセットのうちの1つが、前記訓練推論データセットであり、前記比較により、前記アノマリ検出モデルのパフォーマンスが前記閾値を下回っているかどうかを示す前記パフォーマンスデータのうちの1つがもたらされる、段階と
をさらに含む、請求項16に記載のコンピュータプログラム。
【請求項18】
前記アクションが、
アノマリ検出スーパーバイザモデルを訓練する段階であって、前記訓練により、前記訓練済みアノマリ検出スーパーバイザモデルがもたらされる、段階をさらに含み、前記訓練が、
所定の時間枠に対応した訓練参照カウントベクトルを前記アノマリ検出スーパーバイザモデルに入力する段階であって、前記訓練参照カウントベクトルが、前記コンピュータシステムをモニタリングしている前記アノマリ検出モデルの出力である、段階をさらに含む、請求項15に記載のコンピュータプログラム。
【請求項19】
前記アクションが、
前記コンピュータシステムをモニタリングしている前記アノマリ検出モデルから出力された参照カウントベクトルを受信する段階と、
前記訓練済みアノマリ検出スーパーバイザモデルを使用して、現在の参照カウントベクトルと1つまたは複数の旧参照カウントベクトルとを比較する段階であって、前記1つまたは複数の旧参照カウントベクトルのうちの1つが、前記訓練参照カウントベクトルであり、前記比較により、前記アノマリ検出モデルのパフォーマンスが前記閾値を下回っているかどうかを示す前記パフォーマンスデータのうちの1つがもたらされる、段階と
をさらに含む、請求項18に記載のコンピュータプログラム。
【請求項20】
前記アクションが、
現在のシステムメトリックデータのセットと旧システムメトリックデータの1つまたは複数のセットとを比較する前記訓練済みアノマリ検出スーパーバイザモデルに、前記現在のシステムメトリックデータのセットを入力する段階であって、前記比較により、前記アノマリ検出モデルにおけるデータドリフトの分析がもたらされ、前記データドリフトの前記分析が、前記アノマリ検出モデルのパフォーマンスが前記閾値を下回っているかどうかを示す前記パフォーマンスデータのうちの1つである、段階と、
現在のシステムログテンプレートのセットと旧システムログテンプレートの1つまたは複数のセットとを比較する前記訓練済みアノマリ検出スーパーバイザモデルに、前記現在のシステムログテンプレートのセットを入力する段階であって、前記比較により、前記アノマリ検出モデルのパフォーマンスが前記閾値を下回っているかどうかを示す前記パフォーマンスデータのうちの1つがもたらされる、段階と
をさらに含む、請求項15から19のいずれか一項に記載のコンピュータプログラム。
【発明の詳細な説明】
【背景技術】
【0001】
世界中でデジタルトランスフォーメーションが急速に出現していることから、情報技術(IT)運用の管理は、企業にとって複雑なタスクである。毎年、企業は、収益、人件費、企業の評判、および顧客満足度に悪影響を及ぼす機能停止に直面している。企業の現在のワークフローにおけるアノマリ検出に関して言えば、パフォーマンスを効率的にモニタリングし、適切なアクションをとるための方法を有しておくことが、企業にとって重要である。IT環境においてアノマリ検出を実施するために、多くの場合、機械学習モデルが実装される。しかし現在のところ、これらのモデルのパフォーマンスをモニタリングし、データドリフトをモニタリングするための正確な方法は存在しない。サイト信頼性エンジニア(SRE)がIT環境を評価し、アノマリ検出に関して取るべきアクションに関する適切な決定を下すことを可能にするために、この情報が必要とされている。システムログ、メトリックデータ、およびトポロジ情報などのシステムデータは、随時変化する。特に、現在のアノマリ検出モデルのパフォーマンスについて理解が不足している場合には、アノマリ検出機械学習モデルがいつ再訓練を必要とするかを理解するのは困難である。アノマリ検出モデルの訓練は、時間およびリソースを要する。その結果、SREは、アノマリ検出モデルの不必要な訓練を回避しようと試みる。しかし、パフォーマンスの低いアノマリ検出モデルは、モニタリングしているコンピュータシステムのアノマリを正確に検出できないことがあり、セキュリティ違反および他のシステム問題につながる可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【0002】
パフォーマンスの低いアノマリ検出モデルは、モニタリングしているコンピュータシステムのアノマリを正確に検出できないことがあり、セキュリティ違反および他のシステム問題につながる可能性がある。
【課題を解決するための手段】
【0003】
コンピュータシステムに対応した現在のシステムデータのセットと、コンピュータシステムをモニタリングしているアノマリ検出モデルからの現在の出力のセットとを、取得する手法が開示される。現在のシステムデータおよびアノマリ検出モデルの出力は、訓練済みアノマリ検出スーパーバイザモデルに対する入力である。訓練済みアノマリ検出スーパーバイザモデルは、入力を処理し、アノマリ検出モデルに対応したパフォーマンスデータのセットを提供する。次いで、アノマリ検出モデルのパフォーマンスが閾値を下回っていることをパフォーマンスデータのセットが示すとき、アノマリ検出モデルが調整される。
【0004】
上記は概要であり、したがって必然的に、簡略化、一般化、および詳細事項の省略を含んでいる。その結果、この概要が単に説明的なものであり、限定的であることを決して意図していないことを、当業者は理解するであろう。他の態様、発明的特徴、および本発明の利点は、以下に記載する非限定的な詳細な説明において明らかになろう。
【図面の簡単な説明】
【0005】
添付図面を参照することにより、本発明をより深く理解することができ、その多数の目的、特徴、および利点が、当業者に対して明らかにされる。
【0006】
【
図1】知識ベースを利用する知識マネージャを含むネットワーク環境を示す図である。
【0007】
【
図2】
図1に示してあるものなどの情報処理システムのプロセッサおよびコンポーネントを示すブロック図である。
【0008】
【
図3】情報技術(IT)環境向けのアノマリ検出ドメインにおいてパフォーマンスモニタリングを実施するための、様々なコンポーネントおよび相互作用を示すコンポーネント図である。
【0009】
【
図4】アノマリ検出スーパーバイザにより使用される論理を示すフローチャートの図である。
【0010】
【
図5】スーパーバイザリモデルを訓練するために使用される論理を示すフローチャートの図である。
【0011】
【
図6】アノマリ検出モデルのパフォーマンスをモニタリングするために、訓練済みスーパーバイザリモデルにより使用される論理を示すフローチャートの図である。
【発明を実施するための形態】
【0012】
図1~6は、情報技術(IT)環境向けのアノマリ検出ドメインにおけるパフォーマンスモニタリングを実施するための手法を説明するものである。
本明細書において説明する手法は、モデルパフォーマンスを判定する機械学習およびルールベース方法を使用することにより、アノマリ検出ドメインにおけるパフォーマンスを自動的にモニタリングすることに関する。この手法は、分布変化およびマイクロサービス相互作用をトポロジからモニタリングし、継続的なモデル強化をユーザフィードバックから提供する。環境において現在実行しているアノマリ検出モデルからの出力(データ)と同様に、システムログ、メトリックデータ、およびトポロジ情報などのシステムデータが、この手法の入力として使用される。これらの入力は、アノマリ検出モデルのパフォーマンスをモニタリングするとともにデータドリフトをモニタリングするスーパーバイズド機械学習モデルに利用される。データドリフトとは、アノマリ検出モデルにより使用されるデータの分布における経時的な変化のことである。アノマリ検出モデルを訓練したベースラインデータセットが、アノマリ検出モデルによって処理されている現在のリアルタイム作成データと異なる場合には、モデルのパフォーマンスが、ときに著しく劣化することがある。この手法は、再訓練が必要かどうかを判定するスーパーバイズド機械学習モデルおよびルールベース方法を利用することにより、アノマリ検出用の既存の訓練済みモデル向けに、パフォーマンスモニタリングの結果および推奨されるアクションを生成する。さらに、この手法は、チューニングを必要とする可能性のある閾値を識別することができる。この手法は、アノマリ検出モデルのパフォーマンスをモニタリングし、モデルデータにおけるデータドリフトを検出するスーパーバイザ機械学習モデルを訓練する。スーパーバイズド機械学習モデルおよびルールベース方法により、アノマリ検出モデルの正解率が判定され、推奨されるアクションが識別される。このように、この手法は、IT環境における既存のアノマリ検出モデルを改善し、IT運営環境におけるアノマリをより正確に識別することを支援する。
【0013】
この手法は、パフォーマンスの低いアノマリ検出モデルの問題に、3つの主要な領域において対処する。第1に、この手法は、「グラウンドトゥルース」が存在する場合に、適合率、正解率、およびF1スコアなどの評価メトリックを調査することにより、アノマリ検出モデルのパフォーマンスを分析する。第2に、スーパーバイザ機械学習モデルが、現在のアノマリ検出モデルに基づく分布変化を予測し、アノマリ検出モデルのパフォーマンスおよび正解率を改善するための提案を行う。スーパーバイザモデルは、システムデータ、およびデータ(たとえば、ログ、メトリック、トポロジ情報など)、および現在のアノマリ検出モデルからの出力(たとえば、推論データセット、カウントベクトルなど)に基づき訓練される。分布変化のモニタリングのために、ログテンプレートおよびカウントベクトルが入力ログから生成され、データドリフトについて継続的にモニタリングされる。ログテンプレート、カウントベクトル、およびメトリックデータも、継続的に照合されて、所与の時間窓について割合が定義済み閾値を下回っているかどうかが確認される。一実施形態において、ログテンプレートは、入力された全てのログから生成されるものであり、カウントベクトルは、ログメッセージから抽出されたテンプレートの分布である。割合が持続的に閾値を下回っている場合には、持続的なデータドリフトを示唆しており、次いでモデルの再訓練がSREに提案される。さらに、現在のアノマリ検出モデルによって生成された旧推論データセットと新推論データセットがルールベースで比較されて、データドリフト分析およびSREへの推奨の提供が支援される。さらに、異なるマイクロサービスの相互作用が、提供されたトポロジ情報でモニタリングされる。マイクロサービス相互作用のモニタリングは、様々なマイクロサービスの接続の再構成に関する提案を提供する。最後に、スーパーバイザモデルの閾値を調整するとともに、将来の推奨アクションをチューニングするために、ユーザフィードバックが使用される。このように、この手法は、アノマリ検出モデルの再訓練とともに各マイクロサービスのアノマリ検出モデルの閾値チューニングに関して、動的なモニタリングシステムおよび状況に合った推奨アクションを提供する。
【0014】
図1は、コンピュータネットワーク102の人工知能(AI)システム100の説明的な一実施形態の概略図を示している。AIシステム100は、(1つまたは複数のプロセッサと1つまたは複数のメモリとを備え、当技術分野において概して知られている、バス、記憶デバイス、通信インターフェースなどを含む任意の他のコンピューティングデバイスを備えている可能性がある)人工知能コンピューティングデバイス104を含んでおり、このデバイス104は、AIシステム100をコンピュータネットワーク102に接続する。ネットワーク102は、1つまたは複数の有線もしくは無線またはその両方のデータ通信リンクを介して、互いにかつ他のデバイスまたはコンポーネントと通信する複数のコンピューティングデバイス104を含んでいてよく、各通信リンクは、ワイヤ、ルータ、スイッチ、送信機、受信機などのうちの1つまたは複数を備えていてよい。AIシステム100およびネットワーク102は、1人または複数人のコンテンツユーザに対する、質問/回答(QA)生成機能などの機能を有効にしてよい。AIシステム100の他の実施形態は、本明細書に示してあるもの以外に、コンポーネント、システム、サブシステム、もしくはデバイス、またはそれらの組み合わせとともに使用されてよい。
【0015】
AIシステム100は、「コーパス」としても知られている知識ベース106を保持しており、この知識ベース106は、問題を解くためにAIシステムが利用する情報またはデータのストアである。この知識ベースは、問題を解くために利用可能な、AIシステムが有する事実、仮定、モデル、およびルールの底集合を含んでいる。
【0016】
AIシステム100は、様々なソースからの入力を受信するように構成されていてよい。たとえば、AIシステム100は、ネットワーク102、電子ドキュメント107または他のデータのコーパス、コンテンツクリエータ、コンテンツユーザ、および他の可能な入力ソースからの入力を受信してよい。一実施形態において、AIシステム100に対する入力のいくつかまたは全てが、ネットワーク102を介してルーティングされてよい。ネットワーク102上の様々なコンピューティングデバイスは、コンテンツクリエータおよびコンテンツユーザのためのアクセスポイントを含んでいてよい。コンピューティングデバイスのうちのいくつかは、データのコーパスを記憶したデータベース用のデバイスを含んでよい。ネットワーク102は、様々な実施形態においてローカルネットワーク接続およびリモート接続を含んでいてよく、それにより人工知能100は、ローカルにおよびグローバルに、たとえばインターネットを含め、任意のサイズの環境において動作することができる。さらに、人工知能100は、ドキュメント、ネットワークアクセス可能ソース、もしくは構造データソース、またはそれらの組み合わせから抽出したかまたはそれらに表された様々な知識を利用可能にすることができるフロントエンドシステムとして機能する。このように、いくつかのプロセスは、知識要求を受信し、それに適宜応答するための入力インターフェースも含んだ人工知能を、人工知能に入れる。
【0017】
一実施形態において、コンテンツクリエータは、AIシステム100でデータのコーパスの一部として使用するための電子ドキュメント107のコンテンツを制作する。電子ドキュメント107は、AIシステム100で使用するための任意のファイル、テキスト、記事、またはデータソースを含んでいてよい。コンテンツユーザは、ネットワーク102へのネットワーク接続またはインターネット接続を介してAIシステム100にアクセスしてよく、一実施形態においては、AIシステム100に質問を入力してよく、この質問には、データのコーパスのコンテンツによって回答がなされてよい。以下でさらに説明するように、プロセスが、意味内容についてドキュメントの所与のセクションを評価するとき、プロセスは、様々な取り決めを使用して、人工知能に対してそのクエリを行うことができる。
【0018】
AIシステム100を利用することができる情報処理システムの種類は、ハンドヘルドコンピュータ/携帯電話110などの小型ハンドヘルドデバイスから、メインフレームコンピュータ170などの大規模なメインフレームシステムにまで及ぶ。ハンドヘルドコンピュータ110の例は、携帯情報端末(PDA)、MP3プレーヤなどのパーソナルエンターテインメントデバイス、ポータブルテレビ、およびコンパクトディスクプレーヤを含む。情報処理システムの他の例は、ペンコンピュータまたはタブレットコンピュータ120、ラップトップコンピュータまたはノートブックコンピュータ130、パーソナルコンピュータシステム150、およびサーバ160を含む。示してあるように、様々な情報処理システムは、コンピュータネットワーク102を使用して互いにネットワーク接続することができる。様々な情報処理システムを相互接続するために使用できるコンピュータネットワーク102の種類は、ローカルエリアネットワーク(LAN)、無線ローカルエリアネットワーク(WLAN)、インターネット、公衆交換電話網(PSTN)、他の無線ネットワーク、および情報処理システムを相互接続するために使用できる任意の他のネットワークトポロジを含む。情報処理システムの多くは、ハードドライブなどの不揮発性データストア、もしくは不揮発性メモリ、またはその両方を含んでいる。
図1に示してある情報処理システムのうちのいくつかは、別々の不揮発性データストアを示している(サーバ160は、不揮発性データストア165を利用し、メインフレームコンピュータ170は、不揮発性データストア175を利用する)。不揮発性データストアは、様々な情報処理システムの外部にあるコンポーネントであってもよいし、情報処理システムのうちの1つの内部にあってもよい。プロセッサにより一般にアクセスされる例示的なプロセッサおよび様々なコンポーネントを示す情報処理システムの説明的な例が、
図2に示してある。
【0019】
図2は、情報処理システム200、より詳細には、プロセッサおよび共通のコンポーネントを示しており、これらは本明細書において説明するコンピューティング動作を実施可能なコンピュータシステムの簡単な例である。情報処理システム200は、プロセッサインターフェースバス212に結合された1つまたは複数のプロセッサ210を含んでいる。プロセッサインターフェースバス212は、プロセッサ210を、メモリコントローラハブ(MCH)としても知られているノースブリッジ215に接続する。ノースブリッジ215は、システムメモリ220に接続され、プロセッサ210がシステムメモリにアクセスするための手段を提供する。グラフィックスコントローラ225も、ノースブリッジ215に接続されている。一実施形態において、PCI Expressバス218が、ノースブリッジ215をグラフィックスコントローラ225に接続している。グラフィックスコントローラ225は、コンピュータモニタなどのディスプレイデバイス230に接続されている。
【0020】
ノースブリッジ215とサウスブリッジ235は、バス219を使用して互いに接続されている。一実施形態において、このバスは、ノースブリッジ215とサウスブリッジ235との間で各方向にデータを高速で転送するダイレクトメディアインターフェース(DMI)バスである。別の実施形態では、ペリフェラルコンポーネントインターコネクト(PCI)バスが、ノースブリッジとサウスブリッジを接続する。I/Oコントローラハブ(ICH)としても知られているサウスブリッジ235は、ノースブリッジによって提供される性能よりも低速で動作する性能を概して実装するチップである。サウスブリッジ235は、典型的には様々なコンポーネントを接続するために使用される様々なバスを提供する。これらのバスは、たとえばPCIおよびPCI Expressバス、ISAバス、システム管理バス(SMバスまたはSMB)、もしくはローピンカウント(LPC)バス、またはそれらの組み合わせを含む。LPCバスは、多くの場合、ブートROM296および(「スーパーI/O」チップを使用する)「レガシ」I/Oデバイスなどの低帯域幅デバイスを接続する。「レガシ」I/Oデバイス(298)は、たとえばシリアルポートおよびパラレルポート、キーボード、マウス、もしくはフロッピディスクコントローラ、またはそれらの組み合わせを含むことができる。LPCバスは、サウスブリッジ235をトラステッドプラットフォームモジュール(TPM)295にも接続している。サウスブリッジ235に含まれることの多い他のコンポーネントは、ダイレクトメモリアクセス(DMA)コントローラ、プログラマブル割り込みコントローラ(PIC)、および記憶デバイスコントローラを含み、これらが、バス284を使用して、サウスブリッジ235をハードディスクドライブなどの不揮発性記憶デバイス285に接続している。
【0021】
ExpressCard255は、ホットプラグ対応デバイスを情報処理システムに接続するスロットである。ExpressCard255は、ユニバーサルシリアルバス(USB)とPCI Expressバスの両方を使用してサウスブリッジ235に接続されているので、PCI Express接続およびUSB接続をサポートしている。サウスブリッジ235は、USBに接続されるデバイスに対してUSB接続を提供するUSBコントローラ240を含んでいる。これらのデバイスは、ウェブカム(カメラ)250、赤外線(IR)受信機248、キーボードおよびトラックパッド244、ならびに無線パーソナルエリアネットワーク(PAN)を提供するBluetooth(登録商標)デバイス246を含んでいる。またUSBコントローラ240は、マウス、リムーバブル不揮発性記憶デバイス245、モデム、ネットワークカード、ISDNコネクタ、ファックス、プリンタ、USBハブ、および多くの他の種類のUSB接続デバイスなど、多種多様な他のUSB接続デバイス242に対するUSB接続を提供する。リムーバブル不揮発性記憶デバイス245は、USB接続デバイスとして示してあるが、リムーバブル不揮発性記憶デバイス245は、Firewire(登録商標)インターフェースなどの異なるインターフェースを使用して接続されてもよい。
【0022】
無線ローカルエリアネットワーク(LAN)デバイス275は、PCIまたはPCI Expressバス272を介してサウスブリッジ235に接続されている。LANデバイス275は、典型的には、情報処理システム200と別のコンピュータシステムまたはデバイスとの間で無線通信するために同じプロトコルを全てが使用するオーバージエアモジュレーション技術のIEEE802.11規格のうちの1つを実装する。光学記憶デバイス290は、シリアルATA(SATA)バス288を使用してサウスブリッジ235に接続されている。シリアルATAのアダプタおよびデバイスは、高速シリアルリンクを介して通信する。またシリアルATAバスは、サウスブリッジ235を、ハードディスクドライブなど、他の形態の記憶デバイスにも接続する。サウンドカードなどのオーディオ回路260は、バス258を介してサウスブリッジ235に接続されている。オーディオ回路260は、オーディオライン入力および光デジタルオーディオ入力ポート262、光デジタル出力およびヘッドフォンジャック264、内部スピーカ266、および内部マイクロフォン268などの機能も提供する。Ethernet(登録商標)コントローラ270は、PCIまたはPCI Expressバスなどのバスを使用して、サウスブリッジ235に接続されている。Ethernetコントローラ270は、情報処理システム200を、ローカルエリアネットワーク(LAN)、インターネット、および他のパブリックおよびプライベートのコンピュータネットワークなどのコンピュータネットワークに接続する。
【0023】
図2は、1つの情報処理システムを示しているが、情報処理システムは多くの形態を取ることがあり、そのうちのいくつかが
図1に示してある。たとえば、情報処理システムは、デスクトップ、サーバ、ポータブル、ラップトップ、ノートブック、または他のフォームファクタのコンピュータもしくはデータ処理システムの形態を取ってよい。さらに、情報処理システムは、携帯情報端末(PDA)、ゲーミングデバイス、ATM機械、ポータブル電話デバイス、通信デバイス、またはプロセッサとメモリとを含む他のデバイスなど、他のフォームファクタを取ってよい。
【0024】
図3は、情報技術(IT)環境向けのアノマリ検出ドメインにおいてパフォーマンスモニタリングを実施するための、様々なコンポーネントおよび相互作用を示すコンポーネント図である。コンピュータシステム300は、訓練済みアノマリ検出モデル330を使用してシステム300内のアノマリを検出するアノマリ検出人工知能(AI)システム320により、アノマリについてモニタリングされている。アノマリ検出システム320は、モニタリングされているコンピュータシステムから、このシステムから収集された様々なシステムデータ310としてデータを受信する。このシステムデータは、システムログ、パフォーマンスメトリックデータ(たとえば、平均ロードデータ、利用可能なメモリデータ、CPU使用量データ、利用可能なディスクスペースデータ、実行プロセスデータなど)を含む。アノマリ検出AIシステム320によって検出されたアノマリは、システム管理者340に提供される。次いでシステム管理者は、アノマリに対処するためのアクションをとって、システム300のパフォーマンスを改善することができる。
【0025】
アノマリ検出スーパーバイザ360は、アノマリ検出モデル330がパラメータ内で動作しているかどうかを判定するために訓練済みスーパーバイザリモデル370を利用するAIシステムである。アノマリ検出スーパーバイザは、システムデータとアノマリ検出モデルの出力との両方を含む入力350を受信する。システムデータ入力は、システムログ、メトリック、トポロジ情報などを含む。スーパーバイザリモデル370への入力として使用されるアノマリ検出モデルからの出力は、推論データセット、カウントベクトル、およびアノマリ検出モデルの他の出力を含む。
【0026】
データ350の入力後、訓練済みアノマリ検出スーパーバイザにより、結果380がもたらされる。これらの結果は、アノマリ検出モデルに対する調整の推奨を含んでよい。これらの調整は、アノマリ検出モデルを再訓練する推奨、アノマリ検出モデルによって使用される閾値をチューニングする推奨、およびアノマリ検出モデルに対する他の調整を含んでよい。推奨される変更は、アノマリ検出システムのメンテナンスを担うサイト信頼性エンジニア(SRE)または他の専門家に提供される。次いでSREは、モデルの再訓練など、推奨されたモデル調整をアノマリ検出モデルに対して実施することができる。
【0027】
図4は、アノマリ検出スーパーバイザによって使用される論理を示すフローチャートの図である。
図4の処理は、400において開始され、アノマリ検出スーパーバイザ人工知能(AI)システムによって実施されるプロセスがとるステップを示している。ステップ410において、プロセスは、アノマリ検出スーパーバイザによって使用されるスーパーバイザリ機械学習モデルの状態を確認する。プロセスは、アノマリ検出スーパーバイザがこのシステム上で実行されるのが今回初めてかどうかなど、スーパーバイザリモデルの訓練が必要かどうかについて判定する(決定420)。
【0028】
スーパーバイザモデルの訓練が必要な場合には、決定420が「はい」の岐路に分岐し、ここで、事前定義されたプロセス430において、スーパーバイザリモデル訓練プロセスが実施される(詳細については
図5および対応する文章を参照)。示してあるように、これにより、スーパーバイザリモデル370に提供される訓練データがもたらされ、それによりコンピュータシステムにおいて使用されているアノマリ検出モデル向けに、このモデルが訓練される。他方で、スーパーバイザリモデルが既に訓練済みである場合には、決定420は「いいえ」の岐路に分岐されて、ステップ440~470が実施される。
【0029】
事前定義されたプロセス440において、プロセスは、訓練済みスーパーバイザリモデルを使用してアノマリスーパーバイザを実施する(詳細については
図6および対応する文章を参照)。示してあるように、訓練済みスーパーバイザリモデル370を有するアノマリ検出スーパーバイザ360に、現在のアノマリ検出モデルデータが入力される。スーパーバイザリモデルの訓練に基づき、スーパーバイザは評価データを事前定義されたプロセス440に戻す。評価データは処理されて、データストア380に記憶されたアノマリ検出モデルを調整および管理するための推奨が形成される。プロセスは、アノマリ検出システムについてグラウンドトゥルースデータのセットが定義済みかどうかについて判定する(決定450)。グラウンドトゥルースが定義済みの場合には、決定450は「はい」の岐路に分岐し、ここでステップ460において、プロセスは、アノマリモデルの評価メトリックの使用を、事前定義されたグラウンドトゥルースデータ(たとえば、適合率、正解率、F1スコアなどに関するグラウンドトゥルース)で分析する。グラウンドトゥルースデータに基づき行われた判定が、アノマリ検出モデルに関する推奨へと形成され、データストア380に記憶される。他方で、グラウンドトゥルースが定義済みでない場合には、決定450は「いいえ」の岐路に分岐されてステップ460を迂回する。ステップ470において、プロセスは、データストア380に記憶された推奨を、サイト信頼性エンジニア(SRE)390に提供する。
【0030】
プロセスは、スーパーバイザを使用したアノマリ検出モデルのモニタリングを継続するかどうかについて判定する(決定480)。アノマリ検出モデルのモニタリングが継続される場合には、決定480は「はい」の岐路に分岐し、これが循環してステップ410に戻り、上述したプロセスが繰り返される。この循環は、システムがシャットダウンされるときなど、アノマリ検出モデルのモニタリングが中止されるまで継続され、シャットダウン時点で、決定480は「いいえ」の岐路に分岐して循環から出る。その後、
図4の処理は495において終了する。
【0031】
図5は、スーパーバイザリモデルを訓練するために使用される論理を示すフローチャートの図である。
図5の処理は、500において開始され、スーパーバイザリモデル訓練を実施するプロセスがとるステップを示している。ステップ520において、プロセスは、履歴データの第1のセットをデータストア540から選択する。スーパーバイザリモデルを訓練するために使用される履歴データは、ログテンプレート、定義済み閾値、推論データセット、カウントベクトル、システムメトリック、システムトポロジ情報、および他のシステムデータなどのデータを含む。ステップ560において、プロセスは、履歴データの選択されたセットを用いて、アノマリ検出スーパーバイザモデル370を訓練する。
【0032】
プロセスは、スーパーバイザリモデルを訓練するために使用すべき履歴データがさらに存在するかどうかについて判定する(決定580)。スーパーバイザリモデルを訓練するために、さらなる履歴データが利用可能な場合には、決定580は「はい」の岐路に分岐し、これが循環してステップ520に戻り、モデル370を訓練するための履歴データの次のセットが選択される。この循環は、モデルを訓練するために利用可能な履歴データが全て使用されるまで継続され、全てを使用した時点で、決定580は「いいえ」の岐路に分岐して循環から出る。その後、
図5の処理は、595において呼び出しルーチンに戻る(
図4を参照)。
【0033】
図6は、アノマリ検出モデルのパフォーマンスをモニタリングするために、訓練済みスーパーバイザリモデルにより使用される論理を示すフローチャートの図である。
図6の処理は、600において開始され、現在のアノマリデータを処理して、アノマリ検出モデルのパフォーマンスが十分かどうかを判定するために、訓練済みスーパーバイザリモデルがとるステップを示している。ステップ610において、プロセスは、システムデータ(たとえば、現在のシステムログ、メトリックデータ、トポロジ情報)およびアノマリ検出モデルからの現在の出力(推論データセット、カウントベクトルなど)を、訓練済みスーパーバイザリモデルを有するアノマリ検出スーパーバイザ360に提供する。アノマリ検出スーパーバイザ360は、提供されたデータを使用して様々な分析(620~660)を実施して、アノマリ検出モデルのパフォーマンスに関する結果を形成する。
【0034】
分析620において、アノマリ検出スーパーバイザは、ログテンプレートを照合し、これらを定義済みログテンプレート閾値と比較する。分析630において、アノマリ検出スーパーバイザは、アノマリ検出モデルから得た現在の推論データセットを、スーパーバイザモデルを訓練するために使用された訓練推論データセットと比較する。分析640において、アノマリ検出スーパーバイザは、アノマリ検出モデルから得た、所与の時間枠内の参照カウントベクトルを、同じ時間枠の現在のカウントベクトルと比較する。分析650において、アノマリ検出スーパーバイザは、データドリフトについてメトリックデータを確認する。分析660において、アノマリ検出スーパーバイザは、現在の推論データセットと旧推論データセットとを比較する。
【0035】
アノマリ検出スーパーバイザによって実施された分析は、結果のセットを形成し、この結果のセットが、ステップ670において受信され、データストア680に記憶される。ステップ690において、プロセスは、データストア680に記憶されたアノマリ検出スーパーバイザ結果に基づき、推奨のセットを生成する。たとえば、推奨は、アノマリ検出スーパーバイザにより検出されたデータドリフトを理由として、アノマリ検出モデルを再訓練することであってよい。その後、
図6の処理は、695において呼び出しルーチンに戻る(
図4を参照)。
【0036】
本発明は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、もしくはコンピュータプログラム製品、またはそれらの組み合わせであってよい。コンピュータプログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含んでよい。
【0037】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるための命令を保持および記憶した有形デバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはこれらの任意の好適な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下のものを含む。ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、機械的に符号化されたデバイス、たとえば命令が記録されたパンチカードもしくは溝の隆起構造体、およびこれらの任意の好適な組み合わせ。本明細書において使用されるとき、コンピュータ可読記憶媒体は、電波もしくは自由に伝播する他の電磁波、導波路もしくは他の伝送媒体を通って伝播する電磁波(たとえば、光ファイバケーブルを通過する光パルス)、またはワイヤを通って伝送される電気信号など、それ自体が一時的な信号であると解釈されるべきでない。
【0038】
本明細書において説明するコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティングデバイス/処理デバイスにダウンロードされてもよいし、ネットワーク、たとえばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくは無線ネットワーク、またはそれらの組み合わせを介して、外部コンピュータまたは外部記憶デバイスにダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバ、またはそれらの組み合わせを備えてよい。各コンピューティングデバイス/処理デバイスのネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、それぞれのコンピューティングデバイス/処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
【0039】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、またはSmalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む1つもしくは複数のプログラミング言語の任意の組み合わせで書かれたソースコードもしくはオブジェクトコードであってよい。コンピュータ可読プログラム命令は、スタンドアロンのソフトウェアパッケージとして完全にユーザのコンピュータ上で実行されてもよいし、部分的にユーザのコンピュータ上で実行されてもよいし、部分的にユーザのコンピュータ上で実行されかつ部分的にリモートコンピュータ上で実行されてもよいし、完全にリモートコンピュータまたはサーバ上で実行されてもよい。後者の状況では、リモートコンピュータは、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを介して、ユーザのコンピュータに接続されてもよいし、または(たとえばインターネットサービスプロバイダを使用するインターネットを介して)外部コンピュータへの接続が行われてもよい。いくつかの実施形態において、たとえばプログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行してよい。
【0040】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図、もしくはブロック図、またはその両方を参照しながら、本明細書において説明されている。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装可能であることが理解されよう。
【0041】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供されて、機械が作り出されてよく、それにより、コンピュータもしくは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令は、フローチャートもしくはブロック図またはその両方のブロックに明示された機能/動作を実装するための手段を制作する。また、これらのコンピュータ可読プログラム命令は、コンピュータ、プログラマブルデータ処理装置、もしくは他のデバイス、またはそれらの組み合わせを特定の態様で機能するように導くことができるコンピュータ可読記憶媒体に記憶されてもよく、それにより、中に命令が記憶されたコンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方のブロックに明示された機能/動作の態様を実装する命令を含む製造物品を備える。
【0042】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイスにロードされて、このコンピュータ、他のプログラマブル装置、または他のデバイス上で、一連の動作ステップを実施させて、コンピュータ実装プロセスを作り出してもよく、それにより、このコンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令は、フローチャートもしくはブロック図またはその両方のブロックに明示された機能/動作を実装する。
【0043】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、明示された論理機能を実装するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または部分を表してよい。いくつかの代替的な実装形態において、ブロックに記された機能は、図に記された順序通りではない順序で生じてよい。たとえば、連続して示してある2つのブロックは、実際には実質的に同時に実行されてもよいし、複数のブロックは、必要な機能に応じて、場合により逆の順序で実行されてもよい。また、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方のブロックの組み合わせは、明示された機能もしくは動作を実施する専用ハードウェアベースシステムによって実装されてもよいし、専用ハードウェアとコンピュータ命令との組み合わせを実行してもよいことも留意すべきである。
【0044】
特定の実施形態が示され説明されてきたが、本発明およびより広範なその態様から逸脱することなく、本明細書の教示に基づき、変更および修正がなされてよいことが、当業者には明らかであろう。したがって、添付の特許請求の範囲は、そのような変更および修正の全てを、本発明の真の趣旨および範囲内にあるものと同様に、その範囲内に包含するものである。さらに、本発明は、添付の特許請求の範囲によってのみ定義されることを理解すべきである。導入される請求項要素の具体的な数が意図されている場合には、そのような意図が明示的に請求項に述べられており、そのような記述がなければそのような限定は存在しないことが、当業者によって理解されよう。非限定的な例について、理解の助けとして、以下の添付の特許請求の範囲は、請求項要素を導入するための導入句「少なくとも1つ」および「1つまたは複数」の使用を含んでいる。しかし、そのような句の使用は、不定冠詞「a」または「an」による請求項要素の導入が、そのように導入された請求項要素を含む任意の特定の請求項を、そのような1つの要素のみを含む発明に限定することを示唆すると解釈されるべきではなく、これは同じ請求項が、導入句「1つまたは複数」または「少なくとも1つ」と、「a」または「an」などの不定冠詞とを含んでいる場合にもそうであり、同じことが、請求項における定冠詞の使用にも当てはまる。