ワークフローのステップ
一般的な RAG ワークフローは、取り込みとオンライン処理という 2 つの主要フェーズで構成されます。取り込み (前処理、ステップ 1〜4) は RAG システム向けにデータを準備する工程で、通常はオフラインで実行されます。オンライン処理 (ステップ 5〜7) は、データの検索と応答生成を中心とした、RAG システムのリアルタイム処理を担います。1
Document parsing (ドキュメント解析)
CSV、Markdown、PDF など、特定のファイル形式に対応したドキュメントローダーを使用して、データを読み込み、デジタルテキストに整形します。このステップでは、コンテンツに加えて、出典やページ番号などの関連メタデータも抽出します。ファイルの品質や形式によっては、ユースケースの要件に合わせてデータクリーニングやカスタマイズが必要になる場合があります。
2
分割
モデルのコンテキストウィンドウの制限に対応するため、ドキュメントを小さなチャンク (断片) に分割します。チャンク化にはさまざまな戦略があり、チャンクサイズ、オーバーラップサイズ、スライディングウィンドウが、調整可能な主要ハイパーパラメータです。
3
Vector embeddings (ベクトル埋め込み)
各テキストチャンクを、Embedding (埋め込み) モデルを用いてベクトル表現に変換します。これらの埋め込みにより、意味的類似度に基づくコンテンツ検索が可能になります。
4
Vector store (ベクトルストア)
埋め込みを、対応するコンテンツおよびメタデータとともにベクトル DB に格納します。インデックスには埋め込みが使用されます。ベクトル DB には、FAISS、ChromaDB、Qdrant、Milvus など、さまざまな選択肢があります。
5
Retrieval (検索)
クエリも同様に埋め込み、retriever 関数を使用して、特定の類似度指標に基づき、クエリベクトルに最も近いチャンクベクトルをベクトル DB から特定します。このステップでは、取り込みワークフローで保存した埋め込みを活用します。
6
Reranking (再ランク付け)
オンライン処理フェーズにおけるオプションのステップです。Reranker モデルを使用して、取得したチャンクを関連度順に並べ替え、不要なチャンクを取り除くこともできます。
7
Q&A 生成
LLM がユーザークエリと最終的に取得されたチャンクを受け取り、根拠のある応答を生成します。
連携ツールを使った RAG 構築
以下の連携ツールを使用して、SambaNova のモデルで RAG ワークフローを実装できます。LangChain
LangChain の検索およびチェーンの抽象化を使用して RAG パイプラインを構成。
LlamaIndex
LLM 向けデータフレームワークである LlamaIndex で RAG アプリケーションを構築。
Haystack
Haystack のコンポーネントベースのフレームワークによる、本番環境対応の RAG パイプライン。
Neo4j
ナレッジグラフ RAG アプリケーションのためのグラフベース検索。
Milvus
スケーラブルな RAG デプロイメントのための高性能ベクトル DB。
LangFlow
ドラッグ&ドロップでパイプラインを構築できるビジュアル RAG ワークフロービルダー。

