LLMアプリケーションのオブザーバビリティ

Observability 山村 悟史

生成AIを活用したLLMアプリケーションが急速に普及する中、それらのシステムの安定運用であったり応答の信頼性の確保の重要性が高まっています。この記事では、どのような課題があり、どうやって解決できるかについて解説します。

LLMアプリケーションの主要な課題

LLMアプリには、例えば以下のように従来のITシステムとは異なる特有の課題があります。

これらの課題はビジネスに直接的な影響を与えます。障害発生時の調査コストとユーザー満足度低下であったり、トークンの予測困難性によるコスト超過、または攻撃や不適切な回答によるレピュテーションリスクやコンプライアンス違反が考えられます。

LLMアプリについても通常のITサービスと同様に オブザーバビリティ が必要です。オブザーバビリティによる適切な対策により、これらの課題を克服し、安定したサービスを提供できます。

生成AIオブザーバビリティ

LLMアプリのオブザーバビリティを実現するためには、次のような点での対策が必要です。

Splunk Observability Cloudは、これらの要件を満たすエンド・ツー・エンドのオブザーバビリティを提供する包括的なソリューションです。

Splunk Observability Cloudによるエンド・ツー・エンドのオブザーバビリティ

Splunk Observability Cloudは、フロントエンドからバックエンド、そしてインフラまで幅広くカバーするオブザーバビリティソリューションです。

主要なコンポーネントと実現できる機能は以下の通りです。

モニタリング箇所
機能名
概要
実現できる機能
フロントエンド
Synthetic Monitoring
定期的なユーザー操作シミュレーション
プロアクティブなUX劣化の検出とトラブルシューティング
RUM (Real User Monitoring)
実ユーザーの操作監視
  • 実ユーザーのUX劣化の検出とトラブルシューティング
  • セッションリプレイによるユーザー導線の調査
バックエンド
APM (Application Performance Monitoring)
アプリケーションレイヤーの監視
  • OpenLITのようなOpenTelemetry互換のオブザーバビリティSDKを利用可能
  • LLMやベクトルDBへのクエリ、その他API、内部処理のエラー、ボトルネック発生個所の特定
  • トークン使用量、プロンプトと応答の取得の可視化
インフラ
IM (Infrastructure Monitoring)
インフラレイヤーの監視
  • サーバーレス、コンテナ、DBなどのリソース監視
  • トークン使用量の可視化と異常検出含むアラート

主要なコンポーネントと実現できる機能

いくつか詳細に見てみましょう。例えばAPMでは、LLMアプリで使用しているベクトルDBやLLMサービスの全体像とレイテンシーの高い箇所、エラー発生個所が即座に特定され、問題の検出ならびに問題発生個所の特定を即座に行えます。

APM

APMウォーターフォールチャート

なお、Splunk Observability Cloudの特長として ノーサンプリング が挙げられます。つまり、あらゆるユーザーのトランザクションの調査が可能であるということです。ユーザーによってプロンプトが異なると応答も異なってくるLLMアプリにとって全てのトランザクションを調査可能にすることは重要であると思います。

IMを使うことでトークン使用量やコストを可視化することもできます。これをもとに機械学習を用いて突発的なトークン使用量の増加を検知したり、将来予測により許容上限値に近づいた時にアラートを発報することもできます。

IM

LLMオブザーバビリティを実現すると

LLMオブザーバビリティを実現することで、組織は複数の重要なメリットを得ることができます:

  1. プロアクティブな問題検出:問題が大きくなる前に察知し、対処が可能に
  2. 根本原因特定の時間短縮:エンド・ツー・エンドの可視性により問題箇所を迅速に特定
  3. LLMコスト最適化:トークン使用量の可視化と監視により無駄なコストを削減

これらの利点により、高性能かつ高効率なLLMシステムを実現でき、ユーザー満足度を高めながらも積極的な機能改善を含む「攻め」のリリースが可能になります。オブザーバビリティは単なる監視ツールではなく、ビジネス価値を高めるための戦略的な投資と言えるでしょう。

補足:OpenLITについて

OpenLITは、オブザーバビリティのためのOpenTelemetry互換のPython/Typescript SDKです。シンプルなコード追加で多種のLLM、ベクトルDBへのトランザクションのトレース取得の他、LLMやGPUのメトリクスなども取得可能です。

このようにコードに二行追加するだけで始められます。

Python
import openlit
openlit.init(otlp_endpoint="YOUR_OTEL_ENDPOINT")

更に、アプリの健全性以外にも、応答評価機能(Hallucination、Bias、Toxicityの検知)、ガードレール機能(Prompt Injection、Sensitive Topicsの検知、Topics Restriction)も同様にシンプルなコード追加で対応できます。

OpenLITを通常のOpenTelemetry SDKと組み合わせることで、LLM関連のトレースだけでなく、その他のシステムコンポーネントのトレースやメトリクスも取得でき、アプリケーション全体の網羅的なトランザクション可視化が実現します。

SplunkによるLLMレジリエンス

LLMアプリのレジリエンスを実現するためには、オブザーバビリティとセキュリティの両面からのアプローチが不可欠です。Splunk Observability Cloudとデータ解析基盤であるSplunk Core (Cloud / Enterprise) を組み合わせることで、これを実現することができます。

また、Splunk Coreではあらゆるログを分析することが可能なため、例えばトークン使用量の多いプロンプトと応答を抽出しアプリを改修したり、または攻撃をしかけている送信元IPアドレスを抽出しブロックしたりするなどのアクションに繋げることができます。

これらのソリューションを統合することで、LLMアプリケーションの安全性、安定性、効率性を総合的に確保することが可能になります。

まとめ

LLMアプリケーションの普及が進む中、その安定性、安全性は企業にとって重要な課題となっています。その課題の解決のためにはアプリのフロントエンドからバックエンドまで、LLM特有の情報も含めた可視性が不可欠です。Splunkであればエンド・ツー・エンドのオブザーバビリティの他、セキュリティ観点の調査も可能であり、統合的な可視性を高めることで、潜在的な問題を早期に特定し予防的な対策を講じることができます。

LLMアプリのオブザーバビリティにご関心のある方は、ぜひご連絡ください

関連記事

SLOのエラーバジェットを追跡するSignalFlowの活用
オブザーバビリティ
7 分程度

SLOのエラーバジェットを追跡するSignalFlowの活用

SignalFlowを活用して、複数のSLOのエラーバジェットをまとめて追跡する方法をご紹介します。SignalFlowでアラートとグラフを作成し、SLO/SLxの可視化を実現することが可能です。
Splunk ITSI Content Pack for Cisco Data Center Networkingでネットワークのレジリエンスを実現
オブザーバビリティ
3 分程度

Splunk ITSI Content Pack for Cisco Data Center Networkingでネットワークのレジリエンスを実現

Splunk ITSI Content Pack for Cisco Data Center Networkingを活用することで、フルスタックのネットワークレジリエンスを実現できます。
ネットワークは多くを語っているが、誰も聞いていない
オブザーバビリティ
8 分程度

ネットワークは多くを語っているが、誰も聞いていない

どんな障害でも、その全容を明らかにするためのデータはすでに存在しています。問題は、ネットワーク全体を横断的に把握できる包括的な可視性がないのです。Splunk ITSIは、あらゆるインフラ層からのテレメトリを単一のサービス健全性スコアに統合することで、この問題を解決します。