こう 聞かれます
- 「RAG の
答えの 精度が 低い とき、 どこを 疑いますか」 - 「答えが
ずれている 原因が、 検索か 生成かを、 どう 見分けますか」 - 「文書は
どんな 大きさに 分けますか」
面接官が 見ている点
- 検索の
側と 生成の 側を 分けて 考えられるか - 勘で
直さず、 「正しい 文書が 取れているか」を 先に 測ると言えるか - 直す手を、
それぞれの 弱点も 含めていく つか 挙げられるか
短い答え
- まず、
質問に 対して 正しい 文書が 検索で 取れているかを、 生成と 分けて 測ります。 取れていなければ 検索の 側、 取れているのに 外れる なら 生成の 側を 疑います。 - 検索の
側では、 文書の 分け方、 埋め込みの モデル、 キーワード検索との 併用 (ハイブリッド検索)、 結果の 並べ直し (再ランキング) を見ます。 - 生成の
側では、 渡す文脈の 量と 順番、 プロンプトの 指示を見ます。
少し 詳しい答え
先に 分けて測る
RAG は
- 質問と、
その 答えが 載っている 文書の 組を、 いく つか 用意します - 検索の
結果の 上位に、 その 文書が 入っているかを数えます - 正しい
文書が 入っているのに 答えが 外れる 物だけを、 生成の 側の 問題として見ます
| 質問 | 正しい | 答え |
|---|---|---|
| 返品の期限は | 入った | 合った |
| 送料はいくら | 入らない | 外れた (検索の |
| 領収書は出せるか | 入った | 外れた (生成の |
検索の側
- 文書の分け方細かく
切りすぎると 前後の 意味が 抜け、 大きすぎると 関係の 無い 文が 混ざります。 見出しの 単位で 切る、 前後を 少し 重ねる、 などを試します - 埋め込みのモデル
埋め込みは、 文の 意味を 数の 並び (ベクトル) に 変えた物です。 日本語や 専門の 言葉に 弱い モデルだと、 近い 意味の 文を 拾えません - ハイブリッド検索意味の
近さで 探す検索は、 型番や 固有の 名前のような 言葉の 一致に 弱いことがあります。 キーワードの 検索と 組み合わせます - 再ランキング
広めに 拾った 候補を、 別の 仕組みで 質問との 関係の 強さで 並べ直し、 上位だけを渡します
生成の側
- 渡す量多く
渡すほど 良いとは 限らず、 関係の 無い 文が 混ざると 答えが ぶれます。 モデルが 一度に 読める 量 (コンテキスト長) にも 上限があります - 順番大事な
文書を 上に 置く、 文書ごとに 出どころを 付ける、 などで 答えが 変わる ことがあります - プロンプト
「渡した 文書だけを 根拠に 答える」 「載っていなければ 分からないと 言う」と 指示します
トレードオフ
再ランキングや
よく ある間違い
- 最後の
答えだけを見て直す検索と 生成の どちらが 悪いか 分からないまま、 プロンプトばかり直すことになります - 意味の
検索だけに頼る 型番や 固有の 名前に 弱いことがあります。 キーワードの 検索も 併用します - 文脈を
たくさん 渡せば 良くなると思う 関係の 無い 文が 混ざると、 答えが かえってぶれます
深掘りの問い
- 「評価の
ための 質問は、 どう 集めますか」 実際の 問い 合わせや ログから 集め、 答えの 載っている 文書を 人が 付ける、と答えます - 「文書が
更新されたら どうしますか」 変わった 文書だけ 埋め込みを 作り直す仕組みに する、と答えます - 「答えに
出典を 付けるには」渡す文書に 番号や 出どころを 付け、 答えで その 番号を 示させる、と答えます