Trulensを用いたマルチモーダルRAGシステムの評価

マルチモーダルアーキテクチャがGenerative AI(GenAI)で顕著になるにつれ、GPT-4VやGemini Pro Visionのようなマルチモーダルモデルを使用してソリューションを構築する企業が増えている。これらのモデルは、テキスト、画像など、さまざまなデータタイプを意味的に埋め込み、解釈することができるため、従来の大規模言語モデル(LLMよりも汎用性が高く、幅広い用途で効果的です。
しかし、マルチモーダルモデルへの関心が高まるにつれ、その信頼性と精度を確保するための課題も増えています。LLMと同様に、マルチモーダルモデルも「幻覚」(https://zilliz.com/glossary/ai-hallucination)を起こしやすい。これは、誤った出力や無関係な出力を出すことであり、特に異なるタイプの入力データを同時に処理するタスクを課された場合に顕著である。マルチモーダル検索拡張生成(RAG)は、モデルを外部ソースからの関連する文脈情報で豊かにすることによって、これらの限界に対処する。
Zillizが主催したUnstructured Data Meetupで、TruEra社(現在はSnowflakeが買収)のデベロッパーアドボケイトである Josh Reini 氏は、マルチモーダルフレームワークで作業する際の課題と解決策に関する洞察を共有した。ジョシュは、Trulensのようなオープンソースツールを使用して、どのようにAIの幻覚を軽減できるか、また、Milvusベクトルデータベースを統合することで、どのようにマルチモーダルRAGシステムのパフォーマンスを向上させることができるかを強調した。
11月のSF Unstructured Data Meetupで講演するジョシュ・レイニ](https://assets.zilliz.com/DSC_0060_59f396f6ad.JPG)
このブログでは、ジョシュの洞察を要約し、マルチモーダルRAGシステムの改善において評価(または「EVAL」)が果たす重要な役割について説明します。さらに詳しい洞察については、YouTubeでのジョシュの講演全文もご覧ください。
マルチモーダルモデルとマルチモーダルRAGの理解マルチモーダルモデルは、テキスト、画像、音声、動画など、複数のタイプのデータやモダリティを処理・統合できる機械学習モデルです。単一の入力タイプに焦点を当てた従来の言語モデルとは異なり、マルチモーダルモデルは様々なソースからの情報を組み合わせて、より文脈に沿った正確な出力を作成する。この汎用性により、データが異なるフォーマットから来るシナリオで特に有用となる。例えば、マルチモーダルモデルは、画像とテキストの説明を使用して、1つの入力タイプだけに依存するモデルよりも正確な応答を生成することができます。
LLMのように、マルチモーダルモデルは汎化に最適化されており、様々な入力に対応できる。しかし、この最適化にはコストがかかる。モデルはしばしば特定のデータを記憶することでペナルティを受け、柔軟性と正確性の間に緊張関係が生まれます。例えば、テキストベースの症状とX線画像に基づいて病気を診断するような、複数のモダリティを相互参照するようなタスクの場合、このバランスの取り方が厄介になる。
このような汎用モデルに長期記憶を持たせるために、特定の「記憶された」知識をベクトルストア(例えばMilvus)のような外部リソースにオフロードすることができる。この手法はMultimodal RAGとして知られている。
従来のRAGシステムは、LLMsの生成プロセスを強化し、より正確でパーソナライズされた応答を生成するために、関連するtextを検索することに重点を置いている。マルチモーダルRAG**は、multimodal modelsとvector databasesを使用して、画像、音声、動画などの追加データタイプを検索と生成プロセスに統合することによって、テキストを超えた拡張を行う。このアプローチにより、マルチモーダルRAGシステムは、テキストと非テキストの入力をより深く理解する必要があるタスクにおいて、より効果的に実行することができる。
例えば、Multimodal RAGは、視覚的な質問応答システムにおいて、より正確な回答を生成するために、関連する画像や動画を検索することができる。同様に、画像キャプションやマルチモーダル対話システムのようなタスクでは、視覚データとテキストデータを組み合わせる能力により、システムがより文脈に関連した正確な出力を確実に提供することができる。
マルチモーダルモデルと高度な検索メカニズムの相補的な強みを活用することで、Multimodal RAGは、複雑なマルチフォーマットデータを処理し、幅広いアプリケーションで文脈を考慮した豊かな応答を生成するための強力なソリューションを提供します。
マルチモーダルRAGはどのように機能するのか?
さて、マルチモーダルRAGのコンセプトを紹介したところで、これらのシステムがどのように動作するかを探ってみよう。ここでは、検索支援視覚的質問応答システムを例として、そのプロセスを説明します:
図- マルチモーダルRAGシステムの仕組み](https://assets.zilliz.com/Figure_How_a_multimodal_RAG_system_works_e7ad87f58a.png)
1.マルチモーダル入力処理:RAGシステムは、画像とともにユーザからのクエリを受け取る。
2.**埋め込み処理画像とテキストクエリの両方は、マルチモーダル埋め込みモデルを用いてベクトル埋め込みに変換される。これらの埋め込みにより、システムは異なるモダリティ(テキストと画像)の入力を分析・比較し、両者の関係を理解することができる。
3.ベクトルデータベース検索:このシステムは、画像埋め込みを使用して、Milvusやその管理版であるZilliz Cloudのようなベクトルデータベースに問い合わせ、類似画像と関連する注釈や関連データを検索する。この検索ステップは、実世界のデータから付加的なコンテキストを提供することで、モデルの知識を豊かにする。
4.完了:検索されたデータ(類似画像とその注釈)は、元の入力クエリと組み合わされる。マルチモーダルモデルは、このエンリッチされたコンテキストを使用して、元の入力と検索された情報の両方を活用する包括的な応答または補完を生成する。
5.**レスポンス最後に、システムは検索された外部データと元の入力を統合した正確なレスポンスを生成する。これにより、モデルはユーザーのクエリに対して、よりコンテキストを意識した、適切かつ正確な回答を生成することができる。
検索を通じて外部データを取り込むことで、マルチモーダルRAGシステムはモデルが内部的に知っていることを超え、より正確で文脈に関連した出力を保証する。
系統的評価の必要性
マルチモーダルモデルと検索システムの強力な組み合わせにもかかわらず、課題は残っている。印象的なデモはMultimodal RAGの可能性を示すことができるが、デモを堅牢で生産可能なアプリケーションにすることははるかに難しい。
これらの課題を克服する鍵は、体系的な評価である。これらの評価は、マルチモーダル・アプリケーションの弱点、故障モード、改善点を特定するのに役立ち、開発者が時間をかけて改良し、最適化することを可能にする。AIの分野では、2つのタイプのチームをよく見かける:
80%の確率で機能するエキサイティングなプロトタイプを作るチーム。
これらのシステムを本番環境で成功裏に展開するチーム。
特に、教育(LLMベースのチューター)、カスタマーサポート(トランスクリプトの要約)、金融サービス(社内または顧客向けのチャットボット)など、信頼性と正確性が重要な分野では、体系的な反復と評価が不可欠です。
そこで、しばしばEvalsと呼ばれる評価ツールが不可欠になります。評価ツールは、開発者がパフォーマンスを監視し、信頼性をテストし、本番グレードのソリューションに向けて反復する際に改善点を特定することを可能にします。人気のある評価ツールには、Trulens、Ragas、LangFuse、OpenAI Evals、DeepEval、Phoenix、LangSmithなどがあります。
以下のセクションでは、オープンソースの評価ツールであるTruLensをケーススタディとして使用し、系統的な評価がマルチモーダルRAGシステムにどのように適用できるかを示します。
TruLens がマルチモーダル RAG 評価に役立つ方法
Trulensは、大規模言語モデル(LLM)とマルチモーダルRAGアプリケーションを評価するためのオープンソースツールです。TruLens の強みは、アプリケーションを監視、テスト、およびデバッグする能力にあり、特に改善点の特定とアプリの信頼性の確保に役立ちます。
開発者がアプリを TruLens に接続すると、記録を記録し、モデルのパフォーマンスを体系的に評価する評価関数を定義できます。これらの評価は、特に複雑なマルチモーダルRAGシステムにおいて、不正確または無関係な応答につながる幻覚を検出するために極めて重要です。
典型的なRAGシステムでは、3つの核となるコンポーネントの評価が必要である:
図- RAGの3本柱(RAG Triad)](https://assets.zilliz.com/Figure_Three_Pillars_of_RAG_RAG_Triad_6ad598b27d.png)
クエリーユーザーは、テキストまたはテキストと画像を組み合わせた形式のクエリを送信する。
コンテキストシステムは、モデルのコンテキストを提供するために、ベクトルデータベースから画像やテキストなどの関連情報を取得します。
レスポンスLLMまたはマルチモーダルモデルは、検索されたコンテキストと元のクエリに基づいて答えを生成する。
モデルが正確で信頼できることを保証するために、幻覚を検出し、システムがどの程度機能しているかを評価するために、各ステップで評価が実行される。これはしばしば、添付の図に示すように、RAG Triadと呼ばれる。
システムの出力が信頼に足るものであることを保証するために、3つの重要なタイプの評価がある:
1.コンテキストの関連性:これは、検索された情報(テキストや画像)が元のクエリとどれだけ一致しているかをチェックする。検索されたコンテキストは、手元のクエリに関連し、有用であるか?
2.グラウンデッドネス:検索されたコンテキストが生成されたレスポンスをサポートしているかどうかを評価する。レスポンスは検索された情報に依存しているか、あるいはサポートされていない、あるいは不正確なデータを生成していないか。
3.回答の妥当性:これはモデルの回答の有用性と正確性を測定する。回答は有意義で、ユーザーの質問に関連しているか?
TruLens を統合することで、開発者はマルチモーダル RAG システムのパフォーマンスを継続的に追跡し、改善することができます。
Trulens を使用した RAG の実装および評価方法に関するステップバイステップのガイドについては、** このチュートリアル:** Evaluations for Retrieval Augmented Generation: TruLens + Milvus をお読みください。
実際の例:視覚的質問応答RAGシステムの評価
これをよりよく理解するために、視覚的質問応答RAGシステムの例を考えてみよう。このシステムでは、ユーザはクエリと画像の両方を提供する。モデルは画像から埋め込みを生成し、類似画像をベクトルデータベースから検索する。
各ステップにおいて、検索された画像が元のクエリに関連しているかどうか、LLMの応答が提供されたコンテキストに根拠があるかどうか、最終的な回答が元の質問に関連しているかどうかを評価しなければならない。システムが無関係な画像を検索したり、誤った診断を生成したりした場合、評価によって故障モードを特定し、モデルを改善することができる。
あるチーム、X線インサイトは、ハッカソンで、これらの評価を実際に示すアプリを作った。彼らはX線画像と注釈(診断)をスクレイピングし、画像を画像埋め込みに変換し、これらの埋め込みをメタデータ(診断)と共にMilvus/Zillizベクトルデータベースにロードし、ユーザが提供した画像(これも埋め込みに変換されている)を使って類似症例を検索する。これらの画像に関連付けられたメタデータ(診断名など)は、マルチモーダルモデルを通じて最終的な診断結果を生成するために使用された。
図:X線インサイトシステムの仕組み](https://assets.zilliz.com/Figure_How_X_ray_Insight_system_works_c323e8bfcb.png)
TruLens を使用することで、X 線 Insight チームはモデルの性能を複数の段階で評価することができました:
1.埋め込み生成:エンベッディングの生成**:画像の前処理、エンベッディングの計算(時間のかかる処理)、エンベッディングの品質の確保。
2.症例検索:計算された埋め込みに基づき、ベクトルデータベースから関連する事例を検索する。
3.最終診断:患者のメモから診断を生成し、検索されたデータと比較する。
これらの評価が実施されると、TruLens により、チームは診断全体で共有される特徴を分析し、故障モードを特定し、得られた洞察に基づいて改善することができます。
結論
要約すると、マルチモーダルモデルと RAG システムを実運用に導入するには、クールなプロトタイプを構築するだけでは不十分である。これらのモデルが信頼でき、正確であることを保証するためには、文脈の関連性、根拠性、回答の関連性などの評価を通じて体系的な反復が不可欠である。TruLens のようなツールは、これらのアプリを追跡、テスト、およびデバッグするためのフレームワークを提供し、開発者がモデルを改良して幻覚を避けるのを助けます。
私たちがマルチモーダルモデルにできることの限界を押し広げ続ける中、評価は開発プロセスの要であり続けるでしょう。評価によって、これらのモデルが根拠のある適切な方法で出力を生成することが保証される。
その他のリソース
検索拡張世代の評価:TruLens + Milvus](https://zilliz.com/blog/evaluations-for-retrieval-augmented-generation-trulens-milvus)
RAGアプリケーションの評価方法](https://zilliz.com/learn/How-To-Evaluate-RAG-Applications)
RAGとは](https://zilliz.com/learn/Retrieval-Augmented-Generation)
リランカーによるRAGの最適化:その役割とトレードオフ ](https://zilliz.com/learn/optimize-rag-with-rerankers-the-role-and-tradeoffs)
RAGパイプラインのパフォーマンスを高める方法](https://zilliz.com/learn/how-to-enhance-the-performance-of-your-rag-pipeline)
検索拡張生成(RAG)のためのチャンキング戦略ガイド ](https://zilliz.com/learn/guide-to-chunking-strategies-for-rag)
生成AIリソースハブ|Zilliz](https://zilliz.com/learn/generative-ai)
あなたのGenAIアプリのためのトップパフォーマンスAIモデル|Zilliz](https://zilliz.com/ai-models)
読み続けて

Balancing Precision and Performance: How Zilliz Cloud's New Parameters Help You Optimize Vector Search
Optimize vector search with Zilliz Cloud’s level and recall features to tune accuracy, balance performance, and power AI applications.

Producing Structured Outputs from LLMs with Constrained Sampling
Discuss the role of semantic search in processing unstructured data, how finite state machines enable reliable generation, and practical implementations using modern tools for structured outputs from LLMs.

Introducing IBM Data Prep Kit for Streamlined LLM Workflows
The Data Prep Kit (DPK) is an open-source toolkit by IBM Research designed to streamline unstructured data preparation for building AI applications.