さくらインターネット研究所の坪内(@yuuk1t)です。
私の個人ブログにて、クラウドのプラットフォームやクラウド上に展開されるアプリケーションの障害を大規模言語モデル(LLM)を用いて、自動で診断するための技術を提案する最新の研究動向を紹介する次の調査記事を書きました。
本記事では、この研究動向の調査をさくらインターネット研究所の研究活動の一環として位置づけ、調査の概要と動機、公開後に得られたフィードバック、今後の研究について紹介します。
調査記事の概要
我々は、SRE(Site Reliability Engineering)やAIOps(AI for IT Operations)の分野で、システム障害の自動検知・診断・対応に関する研究を行っています。LLMを使ったシステム障害診断は、SREの知識をLLMが学習し、障害発生時のシステムのテレメトリデータを基に、根本原因の推論を自動で行うアプローチです。
個人ブログ記事では、2022年後半から立て続けに発表されているLLMを用いた障害診断手法を提案する主要な論文10本以上を取り上げ、それぞれ丁寧に解説しています。手法は大きく、1) LLMをドメイン特化のデータで追加学習するファインチューニングベース、2) 過去の類似障害のデータをLLMに提示して推論させる検索拡張言語ベース、3) 外部データやツールを利用して反復的に障害原因を絞り込むLLMエージェントベース、の3種類に分類されます。
ファインチューニングベースの手法としては、Microsoftの研究チームによる初期の論文や、個別システムのドメイン用語の理解を深めるOasisなどが取り上げられています。検索拡張言語ベースでは、障害発生中のシステムの状態を表すテレメトリデータをリアルタイムに参照して推論を行うRCACopilotやPandaなどを紹介しています。より発展的なLLMエージェントベースのアプローチとしては、LLMを頭脳としてデータ収集や環境操作を自律的に行うRCAgentやD-Botなどを解説しています。これらの手法は、熟練エンジニアが障害対応時に行う「推論→調査・操作→推論」のサイクルを模倣しており、高度な診断能力が期待できます。
また、障害診断だけでなく、要約の自動生成、修復コードの生成、信頼スコアの算出など、障害管理プロセス全体をカバーする研究も増えつつあります。従来のAIOpsの障害診断手法は、診断の全体の流れのうち、一部のステップに特化したものがほとんどでした。 具体的には、故障箇所を示すコンポーネントやテレメトリデータの属性名のランキングを出力するといったものです。一方で、LLMを用いた障害診断手法の中には、よりエンドツーエンドの診断を提供しているものがあります。例えば、D-Botという診断システムは、データベースの障害が発生した際に、準リアルタイムで診断レポートを出力します。そのレポートの中には、テレメトリデータから推察される障害の症状、障害の原因、障害の緩和策の提示まで可能なシステムとして設計されています。
調査記事の最後に、次の6点を今後の課題と展望として述べています。
- 障害時のシステム状態を効率的に取得・要約する「障害スナップショット」技術の確立
- トラブルシューティングガイドなどの診断プロセス知識の体系的管理
- LLMによる診断結果の説明性(Explainability)の向上と信頼性評価指標の確立
- 間のエンジニアとLLMの協調・連携方法の確立(Human in the Loop)
- 従来のタスク特化型のAIOps手法とLLMの適切な組み合わせによるハイブリッドシステムの設計
- オープンなLLMの活用推進と性能向上に向けた取り組み
調査の動機
さくらインターネット研究所では、以前より、主にクラウドを用いて展開されるオンラインサービスの信頼性に着目したソフトウェア工学分野であるSRE(Site Reliability Engineering)を研究しています。特に直近の数年はSREにおける障害管理(インシデント管理とも呼ばれる)に機械学習技術を適用するAI for SREをテーマに研究を続けてきました。先日公開した次の記事では、本テーマでの採録論文を紹介しました。
クラウドの障害診断の自動化に関する論文が国際ジャーナル「IEEE Access」に採録 – さくらインターネット研究所
我々の論文で採用した要素技術は、時系列データの平均シフトに基づく変化点検知やカーネル密度推定などの伝統的な統計的機械学習や時系列解析などの枠組みの範疇のものです。本論文で参照している関連研究では、深層学習の最先端の技術を用いた手法も一定数以上存在します。しかし、そのような研究の成果がその論文の評価環境以外で実用されている例をほとんど確認できていません。
一方で、昨今では、障害管理、特に障害の影響範囲や原因を特定する「障害診断」のタスクをLLMに解かせる論文がこの1年ほどで多数発表されています。同じソフトウェア工学分野でも、ソースコードの生成ほどLLMに向いたタスクではないため、論文数が他の分野と比べて多いわけではありません。しかし、論文の発表元の組織がMicrosoft、AWS、Alibaba、IBMなどのいわゆるビッグテック企業であることからも、障害管理の分野のゲームチェンジャーになりうる可能性を秘めています。特に、LLMエージェントベースのアプローチについては、障害診断全体のプロセスをカバーするため、利用者にとって魅力的なものになると考えます。
以上のような可能性がある一方で、LLMによる障害診断技術の世界は、さくらインターネット社内や海外も含めたソフトウェアエンジニアコミュニティにはほとんど知られていません。そこで、この分野の主要な論文を読んだ上で、今回、調査記事として整理してまとめました。
調査記事のフィードバック
調査記事を公開したのち、国内のソフトウェアエンジニアの方々を中心に、SNSを介して様々なフィードバックをいただきました。おもしろい、ワクワクするといったコメントをいただきました。また、LLMエージェントが身近なタスクのどれに向いているのかわからながったが、障害診断は確かに向いているように思えるといったコメントもいただきました。一方で、LLMの回答を推論と呼んで良いのか、といった根源的な疑義を提示されているケースもありました。分野の慣習として、学習済みの機械学習モデルが導く予測を推論と呼ぶことがあるため、推論という言葉をどのように解釈するか、LLMが行っているのは何なのかといった疑問は尽きません。
今後の研究
さくらインターネットは、現在、生成AI向けのGPUクラウドサービスにも注力しています。1本サービスを介して今後開発されるであろう生成AI、特にLLMを用いて、さくらインターネット自体のクラウドサービスをより良くすることができないか、と考えています。
その一環として、クラウドサービスの利用者が管理するアプリケーションの障害管理の自動化をLLMを用いて支援することが挙げられます。例えば、アプライアンス2に関連する障害を診断あるいは異常をデバッギングするための機能をアプライアンスに備え、診断結果を利用者に提供することも考えられます。
今後はこのような展開も念頭に置きながら、LLM for SREの要素技術を研究する予定です。
むすび
本記事では、SREのためのLLMの最新の研究動向記事を、さくらインターネット研究所の視点で改めて紹介しました。研究動向の詳細は、元の調査記事を読んでいただくとして、さくらインターネット研究所としてどのように研究に取り組んでいるかについての一端を知っていただければ幸いです。