検索が外れたまま答えを作ると、間違いがそのまま出ます。取ってきた結果を採点して、良くなければ引き直すのがこの構成です。
実際に測ったところ、1位が正解の問いは1件から4件になりました。一方、採点せずに最初から2通り引いて混ぜた場合は2件止まりでした。
3通りのやり方を同じ問いで測りました。採点して引き直す方式が、検索回数を減らしたうえで最も良い結果でした。
Corrective RAGで引き直しを入れると結果がどう変わるのかを、実際に走らせて測りました。使ったのは社内規程を模した文書13件と、語が食い違う問い5件です。
引き直しの文面は文書の中身を見ずに、聞き方を変えただけで用意しました。比較のため、最初から2通り引いて混ぜる方式も測っています。
let ok = 0, search = 0, judge = 0;
for (const { q, rel } of ALT_QUERIES) {
let ids = bm25(q).map((x) => x.i); search++;
judge++;
if (!grade(ids, rel)) { ids = bm25(RETRY[q]).map((x) => x.i); search++; judge++; }
if (grade(ids, rel)) ok++;
}
やり方 1位が正解 検索の回数 採点の回数 引き直しなし 1 / 5 5回 0回 採点して駄目なら引き直す 4 / 5 9回 9回 採点せず最初から両方引く 2 / 5 10回 0回 問い 1回目 引き直し後 ホテル代の限度額 外れ 正解 出張手当は日帰りだと 正解 正解 仮払の申請 外れ 外れ 消耗品の購入 外れ 正解 レポートの提出期限 外れ 正解
上の表を見てください。何もしない場合の1/5に対して、採点して引き直すと4/5になりました。
3行目が、採点せずに最初から2通り引いて混ぜた場合です。結果は2/5で、検索回数は10回と最も多くなりました。
1回目が当たっていた問いでも、外した2回目の結果が混ざります。順位を足し合わせる方式では、当たりが薄まります。
引き直す方式では、1回目が当たっていれば2回目を引きません。当たりが薄まる場面が起きません。
検索回数も9回で、混ぜる方式の10回より少なくなりました。当たっていた1件ぶん引かずに済んでいます。
残った1件は、引き直しても外れたままでした。言い換えを変えても届かない問いは存在します。
混ぜると当たりが薄まる。駄目なときだけ差し替える。
different knowledge retrieval actions can be triggered原文Yan et al.「Corrective Retrieval Augmented Generation」 この内容の有効期限2027-02-18
検索結果を採点する役を挟み、その点数に応じて次の動きを変えます。良ければそのまま、悪ければ引き直します。
Corrective RAGは、検索した結果をそのまま使わず、まず採点する構成です。日本語では訂正付きの検索と呼ばれます。
普通の構成では、検索が外れてもそのまま答えを作ります。外れた文書をもとにした答えが出てきます。
原論文も、検索が誤った場合にモデルがどう振る舞うかへの懸念を出発点として挙げています。この懸念に対する手立てです。
採点は本体のモデルとは別に置きます。原論文の説明では、軽量な検索評価器が、問いに対する検索文書の全体的な質を評価し、確信度を返すとされています。
点数が返ってくれば、次に何をするかを分岐できます。原論文も、点数に応じて異なる知識検索の動作が起動されうるとしています。
原論文は、この仕組みが差し込むだけで使え、さまざまな検索併用の手法と無理なく組み合わせられるとしています。既存の構成の間に挟む形です。
採点は正解を知った状態で行っています。採点が完璧な場合の上限値だと考えてください。実際には小さめのモデルに判定させるので、ここまでは出ません。採点が外れたときにどれだけ落ちるかは、この記事の運用の節で数えています。
a lightweight retrieval evaluator is designed to assess the overall quality of retrieved documents for a query, returning a confidence degree原文Yan et al.「Corrective Retrieval Augmented Generation」 この内容の有効期限2027-02-18
採点の精度がそのまま上限になります。加えて、引き直しの回数に上限を設けないと待ち時間が読めなくなります。
Corrective RAGを入れると、採点役が新しい部品として増えます。この部品の出来が全体を決めます。
採点が「良い」と誤れば、引き直すべき問いがそのまま通ります。外れた文書で答えが作られます。
採点の正しさ 引き直しが要るのに気づけない件数(100問あたり)
100% 0.0件
95% 3.0件
90% 6.0件
80% 12.0件
前の節の実測で、引き直しが必要だった問いは5件中3件でした。この6割という割合をもとに数えています。
採点が9割正しくても、100問あたり6件は引き直されずに通ります。採点役の評価は別に用意する必要があります。
引き直しは繰り返せますが、1回ごとに検索と採点が積み上がります。前の節の計測は1回だけで、検索9回・採点9回でした。
上限を決めておかないと、うまくいかない問いで待ち時間が伸び続けます。何回で打ち切るか、打ち切ったとき何を返すかを先に決めてください。
4番目が効きます。1回目で通る割合が上がってきたら、引き直しの仕組みを外せるかもしれません。検索側の改善はHyDEの記事で扱っています。
採点の正しさが、そのまま見逃しの数になる。
raising concerns about how the model behaves if retrieval goes wrong原文Yan et al.「Corrective Retrieval Augmented Generation」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る