チャンク分割は、検索用に埋め込む前に、大きなデータを小さな区間へ分ける処理です。AI Search は 再帰的チャンク分割 を使います。段落や文など自然な区切りでコンテンツを切り、チャンクが大きすぎる場合はさらに分割します。
再帰的チャンク分割は、チャンクの意味を保つために次を行います。
- 自然な区切りで分割する: まず段落、次に文で切ります。
- サイズを確認する: トークン数で見てチャンクが長すぎる場合は、さらに小さな部分へ分割します。
こうすると、文の途中で思考を切らずに、埋め込みと検索がしやすいチャンクになります。
AI Search では、チャンク分割の動きを制御する 2 つのパラメーターを公開しています。
- チャンクサイズ: 1 チャンクあたりのトークン数です。選べる範囲はモデルによって異なります。
- チャンクのオーバーラップ: 隣接するチャンク間で重なるトークンの割合です。
- 最小:
0% - 最大:
30%
- 最小:
これらの設定はインデックス作成の段階で適用されます。データが埋め込まれて検索インデックスへ保存される前です。
チャンク分割は、コンテンツの取得方法と、生成モデルへ渡すコンテキスト量の両方に影響します。チャンク設定の違いを把握するには、外部の chunk visualizer tool ↗ を試してください。
- インデックスサイズ: チャンクサイズを小さくすると、チャンク数とベクトル総数が増えます。AI Search の制限 を確認し、インスタンスの制限内に収まるようにします。
- 生成モデルのコンテキストウィンドウ: 生成モデルのコンテキストウィンドウには、取得したチャンク(
max_num_results× チャンクサイズ)、利用者のクエリ、モデルの出力がすべて収まる必要があります。大きなチャンクや高いmax_num_resultsは、コンテキスト超過に注意してください。 - コストとパフォーマンス: 大きなチャンクと高い
max_num_resultsは、モデルへ渡すトークンが増え、レイテンシとコストが上がることがあります。この使用量は AI Gateway で監視できます。