TableRAG:一個(gè)專(zhuān)為表格理解設(shè)計(jì)的檢索增強(qiáng)生成框架
TableRAG是一個(gè)用于解決異構(gòu)文檔問(wèn)答中結(jié)構(gòu)信息丟失和缺乏全局視圖問(wèn)題的框架。它結(jié)合了SQL執(zhí)行和文本檢索,能夠統(tǒng)一理解表格數(shù)據(jù)并進(jìn)行復(fù)雜操作。這個(gè)框架包括離線數(shù)據(jù)庫(kù)構(gòu)建和四步在線迭代推理過(guò)程。在新基準(zhǔn)HeteQA和其他公共基準(zhǔn)測(cè)試中,TableRAG表現(xiàn)優(yōu)異,超越了現(xiàn)有的RAG和程序化方法,成為處理復(fù)雜異構(gòu)文檔推理的先進(jìn)解決方案。
核心原理
查詢擴(kuò)展與檢索:TableRAG通過(guò)查詢擴(kuò)展、模式檢索和單元格檢索來(lái)定位表格中的關(guān)鍵信息。它會(huì)生成針對(duì)模式和單元格值的獨(dú)立查詢,避免單一查詢帶來(lái)的冗余信息。
模式檢索:ai語(yǔ)言模型可以通過(guò)列名識(shí)別關(guān)鍵列及其數(shù)據(jù)類(lèi)型,無(wú)需對(duì)整個(gè)列進(jìn)行編碼。例如,對(duì)于問(wèn)題“錢(qián)包的平均價(jià)格是多少?”語(yǔ)言模型會(huì)生成列名查詢,如“產(chǎn)品”和“價(jià)格”。
單元格檢索:基于語(yǔ)言模型生成的查詢,檢索與問(wèn)題相關(guān)的列名和單元格。例如,檢索與“錢(qián)包”相關(guān)的單元格值。
頻率感知截?cái)啵阂雴卧窬幋a預(yù)算B,如果不同值的數(shù)量超過(guò)B,則只編碼出現(xiàn)頻率最高的前B個(gè)值。
TableRAG主要模塊
online_inference/main.py:TableRAG的核心推理代碼,包含TableRAG類(lèi),實(shí)現(xiàn)在線推理的主要邏輯。
offline_data_ingestion_and_query_interface/src/interface.py:使用Flask框架提供SQL查詢接口。
online_inference/tools/sql_tool.py:包含SQL生成和執(zhí)行的工具函數(shù),支持重試機(jī)制。
offline_data_ingestion_and_query_interface/src/sql_alchemy_helper.py:提供SQLAlchemy數(shù)據(jù)庫(kù)操作的輔助類(lèi),支持?jǐn)?shù)據(jù)插入和查詢。
offline_data_ingestion_and_query_interface/src/service.py:處理TableRAG請(qǐng)求的核心邏輯,包括從LLM獲取SQL語(yǔ)句并執(zhí)行。
online_inference/chat_utils.py:包含獲取LLM生成結(jié)果的工具函數(shù),支持不同API后端。
offline_data_ingestion_and_query_interface/src/data_persistent.py:用于清洗DataFrame列名的工具函數(shù)。
offline_data_ingestion_and_query_interface/src/handle_requests.py:調(diào)用大模型推理接口,包含異常捕獲和指數(shù)退避重試機(jī)制。
online_inference/tools/retriever.py:實(shí)現(xiàn)語(yǔ)義檢索和混合文檔檢索的功能,包括召回和重排序。
優(yōu)勢(shì)
高效數(shù)據(jù)編碼:通過(guò)模式檢索和單元格檢索,TableRAG減少了語(yǔ)言模型的輸入長(zhǎng)度,使其與表格大小無(wú)關(guān),提高了編碼效率,降低了計(jì)算成本。
減少信息丟失:僅將檢索到的模式和單元格提供給語(yǔ)言模型,避免了處理整個(gè)表格導(dǎo)致的關(guān)鍵信息丟失。
提升推理能力:TableRAG通過(guò)提供關(guān)鍵信息,增強(qiáng)了語(yǔ)言模型的表格推理能力。
TableRAG應(yīng)用場(chǎng)景
數(shù)據(jù)分析和報(bào)告生成:適用于需要處理大規(guī)模表格數(shù)據(jù)的場(chǎng)景,如數(shù)據(jù)分析、報(bào)告生成和財(cái)務(wù)報(bào)表處理。
跨表問(wèn)答:能夠處理基于表格的事實(shí)驗(yàn)證、單跳和多跳表格問(wèn)答等任務(wù)。
實(shí)驗(yàn)驗(yàn)證
研究者開(kāi)發(fā)了基于Arcade和BIRD-SQL數(shù)據(jù)集的百萬(wàn)級(jí)標(biāo)記基準(zhǔn)測(cè)試,評(píng)估TableRAG在大規(guī)模表格理解任務(wù)中的表現(xiàn)。實(shí)驗(yàn)結(jié)果表明,TableRAG在檢索質(zhì)量和大規(guī)模表格理解性能方面優(yōu)于現(xiàn)有方法。
項(xiàng)目鏈接
Github:https://github.com/yxh-y/TableRAG