第5章 — LLMアプリケーションの評価

公開日: 2026-04-18 最終更新日: 2026-07-05 バージョン: 1
第5章 — LLMアプリケーションの評価

第5章 — LLMアプリケーションの評価

LLM Primer V: 実運用のLLMアプリケーションを設計する を章ごとに紹介していくウォークスルー、第5回。assertEqual はLLM出力に対しては死んでいる、と認めた上で、テストの規律を、錨付きのジャッジ、RAG Triad、軌跡テストの上に再構築する回です。


なぜこの章があるのか

古典的なソフトウェアテストは、「正しい出力は特定の出力である」という前提の上に立っています — 関数は42を返し、文字列は "Hello, world" と等しく、JSONはフィクスチャに一致する。LLMシステムは、意味は等価だが文字列は違う言い換えを生み、この50年ソフトウェアテストを支えてきた完全一致アサーションは、最初の再生成で崩れます。チームはそこでBLEU、ROUGE、埋め込みコサインへ手を伸ばし、これらの指標が、大事なもの — その答えは正しいか、接地されているか、質問に答えているか — に対して人間の判断と弱くしか相関しないことに気づきます。第5章は、実際に効くものの上にテストの規律を再構築します。錨付きのLLM-as-a-judgeのルーブリック、RAG Triad、エージェントの軌跡テスト、そして本番のトレースが次のリリースを門番する評価セットを養う継続ループです。

ひとことで言うと: LLM評価は、確率的な出力を弁明可能な合否シグナルに変える規律である — 散文に対する錨付きジャッジ、検索系に対するRAG Triad、エージェントに対する軌跡テスト、そしてすべてが本番トレースから養われる。

5.1 評価ギャップとLLM-as-a-judge

評価ギャップとは、古典的なテストで測れるものと、LLM出力に実際に必要な測定との距離のことです。完全一致や参照文字列の指標は、言い換え中心のタスクでは面白い失敗のうち何も捕らえません。LLM-as-a-judgeがそのギャップを閉じる主戦力ですが、それを座興と隔てるのは2つの規律です。第一に、ジャッジのルーブリックは錨付きです。各スコア値には書き下された定義があり、理想的には例も付き、ジャッジが数字を思いつきで連想しないようになっています。第二に、ジャッジはスコアの前に理由を出します。理由を書かなければならないジャッジは、より一貫してスコアするからです。プログラムによるチェックはジャッジを補います — 決定論的に検証可能なもの、JSONがパースできるか、必須フィールドが揃っているか、禁止文字列が含まれていないか、応答長が範囲内か。ジャッジは万能ではなく、決定論的なチェックが届かない領域を覆うものです。

5.2 RAG Triad — 文脈・接地度・回答適合性

検索系に対して結晶化したパターンは、3つの頂点を独立にスコアすることです。文脈適合性は、取り出したチャンクが実際にクエリに関係しているかを問い、検索の失敗を生成の失敗から切り離します。接地度は、生成された回答が取り出した文脈から従っているかを問い、形状のバリデーションを通ってしまうハルシネーションを捕らえます。回答適合性は、回答がユーザーが実際に尋ねた質問に対応しているかを問います。独立にスコアされた3つの頂点は、失敗を局所化します — 低い文脈適合性は検索を指し、低い接地度はジェネレータを指し、低い回答適合性はルータか、隣接する別の質問に答えているシステムのどちらかを指します。RAGASはトライアドをバッチパイプラインとして運用可能にします。ジャッジモデルの品質がスコアの品質を支配するので、ジャッジ自体がチームが評価する部品になります。

5.3 フレームワークの棲み分けとエージェント回帰

3つのフレームワークが別々のニッチを占めています。RAGASは質問・回答対のデータセットに対してRAG Triadをバッチで走らせ、定期的なデータセット評価に向いた道具です。TruLensは本番トラフィックにフィードバック関数を貼り付け、トレース自体の上でトライアドを計算し、本番と評価のあいだのループを閉じます。DeepEvalは、pytestが単体テストを走らせるのと同じ形で、LLMテストをCIゲートとして走らせ、指標ごとに閾値を持たせます。エージェントはこの全部を3方向に拡張します — 軌跡スナップショットテストは、固定入力に対するツール呼び出し列の形状をアサートし、構造的なドリフトを捕らえます。不変量アサーションは、エージェントが禁じられたツールを呼ばず、必須の承認を飛ばさないことを検証します。ルーブリックテストは、軌跡自体を「その道筋は妥当だったか」でスコアします。正しい答えを間違った道で出したエージェントは、次のプロンプト変更一つで、間違った答えを同じ道で出すエージェントに変わります。軌跡テストはそれを捕らえる規律です。

覚えておきたいこと: 目的地だけでなく、道筋をテストせよ。間違ったツール呼び出しを経由して正しい出力を出したエージェントは、次のプロンプト調整で表面化する回帰の予備軍である。

この章を踏まえて

評価はサンプルとなる本番トレースを必要とし、CIゲートは守るべき本物の回帰を必要とします。継続的改善ループが働くのは、すべての実行のあらゆるステップ — モデル呼び出し、ツール呼び出し、検索結果、サブエージェントの跳躍、コスト、レイテンシ、ユーザーフィードバック — を捕捉するオブザーバビリティ層があるときだけです。第6章はその層です。OpenTelemetryとGenAIセマンティックコンベンションを歩き、LLMシステムに対して本当に効く指標、プラットフォーム選択、そして — 最も大事なこととして — 低スコアのトレースを次リリースを門番する評価セットに戻すエクスポートパイプラインを扱います。


次回 — 第6章: AIオブザーバビリティとトレーシング 評価もデバッグも可能にする土台 — 実行ごとに一つのネストされたトレースがあり、コストと品質が一級の属性として貼り付いている。

全体像を押さえたい方へ: 紙版の第5章は、錨付きルーブリックのジャッジ完全実装、文脈適合性と接地度のプロンプトを伴うRAGASパイプライン、DeepEvalのCI統合、そして具体的なアサーションを伴うエージェント軌跡テストパターンを歩きます。Amazonで『LLM Primer V』を見る →

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