[論文] VisRAG: Vision-based Retrieval-augmented Generation on Multi-modality Documents
ここで見かけた
そういえばどこかで見かけた気はしてたのだけど、追い掛けてなかった。
論文
Claude-3.5-sonnetによる落合プロンプトの結果
VisRAG:マルチモダリティ文書のための視覚ベース検索拡張生成
1. どんなもの?
従来のRAG(Retrieval-Augmented Generation)システムは文章のみを対象としていましたが、本研究で提案されたVisRAGは、文書画像を直接的に扱えるRAGシステムです。文書から一度テキストを抽出するのではなく、Vision-Language Model(VLM)を用いて文書画像を直接エンコードし、検索と生成を行います。これにより、レイアウトや図表といった視覚的情報を含む実世界の複合的な文書に対しても、情報を損なうことなくRAGを適用できます。
2. 先行研究と比べてどこがすごい?
従来のテキストベースのRAG(TextRAG)では、文書からのテキスト抽出時に視覚的な情報が失われ、OCRエラーも発生していました。また、既存のマルチモーダルRAGは、予め抽出・ペアリングされた画像とテキストを対象としており、実世界の複合文書には適用できませんでした。VisRAGは文書画像を直接処理することで、これらの問題を解決し、テキストと視覚情報の両方を活用できます。実験では、TextRAGと比較して25-39%の性能向上を達成しています。
3. 技術や手法の肝はどこ?
VisRAGの核となる技術は、以下の2つのコンポーネントです:
- VisRAG-Ret:SigLIPをビジョンエンコーダー、MiniCPMを言語モデルとして使用したVLMベースの検索モジュール。文書画像から直接埋め込みベクトルを生成します。
- VisRAG-Gen:検索された文書画像から回答を生成するVLMベースの生成モジュール。複数画像の処理方法として、画像の結合、重み付け選択、複数画像入力対応VLMの使用という3つの手法を提案しています。
4. どうやって有効だと検証した?
オープンソースのVQAデータセット(ArxivQA、ChartQA、DocVQA等)とウェブクロールしたPDFから生成した合成データを用いて評価を行いました。評価は以下の3つの観点で実施:
- 検索性能:MRR@10とRecall@10で評価し、既存の最先端モデルを上回る性能を達成
- 生成性能:MiniCPM-V、GPT-4oなど複数のVLMを用いて生成精度を評価
- エンドツーエンド性能:TextRAGと比較して25-39%の性能向上を確認
5. 議論はある?
主に以下の3点について分析と議論が行われています:
- 学習データ効率:20,000ペアの学習データのみで、何百万ペアで学習された最先端モデルを上回る性能を達成
- データセットの特性による性能差:テキスト中心の文書とビジュアル中心の文書での性能の違いを分析
- 生成モデルの特性:複数画像を扱える最新のVLM(GPT-4o等)は、検索文書数が増えるほど性能が向上する傾向を確認
6. 次に読むべき論文は?
以下の関連研究を読むことで、本研究の背景と発展について理解を深めることができます:
- Flamingo (Alayrac et al., 2022):VLMの基礎となる視覚-言語モデルの研究
- CLIP (Radford et al., 2021):視覚-テキスト表現の対照学習に関する先駆的研究
- ColPali (Faysse et al., 2024):文書画像の検索に関する並行研究
- MiniCPM-V (Yao et al., 2024):本研究で使用されているVLMの詳細な技術解説
GitHubレポジトリ
ちょっとQA
TextRAGと比較して25-39%の性能向上とありますが、条件や評価結果などを詳しく教えて下さい。
論文の評価結果について、特にTextRAGとVisRAGの比較に焦点を当てて詳しく説明いたします。
TextRAGとVisRAGの性能比較の詳細
評価設定
- 比較モデル:
- TextRAG:OCRで抽出したテキストを使用する従来手法
- VisRAG:文書画像を直接使用する提案手法
- 生成モデル2種での評価:
- MiniCPM-V Generator使用時
- GPT-4o Generator使用時
具体的な性能向上の内訳
- MiniCPM-V Generator使用時:
- TextRAG:36.59%の精度
- VisRAG:50.91%の精度
- 相対的な性能向上:39%の向上
- GPT-4o Generator使用時:
- TextRAG:40.03%の精度
- VisRAG:50.02%の精度
- 相対的な性能向上:25%の向上
データセット別の性能差
- 特に以下のデータセットで顕著な性能向上:
- InfographicsVQA:複雑なレイアウトと図表を含む文書で大きな改善
- DocVQA:OCRが苦手とする装飾的なフォントを含む文書で改善
性能向上の要因分析
- 検索段階での改善:
- TextRAG:73.4%の正確な文書検索率
- VisRAG:76.8%の正確な文書検索率
- 生成段階での改善:
- TextRAG:検索成功時の生成正解率51.3%
- VisRAG:検索成功時の生成正解率69.2%
重要な観察結果
- GPT-4oの特徴:複数文書を参照できる場合、検索文書数が増えるほど性能が向上
- 視覚情報の重要性:レイアウトや図表が回答に重要な場合、特に大きな性能差
- データ効率:VisRAGは少ない学習データ(約20,000ペア)でも高い性能を達成
この結果から、VisRAGの優位性は以下の点に起因していると考えられます:
- 視覚情報の保持による検索精度の向上
- OCRエラーの回避による情報品質の向上
- レイアウトや図表の文脈を考慮した、より正確な回答生成
特に、実世界の複雑な文書(インフォグラフィックスや装飾的なテキストを含む文書)において、従来手法との性能差が顕著に表れています。
まあ普通に考えて、OCRでうまく読み取れない場合、当然検索も生成も精度は下がるし、図表などはテキストに変換する時点でコンテキストは失われる。それをretriever・generator共にVLMを踏まえてものであれば、コンテキストの欠落はない、ということだよね。あとはVLMがそれを認識できるかどうかになる。
これまでは検索・生成共にハードルが高かったのだと思うけど、ColPaliみたいなものだったり、最近のVLMの精度向上などにより、クリアしつつあるという話なのかな?
GitHubレポジトリにある図を見てもまあそうなんだろうなとは思う。
refered from https://github.com/openbmb/visrag