ワークフローのステップ
一般的なRAGのワークフローは、取り込みとオンライン処理の2つの主要なフェーズで構成されています。取り込み、つまり前処理 (ステップ1-4) は、RAGシステム向けにデータを準備するオフライン処理です。一方、オンライン処理 (ステップ5-7) は、実行時にデータの検索や応答生成を行うリアルタイム処理です。1
Document parsing (ドキュメント解析)
CSV、Markdown、PDFなど、特定のファイル形式に対応したドキュメントローダーを使用して、データを読み込み、デジタルテキスト形式に変換します。元データのコンテンツや、出典・ページ番号などのメタデータも抽出されます。ファイルの品質や形式に応じて、データクリーニングやカスタマイズが必要になることもあります。
2
分割
モデルのコンテキストウィンドウの制限に対応するため、文書を小さなチャンク (断片) に分割します。チャンクサイズ、オーバーラップサイズ、スライディングウィンドウといったハイパーパラメータを調整することで、さまざまなチャンク化の戦略を実行できます。
3
Vector embeddings (ベクトル埋め込み)
各テキストチャンクを、Embeddingモデルを用いてベクトル表現に変換します。このベクトルは意味的類似度に基づく検索を可能にします。
4
Vector store (ベクトルストア)
変換されたベクトルと、それに対応する元コンテンツやメタデータを、ベクトルデータベースに格納します。インデックスとして埋め込みベクトルが使用されます。FAISS、ChromaDB、Qdrant、Milvusなど、さまざまなベクトルデータベースが利用可能です。
5
Retrieval (検索)
クエリもEmbedding (ベクトル化) した上で、retriever関数により、意味的類似度に基づいて最も近いチャンクがベクトルデータベースから取得されます。この処理では、前半のステップで保存されたベクトル情報を活用します。
6
Reranking (再ランク付け)
取得されたチャンクの中から、関連性の高い順に並び替えたり、不要なチャンクを取り除いたりするために、Rerankingモデルを使用することができます。こちらはオンライン処理におけるオプションのステップです。
7
Q&A生成
LLMは、ユーザークエリと最終的に取得されたチャンクをもとに、根拠のある応答を生成します。