多模態(tài)RAG技術(shù):從語(yǔ)義抽取到VLM應(yīng)用與規(guī)?;魬?zhàn)
一、基于語(yǔ)義抽取的多模態(tài) RAG
多模態(tài) RAG 的發(fā)展方向旨在構(gòu)建一個(gè)高度集成的系統(tǒng),能夠無(wú)縫融合文本、圖像和其它多媒體元素,為用戶提供更豐富的信息交互體驗(yàn)。
實(shí)現(xiàn)多模態(tài) RAG 系統(tǒng)的三種主要技術(shù)路徑如下:
- 傳統(tǒng)對(duì)象識(shí)別與解析(雕花路線)
傳統(tǒng)的多模態(tài)文檔處理首先會(huì)運(yùn)用圖像識(shí)別技術(shù),如 OCR(Optical Character Recognition,光學(xué)字符識(shí)別),從圖像中抽取出文字、表格和圖片等元素。之后,這些獨(dú)立的對(duì)象會(huì)被進(jìn)一步解析,轉(zhuǎn)換成文本格式,以便于后續(xù)的信息檢索與分析。 - 采用 Transformer 架構(gòu)
近年來,深度學(xué)習(xí)模型,特別是 Transformer 架構(gòu),在自然語(yǔ)言處理領(lǐng)域取得了巨大成功。在多模態(tài) RAG 上,這種方法涉及使用編碼器(Encoder)對(duì)整個(gè)文檔進(jìn)行編碼,再由解碼器(Decoder)將編碼后的信息轉(zhuǎn)化為可讀文本。這種方法與第一種類似,只是模型不同,第一種用的是 CNN,這種是 Transformer。此法的優(yōu)勢(shì)在于可以更好地捕捉上下文依賴關(guān)系,提高信息的連貫性和一致性。 - 采用視覺語(yǔ)言模型
第三種方式是直接利用視覺語(yǔ)言模型(Visual Language Model, VLM)處理多模態(tài)數(shù)據(jù)。此類模型可以直接接收文檔、圖片或視頻等形式的原始輸入,將其轉(zhuǎn)化為向量(Patch Embedding)。這些向量可用于構(gòu)建更加精細(xì)的文檔嵌入,有助于增強(qiáng) RAG 系統(tǒng)的檢索和生成能力。尤其值得一提的是,由于單一向量難以充分反映復(fù)雜文檔的所有方面,使用多向量(或稱為張量)成為了優(yōu)選方案,以減少信息丟失,更全面地代表文檔含義。
下面來具體看一下路線一,我們稱其為“雕花”式路線。
從上圖中可以看到,文檔通常富含圖形和表格,如折線圖、餅狀圖和柱狀圖,甚至存在表格跨頁(yè)、合并單元格等復(fù)雜情況,處理難度較高。
該路線的核心步驟如上圖所示。首先進(jìn)行文檔結(jié)構(gòu)識(shí)別,區(qū)分各個(gè)組成部分,明確哪些是段落、哪些是表格、哪些是圖表等。針對(duì)每一類識(shí)別出的對(duì)象進(jìn)一步解析,對(duì)于文本部分,采用 OCR 技術(shù)轉(zhuǎn)錄文字;對(duì)于圖表,則需專門的模型進(jìn)行識(shí)別和解析,理解其內(nèi)容與意義。
“雕花”路線的特點(diǎn)在于其深度和廣度,幾乎覆蓋了文檔內(nèi)的每一個(gè)細(xì)節(jié)。耗時(shí)費(fèi)力,但對(duì)于確保信息的全面性和精準(zhǔn)性具有不可替代的作用。但其處理效率相對(duì)較低,自動(dòng)化程度受限,尤其面對(duì)大規(guī)模數(shù)據(jù)集時(shí),挑戰(zhàn)更為顯著。
路線一的 RAG 架構(gòu)是最基礎(chǔ)的 RAG:文檔被細(xì)分成 chunks,每一塊包含可獨(dú)立處理的內(nèi)容片段,通過 Embedding 模型將每塊轉(zhuǎn)換成向量,以便在向量數(shù)據(jù)庫(kù)中進(jìn)行相似性檢索,檢索結(jié)果作為提示詞提供給大模型。
實(shí)際應(yīng)用場(chǎng)景下會(huì)更為復(fù)雜,需要進(jìn)入更深層次的 RAG 架構(gòu)。文檔布局模型識(shí)別出不同布局后,分離不同類型的 chunks。之后進(jìn)行檢索,會(huì)用到全文索引、向量索引、稀疏向量索引以及圖索引等。檢索召回后,利用 Tensor Reranker 進(jìn)行重排序,提升檢索效果。最后交由大模型生成回答。
在此過程中,面對(duì)復(fù)雜文檔,如果沒有“雕花”的過程,那么一定會(huì)存在信息混亂,導(dǎo)致“Garbage in, garbage out”。
我們根據(jù)第一種路線,設(shè)計(jì)了 RAGFlow 的功能模塊,并通過 Infinity 數(shù)據(jù)庫(kù)提供向量處理。
在“雕花”過程中,表格識(shí)別是一大難點(diǎn)。
表格通常布局復(fù)雜,需要判定單元格邊界、識(shí)別表頭和合并的單元格,還要判斷跨頁(yè)結(jié)構(gòu),對(duì)色彩標(biāo)記、圖表嵌入等進(jìn)行識(shí)別,處理難度很大。
我們實(shí)現(xiàn)了利用 Transformer 架構(gòu)對(duì)表格內(nèi)容進(jìn)行解析。
采用 VAE(Variational Auto Encoder)提取圖片特征,經(jīng)過 Encoder 生成 Code Book,再經(jīng)過 Decoder 得到最終結(jié)果。如果結(jié)果一致,則證明 Code Book 可以準(zhǔn)確表達(dá)表格結(jié)構(gòu)和內(nèi)容。再來訓(xùn)練 Encoder 和 Decoder,最后生成 HTML 表格。生成的表格與原表格經(jīng)過嚴(yán)格對(duì)比,確認(rèn)無(wú)誤后,我們就認(rèn)為 Transformer 模型是準(zhǔn)確有效的。
此流程不僅適用于表格識(shí)別,亦可用于流程圖、餅狀圖、柱狀圖等其它圖表類型的解析。
二、基于 VLM 的多模態(tài) RAG
接下來介紹另一種路線——基于視覺語(yǔ)言模型的多模態(tài) RAG。
VLM 能夠同時(shí)處理圖像與文本信息,對(duì)復(fù)合媒介資料提供全面解析。如上圖中所示,模型不僅能夠識(shí)別出圖像中貓的位置,精確定位貓的輪廓,還可以回答關(guān)于圖像內(nèi)容的提問,體現(xiàn)出其強(qiáng)大的多模態(tài)認(rèn)知能力。下面來看一下 VLM 的進(jìn)展。
2024 年見證了多模態(tài)語(yǔ)言模型的迅猛崛起,以 GPT-4o 為代表的各種開源、閉源模型百花齊放,標(biāo)志著多模態(tài)領(lǐng)域的重大進(jìn)步。今年是多模態(tài)模型的爆發(fā)之年,那么明年是否會(huì)是多模態(tài) RAG 的爆發(fā)之年呢?下面來看一些相關(guān)的例子。
使用 PaliGemma 模型針對(duì) PDF 文檔進(jìn)行問答,例如提問 2018 年中國(guó) IDC 市場(chǎng)規(guī)模有多大,模型直接給出了柱狀圖中的具體數(shù)字,非常準(zhǔn)確。
又如,對(duì) Qwen2 模型提問一張圖表中的內(nèi)容,模型也給出了準(zhǔn)確而詳細(xì)的解析。
上圖中展示的是一篇利用 VLM 實(shí)現(xiàn)多模態(tài)搜索的論文,其中用到了 ColPali 方法,即基于上下文的延遲交互。其核心理念是將多模態(tài)文檔轉(zhuǎn)換為多維向量,再運(yùn)用相似度匹配,交予大型模型生成答案,這一流程與現(xiàn)代 RAG 類似。其最為重要的一點(diǎn)是多模態(tài)信息如何表達(dá)。傳統(tǒng)搜索引擎使用全文索引,提取關(guān)鍵詞進(jìn)行檢索,然后用倒排索引的方式進(jìn)行打分。而在 AI 時(shí)代,文本采用向量的方式進(jìn)行表達(dá),可顯著提升信息處理效能。
ColPali 系統(tǒng)的評(píng)估標(biāo)準(zhǔn)為 nDCG(歸一化折減累積增益),顯示出相比于以往方法,其準(zhǔn)確度有了質(zhì)的飛躍,達(dá)到了 80% 以上的水平,較之前低于 60% 的結(jié)果有著顯著改進(jìn)。實(shí)驗(yàn)表明,在特定數(shù)據(jù)集(如 MLDR)上的表現(xiàn)亦十分出色,實(shí)現(xiàn)了接近 70% 的準(zhǔn)確度,充分證明了技術(shù)的有效性。
前面提到,ColPali 用到了基于上下文的延遲交互,也就是上圖中最右邊的一種模型。圖中第一種,Dual Encoder,是現(xiàn)在常用的利用向量數(shù)據(jù)庫(kù)做相似度匹配的方式。文檔經(jīng)模型轉(zhuǎn)換為一系列向量,之后聚合簡(jiǎn)化為單個(gè)向量,用于快速查詢和匹配。這種方式的優(yōu)勢(shì)是速度快,效率高。局限性在于信息大量丟失,難以精確定位文檔與查詢間的關(guān)聯(lián)。
于是,引入了 Reranker,即圖中第二種方式,Cross Encoder。通過初篩獲取候選 chunks 后,采用該方式重新排序,模型根據(jù)相關(guān)性排序,再作為提示詞。這種方式的問題是需借助 GPU 運(yùn)行,且文檔數(shù)量受限。
因此出現(xiàn)了延遲交互模型。首先將文檔生成為多向量(或稱為張量)存儲(chǔ)。用戶查詢時(shí),同樣轉(zhuǎn)化為張量形式,計(jì)算內(nèi)積 MaxSim 得分,而非依賴模型計(jì)算。這樣可以顯著減少計(jì)算量,待選文檔數(shù)量就可以增大,最后召回率就可以得到提升。
ColPali 就是采用了這種方式。將 PDF 文檔切為 1024 個(gè) patches,每個(gè) patch 使用 128 維向量表示,這樣一個(gè) PDF 文檔就轉(zhuǎn)成了包含 1024 個(gè)向量的張量。
一個(gè) PDF 切分為多頁(yè),每頁(yè)采用一個(gè) Tensor 來表示。
計(jì)算 MaxSim 得分。
上圖中列出了一些相關(guān)模型的效果。它們都是名字中包含了“Col”的版本,相較于之前傳統(tǒng)版本都有著顯著提升。
三、如何 Scale 基于 VLM 的多模態(tài) RAG
接下來探討如何應(yīng)用基于 VLM 的多模態(tài) RAG。
第一個(gè)挑戰(zhàn)是數(shù)據(jù)規(guī)模變大,Tensor 復(fù)雜度增加。例如前面提到的,用 1024 個(gè)向量來表示一個(gè)文檔,無(wú)論存儲(chǔ)復(fù)雜度還是計(jì)算復(fù)雜度都大幅上升。
那么在張量之上是否還有必要建索引呢?索引對(duì)降低計(jì)算規(guī)模的作用是有限的。因此我們采取了對(duì)張量進(jìn)行二值化處理等方式來減小數(shù)據(jù)規(guī)模。我們也發(fā)現(xiàn),用張量做重排序,和直接用張量作為第一次搜索排序,其準(zhǔn)確度是相近的。
因此,利用 Infinity 數(shù)據(jù)庫(kù),第一輪搜索采用全文搜索、稠密向量搜索和稀疏向量搜索,搜索得到的結(jié)果再經(jīng)過 Tensor Reranker 重排序。
Infinity 數(shù)據(jù)庫(kù)針對(duì)結(jié)構(gòu)化數(shù)據(jù)、稠密向量、稀疏向量、張量、全文搜索都有對(duì)應(yīng)的索引,還可以進(jìn)行融合搜索。
從上圖展示的測(cè)試結(jié)果中可以看到,藍(lán)色部分是沒有采用張量方式的搜索,BM25 是全文搜索,效果較好,而現(xiàn)在常用的稠密向量搜索效果最差。我們還對(duì)搜索方式兩兩進(jìn)行排列組合,結(jié)果發(fā)現(xiàn),組合和類型越多,搜索準(zhǔn)確度越高。黃色是加上了張量重排序的搜索,可以看到準(zhǔn)確度得到了顯著提升。
延遲交互將是 RAG 的未來發(fā)展趨勢(shì)。JaColBERT 和 Jina-ColBERT v2 都展現(xiàn)出了積極的進(jìn)展。
四、如何選擇技術(shù)路線
上圖所示的工作中認(rèn)為視覺語(yǔ)言模型的路線更具優(yōu)勢(shì)。但我們認(rèn)為雕花路線和視覺語(yǔ)言模型各有所長(zhǎng),對(duì)于抽象圖像較多的文檔更適合采用 VLM 的方式,相反則更適合傳統(tǒng)手段。
兩種路線將長(zhǎng)期并存:
- 基于 Transformer 的新一代 OCR,針對(duì)多模態(tài)文檔的提取精度更加準(zhǔn)確。
- OCR 和 VLM 可以長(zhǎng)期共存。
- 支持 Tensor 的延遲交互將是未來多模態(tài) RAG 的標(biāo)配選擇。
最后,歡迎大家關(guān)注 RAGFlow。
五、問答環(huán)節(jié)
Q1:如何應(yīng)對(duì)多模態(tài)可能比自然語(yǔ)言擁有更大狀態(tài)空間的挑戰(zhàn)?是否有嘗試標(biāo)準(zhǔn)化處理?
A1:將圖表映射為 Excel 是一種理想化的處理方式,但難度非常大,首先已有的大量文檔無(wú)法都轉(zhuǎn)為 Excel,另外 Excel 的美觀性和展示效果還是有欠缺的。
Q2:為何選擇張量而非向量計(jì)算?
A2:向量維度固定,而張量尺寸靈活,適應(yīng)變長(zhǎng)數(shù)據(jù)。向量數(shù)據(jù)庫(kù)無(wú)法直接處理變長(zhǎng)數(shù)據(jù),故轉(zhuǎn)向張量計(jì)算。