LESSON 30分

ストーリー

田中VPoE
ドキュメントの読み込みとクリーニングができたら、次は「チャンキング」だ。RAGの検索品質を決める最も重要な工程の一つだ
あなた
ドキュメントを小さな断片に分割するんですよね。どのくらいの大きさに分割すればいいんですか?
田中VPoE
それが難問なんだ。小さすぎるとコンテキストが失われ、大きすぎるとノイズが増える。しかもドキュメントの種類によって最適なチャンキング戦略が異なる
あなた
「何文字で区切る」ではダメなんですか?
田中VPoE
固定長チャンキングは最もシンプルだが、文の途中で切れたり、関連する内容が分割されたりする。セマンティックチャンキングや階層的チャンキングなど、より高度な手法を知っておく必要がある

チャンキングの基本原則

なぜチャンキングが重要か

チャンクが小さすぎる場合チャンクが大きすぎる場合
コンテキストが失われるノイズが増える
回答に必要な情報が分断される検索精度が低下する
チャンク数が増えストレージコスト増LLMのトークン効率が悪化
チャンクサイズのトレードオフ:

小 ←──────── チャンクサイズ ────────→ 大
   精度高・網羅性低        精度低・網羅性高
   コンテキスト不足        ノイズ多い

最適なゾーン: 200〜1000トークン(ユースケース依存)

主要なチャンキング手法

1. 固定長チャンキング

最もシンプルな手法。文字数やトークン数で均一に分割します。

設定項目推奨値説明
チャンクサイズ500〜1000トークンドキュメントの種類に応じて調整
オーバーラップ50〜200トークンチャンク間の情報欠落を防ぐ
固定長チャンキング(オーバーラップあり):

原文: [AAAAAA|BBBBBB|CCCCCC|DDDDDD]

チャンク1: [AAAAAA|BB]  ← オーバーラップ部分
チャンク2: [BB|BBBBBB|CC]
チャンク3: [CC|CCCCCC|DD]
チャンク4: [DD|DDDDDD]

メリット: 実装が簡単、処理が高速 デメリット: 文の途中で切れる、意味的な区切りを無視

2. セマンティックチャンキング

テキストの意味的な区切りに基づいて分割する手法です。

セマンティックチャンキングの仕組み:

1. 文単位に分割
2. 各文のEmbeddingを計算
3. 隣接する文のコサイン類似度を計算
4. 類似度が閾値を下回る箇所で分割

文1 ── 0.92 ── 文2 ── 0.88 ── 文3 ── 0.35 ── 文4 ── 0.91 ── 文5

                              ここで分割(閾値: 0.5)
→ チャンク1: [文1, 文2, 文3]
→ チャンク2: [文4, 文5]

メリット: 意味的に一貫したチャンクが生成される デメリット: Embedding計算のコスト、閾値の調整が必要

3. 構造ベースチャンキング

ドキュメントの構造(見出し、段落、セクション)に基づいて分割する手法です。

構造ベースチャンキング(Markdown例):

# RAGシステム設計
## 1. アーキテクチャ ← セクション単位でチャンク化
本文テキスト...
## 2. ベクトルDB    ← 新しいチャンク開始
本文テキスト...
### 2.1 選定基準    ← サブセクションは親に含めるか独立させるかを判断
本文テキスト...

メリット: ドキュメントの論理構造を保持 デメリット: 構造がないドキュメントには適用できない、セクションサイズのばらつき

4. 階層的チャンキング(Parent-Child)

大きなチャンク(Parent)と小さなチャンク(Child)を階層的に管理する手法です。

階層的チャンキング:

[Parent Chunk] 1000トークン
├── [Child Chunk 1] 200トークン ← 検索はChild単位
├── [Child Chunk 2] 200トークン
├── [Child Chunk 3] 200トークン
├── [Child Chunk 4] 200トークン
└── [Child Chunk 5] 200トークン

検索時: Childで類似度検索 → マッチしたChildの親Parentを取得 → ParentをLLMに渡す

メリット: 検索精度(小チャンク)とコンテキスト量(大チャンク)の両立 デメリット: インデックスサイズが増大、実装が複雑


チャンキング戦略の比較

手法実装難易度精度コスト適するドキュメント
固定長均質なテキスト
セマンティック中(Embedding計算)長文の記事、レポート
構造ベース低〜中Markdown、HTML、技術文書
階層的非常に高長い技術文書、マニュアル

オーバーラップ設計

チャンク間のオーバーラップは、情報の欠落を防ぐための重要なパラメータです。

オーバーラップ率効果コスト影響
0%(なし)境界で情報が途切れるリスク最小
10〜20%基本的な情報欠落の防止
20〜30%推奨。多くのケースで効果的
30%以上冗長性が高くなる高(ストレージ・検索コスト増)

「オーバーラップは保険のようなものだ。かけすぎるとコストが嵩むが、かけないと事故が起きる。20%が出発点として妥当だ」 — 田中VPoE


NetShop社への適用

ドキュメント種別推奨チャンキングチャンクサイズオーバーラップ
技術文書(Markdown)構造ベースセクション単位(500〜800トークン)10%
議事録固定長 + 時間ベース500トークン20%
FAQQ&Aペア単位1ペア=1チャンクなし

まとめ

ポイント内容
チャンキングの重要性RAGの検索品質を最も大きく左右する工程
主要手法固定長、セマンティック、構造ベース、階層的の4種類
オーバーラップ20%が推奨の出発点。情報欠落とコストのバランス
選定基準ドキュメントの種類と構造に応じて手法を選択

チェックリスト

  • 4種類のチャンキング手法の特徴を理解した
  • チャンクサイズとオーバーラップのトレードオフを理解した
  • 階層的チャンキングの仕組みと利点を理解した
  • ドキュメント種別に応じた戦略選定ができる

次のステップへ

次は「メタデータ抽出とエンリッチメント」を学びます。チャンクにメタデータを付加することで、フィルタリングや検索精度の向上が可能になります。


推定読了時間: 30分