テキスト分割とは、長い文書を小さな断片に切ってから知識ベースに保存する手法です。本や契約書、ヘルプセンター全体をそのままモデルに渡すのではなく、数百字から千字程度の塊に分け、それぞれをベクトル化し、質問時には最も関連する塊だけを取り出してモデルに答えさせます。RAG の工程で最も目立たない一方、回答の正確さを最も左右する一歩です。
なぜ丸ごと渡せないのか
文書全体をコンテキストに入れると三つの問題があります。ウィンドウに入りきらない、入ってもコストが高い、そして無関係な内容の中で答えを探すモデルが脱線しやすいことです。分割すれば検索は関連段落だけを選べ、コストもノイズも下がります。代償として文書は人為的に引き裂かれ、前後のつながりは切り方で保つしかありません。
よくある三つの切り方
固定文字数で切る方法は最も簡単ですが、文や表を真ん中で断ちやすい。段落や見出しに沿って切る方法は原文の構造に沿い、説明書や規程文書に向きます。意味の変化で切る方法は効果が高い反面、実装が複雑です。多くのツールは隣り合う塊の間に重なり(overlap)を残し、境界で切れた文脈が次の塊の冒頭に再び現れるようにします。
細かすぎ・大きすぎ、それぞれの弊害
細かすぎると一つの塊に情報が完結しません。「精算の上限は」と聞いても、取り出された塊には「超過分は副社長の承認が必要」としかなく、肝心の数字は前の塊にあって、モデルは曖昧に答えるか数字を作るしかありません。大きすぎると一つの塊に複数の話題が混ざり、ベクトルが平均化されてどれにも似なくなり、検索順位が下がります。取り出せても、モデルは長い段落の中で要点を自力で探すことになります。
三つの誤解
第一に、小さいほど正確というわけではありません。得られるのは細かい位置特定で、失うのは文脈です。第二に、重なりは多いほど良いわけではなく、重ねすぎると同じ内容が何重にも保存され、上位結果が近親ばかりになって他の関連塊を押し出します。第三に、答えが悪いのはモデルのせいとは限りません。知識ベースの精度が低いときは、モデルを替えるより切り方と塊の大きさを見直す方が効きます。
万能の最適値はありません。条項や FAQ は小さめに、叙述的な長文は大きめに切って見出し構造を残します。判断基準は一つだけです。実際の質問で試し、取り出された塊だけで正解を支えられるかを確認することです。