チャンク
大きなデータやテキストを処理しやすい小さな単位に分割したもの。AI のトークン制限対策、ストリーミング配信、ファイル転送など幅広い場面で使われる。
チャンク (chunk) は、大きなデータを一定のサイズや意味のある単位で分割した断片のことです。「塊」を意味する英語がそのまま技術用語として定着しました。テキスト処理、ネットワーク通信、AI の文脈でそれぞれ異なる意味合いで使われますが、「大きなものを扱いやすい単位に分ける」という本質は共通しています。
AI・LLM (大規模言語モデル) の文脈では、チャンキング (chunking) はテキストをモデルのコンテキストウィンドウに収まるサイズに分割する処理を指します。GPT-4 のコンテキストウィンドウは 128,000 トークン、Claude は 200,000 トークンですが、長大な文書を処理する際にはこの制限を超えることがあります。文書を適切なチャンクに分割し、各チャンクを個別に処理してから結果を統合する手法が一般的です。
チャンキングの品質は分割の粒度と境界の選び方で決まります。固定長チャンキング (例: 1,000 文字ごとに分割) は実装が簡単ですが、文の途中や段落の途中で切れるため、文脈が失われます。意味的チャンキングでは、段落、セクション、見出しなどの構造的な境界で分割し、各チャンクが意味的にまとまった単位になるようにします。オーバーラップ (前後のチャンクと一部を重複させる) を設けることで、境界付近の情報損失を軽減する手法もあります。
HTTP のチャンク転送エンコーディング (Transfer-Encoding: chunked) は、レスポンスのサイズが事前に分からない場合に、データを小さなチャンクに分けて逐次送信する仕組みです。ChatGPT のようなストリーミング応答では、生成されたテキストがチャンク単位でリアルタイムに送信され、ユーザーは応答の完了を待たずに読み始められます。
自然言語処理 (NLP) では、チャンキングは品詞タグ付けされた単語列から名詞句や動詞句などのフレーズを抽出する処理を指します。「東京の大きな公園」を「東京の」「大きな」「公園」ではなく「東京の大きな公園」という名詞句として認識する処理です。
文字数カウントとの関連では、チャンクサイズの設計が重要です。RAG (検索拡張生成) システムでは、文書をチャンクに分割してベクトルデータベースに格納しますが、チャンクが小さすぎると文脈が失われ、大きすぎると検索精度が下がります。一般的に 200〜1,000 文字 (または 100〜500 トークン) が推奨されますが、最適なサイズは文書の性質と用途に依存します。