Please enable JavaScript in your browser.

Fujitsu ナレッジグラフ拡張RAG技術のご紹介 #5 Fujitsu ナレッジグラフ拡張RAG for LA (Log Analysis) - fltech - 富士通研究所の技術ブログ

fltech - 富士通研究所の技術ブログ

富士通研究所の研究員がさまざまなテーマで語る技術ブログ

Fujitsu ナレッジグラフ拡張RAG技術のご紹介 #5 Fujitsu ナレッジグラフ拡張RAG for LA (Log Analysis)

こんにちは。Fujitsu Research of India の Supriya と、人工知能研究所の大浦です。

富士通では企業における生成AIの活用促進に向けて、多様かつ変化する企業ニーズに柔軟に対応し、企業が持つ膨大なデータや法令への準拠を容易に実現する「エンタープライズ生成AIフレームワーク」を開発し、2024年7月よりAIサービス Fujitsu Kozuchi (R&D) のラインナップとして順次提供を開始いたしました。

本記事では、このフレームワークを構成する「Fujitsu ナレッジグラフ拡張RAG for LA (Log Analysis)」についてご紹介いたします。(*1

エンタープライズ生成AIフレームワークは、企業のお客様が特化型生成AIモデルを活用する上で生じる、

  • 企業で必要とされる大規模データの取り扱いが困難
  • 生成AIがコストや応答速度をはじめとする多様な要件を満たせない
  • 企業規則や法令への準拠が求められること

といった課題を解決する以下の技術群で構成されています

  • Fujitsu ナレッジグラフ拡張RAG技術
  • 生成AI混合技術
  • 生成AI監査技術

本連載では、上記のうち「Fujitsu ナレッジグラフ拡張RAG技術」についての技術紹介を連載形式にてさせていただきます。皆様の課題解決のヒントとなれば幸いです。また記事の最後には本技術を試す方法についてもお知らせいたします。

大規模データを正確に参照できない生成AIの弱点を克服する Fujitsu ナレッジグラフ拡張RAG技術

生成AIに社内文書などの関連文書を参照させるための既存のRAG技術では、大規模データを正確に参照できない課題があります。我々はこの課題を解決するため、既存のRAG技術を発展させ、企業規則や法令、企業が持つマニュアル、映像などの膨大なデータを構造化するナレッジグラフを自動作成することで、従来は数十万、数百万トークン規模だったLLMが参照できるデータ量を1,000万トークン以上の規模に拡大できる Fujitsu ナレッジグラフ拡張RAG(以下、KG拡張RAG)技術を開発しました。これにより、ナレッジグラフから関係性を踏まえた知識を生成AIに正確に与えることができ、論理推論や出力根拠を示すことが可能です。

本技術は対象となるデータや活用シーンに応じて、5つの技術から構成されます。

  1. Root Cause Analysis (公開中)
    本技術はシステムのログや障害事例のデータをもとに、障害発生時のレポートを作成し、類似する障害事例をヒントに対策案を提示いたします。
  2. Question & Answer (公開中)
    本技術は製品マニュアルなどの膨大なドキュメントデータを対象に、全体を俯瞰した高度なQ&Aをおこなうことを実現します。
  3. Software Engineering (公開中)
    本技術はソースコードをデータとして、ソースコードを理解するだけでなく上位の機能設計書や要約を生成、モダナイゼーションを可能にします。
  4. Vision Analytics (公開中)
    本技術は映像データから、特定の事象や危険行為などを見つけ出し、対策の提示までおこなうことが可能な技術です。
  5. Log Analysis (本記事)
    本技術はシステムログのファイルを自動で分析し、障害の原因特定や異常検知、予防保守に関する専門性の高い質問に回答することが可能な技術です。

本記事では、5. Log Analysis(以下、LA)について詳しく紹介させていただきます。

Fujitsu KG拡張RAG for LA について

はじめに

オンラインショッピングサイトの運営では、サーバのキャッシュ設定を一つ間違えるだけで、ほんの数秒で購入手続きを行うパイプライン処理に影響が発生し、最悪の場合システムダウンを引き起こしてしまいます。システムの運用状況を示すダッシュボードには、HTTPリクエストに対する500エラーが急増しているというメッセージが表示されますが、そのエラーがなぜ発生したのか、システムのどこを起点として発生しているのか、という情報が表示されることはほとんどありません。そして、その間にオンラインショッピングサイトの利用者は購入することを諦めてしまう可能性があり、社内では問題解決に向けた調査や検討に時間が費やされます。その結果、ダウンタイム1分あたり推定$5,600の損失が発生すると言われています。(Gartner社調べ)
従来のログ検索ツールは数百万行におよぶログを1行ずつ独立したテキストとしてインデックス化しますが、その際にログ同士の因果関係の分析につながる情報が失われてしまいます。Fujitsu KG拡張RAG for LAは、そうした従来の常識を覆します。本技術では、ログの各行を時刻情報を考慮したハイパーグラフ(Temporal Hypergraph)に変換し、複雑なログデータを整理して根本原因を特定します。これにより、問題が発生してから原因を特定し対処するだけでなく、問題発生の兆候を捉え、事前に対処することも可能になります。

Temporal Hypergraph について

ここでは、Temporal Hypergraph について紹介します。Fujitsu KG拡張RAG for LA では、この Temporal Hypergraph をナレッジグラフとして保持します。

ノードとハイパーエッジ: ログの各行から「Timestamp=14:02:01, Level=ERROR, Service=Cart, Message=AUTH_FAIL...」といった形で情報を抽出し、それぞれの値をノードとして扱います。各行で生成されたノードの集合を1つのハイパーエッジとして結びつけることで、複数のエンティティを一度にリンクすることができる構造を形成します。複数行にわたって共通して現れる値は1つのノードとして扱うことで、そのノードはハイパーエッジ同士の共有接点となり、関連性の高いログを見つけるのに役に立ちます。

時系列情報の保持: 通常のグラフとは異なり、各ハイパーエッジはタイムスタンプを保持します。これにより、Temporal Hypergraph はイベントの発生日時と内容を保持し、イベントがどのような順番で展開したかを正確に観測することができます。

Temporal Hypergraph の重要性: 問題とその原因が1対1であることはめったにありません。例えば、データベースロックによってキューが溜まり、キューが過負荷状態になったことでシステムがダウンすることがあります。ハイパーエッジはこのような連鎖的な関係を一目で捉えることを可能にします。障害がマイクロサービス全体に広がるとき、Temporal Hypergraph はその波及効果を明らかにしてくれます。

ログの各属性をノードとして抽出し、各行のノードをハイパーエッジとして結合する

質問から回答が生成されるまでの流れ

次に、ナレッジグラフを活用して、大規模言語モデルがオペレータの質問に回答するまでの流れについて紹介します。

  1. 質問文に近いシードの検出(Seed Discovery): オペレータがシステムに質問文を入力すると、システム内部ではその質問文とナレッジグラフのすべてのノードを同じベクトル空間に埋め込み、意味的に近いノードを選択します。そしてそれらのノードを起点(シード)として、後続の回答生成につながるログの検索を実行します。
  2. 複数指標でのハイパーエッジのランキング付け(Multi-Stage Hyperedge Ranking): シードからノードを辿っていき、拡張されたPersonalized PageRank という指標を使い、質問文との意味的な近さや、他ノードとの関連度を評価していきます。そして、その評価結果をもとに、各ハイパーエッジをランキングしていきます。
  3. 時系列情報を保持した大規模言語モデル入力(Time-Preserving Unchunking): 上位にランク付けされたハイパーエッジのみが選択され、元のログテキストの状態で質問文とともに大規模言語モデルに入力されます。モデルは8BのLlama 3のような比較的軽量なモデルでも十分です。大規模言語モデルは、時系列順に整理されたログを使って質問に対する回答を生成するため、ハルシネーションがない正確な説明を生成します。

例えばオペレータが「なぜ14:02にカートのチェックアウトが失敗したの?」と質問すると、「14:01:29にキャッシュメモリが95%に達し、Eviction Storms(*2)を引き起こしました。14:02:01に古いトークンがCartサービスに伝播し、チェックアウトコールの87%でAUTH_FAILエラーを発生させました。」といった回答が出力されます。それぞれの文章がナレッジグラフの特定のノードに対応しており、明確で深いトレーサビリティを即座に提供することができます。

Temporal Hypergraph と大規模言語モデルを活用したログ分析の流れ

既存のログ検索ツールに対する優位性

既存のログ検索ツールを用いてログ分析を行う場合と、Fujitsu KG拡張RAG for LA を用いてログ分析を行う場合を比較します。

一般的に、ある問題が発生したときに、その事象と原因が1対1で紐づくことは少なく、ドミノ倒しのように連鎖的に事象が発生していることがほとんどです。既存のログ検索ツールを使ってログ分析を行う場合、オペレータは検索条件やフィルタ条件を考える必要があり、連鎖的な事象を解明するために繰り返し検索を実行する必要があります。そして、検索結果を確認し、タイムスタンプの情報などを頼りに因果関係を推定しなければなりません。この作業はとても時間と手間がかかる上、最終的に何が根本原因なのかわからない場合もあります。

既存のログ検索ツールを使用する場合

一方 Fujitsu KG拡張RAG for LA を使用してログ分析を行う場合は、オペレータが自然言語で質問文を入力すると、システム内部で関連するログを自動的に抽出し、多段になった因果関係を解き明かした上で、回答が出力されます。

Fujitsu KG拡張RAG for LA を使用する場合

以下の表は、既存のログ検索ツールの一つである Elasticsearch を使ってログ分析を行う場合と、Fujitsu KG拡張RAG for LA を使ってログ分析を行う場合の比較を示しています。検索ツールはピンポイントで情報を検索する用途では優れています。しかし、どのような問題が発生したかだけでなく、なぜ問題が発生したのかを求める場合は、Temporal Hypergraph を使った Fujitsu KG拡張RAG for LA のほうが優れています。

比較観点 Elasticsearch Fujitsu KG拡張RAG for LA
時間的な整合性 発生時刻順ではない結果が表示されることがあり、オペレータが結果を並べ替えて理解しなければいならないことがある Temporal Hypergraph を用いて、時系列的な順序を考慮して回答を生成する
多段の因果関係 1対1の関係を見つけることができるが、1対多のカスケードな因果関係を説明できない 影響する全てのログを結びつけて、1対多のカスケードな因果関係を説明できる
ノイズやアラート 閾値による制御のため、多くの過検出が発生することがある 拡張された Personalized PageRank によって重要なログのみを見つけ出し、回答を生成する
オペレータの負荷 手動でクエリ、フィルタ、ダッシュボードを作成する必要がある 根本原因の仮説が出力されるため、オペレータが検索を行う必要はない
長期的なログの分析 異常検知を行う際の集計間隔は最大で24時間 時間枠に制限はなく、1か月前の変動を本日発生した障害に結びつけることも可能

Fujitsu KG拡張RAG for LAによって得られる価値

お客様の現場に Fujitsu KG拡張RAG for LA 適用して、以下のような効果を得られることを実証しました。

  • 平均検知時間(MTTD)を75%短縮 – 顧客からクレームを受ける前に、システムの一時的な機能低下を検知して対処できるようになりました。
  • 事後分析(Post-Mortem)が3倍高速化 – 根本原因分析を1時間以内に完了できるようになり、エンジニアがイノベーション業務に集中できる時間を確保しました。
  • 800万ドルの収益保護 – あるFinTechクライアントは、週末のシステム停止時間を40%削減し、取引が最も活発な時間帯の稼働時間を増やすことができました。
  • 不要な呼び出しが50%減少 – 運用スタッフから、不要な呼び出しが減り、真に対処すべき問題だけ通知されるようになったとの報告を受けました。

これらは、既存の運用に影響を与えることなく実施されました。実行環境には一般的なGPUが搭載されており、Kafka、S3、またはElasticインデックスが直接接続されます。

自律的で安定したシステム運用へ

これまでは、障害が発生してから原因を特定して対処するのが当たり前でしたが、今後ログ分析技術が進歩するにつれて、障害の発生を予測して事前に対処することが当たり前になっていくと考えています。Fujitsu KG拡張RAG for LA ようなログ分析を行う仕組みと、次のアクションを判断して実行するエージェントが協調することで、自律的に障害の兆候を検知して事前に対処するシステムが実現されていくかもしれません。このような技術の進歩により、企業はシステムの安定性を向上させるだけでなく、運用コストの削減や効率化を図ることができるようになるでしょう。

Fujitsu KG拡張RAG for LAを試してみませんか?

本技術は、富士通が研究開発した先端AI技術を迅速に試すことができるプラットフォーム Fujitsu Kozuchi において、コア技術単位のソフトウェア部品「AIコアエンジン」の一つという位置付けで、"Fujitsu ナレッジグラフ拡張RAG for Log Analysis"という名称のWebアプリとしてリリースされています。

下図は本Webアプリの画面例を示しています。最初にログファイルをアップロードしてナレッジグラフを作成します。そして、Log Analysis画面を開いてチャット形式で質問を入力するだけで、詳細な分析結果を得ることができます(*3)。もしこの技術にご興味をもっていただけた場合は、ぜひお試しください。

ログファイルのアップロードとナレッジグラフの作成を行う画面
チャット形式でログ分析を行う画面

さいごに

この記事の技術やデモアプリは、以下のメンバーで開発を行いました。この場を借りて紹介させていただきます。

  • Fujitsu Research of India: Supriya Bajpai, Chandrakant Harjpal, Niraj S.Kumar, Athira Gopal
  • 富士通研究所 人工知能研究所: 大浦 淳貴, 大川 佳寛, 菊月 達也, 小川 雅俊

*1:RAG技術:Retrieval Augmented Generation。生成AIの能力を外部データソースと組み合わせて拡張する技術。

*2:リソース不足により処理Podが排除される現象。

*3:本記事執筆時点で、質問の入力、および回答の出力は英語にのみ対応しております。