JP7643373B2 - Fault data generation device, fault data generation method, and program - Google Patents
Fault data generation device, fault data generation method, and program Download PDFInfo
- Publication number
- JP7643373B2 JP7643373B2 JP2022027975A JP2022027975A JP7643373B2 JP 7643373 B2 JP7643373 B2 JP 7643373B2 JP 2022027975 A JP2022027975 A JP 2022027975A JP 2022027975 A JP2022027975 A JP 2022027975A JP 7643373 B2 JP7643373 B2 JP 7643373B2
- Authority
- JP
- Japan
- Prior art keywords
- fault
- data
- machine learning
- data generation
- learning 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
本開示内容は、障害データ生成装置、障害データ生成方法、及びプログラムに関する。 This disclosure relates to a fault data generation device, a fault data generation method, and a program.
近年、機械学習やAI(Artificial Intelligence)に基づく障害対応に注目が集まっている。大規模化、複雑化を続けるICT(Information and Communication Technology)システムにおいて、障害対応を全て人手で行うことは現実的に困難である。膨大なデータを基にシステム挙動や障害パターンを事前学習し、構築された機械学習モデルを用いて迅速で高精度な異常検知や要因特定を行うアプローチは、人的コスト削減、安定したサービス提供などの観点から、必要不可欠となってきている。 In recent years, attention has been focused on troubleshooting based on machine learning and AI (Artificial Intelligence). In ICT (Information and Communication Technology) systems, which continue to grow in size and complexity, it is practically difficult to handle all troubleshooting manually. An approach that pre-learns system behavior and failure patterns based on huge amounts of data, and then uses the constructed machine learning model to quickly and accurately detect anomalies and identify their causes, is becoming essential from the perspective of reducing human costs and providing stable services.
ところが、機械学習モデルは、発生する障害によっては期待通りに動作せず、誤推論(推定)や見逃しが発生することがある。例えば、発生が低頻度な障害や、類似したデータを出力する相異なる障害に対しては、限られたデータでは学習が十分に行われないため、機械学習モデルの性能が落ちる。機械学習モデルは一般に汎用性を持つが、特にシステムが環境状態(トラヒック量など)や障害種類(箇所や規模を含む)によって質的に異なる挙動を示すような場合には、機械学習モデルの性能が大きく落ちてしまうことがある。従って、そのような「クリティカルな障害」に対処するためには、どのような障害に対して機械学習モデルが脆弱であるのかを明らかにした上で、それらに対応する十分な数の学習データを改めて準備しなければならないという問題が生じる。 However, depending on the type of fault that occurs, machine learning models may not function as expected, resulting in incorrect inferences (predictions) or oversights. For example, for faults that occur infrequently or for different faults that output similar data, the performance of the machine learning model drops because learning is not performed sufficiently with limited data. Machine learning models are generally versatile, but the performance of the machine learning model may drop significantly, especially in cases where the system exhibits qualitatively different behavior depending on the environmental state (traffic volume, etc.) or the type of fault (including location and scale). Therefore, in order to deal with such "critical faults," it is necessary to clarify what types of faults the machine learning model is vulnerable to, and then to prepare a sufficient amount of training data to deal with those faults.
これに対して、未発生のクリティカルな障害をあぶりだす方法として「カオスエンジニアリング」がある(非特許文献1)。これは、人工的に障害を挿入する実験を通して、システムの振る舞いを観察するアプローチである。主にマイクロサービスアーキテクチャにおいて導入が進んでおり、数多くのOSS(Open Source Software)や商用ツールが展開されている。近年では、機械学習モデルのためのデータ生成手法としてカオスエンジニアリングが言及されることもある。また、例えば、あらゆる障害を挿入(注入)して観測データを収集しておき、観測データと障害種類を関連付ける要因特定のための分類器を事前学習しておくことで、上述のような障害に対応することを提案している(特許文献1)。 In response to this, there is a method called "chaos engineering" that uncovers critical failures that have not yet occurred (Non-Patent Document 1). This is an approach that observes the behavior of a system through experiments that artificially insert failures. It has been mainly adopted in microservice architectures, and a large amount of OSS (Open Source Software) and commercial tools have been developed. In recent years, chaos engineering has also been mentioned as a data generation method for machine learning models. It has also been proposed to respond to the above-mentioned failures by, for example, injecting (injecting) all kinds of failures to collect observation data, and pre-training a classifier to identify factors that associate the observation data with the type of failure (Patent Document 1).
しかし、現実的に実現しうる環境状態や発生しうる障害種類は膨大なバリエーションがあるため、従来のカオスエンジニアリングのスキームを直接的に適用しただけでは、上記問題を解決できない。即ち、現状のカオスエンジニアリングのスキームは、「ランダムな障害発生」または「運用者により指定された特定の障害発生」を実施する。しかし、起こり得る環境状態や障害種類のパターン数が膨大な場合、ランダム探索は非効率的であり、クリティカルな障害のデータがなかなか取れなかったり、十分な学習データが既にある障害に対し冗長なデータ収集をしてしまったりといった課題が生じる。また、運用者がクリティカルな障害を事前に全て指定するのは現実的に困難である。特許文献1の方法では網羅的な障害挿入を仮定しているが、これも同様に困難である。
However, because there is a huge variety of environmental conditions that can actually be realized and types of faults that can occur, the above problems cannot be solved by simply applying the conventional chaos engineering scheme directly. That is, current chaos engineering schemes implement "random fault occurrence" or "specific fault occurrence specified by the operator." However, when there are a huge number of possible environmental conditions and fault types, random search is inefficient, and issues arise such as difficulty in obtaining data on critical faults and redundant data collection for faults for which sufficient learning data already exists. Furthermore, it is practically difficult for an operator to specify all critical faults in advance. The method of
本発明は上記の点に鑑みてなされたものであり、障害挿入実験を最適化することで、できるだけ低コスト、即ち、少ない実験回数又は短い実験時間で、クリティカルな障害を発見し、それらに対する学習データを生成することを目的とする。 The present invention has been made in consideration of the above points, and aims to discover critical faults and generate learning data for them at the lowest possible cost, i.e., with a small number of experiments or short experiment time, by optimizing fault insertion experiments.
上記課題を解決するため、請求項1に係る発明は、障害のデータの挿入によるデータ生成を行う価値を表す評価関数に基づき、当該評価関数が所定値より大きな値を持つような障害を優先的に探索する数理的アルゴリズムにより、検証対象システムに対して挿入する最適な障害を計算して決定する挿入障害計算部と、前記挿入障害計算部からの命令に基づき、前記検証対象システムに対して前記決定された障害のデータの挿入を実行するシステム制御部と、前記障害のデータの挿入により前記検証対象システムから得られた観測データを入力として機械学習モデルにより前記障害に関する情報を推論する推論モデル部と、を有し、前記数理的アルゴリズムは、前記評価関数を最大化するベイズ最適化アルゴリズム又はバンディットアルゴリズムである、障害データ生成装置である。
In order to solve the above problem, the invention of
以上説明したように本発明によれば、障害挿入実験を最適化することで、できるだけ低コスト、即ち、少ない実験回数又は短い実験時間で、クリティカルな障害を発見し、それらに対する学習データを生成することができるという効果を奏する。 As described above, the present invention has the effect of optimizing fault insertion experiments to discover critical faults and generate learning data for them at the lowest possible cost, i.e., with a small number of experiments or a short experimental time.
以下、図面に基づいて本発明の実施形態を説明する。 The following describes an embodiment of the present invention with reference to the drawings.
〔本実施形態の概要〕
まず、本実施形態の概要について説明する。
[Outline of the present embodiment]
First, an overview of this embodiment will be described.
本実施形態では、異常検知又は要因特定などの機械学習モデルの障害に対する脆弱性を測る指標を導入する。一般に異常検知又は要因特定の機械学習モデルは、推論ラベルの他に、確率分布などで算出される推論確度を出力する。正解ラベルに対する推論確度が低い場合、その機械学習モデルは与えられた障害に対して脆弱であると言える。従って、異常検知又は要因特定の機械学習モデルに対して、推論確度に基づいた脆弱性指標を定義できる。続いて、本実施形態では、類似の障害は脆弱性指標も近くなるはずであるという仮定の下で、ベイズ最適化による高脆弱性障害、即ち、クリティカルな障害の効率的な探索を行う。障害挿入実験はデータ取得までにある程度時間の要するものであり、脆弱性関数は未知形状であるため、一般にサンプル取得が高コストなブラックボックス関数の最適化手法として秀でているベイズ最適化のユースケースとして適している。こうした方法で、少ない実験回数で効率的にクリティカル障害に対するデータを収集し、機械学習モデルを逐次的に更新していくことで、あらゆる環境状態又は障害種類に対応可能な異常検知又は要因特定の機械学習モデルを構築することができる。 In this embodiment, an index is introduced to measure the vulnerability of a machine learning model for faults, such as anomaly detection or factor identification. In general, a machine learning model for anomaly detection or factor identification outputs an inference accuracy calculated using a probability distribution or the like in addition to an inference label. If the inference accuracy for the correct label is low, it can be said that the machine learning model is vulnerable to a given fault. Therefore, a vulnerability index based on the inference accuracy can be defined for a machine learning model for anomaly detection or factor identification. Next, in this embodiment, under the assumption that similar faults should have similar vulnerability indices, an efficient search for highly vulnerable faults, i.e., critical faults, is performed using Bayesian optimization. Since a fault insertion experiment requires a certain amount of time to obtain data and the vulnerability function has an unknown shape, the method is suitable as a use case for Bayesian optimization, which excels as an optimization method for black-box functions in which sample acquisition is generally costly. In this way, data on critical faults can be efficiently collected with a small number of experiments, and the machine learning model can be sequentially updated to build a machine learning model for anomaly detection or factor identification that can handle any environmental state or fault type.
〔障害データ生成装置の機能構成〕
次に、図1を用いて、障害データ生成装置1の機能構成について説明する。図1は、実施形態に係る障害データ生成装置及び検証対象システムの関係と、障害データ生成装置の機能構成を示した図である。
[Functional configuration of the fault data generation device]
Next, the functional configuration of the
図1において、障害データ生成装置1は、コンピュータにより構築され、機械学習モデルmの再学習に関して、機械学習モデルmの更新を一度で終えずに、更新後の機械学習モデルmを用いて、障害挿入、データ収集、及び再学習の工程を繰り返して逐次的にモデル更新を重ねていくことで、検証対象システム2の構成変化などへの追随が可能な装置である。検証対象システムは、物理システム又は仮想システムである。
In FIG. 1, the fault
図1に示されているように、障害データ生成装置1は、挿入障害計算部11、システム制御部12、及び機械学習モデルmを含む推論モデル部13を有している。これら各部は、プログラムに基づき、後述の図2のプロセッサ101による命令によって実現される機能である。また、障害データ生成装置1は、学習用データベース10を有しており、後述の図2のメモリ102又は補助記憶装置103に構築されている。
As shown in FIG. 1, the fault
これらのうち、挿入障害計算部11は、ベイス最適化エンジンとして、挿入する最適な障害を計算し決定する。具体的には、挿入障害計算部11は、障害挿入によるデータ生成を行う価値を表す評価関数に基づき、その評価関数が所定値より大きな値を持つような障害を優先的に探索する数理的アルゴリズムにより、挿入する障害を決定する。
Of these, the insertion
ここで、評価関数としては、推論モデル部13の機械学習モデルmの推論確度に基づいて定義される、障害に対する脆弱性指標が用いられる。また、数理的アルゴリズムとしては、評価関数を最大化するベイズ最適化アルゴリズム又はバンディットアルゴリズムが用いられる。
Here, the evaluation function used is a vulnerability index to a fault defined based on the inference accuracy of the machine learning model m of the
また、システム制御部12は、障害挿入エンジン12a、及び原状復旧エンジン12bを有している。障害挿入エンジン12aは、挿入障害計算部11から障害(c,x)挿入命令を取得し、検証対象システム2に対して障害(c,x)のデータを挿入する。原状復旧エンジン12bは、挿入障害計算部11から原状普及命令を取得し、検証対象システム2に対して原状復旧のデータを出力する。
The
また、推論モデル部13は、障害挿入エンジン12aからの障害挿入により検証対象システム2から得られた観測データ{zi(c,x)}iを入力データとして、機械学習モデルmにより障害に関する情報を推論し、推論結果h(c,x)を出力データとして挿入障害計算部11に出力する。これにより、挿入障害計算部11は、脆弱性指標VD(c,x)や獲得関数を計算し、次に挿入すべき障害(c,x)を決定する。
The
学習用データベース10は、原状復旧エンジン12bによる検証対象システム2の原状復旧により検証対象システム2から得られた観測データ{zi(c,x)}iを格納(蓄積)する。
The
挿入障害計算部11、システム制御部12、及び推論モデル部13による処理を一定回数繰り返した後、推論モデル部13は、学習用データベース10からモデル更新のためのデータの提供を受けて、機械学習モデルmを再学習して更新する。更新された機械学習モデルmは、実運用システムで稼働する推論モデル部13へ適宜インポートされる。
After the processing by the insertion
〔障害データ生成装置のハードウェア構成〕
続いて、図2を用いて、障害データ生成装置1のハードウェア構成図である。図2は、実施形態に係る障害データ生成装置のハードウェア構成図である。なお、検証対象システム2が物理システムの場合のハードウェア構成は、障害データ生成装置1と同様であるため、説明を省略する。
[Hardware Configuration of the Fault Data Generation Device]
Next, a hardware configuration diagram of the fault
図2に示されているように、障害データ生成装置1は、プロセッサ101、メモリ102、補助記憶装置103、接続装置104、通信装置105、ドライブ装置106を有する。なお、障害データ生成装置1を構成する各ハードウェアは、バス107を介して相互に接続される。
As shown in FIG. 2, the fault
プロセッサ101は、障害データ生成装置1全体の制御を行う制御部の役割を果たし、CPU(Central Processing Unit)等の各種演算デバイスを有する。プロセッサ101は、各種プログラムをメモリ102上に読み出して実行する。なお、プロセッサ101には、GPGPU(General-purpose computing on graphics processing units)が含まれていてもよい。
The
メモリ102は、ROM(Read Only Memory)、RAM(Random Access Memory)等の主記憶デバイスを有する。プロセッサ101とメモリ102とは、いわゆるコンピュータを形成し、プロセッサ101が、メモリ102上に読み出した各種プログラムを実行することで、当該コンピュータは各種機能を実現する。
The
補助記憶装置103は、各種プログラムや、各種プログラムがプロセッサ101によって実行される際に用いられる各種情報を格納する。
The
接続装置104は、外部装置(例えば、表示装置110、操作装置111)と障害データ生成装置1とを接続する接続デバイスである。
The
通信装置105は、他の装置との間で各種情報を送受信するための通信デバイスである。
The
ドライブ装置106は(非一時的)記録媒体130をセットするためのデバイスである。ここでいう記録媒体130には、CD-ROM(Compact Disc Read-Only Memory)、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体130には、ROM(Read Only Memory)、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
The
なお、補助記憶装置103にインストールされる各種プログラムは、例えば、配布された記録媒体130がドライブ装置106にセットされ、該記録媒体130に記録された各種プログラムがドライブ装置106により読み出されることでインストールされる。あるいは、補助記憶装置103にインストールされる各種プログラムは、通信装置105を介してネットワークからダウンロードされることで、インストールされてもよい。
The various programs to be installed in the
〔実施形態の処理又は動作〕
続いて、本実施形態の処理又は動作について詳細に説明する。なお、処理又は動作の説明の前に、問題設定について説明する。
[Processing or Operation of the Embodiment]
Next, the process or operation of this embodiment will be described in detail. Before describing the process or operation, the problem setting will be described.
<問題設定>
以下では本実施形態で考える問題を定式化する。ここでは、障害の要因特定に用いられる教師ありクラス分類の機械学習モデルと、異常検知に用いられる教師なし2値分類の機械学習モデルに対する定式化を行うが、あくまで例を示したものであり、厳格に従わない状況でも適用可能である。
<Problem Setting>
The problem considered in this embodiment will be formulated below. Here, formulation will be performed for a supervised class classification machine learning model used to identify the cause of a failure and an unsupervised binary classification machine learning model used to detect anomalies. However, this is merely an example and can be applied even in situations where the model does not strictly follow the rules.
まずは、教師ありクラス分類の機械学習モデル(ここでは「要因特定器」と呼ぶ)に対する定式化を述べる。障害空間F=(C,X)∋(c,x)=(c,x1,…,xn)は、検証対象システム2において発生が想定されるすべての障害からなる集合である。
First, we describe the formulation for the machine learning model of supervised classification (herein called the “cause specifier”). The fault space F = (C, X) ∋ (c, x) = (c, x 1 , …, x n ) is the set of all faults that are expected to occur in the
c∈Cは、要因特定器で分類すべき障害のカテゴリーであり、障害種類や障害箇所などを表す。複数の障害が組み合わさった複合障害も、その組み合わせを列挙することで対応可能である。 c∈C is the category of failures to be classified by the cause identifier, and represents the type of failure, the location of the failure, etc. Compound failures that combine multiple failures can also be handled by enumerating the combinations.
x∈Xは、検証対象システム2の状態を規定するその他の離散的または連続的な多次元パラメータであり、例えば、障害発生時のトラヒック量や、障害の規模(遅延障害であれば遅延時間、パケットロス障害であればパケットロス率、CPU障害であればCPU負荷率など)である。システム運用時においては何らかの障害が発生していることはわかっても、(c、x)を直接観測することはできない。正確にはxを部分観測できる状況はあるかもしれないが、cを直接観測することはできない。代わりに、障害(c,x)発生の際に対象システムが生成する観測データz(c,x)=(z1 (c,x),…,zn(c,x))を観測することができる。障害が同一であっても生成されるデータは揺らぎを持ち得るため、{z(c,x)|(c,x)∈F}は(c,x)でパラメトライズされた多次元の確率過程とみなせる((c,x)を固定した場合はz(c,x)は確率変数とみなせる)。各zi(c,x)は、観測可能な数値量であればなんでもよく、各種システムメトリクスや特定のログの出現数、サービス品質の評価値などがある。
x∈X is another discrete or continuous multidimensional parameter that defines the state of the
運用時には要因特定器を用い、観測データzを入力として、直接観測ができないcを推論する。すなわち、要因特定器Dとは、 During operation, a factor specifier is used to infer c, which cannot be directly observed, using the observed data z as input. In other words, the factor specifier D is
例えば、ニューラルネットワークモデルであれば、出力層におけるsoftmax関数の出力値がこれにあたる。一般には、最大値を与えるインデックスargmaxchc(z)を推論結果とする。 For example, in the case of a neural network model, this corresponds to the output value of the softmax function in the output layer. In general, the index argmax c h c (z) that gives the maximum value is used as the inference result.
このような要因特定器Dの脆弱性、すなわち、適切に推論がなされない可能性を表す指標を導入する。障害(c,x)に対する要因特定器Dの脆弱性VD(c,x)を、 We introduce an index that represents the vulnerability of such a factor specifier D, that is, the possibility that inference will not be performed properly. The vulnerability VD(c,x) of factor specifier D against a fault (c,x) is defined as follows:
続いて、VD(c,x)の最大化の方法を説明する前に、教師なし2値分類の機械学習モデル(ここでは「異常検知器」と呼ぶ)に対する定式化の例も説明しておく。通常、異常検知では、検証対象システム2の正常状態に対応する学習データのみで学習を行い、モデルを構築して、テストデータに対しては正常状態からの乖離具合を参照して正常か異常かを判定するというアプローチをとることが多い。具体的には、1クラスサポートベクターマシーンやオートエンコーダなどの機械学習モデルで実装される。このような状況で、前述の各種概念は次のように定義できる。障害空間はF=(C,X)∋(c,x)=(c,x1,…,xn)と示すことができ、特にc∈{0、1}は正常(0)か異常(1)かを表す2値変数である(障害空間の中には正常状態(c=0)も含まれていることに注意する)。観測データz(c,x)は要因特定器のときと同様に定義される。異常検知器Dは、
Next, before explaining how to maximize V D (c,x), we will also explain an example of formulation for an unsupervised binary classification machine learning model (herein called an "anomaly detector"). Usually, in anomaly detection, learning is performed only with the training data corresponding to the normal state of the
以下では、要因特定器の場合を例に説明を行うが、異常検知器あるいは別の機械学習モデルの場合でも同様な議論が可能である。 The following explanation uses the case of a factor identifier as an example, but a similar discussion can be applied to an anomaly detector or other machine learning models.
本実施形態で考える問題は以下の通りである。今、事前データに基づき要因特定器Dが構築されたとする。事前データの網羅的な準備は不可能であるため、Dは特定の障害に対し高脆弱性となっている可能性がある。そこで任意の障害(c,x)を意図的に挿入し、追加学習用の観測データを生成できる環境が利用可能であるとする。これはカオスエンジニアリングツールや自作のスクリプトを用いて実現できる。しかし、一般に、障害挿入、データ取得、及び原状復旧というサイクルには一定の時間がかかるため、網羅的なデータ生成は依然として困難である。では、脆弱性指標V(c,x)が大きくなるような障害(c,x)を効率的に発見し、追加学習データの生成を行い、要因特定器の精度を向上するには、障害空間をどのように探索すればよいかという問題が生じる。 The problem considered in this embodiment is as follows. Now, suppose that a factor identifier D is constructed based on prior data. Since it is impossible to prepare prior data comprehensively, D may be highly vulnerable to a specific fault. Therefore, suppose that an environment is available in which any fault (c, x) can be intentionally inserted and observation data for additional learning can be generated. This can be achieved using a chaos engineering tool or a self-created script. However, in general, the cycle of fault insertion, data acquisition, and restoration to the original state takes a certain amount of time, so comprehensive data generation remains difficult. Then, the problem arises of how to search the fault space in order to efficiently find faults (c, x) that increase the vulnerability index V(c, x), generate additional learning data, and improve the accuracy of the factor identifier.
<処理又は動作>
続いて、図3を用いて、本実施形態の処理又は動作について説明する。図3は、実施形態におけるアルゴリズムを示す図である。
<Processing or Action>
Next, the processing or operation of this embodiment will be described with reference to Fig. 3. Fig. 3 is a diagram showing an algorithm in this embodiment.
上述の問題を解決するため、本実施形態では、ベイズ最適化(参考文献1)のアプローチをとる。
<参考文献1> Frazier, Peter I. "A tutorial on Bayesian optimization." arXiv preprint arXiv:1807.02811 (2018).
ベイズ最適化とは、サンプル取得コストの大きいブラックボックス関数の最大値を求める際に用いられる汎用的な最適化手法である。ベイズ最適化では、ブラックボックスな目的関数をガウス過程などの確率過程としてモデル化した上で、不確かさの大きさと期待値の大きさのバランス(探索と活用のトレードオフ)を考慮し、各点で値を取得した際に得られる効用を獲得関数により表現することで、最適なサンプリングを逐次的に実行していく。すなわち、現状で最大値を取ると思われる周辺の領域のサンプリング(活用)と同時に、サンプリング回数が少なく不確かさが大きいように領域のサンプリング(探索)もバランスよく実行しながら、目的関数の最大化を目指して行く。今回の問題設定の場合、脆弱性指標VD(c,x)が最大化を目指す目的関数となる。本実施形態の目的は必ずしも最大化ではなく、VD(c,x)の大きい障害を発見しデータ生成することだが、ベイズ最適化では上記のように探索と活用の双方が試行されるため、高脆弱性の障害を幅広く探索し、目的を達成することができる。なお、障害(c,x)を表す変数が連続変数だけの場合は通常のベイズ最適化手法がそのまま適用できるが、離散変数だけの場合はベイズ最適化の代わりに多腕バンディットアルゴリズムを利用する。また離散変数と連続変数が入り混じっている場合は、離散変数を連続緩和したりベイズ最適化と多腕バンディットアルゴリズムを融合した方法を用いたりする必要があるが、いずれの場合もオープンソースのベイズ最適化ツール(参考文献2)や、既存アルゴリズム(参考文献3,4)により実装可能である。
<参考文献2>Balandat, Maximilian, et al. "BoTorch: A Framework for Efficient Monte-Carlo Bayesian Optimization." NeurIPS. 2020.
<参考文献3>Nguyen, Dang, et al. "Bayesian optimization for categorical and category-specific continuous inputs." Proceedings of the AAAI Conference on Artificial Intelligence. Vol. 34. No. 04. 2020.
<参考文献4>Ru, Binxin, et al. "Bayesian optimisation over multiple continuous and categorical inputs." International Conference on Machine Learning. PMLR, 2020.
図3に示されているアルゴリズムのように、基本的には、要因特定器Dの脆弱性指標VD(c,x)を目的関数としてベイズ最適化を適用する。まず、挿入障害計算部11、システム制御部12、及び推論モデル部13は、N1回(適当な自然数回、反復のたびに動的に変化させてもよい)のランダムサンプリングを行う(S1)。
To solve the above problems, the present embodiment takes a Bayesian optimization approach (Reference 1).
<
Bayesian optimization is a general-purpose optimization method used to obtain the maximum value of a black-box function with a high sample acquisition cost. In Bayesian optimization, a black-box objective function is modeled as a stochastic process such as a Gaussian process, and the balance between the magnitude of uncertainty and the magnitude of the expected value (trade-off between exploration and exploitation) is considered, and the utility obtained when a value is acquired at each point is expressed by an acquisition function, so that optimal sampling is sequentially performed. That is, the objective function is maximized while sampling (exploitation) of the surrounding area where the maximum value is expected to be obtained at the current time and sampling (exploration) of the area where the number of samplings is small and the uncertainty is large are performed in a balanced manner. In the case of the problem setting this time, the vulnerability index V D (c,x) is the objective function to be maximized. The objective of this embodiment is not necessarily maximization, but rather discovery of faults with large V D (c,x) and generation of data. However, since both exploration and exploitation are attempted in Bayesian optimization as described above, it is possible to widely explore faults with high vulnerability and achieve the objective. If the variables representing the obstacles (c, x) are continuous variables, the usual Bayesian optimization method can be applied as is, but if there are only discrete variables, a multi-armed bandit algorithm is used instead of Bayesian optimization. If there are a mixture of discrete and continuous variables, it is necessary to continuously relax the discrete variables or use a method that combines Bayesian optimization and a multi-armed bandit algorithm, but in either case, it can be implemented using an open source Bayesian optimization tool (Reference 2) or existing algorithms (References 3 and 4).
<
<Reference 3> Nguyen, Dang, et al. "Bayesian optimization for categorical and category-specific continuous inputs." Proceedings of the AAAI Conference on Artificial Intelligence. Vol. 34. No. 04. 2020.
<Reference 4> Ru, Binxin, et al. "Bayesian optimization over multiple continuous and categorical inputs." International Conference on Machine Learning. PMLR, 2020.
3, basically, Bayesian optimization is applied with the vulnerability index VD (c,x) of the factor identifier D as the objective function. First, the insertion
1回のサンプリングとは、指定された障害(c,x)を対象システムに挿入し観測データ One sampling is the observation data obtained by inserting a specified fault (c,x) into the target system.
ここで、図3を用いて、処理(S1)について詳細に説明する。
S11:挿入障害計算部11は、ランダムに障害(c,x)を選択する。
S12:障害挿入エンジン12aが検証対象システム2に対して障害(c,x)のデータを挿入する。
S13:学習用データベース10は、検証対象システム2から観測データ{zi(c,x)}iを取得して格納する。
S14:推論モデル部13は、検証対象システム2から観測データ{zi(c,x)}iを取得し、機械学習モデルmにより障害に関する情報を推論し、推論結果h(c,x)を出力データとして挿入障害計算部11に出力する。更に、挿入障害計算部11は、脆弱性指標VD(c,x)や獲得関数を計算し、次に挿入すべき障害(c,x)を決定する。
S15:学習用データベース10は、検証対象システム2から観測データ{zi(c,x)}iを取得して格納する。
S16:原状復旧エンジン12bは、検証対象システム2に対して、原状復旧を行う。
Here, the process (S1) will be described in detail with reference to FIG.
S11: The insertion
S12: The
S13: The
S14: The
S15: The
S16: The
続いて、挿入障害計算部11、システム制御部12、及び推論モデル部13は、ベイズ最適化の枠組みに従い、獲得関数を計算して逐次的に次にサンプルすべき障害(c,x)を決めるというサイクルをN2回(適当な自然数回、反復のたびに動的に変化させてもよい)繰り返す(S2)。獲得関数の設計方法は様々な変種が考えられているが、いずれの手法でも本実施形態では適用可能である。
Next, the insertion
ここで、図3を用いて、処理(S2)について詳細に説明する。
S21:挿入障害計算部11は、ランダムに障害(c,x)を選択する。
S22:障害挿入エンジン12aが検証対象システム2に対して障害(c,x)のデータを挿入する。
S23:学習用データベース10は、検証対象システム2から観測データ{zi(c,x)}iを取得して格納する。
S24:推論モデル部13は、検証対象システム2から観測データ{zi(c,x)}iを取得し、機械学習モデルmにより障害に関する情報を推論し、推論結果h(c,x)を出力データとして挿入障害計算部11に出力する。更に、挿入障害計算部11は、脆弱性指標VD(c,x)や獲得関数を計算し、次に挿入すべき障害(c,x)を決定する。
S25:学習用データベース10は、検証対象システム2から観測データ{zi(c,x)}iを取得して格納する。
S26:原状復旧エンジン12bは、検証対象システム2に対して、原状復旧を行う。
S27:挿入障害計算部11は、脆弱性指標VD(c,x)や獲得関数を計算する。
S28:挿入障害計算部11は、S28による計算により、次に挿入すべき障害(c,x)を決定する。
Here, the process (S2) will be described in detail with reference to FIG.
S21: The insertion
S22: The
S23: The
S24: The
S25: The
S26: The
S27: The insertion
S28: The insertion
最後に、推論モデル部13は、追加用データセットとしてA内に保存されていた、(N1+N2)回のサンプリング中に得られた観測データすべてを学習データとして用いて、要因特定器を再学習する(S13)。再学習する際は、オンライン学習や逐次学習の方法を使ってもよいし、事前学習用のデータと追加用の学習データを全て合わせてバッチ学習するのでもよい。以上で新しく得られた要因特定器D'(図3ではS3の左側のDを示す)は、以前の要因特定器Dよりも特定の障害に対して脆弱性が低くなっていることが期待できる。さらにD'に対して新たに定義される脆弱性指標VD'(c,x)を用いて上記工程を繰り返すことで、さらに要因特定器の精度を向上することができる。繰り返しは適当な条件(SomeConditions)の下で実行するとよい。終了条件としては、十分な試行回数の間、脆弱性が一定値以上になるような障害が見つからないことなどが考えられる。
Finally, the
〔適用事例〕
実施形態の適用事例としては以下のようなものが考えられる。
[Application examples]
The following are possible application examples of the embodiment.
検証対象システム2において本実施形態における障害挿入とデータ生成を実施して、要因特定器の事前構築を行ってから、本番環境に要因特定器を導入する。
The fault insertion and data generation in this embodiment are performed in the
本番環境で動作中の要因特定器と同様のものを用い、検証対象システム2が、本実施形態における障害挿入とデータ生成を行う。再学習により更新された要因特定器は、本番環境での要因特定器に適宜インポートされる。本番環境の構成が変更した際も、検証対象システム2もそれに追随させるようにすれば、新たに発生しうる障害データも本実施形態により半リアルタイムに生成できるようになる。
The system under
上記の検証対象システム2としては、本番環境を模擬したコンテナ環境などの仮想環境を用いる。仮想環境では、既存のカオスエンジニアリングを利用可能であるので、実装が容易であり、データ取得や原状復旧なども短時間で実行可能である。
A virtual environment such as a container environment that simulates a production environment is used as the above-mentioned
本番環境で障害挿入実験が可能であれば、本実施形態を本番環境で実施してもよい。すなわち、本番環境で動作中の要因特定器を用いて、実際に本発明による障害挿入、データ収集を繰り返して、要因特定器を半リアルタイムに更新していく。本番環境での障害挿入はカオスエンジニアリングのスキームでは一般的なので、本実施形態も現実的である。 If fault injection experiments are possible in a production environment, this embodiment may be implemented in the production environment. In other words, using a factor identifier running in the production environment, fault injection and data collection according to the present invention are actually repeated to update the factor identifier in semi-real time. Since fault injection in a production environment is common in chaos engineering schemes, this embodiment is also realistic.
〔実施形態の主な効果〕
以上説明したように本実施形態によれば、機械学習モデルでの推論の難しさを脆弱性指標により定量化した上で、脆弱性が高く推論が難しいクリティカルな障害をベイズ最適化に基づいて探索する。これにより、従来のカオスエンジニアリングで行われてきたランダム探索よりも少ない実験回数で効率的にクリティカルな障害を発見し、それらに対するデータ生成を行うことができる。これらのデータを用い機械学習モデルの再学習を繰り返し行うことで、機械学習モデルの推論精度をあらゆる障害に対して向上させることができるようになる。
[Main Effects of the Embodiments]
As described above, according to this embodiment, the difficulty of inference in a machine learning model is quantified by a vulnerability index, and critical faults that are highly vulnerable and difficult to infer are searched for based on Bayesian optimization. This makes it possible to efficiently discover critical faults with fewer experiments than the random search performed in conventional chaos engineering, and generate data for them. By repeatedly re-learning the machine learning model using these data, it becomes possible to improve the inference accuracy of the machine learning model for all faults.
1 障害データ生成装置
2 検証対象システム
10 学習用データベース
11 挿入障害計算部
12 システム制御部
12a 障害挿入エンジン
12b 原状復旧エンジン
13 推論モデル部
m 機械学習モデル
Claims (6)
前記挿入障害計算部からの命令に基づき、前記検証対象システムに対して前記決定された障害のデータの挿入を実行するシステム制御部と、
前記障害のデータの挿入により前記検証対象システムから得られた観測データを入力として機械学習モデルにより前記障害に関する情報を推論する推論モデル部と、
を有し、
前記数理的アルゴリズムは、前記評価関数を最大化するベイズ最適化アルゴリズム又はバンディットアルゴリズムである、障害データ生成装置。 an insertion fault calculation unit that calculates and determines an optimal fault to be inserted into the system under verification using a mathematical algorithm that preferentially searches for faults whose evaluation function has a value larger than a predetermined value based on an evaluation function that indicates the value of performing data generation by inserting fault data;
a system control unit that executes insertion of the determined fault data into the system under verification based on a command from the insertion fault calculation unit;
an inference model unit that infers information about the fault using a machine learning model with observation data obtained from the system under verification by inserting the fault data as an input;
having
The fault data generating device , wherein the mathematical algorithm is a Bayesian optimization algorithm or a bandit algorithm that maximizes the evaluation function .
障害のデータの挿入によるデータ生成を行う価値を表す評価関数に基づき、当該評価関数が所定値より大きな値を持つような障害を優先的に探索する数理的アルゴリズムにより、検証対象システムに対して挿入する最適な障害を計算して決定し、
前記検証対象システムに対して前記決定された障害のデータを挿入し、
前記障害のデータの挿入により前記検証対象システムから得られた観測データを入力として学習済み機械学習モデルにより前記障害に関する情報を推論し、
前記数理的アルゴリズムは、前記評価関数を最大化するベイズ最適化アルゴリズム又はバンディットアルゴリズムである、障害データ生成方法。 The computer
calculating and determining an optimal fault to be inserted into the system to be verified using a mathematical algorithm that preferentially searches for faults whose evaluation function has a value greater than a predetermined value based on an evaluation function that indicates the value of performing data generation by inserting fault data;
inserting data of the determined fault into the system under test;
Inferring information about the fault using a trained machine learning model using observation data obtained from the system under test by inserting the fault data as an input ;
The fault data generation method , wherein the mathematical algorithm is a Bayesian optimization algorithm or a bandit algorithm that maximizes the evaluation function .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022027975A JP7643373B2 (en) | 2022-02-25 | 2022-02-25 | Fault data generation device, fault data generation method, and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022027975A JP7643373B2 (en) | 2022-02-25 | 2022-02-25 | Fault data generation device, fault data generation method, and program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2023124297A JP2023124297A (en) | 2023-09-06 |
| JP7643373B2 true JP7643373B2 (en) | 2025-03-11 |
Family
ID=87886496
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022027975A Active JP7643373B2 (en) | 2022-02-25 | 2022-02-25 | Fault data generation device, fault data generation method, and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7643373B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025163915A1 (en) * | 2024-02-02 | 2025-08-07 | Ntt株式会社 | Data generation device |
| WO2025163914A1 (en) * | 2024-02-02 | 2025-08-07 | Ntt株式会社 | Data generation device |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210092143A1 (en) | 2019-09-20 | 2021-03-25 | Bank Of America Corporation | Cyber Resilience Chaos Stress Testing |
| US20210182873A1 (en) | 2019-09-24 | 2021-06-17 | Ulrich Lang | Method and system for detecting and analyzing anomalies |
| JP2021128538A (en) | 2020-02-13 | 2021-09-02 | 日本電信電話株式会社 | Failure factor estimating device and failure factor estimating method |
| JP2021135940A (en) | 2020-02-28 | 2021-09-13 | 日立造船株式会社 | Information processor, control system, control variable determination method, and control variable determination program |
| JP2021174348A (en) | 2020-04-28 | 2021-11-01 | 日本電信電話株式会社 | Disaster recovery equipment, disaster recovery methods and programs |
-
2022
- 2022-02-25 JP JP2022027975A patent/JP7643373B2/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210092143A1 (en) | 2019-09-20 | 2021-03-25 | Bank Of America Corporation | Cyber Resilience Chaos Stress Testing |
| US20210182873A1 (en) | 2019-09-24 | 2021-06-17 | Ulrich Lang | Method and system for detecting and analyzing anomalies |
| JP2021128538A (en) | 2020-02-13 | 2021-09-02 | 日本電信電話株式会社 | Failure factor estimating device and failure factor estimating method |
| JP2021135940A (en) | 2020-02-28 | 2021-09-13 | 日立造船株式会社 | Information processor, control system, control variable determination method, and control variable determination program |
| JP2021174348A (en) | 2020-04-28 | 2021-11-01 | 日本電信電話株式会社 | Disaster recovery equipment, disaster recovery methods and programs |
Non-Patent Citations (1)
| Title |
|---|
| 池内光希 ほか,"障害データ生成に基づく要因特定手法の一検討",電子情報通信学会2020年総合大会講演論文集 通信2,2020年03月03日,p. 130,ISSN 1349-1369 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2023124297A (en) | 2023-09-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113723632B (en) | Industrial equipment fault diagnosis method based on knowledge graph | |
| US11595415B2 (en) | Root cause analysis in multivariate unsupervised anomaly detection | |
| US11610131B2 (en) | Ensembling of neural network models | |
| US20210342699A1 (en) | Cooperative execution of a genetic algorithm with an efficient training algorithm for data-driven model creation | |
| US10410111B2 (en) | Automated evaluation of neural networks using trained classifier | |
| Irpan et al. | Off-policy evaluation via off-policy classification | |
| JP7643373B2 (en) | Fault data generation device, fault data generation method, and program | |
| CN114647525A (en) | Diagnostic method, diagnostic device, terminal and storage medium | |
| AU2021280953B2 (en) | An industrial process model generation system | |
| US20200167660A1 (en) | Automated heuristic deep learning-based modelling | |
| Han et al. | On root cause localization and anomaly mitigation through causal inference | |
| Vodenčarević et al. | Identifying behavior models for process plants | |
| Jiang et al. | World4rl: Diffusion world models for policy refinement with reinforcement learning for robotic manipulation | |
| CN110750455A (en) | Intelligent online self-updating fault diagnosis method and system based on system log analysis | |
| KR20220134954A (en) | Auto Encoder Ensemble Based Anomaly Detection Method and System | |
| CN119539156A (en) | A method and device for predicting gas pipeline network faults | |
| CN119420629A (en) | A method for locating the root cause of microservice failures based on graph convolutional neural networks | |
| Dai | A review on the exact Monte Carlo simulation | |
| Samarakoon et al. | System abnormality detection in stock market complex trading systems using machine learning techniques | |
| Fazel | A new method to predict the software fault using improved genetic algorithm | |
| Yang et al. | Sam: subseries augmentation-based meta-learning for generalizing aiops models in multi-cloud migration | |
| US20220405599A1 (en) | Automated design of architectures of artificial neural networks | |
| CN117151247A (en) | Method, apparatus, computer device and storage medium for modeling machine learning task | |
| Cai et al. | Learning by doing: an online causal reinforcement learning framework with causal-aware policy | |
| Byrraju et al. | Enhancing software fault localization using deep learning techniques |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240129 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20240701 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20241031 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20241112 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250109 |
|
| 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: 20250128 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250210 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7643373 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |