## Summary for Tweet
#SRE論文紹介:Microsoftの研究グループが、GPT-4を用いてクラウドのインシデントの履歴データから根本原因分析を自動化するシステムの提案論文。履歴データをすべて個別にGPT-3.5で要約・埋め込みベクトル化し、発生中のインシデントの記述と関連するインシデントを検索しプロンプトに含めるIn-Context Learningを行う。約10万件のインシデントデータを用いた実験の結果、GPT-4ベースの提案法は、GPT-3ファインチューニングよりも24.77%高い精度となった、が、GPT-3.5ベースの提案法はまだ及ばない結果であった。人間による評価では、提案法が正しさの点で43.5%高いスコアを獲得した。その他、プロンプトに含める過去インシデント例の個数や質、順序を変化させたり、GPTファミリーごとの性能差についても定量的に比較されている。
[arXiv'24] "Automated Root Causing of Cloud Incidents using In-Context Learning with GPT-4"
https://arxiv.org/abs/2401.13810
[X](https://twitter.com/yuuk1t/status/1763007576604864865)
## Memo
- Microsoftの著者らによるarXiv論文。一部の著者が[[2023__ICSE__Recommending Root-Cause and Mitigation Steps for Cloud Incidents using Large Language Models|Ahmed+, ICSE2023]]と共通する。
- [[2023__ICSE__Recommending Root-Cause and Mitigation Steps for Cloud Incidents using Large Language Models|Ahmed+, ICSE2023]]は、 [[LLM]]をクラウドのインシデントデータで[[ファインチューニング]]することにより、インシデント診断タスクにおいて良い結果を得たが、根本原因分析(RCA)タスクには課題が残る。1つは、LLMは学習データから正確な情報を想起できないこと、ファインチューニングが高い計算コストを払うこと、以前の情報が陳腐化するため継続学習が必要であることが挙げられる。
- 提案法はファインチューニングに頼らず、関連する過去のインシデ ントをコンテキスト内例として直接取り込む[[In-Context Learning]]に基づくものである。
- 1) [[GPT-3.5]]を用いて、インシデントの要約と根本原因をまとめ、検索コーパスとコンテキスト内例を構築し、文変換モデル [39]を採用し、2) 各インシデントの要約の埋め込みベクトルを生成する。3) ベクトルの類似性に基づく検索インデックスを構築する。4) 新規インシデントが発生するとその説明文をクエリとして、検索インデックスに基づいて関連するインシデントを見つける。5) これらのインシデントをコンテキスト内例としてプロンプトに含める。6) [[GPT-4]]などのLLMに新規インシデントの説明と例に基づいて、根本原因を生成する。
-
- ![[Pasted image 20240130221118.png|500]]
- 過剰な不要な情報を取り込むと、検索モジュールの有効性が低 下する可能性があるため、[[インシデント要約の生成プロンプト]]により、インシデントの症状、外部サービスへの参照、エラーコードなどの区別機能、サービス名などの文脈の詳細など、特定の情報を要約されたバージョンにする。
- 検索インデックスは、インシデント要約をSentence Transformer (ST) モデル(all-mpnet-bse-v2)を用いてベクトル化する。FAISS [20]ライブ ラリを利用して、過去のインシデントから得られた密なベクトルの類似性検索とクラスタリングを行う。[[ユークリッド距離]]を使う。
- 最終的なプロンプトは次の通りで、"Root Cause: "で終わらせその続きを生成させる。
- ![[Pasted image 20240228225950.png|400]]
- 実験で用いるデータセットは、2021年1月1日から2022年9月30日の間に作成された101,308件のインシデントデータであり、「解決済み」または「 軽減済み」インシデントの一部であり、重症度レベルは0から4まであり、レベル0が最も重篤なインシデントであった。検索セットには最初の98,308件、検証セットには2,000件、テストセットには1,000件のインシデントを選択した。GPT3のファインチューニングモデルについては、検索セットから過去20,000件をファインチューニング用学習セットとして指定した。評価指標は語彙的指標と意味的指標の2種類である。
- ベースライン手法はOPT [46]、CodeGen [36]、Bloom [41]の**中程度の言語モデル**と**GPT-3をファインチューニングしたもの**である。さらに、**ゼロショットのGPT-35-turbo8 、Text-davinci-003、GPT-4 、GPT-4-32K**を選択した。インシデントデータをチャンクに分割した**RAG**もある。
- ファインチューニングには16台のV100-32GB GPU、推論時には4台のV100-32GB GPUが必要である。
- RQ1: ファインチューニング済みLLMに対して、バニラLLM(提案法)は同等の性能を達成できるか?
- ![[Pasted image 20240228231043.png|500]]
- GPT-4(提案法)は、CodeGen 、OPT、Bloomをそれぞれ平均63.85%、18.15%、18.21%上回り、GPT-3ファインチューニングモデルを24.77%上回っている。ただし、GPT-3.5(提案法)はまだ及ばない。GPT-4-32K(提案法)はGPT-4と同様。
- 人間による評価では、提案法が正しさの点で43.5%高いスコアを獲得した。20ショットの例しか使用しないため、GPT-4-32Kは大きなプロンプト入力に対応する利点を活用できず、GPT-4モデルよりも性能が低下した。最もスコアの低いインシデントの大半は依存先のインシデントに接続されていることがわかった。このようなケースを除外すると、3分の2近く(58.3%)のインシデントが3以上のスコアを達成した。5点中3点のような部分的に正しい推奨であっても、非常に有益である。
- RQ2: バニラGPTモデルの性能を向上させるために、従来の[[RAG]]を採用できるか?
- 30ショットで、提案法は6つの指標すべてにおいて平均約22.37%の改善を達成した。
- RQ3:提案法(Few Shot)はバニラLLM(Zero Shot)にどのように役立つのか?
- GPT-4とGPT-4-32Kモデルでそれぞれ49.69% と51.31%の大幅な性能向上がみられた。GPT-35-turboとText-Davin ci-003のモデルでも同様の傾向が見られた。
- RQ4:コンテキストに沿った例題が多いほど、性能は向上するのか?
- ショット数が20に達したとき、語彙と意味の両方のメトリ クスが最適な性能となった。
- ![[Pasted image 20240228231736.png|400]]
- RQ5:関連性の高いIn-context examplesと、関連性のない(ランダムな)例とでは、性能にどのような違いがあるのか?
- 現在のインシデントと意味的な関連性のないランダムに選択されたインシデントと比較して、約41.2%の大幅な性能向上につながった。
- RQ6:コンテキスト内の例の順序は性能にどのような影響を与えるか? -> 影響なし。
- 議論:提案法の有効性が類似のインシデント間の根本原因の一貫性に大きく依存する。実用的なシステムでは、ハードウェアの故障や異常な動作は避けられないことと、これらの修正には通常かなりの時間を要することから繰り返しフォルトが発生することが多い。18.8%のインシデントが履歴関連性の高いインシデント(関連性スコア > 0.8)を発見し、10.7%のインシデントはユニーク(関連性スコア < 0.2)であった。インシデントの年齢を考慮しないことも制限となる。
- 今後の課題は、オンライン診断ツ ールから得られる情報を用いて、段階的な因果推論を行うか、過去のインシデントの詳細な診断ログから得られるドメイン知識で補完することで、推論プロセスを 強化することである。
- 感想:ドメイン特化のファインチューニングモデルに対して、単純なチャンク分割ではないインシデントデータに特化したRAGライクな手法が性能で凌駕したと解釈した。提案法は単純だが、Few Shotの例の数や質、順序によりどのように性能が変化するかを細かく定量的に比較していることが貢献である。[[2024__EuroSys__Automatic Root Cause Analysis via Large Language Models for Cloud Incidents|RCACopilot]]や[[2024__CIKM__RCAgent - Cloud Root Cause Analysis by Autonomous Agents with Tool-Augmented Large Language Models|RCAgent]]ははまさに今後の課題に取り組んだようなアプローチがなぜ本論文で取り上げられていないのかは不明である。GPT-4がファインチューニングできないので、ファインチューニング済みGPT-4相当のモデルと比較しないとフェアな比較とは言えない。
## Abstract
根本原因分析(RCA)は、クラウドサービスのインシデント診断プロセスにおいて極めて重要な役割を果たし、オンコール・エンジニアは主要な問題を特定し、将来の再発を防止するための是正措置を実施する必要があります。インシデントRCAプロセスの改善は、サービスのダウンタイム、顧客への影響、手作業による労力を最小限に抑えるために不可欠です。最近の人工知能の進歩により、GPT-4のような最先端の大規模言語モデル([[notes/data-science/LLM]])が導入され、コード・オーサリングからインシデント管理まで、様々なAIOpsの問題に取り組む上で効果的であることが証明されています。それにもかかわらず、[[GPT-4]]モデルの膨大なサイズは、GPUリソースの大きな要求と、新しいデータの出現に伴う継続的なモデルの微調整の必要性から、ユーザーデータ上でファインチューニングを試みる際に課題をもたらします。LLMをファインチューニングする高いコストに対処するために、我々は、[[ファインチューニング]]の必要性を排除する、自動化された根本原因のための[[In-Context Learning]]アプローチを提案する。我々は、100,000件の本番インシデントを対象とした広範な研究を実施し、複数のメトリクスを用いて複数の大規模言語モデルを比較した。その結果、我々のインコンテキスト学習アプローチは、[[GPT-3]]のような以前のファインチューニングされた大規模言語モデルを、すべてのメトリクスで平均24.8%上回り、ゼロショット・モデルに対して49.7%改善した。さらに、実際のインシデント・オーナーが参加した人間評価では、正しさが43.5%向上し、読みやすさが8.7%向上し、ファインチューニング・モデルに対する優位性が実証された。この印象的な結果は、RCAタスクにバニラGPTモデルを利用することの実行可能性を示し、それにより、微調整モデルに関連する高い計算コストとメンテナンスコストを回避することができる。