なぜLLMを組み込むと運用が難しくなるのか?
LLMを既存のアプリケーションに組み込んだ後の運用フェーズを想像してほしい。
さっきまで問題なく動いていたのに、“なぜか”突然レスポンスが跳ね上がった。同じ入力を投げているのに、“なぜか”違う結果が返ってくる。コードも設定も変更しておらず、デプロイもしていないのに、“なぜか”挙動が揺らいでしまう。
このような“なぜか”が積み重なり、バグだとも障害だとも言い切れない状態に直面する。結果、「LLMの挙動によるものと思われます」と、思わず自分でもツッコミを入れたくなるような報告をするしかなくなり、エンジニアは窮地に立たされるのだ。
では、なぜLLMをシステムに組み込んだ途端に、障害対応が難しくなるのだろうか。
「まだ触り始めたばかりだから」「うちのチームにはAIの専門家がいないから」「もっと勉強してAIに対する理解を深めれば解決するはずだ」などと思いたくなるかもしれないが、「それは大きな誤解であり、従来のシステムとLLMでは、前提となるルールが異なるからだ」と萩野氏は断言する。
従来のシステムでは、入力が同じであれば出力も必ず同じだった。処理はコードで書かれており、ロジックは決定的。挙動は必ず再現できた。だからこそ、何かしらの障害が発生したときには「再現し、原因を特定し、修正する」という戦い方が通用した。
だが、LLMでは、そうはいかない。挙動は確率的で、出力には揺らぎがあり、モデルの内部は外から見えないブラックボックスだ。従来のシステムとは前提が異なる以上、「再現し、原因を特定し、修正する」というこれまでの戦い方は、通用しなくなる。だから難しいのだ。
「現場では、『ログはあるけれど、意味がわからない』『トレースはあるけれど、LLMの中が見えない』といった声がよく聞こえてくる。これは障害対応で一番怖い“あるけれど、わからない”状態だ。そうなると、『まぁ、LLMだから……』と報告せざるを得ないが、これはただの敗北でしかない」と語る萩野氏は、次にAI時代のオブザーバビリティのあり方に言及した。

