本文へ移動

RAGの資料はどこで区切る?チャンク分割で文脈を失わないために

社内資料を探して答えるRAGでは、長い文書を小さな単位に分けて検索することがあります。短ければよいとは限らず、区切り方によって条件や例外が離れてしまいます。分割の方法を、実際の質問から確かめる考え方を紹介します。

文書を分けるのは、必要な部分を取り出すため

RAGは、質問に関係する情報を検索し、生成AIへ回答の材料として渡す方法です。その資料を小さなかたまりへ分ける処理を、チャンク分割と呼びます。

MicrosoftのAzure AI Searchの文書分割ガイドは、モデルの入力上限に収める目的や、固定の長さ、文の構造などを使った分割方法を説明しています。ここでは特定の設定値を推奨するのではなく、何を一緒に残すかを考えます。

たとえば、架空の施設利用規程に「予約は前日まで」と書かれ、次の段落に「大型機材を使う場合は三日前まで」とあるとします。基本ルールだけを取り出すと、対象によっては誤った期限を答える材料になります。

文字数でそろえる方法と、意味のまとまりで分ける方法

一定の長さで区切る方法は、データの大きさを管理しやすい反面、文や表の途中を切る可能性があります。見出しや段落で分ければ意味を保ちやすくなりますが、節によって長さが大きく変わります。

前掲のMicrosoftのガイドも、固定長、文の構造、意味、複数の方法の組み合わせを挙げています。どれか一つがあらゆる資料で最適とは言えず、文書の形と質問の種類が判断材料になります。

表なら、数値だけを切り出しても、その値が何を表すか分かりません。列の見出し、単位、適用条件を一緒に扱えるかが重要です。長い文書の途中から取り出す場合には、文書名や節の見出しを添える方法も考えられます。

少し重ねても、必要な文脈が必ず残るわけではない

隣り合うかたまりの一部を重ねる方法をオーバーラップと呼びます。境目の情報を両方へ含めることで、つながりを保つ助けになります。

Microsoftの説明では、最適な重なりは内容や用途で変わります。同ガイドの開始値をそのまま全資料の正解と扱うのではなく、取り出された内容を見て調整することが必要です。

重ねる範囲を広げれば、重複した文章も増えます。検索結果の複数箇所がほぼ同じ文章で埋まると、別の必要な条件を渡す余地が減る場合があります。長さだけでなく、回答に必要な情報がどれだけそろうかを見たいところです。

回答を見る前に、検索された部分を読む

分割方法の比較では、最終回答だけを見ると原因を切り分けにくくなります。同じ質問で、どの文書のどの範囲が取り出されたかを比べる方法が有効です。

次は、施設利用規程の仮例で用意できる質問です。実測結果ではなく、分割の影響を見るための例です。

表が見切れる場合は横にスクロールできます

回答を見る前に、検索された部分を読むの表

質問の種類

取り出された資料で見ること

通常の予約期限を聞く

基本ルールが含まれるか

大型機材の予約を聞く

例外条件と対象が一緒に含まれるか

表の料金を聞く

数値と見出し、単位が対応しているか

規程にない用途を聞く

無関係な記述を根拠にしていないか

比較の際は、モデルや検索条件を同時に大きく変えず、何を変更したか記録すると、分割による違いを追いやすくなります。文書の権限や版の管理も、分割した単位へ引き継ぐ確認が必要です。

まとめ

チャンク分割では、入力の大きさと意味のまとまりの両方を扱います。実際の質問に対して、条件・例外・表の見出しが一緒に取り出されるかを見ると、長さだけでは分からない問題に気付けます。

全体の流れはRAGの基本、比較に使う質問の準備はAI評価セットの作り方で説明しています。