RAG入門:AIに知識を与える技術

RAG精度改善(1):チャンキング戦略の見直し

生田 陸人
LuaGate エンジニア / 現役エンジニア
編集 LuaGate編集部

このレッスンで分かること

  • この記事では「RAG精度改善(1):チャンキング戦略の見直し」を RAG 実装 の現場で使える形で整理します
  • RAGの精度を左右するチャンキングの重要性 をおさえれば、現場で迷ったときに立ち戻れる
  • なぜチャンキング戦略の見直しが必要なのか? をおさえれば、現場で迷ったときに立ち戻れる
  • 実践的なチャンキング手法の比較 をおさえれば、現場で迷ったときに立ち戻れる
  • 1. 固定長チャンキング(Fixed-size Chunking) をおさえれば、現場で迷ったときに立ち戻れる

RAG精度改善(1) とは

RAGの回答精度を左右する「チャンキング戦略」を徹底解説。固定長分割や再帰的分割の違い、文脈を維持するためのオーバーラップ設定、データの性質に応じた適切なチャンクサイズの選び方など、実践的なテクニックを学べます。

RAGの精度を左右する「チャンキング」の重要性

RAG(検索拡張生成)システムを構築した際、「AIが期待通りの回答をしてくれない」「関連性の低いドキュメントを引用してしまう」といった課題に直面することがあります。その原因の多くは、実はプロンプトではなく、検索の前段階であるチャンキング(Chunking)の工程に潜んでいます。

チャンキングとは、膨大なドキュメントを管理しやすい小さな断片(チャンク)に分割する作業のことです。RAGにおいて、このチャンクは検索の最小単位となります。もし分割の仕方が不適切であれば、AIは必要な情報を正しく見つけ出すことができず、結果として回答の精度が著しく低下してしまいます。

チャンキングはRAGの土台 — 検索の最小単位を決める工程であり、ここが崩れるとプロンプトをどれだけ磨いても精度は伸びません。

本レッスンでは、RAGの精度を劇的に改善するためのチャンキング戦略について、具体的な手法と実践的なテクニックを詳しく解説します。

なぜチャンキング戦略の見直しが必要なのか?

RAGの仕組みを思い出してみましょう。ユーザーの質問に対して、システムはベクトルデータベースから最も類似度の高いチャンクを検索し、それをLLM(大規模言語モデル)に渡します。ここで、チャンキングが適切でないと以下のような問題が発生します。

  1. 文脈の欠落は文章が途中でぶつ切りになり、前後の意味が通じなくなる。
  2. ノイズの混入はチャンクが大きすぎて、無関係な情報が大量に含まれてしまう。
  3. 検索漏れは重要なキーワードが分割されたチャンクの境界線に位置し、正しくヒットしない。

これらの問題を解決するためには、単に文字数で区切るのではなく、ドキュメントの構造や意味を考慮した戦略が必要になります。

diagram (will load when visible)

実践的なチャンキング手法の比較

チャンキングにはいくつかの代表的な手法があります。扱うデータの性質に合わせて最適なものを選択しましょう。

1. 固定長チャンキング(Fixed-size Chunking)

指定した文字数やトークン数で機械的に分割する方法です。実装は非常に簡単ですが、文章の途中で切れてしまうリスクが最も高い手法です。

2. 再帰的文字分割(Recursive Character Splitting)

LangChainなどのライブラリで推奨されている、より洗練された手法です。まず段落(\n\n)で区切り、それでも大きい場合は改行(\n)、句点()、空白という優先順位で、意味の切れ目を探しながら分割します。これにより、可能な限り文章のまとまりを維持できます。

3. セマンティック・チャンキング(Semantic Chunking)

AI(埋め込みモデル)を使用して、文章の意味的な変化を検知し、トピックが変わるタイミングで分割する高度な手法です。計算コストはかかりますが、最も文脈を保持しやすいのが特徴です。

まず再帰的分割から試す — 固定長は雑、セマンティックは重い。汎用ドキュメントなら再帰的分割を起点に、サイズとオーバーラップを調整するのが鉄板です。

手法メリットデメリット適したデータ
固定長処理が速い、実装が楽文脈が壊れやすい構造化されていない雑多なメモ
再帰的分割汎用性が高い、バランスが良い設定の微調整が必要報告書、マニュアル、記事
セマンティック文脈の保持が最強処理コストが高い複雑な議論、物語、専門書

精度を高めるための「オーバーラップ」設定

チャンキングにおいて極めて重要なテクニックが、オーバーラップ(Overlap)の設定です。これは、隣接するチャンク同士で一部の内容を重複させることを指します。

避けたい例 オーバーラップなしの設定 チャンクA:「...プロジェクトの納期は12月20日です。」 チャンクB:「その日までに全てのテストを完了させる必要があります。」

→ 検索でチャンクBだけがヒットした場合、AIは「その日」がいつを指すのか理解できず、回答の精度が落ちます。

良い例 オーバーラップありの設定(例:20%程度の重複) チャンクA:「...プロジェクトの納期は12月20日です。その日までに」 チャンクB:「12月20日です。その日までに全てのテストを完了させる必要があります。」

→ どちらのチャンクがヒットしても、日付と行動の関連性が保たれるため、AIは正確に回答できます。

diagram (will load when visible)

一般的に、チャンクサイズの10%〜20%程度をオーバーラップさせるのがベストプラクティスとされています。

ユースケース別:最適なチャンクサイズの目安

「適切なチャンクサイズはどれくらいか?」という問いへの答えは、データの種類によって異なります。

  • Q&A形式のデータは1つの質問と回答が1チャンクに収まるように調整します(100〜300文字程度)。
  • 社内規定・マニュアルは各条項や手順が途切れないよう、やや長めに設定します(500〜1000文字程度)。
  • 技術ドキュメントはコードブロックが含まれる場合、コードが断片化しないよう構造を意識した分割が必要です。

やってみよう 考えてみよう:カスタマーサポートの対応履歴 過去のサポートメール(1通あたり平均800文字)をRAGに読み込ませる場合、あなたならどのようなチャンキング戦略を立てますか?

  1. 固定100文字で分割する
  2. 「件名」「問い合わせ内容」「回答」の構造を保って1通ごと、あるいは項目ごとに分割する
  3. 5文字ずつオーバーラップさせて500文字で切る

答え:2が最適です。メールは構造が明確なため、意味的なまとまりで分割することで検索精度が飛躍的に向上します。

まとめ:データに合わせた「型」を見つけよう

RAGの精度改善において、チャンキングは「地味ながら最も効果が出る」工程です。以下の3点を意識して、自社のデータに最適な設定を検証してみましょう。

  1. 再帰的分割を基本とし、文章の構造(段落や句点)を尊重する。
  2. オーバーラップを適切に設定し、文脈の断片化を防ぐ。
  3. データの性質に合わせてチャンクサイズを使い分ける。

次回のレッスンでは、検索の精度をさらに引き上げる「HyDE」や「Reranking」といった高度な手法について学びます。

「データはAIのガソリン」と言われますが、RAGにおいては「適切にカットされたデータこそが最高品質の燃料」になります。最初は試行錯誤が必要ですが、ここを丁寧に作り込むことで、驚くほど賢いAIアシスタントが誕生しますよ!

現場でよくある具体例

  1. 業務ケース 1 — 社内規程 200 ページに RAG を導入。チャンクサイズ 512、top-k=5、Re-ranker 有りで Recall@5 が 0.62 → 0.81
  2. 業務ケース 2 — エンジニア向け技術文書では「コードブロックを 1 チャンク」にしたら検索精度が大きく改善
  3. 業務ケース 3 — 営業 FAQ では BM25 + Embedding の Hybrid Retrieval で、固有名詞検索の取りこぼしが減った

次にとるべきアクション

  1. 手元の社内 PDF / FAQ 10 件で RAG ミニ版を作るLangChainLlamaIndex で構築し、「RAG精度改善(1):チャンキング戦略の見直し」の論点を試す
  2. チャンクサイズと検索件数を 2 通り試す — 256 / 512 トークン × top-k=3 / 5 など、定量比較する
  3. 評価指標を 1 つ決める — Recall@k / 回答正答率 / コストのいずれかをチームで KPI 化する

次のレッスン

次は RAG精度改善(2):高度な検索手法(HyDE, Reranking) で、RAG精度改善(2):高度な検索手法(HyDE, Reranking) を学びます。

事前確認 — 進む前に次の 3 つができることを確認しましょう。

  1. RAG精度改善(1) の要点を自分の言葉で説明できる
  2. このレッスンの最小コード (または操作手順) を見ずに書ける
  3. 練習問題やクイズで間違えた箇所を読み直して理解した

理解度チェック (30 秒)

Q. RAG精度改善(1) とは何か、1 文で説明してください。

この章のポイント

A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。

関連レッスン

参考にした出典

学習を加速したい方へ

RAG (検索拡張生成) 入門ガイドを体系的にマスターするなら、chotdekiru の無料学習ポータル で実際に手を動かして学習を始めるのがおすすめです。質問・つまずきも現役エンジニアが伴走します。

復習ミニクイズ

RAGシステムにおいて「前後の文章が分割されたことで、指示語(『その日』『同プロジェクト』など)の内容がAIに伝わらず、回答精度が下がる」という問題が発生しました。この文脈の断片化を防ぐために、最も一般的に推奨される設定はどれですか?

参考リンク