業務マニュアルを読み込ませたAIチャットボットが、的外れな回答を返した経験はないでしょうか。原因の一端は、文章の分割方法である「チャンキング」にあることが多いです。Anthropic・OpenAI・Google Cloudの公式資料には、分割の粒度と重なり幅について具体的な数値が示されています。その数値を手がかりに、定義と設計の勘所を確認していきます。

01チャンキングとは(基礎定義)

OpenAI公式のクックブックは、長い文章の扱い方として2つの選択肢を示しています。単純に文章を切り詰める方法と、チャンクに分割してそれぞれを個別に埋め込む方法です。前者には、関連する可能性のある文章を捨ててしまう明らかな欠点があるとも指摘されています(出典: OpenAI公式)。長い文章をそのまま丸ごと扱えない前提があり、そのうえで情報を捨てずに済ませる手段が分割である——これが、わざわざチャンキングをする理由です。

分割側の具体像も示されています。Anthropic公式は、ナレッジベースを「通常は数百トークンを超えない」小さなチャンクへ分割する手法を紹介し、具体例として800トークン単位のチャンクを挙げています(出典: Anthropic公式)。

02仕組み:チャンクサイズとオーバーラップの調整

チャンキングの実装では、チャンクサイズと重複幅の2つの数値を調整します。

具体的な既定値を、表に整理します。

パラメータ役割Vertex AI RAG Engineの既定値
chunk_size1チャンクあたりのトークン数を指定1,024トークン(出典: Google Cloud公式)
chunk_overlap隣接チャンク同士が重なるトークン数を指定256トークン(出典: Google Cloud公式)

Google Cloud公式によると、チャンクサイズが小さいほど埋め込みはより正確になり、大きいほど埋め込みは一般的になって特定の詳細を見落とす可能性が高まります(出典: Google Cloud公式)。

03「エンベディング」との違い(関連用語との違い)

チャンキングは、パイプライン上でエンベディング(別記事『エンベディングとは|文章を数値化して検索する仕組み』参照)より前の工程にあたります。2つの処理の役割を整理します。

処理何をするか実行タイミング
チャンキング長い文章を検索・処理しやすい単位に分割するエンベディング処理の前段
エンベディング分割済みの各チャンクを数値ベクトルに変換するチャンキングの後段

分割が適切でなければ、後段のエンベディングやRAG(別記事『RAGの仕組みとは?AI検索で引用される文章の原理を徹底解説』参照)の検索精度そのものが下がります。

04実務でチャンキングが問題になる場面

チャンキングの設計は、RAGシステムを構築・運用する上で避けて通れません。加えて、記事を書く側にも効いてくる場面があります。代表的な場面を4つ紹介します。

  1. ドキュメント分割の設計: マニュアル・FAQ・社内規程などをRAGに取り込む際、段落や見出しの区切りを無視した機械的な分割は、文脈が途切れた検索結果につながります。実務では、見出し単位でいったん区切ってからトークン数で再分割する(見出し内で収まらない場合だけ機械的に割る)順序をとると、途切れを減らしやすくなります
  2. チャンクサイズのチューニング: 小さすぎれば文脈不足、大きすぎれば詳細の見落としにつながる、というトレードオフの調整です(出典: Google Cloud公式)
  3. 検索後の絞り込み: Anthropic公式は、まず150件程度のチャンクを初期検索し、その後リランキング(別記事『リランキングとは|検索結果を並べ替えるひと手間の正体』参照)で上位20件程度まで絞り込む2段階構成を紹介しています(出典: Anthropic公式)。同じ文書量でもチャンクを小さくするほど断片の総数は増えるため、サイズ設計と絞り込みの設計はセットで決めます
  4. 公開記事を「どこで切られても通じる」状態にする点検: 外部のAI検索が自社記事をどう分割しているかは、確認できた公式資料の範囲では公開されていません。それでも点検はできます。記事をH2見出し単位で切り出し、その1ブロックだけを読んで意味が通るかを確認する、という作業です。「前述の通り」「上記の3つ」のように前の見出しに依存した書き方が残っていれば、そこが切れ目になった瞬間に意味を失います。指示語を具体名に置き換えるだけで潰せる欠陥です

05よくある誤解

「チャンク=段落」という誤解。OpenAI公式は、段落や文の境界に沿って分割する方法が文章の意味を保つのに役立つ可能性があると述べています(出典: OpenAI公式)。ただし実装によっては、意味を考慮せず固定トークン数で機械的に分割する方式も広く使われています。チャンクの境界は自動的に段落と一致するわけではなく、どちらで割るかは実装者が選ぶ設計事項です。

「チャンクサイズは大きいほど精度が上がる」という誤解もあります。チャンクが大きいほど埋め込みは一般的になり、特定の詳細を見落とす可能性が高まります(出典: Google Cloud公式)。「1問1答で引きたいのか、章まるごとの文脈が要るのか」を先に決め、その粒度に合わせてサイズを選ぶ——という順序が要ります。

06FAQ

Q. チャンクサイズは何トークンにすればよいですか?

唯一の正解はありません。目安として、Vertex AI RAG Engineは既定値に1,024トークンを採用し(出典: Google Cloud公式)、Anthropic公式は800トークンのチャンクを例に挙げています(出典: Anthropic公式)。まずは既定値のまま動かし、検索結果に文脈の途切れが目立つならオーバーラップを増やす、無関係な内容が混ざるならチャンクサイズを下げる——という順で自社データを見ながら動かすのが現実的です。

Q. チャンク同士を重ねる(オーバーラップさせる)のはなぜですか?

チャンクの境界付近で文脈が途切れることを防ぐためです。Google CloudのVertex AI RAG Engineは、既定でチャンク同士を256トークン重複させる設定を案内しています(出典: Google Cloud公式)。

Q. チャンキングをしないとAI検索での引用に不利になりますか?

本記事で扱ったのは、社内RAGシステムなど自社側での文章分割の技術解説です。この設計が外部のAI検索エンジンからの引用率にどの程度影響するかは、確認できた公式資料の範囲では明言されていません。ただし公開記事の側で今日からできることはあります。見出し1つ分だけを切り出しても意味が通るかを点検すること、そして表や箇条書きの直前に「何を並べた表なのか」を1文で書いておくことです。表だけが切り出されても、その1文が一緒に付いてくれば何のデータか分かる状態になります。