RAGの資料はどこで区切る?チャンク分割で文脈を失わないために
社内資料を探して答えるRAGでは、長い文書を小さな単位に分けて検索することがあります。短ければよいとは限らず、区切り方によって条件や例外が離れてしまいます。分割の方法を、実際の質問から確かめる考え方を紹介します。
文書を分けるのは、必要な部分を取り出すため
RAGは、質問に関係する情報を検索し、生成AIへ回答の材料として渡す方法です。その資料を小さなかたまりへ分ける処理を、チャンク分割と呼びます。
MicrosoftのAzure AI Searchの文書分割ガイドは、モデルの入力上限に収める目的や、固定の長さ、文の構造などを使った分割方法を説明しています。ここでは特定の設定値を推奨するのではなく、何を一緒に残すかを考えます。
たとえば、架空の施設利用規程に「予約は前日まで」と書かれ、次の段落に「大型機材を使う場合は三日前まで」とあるとします。基本ルールだけを取り出すと、対象によっては誤った期限を答える材料になります。
文字数でそろえる方法と、意味のまとまりで分ける方法
一定の長さで区切る方法は、データの大きさを管理しやすい反面、文や表の途中を切る可能性があります。見出しや段落で分ければ意味を保ちやすくなりますが、節によって長さが大きく変わります。
前掲のMicrosoftのガイドも、固定長、文の構造、意味、複数の方法の組み合わせを挙げています。どれか一つがあらゆる資料で最適とは言えず、文書の形と質問の種類が判断材料になります。
表なら、数値だけを切り出しても、その値が何を表すか分かりません。列の見出し、単位、適用条件を一緒に扱えるかが重要です。長い文書の途中から取り出す場合には、文書名や節の見出しを添える方法も考えられます。
少し重ねても、必要な文脈が必ず残るわけではない
隣り合うかたまりの一部を重ねる方法をオーバーラップと呼びます。境目の情報を両方へ含めることで、つながりを保つ助けになります。
Microsoftの説明では、最適な重なりは内容や用途で変わります。同ガイドの開始値をそのまま全資料の正解と扱うのではなく、取り出された内容を見て調整することが必要です。
重ねる範囲を広げれば、重複した文章も増えます。検索結果の複数箇所がほぼ同じ文章で埋まると、別の必要な条件を渡す余地が減る場合があります。長さだけでなく、回答に必要な情報がどれだけそろうかを見たいところです。
回答を見る前に、検索された部分を読む
分割方法の比較では、最終回答だけを見ると原因を切り分けにくくなります。同じ質問で、どの文書のどの範囲が取り出されたかを比べる方法が有効です。
次は、施設利用規程の仮例で用意できる質問です。実測結果ではなく、分割の影響を見るための例です。
表が見切れる場合は横にスクロールできます
質問の種類 | 取り出された資料で見ること |
|---|---|
通常の予約期限を聞く | 基本ルールが含まれるか |
大型機材の予約を聞く | 例外条件と対象が一緒に含まれるか |
表の料金を聞く | 数値と見出し、単位が対応しているか |
規程にない用途を聞く | 無関係な記述を根拠にしていないか |
比較の際は、モデルや検索条件を同時に大きく変えず、何を変更したか記録すると、分割による違いを追いやすくなります。文書の権限や版の管理も、分割した単位へ引き継ぐ確認が必要です。
まとめ
チャンク分割では、入力の大きさと意味のまとまりの両方を扱います。実際の質問に対して、条件・例外・表の見出しが一緒に取り出されるかを見ると、長さだけでは分からない問題に気付けます。
全体の流れはRAGの基本、比較に使う質問の準備はAI評価セットの作り方で説明しています。
