マルチモーダルRAG:よりスマートなAIのためにテキストを超えて拡張する

過去1年半の間に、Retrieval Augmented Generation (RAG)は、大規模言語モデル(LLM)の応答を関連する文脈情報を用いて改善するための強力な手法となり、幻覚-LLMがもっともらしく聞こえるが事実とは異なる応答を生成する-のリスクを大幅に低減した。
しかし、実世界のデータはテキストだけでなく、画像、動画、表、様々な文書形式など、多くの場合、テキストをはるかに超えています。そこで、Multimodal RAG が重要になる。異なるデータタイプを統合することで、AIモデルにさらに信頼性の高い知識を提供することができる。
この投稿では、以下についてお話します:
- 従来のテキストベースのRAGからマルチモーダルRAGへのRAGの進化
- Milvus](https://zilliz.com/what-is-milvus)ベクトル・データベースがどのように多様なデータタイプの保存と検索を可能にするか。
- これらの複雑な操作を加速するNVIDIA GPUの役割
- この技術の潜在的な応用と利点
あなたがAI愛好家であろうと、RAGをプロジェクトに加えようとしている開発者であろうと、この投稿はRAGシステムの能力を再定義するために設定された技術についての貴重な洞察を提供します。
##RAGの進化:テキスト中心からマルチモーダルへ
従来のRAG
テキストベースのRAGは、知識ベースから関連するテキストベースのコンテキストを検索することで、LLM応答を強化する。以下は典型的なRAGワークフローの概要である:
1.ユーザーはシステムにテキストクエリを送信する。 2.2.クエリはベクトル埋め込みに変換され、それを使ってMilvusのようなベクトルデータベースを検索する。ベクトルデータベースは、ベクトルの類似度に基づいて、クエリと密接に一致する文章を検索する。 3.3.関連する文章は補足コンテキストとしてLLMに渡され、クエリに対する理解を深める。 4.LLMは、提供されたコンテキストとともにクエリを処理し、より情報に基づいた正確な応答を生成する。
図1- RAGの仕組み.png](https://assets.zilliz.com/Figure_1_How_RAG_works_24108cefb1.png)
図RAGの仕組み
従来のRAGはLLMの出力を向上させるのに非常に効果的であったが、テキストデータに限定されていた。多くの実世界のアプリケーションでは、知識はテキストをはるかに超え、重要な文脈を提供する画像、図表、その他のモダリティを含んでいる。
マルチモーダルRAG:テキストを超えて拡張する
マルチモーダルRAGは、異なるデータタイプの使用を可能にすることで、上記の制限に対処し、LLMにより良いコンテキストを提供する。
この進化の鍵となるのが、LLaVA (Large Language and Vision Assistant)で、言語(テキスト)と視覚(画像)の両方を統合し、大規模言語モデル(LLM)の能力を強化するために設計されたマルチモーダルモデルである。LLaVAは、視覚コンテンツから意味のある情報を抽出し、それをテキスト記述に変換します。このテキスト記述は、埋め込みモデルによって処理され、Milvusのようなベクトルデータベースに格納することができます。
以下は、LlaVAと埋め込みモデルやベクトルデータベースとの連携例です。
図:LlaVaが画像について質問されたときに生成できる例](https://assets.zilliz.com/image_1_a3fb2be86a.png)
図:LlaVaが画像について質問されたときに生成できる例
マルチモーダルRAGパイプラインの主な構成要素
多様なデータタイプを処理するために、マルチモーダルRAGパイプラインは、すべてのモダリティを統一されたフォーマット、通常はテキストに変換する。この変換は通常、一般的な画像やグラフのようなグラフィックデータを扱う特殊な視覚言語モデル(VLM)を使用して達成される。VLMはこれらの非テキストソースから意味のある情報を抽出し、コンテキスト生成のために大規模言語モデル(LLM)が使用できるテキストベースの埋め込みに変換する。
VLMsに加えて、他のいくつかの重要なコンポーネントも、マルチモーダルRAG**システムが効率的かつ大規模に動作することを保証する。以下に、このようなパイプラインの主要コンポーネントと、これらのコンポーネントがどのように実装されているかを示す代表的な例を示す。
視覚言語モデル(VLM)**:これらのモデルは、画像、図表、グラフなどの視覚コンテンツを処理し、LLMが利用できるテキスト形式または埋め込み形式に変換します。
- 例Neva 22B (NVIDIA):一般的な画像理解用に最適化されたLLaVAの改良型で、視覚入力からテキスト記述を解釈し生成することができる。
- 例DePlot(Google):チャートやプロットのようなグラフデータ**の処理と分析に特化しており、より技術的なビジュアルコンテンツに最適。
ベクターデータベース](https://zilliz.com/learn/what-is-vector-database)**:ベクトル・データベースは、テキスト、画像、その他のモダリティを含む様々なデータタイプのベクトル埋め込みを保存・検索する、マルチモーダルRAGシステムの重要なコンポーネントである。このデータベースは類似検索を行い、LLMが最も関連性の高い情報に素早くアクセスできるようにする。
例Milvus**は、NVIDIA GPU加速ベクトル検索をサポートするベクトルデータベースの代表的な例であり、大規模なマルチモーダルデータに対して卓越したパフォーマンスを提供する。
- GPUアクセラレーションMilvusはNVIDIA GPUを使用し、ベクトルインデックス作成とクエリを高速化します。
- スケーラビリティ億単位の類似検索が可能なため、大容量のアプリケーションに適しています。
- 効率性GPUによるインデックス作成とクエリの組み合わせにより、最大限のスループットと最小限のレイテンシーでリアルタイムのレスポンスを実現します。
Text Embedding Models: これらのモデルは、テキスト入力をベクトル埋め込みに変換し、RAGシステムの類似検索に不可欠です。
- 例NV Embed**:ベクトルデータベースの高速検索のために、テキストを埋め込みに効率的に変換するGPU加速埋め込みモデル。
大規模言語モデル(LLM)**:LLMはRAGシステムの中核を形成し、クエリと検索された文脈データに基づいて応答を生成する。これらのモデルは、レスポンスの精度を向上させるために、特定のタスク用に微調整されることが多い。
- 例Llama 3.1 (70B Instruct Variant)**:Metaによって開発されたこのバージョンは、指示に従うタスクのために微調整されており、正確でタスク指向の応答を生成する能力を高めている。
オーケストレーション・フレームワーク**:最初のクエリーの処理から、関連するマルチモーダルコンテンツの検索、最終的なレスポンスの生成まで、パイプライン全体のデータの流れを管理するフレームワーク。
- 例LlamaIndex**:クエリ処理、コンテキスト検索、レスポンス生成をオーケストレーションするフレームワークで、マルチモーダルRAGシステムのすべてのコンポーネント間のスムーズな連携を保証する。
図:マルチモーダルRAGアーキテクチャ(出典:NVIDIA)](https://assets.zilliz.com/image_2_9a1a5bf07e.png)
図:マルチモーダルRAGアーキテクチャマルチモーダルRAGアーキテクチャ(Credit NVIDIA)
上図は、NVIDIAが提示したマルチモーダルRAGパイプラインの一例のアーキテクチャを、いくつかの主要コンポーネントに基づいて構築したものです:Llama 3は基礎となる大規模言語モデル(LLM)として機能し、LlamaIndexがワークフロー全体をオーケストレーションする。NV Embed はテキスト埋め込みを処理し、Milvus は高速検索のためのベクトル・データベースとして機能する。NeVA 22Bは画像を処理し、DePlotはチャートとプロットを管理する。
マルチモーダルRAGの構築方法の詳細については、以下のリソースをご覧ください:
- ビデオ:*** Building Multimodal AI RAG with LlamaIndex, NVIDIA NIM, and Milvus | LLM App Development
- チュートリアル:** Gemini、BGE-M3、Milvus、LangChainを使ったマルチモーダルRAGの構築
- チュートリアル:** FiftyOne、LlamaIndex、およびMilvusを使用して、より優れたマルチモーダルRAGパイプラインを構築する
- Tutorial: CLIPとLlama3によるローカルなマルチモーダルRAG
マルチモーダルRAGシステムの主な特徴
このMultimodal RAGシステムは、多様なデータタイプを処理し理解することを可能にする多くの高度な機能を使用している:
- マルチフォーマット処理**:このマルチモーダルRAGシステムは、テキストファイル、PDF、PowerPointプレゼンテーション、画像など、さまざまな種類のドキュメントを処理します。研究、ビジネス・インテリジェンスなど、さまざまな目的に役立ちます。
- 視覚言語モデルによる画像分析:** NeVA 22Bのようなモデルの統合により、システムは画像や図のような視覚的コンテンツを分析し、記述することができます。
- 効率的な索引付けと検索**:NVIDIAのGPUと組み合わせたMilvusの活用により、システムは電光石火の速さでベクトル索引付けと類似検索を提供します。この機能により、膨大な量のデータを効率的に処理できるため、マルチモーダルな情報をリアルタイムで検索する必要があるアプリケーションに最適です。
これらの強力な機能を組み合わせることで、このマルチモーダルRAGシステムは、多様なタイプのデータから洞察を引き出すための包括的なソリューションを提供します。テキスト、画像、またはその両方の組み合わせのいずれを扱う場合でも、このシステムにより様々なフォーマットを活用して理解と意思決定を強化することができます。
結論AIを活用したコンテンツ理解の推進
このブログポストでは、NVIDIA GPUとMilvusを使ってマルチモーダルRAGアプリケーションを構築する方法について説明しました。GPUアクセラレーションによるベクトル検索機能を持つMilvusは、高いパフォーマンスとスケーラビリティを保証する重要な役割を担っています。Github上のノートブック](https://github.com/NVIDIA/GenerativeAIExamples/tree/main/community/llm_video_series/video_2_multimodal-rag)をチェックして、さらに探求してみることをお勧めします。
ご意見をお聞かせください!
もしこのブログ記事を気に入っていただけたら、GitHub に星をつけていただけると本当に嬉しいです!また、DiscordのMilvusコミュニティにもぜひご参加ください。もっと学びたい方は、GitHubのBootcampリポジトリ でMilvusを使ったマルチモーダルRAGアプリの構築例をご覧ください。
その他のリソース
- 2024年のマルチモーダルAIモデルトップ10](https://zilliz.com/learn/top-10-best-multimodal-ai-models-you-should-know)
- Trulensを使ったマルチモーダルRAGの評価](https://zilliz.com/blog/evaluating-multimodal-rags-in-practice-trulens)
- FiftyOneとMilvusでマルチモーダル埋め込みを探る](https://zilliz.com/blog/exploring-multimodal-embeddings-with-fiftyone-and-milvus)
- OpenAI CLIPを探る:マルチモーダルAI学習の未来](https://zilliz.com/learn/exploring-openai-clip-the-future-of-multimodal-ai-learning)
- ジェネレーティブAIリソースハブ|Zilliz](https://zilliz.com/learn/generative-ai)
- あなたのGenAIアプリのためのトップパフォーマンスAIモデル|Zilliz](https://zilliz.com/ai-models)
- ベクトルデータベース比較](https://zilliz.com/comparison)
読み続けて

Vector Databases vs. Document Databases
Use a vector database for similarity search and AI-powered applications; use a document database for flexible schema and JSON-like data storage.

Multimodal Pipelines for AI Applications
Learn how to build scalable multimodal AI pipelines using Datavolo and Milvus. Discover best practices for handling unstructured data and implementing RAG systems.

How Inkeep and Milvus Built a RAG-driven AI Assistant for Smarter Interaction
Robert Tran, the Co-founder and CTO of Inkeep, shared how Inkeep and Zilliz built an AI-powered assistant for their documentation site.