RAG システムに eval セットがないなら、プロンプト変更はすべて雰囲気ベースのリリースです。良いニュース: 役に立つ eval セットは1週間で構築できます。完璧なものではなく、役に立つ ものを。完璧さこそが、チームに evals をまったく持たせない罠です。
クライアントが初日 evals 0〜5本、週末までに200本必要、というエンゲージメントで我々が使うレシピを紹介します。
形
必要なものは3つです。
- 凍結されたコーパス — システムが検索対象とする実ドキュメントを、ある時点でスナップショットしたもの。
- 200問 の、実ユーザーが尋ねうる質問。ground-truth な回答と引用付きで。
- ホールドアウトセット — その200問のうち30問を金庫にしまい、チューニングには一切使わない。
ホールドアウトセットは最も重要で、最も省略されがちな部分です。後で戻ってきます。
Day 1〜2: 実際の質問を採掘する
「ユーザーは何を尋ねるだろう?」というワークショップはスキップしてください。実ユーザーが一度も尋ねたことのない質問が量産されます。情報源に行きましょう。
- サポートチケット で RAG が扱うトピックに触れているもの。
- 検索ログ 既存の検索バーがあれば。
- Slack チャネル で社内の人が同じ質問をしている場所。
- チャットログ 既存の LLM システムが稼働していれば、そのもの。
生の質問を250本目指します。重複を排除し、表現を正規化し、明らかにスコープ外のものを捨てます。約200本に着地します。
Day 3: 難易度とトピックでタグ付け
各質問をバケツに入れます。
- 難易度: trivial(答えが1段落にある)、medium(2〜3ドキュメントの統合が必要)、hard(手順やルールの理解が必要)。
- トピック領域 — 通常はドメインによって5〜15バケツ。
- Adversarial フラグ — 既知の失敗モードを誘発するよう設計された質問(スコープ外、矛盾情報、最近更新された情報)。
ミックスが必要です。trivial が90%のスイートは、システムが素晴らしいと告げてくれますが、medium と hard が壊れたままリグレッションをデプロイすることになります。
Day 4: Ground truth
各質問に必要なもの:
- 期待される回答 — 文章で1〜3センテンス、ドメイン専門家が与える答え。
- 裏付けとなるパッセージ — 質問に答えるために 検索されるべき コーパス部分へのポインタ(doc ID、行範囲、チャンク ID)。
ここが遅い部分です。1問あたり約3分、200問で約10時間と見積もりましょう。2人並行で半週間。ドメイン専門家を使ってください。
価値があります。これが「LLM がもっともらしいことを言った」を「LLM が正しいソースを引用し、正しい答えを出した」に変える部分です。
Day 5: ベースライン + メトリクス
現在の システム(なければスタブ)を、表に出している170問に対して走らせます。記録するもの:
- Retrieval@k: top-k で検索されたチャンクに、期待される裏付けパッセージが含まれていたか?
- 回答の正確性: LLM judge が期待回答に対して評価、ホールドアウトの参照と照合。judge が単なるラバースタンプにならないよう、人手評価約30件でキャリブレーションすること。
- 引用の精度: 返された引用のうち、実際に主張を裏付けているのは何割か?
これでベースラインが手に入りました。今後のプロンプトや retrieval の変更は、ここからの差分として現れます。
「これは最適化しない」セット
ホールドアウトの30問が存在する理由はただ1つ。自分を捕まえるためです。
eval セットを構築するチームはみな、いずれ eval セット に対して システムをチューニングし始めます。新しいプロンプト改訂、evals 実行、スコア上昇、出荷。3か月後、スイート内スコアは95%、ユーザー満足度は不変。オーバーフィットしていたわけです。
ホールドアウトの30問は、四半期ごと のヘルスチェックでのみ走らせます。スイートの残りが改善している間にホールドアウトがリグレッションするなら、それはオーバーフィットの煙感知器です。チェックに対するチェックです。
見ないでください。追加しないでください。等価物で置き換えないでください。金庫に入れて鍵をかけてください。
これで得られるもの
- プロンプトと retrieval の変更をゲートする再現可能なシグナル。
- 新しい LLM バージョンを評価するときに比較できるベースライン。
- 「あなたの RAG が良いとどう分かるのですか?」に対する弁護可能な答え。
v1 を1週間で構築。質問は月次でイテレート。ホールドアウトセットは年1回入れ替え。
完璧な eval セットを構築する時間は永遠にありません。役に立つ eval セットを構築する時間は確実にあります。