画像も文字も表も全部まとめて理解するRAGシステムの提案 Bloombergなど | AIDB
で論文紹介を見かけて、RAG関連の業務を実施している俺としては気になったけど、AIDBって有料会員にならないと読めないのね。 というわけで、自分で何とかすることにした。
注意: ChatGPTの無料版(GPT-4o)にPDFを入力して質問しつつ理解したものですが、記事の文章自体は(引用の1ヶ所を除き)全文俺自身が書いています。
どんな論文?
- M3DocRAG というRAGを提唱。複数文書や複数ページの文書に対応していること、テキストだけではなくその他の視覚情報(図や表など)を読み取れることを特徴とする。
- また、評価のために新たなベンチマーク「M3DocVQA」を提案。40000ページ・3000ファイルのPDF文書(WikipediaをPDF化したもの)のDocument visual question answering (DocVQA)のベンチマーク。
先行研究と比べてどこがすごい?
- (a) Single-page DocVQA → 単一ページに関してvisual question answering (VQA)をしているから、複数のページ/文書に対応できない。
- (b) Text-based RAG → OCRで文字情報だけを読むから、図や表などの情報が欠落する。
- (c) M3DocRAG (Ours) →上記2つのいいとこ取りをしました。つまり多くのページやファイルを扱えるし、図や表などの情報(visual information)も扱える。
こう並べてみると、いいとこ取りをしようという発想になるのは自然な気がする。
技術や手法の肝はどこ?
提案手法のM3DocRAG は3つのステップからなっている。
- 1) Document Embedding (ドキュメントの埋め込み計算) ColPaliというvisual embeddingを使って、PDF文書の各ページの埋め込みを軽鎖する
- 2) Page Retrieval 質問文に近い上位Kページを抽出するんだろう。細かい手法は分かってないけど。
- 3) Question Answering マルチモーダルのLM (例えば、Qwen2-VL)を使って、最終的な答えを得る。
論文にするほどの価値(新規性)って何なんだろう? と疑問に思っている。 文書ファイルを画像の形のまま埋め込みベクトルに変換できて、クエリとの類似性を計算できるのであれば、それを使ってRAGを作れるのは当然に思える。 すごいのはColPaliであってM3DocRAGでは無いのでは?
「ColPali」で検索して出てきたこの記事も、この論文が出る前の時点だけど、類似度計算してRAGを作っているようだし。
Qwen2-VLとColPaliでマニュアル用ローカルQAボットを作ってみた
2) Page Retrieval (ページ検索)
入力クエリと各文書との類似度を普通に計算しようとすると、文書の数だけ計算する必要があり、計算コストが高い。 IVF(Inverted File Index)という方法を採っているらしい。
- 文書に対してembedding計算→クラスタリング をする。
- 入力クエリが来たら、各クラスタの代表点ベクトルとの類似度を計算する。
- 入力クエリと近いクラスタに対して、クラスタに属する各文書との類似度を計算する。
類似度を計算する対象の文書が大幅に減るので、計算時間が20s→2sくらいまで減る。
精度はちょっと落ちるけどそれほど顕著な性能劣化ではないので、計算時間の大幅減のほうがメリットが大きいでしょう、ということらしい。
Oracle が出してる記事が図が多くて分かりやすかったのでそちらを参照。
Inverted File Flatベクトル索引の理解
3) Question Answering (質問応答)
ColPaliのembeddingとQwen2-VLのembeddingは別物らしい。
The visual encoder takes K-retrieved page images P_Kq as inputs and outputs visual embeddings (different from ColPali encoder’s outputs).
論文 2.3
ChatGPTに聞いたら↓のように返ってきたけど、論文中にここは書いてないと思うし、真偽のほどは分からない。
ColPaliの埋め込み空間とQwen2-VLの埋め込み空間は異なります。
- ColPaliは検索タスクの類似度計算用に最適化されており、その埋め込みは視覚情報だけを重視しています。
- 一方、Qwen2-VLは、視覚情報とテキスト情報を統合して自然言語の形で回答を生成することを目的としており、埋め込み空間が異なる設計です。
議論はある?
この論文にはDiscussion の章が無いので、該当するのはラストのConclusionの後のLimitations 部分ですかね。
- 元の検索モデル・言語モデルが英語中心のデータセットで訓練されたので、英語以外で書かれたドキュメントやプロンプトで性能劣化する懸念。
- 誤った/偏った結果が出力される可能性がある→実運用では人間の監視が必要。
Figure 6 をよく調べる
Question: "What distance was the AP Warrior fast race at the Del Mar Racetrack?"
ColPali + Qwen2-VL 7B: "Seven Furlongs"
質問: AP Warrior(競馬の競走馬の名前)がDel Mar Racetrackで走った際のfast raceの距離は何か?
ColPali + Qwen2-VL 7B の回答: "Seven Furlongs"
表の中で Track = Del Mar Racetrack である記録は2つあるから、どっちか分からなくない? と思ってしまった。
もう一つCondition = fast という条件があって、それを満たすのはオレンジで囲った下から2番目の行しか無いね。
Condition って何だよと思ったけど、馬場状態 - Wikipedia / Going (horse racing) - Wikipedia の話らしい……競馬1ミリもわからん。
おまけ:
論文を読む際の落合陽一フォーマットを使った。プロンプトは下記から拝借した。
論文読みフォーマット by 落合陽一 for ChatGPT - work4ai
論文名で調べると、最初に挙げたAIDB以外、LLMが要約したと思われる記事ばっか出てきてちょっと困る。あんまり理解の助けにならないページが検索上位に来るのはどうなんだ。
まぁ、だからこそ、AIDBみたいなサイトが価値を持つのかもしれんが……
それでは。