A
AIエージェントの仕組み
ch5-s3 · Chunking Strategy

チャンク分割戦略

約 15 分

この回のゴール

1. なぜチャンク分割が重要か

前回は短い FAQ(各 300〜500 文字)をそのまま 1 文書として扱いました。でも現実は:

これを 1 ベクトルで表現したら? - 意味が「平均化」されて個別トピックが検索ヒットしない - 埋め込みモデルの入力上限(512 トークンが多い)を超える

👉 適切なサイズに区切る = チャンク分割 が必要。

2. 4 つの戦略

戦略①: 固定長分割 (Fixed-size)

POST https://api.anthropic.com/v1/messages

戦略②: 段落単位 (Paragraph)

chunks = text.split("\n\n")

戦略③: 再帰的分割 (Recursive)

LangChain の RecursiveCharacterTextSplitter が有名。

1. まず「\n\n」で区切る
2. 大きすぎるチャンクは「\n」で区切る
3. それでも大きい → 「。」「、」「空白」...
4. 目標サイズに収まるまで順に細かく

戦略④: セマンティック分割

3. Overlap(重複)の役割

チャンク間を 少し重ねる ことで、境界の情報欠落 を防ぎます:

Chunk1: 「...有給は 15 日です。加えて夏季休暇が 3 日あります。」
Chunk2: 「加えて夏季休暇が 3 日あります。冬季休暇は 5 日です。」
         └──── overlap 部分 ────┘

質問「夏季休暇は?」で、どちらのチャンクでもヒット可能

overlap サイズの目安

4. チャンクサイズの選び方

サイズ 特徴 向く用途
100 トークン前後 ピンポイント、高精度 FAQ・短い事実
300〜500 トークン 実務の標準 技術ドキュメント
1000〜2000 トークン 文脈豊富 長文推論・物語

トレードオフ: - 小さい: 正確性↑ だが文脈が足りず LLM が答えにくい - 大きい: 文脈豊富だが検索精度↓・トークン料金↑

5. トークンか文字か

日本語では 文字とトークンが乖離 します(第 3 章):

実装の簡単さでは 文字数基準 が多いですが、厳密なら tiktoken で計測します。

6. 前処理の重要性

チャンク分割の前に:

を忘れると、埋め込みが「改行」や「空白」を重みに入れてしまい精度が落ちます。

7. メタデータを付ける

各チャンクに メタデータ を紐付けると検索の質が上がります:

{
    "id": 42,
    "content": "...",
    "source_doc": "HR_manual_v3.md",
    "section": "有給休暇",
    "page": 12,
    "updated_at": "2026-03-15",
}

検索時に 出典表示カテゴリフィルタ新しい文書を優先 などが可能。


まとめ

この回の限界(次への動機)

検索とチャンク分割は揃った。これらを Claude と統合してエンドツーエンドの RAG チャットを作る番。 👉 次回「Claude with RAG」で、完成形のパイプライン + citation(引用元表示)を実装します。

参考文献

A
本家 Claude Academy で手を動かす
この回に対応する Anthropic 公式のレッスンです。ここは「なぜそう動くか」、向こうは「どう書くか」。サインインなしで読めます。
📝 理解度クイズ (3 問) 💡 ログインすると進捗が保存されます

💬 このサブステップの Q&A

まだ質問はありません。最初の質問を投稿してみましょう。

質問の投稿にはログインが必要です。