ColPali:視覚言語モデルとColBERT埋め込み戦略による文書検索の強化

Retrieval Augmented Generation](https://zilliz.com/learn/Retrieval-Augmented-Generation)(RAG)は、大規模言語モデル(LLMs)の機能と外部の知識ソースを組み合わせて、応答の正確さと関連性を高める技術である。RAGの一般的なアプリケーションは、PDFのようなソースからコンテンツを抽出することである。これらのファイルはしばしば貴重なデータを含んでいるが、検索やインデックス付けが難しいからである。その難しさは、抽出に使用されるツールによっては、重要な情報が見落とされる可能性があるという事実にある。例えば、画像内に埋め込まれたテキストは、抽出中に検出されない可能性があり、後で取り出すことが不可能になります。
文書検索モデルであるColPaliは、視覚言語モデル(VLM)に基づく新しいアーキテクチャによって、この問題に対処している。ColPali]()は、視覚的特徴によって文書を索引付けし、テキストと視覚的要素を捕捉する。テキストと画像のColBERTスタイルのマルチベクトル表現を生成することで、ColPaliは文書画像を統一された埋め込み空間に直接エンコードし、従来のテキスト抽出とセグメンテーションを不要にする。
図:PDF検索のための標準的な検索パイプラインとColPaliパイプラインの比較](https://assets.zilliz.com/Co_Pali_image_2_50aa11b6d2.png)
上の画像はColPali論文からの引用です。著者らは、通常のPDF検索パイプラインには、OCRによるテキスト抽出、レイアウト検出、チャンキング、埋め込み生成という複数のステップが含まれるのが普通であると論じています。ColPaliは、ページのスクリーンショットを入力とする単一の視覚言語モデル(VLM)を使用して、このプロセスを簡素化します。
ColPaliは、従来のRAGシステムを超えるツールを統合しているので、まずこれらの概念を理解することが重要です。ColPaliの詳細を説明する前に、ビジョン言語モデルと遅延インタラクションモデルについて学びましょう。
ビジョン言語モデル(VLM)とは?
視覚言語モデル(VLM)は、画像とテキストを同時に学習するマルチモーダルモデルです。画像とテキストを入力とし、テキスト出力を生成するもので、より広いカテゴリーの生成モデルの一部です。
VLMの例](https://assets.zilliz.com/vision_language_model_3_36f9866f43.png)
ColPaliは、VLMを活用して、マルチモーダル微調整中に取得されたテキストと画像トークンの埋め込みを整列させます。具体的には、PaliGemma-3Bモデルの拡張版を使用し、ColBERTスタイルのマルチベクトル表現を生成します。著者らがこのモデルを選んだ理由は、画像からテキストを読み取るOCRを含め、さまざまな画像解像度やタスクに合わせて微調整されたさまざまなチェックポイントを持っているからである。
ColPaliはGoogleのPaliGemma-3Bモデルをベースに構築されており、オープンウェイトでリリースされている。このモデルは、VLMによって生成された擬似質問によって強化された、ウェブクローリングされたPDFページからの多様なデータセット-63%アカデミックデータと37%合成データを使用して学習されました。
レイトインタラクションモデルとは?
Late Interactionモデルは、検索タスク用に設計されている。単一のベクトル表現ではなく、文書間のトークンレベルの類似性に着目している。テキストを一連のトークン埋め込みとして表現することで、これらのモデルはクロスエンコーダの詳細さと正確さを提供する一方で、オフライン文書ストレージの効率性の恩恵を受けている。
図2:ニューラルIRにおけるクエリと文書のマッチングパラダイムを示す模式図](https://assets.zilliz.com/Figure_2_Schematic_diagrams_illustrating_query_document_matching_paradigms_in_neural_I_Rpng_3c508a2c93.png)
図2:ニューラルIRにおけるクエリ-文書マッチングのパラダイムを示す模式図。| 出典](https://arxiv.org/pdf/2004.12832)_
このように、後期インタラクションモデルと視覚言語モデル**を理解した上で、ColPaliがこれらの要素をどのように組み合わせて文書検索を強化するかを探っていきます。
ColPali とは何か?
ColPaliは、文書、特にPDFの視覚的特徴から直接インデックスを作成し、情報を検索するように設計された先進的な文書検索モデルです。OCR(光学式文字認識)やテキスト分割に依存する従来の手法とは異なり、ColPaliは各ページのスクリーンショットをキャプチャし、VLMを使用して文書ページ全体を統一されたベクトル空間に埋め込みます。このアプローチにより、ColPaliは複雑な抽出プロセスを回避し、検索精度と効率を向上させることができます。
以下は、そのワークフローにおける主なステップです:
ドキュメント処理
- PDFから画像を作成する:** テキストを抽出してチャンクを作成し、それを埋め込むのではなく、ColPaliはPDFページのスクリーンショットを直接ベクター表現に埋め込みます。このステップは、内容を抽出するのではなく、各ページの写真を撮るようなものです。
- 画像をグリッドに分割:各ページは、次にパッチ**と呼ばれる均一な断片のグリッドに分割されます。デフォルトでは32x32のグリッドに分割され、1画像あたり1024パッチになります。各パッチは128次元のベクトルとして表現されます。1024個の "単語 "で1つの画像を表現していると考えてください。
埋め込み生成
- 画像パッチの処理**:ColPaliは、Vision Transformer (ViT)を通して、視覚パッチを埋め込みに変換します。ViTは、各パッチを処理して詳細なベクトル表現を作成します。
- 視覚的埋め込みとテキスト埋め込みの整合**:視覚情報と検索クエリを一致させるために、ColPaliはクエリテキストを画像パッチと同じベクトル空間の埋め込みに変換します。このアライメントにより、視覚的コンテンツとテキストコンテンツを直接比較し、マッチングさせることができる。
- クエリ処理モデルはクエリをトークン化し、各トークンに128次元のベクトルを割り当てる。Describeこの画像
」のようなプロンプトを使用し、モデルがビジュアル要素にフォーカスするようにし、テキストとビジュアルデータのシームレスな統合を可能にする。
検索メカニズム
ColPaliは、クエリ時にクエリとドキュメントの埋め込みを比較するために、late interaction similarity mechanismを使用します。このアプローチは、すべての画像グリッドセルベクトルとクエリテキストトークンベクトルの間の詳細な相互作用を可能にし、包括的な比較を保証します。
類似度は「最大類似度の和」アプローチを用いて計算される:
1.各クエリトークンと画像内の各パッチトークン間の類似度スコアを計算する。 2.2.これらのスコアを合計し、各文書の関連性スコアを生成する。 3.関連性の尺度としてスコアを使用し、降順にスコアによってドキュメントをソートする。
この方法により、ColPali は、クエリテキストと最もよく一致する画像パッチに焦点を当てながら、ユーザークエリと関連文書を効果的にマッチングさせることができる。こうすることで、文書の最も関連性の高い部分がハイライトされ、テキストとビジュアルコンテンツが組み合わされて、正確な検索が可能になる。
モデル学習プロセス
ColPaliは、Googleが開発したビジョン言語モデルPaliGemma-3Bをベースに構築されています。ColPaliの実装では、VLMの事前学習された知識を保持しつつ、文書検索タスクに最適化することに集中するため、学習中はモデルの重みを凍結したままにします。
この汎用VLMを文書検索に適応させる鍵は、小さいが重要なコンポーネントにある:**このアダプタはPaliGemma-3Bモデルの上に置かれ、検索タスクに合わせた表現を学習するように訓練される。
このアダプタの学習プロセスはトリプレット学習アプローチを利用している:
1.テキストクエリ 2.クエリに関連するページの画像 3.クエリに無関係なページの画像
この方法によって、モデルは関連するコンテンツと無関係なコンテンツの細かい区別を学習し、検索精度を高めることができる。
コルパリの利点
- 複雑な前処理の排除**:ColPaliは、テキスト抽出、OCR、レイアウト検出、チャンキングといった従来のパイプラインを、ページのスクリーンショットを入力とする単一のVLMに置き換えます。
- 視覚情報とテキスト情報の両方を取り込みます:ページ画像を直接扱うことで、ColPali はテキストコンテンツとビジュアルレイアウトの両方を文書理解に取り込むことができます。
- 視覚的に豊かな文書からの効率的な検索**:レイトインタラクションメカニズムにより、クエリと文書内容のきめ細かなマッチングが可能になり、複雑でビジュアルリッチな文書から関連情報を効率的に検索できます。
- 文脈の保存**:ColPaliは全ページの画像を処理することで、従来のテキストチャンキングアプローチでは失われがちな文書の完全なコンテキストを維持します。
ColPali の課題
大規模な検索システムと同様に、ColPaliも計算の複雑さとストレージ要件の点で大きな課題に直面しています。
1.計算複雑性:ColPaliの計算量は、クエリートークンとパッチベクトルの数に応じて二次関数的に増加します。つまり、クエリの複雑さや文書画像の解像度が高くなるにつれて、計算量は急激に増加します。
2.**ストレージ要件ColBERTのようなアプローチのストレージコストは、各トークンに対してベクトルを必要とするため、密なベクトル埋込みの10倍から100倍である。システムのストレージの必要量は、3つの要素で線形にスケールする:
1.文書数 2.文書あたりのパッチ数 3.ベクトル表現の次元数.
このようなスケーリングは、大規模な文書コレクションではかなりのストレージ要件につながる可能性がある。
最適化戦略 - 精度の削減
このようなスケーリングの課題に対処するために、我々は精度削減戦略の使用を提案する。
- 精度削減:高精度の表現(例えば32ビット浮動小数点)から低精度のフォーマット(例えば8ビット整数)に移行することで、検索品質への影響を最小限に抑えながら、ストレージ要件を劇的に削減することができる。
要約
ColPaliは、RAGシステムにおいて、視覚的にリッチなコンテンツをテキストコンテキストとともに検索する方法を変革する大きな可能性を秘めている。視覚言語モデルを活用することで、テキストだけでなく視覚的要素に基づいた文書検索を可能にする。
しかし、ColPaliはその素晴らしい結果にもかかわらず、高いストレージ要求と計算の複雑さによる課題に直面しており、これが普及の妨げになっている可能性がある。将来的な最適化により、これらの制限に対処し、より実用的なものになる可能性がある。RAG手法が発展し続けるにつれ、ColPaliのような視覚的理解とテキスト的理解を統合する検索手法は、多様な文書タイプにわたる情報検索において、ますます重要な役割を果たすようになるだろう。
ご意見をお聞かせください!
このブログ記事を気に入っていただけたら、GitHub に星をつけていただけると本当に嬉しいです!また、DiscordのMilvusコミュニティにもぜひご参加ください。さらに詳しく知りたい方は、GitHubのBootcampリポジトリやノートブックをご覧ください。また、今後ColPaliを試す予定がある方はぜひご連絡ください!
参考文献
- ColPali論文:[2407.01449] ColPali:視覚言語モデルによる効率的な文書検索](https://arxiv.org/abs/2407.01449)
- ColPali GitHub: https://github.com/illuin-tech/colpali
- ColBERT: A Token-Level Embedding and Ranking Model](https://zilliz.com/learn/explore-colbert-token-level-embedding-and-ranking-model-for-similarity-search)
- ColPali: 視覚言語モデルによる文書検索](https://antaripasaha.notion.site/ColPali-Document-Retrieval-with-Vision-Language-Models-10f5314a5639803d94d0d7ac191bb5b1)
- RAGとは](https://zilliz.com/learn/Retrieval-Augmented-Generation)
- ベクトルデータベースとは何か、そしてどのように機能するのか](https://zilliz.com/learn/what-is-vector-database)
読み続けて

Vector Databases vs. Object-Relational Databases
Use a vector database for AI-powered similarity search; use an object-relational database for complex data modeling with both relational integrity and object-oriented features.

Vector Databases vs. Key-Value Databases
Use a vector database for AI-powered similarity search; use a key-value database for high-throughput, low-latency simple data lookups.

Building RAG Applications with Milvus, Qwen, and vLLM
In this blog, we will explore Qwen and vLLM and how combining both with the Milvus vector database can be used to build a robust RAG system.