独自の RAG パイプラインを構築し、大規模に展開
データ処理および情報検索の分野において、すべてに当てはまる万能なソリューションは存在しません。堅牢な Retrieval-Augmented Generation (RAG) システムを構築することは本質的に複雑であり、複数の分野にまたがる専門知識が求められます。特にオープンソースコンポーネントを使用する場合、RAG システムを本番環境に展開するには、厳格なデータ保護を確保しつつ、スケーラビリティと保守性を両立させる必要があり、その難易度はさらに高まります。
Progress Agentic RAG は、こうした課題に対応できるよう設計されています。データ取り込みからチャンク化、検索戦略に至るまで、RAG プロセスのあらゆる要素を個別に調整でき、複雑な構成要素を一つずつ組み合わせる手間を省くことができます。シームレスに統合でき、カスタマイズされた RAG パイプラインを効率的かつ安全に本番環境へ展開することが可能になります。
Retrieval Augmented Generation とは?
Retrieval Augmented Generation (RAG) は、情報検索とテキスト生成を組み合わせた自然言語処理の手法です。3つの項目に分けて説明することができます。
- 検索(Retrieval)
このステップでは、大規模なデータセットやナレッジベースから関連情報を取得します。データセットには、ドキュメント、記事、その他の構造化データや非構造化データが含まれます。検索プロセスでは、クエリやプロンプトに基づいて、最も関連性の高い情報を見つけるために検索アルゴリズムが使用されます。 - 拡張(Augmentation)
次に、取得した情報を用いて入力クエリを拡張します。これは、元の入力と検索結果を組み合わせることで、より豊富なコンテキストを提供することを意味します。この拡張された入力により、より正確で情報量の多い回答を生成できるようになります。 - 生成(Generation)
最後に、テキスト生成モデル (大規模言語モデル: LLM) が、拡張された入力を基に、一貫性があり文脈に即した応答を生成します。この生成ステップでは、クエリに回答したり、プロンプトの意図を満たしたりする自然言語の出力が生成されます。
モジュール型 RAG とは?
モジュール型 RAG (Modular Retrieval Augmented Generation) は、Retrieval Augmented Generation (RAG) フレームワークの中でも、高い柔軟性、拡張性、カスタマイズ性を実現するためにモジュール型アーキテクチャを採用した先進的なアプローチです。
Agentic RAG は、モジュール型 RAG をサービスとして提供する RAG-as-a-Service であり、高い柔軟性とコントロール性を備えています。RAG パイプラインの各プロセスを特定のユースケースに合わせてカスタマイズできます。統合や展開が複雑になりがちな従来の手法とは異なり、Agentic RAG はセットアップ全体をシンプルにする合理的なアプローチを提供します。
どのように機能するのか?
Agentic RAG のモジュール型 RAG フレームワークは、エンドツーエンドの RAG プロセスにおけるそれぞれの役割を担う、4 つの主要コンポーネントから構成されています。
- データ処理コンポーネント
- データストレージコンポーネント
- 検索およびランキングコンポーネント
- LLM コンポーネント
データ処理コンポーネント
このコンポーネントは、動画や表を含むさまざまなファイル形式からデータを抽出する役割を担います。以下のような複数の処理を自動的に実行します。
- 画像からテキストを抽出するための光学文字認識 (OCR)
- 音声データの自動音声認識 (音声からテキストへの変換)
- 表の検出および抽出
- コンテンツのチャンク化
- ナレッジグラフ向けの固有表現認識
カスタマイズ可能なオプション
- チャンクサイズ: コンテンツチャンクのサイズを定義
- 匿名化: 固有表現に基づいてデータを匿名化
- 埋め込み: 使用する埋め込みモデルを選択
- リソース要約: 必要に応じてリソースを要約
データストレージコンポーネント
処理済みのデータは、4 種類のインデックスを備えた堅牢なデータフレームワークを活用し、NucliaDB データベースに保存されます。
- 全文検索インデックス(Full Text Index):包括的なテキスト検索に使用
- チャンクインデックス(Chunk Index):テキストチャンクを効率的に取得するためのインデックス
- ベクトルインデックス(Vector Index):ベクトル埋め込みを用いた類似検索に使用
- ナレッジグラフ(Knowledge Graph):構造化データおよびエンティティ間の関係を管理の
検索およびランキングコンポーネント
このコンポーネントでは、様々な検索戦略やランキング手法を選択でき、取得されるデータが要件を満たすように制御できます。
カスタマイズ可能なオプション
- コンテキストサイズ: 取得するコンテキストのサイズを定義
- リソースコンテキスト: コンテキストとして使用するリソース数を指定
- テキスト階層: 生成されるデータの階層構造を定義
- クエリタイプ: セマンティッククエリ、完全一致クエリ、またはその組み合わせから選択
LLM コンポーネント
アプリケーションの要件に合わせて言語モデル (LLM) をカスタマイズできます。
カスタマイズ可能なオプション
- LLM の選択: 使用する LLM (ChatGPT、Anthropic、Mistral、Gemini) およびそのバージョンを選択
- プロンプト定義: プロンプトと LLM の振る舞いを定義
まとめ
モジュール型 RAG フレームワークは、RAG システムの構築および展開に伴う複雑さに対応する、柔軟性と強力さを兼ね備えたソリューションを提供します。Agentic RAG は、RAG パイプラインのあらゆる要素を細かく調整できるので、特定のニーズに最適化されたシステムを容易に構築し、スムーズに本番環境へ導入することが可能になります。
Agentic RAG について、ご質問がある場合は、当社までお問い合わせください。
Eudald Camprubi
Eudald Camprubi が作成したプログレスのブログをすべて表示します。プログレスでは、アプリケーション開発、展開、データ統合、デジタルビジネスなど、様々なテーマでブログを配信しています。