## 近況 - さくらインターネット研究所 - リモートワークにおけるチームビルディング https://research.sakura.ad.jp/2022/10/18/team-building/ - 京都大学大学院 博士課程 3月で研究指導認定退学 -> 3年以内に博士論文を提出 - 博士論文に進む前の最後のジャーナルの投稿準備中 - https://speakerdeck.com/yuukit/summary-of-my-research-in-the-phd-course --- ## 本日のトピック 1. [[SRE NEXT 2022]]の発表の続き 2. AIOpsの商用サービス化の構想 --- ## SRE NEXT 2022の発表の続き - 原因診断の前段で問題空間を小さくすることにより、高精度化・高速化を目指す ![[Pasted image 20230313125127.png]] --- ### SRE NEXT 2022との差分 - フェーズ1:新しい異常検知手法を提案 - 実験環境の充実化([[TrainTicket]]からデータセット採取) - 既存の原因診断アルゴリズムに接続しての評価 --- ### 新異常検知手法 ![[Pasted image 20230313125751.png]] --- ### Train Ticket - https://github.com/FudanSELab/train-ticket - 40+個以上のマイクロサービスで構成されたベンチマークアプリケーション - データセットを作成するためのシミュレーション環境として使用 - https://speakerdeck.com/yuukit/meltria-in-iots2021 ![[Pasted image 20230313130336.png]] --- ### 既存の原因診断との統合評価 - 比較的簡易な手法を提案する既存論文 - ISSRE2021, [[2021__ISSRE__Identifying Root-Cause Metrics for Incident Diagnosis in Online Service Systems|PatternMatcher]] - [[K-S検定]]のp値を異常度として、メトリクスをランキング - ナイーブすぎて正しいランキングになるとは思えない - PCCC2020, [[2020__IPCCC__FluxInfer―Automatic Diagnosis of Performance Anomaly for Online Database System|FluxInfer]] - PCアルゴリズムを基に無向グラフでランク化 - 完全無向グラフ + 条件付き独立性検定のP値をエッジの重み + PageRank - PER2013, [[2013__PER__Root Cause Detection in a Service-Oriented Architecture|MonitorRank]] - Personalized PageRank - "Personalized" -> SLIノードと相関の高いノードを、Webページを巡回する人間の好みのページに見立てている - 今の所これが一番まともにランク化できている。ただし、SLIメトリックと原因メトリクス間の相関が低い場合、ランク化はうまくいかない --- ## AIOps研究の商用サービス化の構想 [[AI for Incident Management as a Service]] コンセプト「AIの怖さに向き合い信頼を構築する」 --- ### コンセプト - システム障害に起因するインシデントを恐れながら、日々システムを変更している - インシデント対応に関するAI全自動化ソリューションがあったとして、開発・運用者が望まない挙動をしないかどうか、AIの出力をどれくらい信じてよいのかを不安に思う - 開発・運用者がAIを信頼できるように、AIと対話すればするほどコンテキストが蓄積され、AIが賢くなっていく実感がもてる、言い換えるとAIを育てるようなサービスを提案する - 仮にAIがあるとき誤った挙動をしても、誤りを指摘し、それがAIに反映されていく様子を間近でみれば、AIを信頼していける --- ### 要件 - 過去のインシデントから学習・パラメータの調整が可能であること - 運用者のドメイン知識を段階的に注入可能であること - AIがなぜその出力をしたのかを人間が解釈可能であること --- ### フィーチャー(機能) - フィーチャー1:アプリケーションの展開(Deployment)に起因するインシデント検知 - フィーチャー2:故障箇所特定(Fault Localization)の自動化 - フィーチャー3:障害の緩和策の推薦 - フィーチャー4:AIと対話しながらのインシデントの振り返り - フィーチャー5:故障注入による能動的なAI学習促進 --- ### フィーチャー1:アプリケーションの展開(Deployment)に起因するインシデント検知 - 背景:アプリケーションの変更が障害の引き金となるケースが増加している - 課題:アプリケーションの変更に関連するメトリクスの個数は膨大で数百から数100万のメトリクスを同時にチェックする必要がある - 解決:熟練者の経験から導かれる直感によらずに、チェックを自動化する - 技術的実現性: ISSRE2022で発表された[[2022__ISSRE__Identifying Erroneous Software Changes through Self-Supervised Contrastive Learning on Time Series Data|Kontrast]]論文では、自己教師ありの対照学習を用いて、誤ったソフトウェア変更を特定する手法が提案されている --- ### フィーチャー2:故障箇所特定(Fault Localization)の自動化 - 背景:故障箇所特定は、膨大なデータを参照する必要があり、熟練者の経験からくる直感によるデータの絞り込みに頼っている。 - 課題:セルフサービス化が普及しつつある現在、熟練者以外がインシデント対応にあたるケースが増加している。 - 解決:故障箇所の候補をAIが自動で提示する。 - 技術的実現性:ISSRE2022で発表された [[2022__ESEC-FSE__Actionable and Interpretable Fault Localization for Recurring Failures in Online Service Systems|De ́ja`Vu]] は過去のインシデントと類似のインシデントに対応できるように、反復学習可能かつ解釈可能な故障箇所特定手法の提案を行っている。その他多数の関連研究あり。 --- ### フィーチャー3:障害の緩和策の推薦 - 背景:故障箇所特定をしたのちに、エンドユーザーの影響を最小化するために、障害を緩和する必要がある。緩和方法は熟練者の直感に依存する。 - 課題:熟練者以外は、故障箇所が特定されても緩和の仕方がわからない。 - 解決:過去のインシデント対応の記録から類似のインシデントを検索し、障害の緩和策を推薦する。類似したものがなかったとしても、対応者が類似インシデントを探す手間を省略できる。 - 技術的実現性:ESEC/FSE2022にて発表された [[2022__ESEC-FSE__Metadata-based Retrieval for Resolution Recommendation in AIOps]]は過去の類似インシデントを検索する手法を提案している。 --- ### フィーチャー4:AIと対話しながらのインシデントの振り返り - 背景:インシデントを振り返ることにより、インシデントから学習し、次回以降のインシデントをよりスマートに行えるように各社が努力している。 - 課題:インシデントの振り返りレポート(ポストモーテム)を書くことが大変である。インシデントの開始、収束などの各種イベントの時刻とイベント内容を記録しようとすると、Slackを読み返すなどの手間がかかる。 - 解決:レポートを書く際に、メトリクスやログ、Slackチャットログなどからインシデント内のイベント時刻とイベント内容を補完する。 - 技術的実現性:GPT-3のような大規模言語モデルをAPI?から利用することにより、こなれた文章を生成することは可能である。類似の事例では、Zebriumは根本原因の診断レポートをAIに生成させている。 [[GPT-3によるインシデントの根本原因の要約作成 - Zebrium]] --- ### フィーチャー5:故障注入による能動的なAI学習促進 - 課題:イベントによるコンテキストが少ないとAIが賢くない。AIが賢くなるまでイベントの発生を待たなければならず、時間がかかる - 解決:2022年に公開された[[2022__arXiv__PerfCE - Performance Debugging on Databases with Chaos Engineering-Enhanced Causality Analysis|PERFCE]]論文では、Chaos Engineeringの新しい使用法として、データベースの性能異常の診断するために、意図的に故障を注入した状態を学習し、因果グラフを作成 --- ## 今後の予定 - 博士課程を修了させる - その後 - 博士課程中に得た知見のブログでの公開、OSS化 - 他社からのデータセット提供などの連携