利益:
- 保持品質と生成品質を個別に測定するメトリクスの定義
- ゴールド質問セットを設定し、LLM-as-judge による自動評価を実行する
- 本番環境でのフィードバック、モニタリング、回帰テストによる品質の維持
「アシスタントをインストールしましたが、正常に動作しているようです」という文は、エンジニアリングに関する記述ではありません。 RAG システムは静かに故障します。新しい文書タイプは検索を欺き、迅速な変更は精度を低下させ、インデックスは古くなります。これを実現する唯一の方法は測定することです。この単元では、RAG の品質を測定する方法 (取得と生成を個別に行う)、自動評価 (LLM による判断)、本番環境での品質を維持する方法 (モニタリング、回帰) について説明します。 「測定しないものは改善できない」がこのユニットのモットーです。
2 つの別々のものを測定する
RAG には 2 つの脚があり、どちらかの脚に問題がある可能性があるため、別々に測定する必要があります。
- 検索品質: 正しい部品が到着したか?
- 生成品質: 正しい答えは入ってくる作品から生み出されましたか?
答えが悪い場合は、まずどの脚が悪いのかを知る必要があります。適切な部分が到着しない場合、最適なプロンプトであっても保存できません (取得の問題)。正しい部品が到着してもモデルがそれを誤って読み取った場合、検索を改善しても無駄です (生成の問題)。
取得メトリクス
検索は並べ替え/アクセスの問題です。古典的な情報検索メトリクスによって測定されます。そのためには、各質問に対してどの部分が「正しい」かという知識という、黄金のクラスターが必要です。
メートル法
どのような対策が必要か
簡単な定義
リコール@k
正しい作品は上位 k に入っていますか?
正しい部品捕捉率
精度@k
返された k 個のうち、関連するものはいくつありますか?
持ち込んだものの清掃
MRR (平均逆順位)
正しい作品はどの順番ですか?
上位に入ると報酬がもらえる
命中率
少なくとも 1 つの正しい商品が到着しましたか?
成功の最も基本的な尺度
実際のコメント: Recall@k が低い場合は、チャンキングまたは検索戦略 (ハイブリッド、k、再ランキング) を再検討する必要があります。精度は低くても再現率が高い場合は、再ランキングを追加するのが良いでしょう。
生成メトリクス
正しいパーツが到着したら、モデルによって生成された応答の品質を測定します。 3 つの基本的な寸法:
- 忠実さ: 回答内の各主張は文脈によって裏付けられていますか?フィッティングはありますか?それは幻覚の直接的な尺度です。
- 回答の関連性: その回答は実際に質問に答えていますか、それとも主題から外れていますか?
- 完全性: コンテキスト内の関連情報はすべて使用されていますか、それとも欠落していますか?
これらは多くの場合、「真/偽」のような 2 値ではなく、段階的ベース (例: 1 ~ 5) でスコア付けされます。
ヒント: 忠実度を別の指標として追跡します。精度が低下するにつれて忠実度も低下する場合、問題は生成です。忠実度が高くても答えが間違っている場合は、問題は間違ったピース(検索)です。これら 2 つのメトリクスを組み合わせると、障害の位置を示すコンパスになります。
黄金の質問セットを確立する
各測定には、現実的な質問 + 予想される正解 + 正しいソース片というゴールデン セット/評価データセットが必要です。 500 個のランダムな質問よりも、30 ~ 50 個のよく選ばれた質問から始める方が優れています。以下のものをセットに含めてください: よくある実際の質問、既知の難しい質問、答えのない罠の質問 (「わかりません」と言うべきです)、出典が矛盾している質問。
# ゴールデン クラスターの例 (概念的)[ {"question": "年次休暇は何日ありますか?", "expected_answer": "年功序列 1 ~ 5 年の場合は 14 日", "correct_part_id": "two-part-3", "category": "leave"}, {"question": "会社の火星オフィスはどこですか?", "expected_answer": "NO_INFORMATION", # トラップ: ありません"correct_part_id": null、"category": "trap" を知っている}]
LLM-as-Judge: 自動評価
何百もの回答を手作業で採点するのは大変です。 LLM-as-judge モデルは、あるモデルが特定の基準に基づいて別のモデルの解答を採点し、正当化するモデルです。優れた裁判官のプロンプトは、基準を明確に定義し、例を示し、正当性を求めます。
# 裁判官としての LLM プロンプト (概念的) あなたは公平な評価者です。指定されたコンテキストと期待される回答に従って、以下の回答を評価してください。スコア (1 ~ 5) を付けて正当化します:- 忠実性: 回答内の各主張は文脈の中でサポートされていますか?- 正確さ: 回答は予想される回答と一致していますか?- 完全性: 関連情報は完全ですか?特に: 回答に文脈にない情報が含まれている場合は、誠実さを 1 として、どの主張が捏造されているかを示します。CONTEXT: {context}EXPECTED: {expected}ANSWER: {answer}Output: {誠実さ、正確さ、完全性、正当性}
注意: 裁判官としての LLM は完璧ではありません。彼らは独自の偏見を持っている可能性があります (長い答え、独自のスタイルを好む)。また、審査員を検証します。審査員と人間の両方によっていくつかの回答を採点してもらい、両者の間の一致度を測定します。ジャッジが人間のスコアと一致している場合は、彼を信頼できます。
弱い/強い評価
弱い (「私にとっては良かった」):
いくつか質問しましたが、答えは良いようでした。 # 問題: 測定なし、回帰は感知できない、改善は盲目的。
強力 (ゴールド クラスター + 離散メトリクス + 自動判断 + 回帰):
40 の質問からなるゴールデン クラスター。変更するたびに、リコール@5、忠実度、精度が自動的に測定されます。スコアが低下した場合、変更はロールバックされます。本番環境では、ユーザーのフィードバックが収集され、セットに追加されます。
本番環境での監視と回帰
評価は一度して終わりではありません。 3 つの継続的な実践:
- 回帰テスト: プロンプト/取得/モデル変更ごとにゴールデン クラスターを自動実行します。スコアが減少すると、変更は元に戻ります。これにより、「改善しようとして壊れてしまう」ことを防ぎます。
- 生産監視: 実際の質問における「情報が見つかりませんでした」率、平均遅延、コスト、ユーザーのフィードバック (👍/👎) が監視されます。 「わかりません」の突然の増加は、多くの場合、インデックスまたは検索の誤動作の最初の兆候です。
- フィードバック ループ: ユーザー 👎 から提供された実際の質問が検討され、黄金の山に追加されます。したがって、時間の経過とともにセットはより充実し、システムの死角は解消されます。
ミニケース3個
ケース 1 — サイレント回帰。チームはプロンプトを「改善」するために変更しました。全体的な精度は向上しましたが、トラップ質問では忠実度が 30% 低下しました (モデルはより適合し始めました)。黄金のクラスターの罠の質問がなければ、気づかなかったでしょう。回帰テストにより変更が元に戻りました。
ケース 2 — 間違った脚を伸ばす。あるアシスタントの答えは悪かった。チームは数週間かけてこのプロンプトに取り組みました。取得メトリクスを測定したところ、再現率@5 はわずか 48% でした。問題は生成ではなく取得にありました。ハイブリッド + 再ランキングを追加すると、再現率は 89% に増加し、精度も向上しました。
ケース 3 — 実稼働アラート。ある日、サポート アシスタントの「情報が見つからなかった」割合が 6% から 34% に急増しました。トラックパッドは警告しました。その理由は、夜間に実行されるインデックス作成ジョブがサイレントに失敗し、新しい記事がアップロードされなかったためです。監視していなければ、「わかりません」という誤った発言が何日も続いたでしょう。
よくある間違い
- 「自分にとってはうまくいった」という満足感: 測定がなければ、後退は気づかれないままになります。
- 取得と生成を分離しないと、間違った手順を修正し、時間を無駄にすることになります。
- トラップ質問をしない:物事をでっち上げようとする傾向は、ゴールデンクラスターには現れません。
- 裁判官を検証していない: 偏った陪審は誤った自信を与えます。
- 生産を監視していない: インデックスの障害、コストの爆発が静かに続きます。
要約すると
- RAG では、取得品質と生成品質は個別に測定されます。まず、どの脚が損傷しているかを判断する必要があります。
- remember@k、precision@k、取得用MRR。生成には忠実度、適合性、完全性が使用されます。
- 各測定にはゴールドクラスターが必要です。現実的な、難しい、罠のある、矛盾した質問をその中に入れてください。
- LLM-as-judge は自動スコアを設定します。しかし、裁判官自身が人間に対して正当化されなければなりません。
- 回帰テスト、本番環境の監視、フィードバック ループにより、長期にわたって品質が維持されます。
アプリケーションタスク
(1) 自分のアシスタント用に、少なくとも 15 個の質問からなるゴールデン セットを作成します。少なくとも 3 つのトラップ (回答なし)、3 つの難しい質問、2 つの矛盾したソースの質問を含めます。各質問について、予想される答えと正しい部分を書きます。 (2) このセットを使用して 2 つの異なるプロンプト バージョンを手動で比較します。忠実さと正確さについて、各回答に 1 ~ 5 ポイントを与えます。 (3) 上記の LLM-as-judge プロンプトを独自の基準に合わせて調整します。 (4) 実稼働環境で追跡する 3 つの指標を特定し、それぞれについて「どのしきい値で警報を発するか?」と尋ねます。値を書き込みます。
チェックリスト
- [ ] 保持と生成の品質を個別の指標で測定できます。
- [ ] 私は、recall@k、忠実度などの指標が何を意味するかを知っています。
- [ ] 実際の、難しい、罠や矛盾した質問を含む黄金のクラスターを構築できます。
- [ ] 自動評価を設定し、LLM-as-judge を使用して審査員を検証できます。
- [ ] 回帰テスト、運用監視、フィードバック ループを操作できます。