ColPali: 利用視覺語言模型實現高效文件檢索 👀
使用視覺語言模型 (Vision LLM) + 延遲互動來改進文件檢索(RAG、搜尋引擎等),僅使用文件頁面的影像表示(論文)!
背景
為了提高 LLM 的問答能力,通常最好先在網上或外部文件集(PDF)中搜索資訊,然後再讓 LLM 綜合出一個有依據的回答(RAG)。在實踐中,這些用於 PDF 文件的檢索流程對效能有巨大影響,但並非易事……
- 對掃描的 PDF 執行光學字元識別(OCR)
- 執行文件佈局檢測模型,將頁面分割成段落、圖表、標題
- 重建頁面的結構和閱讀順序
- (可選)使用資源密集型的專門模型為圖表、影像和表格新增自然語言描述
- 使用分塊策略,以連貫的方式分割或合併文字段落
- 使用強大的神經嵌入模型(BGE M3)將文字塊對映到有語義意義的向量空間
- 儲存向量索引以備將來檢索使用
儘管有工具可以簡化這個流程(Unstructured,Surya),但整個索引過程可能很慢,容易傳播錯誤,並且難以考慮頁面中更多的視覺元素(表格、圖表、影像,還有字型等)。
我們的構想?直接嵌入頁面影像!
實際上,這並不像我們說得那麼簡單!我們的方法 ColPali 是由視覺語言模型的最新進展(特別是谷歌蘇黎世團隊的 PaliGemma 模型)所實現的,並利用了 Omar Khattab 在 ColBERT 中提出的透過延遲互動機制進行多向量檢索的方法。
讓我們用更多技術細節來分解一下!
模型架構
許多檢索系統可以分為兩個部分。
- 在索引階段,語料庫中的所有文件都以離線方式進行索引。
- 在查詢階段,使用者查詢以低延遲與預先計算的文件索引進行匹配。
因此,高效檢索系統的重要要求是 (R1) 良好的檢索效能,(R2) 合理的索引速度,(R3) 查詢時的低延遲。
在索引期間,標準的“雙編碼器”神經檢索系統首先解析文件以提取語義連貫的文字段落,然後將它們對映到一個旨在表示文字語義的密集向量空間,並存儲生成的“嵌入”。在查詢期間,查詢被轉換為其密集向量表示,然後可以低延遲地檢索具有最大余弦相似度的文件段落向量。
我們的方法 ColPali 有點不同!
在索引過程中,我們旨在透過直接使用文件頁面的影像(“螢幕截圖”)來去除許多複雜性。
一個視覺語言模型(PaliGemma-3B)透過將影像分割成一系列補丁來對其進行編碼,這些補丁被饋送到一個視覺變換器(SigLIP-So400m)。這些補丁嵌入被線性投影並作為“軟”詞元輸入到一個語言模型(Gemma 2B)中,以便在語言模型空間中獲得高質量的上下文相關的補丁嵌入,然後我們將其投影到一個較低的維度(D=128)以實現更高效的儲存。因此,我們為每個頁面影像構建並存儲一個多向量文件表示。
在執行時查詢中,使用者查詢由語言模型嵌入,以獲得詞元嵌入。我們能夠執行一個 ColBERT 風格的“延遲互動”(LI)操作,以高效地將查詢詞元與文件補丁匹配。為了計算 LI(查詢, 文件) 分數,對於查詢中的每個詞,我們搜尋具有最相似 ColPali 表示的文件補丁。然後,我們將查詢中所有詞的最相似補丁的分數相加,得到最終的查詢-文件分數。直觀地說,這種延遲互動操作允許查詢的所有詞與文件補丁之間進行豐富的互動,同時又得益於更標準的(雙編碼器)嵌入模型所能實現的快速匹配和離線計算解除安裝。
有了 ColPali,我們因此受益於快速的索引速度(R2),而不會顯著影響查詢延遲(R3)!但效能(R1)如何呢?
ViDoRe
雖然存在很棒的基準測試來評估文字嵌入模型,但我們發現在許多實際用例中,前期的文件處理流程遠比嵌入模型本身重要得多!雖然文件通常依賴視覺元素來更有效地向人類讀者傳達資訊,但純文本系統幾乎沒有利用這些視覺線索。據我們所知,沒有基準測試像人類一樣同時考慮文字和視覺文件特徵來評估文件檢索方法。
為此,我們引入了 ViDoRe,即視覺文件檢索基準,以評估檢索器在文件中檢索視覺豐富資訊的能力,其任務涵蓋了各種主題、模態(圖表、表格、文字)和語言!
ViDoRe 連結到一個 HF 排行榜 https://huggingface.co/spaces/vidore/vidore-leaderboard,我們希望看到許多模型嘗試這種新的“在視覺空間中檢索”的正規化!
結果
訓練細節
我們使用 PaliGemma 的預訓練權重來初始化視覺語言模型骨幹,並隨機初始化最後的投影層。為了方便訓練,我們在語言模型的注意力權重以及線性投影層中添加了低秩介面卡。我們的訓練資料集由(查詢,文件影像)對組成,我們從兩個主要來源獲取。一方面,我們重新利用了視覺問答資料集,並使用原始問題作為我們的查詢,關聯的影像作為黃金標籤。為了增加訓練集的覆蓋範圍和多樣性,我們還收集了數以萬計的許可寬鬆的 PDF 文件,涵蓋了廣泛的主題,並使用強大的 Claude Sonnet Vision 模型綜合生成相關查詢。總共,我們收集了約 10 萬對資料,並透過批內對比損失對我們的模型進行微調,嘗試最大化正確(頁面,查詢)對的匹配分數與錯誤對的分數之間的差異。
ColPali 結果
在 ViDoRe 上,ColPali 的效能優於所有其他評估的系統,包括那些使用非常強大的專有視覺模型(Claude Sonnet)為所有視覺元素新增描述的基線!
在視覺上更復雜的基準測試任務上,差異尤其明顯,例如分別代表資訊圖、圖表和表格的 InfographicVQA、ArxivQA 和 TabFQuAD。然而,ColPali 模型在所有評估的領域和語言中,對以文字為中心的文件的檢索效果也更好,這使得我們的方法成為 ViDoRe 上整體效能最佳的文件檢索模型!
可解釋性
除了速度和效能,ColPali 的另一個有趣特性是,它能夠視覺化文件的哪些補丁在給定查詢的情況下脫穎而出。這裡的術語 <hour>
匹配了包含“hourly”等詞語的補丁,也匹配了代表時間的 x 軸,展示了良好的圖表理解能力!
結論
這篇博文已經夠長了,但好訊息是,還有大量的資源、資訊和消融研究存在,並且會不斷推出!
📝 論文:https://arxiv.org/abs/2407.01449
🗃️ 基準測試:https://huggingface.co/vidore
👀 模型:https://huggingface.co/vidore/colpali
💻 基準測試程式碼:https://github.com/illuin-tech/vidore-benchmark
💻 訓練程式碼:https://github.com/ManuelFay/colpali
✖️ 第一作者的 X (推特) 賬號:@ManuelFaysse, @sibille_hugues, @tonywu_71
引用
@misc{faysse2024colpaliefficientdocumentretrieval,
title={ColPali: Efficient Document Retrieval with Vision Language Models},
author={Manuel Faysse and Hugues Sibille and Tony Wu and Bilel Omrani and Gautier Viaud and Céline Hudelot and Pierre Colombo},
year={2024},
eprint={2407.01449},
archivePrefix={arXiv},
primaryClass={cs.IR},
url={https://arxiv.org/abs/2407.01449},
}
致謝
這項工作主要源於 CentraleSupélec 和 Illuin Technology 之間的學術-產業合作,並有來自 Equall.ai 和 ETH Zürich 的參與者。它得益於 CINES ADASTRA 的計算資助(撥款 2024-AD011015443)。由 Manuel Faysse、Hugues Sibille、Tony Wu、Bilel Omrani、Gautier Viaud、Céline Hudelot、Pierre Colombo 共同完成。