Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7643373B2 - Fault data generation device, fault data generation method, and program - Google Patents
[go: Go Back, main page]

JP7643373B2 - Fault data generation device, fault data generation method, and program - Google Patents

Fault data generation device, fault data generation method, and program Download PDF

Info

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
Application number
JP2022027975A
Other languages
Japanese (ja)
Other versions
JP2023124297A (en
Inventor
光希 池内
康太郎 松田
知子 松井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2022027975A priority Critical patent/JP7643373B2/en
Publication of JP2023124297A publication Critical patent/JP2023124297A/en
Application granted granted Critical
Publication of JP7643373B2 publication Critical patent/JP7643373B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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).

C. Rosenthal, L. Hochstein, A. Blohowiak, N. Jones, and A. Basiri, Chaos Engineering: Building Confidence in System Behavior Through Experiments. O'Reilly Media, 2017.[3] Frazier, Peter I. "A tutorial on Bayesian optimization." arXiv preprint arXiv:1807.02811 (2018).C. Rosenthal, L. Hochstein, A. Blohowiak, N. Jones, and A. Basiri, Chaos Engineering: Building Confidence in System Behavior Through Experiments. O'Reilly Media, 2017.[3] Frazier, Peter I. "A tutorial on Bayesian optimization." arXiv preprint arXiv:1807.02811 (2018).

特開2021-128538号公報JP 2021-128538 A

しかし、現実的に実現しうる環境状態や発生しうる障害種類は膨大なバリエーションがあるため、従来のカオスエンジニアリングのスキームを直接的に適用しただけでは、上記問題を解決できない。即ち、現状のカオスエンジニアリングのスキームは、「ランダムな障害発生」または「運用者により指定された特定の障害発生」を実施する。しかし、起こり得る環境状態や障害種類のパターン数が膨大な場合、ランダム探索は非効率的であり、クリティカルな障害のデータがなかなか取れなかったり、十分な学習データが既にある障害に対し冗長なデータ収集をしてしまったりといった課題が生じる。また、運用者がクリティカルな障害を事前に全て指定するのは現実的に困難である。特許文献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 Patent Document 1 assumes comprehensive fault insertion, but this is similarly difficult.

本発明は上記の点に鑑みてなされたものであり、障害挿入実験を最適化することで、できるだけ低コスト、即ち、少ない実験回数又は短い実験時間で、クリティカルな障害を発見し、それらに対する学習データを生成することを目的とする。 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 claim 1 is a fault data generation device comprising: an insertion fault calculation unit that calculates and determines an optimal fault to be inserted into a system to be verified by using a mathematical algorithm that preferentially searches for faults for which an evaluation function representing the value of generating data by inserting fault data has a value greater than a predetermined value, based on the evaluation function; a system control unit that executes insertion of the determined fault data into the system to be verified based on an instruction from the insertion fault calculation unit; and an inference model unit that infers information about the fault by a machine learning model using observation data obtained from the system to be verified by inserting the fault data as an input , wherein the mathematical algorithm is a Bayesian optimization algorithm or a bandit algorithm that maximizes the evaluation function .

以上説明したように本発明によれば、障害挿入実験を最適化することで、できるだけ低コスト、即ち、少ない実験回数又は短い実験時間で、クリティカルな障害を発見し、それらに対する学習データを生成することができるという効果を奏する。 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.

実施形態に係る障害データ生成装置及び検証対象システムの関係と、障害データ生成装置の機能構成を示した図である。1 is a diagram illustrating a relationship between a fault data generation device and a system under verification according to an embodiment, and a functional configuration of the fault data generation device. 実施形態に係る障害データ生成装置のハードウェア構成図である。1 is a hardware configuration diagram of a fault data generating device according to an embodiment; 実施形態における数理的アルゴリズムを示す図である。FIG. 1 illustrates a mathematical algorithm in an embodiment.

以下、図面に基づいて本発明の実施形態を説明する。 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 fault data generator 1 will be described with reference to Fig. 1. Fig. 1 is a diagram showing the relationship between the fault data generator and a system under verification according to an embodiment, and the functional configuration of the fault data generator.

図1において、障害データ生成装置1は、コンピュータにより構築され、機械学習モデルmの再学習に関して、機械学習モデルmの更新を一度で終えずに、更新後の機械学習モデルmを用いて、障害挿入、データ収集、及び再学習の工程を繰り返して逐次的にモデル更新を重ねていくことで、検証対象システム2の構成変化などへの追随が可能な装置である。検証対象システムは、物理システム又は仮想システムである。 In FIG. 1, the fault data generation device 1 is constructed by a computer, and is a device that can track configuration changes of the system 2 to be verified by sequentially updating the machine learning model m by repeating the processes of fault insertion, data collection, and re-learning using the updated machine learning model m, rather than completing the update of the machine learning model m in one go. The system to be verified is a physical system or a virtual system.

図1に示されているように、障害データ生成装置1は、挿入障害計算部11、システム制御部12、及び機械学習モデルmを含む推論モデル部13を有している。これら各部は、プログラムに基づき、後述の図2のプロセッサ101による命令によって実現される機能である。また、障害データ生成装置1は、学習用データベース10を有しており、後述の図2のメモリ102又は補助記憶装置103に構築されている。 As shown in FIG. 1, the fault data generation device 1 has an insertion fault calculation unit 11, a system control unit 12, and an inference model unit 13 including a machine learning model m. Each of these units is a function that is realized by instructions from a processor 101 in FIG. 2, which will be described later, based on a program. The fault data generation device 1 also has a learning database 10, which is constructed in a memory 102 or an auxiliary storage device 103 in FIG. 2, which will be described later.

これらのうち、挿入障害計算部11は、ベイス最適化エンジンとして、挿入する最適な障害を計算し決定する。具体的には、挿入障害計算部11は、障害挿入によるデータ生成を行う価値を表す評価関数に基づき、その評価関数が所定値より大きな値を持つような障害を優先的に探索する数理的アルゴリズムにより、挿入する障害を決定する。 Of these, the insertion fault calculation unit 11, as a Bayesian optimization engine, calculates and determines the optimal fault to be inserted. Specifically, the insertion fault calculation unit 11 determines the fault to be inserted by 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 represents the value of performing data generation by fault 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 inference model unit 13. In addition, the mathematical algorithm used is a Bayesian optimization algorithm or a bandit algorithm that maximizes the evaluation function.

また、システム制御部12は、障害挿入エンジン12a、及び原状復旧エンジン12bを有している。障害挿入エンジン12aは、挿入障害計算部11から障害(c,x)挿入命令を取得し、検証対象システム2に対して障害(c,x)のデータを挿入する。原状復旧エンジン12bは、挿入障害計算部11から原状普及命令を取得し、検証対象システム2に対して原状復旧のデータを出力する。 The system control unit 12 also has a fault insertion engine 12a and a restoration engine 12b. The fault insertion engine 12a obtains a fault (c, x) insertion command from the insertion fault calculation unit 11, and inserts fault (c, x) data into the system 2 under verification. The restoration engine 12b obtains a preservation command from the insertion fault calculation unit 11, and outputs restoration data to the system 2 under verification.

また、推論モデル部13は、障害挿入エンジン12aからの障害挿入により検証対象システム2から得られた観測データ{zi(c,x)}iを入力データとして、機械学習モデルmにより障害に関する情報を推論し、推論結果h(c,x)を出力データとして挿入障害計算部11に出力する。これにより、挿入障害計算部11は、脆弱性指標VD(c,x)や獲得関数を計算し、次に挿入すべき障害(c,x)を決定する。 The inference model unit 13 uses the observation data {z i (c, x)} i obtained from the system 2 under verification by the fault injection from the fault injection engine 12 a as input data, infers fault-related information using the machine learning model m, and outputs the inference result h(c, x) as output data to the insertion fault calculation unit 11. As a result, the insertion fault calculation unit 11 calculates the vulnerability index V D (c, x) and the acquisition function, and determines the next fault (c, x) to be inserted.

学習用データベース10は、原状復旧エンジン12bによる検証対象システム2の原状復旧により検証対象システム2から得られた観測データ{zi(c,x)}iを格納(蓄積)する。 The learning database 10 stores (accumulates) the observation data {zi(c,x)}i obtained from the system 2 under verification by the restoration of the system 2 under verification by the restoration engine 12b.

挿入障害計算部11、システム制御部12、及び推論モデル部13による処理を一定回数繰り返した後、推論モデル部13は、学習用データベース10からモデル更新のためのデータの提供を受けて、機械学習モデルmを再学習して更新する。更新された機械学習モデルmは、実運用システムで稼働する推論モデル部13へ適宜インポートされる。 After the processing by the insertion fault calculation unit 11, the system control unit 12, and the inference model unit 13 is repeated a certain number of times, the inference model unit 13 receives data for updating the model from the learning database 10, and re-learns and updates the machine learning model m. The updated machine learning model m is appropriately imported into the inference model unit 13 that runs in the actual operation system.

〔障害データ生成装置のハードウェア構成〕
続いて、図2を用いて、障害データ生成装置1のハードウェア構成図である。図2は、実施形態に係る障害データ生成装置のハードウェア構成図である。なお、検証対象システム2が物理システムの場合のハードウェア構成は、障害データ生成装置1と同様であるため、説明を省略する。
[Hardware Configuration of the Fault Data Generation Device]
Next, a hardware configuration diagram of the fault data generation device 1 will be described with reference to Fig. 2. Fig. 2 is a hardware configuration diagram of the fault data generation device according to the embodiment. Note that the hardware configuration when the verification target system 2 is a physical system is similar to that of the fault data generation device 1, and therefore a description thereof will be omitted.

図2に示されているように、障害データ生成装置1は、プロセッサ101、メモリ102、補助記憶装置103、接続装置104、通信装置105、ドライブ装置106を有する。なお、障害データ生成装置1を構成する各ハードウェアは、バス107を介して相互に接続される。 As shown in FIG. 2, the fault data generation device 1 includes a processor 101, a memory 102, an auxiliary storage device 103, a connection device 104, a communication device 105, and a drive device 106. The hardware components constituting the fault data generation device 1 are connected to each other via a bus 107.

プロセッサ101は、障害データ生成装置1全体の制御を行う制御部の役割を果たし、CPU(Central Processing Unit)等の各種演算デバイスを有する。プロセッサ101は、各種プログラムをメモリ102上に読み出して実行する。なお、プロセッサ101には、GPGPU(General-purpose computing on graphics processing units)が含まれていてもよい。 The processor 101 serves as a control unit that controls the entire fault data generation device 1, and includes various computing devices such as a CPU (Central Processing Unit). The processor 101 reads various programs onto the memory 102 and executes them. The processor 101 may also include a GPGPU (General-purpose computing on graphics processing units).

メモリ102は、ROM(Read Only Memory)、RAM(Random Access Memory)等の主記憶デバイスを有する。プロセッサ101とメモリ102とは、いわゆるコンピュータを形成し、プロセッサ101が、メモリ102上に読み出した各種プログラムを実行することで、当該コンピュータは各種機能を実現する。 The memory 102 has a primary storage device such as a ROM (Read Only Memory) or a RAM (Random Access Memory). The processor 101 and the memory 102 form what is known as a computer, and the processor 101 executes various programs read onto the memory 102, causing the computer to realize various functions.

補助記憶装置103は、各種プログラムや、各種プログラムがプロセッサ101によって実行される際に用いられる各種情報を格納する。 The auxiliary storage device 103 stores various programs and various information used when the programs are executed by the processor 101.

接続装置104は、外部装置(例えば、表示装置110、操作装置111)と障害データ生成装置1とを接続する接続デバイスである。 The connection device 104 is a connection device that connects an external device (e.g., the display device 110, the operation device 111) to the fault data generation device 1.

通信装置105は、他の装置との間で各種情報を送受信するための通信デバイスである。 The communication device 105 is a communication device for sending and receiving various information between other devices.

ドライブ装置106は(非一時的)記録媒体130をセットするためのデバイスである。ここでいう記録媒体130には、CD-ROM(Compact Disc Read-Only Memory)、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体130には、ROM(Read Only Memory)、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。 The drive device 106 is a device for setting a (non-transient) recording medium 130. The recording medium 130 here includes media that record information optically, electrically, or magnetically, such as a CD-ROM (Compact Disc Read-Only Memory), a flexible disk, or a magneto-optical disk. The recording medium 130 may also include semiconductor memory that records information electrically, such as a ROM (Read Only Memory) or a flash memory.

なお、補助記憶装置103にインストールされる各種プログラムは、例えば、配布された記録媒体130がドライブ装置106にセットされ、該記録媒体130に記録された各種プログラムがドライブ装置106により読み出されることでインストールされる。あるいは、補助記憶装置103にインストールされる各種プログラムは、通信装置105を介してネットワークからダウンロードされることで、インストールされてもよい。 The various programs to be installed in the auxiliary storage device 103 are installed, for example, by setting the distributed recording medium 130 in the drive device 106 and reading the various programs recorded on the recording medium 130 by the drive device 106. Alternatively, the various programs to be installed in the auxiliary storage device 103 may be installed by downloading them from a network via the communication device 105.

〔実施形態の処理又は動作〕
続いて、本実施形態の処理又は動作について詳細に説明する。なお、処理又は動作の説明の前に、問題設定について説明する。
[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 system 2 under verification.

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 verification target system 2, such as the traffic volume at the time of the fault occurrence, or the scale of the fault (delay time in the case of a delay fault, packet loss rate in the case of a packet loss fault, CPU load rate in the case of a CPU fault, etc.). Even if it is known that some fault has occurred during system operation, (c, x) cannot be directly observed. To be precise, there may be a situation in which x can be partially observed, but c cannot be directly observed. Instead, it is possible to observe the observation data z(c,x)=(z 1 (c,x),...,z n (c,x)) generated by the target system when a fault (c,x) occurs. Even if the fault is the same, the generated data may have fluctuations, so {z(c,x)|(c,x)∈F} can be regarded as a multidimensional stochastic process parametrized by (c,x) (if (c,x) is fixed, z(c,x) can be regarded as a random variable). Each z i (c,x) may be any observable numerical quantity, such as various system metrics, the number of occurrences of a particular log, or an evaluation value of service quality.

運用時には要因特定器を用い、観測データ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

Figure 0007643373000001
という関数とみなせる。ここで|C|は障害のカテゴリー数であり、h(z)は規格化された非負成分からなる|C|次元ベクトルであり、各成分はそのカテゴリーである確率を表す。
Figure 0007643373000001
Here, |C| is the number of disability categories, and h(z) is a |C|-dimensional vector of normalized non-negative components, each of which represents the probability of being in that category.

例えば、ニューラルネットワークモデルであれば、出力層における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:

Figure 0007643373000002
で定義する。ここで期待値操作
Figure 0007643373000002
Here, we define the expected value operation

Figure 0007643373000003
は確率変数z(c,x)に対するものである。この定義によると正解カテゴリーに対する推論確率が低い障害に対して脆弱性が高いことになる。つまり、要因特定器DはVD(c,x)が大きくなるような障害(c,x)に対しては、適切な推論がなされない可能性が高く、そのような障害に対する観測データz(c,x)を積極的に提供するのが本実施形態の目的である。なお、脆弱性の具体的な定義式は上記のものに限る必要はなく、
Figure 0007643373000003
is for the random variable z(c,x). According to this definition, vulnerability is high for faults with a low probability of inferring the correct category. In other words, the cause identifier D is unlikely to make appropriate inferences for faults (c,x) for which VD (c,x) is large, and the purpose of this embodiment is to actively provide observed data z(c,x) for such faults. Note that the specific definition of vulnerability does not need to be limited to the above,

Figure 0007643373000004
などとしたり、障害に依存して適当な重みを課したりしてもよい。
Figure 0007643373000004
Or, appropriate weights may be applied depending on the type of disability.

続いて、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 verification target system 2, a model is constructed, and for test data, the degree of deviation from the normal state is referred to to determine whether it is normal or abnormal. Specifically, it is implemented with a machine learning model such as a one-class support vector machine or an autoencoder. In this situation, the various concepts mentioned above can be defined as follows. The fault space can be shown as F = (C,X) ∋ (c,x) = (c,x 1 , ..., x n ), and in particular, c ∈ {0, 1} is a binary variable that represents normal (0) or abnormal (1) (note that the fault space also includes the normal state (c = 0)). The observed data z(c,x) is defined in the same way as for the factor specifier. The anomaly detector D is

Figure 0007643373000005
と示すことができ、h(z)は検証対象システム2が異常である確率を表す。一般には、適当な閾値α∈(0、1)を用いて、
Figure 0007643373000005
where h(z) represents the probability that the verification target system 2 is abnormal. In general, using an appropriate threshold α∈(0, 1),

Figure 0007643373000006
であれば異常、そうでなければ正常と推論する。状態(c,x)に対する異常検知器Dの脆弱性VD(c,x)を、
Figure 0007643373000006
If so, it is inferred to be abnormal, otherwise it is inferred to be normal. The vulnerability V D (c,x) of an anomaly detector D for state (c,x) is

Figure 0007643373000007
或いは
Figure 0007643373000007
or

Figure 0007643373000008
などと定義できる。ここで
Figure 0007643373000008
Here,

Figure 0007643373000009
は引数が真であれば1、偽であれば0を取る指示関数である。
Figure 0007643373000009
is an indicator function that takes the value 1 if the argument is true and 0 if it is false.

以下では、要因特定器の場合を例に説明を行うが、異常検知器あるいは別の機械学習モデルの場合でも同様な議論が可能である。 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).
<Reference 1> Frazier, Peter I. "A tutorial on Bayesian optimization." arXiv preprint arXiv:1807.02811 (2018).
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 2> Balandat, Maximilian, et al. "BoTorch: A Framework for Efficient Monte-Carlo Bayesian Optimization." NeurIPS. 2020.
<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 fault calculation unit 11, the system control unit 12, and the inference model unit 13 perform random sampling N1 times (an appropriate natural number, which may be dynamically changed for each iteration) (S1).

1回のサンプリングとは、指定された障害(c,x)を対象システムに挿入し観測データ One sampling is the observation data obtained by inserting a specified fault (c,x) into the target system.

Figure 0007643373000010
を取得、追加用データセットとして保存の上、脆弱性VD(c,x)を計算して、検証対象システム2を原状復旧することを指す。zi(c,x)は確率変数z(c,x)の実現値を表しており、ここではT個のデータが取れたことになる。例えば、データのスクレイピング間隔を10秒としたとき、障害挿入を10×T秒間継続していれば、T個のデータが取れる。VD(c,x)の計算においては、例えば、期待値操作を
Figure 0007643373000010
This refers to obtaining and saving the data set for addition, calculating the vulnerability V D (c,x), and restoring the target system 2 to its original state. z i (c,x) represents the realized value of the random variable z(c,x), and in this case, T pieces of data have been obtained. For example, if the data scraping interval is 10 seconds, and the fault insertion continues for 10×T seconds, T pieces of data can be obtained. In calculating V D (c,x), for example, the expected value operation is

Figure 0007643373000011
によるサンプル平均で置き換え、
Figure 0007643373000011
Replace with the sample mean by

Figure 0007643373000012
のように求めればよい。ただし、この計算式は例であり、別の方法により算出してもよい。
Figure 0007643373000012
However, this calculation formula is an example, and calculation may be performed using another method.

ここで、図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 fault calculation unit 11 randomly selects a fault (c, x).
S12: The fault insertion engine 12a inserts fault (c, x) data into the system 2 under verification.
S13: The training database 10 acquires and stores the observed data {z i (c,x)} i from the verification target system 2.
S14: The inference model unit 13 acquires the observation data {z i (c, x)} i from the system 2 under verification, infers information about faults using the machine learning model m, and outputs the inference result h(c, x) as output data to the insertion fault calculation unit 11. Furthermore, the insertion fault calculation unit 11 calculates the vulnerability index V D (c, x) and the acquisition function, and determines the fault (c, x) to be inserted next.
S15: The training database 10 acquires and stores the observed data {z i (c,x)} i from the verification target system 2.
S16: The restoration engine 12b performs restoration on the verification target system 2.

続いて、挿入障害計算部11、システム制御部12、及び推論モデル部13は、ベイズ最適化の枠組みに従い、獲得関数を計算して逐次的に次にサンプルすべき障害(c,x)を決めるというサイクルをN2回(適当な自然数回、反復のたびに動的に変化させてもよい)繰り返す(S2)。獲得関数の設計方法は様々な変種が考えられているが、いずれの手法でも本実施形態では適用可能である。 Next, the insertion fault calculation unit 11, the system control unit 12, and the inference model unit 13 repeat the cycle of calculating the acquisition function and sequentially determining the fault (c, x) to be sampled next N2 times (an appropriate natural number, which may be dynamically changed for each iteration) according to the Bayesian optimization framework (S2). Various variations of the method of designing the acquisition function have been considered, but any of the methods can be applied to this embodiment.

ここで、図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 fault calculation unit 11 randomly selects a fault (c, x).
S22: The fault insertion engine 12a inserts fault (c, x) data into the system 2 under verification.
S23: The training database 10 acquires and stores the observed data {z i (c,x)} i from the verification target system 2.
S24: The inference model unit 13 acquires the observation data {z i (c, x)} i from the system 2 under verification, infers information about faults using the machine learning model m, and outputs the inference result h(c, x) as output data to the insertion fault calculation unit 11. Furthermore, the insertion fault calculation unit 11 calculates the vulnerability index V D (c, x) and the acquisition function, and determines the fault (c, x) to be inserted next.
S25: The training database 10 acquires and stores the observed data {z i (c,x)} i from the verification target system 2.
S26: The restoration engine 12b performs restoration on the verification target system 2.
S27: The insertion fault calculation unit 11 calculates the vulnerability index V D (c, x) and the acquisition function.
S28: The insertion fault calculation unit 11 determines the next fault (c, x) to be inserted based on the calculation in S28.

最後に、推論モデル部13は、追加用データセットとしてA内に保存されていた、(N1+N2)回のサンプリング中に得られた観測データすべてを学習データとして用いて、要因特定器を再学習する(S13)。再学習する際は、オンライン学習や逐次学習の方法を使ってもよいし、事前学習用のデータと追加用の学習データを全て合わせてバッチ学習するのでもよい。以上で新しく得られた要因特定器D'(図3ではS3の左側のDを示す)は、以前の要因特定器Dよりも特定の障害に対して脆弱性が低くなっていることが期待できる。さらにD'に対して新たに定義される脆弱性指標VD'(c,x)を用いて上記工程を繰り返すことで、さらに要因特定器の精度を向上することができる。繰り返しは適当な条件(SomeConditions)の下で実行するとよい。終了条件としては、十分な試行回数の間、脆弱性が一定値以上になるような障害が見つからないことなどが考えられる。 Finally, the inference model unit 13 retrains the factor identifier using all the observation data obtained during the (N 1 +N 2 ) samplings stored in A as the additional data set as training data (S13). When retraining, online learning or sequential learning methods may be used, or batch training may be performed by combining all the pre-training data and the additional training data. The newly obtained factor identifier D' (shown on the left side of S3 in FIG. 3) is expected to be less vulnerable to a specific fault than the previous factor identifier D. Furthermore, the accuracy of the factor identifier can be further improved by repeating the above process using a newly defined vulnerability index V D' (c,x) for D'. The repetition may be performed under appropriate conditions (SomeConditions). The termination condition may be that no fault is found that makes the vulnerability equal to or greater than a certain value for a sufficient number of trials.

〔適用事例〕
実施形態の適用事例としては以下のようなものが考えられる。
[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 verification target system 2 to pre-construct the factor identifier, and then the factor identifier is introduced into the production environment.

本番環境で動作中の要因特定器と同様のものを用い、検証対象システム2が、本実施形態における障害挿入とデータ生成を行う。再学習により更新された要因特定器は、本番環境での要因特定器に適宜インポートされる。本番環境の構成が変更した際も、検証対象システム2もそれに追随させるようにすれば、新たに発生しうる障害データも本実施形態により半リアルタイムに生成できるようになる。 The system under verification 2 performs fault insertion and data generation in this embodiment using a factor identifier similar to the one running in the production environment. The factor identifier updated by re-learning is imported into the factor identifier in the production environment as appropriate. If the system under verification 2 is made to follow any changes to the configuration of the production environment, this embodiment will enable data on newly occurring faults to be generated in semi-real time.

上記の検証対象システム2としては、本番環境を模擬したコンテナ環境などの仮想環境を用いる。仮想環境では、既存のカオスエンジニアリングを利用可能であるので、実装が容易であり、データ取得や原状復旧なども短時間で実行可能である。 A virtual environment such as a container environment that simulates a production environment is used as the above-mentioned verification target system 2. In a virtual environment, existing chaos engineering can be used, making implementation easy, and data acquisition and restoration to the original state can be performed in a short time.

本番環境で障害挿入実験が可能であれば、本実施形態を本番環境で実施してもよい。すなわち、本番環境で動作中の要因特定器を用いて、実際に本発明による障害挿入、データ収集を繰り返して、要因特定器を半リアルタイムに更新していく。本番環境での障害挿入はカオスエンジニアリングのスキームでは一般的なので、本実施形態も現実的である。 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 機械学習モデル
Reference Signs List 1 Fault data generation device 2 System to be verified 10 Learning database 11 Insertion fault calculation unit 12 System control unit 12a Fault insertion engine 12b Restoration engine 13 Inference model unit m Machine learning model

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 fault data generating device according to claim 1 , wherein the evaluation function uses a vulnerability index to faults that is defined based on an inference accuracy of a machine learning model in the inference model unit. 前記システム制御部は、前記挿入障害計算部からの命令に基づき、前記検証対象システムに対して原状復旧を行う、請求項1に記載の障害データ生成装置。 The fault data generation device according to claim 1, wherein the system control unit performs restoration of the verification target system based on an instruction from the insertion fault calculation unit. 前記推論モデル部は、前記障害のデータの挿入により前記検証対象システムから得られた観測データを入力として機械学習モデルの再学習を行う場合に、当該機械学習モデルの更新を一度で終えずに、更新後の前記機械学習モデルを用いて、障害挿入、データ収集、及び再学習の工程を繰り返して逐次的にモデル更新を重ねていく、請求項1乃至のいずれか一項に記載の障害データ生成装置。 4. The fault data generation device according to claim 1, wherein when the inference model unit re-learns a machine learning model using as input observation data obtained from the system to be verified by inserting the fault data, the inference model unit does not complete the update of the machine learning model in one go, but uses the updated machine learning model to repeat the processes of fault insertion, data collection, and re - learning to sequentially update the model. コンピュータが、
障害のデータの挿入によるデータ生成を行う価値を表す評価関数に基づき、当該評価関数が所定値より大きな値を持つような障害を優先的に探索する数理的アルゴリズムにより、検証対象システムに対して挿入する最適な障害を計算して決定し、
前記検証対象システムに対して前記決定された障害のデータを挿入し、
前記障害のデータの挿入により前記検証対象システムから得られた観測データを入力として学習済み機械学習モデルにより前記障害に関する情報を推論し、
前記数理的アルゴリズムは、前記評価関数を最大化するベイズ最適化アルゴリズム又はバンディットアルゴリズムである、障害データ生成方法。
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 .
コンピュータに、請求項に記載の方法を実行させるプログラム。 A program for causing a computer to execute the method according to claim 5 .
JP2022027975A 2022-02-25 2022-02-25 Fault data generation device, fault data generation method, and program Active JP7643373B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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