AIエージェント活用実践編 / Capstone-A — RAG型業務QAエージェント
ドキュメント取り込みと chunking
無料公開レッスン / 読了目安 6 分
学習のねらい
RAG(Retrieval Augmented Generation、検索拡張生成)システムを構築する上で、まず重要となるのが、参照させたいドキュメントをAIが理解できる形に加工するプロセスです。 このレッスンでは、様々な形式のドキュメントをテキストデータに正規化し、LLM(大規模言語モデル)が扱いやすい「チャンク(chunk、かたまり)」に分割する方法について学びます。 特に、チャンクのサイズをどのように決めるか、そして重要なメタデータ(metadata、付随情報)をどう保持するかがポイントです。
ドキュメントの正規化
業務で扱うドキュメントには、PDF、Markdown、Wordファイル、Webページなど、さまざまな形式があります。これらをRAGで利用するためには、まずプレーンテキスト(装飾のないテキストデータ)に変換し、AIが直接読み込める形に「正規化(normalization)」する必要があります。
主な正規化のステップ
- テキスト抽出: PDFやWordファイルからは、専用のライブラリを使ってテキスト部分を抽出します。画像内のテキストはOCR(Optical Character Recognition、光学文字認識)で変換することもあります。
- 不要な要素の除去: ヘッダー、フッター、ページ番号、広告、ナビゲーションメニューなど、RAGの目的に不要な要素は取り除きます。これにより、LLMがより関連性の高い情報に集中できます。
- 書式の統一: 複数のスペースや改行を統一したり、全角・半角を揃えたりして、テキストの書式を整えます。
これらのステップにより、どんな形式のドキュメントも、一貫したプレーンテキストとして扱えるようになります。
チャンク(chunk)とは?
抽出した大量のテキストデータを、そのままLLMに渡すことは現実的ではありません。LLMには「コンテキストウィンドウ(context window、一度に処理できるテキストの長さ)」に制限があり、また、長すぎるテキストは処理コストも高くなります。 そこで、ドキュメントを意味のある小さな「チャンク」に分割します。チャンクは、RAGシステムが質問に応じて検索し、LLMに渡す最小単位のテキストブロックになります。
チャンクサイズの決め方
チャンクサイズはRAGシステムの性能に大きく影響します。
- 小さすぎるチャンク: 文脈が分断され、情報が不足しやすくなります。例えば、「契約書」という単語だけでは、その契約書の具体的な内容を理解できません。
- 大きすぎるチャンク: LLMのコンテキストウィンドウを超過したり、関連性の低い情報まで含まれてしまい、LLMが重要な情報を見落とす(「ノイズ」が増える)可能性が高まります。また、トークンコストも増大します。
一般的には、数段落から数ページ(200〜1000トークン程度) が推奨されます。 具体的なサイズは、ドキュメントの種類やLLMのコンテキストウィンドウ、タスクの性質によって調整が必要です。例えば、技術文書であればコードブロックを一つのチャンクにまとめる、会議議事録であれば発言者ごとのセクションをチャンクにする、といった工夫が考えられます。
分割戦略
チャンクを分割する際には、単に文字数で区切るだけでなく、文脈を考慮することが重要です。
- 再帰的文字分割(Recursive Character Text Splitter): ドキュメントを大きな単位(例: 段落)から小さな単位(例: 文)へと再帰的に分割していく方法です。これにより、文脈の途中で不自然に切れることを防ぎやすくなります。
- セマンティック分割(Semantic Splitter): ドキュメントの意味内容に基づいてチャンクを分割する方法です。例えば、話題の転換点やセクションの区切りで分割します。これは高度な技術ですが、より高品質な検索結果につながります。
メタデータ(metadata)の保持
チャンクを分割する際、元のドキュメントが持っていた情報(メタデータ)を一緒に保持することが非常に重要です。
保持すべきメタデータの例
- 元のドキュメント名/ID: どのファイルから抽出されたチャンクか。
- ページ番号: 元のドキュメントのどこに情報があったか。
- セクション/章のタイトル: どのセクションに属していたか。
- 作成者/更新日時: 情報の鮮度や信頼性を判断する材料。
- URL: Webページの場合、元のURL。
これらのメタデータは、RAGシステムが回答を生成する際に、引用元(citation) を提示したり、情報の信頼性を判断したりするために活用されます。 例えば、LLMが「この情報はA社の2023年Q3決算報告書の15ページに記載されています」と回答することで、ユーザーは情報の信頼性を確認できるようになります。 メタデータは通常、各チャンクに付随するJSON形式などのデータとして保存されます。
まとめ
ドキュメントの正規化、チャンクへの分割、そしてメタデータの保持は、RAGシステムの基盤となる重要なステップです。 適切なチャンクサイズと分割戦略を選ぶことで、LLMが関連性の高い情報を効率的に利用できるようになり、高品質な回答生成につながります。