Google新研究:適用于百萬級(jí)單元格的TableRAG 精華
1. 基于LLM的TableQA存在的問題
利用LLM來進(jìn)行表格理解任務(wù)往往會(huì)將整個(gè)表格喂給LLM,但是這種方法存在一定的局限性:
? 首先,受限于LLM上下文長度的限制;比如,一個(gè)包含100列和200行的中等大小表格,單元格數(shù)量超過40,000個(gè),超出了LLaMA和GPT系列等流行LMs的處理能力。
? 此外,過長的上下文可能會(huì)削弱推理能力,比如:Lost-in-the-Middle。
? 最后,隨著表格尺寸的增加,計(jì)算成本和延遲也會(huì)顯著上升。
所以,直接將表格全部喂給LLM這種方案不適合與大型表格。
因此,有人提出一些新的方案用于大型表格的理解任務(wù),如截?cái)啾砀窕騼H讀取表格的Schema,但是這種方法往往會(huì)丟失關(guān)鍵信息。
以及,通過檢索關(guān)鍵行和列來構(gòu)建一個(gè)包含回答查詢所需基本信息的子表,將整行和整列編碼成稀疏或密集的嵌入,以減少LMs的標(biāo)記成本。這種方法有兩個(gè)問題:
? 對(duì)于包含數(shù)百萬單元格的大型表格來說并不現(xiàn)實(shí)。
? 將長行和列壓縮成固定大小的嵌入可能會(huì)丟失語義信息,尤其是當(dāng)表格包含多樣化或語義上不太豐富的內(nèi)容時(shí)(例如,數(shù)值)。
2. 什么是TableRAG
基于以上問題,Google Deepmind等團(tuán)隊(duì)聯(lián)合提出了TableRAG方法。TableRAG融合了模式檢索與單元格檢索,從表格中提取出核心信息,使得LLM智能體能夠依據(jù)這些信息解答查詢。
圖片
上圖展示了TableRAG與傳統(tǒng)表格理解任務(wù)的區(qū)別。
(a) - (d):分別表示4種方法在提示詞中包含的數(shù)據(jù)(陰影部分),其中 (d)是TableRAG方法:
? (a)完整讀取表格:LM讀取整個(gè)表格,在大型表格中往往不現(xiàn)實(shí)。
? (b)只讀取Schema:LM只讀取列名和數(shù)據(jù)類型組成的模式,這種方法會(huì)導(dǎo)致表格內(nèi)容丟失。
? (c)行-列檢索:將行和列編碼后,基于與問題相似度進(jìn)行檢索。只有行和列的交集被展示給LM。對(duì)于大型表格來說,編碼所有行和列仍然不現(xiàn)實(shí)。
? (d)Schema-單元格檢索(TableRAG):根據(jù)與LM生成的問題相關(guān)性,對(duì)列名和單元格進(jìn)行編碼和檢索。只有檢索到的Schema和單元格被提供給LM,從而在編碼和推理上都提高了效率。
(e) 在ArcadeQA數(shù)據(jù)集上的檢索結(jié)果顯示: TableRAG在列和單元格檢索方面均優(yōu)于其他方法,進(jìn)而增強(qiáng)了后續(xù)的表格推理過程。
2.1 TableRAG的核心組件
圖片
上圖是TableRAG的核心工作流程:?jiǎn)栴}通過語言模型擴(kuò)展為多個(gè)模式和單元格查詢。這些查詢依次用來檢索Schema和列-單元格配對(duì)。每個(gè)查詢的前K個(gè)候選項(xiàng)匯總成提示詞提供給LLM生成對(duì)應(yīng)答案。
2.2 表格查詢擴(kuò)展
高效處理表格的關(guān)鍵在于精確地識(shí)別出查詢所需的列名和單元格值。與傳統(tǒng)的表格理解任務(wù)不同的在于,TableRAG單獨(dú)為Schema和單元格分別生成獨(dú)立查詢。比如:
對(duì)于問題“錢包的平均價(jià)格是多少?”,通過LLM生成針對(duì)列名如“產(chǎn)品”和“價(jià)格”的潛在查詢,以及針對(duì)相關(guān)單元格值如“錢包”的查詢。這些查詢用于從表格中檢索相關(guān)的模式和單元格值。
2.3 Schema檢索
生成查詢后,Schema檢索通過預(yù)先訓(xùn)練的編碼器fenc獲取相關(guān)的列名,fenc會(huì)對(duì)查詢進(jìn)行編碼,并與編碼的列名進(jìn)行匹配以確定其相關(guān)性。檢索到的Schema數(shù)據(jù)包括列名、數(shù)據(jù)類型和示例值。
將列轉(zhuǎn)換為整數(shù)、浮點(diǎn)數(shù)或日期時(shí)間數(shù)據(jù)類型;如果這幾種類型都不適合的話,保留為分類列。
? 對(duì)于被識(shí)別為數(shù)值或日期時(shí)間數(shù)據(jù)類型的列,將最小值和最大值作為示例值。
? 對(duì)于分類列,展示頻率最高的三個(gè)類別作為示例值。
匯總每個(gè)查詢的前K個(gè)檢索結(jié)果,并根據(jù)它們與最接近查詢的相似度進(jìn)行排序。檢索到的Schema提供了表格格式和內(nèi)容的結(jié)構(gòu)化概覽,用于更精確的數(shù)據(jù)提取。
2.4 單元格檢索
Schema檢索后,提取回答該問題所需的特定單元格值。
單元格檢索的作用在于:
? 單元格識(shí)別:使LLM能夠精確地檢測(cè)表格中特定關(guān)鍵詞的存在。例如,區(qū)分“tv”和“television”,確保搜索和操作基于精確的數(shù)據(jù)條目。
? 單元格-列關(guān)聯(lián):使LLM能夠?qū)⑻囟▎卧衽c其相關(guān)的列名關(guān)聯(lián)起來。對(duì)于處理特定屬性的問題至關(guān)重要,如將“錢包”直接與“描述”列關(guān)聯(lián),實(shí)現(xiàn)行索引。
單元格檢索在需要通過單元格值進(jìn)行索引時(shí)特別有用。例如:
要回答“平均價(jià)格是多少?”的問題,只需識(shí)別與價(jià)格相關(guān)的列名,因?yàn)槠骄档膶?shí)際計(jì)算可以由程序處理。
2.5 編碼預(yù)算下的單元格檢索
在最壞的情況下,不同值的數(shù)量可能與單元格的總數(shù)相匹配(即全表都用來喂給模型)。為了在這種情況下保持TableRAG的可行性,引入了一個(gè)單元格編碼預(yù)算B。如果不同值的數(shù)量超過B,將編碼限制在出現(xiàn)頻率最高的B對(duì),從而在處理大型表格時(shí)提高效率。
編碼預(yù)算僅影響單元格檢索過程。即使某個(gè)單元格未包括在檢索中,只要通過模式檢索或其他單元格知道了其列名,后續(xù)求解器仍然可以訪問該單元格。
圖片
如上圖所示,“description”列包含自由格式文本,可能導(dǎo)致大量獨(dú)特的值,許多可能因單元格編碼預(yù)算而被截?cái)?。然而,只要求解器識(shí)別了該列,它仍然可以對(duì)該列執(zhí)行操作以提取所需信息。
在獲得與問題相關(guān)的列名和單元格值之后,LLM可以使用這些信息有效地與表格交互。TableRAG與可以以編程方式與表格交互的語言模型智能體兼容。
智能體使用了ReAct框架,上圖展示了TableRAG如何使用ReAct。
2.6 Token復(fù)雜性
調(diào)用LLM的效率和延遲很大程度上取決于輸入token的數(shù)量。
假設(shè)列名、單元格值和問題的長度均為O(1)。其中,N代表行數(shù),M代表列數(shù),D代表不同文本單元格值的數(shù)量,B代表單元格編碼預(yù)算,K代表頂級(jí)檢索結(jié)果的數(shù)量。
主要表格提示方法的token復(fù)雜性如下表:
圖片
? 讀取表格:將整個(gè)表格提供給語言模型,導(dǎo)致推理過程中需要O(NM)數(shù)量的令牌。
? 讀取Schema:只向語言模型提供模式,僅需O(M)數(shù)量的令牌,但會(huì)丟失表格內(nèi)容的信息。
? 行-列檢索:將所有行和列編碼到嵌入中,導(dǎo)致編碼過程中需要O(NM)數(shù)量的令牌。然后它檢索前K個(gè)行和列以構(gòu)建一個(gè)K×K的子表進(jìn)行推理,其復(fù)雜性為O(K^2)。
對(duì)TableRAG中每一步的token復(fù)雜性進(jìn)行分析:
? 表格查詢擴(kuò)展:對(duì)語言模型的提示主要基于問題,通常只包含少量詞匯,因此這部分的令牌復(fù)雜性為O(1)。
? 構(gòu)建Schema數(shù)據(jù)庫:每個(gè)列名都使用編碼器函數(shù)fenc進(jìn)行編碼,導(dǎo)致編碼器的令牌復(fù)雜性為O(M)。
? 構(gòu)建單元格數(shù)據(jù)庫:這一操作涉及使用fenc編碼不同的列-值對(duì)。當(dāng)超過限制時(shí),不同對(duì)的總數(shù)D被限制在B以內(nèi)。因此,構(gòu)建單元格數(shù)據(jù)庫的令牌復(fù)雜性為O(min(D, B)),確保處理最頻繁的數(shù)據(jù)以優(yōu)化性能。
? 語言模型推理:查詢擴(kuò)展過程通常產(chǎn)生大約3-5個(gè)查詢,這些查詢的復(fù)雜性為O(1)。每個(gè)查詢隨后檢索前K個(gè)結(jié)果,導(dǎo)致語言模型提示中包含的列和單元格值的總復(fù)雜性為O(K)。這一步確保語言模型只處理表格中最相關(guān)的信息,從而提高生成響應(yīng)的效率和有效性。
總體而言,由于通常M遠(yuǎn)小于B和D,TableRAG的令牌復(fù)雜性在編碼時(shí)為O(min(D, B)),在推理時(shí)為O(K),且兩者均不依賴于表格的整體大小。因此,TableRAG即使面對(duì)大型表格,也能保持可控的成本,優(yōu)化計(jì)算資源和大規(guī)模表格理解任務(wù)的響應(yīng)時(shí)間。
3. 效果如何?
3.1 回答準(zhǔn)確性
圖片
上表展示了測(cè)試結(jié)果,TableRAG在ArcadeQA和BirdQA上的所有語言模型中均一致超越其他方法,準(zhǔn)確率最高。
讀取全表的方法在這兩個(gè)數(shù)據(jù)集上的表現(xiàn)均不佳,表明它在長上下文中存在劣勢(shì)。
在三種語言模型中,GPT 3.5 Turbo無論采用哪種表格提示方法,都能穩(wěn)定提供最佳性能。
3.2 檢索性能
圖片
上表評(píng)展示了召回率、精確度和f1分?jǐn)?shù)。
? 在列檢索方面,由于列數(shù)較少,所有方法都實(shí)現(xiàn)了較高的召回率,但TableRAG在兩個(gè)數(shù)據(jù)集上都展現(xiàn)了更高的精確度,這表明它在快速識(shí)別最相關(guān)列方面非常有效。
? ReadSchema和RowColRetrieval的精確度較低,說明這兩個(gè)方法檢索到了更多不相關(guān)的列。
? 在單元格檢索方面,TableRAG在所有指標(biāo)上均持續(xù)超越其他方法。TableRAG在單元格檢索上的高召回率與其他表格提示方法相比有了顯著提升,表明它能夠檢索到后續(xù)推理所需的大多數(shù)單元格???/p>
3.3 伸縮性測(cè)試
為了探究在相似條件下不同表格大小對(duì)性能的影響,基于TabFact創(chuàng)建了一系列合成數(shù)據(jù),表格尺寸從50×50到1000×1000不等。
圖片
? 如上圖所示,ReadTable在初始數(shù)據(jù)上表現(xiàn)強(qiáng)勁,隨著表格尺寸的增加,其準(zhǔn)確性急劇下降,在表格尺寸達(dá)到100及以上時(shí)變得不可行,這是由于上下文長度的限制。
? TableRAG展現(xiàn)了最為穩(wěn)定和可伸縮的性能,即使在表格尺寸增加到1000行和列時(shí),其性能也只是適度下降,從83.1%降至68.4%,證明了其在處理大型表格方面的有效性。
? ReadSchema和RowColRetrieval隨著表格尺寸的增加也顯示出性能下降,但仍然保持了一定的準(zhǔn)確率,這表明它們相對(duì)于ReadTable具有較好的可伸縮性,但在處理大型表格方面不如TableRAG有效。
3.4 與WikiTableQA上最先進(jìn)技術(shù)的比較
圖片
如上表所示,TableRAG超越了所有現(xiàn)有方法,包括TaBERT 、Text-to-SQL 、Binder 和Dater 。表明TableRAG即使在小規(guī)模環(huán)境中也具有有效性。
盡管TableRAG旨在應(yīng)對(duì)大規(guī)模TableQA任務(wù),但其方法具有通用性,并能在不同規(guī)模和復(fù)雜性的表格上保持最先進(jìn)水平的性能。
3.5 消融研究
3.5.1 TableRAG中檢索方法的影響
圖片
上表比較了TableRAG內(nèi)部不同的檢索方法。
? BM25:著名的基于統(tǒng)計(jì)的檢索方法,效率上表現(xiàn)出色,能夠處理所有單元格,但缺乏語義理解能力。
結(jié)果表明:基于嵌入的檢索方法性能最佳,超越了BM25和混合方法,盡管由于編碼限制它并未處理整個(gè)表格。
3.5.2 檢索結(jié)果數(shù)量K的影響
圖片
上圖展示了改變頂級(jí)檢索結(jié)果(K)數(shù)量對(duì)性能和后續(xù)語言模型推理的令牌成本的影響。
結(jié)果表明:增加K的數(shù)量增加了提示長度,但并未一致地提升性能。
較大的K值雖然允許語言模型訪問更多信息,但也導(dǎo)致了更長的上下文,可能加劇“Loss in the middle”現(xiàn)象。
TableRAG通過減少K值的需求,降低了所需的上下文令牌數(shù)量,減少了后續(xù)推理的成本,同時(shí)仍然超越了其他方法。
3.5.3 編碼預(yù)算的影響
圖片
上圖展示了不同的token編碼預(yù)算(B)如何影響TableRAG和RowColRetrieval的性能。
雖然更高的預(yù)算理論上允許檢索更多信息,但結(jié)果表明這并不總是導(dǎo)致更好的性能。特別是,隨著預(yù)算的增加,RowColRetrieval的性能有所下降,可能是因?yàn)闄z索到的更多行使得選擇正確的行變得更加復(fù)雜,并產(chǎn)生了來自更長列序列的噪聲嵌入。
TableRAG在不同預(yù)算下保持了一致的性能,表明其通過單元格頻率構(gòu)建語料庫的方法即使在有限的預(yù)算下也能有效地捕獲基本信息。
3.5.4 查詢擴(kuò)展的影響
圖片
上圖分析了查詢擴(kuò)展方法的有效性。結(jié)果表明:查詢擴(kuò)展一致地提升了TableRAG在不同數(shù)據(jù)集和語言模型中的性能。
3.5.5 模式檢索和單元格檢索
圖片
上表分析了Schema檢索和單元格檢索對(duì)性能的影響。
? 模式檢索在不同數(shù)據(jù)集和語言模型中一致地提升了推理性能,最大提升了9.4%,無論是否考慮單元格值。
? 即使對(duì)于列數(shù)較少的表格(ArcadeQA中平均20.5列,BirdQA中平均11.1列),模式檢索仍然有助于只為后續(xù)推理提供相關(guān)列。
? 單元格檢索在所有數(shù)據(jù)集和語言模型中一致地提高了準(zhǔn)確性,最大提升了11.5%,表明單元格檢索可以從表格內(nèi)容中有效地提取關(guān)鍵信息。
? 論文原文: https://arxiv.org/abs/2410.04739
本文轉(zhuǎn)載自??大語言模型論文跟蹤??,作者:HuggingAGI ????
