チャンキングとは
Chunking / チャンク分割
長い文書を、検索や埋め込み生成に適した大きさのチャンクへ分割する処理
ひとことで言うと
長い文書を、扱いやすい大きさに区切る作業のこと。
概要
チャンキングとは、RAG等のパイプラインにおいて、長い文書を検索・埋め込み生成に適した大きさのチャンクへ分割する前処理。 一定の文字数・トークン数で機械的に区切る固定長チャンキングのほか、段落や見出しといった文書構造を尊重して分割する構造ベースの手法、文同士の意味的な連続性を考慮して分割点を決めるセマンティックチャンキング等、様々な手法が存在する。 チャンキングの粒度と方法は後段の検索精度に直接影響するため、RAGシステムの性能を左右する重要な設計要素の1つとされる。 隣接するチャンク同士を一部重複させて分割する「オーバーラップ」を設けることで、チャンク境界をまたぐ文脈の欠落を軽減する工夫もよく用いられる。
背景
文書をそのまま1つの単位として埋め込みベクトル化すると検索精度が下がりやすいため、目的に応じた単位へ分割する必要がある。 一方で単純に文字数だけで区切ると、文の途中や意味のまとまりを無視した位置で分割され、検索結果の質を落とす原因になることがある。 チャンキング手法の工夫は、この分割位置の質を高めるために発展してきた。
アーキテクチャ
固定長チャンキングでは、一定のトークン数・文字数ごとに分割しつつ、チャンク間で一部を重複させる(オーバーラップ)ことで、分割点をまたぐ文脈の断絶を緩和することが多い。 構造ベースやセマンティックチャンキングでは、見出し・段落・文の埋め込み類似度等を手がかりに、意味的にまとまりのある単位で分割する。
ワークフロー
文書を読み込む → チャンキング手法(固定長・構造ベース・セマンティック等)を選択 → 文書をチャンクへ分割(オーバーラップを設定) → 各チャンクを埋め込みモデルでベクトル化 → ベクトルデータベースへ格納。
利点
- 文書構造や意味的なまとまりを考慮したチャンキングにより、検索精度を高められる
- チャンクサイズやオーバーラップを調整することで、精度とコストのバランスを取れる
欠点
- 最適なチャンキング手法・パラメータは文書の種類やタスクによって異なり、試行錯誤を要する
- セマンティックチャンキング等の高度な手法は、追加の計算コストがかかる
比較
関連用語
よくある質問
参考文献
- DocumentationLangChain: Text Splitters