マルチモーダル検索された生成(RAG)システムは、テキスト、画像、オーディオ、ビデオなどの多様なデータ型を統合してAIに革命をもたらしています。 これは、テキストのみに焦点を当てている伝統的なぼろを上回ります。 重要な進歩は、ノミックビジョンの埋め込みであり、視覚データとテキストデータのための統一されたスペースを作成し、シームレスなクロスモーダル相互作用を可能にします。 高度なモデルは、高品質の埋め込みを生成し、情報の検索を改善し、異なるコンテンツフォーム間のギャップを埋める、最終的にユーザーエクスペリエンスを濃縮します。
学習目標
マルチモーダルラグの基本と、従来のぼろきらに対するその利点を把握してください。
- テキストと画像の埋め込みスペースを統一する際の名目視力の埋め込みの役割を理解してください。
ノミックビジョンの埋め込みとクリップモデルを比較し、パフォーマンスベンチマークを分析します。
- ノミックビジョンとテキストの埋め込みを使用して、PythonにマルチモーダルRAGシステムを実装してください。
マルチモーダル検索のためにPDFSからテキストおよび視覚データを抽出および処理することを学びます。
-
- *この記事は、***
データサイエンスブログソンの一部です
- 目次
マルチモーダルラグとは?
nomic vision Embeddings
ノミックビジョンの埋め込みのパフォーマンスベンチマーク
ノミックビジョン埋め込みを備えたマルチモーダルラグの実践的なPython実装
ステップ1:必要なライブラリのインストール-
ステップ2:OpenAI APIキーの設定とインポートライブラリ-
ステップ3:PDF - から画像を抽出します
ステップ4:PDF - からテキストを抽出します
ステップ5:抽出されたテキストと画像を保存-
ステップ6:テキストデータのチャンキング-
ステップ7:NOMIC Embedding Modelsの読み込み-
ステップ8:埋め込みの生成-
ステップ9:qdrantにテキスト埋め込みを保存-
ステップ10:qdrantに画像埋め込みを保存-
ステップ11:マルチモーダルレトリバーの作成-
ステップ12:ラングチェーンでマルチモーダルラグを構築します-
-
モデルのクエリ
-
結論-
よくある質問-
マルチモーダルラグとは?
- マルチモーダルRAGは、多様なデータ型を組み込むことにより、従来のぼろきれに基づいて構築される重要なAIの進歩を表しています。主にテキストを処理する従来のシステムとは異なり、マルチモーダルラグプロセスと複数のデータフォームを同時に統合します。これは、さまざまなモダリティにわたるより包括的な理解とコンテキスト対応の応答につながります。
- キーマルチモーダルラグコンポーネント:
-
-
データの摂取:さまざまなソースからのデータは、特殊なプロセッサを使用して摂取され、検証、クリーニング、および正規化を確保します。
- ベクトル表現:モダリティは、ニューラルネットワーク(例:画像のクリップ、テキスト用のバート)を使用して処理され、統一されたベクター埋め込みを作成し、セマンティック関係を維持します。
ベクトルデータベースストレージ:- 埋め込みは、効率的な検索のためにインデックス作成技術(HNSW、FAISS)を使用して最適化されたベクターデータベース(QDRANT)に保存されます。
クエリ処理:
着信クエリが分析され、保存されたデータと同じベクトル空間に変換され、関連するモダリティを識別し、検索のための埋め込みを生成するために使用されます。
-
nomic vision Embeddings
ノミックビジョン埋め込みは重要な革新であり、視覚データとテキストデータのための統一された埋め込みスペースを作成します。 NOMIC AIによって開発されたNOMIC Embed Vision V1およびV1.5は、テキストの対応物と同じ潜在スペースを共有しています(NOMIC Embed Text V1およびV1.5)。これにより、テキストから画像への取得などのマルチモーダルタスクに最適になります。 比較的小さなパラメーターカウント(92m)で、NOMIC Embed Visionは大規模なアプリケーションで効率的です。
クリップモデルの制限へのアドレス指定:
クリップはゼロショット機能に優れている間、そのテキストエンコーダーは画像検索を超えたタスクでパフォーマンスを下回ります(MTEBベンチマークで示されています)。 NOMIC Embed Visionは、ビジョンエンコーダーをNOMIC Embedテキスト潜在スペースと整列させることにより、これに対処します。
NOMIC Embed Visionは、NOMIC Embedテキストとともにトレーニングされ、テキストエンコーダをフリーズし、画像テキストペアでVisionエンコーダーをトレーニングしました。これにより、最適な結果とNOMIC Embed Text Embeddingsとの後方互換性が保証されます。
ノミックビジョンの埋め込みのパフォーマンスベンチマーク
クリップモデルは、ゼロショット機能では印象的ですが、セマンティックの類似性(MTEBベンチマーク)などの単峰性タスクの弱点を示しています。 NOMIC Embed Visionは、そのビジョンエンコーダーをNOMIC Embed Text Latent Spaceに合わせることでこれを克服し、画像、テキスト、マルチモーダルタスク(Imagenet Zero-Shot、MTEB、DataComp Benchmarks)にわたって強力なパフォーマンスをもたらします。
ノミックビジョン埋め込みを備えたマルチモーダルラグの実践的なPython実装
このチュートリアルは、テキストと画像を含むPDFから情報を取得するマルチモーダルRAGシステムを構築します(T4 GPUを使用してGoogle Colabを使用)。
ステップ1:ライブラリのインストール
必要なPythonライブラリをインストール:Openai、Qdrant、Transformers、Torch、Pymupdfなど(Brevityのためにコードは省略されていますが、オリジナルに存在します。)
ステップ2:OpenAI APIキーの設定とインポートライブラリ
OpenAI APIキーを設定し、必要なライブラリをインポートします(Pymupdf、Pil、Langchain、Openaiなど)。 (Brevityのためにコードが省略されました。)
ステップ3:PDF
から画像を抽出します
pymupdfを使用してpdfから画像を抽出し、それらをディレクトリに保存します。 (Brevityのためにコードが省略されました。)
ステップ4:PDF
からテキストを抽出します
pymupdfを使用して、各PDFページからテキストを抽出します。 (Brevityのためにコードが省略されました。)
ステップ5:抽出されたデータの保存
抽出された画像とテキストを保存します。 (Brevityのためにコードが省略されました。)
ステップ6:テキストデータのチャンキング
抽出されたテキストをLangchainのを使用して小さなチャンクに分割します。 (Brevityのためにコードが省略されました。)RecursiveCharacterTextSplitter
ステップ7:NOMIC Embedding Modelsの読み込み
Faceのトランスを抱きしめて、Nomicのテキストとビジョン埋め込みモデルをロードします。 (Brevityのためにコードが省略されました。)
ステップ8:埋め込みの生成
テキストと画像の埋め込みを生成します。 (Brevityのためにコードが省略されました。)
ステップ9:qdrantにテキスト埋め込みを保存
qdrantコレクションにテキストの埋め込みを保存します。 (Brevityのためにコードが省略されました。)
ステップ10:qdrantに画像埋め込みを保存
別のqdrantコレクションに画像の埋め込みを格納します。 (Brevityのためにコードが省略されました。)
ステップ11:マルチモーダルレトリバーの作成
クエリに基づいて関連するテキストと画像の埋め込みを取得する関数を作成します。 (Brevityのためにコードが省略されました。)
ステップ12:ラングチェーンでマルチモーダルラグを構築します
LangChainを使用して、取得したデータを処理し、言語モデル(GPT-4など)を使用して応答を生成します。 (Brevityのためにコードが省略されました。)
モデルのクエリ
サンプルクエリは、PDF内のテキストと画像の両方から情報を取得するシステムの能力を示しています。 (簡潔にするために省略されたクエリと出力の例ですが、オリジナルに存在します。)
結論
NOMIC Vision Embeddingsはマルチモーダルラグを大幅に強化し、視覚データとテキストデータの間のシームレスな相互作用を可能にします。 これは、クリップなどのモデルの制限に対処し、統一された埋め込みスペースを提供し、さまざまなタスクでパフォーマンスを向上させます。 これは、生産環境でより豊かでコンテキストを意識したユーザーエクスペリエンスにつながります。
キーテイクアウト
マルチモーダルラグは、より包括的な理解のために多様なデータ型を統合します。
以上がNOMIC EmbeddingsでRAGシステムを強化しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。