第6章 — AIオブザーバビリティとトレーシング

公開日: 2026-04-19 最終更新日: 2026-07-05 バージョン: 1
第6章 — AIオブザーバビリティとトレーシング

第6章 — AIオブザーバビリティとトレーシング

LLM Primer V: 実運用のLLMアプリケーションを設計する を章ごとに紹介していくウォークスルー、第6回。ユーザークエリを要求ログではなく因果の木として扱い、その木が可読になるためにトレースすべきものを示す回です。


なぜこの章があるのか

LLMシステムの一つのユーザークエリは、木のように分岐します。クエリの書き換え、2つのインデックスに対して3回の検索呼び出し、再ランク、プランナ呼び出し、4回のツール実行、要約器、そして最終生成。この木を「要求受信、応答送信」に潰した瞬間、真相は消えます。ユーザーが「答えが間違っていた」と苦情を上げたとき、チームは、検索が正しいチャンクを外したのか、プランナが間違ったツールを選んだのか、ツールが間違ったデータを返したのか、それともジェネレータが与えられた文脈を無視したのかを言えなくなります。第6章はこの形に合わせてオブザーバビリティを再構築します。古典的な分散トレーシングが土台、OpenTelemetryのGenAIセマンティックコンベンションがモデル呼び出しを一級市民にする拡張、そしてLLM固有の指標 — TTFT、TPOT、呼び出し当たりコスト、ジャッジスコア — が、トレースを「チームがそれを目安に運用できるもの」に変えます。

ひとことで言うと: LLMオブザーバビリティは、分散トレーシング+GenAIセマンティックコンベンション+小さな指標群 — TTFT、TPOT、コスト、品質 — であり、そして本番トレースを次リリースの評価セットに変えるエクスポートパイプラインである。

6.1 要求ログから因果トレースへ

移動は、平坦な要求ログから、ネストされたスパンへ、です。OpenTelemetryとGenAIセマンティックコンベンションは、LLM呼び出し、埋め込み、検索、ツール実行に対して、可搬でプロバイダに依らないスパン形状を提供します。エージェントループはルートスパンになり、各反復が子スパンになり、あらゆるLLM呼び出し・ツール呼び出し・検索がその下にネストされます。マルチターンのセッションは木の木になり、スパンリンクがターンをまたぐ状態 — ターン3の要約をターン7がまだ頼りにしている、そういう関係 — をモデル化します。価値は最初のデバッグで現れます。「そのクエリに対してリトリーバはどのチャンクを引き出し、ジェネレータはそれを実際に引用したか」という、平坦なログでは考古学抜きに答えられない問いが、一つのトレースを見れば済む問いに変わります。スパン形状はプロプライエタリな形式ではなくOpenTelemetryの標準なのでベンダー間で可搬であり、LangSmithからLangfuseへの切り替えは書き直しではなく、ルーティングの変更になります。

6.2 効いてくる指標 — TTFT、TPOT、コスト、品質

総レイテンシだけでは足りません。最初のトークンまでの時間(TTFT)は、ストリーミング応答の体感速度を支配します — ユーザーは最初の文字を待ち、最後を待ちません — TTFTはスパン上、総レイテンシと並んで乗るべきです。出力トークン当たり時間(TPOT)は長文応答の体感を支配し、ユーザーが「終わるのが遅かった」というときに感じているものです。コストはスパンに一級の属性として乗るべきで、バージョン管理された価格表に基づいて呼び出しサイトで計算し、価格が変わった後も過去のトレースが真実を語れるようにします。品質シグナル — ユーザーからのthumbs-down、評価パイプラインからのジャッジスコア、ラッパーからのフォールバック発動 — はトレースに属性として貼り付き、それによってチームは、悪い答えを生んだ具体のモデル呼び出しと検索と対応づけできます。指標はダッシュボードに載りますが、より高い成果は「トレースごとにクエリ可能である」ことです。回帰を「高コスト、低ジャッジスコア」で絞れば、問題のパスが即座に浮上します。

6.3 プラットフォームとループを閉じる

4つのプラットフォームが現状の地勢を占めています。LangSmithはLangChain統合が最も摩擦の少ない選択で、アプリがすでにLangChainにあるなら向いています。Langfuseはオープンソースの自ホスト選択肢で、規制配備や、トレースを自分の境界内に留めておく必要のある組織に合います。Arize Phoenixは埋め込み解析が強く、診断的な問いが「どのクエリがベクタ空間の間違った領域に着地しているか」であるときの道具です。Helioneはプロバイダ APIの前にプロキシとして働き、統合が最も軽い代わりに、見えるのはLLM呼び出し層だけです。選択は運用上のものであり、質的な優劣ではありません — ほとんどは同じ核形状を晒します。より価値の高い仕事はエクスポートパイプラインです。ネガティブフィードバックのトレース、低ジャッジスコア、フォールバック発動が評価候補ケースになり、キュレーションされて評価セットに入り、次のリリースを門番する。そのループが、本番を開発の教師に変えます。

覚えておきたいこと: 「壊れたことは分かる」と「どのステップで壊れたかまで分かる」の差は、事故が起きる前にトレーシングが仕込まれていたかどうかで決まる。コストはトレースの上に乗せる別の指標に過ぎず、呼び出しサイトで計算し、レイテンシと並べて刻印すべきものだ。

この章を踏まえて

トレースはセキュリティ事象が可視になる場所でもあります。成功したプロンプトインジェクションは、トレース木の中の想定外のツール呼び出しに見えます。データ流出は、モデルがその後で指示として従った検索スパンに見えます。漏洩したシステムプロンプトは、テキストが上のプロンプトとありえないほど重なる補完スパンに現れます。第7章は、同じトレーシングの土台をセキュリティの規律へ向けます — 2025年中盤の語彙としてのOWASP LLM Top 10、その語彙が名指ししようとする「直接/間接インジェクション」の分類、そして「権威は信頼の出所に一致させる」という原則を強制する4層の緩和マトリクス。


次回 — 第7章: LLMセキュリティとガードレール トレーシング層が問える形にした問い — 「何が起こるべきだったか、誰がそれを起こしてよかったのか」 — に答えるセキュリティの姿勢。

全体像を押さえたい方へ: 紙版の第6章は、OpenTelemetryのGenAIスパン属性を詳しく歩き、LangfuseとLangSmithのSDK統合を具体コードで示し、バージョン管理付きのコスト帰属テーブル、そしてトレースから評価へのエクスポートパイプラインを扱います。Amazonで『LLM Primer V』を見る →

下田 昌平
下田 昌平
開発と設計を担当。1994年からプログラミングを始め、今もなお最新技術への探究心を持ち続けています。