データ活用コラム

RAGのドキュメント検索の精度を高めるチャンク分割とは

RAG(Retrieval-Augmented Generation)やAIエージェントなど、企業が持つデータを生成AIで有効的に活用する手法に注目が集まっています。これらの仕組みにおいて、必要な情報を探し出すために重要な役割を担うのが「ベクトル検索」です。
ベクトル検索の精度は、データの検索単位である「チャンク」に大きく左右されます。
本記事では、ベクトル検索の精度向上のためのチャンクの分割手法と、有効なチャンクを継続的に作成するためのデータ統合方法を解説します。

生成AI

データ活用

Shinnosuke Yamamoto -読み終わるまで6分

チャンク分割の概要

チャンク分割とは、ベクトル検索において大規模な非構造化データ(ドキュメントや画像、音声など)を、より小さなデータのかたまりである「チャンク」に分割するデータの前処理です。チャンクは、ベクトル検索を行うためのベクトルデータベースに格納される情報の単位を定義し、検索時の精度を左右する重要な要素です。

まずはチャンク分割が必要となる理由と、チャンク分割時に考慮すべき基本要素について解説します。

なぜチャンク分割が必要か

生成AIには、モデルごとに「コンテキストウィンドウ」と呼ばれる一回の生成において入出力で取り扱うことができるデータ量の上限が定められています。そのため、数十~数百ページに及ぶような膨大なテキストデータをそのまま取り扱うことは現実的ではありません。生成AIがデータを取り扱ううえでは、コンテキストウィンドウの大きさに応じて、必要な情報を選別してデータ量を限定することが求められます。

また、データの全量ではなく関連性の高い情報だけに限定することは、ハルシネーションを抑制するうえでも重要な役割を果たします。

例えば、ユーザーが生成AIに対してある質問を行い、PDF形式のビジネスレポートに基づいて回答をさせるとします。ビジネスレポートは、第1章から第5章までで構成され、それぞれ異なる著者が異なるテーマで執筆しています。ユーザーが求めている情報は第3章の情報であるとき、もしレポートの全量を生成AIに与えると、全く関係のない第3章以外の章もノイズとして回答に含まれます。

期待する回答を導くためにも、適切なまとまりに情報を分割し、ノイズを最小限に抑えることが重要です。

サイズとオーバーラップ

チャンク分割を設計するうえで重要な基本要素が「サイズ」と「オーバーラップ」です。これらのパラメーターの設定が、検索の精度や最終的な回答の品質に影響を与えます。

サイズ

サイズとは、一つのチャンクを構成する情報の文字数やトークン数の最大値です。最適なチャンクのサイズは、ユースケースやLLMのコンテキストウィンドウによっても変動します。

サイズを小さく設定すればデータは細かく分割されます。小さなチャンクは、固有名詞やキーワードなど特定の単語をピンポイントで特定するようなユースケースで役立ちます。その反面情報が限定的になるため、データ全体の文脈や全体的な理解が必要なユースケースには向きません。

一方、サイズを大きくすれば検索時に得られる情報量が広範囲になるため、データ全体の文脈や全体的な理解が必要なユースケースに対応することができます。しかし全く文脈が異なる情報や、期待しないノイズとなる情報が含まれてしまう可能性があります。また、LLMのコンテキストウィンドウが限定的である場合には、検索結果として取得するチャンクの数(Top-k)を抑える必要があります。

オーバーラップ

オーバーラップとは、チャンク同士でどの程度の情報の重なりを許容するかを示す値です。データが細かいチャンクに分かれることにより、チャンクごとに情報が分断され、本来存在する文脈が消失するおそれがあります。適切なオーバーラップの設定により、チャンク間の文脈の連続性を保つことが重要です。適切なオーバーラップの範囲もユースケースにより様々です。

例えば、FAQなどのピンポイントで情報を抽出するようなタスクでは、必要な情報が記述された箇所が抜き出せればよいため広範なオーバーラップは求められません。

他方、物語性のある内容や技術的な論理構造がある内容の検索など、データの全体の文脈の維持が求められる場合には、チャンク間で一定の情報の重なりを設けることによって情報の連続性を持たせる必要があります。

主要なチャンク分割アプローチ

チャンク分割には、そのアプローチに基づいていくつかの主要な手法が存在します。それぞれの手法には、得意なデータ構造やメリット・デメリットがあり、その特性に応じた戦略的な手法の選択が重要です。

img_column_data-utilization-chunking_01.png

固定長チャンキング

固定長チャンキングは、データを指定された文字数やトークン数で分割する最もシンプルな分割アプローチです。

チャンクサイズは一定であり、機械的に分割するため計算コストが低く、シンプルに実装することができます。一方、固定サイズで機械的に分割するために情報の文脈や意味が無視されるため、チャンク内で情報が途切れるおそれがあります。

再帰的チャンキング

再帰的チャンキングは、段落や単語などの階層的な区切り文字であるセパレーターによってデータを分割するアプローチです。

このアプローチは、データ内に適切な単位でのセパレーターが存在していることが前提になります。セパレーターが存在する場合、段落等の一定のまとまりでチャンクを分割できるため、文脈を可能な限り維持することが可能です。とはいえ、明確なセパレーターやー階層構造がない場合には十分な効果を発揮することが難しくなります。

構造認識チャンキング

構造認識チャンキングは、文書などのデータの論理的な構造(見出しやリストなど)を利用してチャンクを分割するアプローチです。マークダウン記法等で表現される構造的なデータで特に効果を発揮します。

構造認識チャンキングでは分割時にデータの構造を理解したうえで分割を行うため、文脈を論理的に保持することが可能です。そのため、明確な構造を持たないデータには適用することができません。

セマンティックチャンキング

セマンティックチャンキングは、データの意味的(セマンティック)なまとまりに基づいてデータを分割するアプローチです。再帰的チャンキングや構造認識チャンキングは区切りや段落等のデータ構造に基づいて分割することで意味あるまとまりとしてのチャンクを作成しますが、セマンティックチャンキングではより高度に意味的なまとまりを導きます。

具体的には、データをベクトルに変換して類似度の計算を行うことによって、明確な類似度の境界をチャンクの分割箇所として特定します。ベクトルにおける類似度の計算により、文章の意味を考慮してのチャンクの作成を実現することが可能です。しかしデータ全体のベクトル化と計算が必要となるため、相応の処理コストが求められます。

精度向上のためのデータ統合

これまで、ベクトル検索において検索精度を高めるためのチャンク分割の概念とアプローチについて解説してきました。チャンク分割時のパラメーター(サイズやオーバーラップなど)や分割アプローチ(固定長チャンキングなど)は、データをどのように生成AIで扱いたいかというユースケースや、データの構造によって戦略的に選択することが重要です。

一方、チャンキング戦略は、チャンク分割の設計だけに留まりません。そもそも分割すべきデータをどのように収集するのか、検索精度や回答精度を高めるためにはどのような前処理を行う必要があるのか、データ処理の設計も重要な要素となります。

データの収集

一般にビジネスにおいて活用したいと考えるデータは、それぞれ管理されている場所があります。例えば社内規約や手順書などのドキュメントは、企業のファイルサーバーやクラウドストレージで管理されていることが一般的です。提案書や設計書、レポートなど扱うべきデータを広範にするほど、個々に収集して個別にチャンク分割を行っていくことは現実的ではありません。

例えば、Amazon Bedrock for Knowledge BaseやAzure AI Search、Vertex AI Searchなどのクラウドで提供されるベクトル検索サービスを用いる場合、どのようにしてデータをベクトル検索側のクラウドにまで運び出すかを考える必要があります。

データを収集する方法は、使いたいデータがどのシステム環境に置かれているかによって様々な選択肢があります。例えば、ファイルであればFTPやSFTP、HULFTによる連携が考えられます。データベースであればODBCやJDBC、専用のAPIが提供されていればAPIでの連携が考えられるでしょう。

メタデータの付与

データを収集した後は、収集したデータに対して副次的な情報をメタデータ(データに関するデータ)を付加します。メタデータはベクトル検索の精度を高めるほか、最終的なLLMの回答生成時に特定の情報を考慮させることができます。

検索精度を高めるうえでは、タグ情報をメタデータに付与することが有効です。タグ情報とは、データが「財務」関連か「人事」関連か、「提案書」か「手順書」か、「製造業界」関連か「金融業界」関連か、など、ある特定の基準に基づいてデータを端的に分類する情報です。これらの情報は事前に整理されていなくともLLMと連携して動的にタグ付けを行うことができます。

回答時に考慮させるべき情報としては、更新日やデータの所在を示すパスやURLが挙げられます。更新日はデータがいつ時点の情報なのかを示します。LLMが更新日を把握することで、情報が新しいのか古いのかを認識し、情報の鮮度を考慮した回答を導くことができるようになります。パスやURLは、回答時に提示することで、ユーザーが参照元のデータを辿ることができるようになります。LLMの回答のみならず元のデータを見たいと言うニーズがある場合に有効です。

データの構造化

メタデータに加えて、データそのものに対するアプローチも重要です。先に挙げたような再帰的チャンキングや構造認識チャンキングを行うためには、文章内に明確な構造を持つことが求められます。しかし、大抵のデータは、LLMにとって認識が容易な構造やセパレーターを持っていません。

データの構造化は、データをOCR及びLLMと連携することにより実現することができます。例えば、Azure Document Intelligenceと連携することで、PDFドキュメントをマークダウン記法に変換することができます。

マークダウン記法に変換することができれば、見出しを示す「#」をセパレーターとして再帰的チャンキングを行ったり、マークダウン構造そのものを利用して構造認識チャンキングを行うことができるようになります。

データを統合するならiPaaS

チャンキング戦略を考えるうえでは、データを管理元から収集して必要な前処理やメタデータの付与を行い、ベクトル検索サービスに渡していくまでのデータ処理を設計することが重要です。

これらのデータ処理では、データの管理元であるファイルサーバーやクラウドストレージ、データを処理するためのLLMやOCR、そしてベクトル検索サービスなど、様々なシステムやサービスと連携することが求められます。

データ統合プラットフォーム「iPaaS (Integration Platform as a Service)」 は、様々なシステムやサービスを統合し、データ処理を一元的なパイプラインとして実現することが可能です。

iPaaS型データ連携基盤 HULFT Square(ハルフトスクエア)

HULFT Squareは、「データ活用するためのデータ準備」や「業務システムをつなぐデータ連携」を支援する日本発のiPaaS(クラウド型データ連携プラットフォーム)です。各種クラウドサービス、オンプレミスなど、多種多様なシステム間のスムーズなデータ連携を実現します。

さいごに

今回は、生成AIで社内・社外のデータをビジネス活用するうえで重要なベクトル検索の精度を高めるチャンク分割に焦点を当て、チャンク分割の基本要素とアプローチ、データ統合のポイントを紹介しました。

RAGやAIエージェントの活用では、業務ユースケースやアウトプットに注目されがちですが、安定的な運用のためには精度向上における継続的な取り組みが不可欠です。戦略的なチャンク分割とデータ統合は、こうした生成AI活用の持続的発展において重要な役割を担うでしょう。

セゾンテクノロジーのオンライン相談

当社のデータ活用プラットフォームについて、もう少し詳しい話が聞きたい方はオンライン相談も承っています。

執筆者プロフィール

山本 進之介

  • ・所 属:データインテグレーションコンサルティング部 Data & AI エバンジェリスト
  • 入社後、データエンジニアとして大手製造業のお客様を中心にデータ基盤の設計・開発に従事。その後、データ連携の標準化や生成AI環境の導入に関する事業企画に携わる。2023年4月からはプリセールスとして、データ基盤に関わる提案およびサービス企画を行いながら、セミナーでの講演など、「データ×生成AI」領域のエバンジェリストとして活動。趣味は離島旅行と露天風呂巡り。
  • (所属は掲載時のものです)

おすすめコンテンツ

AI時代のデータ探索:ベクトル検索の手法とデータ連携方法を解説

AI時代のデータ探索:ベクトル検索の手法とデータ連携方法を解説

AI時代を支えるベクトル検索の手法、ならびにデータ資産が眠るデータソースとベクトルデータベース間のデータ連携の方法について解説します。

詳細ページを見る

RAGに求められるデータ基盤の要件とは

RAGに求められるデータ基盤の要件とは

生成AIのアプローチの一つである「RAG」に着目し、RAGをビジネスで活用するために必要となるナレッジベースを支えるデータ基盤の整備のポイントをご紹介します。

詳細ページを見る

脱PoC!RAGの本番運用を支える「データパイプライン」とは

脱PoC!RAGの本番運用を支える「データパイプライン」とは

RAGの本番運用を支えるデータパイプラインの構築と、その実現を助けるiPaaSの役割について解説します。

詳細ページを見る

データ活用コラム 一覧

データ活用コラム一覧

Change Location

Are you visiting HULFT.com (Japanese language) outside Japan ?
When connecting "HULFT" to Japan from overseas, please select "HULFT8".

日本国外からHULFT.com(日本語)にアクセスされようとしています。
海外から日本の「HULFT」と接続する製品をお探しの場合、「HULFT8」をお選びください。