RAGチャンキング戦略:検索精度を高めるためのドキュメント分割法
RAGの失敗の多くは、ドキュメントの分割方法に起因します。
検索精度が低い場合、まずプロンプトやLLMを変更するのではなく、チャンクを確認してください。データベースに正しい情報があるにもかかわらずシステムが見つけられない場合、チャンキング戦略に問題がある可能性が高いです。
不適切なチャンキングは、主に3つの問題を引き起こします。
• 境界の切断: 回答を含む文が2つに分割されてしまう。どちらの断片も、クエリに一致するのに十分な情報を持っていない。 • コンテキストの希釈: 大きなチャンクの中に、1つの関連する文と10個の不要な文が含まれている。余分なテキストがセマンティック(意味的)な信号を弱めてしまう。 • メタデータの欠如: チャンクにソースや日付に関する情報がないため、フィルタリング検索が不可能になる。
パイプラインを改善するために、以下の4つの戦略を活用してください。
1. 固定サイズ・チャンキング
レポートや記事のような、長く連続した散文に最適です。 • 256〜512トークンを使用します。 • 文の分割を防ぐため、10%〜15%のオーバーラップ(重複)を設定します。
2. セマンティック・チャンキング
FAQやサポートドキュメントのような、情報の密度が高いテキストに最適です。 • トークン数ではなく、トピックの切り替わりに基づいてテキストを分割します。 • これにより、一つの完結した概念をまとめて保持できます。
3. 構造的チャンキング
技術ドキュメント、Markdown、またはHTMLに最適です。 • ヘッダー(H1、H2、H3)に基づいてテキストを分割します。 • メタデータが付与されるため、セクションごとに検索をフィルタリングできます。
4. 階層型(親子)チャンキング
精度とコンテキストの両方を必要とする本番環境のシステムに最適です。 • 精密なベクトル検索のために、小さな子チャンク(64〜128トークン)を作成します。 • それらを、LLMが読み取るための大きな親チャンク(512〜1024トークン)に紐付けます。 • これにより、両方の利点を享受できます。
サイズの選び方:
• 128–256トークン: 事実確認や技術ドキュメントに適しています。 • 256–512トークン: 一般的な用途における確実な出発点です。 • 512–1024トークン: 長文の分析的な質問に使用します。
黄金律:リリースする前に、必ず戦略をテストしてください。
30〜50個の実際のクエリセットを作成します。正解をアノテーション(注釈付け)します。recall@3を測定します。recallが80%を超えるまで、埋め込みモデル(embedding model)を変更しないでください。
Optional learning community: https://t.me/GyaanSetuAi
