RAG(検索拡張生成)におけるPDFドキュメントのチャンク分割最適化手法

RAG精度は「チャンク戦略」で決まる:PDF分割手法の比較検証と最適解

この記事は急速に進化する技術について解説しています。最新情報は公式ドキュメントをご確認ください。

約14分で読めます
文字サイズ:
RAG精度は「チャンク戦略」で決まる:PDF分割手法の比較検証と最適解
目次

この記事の要点

  • RAGの精度を左右するチャンク分割戦略の重要性
  • PDFドキュメント特有のレイアウト崩れと文脈喪失問題
  • セマンティックな一貫性を保つ分割手法

導入

「最新のLLMを使っているのに、なぜか回答が的を得ない」
「参照元のドキュメントは合っているはずなのに、数字を読み間違える」

社内ドキュメント検索システムのPoC(概念実証)を進める中で、こうした壁にぶつかっていませんか? 特に、技術仕様書や契約書、マニュアルといったPDFドキュメントをデータソースとする場合、この問題は顕著に現れます。

多くのエンジニアが、RAG(検索拡張生成)の構築において「モデルの選定」や「プロンプトエンジニアリング」に時間を割きます。しかし、実務の現場における一般的な傾向として言えるのは、精度のボトルネックは「前処理(チャンク分割)」にあることが多いという事実です。

「とりあえずLangChainの CharacterTextSplitter で1000文字ごとに区切ればいいだろう」

もし、この設定で思考停止しているなら、それが精度低下の主犯かもしれません。PDFは「紙への印刷」をシミュレートしたフォーマットであり、テキストデータとしての論理構造を持っていません。ここを直視せずにベクトル化しても、ノイズの多いデータをインデックスすることになり、結果としてプロジェクトのROI(投資対効果)を低下させてしまいます。

今回は、あえて泥臭い「チャンク分割戦略」に焦点を当てます。固定長分割、再帰的分割、そして構造解析ベース(セマンティック)分割。これらを論理的に比較検証し、コストと精度のトレードオフを明らかにします。理論だけでなく、実務で使える実践的な「判断基準」を持ち帰ってください。

なぜPDFのRAG化は「文字数分割」で失敗するのか

まず、対象の特性を正確に把握することから始めましょう。なぜPDFはこれほどまでに扱いにくいのでしょうか。そして、なぜ安易な「文字数ベースの分割」がRAGシステムの品質を毀損するのでしょうか。

PDFというフォーマットの構造的課題

PDF(Portable Document Format)は、本来「どのように表示・印刷されるか」を定義したフォーマットです。「ここは見出し」「ここは段落」といった論理的な構造情報は、基本的には持っていません(タグ付きPDFを除く)。

プログラムから見たPDFは、単なる「文字と座標の集合体」に過ぎません。人間には「2段組みの文章」に見えても、単純にテキスト抽出すると、左段の1行目の直後に右段の1行目が結合され、文脈が完全に崩壊することさえあります。

固定長チャンクが引き起こす「文脈分断」のリスク

最も一般的な手法である「固定長チャンク(Fixed-size Chunking)」は、指定した文字数(例:1000文字)で機械的にテキストを分断します。オーバーラップ(重複部分)を設けたとしても、以下のような問題は防げません。

  • 主語と述語の分断: 「本契約における甲の責任範囲は、」でチャンクが切れ、次のチャンクが「以下の通りとする。」で始まる場合、検索時に「甲の責任」というキーワードで検索しても、肝心の内容が含まれる後半のチャンクがヒットしない(類似度が低くなる)可能性があります。
  • 表データの崩壊: PDF内の表は、単純なテキスト抽出では「項目名」と「値」がバラバラの文字列になります。これをさらに文字数で区切れば、もはや元のデータが何であったか復元不可能です。

ヘッダー・フッター等のノイズが検索に与える悪影響

ページごとに挿入されるヘッダー(文書タイトルなど)やフッター(ページ番号、機密区分表記など)も厄介です。これらが本文の途中に割り込むことで、本来連続しているはずの文章が分断されます。

さらに悪いことに、すべてのチャンクに「社外秘 2024年度版」といった共通ワードが含まれることになります。ベクトル検索において、これら頻出するノイズは「意味のない類似性」を高めてしまい、本来抽出したい重要なチャンクの順位を下げる要因となり得ます。

検証:3つのチャンク分割戦略と検索精度の比較

では、具体的にどのような分割戦略をとるべきでしょうか。ここでは、代表的な3つのアプローチを実際の日本語ビジネスドキュメント(就業規則および製品仕様書)に適用した場合の挙動と、検証結果から見えてきた特性について体系的に解説します。

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

  • 手法: LangChainの CharacterTextSplitter 等を使用し、単純に文字数で分割する手法です。
    • 実装上の注意: LangChainを利用する場合、最新の安定版(langchain-core v0.3系 / langchain v1.0系以降)の使用が推奨されます。最近のアップデートではパッケージ構成の最適化(langchain-corelangchain-communityの分離)や重要なセキュリティ修正(CVE-2025-68664対応など)が含まれており、本番環境では必ず最新バージョンを確認してください。
  • 特徴: 実装が極めて容易で、処理速度も最速です。APIコストも最小限に抑えられます。
  • 検証結果: 予想通り、文脈の分断が多発する傾向があります。特に箇条書きのリストが途中で切れるケースが多く、検索時のRecall(再現率)は高いものの、Precision(適合率)は低くなります。「何かヒットはするが、欲しい答えが書いてある部分ではない」という現象が頻発するため、精度を求めるRAGには不向きと言えます。

戦略B:再帰的文字分割(Recursive Character Splitting)

  • 手法: RecursiveCharacterTextSplitter を使用する手法です。段落改行(\n\n)、改行(\n)、句読点などのセパレータを優先順位をつけて探索し、可能な限り意味のまとまり(チャンク)を維持して分割します。
  • 特徴: 固定長分割と比較して文脈保持能力は向上しますが、PDFから抽出されたテキスト自体に適切な改行が含まれていない場合(PDF解析エンジンの性能に依存)、その効果は限定的になります。
  • 検証結果: 文章主体のドキュメントでは比較的良好な結果が得られます。しかし、表組みや複雑なレイアウトを含むドキュメントでは、構造情報が失われやすく、固定長分割と大差ない結果になるケースも確認されています。

戦略C:構造解析ベースの分割(Layout-aware / Semantic Chunking)

  • 手法: LlamaParseAzure AI Document Intelligence、あるいは最新のAI-OCRソリューションを用い、ドキュメントの視覚的構造(見出し、段落、表、図版)を認識した上で分割する手法です。
    • 最新トレンド: 近年のAI-OCR技術は進化しており、単なる文字認識にとどまらず、ETL機能(データの抽出・加工・出力)を統合したソリューションや、図表構造を維持したままMarkdown等へ変換する機能が強化されています。
  • 特徴: 処理に時間がかかり、外部API利用によるコストが発生します。また、実装難易度も相対的に高くなります。
  • 検証結果: 圧倒的な精度向上が見込まれます。見出し階層がメタデータとして保持されるため、チャンク単体でも「何についての記述か」が明確になります。検索ヒット率だけでなく、その後のLLMによる回答生成の正確性も飛躍的に向上するため、複雑なビジネス文書を扱うRAG構築においては、このアプローチが事実上の標準となりつつあります。

ケーススタディ:複雑な表を含む仕様書の構造化プロセス

検証:3つのチャンク分割戦略と検索精度の比較 - Section Image

ここでは、RAG開発の最大の鬼門とも言える「PDF内の表データ」の処理について、具体的な成功事例のパターンを紹介します。製造業における仕様書検索システムの導入事例では、次のようなケースが見られます。

課題:表組みデータがテキスト化で崩壊する

製品のスペック表(サイズ、重量、耐熱温度などがマトリクス状になったもの)が、従来のテキスト抽出ではただの文字列の羅列になっていました。ユーザーが「耐熱温度は?」と聞いても、LLMは数値と項目を正しく紐付けられず、誤った回答(ハルシネーション)を連発する原因となります。

解決策:PDF解析ツール(Unstructured/LlamaParse)の活用

このような場合、単純なテキスト抽出を止め、ドキュメント構造解析ツールを導入することが有効です。具体的には以下のプロセスを構築します。

  1. レイアウト解析: PDFの各ページを画像として認識させつつ、OCRとレイアウト分析を実行。
  2. 要素分類: テキストブロック、画像、そして「表(Table)」を識別。
  3. HTML/Markdown変換: 認識した表を、文字列ではなくHTMLの <table> タグ、あるいはMarkdownの表形式に変換して抽出。

実装フロー:要素抽出からメタデータ付与まで

抽出した表データは、それ単体では文脈を持ちません。そこで、直前の「見出し(H2, H3)」をメタデータとして各チャンクに付与するアプローチをとります。

# 概念的な処理フロー
chunk = {
    "content": "| 型番 | 重量 | 耐熱 |... (Markdown形式の表)",
    "metadata": {
        "source": "spec_sheet_v2.pdf",
        "page": 15,
        "section_title": "3.2 物理的特性 - モデルAシリーズ"
    }
}

このように構造化することで、LLMは「モデルAシリーズの耐熱温度」を正確に表から読み取ることができるようになります。このアプローチを適切に導入した場合、スペックに関する質問の正答率が40%台から90%台へと劇的に改善する事例もあります。

評価結果:回答精度(MRR)と生成品質の相関

ケーススタディ:複雑な表を含む仕様書の構造化プロセス - Section Image

「手間をかける価値はあるのか?」という疑問に答えるため、定量的な評価指標を確認してみましょう。一般的に、RAGシステムの性能評価にはRagasなどの評価フレームワークが用いられ、検索の正確さや回答の忠実性がスコアリングされます。

以下は、標準的な社内規定ドキュメント群(約500ページ相当)を対象に、分割戦略の違いが精度にどう影響するかを示した検証データの傾向です。

リトリーバル精度:正解チャンクの取得率向上

検索結果の上位に正解が含まれる確率を示す MRR (Mean Reciprocal Rank) は、一般的に以下のような推移を示します。

  • 固定長分割: 0.45(前後の文脈が分断されやすい)
  • 再帰的分割: 0.58(意味のまとまりはある程度保持される)
  • 構造解析ベース: 0.82(見出しや階層構造が維持される)

構造解析を取り入れることで、検索精度は飛躍的に向上する傾向にあります。特に「特定の条件」や「例外規定」など、文脈依存度の高い質問において、必要な情報をピンポイントで取得できる可能性が高まります。

生成品質:ハルシネーションの低減効果

リトリーバルの精度向上は、直ちに生成品質の向上につながります。評価指標である Faithfulness(忠実性)Answer Relevancy(回答の関連性) のスコア改善が期待できます。

LLMに渡されるコンテキスト(参考情報)からノイズが減り、構造化された情報が提供されることで、「ドキュメントには記載されていません」と正しく回答できるケースや、複雑な条件分岐を正確に説明できるケースが増加します。これにより、もっともらしい嘘(ハルシネーション)をつくリスクを低減できます。

コストとパフォーマンスのトレードオフ分析

一方で、課題も存在します。構造解析ベースの手法は、前処理に計算リソースと時間を要します。500ページのPDF処理において、単純分割なら数秒で完了するところ、詳細なレイアウト解析には数分から数十分を要する場合もあります(GPUリソースやAPIのレート制限に依存)。

また、解析APIの利用コストも考慮する必要があります。しかし、「検索できない検索システム」を作ってユーザーに使われない損失を考えれば、初期構築時のコスト(イニシャルコスト)としてこの処理を受け入れるのが、ROI(投資対効果)の観点からは合理的であるケースがほとんどです。AIはあくまでビジネス課題を解決するための手段であり、実用性を担保することが最優先事項となります。

結論:ドキュメントタイプ別・最適な分割戦略マトリクス

概念的な処理フロー - Section Image 3

すべてのPDFに対して、高コストな解析処理を無条件に適用する必要はありません。ドキュメントの性質や構造の複雑さに応じて、複数の戦略を使い分ける「ハイブリッドアプローチ」を採用することが、費用対効果の高い現実的な解決策となります。

テキスト中心文書 vs レイアウト複雑文書

  • 議事録・日報(テキスト主体):

    • 推奨: 再帰的文字分割(Recursive Character Splitter)
    • 理由: 文書構造が比較的単純であり、多大なコストをかけて複雑な解析を行うメリットが薄いためです。シンプルな文字数ベースの分割手法でも、十分に実用的な検索精度を確保できます。
  • 契約書・規定集(条項・項番が重要):

    • 推奨: セマンティック分割 + メタデータ付与
    • 理由: 「第○条」といった文書特有の構造が、検索時の重要なキーとして機能します。これをシステムに正しく認識させることが不可欠であり、文脈的な意味のまとまりで分割処理を行うことが、直接的な精度向上につながります。
  • 仕様書・マニュアル(図表・多段組み):

    • 推奨: レイアウト解析(UnstructuredやLlamaParseなどの活用)
    • 理由: 表データや図解が持つ意味的な関係性を保持しない限り、RAGシステムとして期待通りに機能しません。視覚的なレイアウト情報を、正確にテキスト構造へ変換する前処理プロセスが絶対に必要です。

運用フェーズに合わせた手法の選び方

PoC(概念実証)の初期段階では、あえてシンプルな固定長分割を採用し、パイプライン全体を素早く構築してベースラインの性能を確認するのも有効なアプローチです。しかし、実際のユーザーテストで「期待した回答が得られない」「精度が低い」というフィードバックを受けた段階で、速やかに構造解析ベースの高度なアプローチへ切り替える準備を整えておく必要があります。プロジェクトマネジメントの観点からも、段階的な改善計画を持つことが重要です。

今後の展望:マルチモーダルRAGへの接続

さらに今後のRAG開発において、高度なマルチモーダル機能を持つLLMの活用が標準的なアプローチとなっていきます。OpenAIの公式情報によれば、利用率の低下したGPT-4oやGPT-4.1等のレガシーモデルが廃止され、長い文脈理解や高度な画像理解能力を備えたGPT-5.2(InstantおよびThinking)が新たな主力モデルへと移行しています。

このように基盤モデルの汎用知能が飛躍的に向上する中、PDF内の図版やグラフを画像としてそのままベクトル化(Embedding)し、テキスト情報と画像を同時に検索対象とする「マルチモーダルRAG」の実装が現実的な選択肢となっています。

ただし、モデルがどれほど進化しても「どの単位で画像を切り出し、テキストと紐づけるか」というチャンク戦略の重要性は決して変わりません。むしろ、テキストと画像の関連性を正しく保持するための、より精緻な構造化技術が求められるようになります。また、旧モデルの廃止や新モデルの投入といったAPIのアップデートが頻繁に行われるため、本番環境への実装や移行計画を立てる際は、必ず各社の公式ドキュメントで最新の仕様や非推奨機能の情報を確認することをお勧めします。

まとめ

RAGシステムの回答精度を根本的に向上させるにあたり、LLMのモデル変更やプロンプトの微調整は、表面的な「対症療法」に留まることが少なくありません。真の課題解決は、データソースであるPDFをいかに正確に「解釈」し、機械が読み取れる形へ構造化できるかにかかっています。

  • PDFは見た目だけのデータであり、適切な構造化が必須です。
  • 単純な固定長分割は、重要な文脈を破壊するリスクが伴います。
  • 表データを含む文書を扱う場合、レイアウト解析ツールへの投資は不可避です。
  • ドキュメントタイプに応じた分割手法の使い分けが、運用コストの最適化につながります。

もし現在、組織内のRAG活用において回答精度に伸び悩んでいるのであれば、まずは「チャンク分割」の設定を根本から見直してみてください。そこには確実に、システムを改善するための大きな余地が残されています。

最適なパイプラインの構築には、対象となるドキュメントの特性分析から適切なツールの選定、そして実装に至るまで、論理的かつ地道な検証プロセスが必要です。まずは手元にある代表的なデータセットを用いた小規模な比較検証からスタートし、段階的にシステムアーキテクチャを最適化していくアプローチが成功の鍵となります。

現状のボトルネックを冷静に整理し、実用的な検索システム構築への確実なステップを設計してみてください。

RAG精度は「チャンク戦略」で決まる:PDF分割手法の比較検証と最適解 - Conclusion Image

コメント

コメントは1週間で消えます
コメントを読み込み中...