LLM as a Judgeの運用知見:AIエージェント開発で『暗黙知 → 評価指標 → 自動評価』をどう繋いだか
- MLOps
- データ分析
- 生成AI
- 自動化
- AI開発
AIエージェント開発でLLM as a Judgeを機能させるには、評価AIを用意するだけでは不十分です。人間の暗黙知を評価基準へ落とし込み、実行ログをテストケースとして蓄積し、評価器であるLLM自体のズレも継続的に点検する運用設計が必要です。
こちらの記事では、AIがAIを評価する仕組みである「LLM as a Judge」の基本的な考え方を紹介しました。しかし、実際にLLM as a Judgeを導入するのはそう簡単ではありません。
本記事では、dotDataで開発した「UseCase Advisor(UCA)」を例に、LLM as a Judge導入を成功させ、効率よく運用するための知見を紹介します。特に、次の3点に焦点を当てます。
LLM(大規模言語モデル)の登場により、AIエージェントの開発は驚くほど容易になりました。優れたAPIやフレームワークを組み合わせれば、数日、場合によっては数時間でプロトタイプを作ることも珍しくありません。
しかし、プロトタイプが動くことと、商用サービスとして安心して提供できることは別の話です。実際には、多くの開発プロジェクトで最後の20点を詰める作業に最も時間がかかります。
dotDataが開発しているAIエージェント「UseCase Advisor(UCA)」でも同じでした。
UseCase Advisorは、dotDataのデータ分析プラットフォーム「dotData Insight」に搭載されたAIエージェントです。dotData Insightは、分析に詳しくないビジネスユーザーでも高度な分析が可能な分析プラットフォームで、独自のAIが業務データから重要なパターンを自動探索し、ビジネスKPIに関連するインサイトを発見します。
UseCase Advisor(以下、UCA)は、その中でも「データを活用したいが、どんなテーマで何を分析すべきか分からない」というビジネスユーザーの悩みに向き合う壁打ちツールです。分析に着手する前に、ユーザーの業務課題を対話形式で深掘りし、分析ユースケースを整理。具体的な分析テーマの提案からKPI・評価指標の設定まで、データ分析の企画書としてとりまとめます。

このようなAIエージェントでは、一度のプロンプトで回答が完結するわけではありません。ユーザーへの問診、追加質問、回答内容を踏まえた企画書の修正など、複数回の対話を経て最終的な成果物を生成します。そのため、ユーザーの入力や対話の流れによって生成結果が大きく変わります。
従来のソフトウェアのように、「この入力なら、この出力が正しい」というテストケースだけで品質を保証することはできません。
その結果、開発現場では次のような課題が生じます。
UCA開発でも当初は、開発者が数件の対話を確認して品質を判断する、いわゆる「バイブスチェック」に頼らざるを得ませんでした。しかし、この方法では品質改善を継続的に進めることはできません。
そこで導入したのが、LLMにより評価を自動化する仕組みであるLLM as a Judgeです。
しかし、LLM as a Judgeの導入には、大きく2つの課題がありました。1つは評価基準をどう具体化するか、もう1つは評価データをどう育てるかです。
LLM as a Judgeで評価用のAI(評価AI)に人間の評価を代替させるには、「何を良い出力と判定するか」を定義した評価基準(ルーブリック)の定義が不可欠です。評価基準が曖昧なままでは、LLMによる自動評価も一貫した結果を返せません。
一方で、実際のAI開発では、必要となる評価基準をあらかじめすべて定義しておくことは現実的ではありません。UCAの開発では特に、「適切な問診」「質の高い企画書」といった判断基準の多くが分析コンサルタントが持つような暗黙知であり、開発初期の段階では何を評価項目として定義すべきか自体が明確ではありませんでした。
そのため重要なのは、最初から完璧な評価基準を作ることではなく、ユーザーフィードバックや改善要望をもとに、人間の暗黙知を少しずつ評価基準へ落とし込み、継続的に評価基準を強化していくことです。
AIとユーザーの対話が複雑になると、テストケースは無限の組合せを持ちます。分析企画書の作成では、ユーザーへの問診、回答内容に応じた追加質問、フィードバックを踏まえた企画書の修正など、複数の対話プロセスを経て最終的なアウトプットを生成します。そのため、エージェントへの入力パターンは非常に多岐にわたります。ユーザーの業種や課題だけでなく、回答の粒度や曖昧さ、途中で寄せられるフィードバックによっても、エージェントがたどる経路や生成結果は大きく変化します。
こうした無数の入力パターンを、あらかじめテストケースとして網羅することはできません。実運用で得られるログを効率よく継続的に評価データとして蓄積し強化するプロセスが必要です。
そこで、AI機能の開発では、最初から高品質なシステムを作り込むのではなく、検査不足でも利用可能な状態を作った後早くリリースし、社内の関係者やテストユーザーから実際のフィードバックを収集することが重要です。これにより、「どのような出力が望ましいのか」「どのようなケースで失敗しやすいのか」といった、品質そのものを定義するための情報を蓄積し、評価基準・テストケース、AIエージェントの三つを改善する3つのサイクルを回します。

ユーザーから寄せられる「分かりにくい」「期待と違う」といったフィードバックは、そのままではLLM as a Judgeの評価基準として利用できません。重要なのは、その背景にある原因を分析し、評価可能な観点へ分解することです。
例えば、ユーザーテストで「UCAの問診が難しくて、どう答えていいか分からない」というフィードバックが寄せられたケースを考えます。このフィードバックだけでは、評価基準としては曖昧です。
そこで「何が難しさを生んでいるのか」を分析し、原因を評価可能な観点へ分解する必要があります。この例の場合、
このようにフィードバックを具体的な観点へ分解することで、「用語の平易性」「意図とガイドの提示」「認知負荷の軽減」といった評価基準を追加できます。このように、実際のフィードバックや改善事例を通じて評価観点を継続的に追加・見直し、人間の暗黙知を少しずつ評価基準として資産化していくことが重要です。
LLM as a Judgeの価値は、単にスコアの割り当てを自動化することではなく、このような改善サイクルを通じて評価基準そのものを継続的に管理できる点にあります。こうして言語化された評価基準をLLM as a Judgeの評価プロンプトに組み込むことで、新しい基準が反映されます。人間が毎回目視で判断していたプロセスを、AIが一貫した基準で担えるようになります。

実運用で得られた実行ログを継続的に収集し、失敗したケースや判断に迷ったケース、特徴的な対話をテストケースとして保存・管理することが重要です。こうして蓄積されたテストケースは、一度限りのログではなく、将来の品質保証に活用できる評価資産になります。AIエージェントを改善した後も同じケースを繰り返し評価することで、品質向上の確認だけでなく、劣化の検知にも利用できます。

評価基準とテストケースが整備されると、AIエージェントを改善するたびに、その効果を継続的かつ効率的に評価できるようになります。AIエージェントを改善した際には、過去に保存した同じテストケースに対して再度評価を実施することで、改善したかった項目が実際に向上しているかを確認できます。
一方で、ある機能を改善した影響で、これまで問題なく動作していた別のケースの品質が低下してしまうこともあります。例えば、回答を簡潔にする改善によって必要な説明まで削られてしまったり、専門用語を分かりやすく説明する改善によって別のケースでは冗長な回答になったりすることがあります。このような意図しない品質劣化(デグレード)を早期に検知し、修正できることも、テストケースを蓄積する大きな価値です。
さらに近年では、LLM as a Judgeによる評価結果を利用して、プロンプトやエージェント全体を自動的に改善する技術も登場しています。例えば、DSPyでは、あらかじめ定義した評価指標(Metric)を目的関数として、プロンプトやFew-shot例を自動探索・最適化するMIPROv2や、実行ログや自然言語フィードバックを利用して改善を繰り返す GEPA などの最適化手法が提供されています。これらは、「評価」と「改善」を自動的に結び付けるアプローチとして注目されています。
このように、評価基準・テストケース・AIエージェントの改善を一つのサイクルとして継続的に回すことが、AIエージェントの品質を効率よく向上させるポイントです。
評価器であるLLM(評価AI)も、長期運用の中で判定基準が徐々に変化する可能性があります。LLM as a Judgeを継続的に機能させるには、適切にAIと人間の役割分担することと、評価器自体の品質を監視することが重要です。
AIと人間の役割を以下のように分けたHuman-in-the-loop(人間が評価ループに介在する設計)の運用を推奨します。
評価AIは、実行ログを継続的に評価し、問題がありそうなケースを抽出します。LLMは確率的に動作するため、同じ入力でも評価結果がわずかに変動します。そのため、1回の評価結果だけで判断するのではなく、複数回評価の平均と分散を確認することが重要です。分散が大きい(=判定がぶれている)ケースを「迷い」として数値化し、確信度が低いものは人間へ引き継ぎます。
人間は、AIが判断に迷ったケースを重点的に確認します。また、新機能の追加やユーザー要求の変化に応じて、「何を良い出力とするか」という評価基準自体を継続的に見直します。

長期運用では、評価AI自体の品質が徐々にずれるJudge Drift(評価指標の乖離)が発生します。
Judge Driftは、たとえば次のような要因で発生します。
このズレを検知するために、dotDataはメタ評価(Meta-Evaluation)の仕組みを取り入れています。メタ評価とは、評価AIの判定が人間の感覚とずれていないかを評価する、二重のフィードバックループです。

運用では、評価AIの評価結果に対して、定期的に人間がサンプリング検品を行います。AIが過大評価したケース、過小評価したケース、人間の評価と割れたケースを分析し、評価プロンプトやテストケースへ反映します。
この改善ループでは、次のような更新を行います。
LLM as a Judgeを長期運用するには、評価AIもまた評価対象として扱う必要があります。評価AIの品質保証まで含めて設計することで、自動評価システムへの信頼性を保ちやすくなります。
UCAの開発を通じて見えてきたのは、LLM as a Judgeの成否は、評価モデルの性能だけで決まらないということです。むしろ、評価対象、評価基準、人間の判断、改善プロセスをどうつなぐかが重要です。
実務上のポイントは、次の3つです。
複雑化するAIエージェント開発では、データとフィードバックに基づく継続的な改善プロセスが、品質向上の土台になります。
dotDataは、創設以来一貫して「高度なデータサイエンスを、誰もがビジネスの現場で使える形にする」という考え方を掲げています。UCAも、その考え方を生成AIの技術で具体化する取り組みの一つです。
AIが生成したアウトプットだからといって、品質の曖昧さを受け入れる必要はありません。専門家が持つ暗黙知を評価基準やテストケースへ変換していくことが、ビジネス現場で実用に耐えるAIをつくるうえで重要です。
感覚(バイブス)に頼る開発の壁を感じている方は、ぜひdotDataとともに、データとシステムに基づいた確かなLLMアプリケーション開発への一歩を踏み出してみませんか。ぜひお気軽にお問い合わせください。
「教師は生徒より賢くあるべき」ですので、機能AIが使用するモデル以上の性能を持つモデルを用いるべきです。さらに、開発検証フェーズでは最上位モデルによる精度担保を最優先とし、評価基準が明確化した定常運用フェーズでは軽量モデルへリプレイスしてコストとレイテンシを最適化するのが良いです。具体的には、評価指標(ルーブリック)の設計やプロトタイプ検証を行う初期フェーズにおいては、複雑な因果分解や文脈理解に長けた最上位モデルを採用して評価自体の信頼性を担保します。しかし、大量の実行ログを定常的に検品する実運用フェーズに移行し、用語の平易性といった個別の評価基準が固まった後は、APIコストを抑制し処理速度を底上げするために軽量モデルへと切り替えます。このようにシステムの進化フェーズや評価観点の成熟度に応じてインフラを使い分けることで、エンタープライズの商用運用における高い投資対効果(ROI)を維持することが可能になります。
人間側の審美眼の再現性を担保するため、評価の因果分解に紐づいた「人間用の標準データアノテーション手順書(SOP)」を整備し、定期的に複数名間のスコア一致度(インター・アノテーター・アグリーメント)を測定・調律しています。LLM as a Judgeが判定に迷った確信度の低い境界線データに対しては人間が最終審判を下しますが、人間側の基準自体がブレてしまっては、自動評価システムのキャリブレーション(調律)プロセスそのものが破綻をきたします。そのため、エンジニアとドメイン専門家である分析コンサルタントの間で、どのような表現であればビジネスユーザーにとっての3つの障壁を越えているかという採点基準を厳密に平準化する仕組みを敷き、メタ評価(Meta-Evaluation)全体の信頼性を底上げしています。