検索結果に基づくと、ETL (抽出、変換、ロード) は、検索拡張生成 (RAG) システムのデータ取り込みパイプラインで重要な役割を果たしています。
1. 抽出: RAG データ取り込みパイプラインの最初のステップは、データベース、サーバー、データ センター、オンライン ソースなどのさまざまなソースからデータを抽出することです。これには、テキスト ファイル、CSV ファイル、PDF ドキュメントなどの構造化データと非構造化データが含まれます。 LangChain は、さまざまなソースからデータをロードするためのさまざまなドキュメント ローダーを提供します。
2. 変換: 抽出されたデータは、次のような前処理ステップを経ます。
- テキストの分割: 長いテキストは、埋め込みモデルの最大トークン長に合わせて小さなセグメントに分割されます。
- トークン化: テキストは単語やフレーズなどの個々のトークンに分割され、より効率的かつ正確な表現が作成されます。
3. ロード: 前処理されたデータは、テキストを数値形式で表す高次元ベクトルに変換されます。これらの埋め込みは、迅速な検索および取得操作のために最適化された、Milvus などの特殊なベクトル データベースに保存されます。
ETL プロセスは、効率的な取得と言語モデルとの統合を可能にする方法でデータが収集、変換され、システムにロードされることを保証するため、RAG データ インジェスト パイプラインにとって重要です。この構造化されたアプローチに従うことで、RAG システムは外部データ ソースを効果的に活用して言語モデルの知識を強化し、ユーザーのクエリに対してより正確で状況に応じた応答を提供できます。
要約すると、ETL プロセスは、システムが検索拡張生成プロセスで使用するために大量の多様なデータを取り込んで準備できるようにするため、RAG データ取り込みパイプラインの基本コンポーネントです。
引用:[1] https://www.crossml.com/build-a-rag-data-ingestion-pipeline/
[2] https://aws.amazon.com/blogs/big-data/build-a-rag-data-ingestion-pipeline-for-large-scale-ml-workloads/
[3] https://docs.zenml.io/user-guide/llmops-guide/rag-with-zenml/data-ingestion
[4] https://developer.nvidia.com/blog/rag-101-demystifying-retrieval-augmented-generation-pipelines/
[5] https://mallahyari.github.io/rag-ebook/03_prepare_data.html